The [libvirt]/live_migration_uri config option was deprecated in Ocata [1] in favor of two other config options:

live_migration_scheme: defaults to tcp (could be ssh), only used for kvm/qemu virt types

live_migration_inbound_addr: defaults to None, only used if doing a non-tunneled live migration

Those are used here:

https://github.com/openstack/nova/blob/7815108d4892525b0047c787cbd2fe2f26c204c2/nova/virt/libvirt/driver.py#L652

If you leave a %s in the URI, the libvirt driver will replace that with the destination target host.

Devstack is configuring the live_migration_uri option and setting it to "qemu+ssh://stack@%s/system" in our CI jobs. That %s gets replaced with the target destination host IP as noted above.

Since live_migration_uri is deprecated, I tried to update devstack to use the new options that replace it [2], but then I ran into some problems [3].

What I'm trying to do is continue to use ssh as the scheme since that's what devstack sets up. So I set live_migration_scheme=ssh.

Within the libvirt driver, it starts with a URL like this for qemu:

qemu+%s://%s/system

And does a string replace on that URL with (scheme, destination), which would give us:

qemu+ssh://<dest>/system

The problem lies in the dest part. Devstack is trying to specify the username for the ssh URI, so it wants "stack@%s" for the dest part. I tried setting live_migration_inbound_addr="stack@%s" but that doesn't work because the driver doesn't replace the dest on top of that again, so we just end up with this:

qemu+ssh://stack@%s/system

Is there some other way to be doing this? We could try to use tunneling but the config option help text for live_migration_tunnelled makes that sound scary, e.g. "Enable this option will definitely
impact performance massively." Holy crap Scoobs, let's scram!

Should we check if the scheme is ssh and try a final string replacement with the destination host after we've already applied (live_migration_scheme, live_migration_inbound_addr)?

Other ideas? Given the bazillion config options related to libvirt live migration, this is just a landmine of terrible so I'm interested in what people are doing config-wise if they are using ssh.

[1] https://review.openstack.org/#/c/410817/
[2] https://review.openstack.org/#/c/471011/
[3] http://logs.openstack.org/19/471019/1/check/gate-tempest-dsvm-multinode-live-migration-ubuntu-xenial/546935b/logs/screen-n-cpu.txt.gz?level=TRACE#_Jun_05_15_56_42_184587

--

Thanks,

Matt

__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to