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.
|Maintainer||Wouter Verhelst (userspace); Paul Clements (kernel)||Peter T. Breuer|
|Partitioned NBD devices||Yes||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|
|Built-in encryption layer||No||Yes|