Network block device

On some operating systems, a network block device is a device node whose content is provided by a remote machine. Typically, network block devices are used to access a storage device that does not physically reside in the local machine but on a remote one. As an example, a local machine can access a hard disk drive that is attached to another computer.

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 some Unix-like operating systems, including Linux and Bitrig.[1] Since the server is a userspace program, it can potentially run on every Unix-like platform; for example, NBD's server part has been ported to Solaris.[2]

See also

  • iSCSI: The "target-utils" iscsi package on many GNU/Linux distributions. The tgtd can configure the backing storage of a LUN to be any block device (disk, partition, etc.). This has widest adoption amongst IP-based block device presentation protocols.[3]
  • 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.[4][5]


  1. Patrick Wildt (2015-04-23). "NBD: Implement Network Block Device support". Bitrig.
  2. Miroslav Kripac (2005-01-21). "Implementing Oracle Real Application Clusters Using Network Block Device Technology". Masaryk University. Retrieved 2016-11-22.
  3. Mark Peters (2010-01-18). "iSCSI Adoption Continues its Upward Path". Archived from the original on 2016-03-03. Retrieved 2016-11-22.
  4. "Documentation/usb/usbip_protocol.txt". 2016-03-21. Retrieved 2017-04-09.
  5. "USB over IP tunnel". OpenWrt. 2016-06-17. Retrieved 2017-04-09.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.