设为首页 收藏本站
查看: 1507|回复: 0

[经验分享] QEMU KVM Libvirt手册(6):Network Block Device

[复制链接]

尚未签到

发表于 2017-6-25 12:56:22 | 显示全部楼层 |阅读模式
  网络块设备是通过NBD Server将虚拟块设备通过TCP/IP export出来,可以远程访问。
  NBD Server通常是qemu-nbd
  可以提供unix socket
  qemu-nbd -t -k /home/cliu8/images/ubuntutest-nbd ubuntutest.img
  打开另一个窗口,可以连接这个unix socket
  qemu-system-x86_64 -enable-kvm -name ubuntutest  -m 2048 -hda nbd:unix:/home/cliu8/images/ubuntutest-nbd -vnc :19 -net nic,model=virtio -net tap,ifname=tap0,script=no,downscript=n
  可以提供普通的socket连接
  qemu-nbd -t -p 1088 ubuntutest.img
  打开另一个窗口,可以连接这个port
  qemu-system-x86_64 -enable-kvm -name ubuntutest  -m 2048 -hda nbd:localhost:1088 -vnc :19 -net nic,model=virtio -net tap,ifname=tap0,script=no,downscript=n
  参数--share=num,可以多个客户端同时访问这个server
  参数--snapshot,说明任何修改都放在临时文件中
  参数—read-only,则只读模式export这个设备
  如果有参数—connect = dev,则可以直接将image付给一个network block device,并且可以mount它
  qemu-nbd -c /dev/nbd0 ubuntutest.img
  这时候我们ls,发现
  # ls /dev/nbd0*
/dev/nbd0  /dev/nbd0p1  /dev/nbd0p2  /dev/nbd0p5
  其实ubuntutest.img中有至少三个partition
  # fdisk -l /dev/nbd0
  Disk /dev/nbd0: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders, total 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00077a7b
  Device Boot      Start         End      Blocks   Id  System
/dev/nbd0p1   *        2048     6291455     3144704   83  Linux
/dev/nbd0p2         6293502    10483711     2095105    5  Extended
/dev/nbd0p5         6293504    10483711     2095104   82  Linux swap / Solaris
  通过fdisk验证,的确是这样的
  我们可以mount其中的一个
  mkdir ubuntutestp1
  mount /dev/nbd0p1 ubuntutestp1/
  # cd ubuntutestp1/
# ls
bin   dev  home        lib    lost+found  mnt  proc  run   srv  tmp  var
boot  etc  initrd.img  lib64  media       opt  root  sbin  sys  usr  vmlinuz
  这个时候我们可以对里面的文件修改,就修改了image了。
  修改完毕后,我们umount
  # umount ubuntutestp1
# qemu-nbd -d /dev/nbd0
/dev/nbd0 disconnected
  其实并不是所有的都这么简单
  # qemu-nbd -c /dev/nbd0 centos-5.8.new.qcow2
# fdisk -l /dev/nbd0
  Disk /dev/nbd0: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000f117e
  Device Boot      Start         End      Blocks   Id  System
/dev/nbd0p1   *          63      208844      104391   83  Linux
/dev/nbd0p2          208845    20964824    10377990   8e  Linux LVM
  我们发现里面有LVM,当然LVM不能作为整体访问,因为里面有Logic volume,都是单独成文件系统的
  # lvscan
  inactive          '/dev/VolGroup00/LogVol00' [5.97 GiB] inherit
  inactive          '/dev/VolGroup00/LogVol01' [3.91 GiB] inherit
# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "VolGroup00" using metadata type lvm2
# pvscan
  PV /dev/nbd0p2   VG VolGroup00            lvm2 [9.88 GiB / 0    free]
  由于logical volume处于inactive的状态
  # vgimport VolGroup00
  Volume group "VolGroup00" is not exported
  # vgchange -ay VolGroup00
  2 logical volume(s) in volume group "VolGroup00" now active
  这下可以分别mount两个LV了
  # mount  /dev/VolGroup00/LogVol00 ubuntutestp1/      
# cd ubuntutestp1/
# ls
bin  boot  dev  etc  home  lib  lib64  lost+found  media  misc  mnt  opt  proc  root  sbin  selinux  srv  sys  tmp  usr  var
  完毕后
  umount ubuntutestp1
  # vgchange -an VolGroup00
  0 logical volume(s) in volume group "VolGroup00" now active
  # vgexport VolGroup00
  Volume group "VolGroup00" successfully exported
  # qemu-nbd -d /dev/nbd0
/dev/nbd0 disconnected
  在linux下,一个更高效的network block device是nbd-server,另有nbd-client连接server,形成一个/dev/ndb0

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-387976-1-1.html 上篇帖子: 2017.4.28 KVM 内存虚拟化及其实现 下篇帖子: 使用kvm虚拟出Centos6.5系统相关步骤
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表