[libvirt] RFCv2: virDomainSnapshotCreateXML enhancements
Eric Blake
eblake at redhat.com
Thu Aug 11 20:50:39 UTC 2011
On 08/10/2011 04:08 PM, Eric Blake wrote:
> Undefining
> ++++++++++
>
> In one regards, undefining a domain that has snapshots is just as bad as
> undefining a domain with managed save state - since libvirt is
> maintaining metadata about snapshot hierarchies, leaving this metadata
> behind _will_ interfere with creation of a new domain by the same name.
> However, since both checkpoints and snapshots are stored in
> user-accessible disk images, and only the metadata is stored by libvirt,
> it should eventually be possible for the user to decide whether to
> discard the metadata but keep the snapshot contents intact in the disk
> images, or to discard both the metadata and the disk image snapshots.
>
> Meanwhile, I propose changing the default behavior of
> virDomainUndefine[Flags] to reject attempts to undefine a domain with
> any defined snapshots, and to add a new flag for virDomainUndefineFlags,
> virDomainUndefineFlags(,VIR_DOMAIN_UNDEFINE_SNAPSHOTS), to act as
> shorthand for calling virDomainSnapshotDelete for all snapshots tied to
> the domain. Note that this deletes the metadata, but not the underlying
> storage volumes.
Hmm. VIR_DOMAIN_UNDEFINE_MANAGED_SAVE is only needed for
virDomainUndefineFlags, since managed save is a persistent-only
possibility (a running domain does not have a managed save). But
VIR_DOMAIN_UNDEFINE_SNAPSHOTS is needed for both virDomainUndefineFlags
and virDomainDestroyFlags (since transient domains can have both
checkpoints and disk snapshots).
And while we added virDomainDestroyFlags in 0.9.4, we missed adding
virDomainShutdownFlags. Oh well - no convenience flag for the shutdown
case. But it does mean that both virDomainDestroy and virDomainShutdown
will have to fail by default if they would strand some snapshot metadata.
Also, I need to clarify the change to failure case. It is not fatal to
have snapshot metadata when converting a running guest from persistent
to transient, nor is it fatal to shutdown or destroy a persistent guest
with snapshots - in those cases, the domain still exists. The fatal
case is only whens stranding snapshot data (undefine on an inactive
domain, or destroy/shutdown on a transient domain).
--
Eric Blake eblake at redhat.com +1-801-349-2682
Libvirt virtualization library http://libvirt.org
More information about the libvir-list
mailing list