> External snapshots (via the blockdev-snapshot-sync QMP command) can be > taken in a matter of milliseconds if you only care about disk state. > Furthermore, if you want to take a snapshot of both memory and disk > state, such that the clone can be resumed from the same time, you can do > that with a guest downtime that only lasts as long as the > blockdev-snapshot-sync, by first doing a migrate to file then doing the > disk snapshot when the VM pauses at the end of migration. Resuming the > original guest is fast; resuming from the migration file is a bit > longer, but it is still the fastest way possible to resume from a > memory+disk snapshot. If you need anything faster, then yes, you would > have to write patches to qemu to attempt cloning via fork() that makes > sure to modify the active disk in use by the fork child so as not to > interfere with the fork parent.
I think migrating memory to file then doing external disk snapshot is exactly what we want. Since we are using libvirt to manage different VMs, could you give us some specific guides (or references) that how we could migrate memory state to file using virsh interfaces and do external snapshots? Thanks, Xinyang -- Xinyang GE Department of Computer Science & Engineering The Pennsylvania State University Homepage: http://www.cse.psu.edu/~xxg113/