Last week I started a new project: nbdkit. This is a toolkit for creating NBD servers. The key features are:
- Multithreaded NBD server written in C with good performance.
- Well-documented, simple plugin API with a stable ABI guarantee. Let’s you export “unconventional” block devices easily.
- Liberal license (BSD) allows nbdkit to be linked to proprietary libraries or included in proprietary code.
There are of course many NBD servers already, such as the original nbd project, qemu-nbd and jnbds.
There are also a handful of servers specialized for particular disk sources. A good example of that is this OpenStack Swift server. But you shouldn’t have to write a whole new server just to export a new disk type.
nbdkit hopefully offers a unique contribution to this field because it’s a general server with a plugin architecture, offering a stable ABI and a liberal license so you can link it to proprietary code (say hello, VDDK).
The motivation for this is to make many more data sources available to libguestfs. Especially I want to write plugins for libvirt, VDDK and some OpenStack sources.
Pingback: nbdkit: Write plugins in Perl | Richard WM Jones
Pingback: nbdkit now supports curl — HTTP, FTP, and SSH connections | Richard WM Jones
Pingback: Mapping files to disk, part 2 | Richard WM Jones