Chris Lalancette wrote:
We've been trying to plumb libvirt to do KVM migration.  One of the stumbling
blocks we are running into, however, is that libvirt expects to be able to use
the Qemu monitor both before and after migration has taken place, on both the
source and destination nodes.  After migration has taken place is no problem; we
return to the main qemu select() loop, and we can run monitor commands.
However, before migration, on the destination side, when we start qemu with a
command-line like:

qemu-kvm -M pc -S blah blah -incoming tcp://0:4444

we can't run any monitor commands since the migration code is synchronously
waiting for an incoming tcp connection.  To get around this, the following patch
adds a new monitor command called "migrate_incoming"; it takes all of the same
parameters as the command-line option, but just starts it later.  To make sure
it is safe, you actually have to start with "-incoming monitor"; if you run it
without that, it will just spit an error at you.  So with this in place, libvirt
can do the equivalent of:

qemu-kvm -M pc -S blah blah -incoming monitor

I think adding a 'nowait' parameter to migration would make more sense than introducing a monitor command.

So:

qemu-kvm -M pc -S blah blah -incoming tcp://0:4444,nowait

From an implementation perspective, it's just a matter of setting a callback for the accept fd I imagine.

Regards,

Anthony Liguori


(qemu) info cpus
...other commands
(qemu) migrate_incoming tcp://0:4444
...wait for migration to start, and then complete
(qemu) info block
...etc.

Signed-off-by: Chris Lalancette <[EMAIL PROTECTED]>

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to