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 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.