>>> 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? > > virsh snapshot-create-as $dom $name --live --memspec /path/to/memoryfile
I have tried this command on libvirt v1.1.3 and it returns "error: invalid argument: qemuDomainSnapshotCreateXML: unsupported flags (0x100)". Looks like --live is not supported yet. Could you let us know which version we should of libvirt we should use in order to use this feature? Thanks, Xinyang -- Xinyang GE Department of Computer Science & Engineering The Pennsylvania State University Homepage: http://www.cse.psu.edu/~xxg113/