NBD指的是Network Block Device,正如其名字的意思,NBD让用户可以通过网络访问到某个块设备,或者设备镜像。

你可能会想NFS(Network File System)不是已经可以实现通过网络挂载各种文件系统并进行访问了吗,为什么还要整个NBD呢?

如果用户的目的只是为了简单地访问对文件系统内的文件进行读写,那么NFS已经完全足够用了,但是有时候用户可能需要对存储块设备执行一些更底层的操作,这时候NFS可能就无法满足,需要NBD的方式了。简单地来说,NFS的方式只能管到文件系统层,而NBD的方式则不仅可以管到文件系统层,还可以管到更下面的块设备层。

比如,用户可能想要格式化哪个存储块设备,或者对存储块设备进行重新分区,这时候NFS的方式就无法满足该要求,因为在这些操作过程中,将会导致存在该存储块设备中的文件系统被卸载。对于NFS而言,卸载该文件系统的话,就会失去对该设备的连接。但是如果存储块设备是以NBD的方式挂载到系统中的话,则用户可以像操作本地存储块设备一样操作该通过NBD方式挂载的存储块设备,就像该存储块设备在本地就是通过SCSI或者SATA线连接着的。简单地说,NBD针对的是存储块设备,而NFS针对的是文件系统。

一、 如何使用NBD

NBD的工作方式也是遵循client/server的基本架构。在server端,通过设置将一个存储块设备或者镜像文件变成一个可以使用的网络块设备,然后在client端,连接挂载该设备进行使用。

Server端:Ubuntu IP:192.168.1.5

默认情况下,系统是没有安装NBD server的,在Ubuntu下可以执行下面命令进行安装:
sudo apt install nbd-server
安装完毕后,通过下面命令将NBD模块加载起来:
modprobe nbd


执行命令nbd-server 9999 nbd.file,将一个win7的安装镜像作为目标文件,查看nbd相关进程可以发现nbd-server已经运行起来了

Client端

执行apt install nbd-client指令安装nbd客户端
客户端主机页需要安装nbd模块,执行modprobe nbd,然后可以在/dev/目录下发现多了几个/dev/nbd#的设备。

执行nbd-client 192.168.1.5 9999 /dev/nbd0,将nbd设备关联到/dev/nbd0设备上。

将/dev/nbd0p1挂载到/mnt/目录下,可以看到iso文件里面的内容了。

二、QEMU中的NBD

虚拟化程序QEMU中的qemu-nbd程序也是基于NBD方式对块设备或文件进行挂载,例如可以通过qemu-nbd命令查看一个虚拟机镜像文件的内部信息。
以一个win7.img的虚拟机镜像为例,首先用qemu-nbd命令将该镜像关联到NBD设备/dev/nbd3上(当然需要先加载ndb内核模块)

然后查看NBD设备,可以发现多出了两个nbd设备,即/dev/nbd3p1和/dev/nbd3p2,说明win7.img镜像中有两个分区。

分别将这两个设备文件挂载到文件系统中查看一下里面的内容:

可以发现/dev/nbd3p1其实就是系统的启动分区,而/dev/nbd3p2就是Win7的主分区,即Win7系统的C盘。

欢迎关注同名微信公众号“河马虚拟化”第一时间获取最新文章。

NBD(Network Block Device)简介及基本使用相关推荐

  1. NBD Network Block Device

    1. 介绍 NBD(Network Block Device),即网络块设备.可以将一个远程主机的磁盘空间,当作一个块设备来使用.就像一块硬盘一样使用它,你可以很方便的将另一台服务器的硬盘空间,增加到 ...

  2. linux 网卡是块设备吗,什么是网络块设备(Network Block Device)?

    网络块设备(NBD)是一种用于Linux®和Unix®计算机系统的远程数据存储技术,它允许客户端计算机访问远程系统上的数据存储.一旦客户端计算机设置了NBD,它的使用就好像它实际上是客户端上的一个磁盘 ...

  3. SPDK: Block Device Layer Programming Guide 块设备层编程指南

    文章目录 前言 Target Audience 目标受众 Introduction 简介 Basic Primitives 基本原语 Initializing The Library Library初 ...

  4. DL之FAN:FAN人脸对齐网络(Face Alignment depth Network)的论文简介、案例应用之详细攻略

    DL之FAN:FAN人脸对齐网络(Face Alignment depth Network)的论文简介.案例应用之详细攻略 目录 FAN人脸对齐网络(Face Alignment depth Netw ...

  5. DL之NIN:Network in Network算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略

    DL之NIN:Network in Network算法的简介(论文介绍).架构详解.案例应用等配图集合之详细攻略 目录 Network in Network算法的简介(论文介绍) 1.Visualiz ...

  6. Ceph Block Device块设备操作

    2019独角兽企业重金招聘Python工程师标准>>> 使用ceph block device需要如下三个步骤: 1. 在ceph 集群的pool中创建一个Block Device ...

  7. Mount 挂载错误mount:block device /dev/sr0 is write – protected , mounting read-only

    Mount 挂载错误mount:block device /dev/sr0 is write – protected , mounting read-only 安装虚拟机出现以下提示: mount:b ...

  8. mount: block device /dev/cdrom is write-protected, mounting read-only 解决方法

    mount: block device /dev/cdrom is write-protected, mounting read-only 解决方法 参考文章: (1)mount: block dev ...

  9. UBI,MTD(Memory Technology Device),raw flash,emmc,Flash,Block Device

    UBIFS 3个子系统: MTD 子系统: 提供访问flash 芯片的统一接口.MTD提出了MTD设备的概念(/dev/mtd0),MTD设备就是raw flash. UBI 子系统: 在MTD子系统 ...

最新文章

  1. winnet api 实现Get请求
  2. Mongodb基本操作说明
  3. java 康塔纳 牙盘_这种配置不要六千?你敢信!
  4. windows命令查看端口占用情况
  5. BP神经网络及其app设计
  6. R语言查看包安装路径
  7. 用于检测未知恶意软件的深度学习方法
  8. dm数据库 linux版下载,达梦(DM)数据库Linux部署安装
  9. 使用c++语言做概率论 涉及求方差
  10. 2021年中国传感器行业产业链分析:智能时代发展下,传感器市场需求旺盛[图]
  11. 差分贴片晶振使最强军事武器出世
  12. 谈谈我在创业公司的感悟
  13. 加速进化,浪潮存储正在梦想成真
  14. RoI Pooling详解
  15. 网络号,IP,子网掩码之间的关系
  16. 怎么查看一段时间的计算机ip,如何查看电脑中使用过的历史IP地址
  17. win10系统计算器闪退怎么办? win10系统计算器闪退解决方法?
  18. k8s学习一:centos7单机安装k8s
  19. 电视机防近视预警系统c语言,预防近视、提升视力 TCL儿童电视亮相重庆
  20. 股票开户须知,天津证券公司线上开户佣金一般是多少?

热门文章

  1. 顶级域名后缀有哪些?这份科普请好好收藏!
  2. MapX编程详解(C++)----MapX发布技术
  3. CSS3选择器-属性选择器
  4. Android-PickerView系列之封装篇(三)
  5. iis远程访问mysql_通过IIS不能连接远程数据库的问题
  6. win7系统无法激活问题
  7. 可免费编辑 PDF 内容的 7 大 PDF 编辑工具
  8. 算法:Bloom Filter
  9. 桌面不显示IE浏览器图标
  10. TPM1.2到TPM 2.0的变化