On Thu, May 15, 2014 at 11:50:54AM +0200, Jiri Denemark wrote:
On Wed, May 14, 2014 at 15:18:09 +0800, Chen Fan wrote:
> For now, we set the migration URI via command line '--migrate_uri' or
> construct the URI by looking up the dest host's hostname which could be
> solved by DNS automatically.
>
> But in cases the dest host have two or more NICs to reach, we may need to
> send the migration data over a specific NIC which is different from the
> automatically resloved one for some reason like performance, security, etc.
> thus we must explicitly specify the migrateuri in command line everytime,
> but it is too troublesome if there are many such hosts(and don't forget
> virt-manager).
>
> This patches add a configuration file option on dest host to save the
> default migrate uri which explicitly specify which of this host's
> addresses is used for transferring data, thus user doesn't boring
> to specify it in command line everytime.
>
> Signed-off-by: Chen Fan <chen.fan.fnst(a)cn.fujitsu.com>
> ---
>
> v3-v4: move up the default uri_in setting to
> qemuDomainMigratePrepare3Params()
>
> src/qemu/qemu.conf | 6 +++++-
> src/qemu/qemu_conf.c | 1 +
> src/qemu/qemu_conf.h | 1 +
> src/qemu/qemu_driver.c | 2 +-
> 4 files changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/src/qemu/qemu.conf b/src/qemu/qemu.conf
> index f0e802f..6b443d0 100644
> --- a/src/qemu/qemu.conf
> +++ b/src/qemu/qemu.conf
> @@ -449,7 +449,11 @@
> #
> #seccomp_sandbox = 1
>
> -
> +# Override the migration URI for specifying one of host's IP addresses
> +# to transfer the migration data stream.
> +# Defaults to hostname, both IPv4 and IPv6 addresses are accepted.
> +#
> +#migrate_uri = "tcp://192.168.0.1"
>
> # Override the listen address for all incoming migrations. Defaults to
> # 0.0.0.0, or :: if both host and qemu are capable of IPv6.
The more I think about this the more I incline to a slightly different
approach. Rather than providing a way to override migration URI, we
could just provide an option in libvirtd.conf to override what
virGetHostname returns. That is, the option (naturally called hostname)
would tell libvirt to use the configured hostname (which might even be
just an IP address) instead of trying to detect it.
I'm not sure this is a good idea. The hostname is used in a number of places
in libvirt, and we don't neccessarily want them all to use the same interface
as the migration data. eg if you have a NIC that is dedicated just for migration
traffic, you won't want to force other parts of libvirt to use that. So having
the migration hostname specified separately is a good idea IMHO. Perhaps we
could simplify though by having 'migrate_host' rather than 'migrate_uri'
?
And perhaps we do want a hostname override globally anyway, for other reasons.
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 :|