Attributes of libvirt snapshots are stored as child elements of
the domainsnapshot
element. At snapshot creation
time, normally only the name
and description
elements are settable; the rest of
the fields are ignored on creation, and will be filled in by
libvirt in for informational purposes
by virDomainSnapshotGetXMLDesc()
. However, when
redefining a snapshot (since 0.9.5),
with the VIR_DOMAIN_SNAPSHOT_CREATE_REDEFINE
flag
of virDomainSnapshotCreateXML()
, all of the XML
described here is relevant.
Snapshots are maintained in a hierarchy. A domain can have a current snapshot, which is the most recent snapshot compared to the current state of the domain (although a domain might have snapshots without a current snapshot, if snapshots have been deleted in the meantime). Creating or reverting to a snapshot sets that snapshot as current, and the prior current snapshot is the parent of the new snapshot. Branches in the hierarchy can be formed by reverting to a snapshot with a child, then creating another snapshot.
The top-level domainsnapshot
element may contain
the following elements:
name
description
creationTime
state
parent
domain
VIR_DOMAIN_SNAPSHOT_REVERT_FORCE
flag
in virDomainRevertToSnapshot()
. Newer versions
of libvirt store the entire
inactive domain configuration
at the time of the snapshot (since
0.9.5). Readonly.
Using this XML on creation:
<domainsnapshot> <description>Snapshot of OS install and updates</description> </domainsnapshot>
will result in XML similar to this from virDomainSnapshotGetXMLDesc:
<domainsnapshot> <name>1270477159</name> <description>Snapshot of OS install and updates</description> <state>running</state> <creationTime>1270477159</creationTime> <parent> <name>bare-os-install</name> </parent> <domain> <name>fedora</name> <uuid>93a5c045-6457-2c09-e56c-927cdf34e178</uuid> <memory>1048576</memory> ... </devices> </domain> </domainsnapshot>