[libvirt] [PATCH 3/6] Introduce yet another migration version in API.
Daniel P. Berrange
berrange at redhat.com
Wed Apr 13 11:28:49 UTC 2011
On Tue, Apr 12, 2011 at 05:12:18PM -0600, Eric Blake wrote:
> On 02/09/2011 09:58 AM, Daniel P. Berrange wrote:
> > This patch attempts to introduce a version 3 that uses the
> > improved 5 step sequence
> >
> > * Src: Begin
> > - Generate XML to pass to dst
> > - Generate optional cookie to pass to dst
> >
> > * Dst: Prepare
> > - Get ready to accept incoming VM
> > - Generate optional cookie to pass to src
> >
> > * Src: Perform
> > - Start migration and wait for send completion
> > - Generate optional cookie to pass to dst
> >
> > * Dst: Finish
> > - Wait for recv completion and check status
> > - Kill off VM if failed, resume if success
> > - Generate optional cookie to pass to src
> >
> > * Src: Confirm
> > - Kill off VM if success, resume if failed
>
> I've been thinking about this a bit more, and have a question. What
> happens when the source side decides to abort the migration? For
> example, if libvirtd on the source gets a SIGHUP or SIGINT, it would be
> nice to have the cleanup code abort any in-flight migrations so that
> when libvirtd is restarted, the guest is still operational on the
> source, and the guest does not have to wait for a full TCP timeout cycle
> to realize that the source is not going to complete the migration.
>
> Does this call for additional internal points in the RPC implementation
> of v3 migration?
The source can already abort migration, even in the v2 protocol, using
the virDomainJobAbort() API (or virsh domjobabort). This issues a
'migrate_cancel' monitor command to QEMU, which in turns causes the
'perform' step to return failure, which is passed to the 'finish'
step which tears down the destination VM
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the libvir-list
mailing list