On Sun, Aug 28, 2022 at 11:21:25PM +0800, Ming Lei wrote:
On Sat, Aug 27, 2022 at 06:40:29PM +0100, Richard W.M. Jones wrote:
> Alright, so final version for now is here:
>
>
https://gitlab.com/rwmjones/libnbd/-/tree/nbdublk/ublk
Just clone the above branch, but can't build because of missing
ocamlbuild & ocamlcc.
You should only need /usr/bin/ocamlc I think. It is used to generate
the state machine and language bindings.
But can you share what status nbdublk is now? Is it enough as one
basic nbd product?
It uses libnbd so it supports pretty much the whole NBD protocol.
URIs, Unix & TCP, TLS, discard, zero, block size preferences, etc.
That means it's already more featureful than nbd.ko which doesn't
support NBD URIs or block size prefs. Is there a particular feature
you're thinking about?
IMO, it is pretty easy to make one toy, but very hard to build one
product, I really appreciate that you can provide some feedback
on libublksrv from viewpoint of nbdublk as product, such as,
current APIs are enough to build basic product of nbd? Are these
APIs enough to build stable enough nbd product? Are they fine to
reach expected performance?
Performance was within 25% of disk access over virtio-scsi, which I
think is pretty good.
IMO, this feedback is very helpful for evaluating if current APIs
are
stable enough.
>
> - We need to enable the device in the Fedora kernel.
OK, what is the Fedora release you plan to enable nbdublk?
You'll need to open a BZ again the kernel and ask them to enable the
config setting.
> - We need libubdsrv + ublk tool in Fedora.
I guess libublksrv is enough, why do you need ublk too for nbdublk?
It's not really possible to use nbdublk on its own. You need at least
"ublk list" and "ublk del" commands to make something useful.
> - Possible we need to add tests into the libnbd tree. I
couldn't
> think of a good way to test this that doesn't require root and
> potentially do some horrible stuff to the testing machine.
So far, root is still required, but in future we hope root privilege
becomes not needed.
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
libguestfs lets you edit virtual machines. Supports shell scripting,
bindings from many languages.
http://libguestfs.org