I've been the maintainer of the userspace bits of the in-kernel NBD implementation, which has existed since kernel 2.1.something. There've been several forks and/or reimplementations of similar "network block devices" for Linux, and I thought it might be a good idea to compare them against eachother.
Where possible, I've asked for feedback from the maintainer of the particular NBD implementation; any leftover errors are completely my own fault.
Note that this currently is a work-in-progress; I intend to add more information as I get it. Also note that only released versions are considered for this table; development versions do not count.
Name | NBD | ENBD |
---|---|---|
Maintainer | Wouter Verhelst (userspace); Paul Clements (kernel) | Peter T. Breuer |
Website | http://nbd.sourceforge.net | http://www.it.uc3m.es/~ptb/nbd/ |
SCTP support | Untested | Yes |
Partitioned NBD devices | Yes | Yes |
Virtual hosting | Yes | No |
ioctl() passing | No | Yes |
Reconnect on connection failure | Partial | Yes |
Copy-on-write support | Yes | Untested in recent versions |
Zero-copy networking (sendfile(), mmap(), ...) | No | almost entirely |
Exporting one export built from multiple files | Yes | Yes |
Change UID after startup | Yes | No |
Running scriptlets on connect or disconnect | Yes | No |
Redundant client daemons | No | Yes |
udev signalling | No | Yes |
Built-in encryption layer | No | Yes |