HOME

TheInfoList



OR:

On
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
, network block device (NBD) is a
network protocol A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any variation of a physical quantity. The protocol defines the rules, syntax, semantics, and synchronization of ...
that can be used to forward a
block device In Unix-like operating systems, a device file, device node, or special file is an interface to a device driver that appears in a file system as if it were an ordinary file. There are also special files in DOS, OS/2, and Windows. These spec ...
(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 A hard disk drive (HDD), hard disk, hard drive, or fixed disk is an electro-mechanical data storage device that stores and retrieves digital data using magnetic storage with one or more rigid rapidly rotating hard disk drive platter, pla ...
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 An open standard is a standard that is openly accessible and usable by anyone. It is also a common prerequisite that open standards use an open license that provides for extensibility. Typically, anybody can participate in their development due to ...
. There are several
interoperable Interoperability is a characteristic of a product or system to work with other products or systems. While the term was initially defined for information technology or systems engineering services to allow for information exchange, a broader de ...
clients and servers. There are Linux-compatible NBD implementations for
FreeBSD FreeBSD is a free-software Unix-like operating system descended from the Berkeley Software Distribution (BSD). The first version was released in 1993 developed from 386BSD, one of the first fully functional and free Unix clones on affordable ...
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, which uses the exported device node, a kernel driver implements a virtual 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 A modern computer operating system usually uses virtual memory to provide separate address spaces or regions of a single address space, called user space and kernel space. This separation primarily provides memory protection and hardware prote ...
program) to the server machine, on which the data reside 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, *nix 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 Uni ...
operating systems, including Linux.


Alternative protocols

*
iSCSI Internet Small Computer Systems Interface or iSCSI ( ) is an Internet Protocol-based storage networking standard for linking data storage facilities. iSCSI provides block-level access to storage devices by carrying SCSI commands over a TCP/IP ...
: The "target-utils" iscsi package on many
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
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 the PCI Express bus. The ini ...
: an equivalent mechanism, exposing block devices as NVMe namespaces over TCP, Fibre Channel, RDMA, &c., native to most operating systems *
Loop device In Unix-like operating systems, a loop device, vnd (vnode disk), or lofi (loop file interface) is a pseudo-device that makes a computer file accessible as a block device. Before use, a loop device must be connected to an existent file in the fil ...
: a similar mechanism, but uses a local file instead of a remote one *
DRBD Distributed Replicated Block Device (DRBD) is a distributed replicated storage system for the Linux platform. It mirrors block devices between multiple hosts, functioning transparently to applications on the host systems. This replication can inv ...
: Distributed Replicated Block Device is a distributed storage system for the Linux platform *
ATA over Ethernet ATA over Ethernet (AoE) is a network protocol developed by the Brantley Coile Company, designed for simple, high-performance access of block storage devices over Ethernet networks. It is used to build storage area networks (SANs) with low-cost ...
: send ATA commands over Ethernet * USB/IP: A protocol that provides network access to USB devices via IP.


External links

*
nbdkit
is a plugin-based NBD server an
libnbd
is a high-performance C client
qemu-nbd
A nbd tool from qemu project
BNBD
is an alternative NBD server implementation
xNBD
was another NBD server program for Linux
The Network Block Device
the Linux Journal


References

{{Reflist Computer networking Computer storage technologies Linux kernel features