Method and System for Performing Live Migration of Persistent Data of a Virtual Machine
First Claim
1. A method of migrating persistent data of a virtual machine from a source data store to a destination data store, the method comprising:
- copying the persistent data at the source data store to the destination data store;
updating a bitmap data structure during said copying to indicate which blocks of the persistent data have been modified during said copying; and
identifying the blocks that have been modified during said copying using the bitmap data structure and copying the identified blocks to the destination data store.
2 Assignments
0 Petitions
Accused Products
Abstract
Persistent data of virtual machines are migrated between and across data stores using a method that provides for a bounded disk size, low performance overhead, arbitrarily low downtimes, atomic switch-over, and ability to build optimizations based around block level heuristics. The method includes the steps of copying the persistent data at the source data store to the destination data store, updating a bitmap data structure during the copying step to indicate which blocks of the persistent data have been modified during the copying step, identifying the blocks that have been modified during the copying step using the bitmap data structure, and copying the identified blocks to the destination data store. The method may further include the step of determining that the number of the identified blocks is below a predetermined threshold and suspending the virtual machine prior to the second copying step.
147 Citations
25 Claims
-
1. A method of migrating persistent data of a virtual machine from a source data store to a destination data store, the method comprising:
-
copying the persistent data at the source data store to the destination data store; updating a bitmap data structure during said copying to indicate which blocks of the persistent data have been modified during said copying; and identifying the blocks that have been modified during said copying using the bitmap data structure and copying the identified blocks to the destination data store. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A non-transitory computer-readable storage medium for storing instructions that, when executed by a computer causes the computer to perform a method of migrating persistent data of a virtual machine from a source data store to a destination data store, the method comprising:
-
copying the persistent data at the source data store to the destination data store; updating a bitmap data structure during said copying to indicate which blocks of the persistent data have been modified during said copying; and identifying the blocks that have been modified during said copying using the bitmap data structure and copying the identified blocks to the destination data store. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer system comprising a host including a processor and a memory, a source data store, and a destination data store, wherein the processor is configured to perform a method of migrating persistent data of a virtual machine running on the host from the source data store to the destination data store, the method including the steps of:
-
copying the persistent data at the source data store to the destination data store; updating a bitmap data structure during said copying to indicate which blocks of the persistent data have been modified during said copying; and identifying the blocks that have been modified during said copying using the bitmap data structure and copying the identified blocks to the destination data store. - View Dependent Claims (16, 17, 18, 19, 20)
-
-
21. A method for migrating persistent data associated with a virtual machine (VM), the method comprising:
-
copying static persistent data from a source data store to a target data store, the static persistent data being persistent data associated with the VM that is not accessible by guest software; copying a virtual disk associated with the VM from the source data store to the target data store, wherein the persistent data includes the virtual disk; monitoring input and output (I/O) disk operations during the copying of the virtual disk, the monitoring including maintaining a data structure identifying each disk block written to by the VM during the copying of the virtual disk, wherein disk blocks that are written to are dirty disk blocks; iteratively copying dirty disk blocks until a set of dirty blocks is smaller than a threshold number of disk blocks; and after the set of dirty blocks is smaller than the threshold number of disk blocks, stunning the VM, copying remaining dirty disk blocks to the target data store, and when all the persistent data of the VM has been copied to the target data store, resuming execution of the VM using persistent data stored on the target data store. - View Dependent Claims (22)
-
-
23. A method for migrating a disk image from a source data store to a destination data store, the method comprising:
-
copying the disk image from the source data store to the destination data store; monitoring input and output (I/O) operations issued to the disk image during said copying, the monitoring including maintaining a data structure identifying blocks that are written to in accordance with the I/O operations during said copying, wherein the blocks that are written to are dirty blocks; copying the dirty blocks as identified in the data structure from the source data store to the destination data store and, during said copying of the dirty blocks, identifying additional blocks that are written to, wherein the additional blocks that are written to constitute a new set of dirty blocks; repeating the prior copying until a set of dirty blocks is smaller than a threshold number of blocks; and after the set of dirty blocks is smaller than the threshold number of blocks, suspending I/O operations to the disk image, copying remaining dirty blocks to the destination data store, and resuming I/O operations to the disk image stored on the destination data store. - View Dependent Claims (24, 25)
-
Specification