[libvirt-users] Live snapshots of a single block device
Eric Blake
eblake at redhat.com
Thu May 22 22:44:54 UTC 2014
On 05/22/2014 04:31 PM, Andrew Martin wrote:
> Hello,
>
[Can you convince your mailer to wrap long lines?]
> I am working on a script to automatically create live snapshots of
> running VMs using qemu-kvm 1.4.0 and libvirt 1.0.2. If a VM has
Any reason you aren't upgrading to newer versions? Although these seem
sufficient for what you are trying.
> multiple disks, I'd like to back them up individually with separate
> calls to snapshot-create-as, so I can more easily manage the disk
> images. The code I have now is essentially as follows:
> virsh snapshot-create-as --domain "vmname" --name "snapshotname" --description "snapshot description" --disk-only --atomic --no-metadata --diskspec "vda"
>
> I run this command for each block device (e.g vda, vdb, etc). However, after running the above command (to only backup vda), I see that a snapshot has also been created for vdb. I tried running it with --print-xml, which gives this output:
> <domainsnapshot>
> <name>05-22-14_17-09-25</name>
> <description>05-22-14_17-09-25</description>
> <disks>
> <disk name='vda'/>
> </disks>
The problem you are facing is that the snapshot code MUST have an action
for every disk; and if you don't specify the action directly in your
<domainsnapshot> xml, then the action chosen is inherited from the
<domain> xml (if you used <disk snapshot='no'>) or ultimately from the
type of snapshot you are creating (here, since you didn't use <disk
snapshot='no'> in the domain xml, and didn't specify vdb in the
<domainsnapshot>, libvirt assumes from --disk-only that you want vdb to
have an external snapshot taken).
> </domainsnapshot>
>
> What am I doing wrong - how can I tell snapshot-create-as to create an external snapshot for a specific block device only (not all block devices)?
Use: --diskspec vda --diskspec vdb,snapshot=no
which produces this subset of xml:
<disks>
<disk name='vda'/>
<disk name='vdb' snapshot='no'/>
</disks>
>
> Also, while looking at the manpage, does the --live option do anything different if used with the above command?
--live only makes sense when mixed with memory snapshots (with
--memspec); but as you are doing a --disk-only snapshot, it doesn't help
(I'm not sure if it will error out as mutually exclusive or just be
silently ignored, without reading the code).
--
Eric Blake eblake 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: 604 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvirt-users/attachments/20140522/33558479/attachment.sig>
More information about the libvirt-users
mailing list