Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
, network block device (NBD) is a network protocol that can be used to forward a block device (typically a hard disk or partition) from one machine to a second machine. As an example, a local machine can access a hard disk drive that is attached to another computer.
The protocol was originally developed for Linux 2.1.55 and released in 1997. In 2011 the protocol was revised formally documented and is now developed as a collaborative open standard. There are several interoperable clients and servers.
There are Linux-compatible NBD implementations for FreeBSD and other operating systems. The term 'network block device' is sometimes also used generically.
Technically, a network block device is realized by three components: the server part, the client part, and the network between them. On the client machine, on which is the device node, a kernel driver controls the device. Whenever a program tries to access the device, the kernel driver forwards the request (if the client part is not fully implemented in the kernel it can be done with help of a userspace program) to the server machine, on which the data resides physically. On the server machine, requests from the client are handled by a userspace program.
Network block device servers are typically implemented as a userspace program running on a general-purpose computer. All of the function specific to network block device servers can reside in a userspace process because the process communicates with the client via conventional sockets and accesses the storage via a conventional file system interface.
The network block device client module is available on
Unix-like
A Unix-like (sometimes referred to as UN*X or *nix) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Unix-li ...
operating systems, including Linux and
Bitrig
Bitrig was an OpenBSD-based operating system targeted exclusively at the amd64 and armv7 platforms.
It is no longer being developed, and some of the work that it had done was merged back into OpenBSD.Solaris.
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
distributions.
*
NVMe-oF
NVM Express (NVMe) or Non-Volatile Memory Host Controller Interface Specification (NVMHCIS) is an open, logical-device interface specification for accessing a computer's non-volatile storage media usually attached via PCI Express (PCIe) bus. The ...
: an equivalent mechanism, exposing block devices as NVMe namespaces over TCP, Fibre Channel, RDMA, &c., native to most operating systems
* Loop device: a similar mechanism, but uses a local file instead of a remote one
* DRBD: Distributed Replicated Block Device is a distributed storage system for the Linux platform
* ATA over Ethernet: send ATA commands over Ethernet
* USB/IP: A protocol that provides network access to USB devices via IP.
External links
* Linux : protocol standard and canonical client and server
nbdkit is a plugin-based NBD server an libnbd is a high-performance C client
* using GEOM qemu-nbd A nbd tool from qemu project
xNBD is another NBD server program for Linux
BNBD is an alternative NBD server implementation
The Network Block Device the Linux Journal