IP Library › Granted Patent US 8,671,256
Granted Patent B2
US 8,671,256 · App. 11/845,371 · Granted Mar 11, 2014

Migrating contents of a memory on a virtual machine

Inventor: Eli M. Dow (Poughkeepsie, NY)
Assignee: International Business Machines Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,671,256
App. No.
11/845,371
Granted
Mar 11, 2014
Kind
B2
Abstract

A system and computer program product for migrating contents of a memory on a virtual machine. The system includes a source virtual machine executing on a host system, the source virtual machine including a memory. The system also includes a hypervisor executing on the host system. The hypervisor is in communication with the source virtual machine and includes instructions. The instructions facilitate establishing communication from the source virtual machine to a target virtual machine, the source virtual machine including a memory. The contents of the memory on the source virtual machine are transmitted to the target virtual machine. The contents of the memory on the source virtual machine include a plurality of pages. It is determined if all or a subset of the pages have been modified on the source virtual machine subsequent to being transmitted to the target virtual machine. If it is determined that all or a subset of the pages have been modified, then the modified pages, including a page location and page content for each of the modified pages, are transmitted to the target virtual machine. The determining and transmitting the modified pages continues until the number of remaining pages that have been modified is less than a threshold. The virtual machine is then paused the remaining pages are transmitted to the target virtual machine.

Claims (45)

1. A system for migrating contents of a memory on a virtual machine, the system comprising a memory in communication with a computer processor, the system configured to execute a method, the method comprising:

executing a source virtual machine on a host system, the source virtual machine including a memory;

executing a hypervisor on the host system, the hypervisor in communication with the source virtual machine;

transmitting contents of the memory on the source virtual machine to a target virtual machine according to a data migration order, the data migration order determined based on system configuration information, the system configuration information comprising an operating system executing on the source virtual machine and migration profiles comprising mappings of known operating systems to migration routines optimized for the known operating systems, the migration routines, including memory characteristics specific to the known operating systems that have an impact on migration order;

determining that one or more pages have been modified on the source virtual machine subsequent to being transmitted to the target virtual machine; and

based on determining that one or more of the pages have been modified:

transmitting the modified pages including a page offset and page content for each of the modified pages to the target virtual machine, the modified pages transmitted in a data structure comprising packed pairs of the page offset and the page content for each of the modified pages;

continuing the determining and transmitting the updated pages until the number of remaining pages that have been modified is less than a threshold;

pausing the source virtual machine;

based on the pausing, transmitting the remaining modified pages to the target virtual machine; and

transmitting an invalid page offset indicating one of an end of readable data in a buffer, and that no jump is necessary as a next page is sequentially aligned.

2. The system of claim 1 further comprising resuming execution of the source virtual machine.

3. The system of claim 1 wherein the threshold is programmable.

4. The system of claim 1 wherein the target virtual machine is executing on a second host system and the target virtual machine receives the contents and the modified pages via a second hypervisor that is located the second host system.

5. The system of claim 1 wherein the transmitting is via a network.

6. The system of claim 1 further comprising transmitting the invalid page offset as a sentinel specifying that no more iterations are to follow and that finalization is to occur.

7. The system of claim 1 wherein the page offset comprises an integer page offset based from zero that represents a first page in a source memory.

8. A computer program product for migrating contents of a memory on a virtual machine, the computer program product comprising:

a non-transitory storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for implementing a method, the method comprising:

transmitting contents of the memory on the source virtual machine to a target virtual machine according to a data migration order, the data migration order determined based on system configuration information, the system configuration information comprising an operating system executing on the source virtual machine and migration profiles comprising mappings of known operating systems to migration routines optimized for the known operating systems, the migration routines including memory characteristics specific to the known operating systems that have an impact on migration order;

determining that one or more pages have been modified on the source virtual machine subsequent to being transmitted to the target virtual machine; and

based on determining that one or more of the pages have been modified:

transmitting the modified pages including a page offset and page content for each of the modified pages to the target virtual machine, the modified pages transmitted in a data structure comprising packed pairs of the page offset and the page content for each of the modified pages;

continuing the determining and transmitting the modified pages until the number of remaining pages that have been modified is less than a threshold;

pausing the source virtual machine;

based on the pausing, transmitting the remaining modified pages to the target virtual machine; and

transmitting an invalid page offset indicating one of an end of readable data in a buffer, and that no jump is necessary as a next page is sequentially aligned.

9. The computer program product of claim 8 wherein the source virtual machine is located on a host system and the method is executed by a hypervisor on the host system, the hypervisor in communication with the source virtual machine.

10. The computer program product of claim 8 wherein the threshold is programmable.

11. The computer program product of claim 8 wherein the transmitting is via a network.

12. The computer program product of claim 8 wherein a communication from the source virtual machine and the target virtual machine is established between a source hypervisor in communication with the source virtual machine and a target hypervisor in communication with the target virtual machine.

13. The computer program product of claim 8 further comprising transmitting the invalid page offset as a sentinel specifying that no more iterations are to follow and that finalization is to occur.

14. The computer program product of claim 8 wherein the page offset comprises an integer page offset based from zero that represents a first page in a source memory.

15. A computer program product for migrating contents of a memory on a virtual machine, the computer program product comprising:

a non-transitory storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for implementing a method, the method comprising:

transmitting contents of the memory on the source virtual machine to a target virtual machine according to a data migration order, the data migration order determined based on system configuration information, the system configuration information comprising an operating system executing on the source virtual machine and migration profiles comprising mappings of known operating systems to migration routines optimized for the known operating systems, the migration routines including memory characteristics specific to the known operating systems that have an impact on migration order;

determining that one or more pages have been modified on the source virtual machine subsequent to being transmitted to the target virtual machine; and

based on determining that one or more of the pages have been modified:

transmitting the modified pages including a page offset and page content for each of the modified pages to the target virtual machine, the modified pages transmitted in a data structure comprising packed pairs of the page offset and the page content for each of the modified pages;

continuing the determining and transmitting the modified pages until the number of remaining pages that have been modified is less than a threshold;

pausing the source virtual machine;

based on the pausing, transmitting the remaining modified pages to the target virtual machine; and

transmitting an invalid page offset as a sentinel specifying that no more iterations are to follow and that finalization is to occur.

16. The computer program product of claim 15 wherein the page offset comprises an integer page offset based from zero that represents a first page in a source memory.

17. The computer program product of claim 16 further comprising transmitting the invalid page offset indicating one of an end of readable data in a buffer, and that no jump is necessary as a next page is sequentially aligned.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2007
From: DOW, ELI M.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 019749/0301 →
Continuity (1)
Related Publication 20090063750A1 · Mar 5, 2009