Network block device

From Wikipedia, the free encyclopedia
Jump to: navigation, search

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 two components, the server part and the client part. On the client machine, where the device node is to work, a kernel driver/module 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, where the data physically resides. On the server machine, requests from the client are handled by a userspace program. The server part is just a regular userspace application because all it has to do is to serve network requests, which in turn just requires regular access to the server file system.

The network block device client module is available on some Unix-like operating systems, including Linux and Bitrig.[1] It is also available in GNU Hurd.[citation needed] 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[edit]

  • 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


External links[edit]