qemu-nbd使用教程

服务端

服务器环境

已经安装过qemu-img的32位ubuntu

ubuntu@ubuntu-virtual-machine:~/laboratory$ uname -a
Linux ubuntu-virtual-machine 3.13.0-46-generic #76-Ubuntu SMP Thu Feb 26 18:52:49 UTC 2015 i686 i686 i686 GNU/Linux

服务端配置

  • 创建一个文件系统为ext3的qcow2文件
ubuntu@ubuntu-virtual-machine:~/laboratory$ qemu-img create data2.img 20M
ubuntu@ubuntu-virtual-machine:~/laboratory$ mkfs.ext3 data.img
ubuntu@ubuntu-virtual-machine:~/laboratory$ qemu-img convert -O qcow2 data.img data.qcow2
  • 不需要加载nbd模块
root@ubuntu-virtual-machine:~# ls /dev/ | grep nbd
root@ubuntu-virtual-machine:~#
  • 发布文件
root@ubuntu-virtual-machine:~# qemu-nbd -p 8888 -b 0.0.0.0 /home/ubuntu/laboratory/data.qcow2

客户端

客户端环境

安装了libvirt的64位CentOS

[sm@centos ~]$ uname -a
Linux centos 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

客户端配置

  • 加载nbd模块
[root@centos sm]# rmmod nbd
[root@centos sm]# modprobe nbd max_part=8
  • 映射服务器的块设备到本地nbd设备
[root@centos data]# nbd-client 192.168.100.25 8888 /dev/nbd0
  • 挂载本地nbd设备到文件系统
[root@centos sm]# mount /dev/nbd0 ./data/
[root@centos sm]# cd data
[root@centos sm]# touch mytest.txt
  • 使用完成后断开设备
[root@centos data]# cd ..
[root@centos sm]# umount ./data/
[root@centos sm]# nbd-client -d /dev/nbd0
Disconnecting: que, disconnect, sock, done

本地使用qemu-nbd访问qcow2文件

  • 加载nbd模块
[root@centos sm]# rmmod nbd
[root@centos sm]# modprobe nbd max_part=8
  • 映射qcow2文件到本地nbd设备上
root@ubuntu-virtual-machine:~# qemu-nbd --connect=/dev/nbd0 /home/ubuntu/laboratory/data.qcow2
root@ubuntu-virtual-machine:~# mount /dev/nbd0 ./data/
root@ubuntu-virtual-machine:~# cd data/
root@ubuntu-virtual-machine:~/data# ls
mytest.txt
  • 卸载设备并断开链接
root@ubuntu-virtual-machine:~/data# cd
root@ubuntu-virtual-machine:~# umount /home/ubuntu/data
root@ubuntu-virtual-machine:~# qemu-nbd -d /dev/nbd0
/dev/nbd0 disconnected
posted @ 2017-10-14 11:39  银魔术师  阅读(3627)  评论(0编辑  收藏  举报