On 11/15/2011 02:19 PM, Philipp Hahn wrote:
Hello,
this mail is something between a bug report and a warning to other users of
libvirt, before they also experience the problem I encountered today:
I just hat the painful experience of trying to install some newer versions of
qemu(-kvm) and libvirt on a system with many managedsave-states and many
snapshots. They are now all broken because
1. Newer qemu(-kvm) uses iPXE instead of etherboot, which have different ROM
file sizes, which aborts loading the old VM state. So be careful to not
delete your old PXE-ROM images.
Is there a way to select which ROM image qemu uses from the qemu command
line? And should libvirt be exposing this in the domain XML? I agree
that it is a bad idea to make any backwards-incompatible ABI changes,
and if changing out the PXE-ROM image renders a save file broken, then
it argues that libvirt should be exposing this detail in the XML and
allow for a backwards-compatible default.
2. libvirt defaults to add ',multifuntion=on' to the (in my
case) rtl8139
network card and balloon-driver,
I thought that was a bug in 0.9.5, but fixed in the 0.9.6 release just
several days later. That is, we already agreed that 0.9.5 exposed the
problem of blindly enabling multifunction as being an ABI breaker, and
that 0.9.6 fixed things so that you have to explicitly request
multifunction in the XML. But now you're saying 0.9.6 was also faulty?
How about 0.9.7? Do you have a better formula for reproducing this?
So even if the qemu people try to be backward compatible with their
VMState
format, libvirt doesn't seem to handle backward compatibility taht good at
the moment.
Perhaps it would help to not (only) store the XML domain configuration for
snapshots and managedsave-files, but the exact qemu-argv string to at least
get libvirt out of any backward incompatible changes when re-constructing the
qemu command line from the XML data.
That won't help. The XML data should be properly translatable in an
ABI-compatible manner, regardless if qemu is upgraded in the meantime;
worse, you have to remember that qemu command lines change across
releases, so guaranteeing ABI stability may require using _different_
command lines in 0.15 than it did in 0.14; saving the argv you handed to
qemu 0.14 won't help you; but saving a complete XML description that can
map to either qemu 0.14 or qemu 0.15 will. So if it is problem of an
incomplete XML mapping, then we'd like to fix it, and sooner rather than
later.
--
Eric Blake eblake(a)redhat.com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org