Not Logged In

swiftnbd 0.11

This is a Network Block Device (NBD) server for OpenStack Object Storage (Swift).

Very often users want to run tools like rsync on top of Swift, but this is not
possible because the object storage HTTP API can’t provide a file system alike
functionality. This project aims to support a block interface for the object
storage via NBD.

How it Works

swiftnbd translates the NBD requests (read/write with offset and length) to Swift object
operations, as displayed in the following picture:

Although this strategy may work with any block interface, NBD was chosen because of its simplicity.
The NBD server can serve the blocks over the network, but is recommended that it is used locally.
Because the communication with Swift will be the bottleneck, the possible overhead of NBD on localhost
is expected to not be significant.

The block device can be used only by one location at once. When a client is connected to the server,
the container used as storage is marked as locked by adding metadata information to the container
until the client disconnects and the container can be unlocked.

The server implements the new version of the NBD protocol and nbd-client 3.1 or later is highly
recommended. For older versions of the protocol (nbd-client <= 2.9.16), please use swiftnbd 0.9.4.