----- Original Message ----- > From: "Eric Blake" <eblake@xxxxxxxxxx> To: "Andrew Martin" > <amartin@xxxxxxxxxxx>, libvirt-users@xxxxxxxxxx Sent: Thursday, May 22, 2014 > 5:44:54 PM Subject: Re: Live snapshots of a single block > device > > On 05/22/2014 04:31 PM, Andrew Martin wrote: > > Hello, > > > > [Can you convince your mailer to wrap long lines?] Sorry, my client won't auto-wrap and I forgot to run my post through vim before sending. Will do now :) > > > 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. The VM hosts I'm using all run Ubuntu 12.04 and I haven't had time to backport and test newer versions yet. I've published the latest versions I built in this PPA: https://launchpad.net/~xespackages/+archive/virtualization The main functionality I need is live snapshotting with snapshot-create-as and blockpull, so I haven't had a good reason to invest time to upgrade. > > 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> > Ah, that makes sense, thanks so much for clearing this up! > > > > 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). I'm using this code in a script for creating live backups of VMs - would it make sense to include --memspec to capture the memory state so that an fsck on boot isn't necessary? I remember you explained --quiese awhile back: https://www.redhat.com/archives/libvirt-users/2013-February/msg00020.html However I don't have qemu-guest-agent installed on the guests, so would using --memspec instead of --disk-only produce a snapshot that is consistent (since it would "resume" with the same memory state) or would this not be ideal for backups (e.g easy to restore/recover)? Can the memory image be written to the same image file (qcow2) as the disk snapshot? Thanks, Andrew _______________________________________________ libvirt-users mailing list libvirt-users@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvirt-users