diff --git a/docs/formatsnapshot.html.in b/docs/formatsnapshot.html.in index a0940ac4ba1217370414af74a19f699035413975..5c6b28202e3b62caf4c785f2022b7f1cbb24ce33 100644 --- a/docs/formatsnapshot.html.in +++ b/docs/formatsnapshot.html.in @@ -68,9 +68,9 @@
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
+ time, normally only the name
, description
,
+ and disks
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),
@@ -106,6 +106,58 @@
description is omitted when initially creating the snapshot,
then this field will be empty.
+
disks
disks
with a system
+ checkpoint. This element has a list of disk
+ sub-elements, describing anywhere from zero to all of the
+ disks associated with the domain. Since
+ 0.9.5
+ disk
name
is
+ mandatory, and must match the <target
+ dev='name'/>
of one of
+ the disk
+ devices specified for the domain at the time of the
+ snapshot. The attribute snapshot
is
+ optional, and has the same values of the disk device
+ element for a domain
+ (no
, internal
,
+ or external
). Some hypervisors like ESX
+ require that if specified, the snapshot mode must not
+ override any snapshot mode attached to the corresponding
+ domain disk, while others like qemu allow this field to
+ override the domain default. If the snapshot mode is
+ external (whether specified or inherited), then there is
+ an optional sub-element source
, with an
+ attribute file
giving the name, and an
+ optional sub-element driver
, with an
+ attribute type
giving the driver type (such
+ as qcow2), of the new file created by the external
+ snapshot of the new file. If source
is not
+ given, a file name is generated that consists of the
+ existing file name with anything after the trailing dot
+ replaced by the snapshot name. Remember that with external
+ snapshots, the original file name becomes the read-only
+ snapshot, and the new file name contains the read-write
+ delta of all disk changes since the snapshot.
+ creationTime
Using this XML on creation:
+Using this XML to create a disk snapshot of just vda on a qemu + domain with two disks:
<domainsnapshot> <description>Snapshot of OS install and updates</description> + <disks> + <disk name='vda'> + <source file='/path/to/new'/> + </disk> + <disk name='vdb' snapshot='no'/> + </disks> </domainsnapshot>
will result in XML similar to this from - virDomainSnapshotGetXMLDesc:
+virDomainSnapshotGetXMLDesc()
:
<domainsnapshot> <name>1270477159</name> @@ -162,13 +221,61 @@ <parent> <name>bare-os-install</name> </parent> + <disks> + <disk name='vda' snapshot='external'> + <driver type='qcow2'/> + <source file='/path/to/new'/> + </disk> + <disk name='vdb' snapshot='no'/> + </disks> <domain> <name>fedora</name> <uuid>93a5c045-6457-2c09-e56c-927cdf34e178</uuid> <memory>1048576</memory> ... + <devices> + <disk type='file' device='disk'> + <driver name='qemu' type='raw'/> + <source file='/path/to/old'/> + <target dev='vda' bus='virtio'/> + </disk> + <disk type='file' device='disk' snapshot='external'> + <driver name='qemu' type='raw'/> + <source file='/path/to/old2'/> + <target dev='vdb' bus='virtio'/> + </disk> + ... </devices> </domain> </domainsnapshot>+ +
With that snapshot created, /path/to/old
is the
+ read-only backing file to the new active
+ file /path/to/new
. The <domain>
+ element within the snapshot xml records the state of the domain
+ just before the snapshot; a call
+ to virDomainGetXMLDesc()
will show that the domain
+ has been changed to reflect the snapshot:
+
+<domain> + <name>fedora</name> + <uuid>93a5c045-6457-2c09-e56c-927cdf34e178</uuid> + <memory>1048576</memory> + ... + <devices> + <disk type='file' device='disk'> + <driver name='qemu' type='qcow2'/> + <source file='/path/to/new'/> + <target dev='vda' bus='virtio'/> + </disk> + <disk type='file' device='disk' snapshot='external'> + <driver name='qemu' type='raw'/> + <source file='/path/to/old2'/> + <target dev='vdb' bus='virtio'/> + </disk> + ... + </devices> +</domain>