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