[libvirt] [PATCH] Introduce yet another migration version in API.

Dan Kenigsberg danken at redhat.com
Wed Nov 3 14:51:18 UTC 2010


On Tue, Nov 02, 2010 at 01:08:53PM +0000, 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

What happens if no confirmation is recieved (destination silently died)?
Will there be a timeout (bad idea), or at least a means by which higher
level management can cancel migration?

Either way, I did not get the suggestion to contact divinity.

> +    /*
> +     * If Perform3 indicated an error, or if NULL was returned
> +     * from Finish3, then the status code tells the source
> +     * to resume CPUs on the original VM.
> +     */
> +    ret = domain->conn->driver->domainMigrateConfirm3
> +        (domain->conn, dname, cookiesrc, cookiesrclen, cookiedst, cookiedstlen,
> +         uri, flags, ret >= 0 && domain ? 0 : -1);
> +    /* XXX is there anything we can do if Confirm3 returns -1.
> +     * Probably nothing beyond praying
> +     */




More information about the libvir-list mailing list