Generating and Using Checkpoints in a Virtual Computer System
First Claim
1. A computer program product embodied in a tangible, computer-readable medium, the computer program product performing a method for generating a checkpoint for a virtual machine (VM) in a virtual computer system, the VM using a parent disk file and a set of VM memory, the method comprising:
- creating a copy-on-write (COW) disk file pointing to the parent disk file in use by the VM;
stopping the VM, and while the VM is stopped;
marking the memory of the VM copy-on-write, the VM memory constituting original VM memory;
saving substantially all of the device state of the VM, including an instruction pointer, a plurality of registers and settings for one or more virtual devices, to memory; and
switching the VM to read from and write to the COW disk file instead of the parent disk file;
resuming operation of the VM, so that the VM reads from and writes to the COW disk file and so that the VM reads from, writes to, and executes code from the VM memory;
handling disk COW faults to the COW disk file;
handling memory COW faults to the original VM memory to generate copies of the original VM memory for read, write, and execution use by the VM;
saving the device state from memory to a checkpoint data store; and
saving the original VM memory to the checkpoint data store,wherein the VM memory is a subset of a physical memory in the virtual computer system, the VM memory being a portion of the physical memory that is allocated to the VM.
0 Assignments
0 Petitions
Accused Products
Abstract
To generate a checkpoint for a virtual machine (VM), first, while the VM is still running, a copy-on-write (COW) disk file is created pointing to a parent disk file that the VM is using. Next, the VM is stopped, the VM'"'"' s memory is marked COW, the device state of the VM is saved to memory, the VM is switched to use the COW disk file, and the VM begins running again for substantially the remainder of the checkpoint generation. Next, the device state that was stored in memory and the unmodified VM memory pages are saved to a checkpoint file. Also, a copy may be made of the parent disk file for retention as part of the checkpoint, or the original parent disk file may be retained as part of the checkpoint. If a copy of the parent disk file was made, then the COW disk file may be committed to the original parent disk file.
-
Citations
28 Claims
-
1. A computer program product embodied in a tangible, computer-readable medium, the computer program product performing a method for generating a checkpoint for a virtual machine (VM) in a virtual computer system, the VM using a parent disk file and a set of VM memory, the method comprising:
-
creating a copy-on-write (COW) disk file pointing to the parent disk file in use by the VM; stopping the VM, and while the VM is stopped; marking the memory of the VM copy-on-write, the VM memory constituting original VM memory; saving substantially all of the device state of the VM, including an instruction pointer, a plurality of registers and settings for one or more virtual devices, to memory; and switching the VM to read from and write to the COW disk file instead of the parent disk file; resuming operation of the VM, so that the VM reads from and writes to the COW disk file and so that the VM reads from, writes to, and executes code from the VM memory; handling disk COW faults to the COW disk file; handling memory COW faults to the original VM memory to generate copies of the original VM memory for read, write, and execution use by the VM; saving the device state from memory to a checkpoint data store; and saving the original VM memory to the checkpoint data store, wherein the VM memory is a subset of a physical memory in the virtual computer system, the VM memory being a portion of the physical memory that is allocated to the VM. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer program product embodied in a tangible, computer-readable medium, the computer program product performing a method for generating a checkpoint for a virtual machine (VM) in a virtual computer system, the VM using a virtual disk and a set of VM memory, the method comprising:
-
maintaining, in an unmodified state, the contents of the virtual disk at the time for which the checkpoint is generated, while allowing the VM to continue reading from and writing to the virtual disk; saving substantially all of the device state of the VM, including an instruction pointer, a plurality of registers and settings for one or more virtual devices, at the time for which the checkpoint is generated, to a checkpoint data store; and saving the set of VM memory, at the time for which the checkpoint is generated, to the checkpoint data store by performing the following steps; marking the set of VM memory as copy-on-write (COW), the set of VM memory constituting original VM memory; allowing the VM to continue reading from, writing to, and executing code from the VM memory; responding to memory COW faults related to the VM memory by generating copies of the original VM memory for read, write and execution use by the VM; and saving the original VM memory to the checkpoint data store, wherein the VM memory is a subset of a physical memory in the virtual computer system, the VM memory being a portion of the physical memory that is allocated to the VM. - View Dependent Claims (20, 21, 22)
-
-
23. A computer program product embodied in a tangible, computer-readable medium, the computer program product performing a method for generating a checkpoint for a virtual machine (VM) in a virtual computer system, the VM using a virtual disk and a set of VM memory, the method comprising:
-
maintaining, in an unmodified state, the contents of the virtual disk at the time for which the checkpoint is generated, while allowing the VM to continue reading from and writing to the virtual disk, the unmodified contents of the virtual disk constituting a checkpointed virtual disk, and the contents of the virtual disk used by the VM constituting an ongoing virtual disk; saving substantially all of the device state of the VM, including an instruction pointer, a plurality of registers and settings for one or more virtual devices, at the time for which the checkpoint is generated, to a checkpoint data store; saving the contents of the VM memory, at the time for which the checkpoint is generated, to the checkpoint data store, and allowing the VM to continue reading from, writing to, and executing code from the VM memory, the contents of the VM memory saved to the checkpoint data store constituting a checkpointed VM memory, and the contents of the VM memory as used by the VM constituting an ongoing VM memory; and allowing the VM to execute, including executing code from the VM memory, during at least a part of the time during which the checkpoint is being generated, and ensuring that the results of any pending disk writes are applied to both the checkpointed virtual disk and the ongoing virtual disk, that the results of any new disk writes are applied to the ongoing virtual disk, but not to the checkpointed virtual disk, that the results of any pending disk reads are applied to both the checkpointed VM memory and the ongoing VM memory, and that the results of any new disk reads are applied to the ongoing VM memory, but not to the checkpointed VM memory wherein the VM memory is a subset of a physical memory in the virtual computer system, the VM memory being a portion of the physical memory that is allocated to the VM. - View Dependent Claims (24, 25, 26, 27, 28)
-
Specification