[libvirt] Live Migration with non-shared storage for kvm

On January 5 I asked for comments on adding libvirt support for live migration with non-shared storage on kvm. I did not get any comments so I am repeating my request: Support for live migration between hosts that do not share storage was added to qemu-kvm release 0.12.1. It supports two flags: -b migration without shared storage with full disk copy -i migration without shared storage with incremental copy (same base image shared between source and destination). I suggest adding these flags to virDomainMigrate. If I'm not mistaken qemuMonitorTextMigrate is the function that actually invokes the kvm monitor. Thus, it would be necessary to pass the flags to qemuMonitorTextMigrate.. But qemuMonitorTextMigrate does not have a flag input parameter. I think the least disruptive way to support the new flags is use the existing "background" parameter to pass the flags. Of course this would require some changes to the upstream functions that are invoked for migration. What do you think? Kenneth Nagin

On Tue, Jan 26, 2010 at 11:57:25AM +0200, Kenneth Nagin wrote:
On January 5 I asked for comments on adding libvirt support for live migration with non-shared storage on kvm. I did not get any comments so I am repeating my request:
Sorry I missed your original mail - January 5th was unlucky timing, since I had a backlog of several thousand emails from the xmas break :-)
Support for live migration between hosts that do not share storage was added to qemu-kvm release 0.12.1. It supports two flags: -b migration without shared storage with full disk copy -i migration without shared storage with incremental copy (same base image shared between source and destination).
Interesting, I'd not seen those flags before. How does that work with the destination side, if the disks do not already exist there ? Does the mgmt app have to just create a zero-sized disk, start QEMU & then let the data be copied. I'm guessing QEMU can't create the disk itself, since it'll be trying to open it on the destination before the incoming migration even starts.
I suggest adding these flags to virDomainMigrate.
That sounds reasonable.
If I'm not mistaken qemuMonitorTextMigrate is the function that actually invokes the kvm monitor. Thus, it would be necessary to pass the flags to qemuMonitorTextMigrate.. But qemuMonitorTextMigrate does not have a flag input parameter. I think the least disruptive way to support the new flags is use the existing "background" parameter to pass the flags. Of course this would require some changes to the upstream functions that are invoked for migration.
That is an internal function, so adding extra parameters to it is no problem at all - no need to reuse/abuse existing parameters. Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
participants (2)
-
Daniel P. Berrange
-
Kenneth Nagin