[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: FYI: Go implementation of the NBD protocol

Hi Richard,

no, I have only tested against nbd-{client,server} and the Linux kernel implementation. Compatibility simply hasn't been a huge priority for me :)

Personally, it seems more efficient to me to have one reference implementation and testsuite to run against new implementations, than to require each new implementation to build a new testsuite for each existing one. For example, I don't know nbdkit at all and know very little about qemu. The thought of having to figure out how to run a client/server of each and actually observe the outcomes of a testsuite seems… dreadful. Whereas if you'd give me a binary that I can just point at my server and it gives me a list of protocol-violations, I'd be fine to fix them all.

On Tue, Nov 27, 2018 at 8:45 AM Richard W.M. Jones <rjones@redhat.com> wrote:
On Tue, Nov 20, 2018 at 01:12:59AM +0100, Axel Wagner wrote:
> Hey,
> I thought this might be interesting to y'all: I implemented both client and
> server of the NBD protocol in Go. The intention is to use it for testing
> applications' durability guarantees via failure-injection. As such, the
> implementation is not necessarily complete.
> You can find the repository here: https://github.com/Merovius/nbd

Have you tried interoperability with qemu (client), qemu-nbd (server),
and nbdkit (server)?

I think more generally we should have some guidelines for testing
interop, such as a list of existing clients and servers that authors
should consider testing against.


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

Reply to: