网络块设备

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

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

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

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

参见

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

参考文献

  1. ^ git.bitrig.org: NBD: Implement Network Block Device support.. May 20, 2015. 
  2. ^ Miroslav Kripac and Masaryk University Brno. Implementing Oracle Real Application Clusters Using Network Block Device Technology. December 10, 2002 [May 22, 2013]. (原始内容存档于2016-12-07). 
  3. ^ iSCSI Adoption Continues its Upward Path. (原始内容存档于2013-11-05). 

外部链接