On 04/14/2015 09:17 AM, Andrew Martin wrote:
Hello,
I am using "virsh snapshot-create-as" to create external snapshots of running
VMs using libvirt 1.0.2 on Ubuntu 12.04 and libvirt 1.2.2 on Ubuntu 14.04. This
works well for creating the snapshots, but I notice that the on-disk XML file
in /etc/libvirt/qemu is not updated with the new disk image file after the
snapshot is created. This appears to be very similar to
https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1403841, but occurs on
both 12.04 and 14.04 so I am not sure it is the same bug.
There have been some bug fixes in newer libvirt; for example, commit
9f97485 (v1.2.12) is relevant. I'm not sure why your vendor is not
backporting these fixes to the build shipped in Ubuntu, but you can
manually run a newer libvirt to work around the problem.
This presents a problem if the virtual machine host is suddenly powered off
since a subsequent boot will find the VM using an older image file to boot
rather than the most recent snapshot. Is it safe for me to use an external
wrapper script that does the following to ensure the on-disk XML is up-to-date:
virsh snapshot-create-as ....
virsh dumpxml > /etc/libvirt/qemu/<domain>.xml
No. That is not safe.
Is it safe for me to overwrite the contents of /etc/libvirt/qemu/<domain>.xml
manually while the VM is running?
Not at all.
http://wiki.libvirt.org/page/FAQ#Where_are_VM_config_files_stored.3F_How_...
Instead, if you are still suffering from a build of libvirt that fails
to update the files in /etc when taking a snapshot, do some other action
that DOES update /etc (such as changing the domain description), or at a
bare minimum use 'virsh define' instead of manually writing into /etc
yourself.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org