Definition - What does Network Block Device (NBD) mean?
A network block device (NBD) is a standard protocol for Linux for exporting a block device over a network. NBDs are device nodes whose content is offered by a remote system. Generally, Linux users make use of NBDs to gain access to any storage device that does not reside in the local machine physically, but in a remote machine. For instance, using NBDs, a local machine can gain access to a fixed disk that is connected to another computer.
The NBD protocol was written and developed by Pavel Machek in 1998.
Linux can make use of a remote server as one of its block devices if NBD is compiled into the kernel. Whenever the client computer wishes to read /dev/nd0, a request is sent to the server through TCP. The server then responds with the requested data. This is useful for stations having low disk space (or maybe even diskless, if booted from a floppy) since it allows them to use other computers' disk space.
In contrast to the Network File System (NFS), it is possible to use any file system with NBD. However, if another user has already mounted NBD read/write, one must make sure that no one else mounts it again.
Even though NFS, SMB/CIFS and other similar protocols are useful, they may not be ideal for some requirements. Listed below are some scenarios where NBDs are used more often than other prevalent file-sharing protocols:
If a client is able to offer better tools for low-level maintenance of disks (e.g., newer versions of fsck) when compared to the server, provision of NBD access seems sensible.
A scenario where the client might need extended network disk space for which a conventional network file system might not be sufficient.
An instance where the server may not have the ability to support the data structure or file system on the device intended for exporting.
During certain conditions where the application of NBDs may bring better performance as opposed to implementing conventional network file systems.