网络块设备

在一些操作系统上，网络块设备（Network Block Device, NBD）是一种设备节点，其内容由远程计算机提供。网络块设备通常用于访问非物理安装于本地计算机上，而在远程的存储设备。例如，本地计算机可访问连接于另一台计算机上的硬盘。

技术上讲，网络块设备由三部分组成，服务器、客户端及连接之间的网络。在设备节点工作的客户端上，内核驱动/模块控制该设备。每当程序试图访问该设备时，内核驱动将转发请求（如果内核中没有完全实现客户端部分，可在使用者空間程序的帮助下完成）到实际存储数据的服务器。在服务器上，来自客户端的请求由用户空间程序进行处理。

服务器端通常为运行在通用计算机上的用户空间程序。服务器的所有功能都可由用户空间程序处理，因为服务器只需通过正常的套接字与客户端的通信，使用常规的文件系统接口访问存储设备。

网络块设备客户端模块适用于一些类Unix系统，包括Linux和Bitrig。由于服务器是一个用户空间程序，理论上任何类Unix平台都能运行。例如，NBD的服务器部分已经移植到了Solaris上。

 参见 
 iSCSI：许多GNU/Linux发行版上的iSCSI“目标工具”。tgtd可以配置任意块设备为LUN后备存储（磁盘，分区等）。这是应用最多的基于IP的块设备转发协议。
 循環設備：类似的机制，但使用的是本地文件
 DRBD：分布式复制块设备是Linux平台上的分布式存储系统
 ATA over Ethernet：通过以太网发送ATA命令

 参考文献 

 外部链接 
 xNBD 
 NBD邮件列表 
 Sourceforge上的Network Block Device 
 The Network Block Device , the Linux Journal
 ggate in FreeBSD handbook , FreeBSD GEOM Gate presentation 
 Enhanced Network Block Device 
 nbd-verify 是一套验证协议实现及NBD服务器数据处理能力的测试工具
 BNBD 是另一种NBD服务器​​实现
 Global Network Block Device  (GNBD)

Category:网络技术
Category:電腦儲存技術
Category:Linux内核功能