severity 631726 wishlist
merge 571063 631726
tags 631726 + confirmed upstream
thanks

26.06.2011 18:56, Benoit Panizzon wrote:
> Package: qemu-kvm
> Version: 0.12.5+dfsg-5+squeeze2
> Severity: important
> 
> Probably a common setup:
> 
> Two host servers (A and B) serving multipe guest.
> Images stored on common NFS server to both host servers, so migration is 
> possible.
> 
> Guests are set-up for auto-start with libvirt.
> 
> One host server has to be booted for maintenance. All guests are being 
> manualy migrated to host B.

And we've a catch-22 scenario.  In order for migrate to
work, both hosts should be able to open the disk images
at the same time - you start kvm on the target host the
same way as you do it on the source host, specifying the
same files.  If source host had them locked, dest. kvm
will not be able to open them.

There's more than migration - there, it should be possible
to release the lock on source, start incoming migration
on target (with locked drives) and handle errors, but that
quickly becomes too ugly.  We also have stacked disk images,
and there, we've similar complexities - the base image should
be locked too when at least one "slave" image _exists_ (not
only open), and there are cases when one need to open it
while it's in use.

There are other valid use cases with even more dangerous
possibilities - for example, quite often I boot my kvm
guest from my main drive - on my physical /dev/sda drive
I've two operating systems installed (win7 and linux), and
sometimes I want to boot win7 while staying in linux -
kvm allows me (after some tweaking of guest side) to boot
natively installed win7 just fine.  Sure thing I wont
be able to boot it this way if qemu will require locking
(or, in this case, exclusive open which is quite something
else).

This has been discussed in qemu mailing list - see several
threads from 2009, say, "Disk image shared and exclusive locks",
"Locking block devices for concurrent access" and a few others.
So far there has been nothing conclusive.

I agree there's a high risk of damaging guest images when
starting multiple qemu/kvm instances off the same image,
and that qemu should try to be more careful by default
(with an option to stop doing these checks/locks), but
the problem is far more deep than you think it is.

For your case there's a trivial workaround: rename the
guest images (place them in a different directory, or
rename the base directory, whatever) before migrating.
This way, you start your incoming migration with new
filenames already, and your source host wont be able
to open them till you actually tell it to do so.

Another possible workaround is to have a flag - eg. a
file in the guest directory - which contains the name
of host which is currently running (or should run) the
guest - and check if that file has current hostname
before starting it.

Or something else of this theme, -- it can become quite
creative.

So, since the problem has a (relatively) easy workaround
(outside of qemu/kvm) and since the underlying problem
is quite deep and involves upstream who hasn't decided
yet what to do with it, I'm marking this bug appropriately -
with severity "wishlist" and appropriate tags.

There's another similar bugreport filed against qemu-kvm
which shows another possible use case - mergeing this bug
with that one while at it, too.

Thanks!

/mjt




-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to