|
From: | Anthony Liguori |
Subject: | Re: [Qemu-devel] Re: [PATCH 3/5] QMP: Introduce MIGRATION events |
Date: | Tue, 25 May 2010 11:33:15 -0500 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.5) Gecko/20091209 Fedora/3.0-4.fc12 Lightning/1.0pre Thunderbird/3.0 |
On 05/25/2010 11:25 AM, Daniel P. Berrange wrote:
On Tue, May 25, 2010 at 06:04:17PM +0200, Juan Quintela wrote:Anthony Liguori<address@hidden> wrote:On 05/25/2010 10:35 AM, Juan Quintela wrote:problem here is that libvirt start target with -S, and waits to do the "cont" as soon as possible. As of know, only way to do it is to poll info migrate on source faster.Why does it do that?? That sound like a terrible idea.Becaues migration is not reliable, and they don't have a way to issue cont only in one of the sides :( We make migration protocol reliable, or management application have to decide when migration suceeded or not. This new events help then a lot. But they issue the cont really fast (before migration ends). I don't remember why they did that.The use of '-S / cont' isn't really because of reliability. There are several scenarios though. There's a migrate API option to leave the guest paused upon completion, hence we need to start it with -S to stop it auto-running upon completion.
That's a strange API. Why would you want to do that? Why not just stop and then migrate? You're just wasting bandwidth doing a live migration and then leaving it stopped. This is a critical period of time for the guest and generally speaking, you don't want to involve many layers of management tooling in these decisions because the result is going to be that you break the migration downtime contract.
With some disk locking approaches we need todo a lock transfer before allowing the dest to continue running.
QEMU is going to read the disk before the migration completes so the lock transfer is not going to work with the current implementation (it needs to read the disk to do probing). I assume this is not something that's actually been implemented.
It could be optimized to avoid the -S /cont in cases where those two scenarios aren't relevant, but only if we can get a separate async notification of when migration starts and completes on the destination, so we can notify mgmt apps that need this lifecycle event.
Migration completes == guest starts running. You'll get a notification of that but you're not getting that now because you're doing -S which I'd argue is a functional problem on the part of libvirt (you're breaking the downtime contract).
I'm not sure why you would need a notification of when migration starts (since you know when you've started migration).
Regards, Anthony Liguori
So in summary these lifecycle events on source + dest for start, complete, fail, cancel are all focused on allowing libvirt to remove its existing hacks in migration support for current QEMU. Regards, Daniel
[Prev in Thread] | Current Thread | [Next in Thread] |