On Tue, Aug 25, 2020 at 04:31:29PM +0100, Daniel P. Berrangé wrote:
On Tue, Aug 25, 2020 at 07:47:14AM +0200, Martin Kletzander wrote:
> This allows:
>
> a) migration without access to network
>
> b) complete control of the migration stream
>
> c) easy migration between containerised libvirt daemons on the same host
>
> Resolves:
https://bugzilla.redhat.com/1638889
>
> Signed-off-by: Martin Kletzander <mkletzan(a)redhat.com>
> ---
> docs/manpages/virsh.rst | 17 ++++-
> docs/migration.html.in | 33 ++++++++++
> src/qemu/qemu_migration.c | 128 +++++++++++++++++++++++++++-----------
> +virsh migrate web1 [--p2p] --copy-storage-all
'qemu+unix:///system?socket=/tmp/migdir/test-sock-driver'
'unix://?socket=/tmp/migdir/test-sock-qemu' [--listen-address
/tmp/migdir/test-sock-qemu] --disks-socket /tmp/migdir/test-sock-nbd
> + </pre>
Why unix://?socket=/tmp/migdir/test-sock-qemu instead of the more obvious
unix:///tmp/migdir/test-sock-qemu ? It feels like ?socket is just
reinventing the URI path component.
That ?socket syntax makes sense for the libvirtd URIs, because we use
the path component to identify the libvirtd instance.
For the migration URI nothing is using the path component, so we should
use that for the UNIX path.
I, personally, would prefer to have it unified. Having different way of
specifying a unix socket for each parameter is just anti-UX. And since the
libvirt URI and NBD URI [1] might use the path component, I did not want to
reinvent the wheel of specifying socket paths. And I'm not getting to anonymous
sockets and the like.
[1]
https://github.com/NetworkBlockDevice/nbd/blob/master/doc/uri.md