[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] How to avoid the disk still persistent after no persistent hotplug and with restarting libvirtd then.



On 08/19/2011 08:17 AM, Osier Yang wrote:
Libvirt loads the domain conf from the status file
(/var/run/libvirt/qemu/$dom.xml)
if the domain is running, the problem if one restart libvirtd just after
some changing on the domain conf, and then destroy/start the guest.
libvirt will never known what the original domain conf is then.
(vm->newdef is NULL at this moment, generally libvirt restore the domain
conf
to the original conf (vm->newDef) when destroying and shutdown).

Sounds to me like this is a bug in libvirtd reloading. For a running persistent guest, libvirt should be looking in two files: both the running state (/var/run/libvirt/qemu/$dom.xml) and the next-boot state (/etc/lib/libvirt/qemu/$dom.xml); and if they differ, then assign vm->newDef to the persistent definition. In other words, the bug is that vm->newdef was NULL after libvirtd restart.

The solution in my mind is to add some attribute to the status XML, such
as "live_updated=1", and do the checking when loading the domain conf
from status XML:

Shouldn't need any XML changes; rather, libvirtd just needs to be taught to properly reconstruct its state from multiple files, instead of assuming that the first file that worked was all the state it needed.

For a transient domain, we still have no way to get the original domain
conf,
that means one will still be surprised when seeing the the disk is still
there.

For a transient domain, it is already forbidden to request a persistent change. So you can't get into this situation in the first place unless you have a persistent domain.

--
Eric Blake   eblake redhat com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]