
Am 02.07.13 15:42, schrieb Eric Blake:
On 07/02/2013 06:55 AM, Thomas Stein wrote:
virsh dumpxml --security-info dom > dom.xml virsh undefine dom
Hello.
Someone was talking about this (undefining the VM) would not be neccessary anymore when qemu-1.5 has been released. Is that true?
Undefining the VM will not be necessary after two things happen: 1. qemu supports persistent bitmaps (which missed 1.5, and I'm not even sure if Paolo plans on getting it in before 1.6) 2. libvirt has code added to use persistent bitmaps
so unfortunately, you'll still have to use undefining for a bit longer.
Meanwhile, qemu 1.6 is adding a new block-backup command that is nicer than the current blockcopy (it does not require a persistent bitmap, and takes the snapshot at the point in time where it is started, not where it is ended); I'm also trying to figure out what API additions are needed to libvirt to expose that capability as an alternative.
Okay, understood.
virsh blockcopy dom vda /path/to/backup-vda polling loop - check periodically until 'virsh blockjob dom vda' shows 100% completion virsh suspend dom virsh save dom /path/to/memory-backup --running
This does not work for me.
hn ~ # virsh blockjob gentoo-template vda Block Copy: [100 %]
hn ~ # virsh save gentoo-template /opt/virt-backup-blockcopy/gentoo-template/gentoo-template-memory-backup --running error: Failed to save domain gentoo-template to /opt/virt-backup-blockcopy/gentoo-template/gentoo-template-memory-backup error: Requested operation is not valid: domain has an active block job
Obviously i can not save while the blockjob is running.
Oh dear. That's what I get for trying to write steps without actually testing them :(
Try this modification (again untested, but at least doesn't have a block job running during the save attempt):
virsh dumpxml --security-info dom > dom.xml virsh undefine dom virsh blockcopy dom vda /path/to/backup-vda polling loop - check periodically until 'virsh blockjob dom vda' shows 100% completion virsh suspend dom virsh blockjob dom vda --abort virsh save dom /path/to/memory-backup --running virsh resume dom virsh define dom.xml
Much better but still a problem. virsh suspend gentoo-template Domain gentoo-template suspended virsh blockjob gentoo-template vda --abort virsh save gentoo-template /opt/virt-backup-blockcopy/gentoo-template/gentoo-template-memory Domain gentoo-template saved to /opt/virt-backup-blockcopy/gentoo-template/gentoo-template-memory virsh resume gentoo-template error: failed to get domain 'gentoo-template' error: Domain not found: no domain with matching name 'gentoo-template'
Basically, swap the 'blockjob --abort' and 'save' steps to take place in the opposite order. Since the guest is paused, there should be no difference in the bits that get saved, and the swapped order should get around the annoying code restrictions.
I think i have to use "start" instead of "resume" although i don't understand this behaviour. Maybe i have to define the VM first? Is "virsh save dom" shutting down the VM? Thank you very much Eric. t.