All,
Attached is a patch to implement Qemu/KVM live migration in libvirt. Now
that upstream Qemu has settled on an interface that is friendly to libvirt (i.e.
one that doesn't block the monitor on -incoming), we can implement it here.
Note that the bulk of this patch was written by Rich Jones quite a while ago.
My hand in it has mostly been to forward port it to current libvirt CVS, tweak
it for the new Qemu style, and test it out with a recent KVM (kvm-78, in
particular).
Note that there is a FIXME in the code. When testing this out with kvm-78,
I found that if I let the source side kill the source VM immediately after the
"migrate" monitor command completed, the migration to the destination would
never complete. This seems to be a bug in Qemu; the migrate monitor command
shouldn't return until the migrate is really, truly complete. I'm posting this
now so I can get reviews, and start to address review comments while I try to
figure out what's going on with Qemu. With my temporary hack of the sleep()
call in there, though, I was able to successfully live migrate an F-9 guest
between two machines.
Signed-off-by: Chris Lalancette <clalance(a)redhat.com>