[libvirt] [PATCH]: Add a flag to let live migration be persistent

Daniel Veillard veillard at redhat.com
Wed May 20 10:06:34 UTC 2009


On Wed, May 20, 2009 at 11:15:14AM +0200, Chris Lalancette wrote:
> As pointed out by Łukasz Mierzwa <l.mierzwa at gmail.com>, it would be nice if
> there was an option to automatically make a domain persistent on the destination
> during a live migration.  The attached patch adds this simple capability.  Note
> that this has to be applied on top of my previous secure migration patch,
> otherwise you'll have conflicts.
> 
> Signed-off-by: Chris Lalancette <clalance at redhat.com>

  Patch looks fine to me, but

> @@ -5291,6 +5292,32 @@ qemudDomainMigrateFinish2 (virConnectPtr dconn,
>       * object, but if no, clean up the empty qemu process.
>       */
>      if (retcode == 0) {
> +        if (flags & VIR_MIGRATE_PERSISTENT) {
> +            if (vm->persistent)
> +                newVM = 0;
> +            vm->persistent = 1;
> +
> +            if (virDomainSaveConfig(dconn, driver->configDir, vm->def) < 0) {
> +                /* Hmpf.  Migration was successful, but making it persistent
> +                 * was not.  If we report successful, then when this domain
> +                 * shuts down, management tools are in for a surprise.  On the
> +                 * other hand, if we report failure, then the management tools
> +                 * might try to restart the domain on the source side, even
> +                 * though the domain is actually running on the destination.
> +                 * Return a NULL dom pointer, and hope that this is a rare
> +                 * situation and management tools are smart.
> +                 */
> +                vm = NULL;
> +                goto cleanup;
> +            }

  Yup that's a hard decision here, I wonder if some asynchronous event
shoul not be generated, at least make sure an error is propagated in
some ways.

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list