[libvirt] PATCH: Inform QEMU "prepare" hook of migration in progress
Daniel P. Berrange
berrange at redhat.com
Thu Dec 15 23:32:23 UTC 2011
On Thu, Dec 15, 2011 at 01:59:06PM -0700, Eric Blake wrote:
> On 12/15/2011 09:49 AM, Adam Tilghman wrote:
> >> From: Eric Blake <eblake redhat com>
> >> Subject: Re: [libvirt-users] Wanted: method for qemu hook script to know if called for migration
> >> Date: Mon, 25 Jul 2011 14:17:08 -0600
> >>
> >>> As a feature suggestion, it would be nice if that fourth input variable,
> >>> currently "-", was something like "migrate" in this instance.
> >>
> >> Yes, that is probably a bug worth fixing.
> >
> > I would also find it useful for the QEMU "prepare" hook
> > to be told whether it's being called in the context of a migration.
> >
> > (In our case, we use that hook to manage shared DRBD storage, and only permit
> > Primary/Primary mode in the context of a migration.)
> >
> > The attached 1-line patch supplies the hook with an additional
> > argument "migration-target" when appropriate.
> >
> > Submitted as https://bugzilla.redhat.com/show_bug.cgi?id=768054
> >
>
> > hookret = virHookCall(VIR_HOOK_DRIVER_QEMU, vm->def->name,
> > - VIR_HOOK_QEMU_OP_PREPARE, VIR_HOOK_SUBOP_BEGIN, NULL, xml);
> > + VIR_HOOK_QEMU_OP_PREPARE, VIR_HOOK_SUBOP_BEGIN, migrateFrom ? "migration-target" : NULL, xml);
>
> The idea is nice, but I don't think it's quite the right implementation.
> migrateFrom is non-NULL not only for migration, but also for operations
> like 'virsh restore file' when restoring from a file-based migration
> stream even though we aren't changing hosts. Rather, we need to thread
> something through the call chain so that we can tell whether this code
> was reached from qemu_migrate.c during an actual migration case. In
> fact, it might be nice to know when 'virsh restore' was in use,
> separately from migration, separately from a fresh boot, so that we
> provide more than just '-' or 'migration-target' as the fourth hook
> argument.
That information is in fact already passed into qemuProcessStart()
via the virDomainRunningReason parameter, one of whose possible
values is VIR_DOMAIN_RUNNING_MIGRATED
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