
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_do_... 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