
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