On Fri, Nov 30, 2018 at 04:03:29PM -0600, Eric Blake wrote:
I note that upstream NBD has 'nbd-client -l $host' for querying
just export names (with no quoting, so you have to know that
a blank line means the default export), but it wasn't powerful
enough, so I implemented 'qemu-nbd -L' to document everything.
Upstream NBD has separate 'nbd-client' and 'nbd-server' binaries,
while we only have 'qemu-nbd' (which is normally just a server,
but 'qemu-nbd -c' also operates a second thread as a client).
Our other uses of qemu as NBD client are for consuming a block
device (as in qemu-io, qemu-img, or a drive to qemu) - but those
binaries are less suited to something so specific to the NBD
protocol.
I tried it against nbdkit and it works (obviously):
$ ./qemu-nbd -L
exports available: 1
export: ''
size: 67108864
flags: 0x61 ( trim zeroes )
What I couldn't work out is how to connect to other hosts. It's
possible to add -p or -k to change the localhost port number or to use
a Unix domain socket (and I checked both work). However can we
connect to remote hosts?