[libvirt] [PATCH 3/3] snapshot: rudimentary qemu support for atomic disk snapshot

Eric Blake eblake at redhat.com
Sat Mar 17 16:05:07 UTC 2012


On 03/16/2012 04:05 PM, Eric Blake wrote:
> Taking an external snapshot of just one disk is atomic, without having
> to pause and resume the VM.  This also paves the way for later patches
> to interact with the new qemu 'transaction' monitor command.
> 
> The various scenarios when requesting atomic are:
> online, 1 disk, old qemu - safe, allowed by this patch
> online, more than 1 disk, old qemu - failure, this patch
> offline snapshot - safe, once a future patch implements offline disk snapshot
> online, 1 or more disks, new qemu - safe, once future patch uses transaction

This is incomplete:

> @@ -10069,7 +10081,8 @@ qemuDomainSnapshotCreateXML(virDomainPtr domain,
>                    VIR_DOMAIN_SNAPSHOT_CREATE_HALT |
>                    VIR_DOMAIN_SNAPSHOT_CREATE_DISK_ONLY |
>                    VIR_DOMAIN_SNAPSHOT_CREATE_REUSE_EXT |
> -                  VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE, NULL);
> +                  VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE |
> +                  VIR_DOMAIN_SNAPSHOT_CREATE_ATOMIC, NULL);

By accepting the new 'atomic' flag, we now have to ensure it works for
all modes.

As written, v1 covered the disk-snapshot mode.  The live system
checkpoint mode is already atomic ('savevm' is a single monitor command;
if it can fail partway through, that's a bug in qemu).  But for offline
internal snapshots, we were making iterative calls to 'qemu-img snapshot
-c', and not cleaning up after partial failure.  I'm sending a v2 to fix
that.

-- 
Eric Blake   eblake at redhat.com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 620 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20120317/32e9bfd7/attachment-0001.sig>


More information about the libvir-list mailing list