Hi Nir,
The experimental patch attached (for discussion) would enable
multi-conn. For current virt-v2v this would have no effect since
"qemu-img convert" does not make multi-conn NBD connections.
However for modular virt-v2v[1] which uses nbdcopy this would allow
nbdcopy to make multiple NBD connections to nbdkit running the plugin.
(By default 4 connections).
If I understand the rhv-upload-plugin code correctly, there is a pool
per NBD connection at the moment, so this would create 4 pools and 4*4
backend connections to imageio. This is possibly not desirable, but I
guess we can turn the pool into a global object. (Note each NBD
connection has the same (destination_url, host, options) tuple).
Naturally I've not actually tested any of this. There are some
advantages from the nbdcopy side of things, especially because it is
able to query extents on the input side in parallel which seems to be
advantageous for inputs with slow extent querying (like VDDK). There
may be further advantages on the output side because it would allow us
to write data to the RHV upload plugin over four sockets, allowing
better use of multiple cores.
Rich.
[1]
https://github.com/rwmjones/virt-v2v/commits/2021-virt-v2v-split