qemu-nbd 连接ceph rbd 镜像,dev目录未出现相应设备

环境:CentOS 7.6,win7镜像
利用qemu-nbd连接镜像文件,raw格式需要指定--format raw,不然会有告警

qemu-nbd --format=raw -c /A Y H } hdev/nbd0 rbd:vms/t L _ b Nbb4n / ,d8022-542c-43d3-addc-283d8b32e1a5_di[ : , 4sk

连接成功,但是/dev/nbd0px未出现,这和连? 8 G } = G c接本地q% q h !cow2文件表现不一样,同时lsblk是能看到设备的nbd0px的,这让我一度怀疑qemu-nbd直接连接ceph po} n . 9 D ] =ol是不行的,但是qemu-nbd又没有报错,无意中翻到一个帖子
https://tuxera.com/forum/viewtopic.php?f=2&K w % m # C ~ b Y;t=1120&start=0
查看了/dev/mapper 目录,果然在

ps:在试qemu-nbd之前,也试过其他方法,这里小结一下
rbd-nbd:效果和qemu-nbd一样,因为也是没有/dev/nbd0px,以为不行,后来重新试了下,也在/dev/mapper目录
rbd, D U + 5 % Z e-fuse:貌似只能把一个池全部映射出来{ . L S o| O } 5并且需要对文件kpartH n 4x -av,这样是挂载到设备/dev/loop0,同样在/dev/mapper目录下存在分区
guestfish/guestmount ,不支持n3 G W Dtfs,从C & #entOS7.2版本之后就不+ % z | & w ~支持了,有官S D ? @ u L ? l m方说明,如果需要支持,需要下u L = S `载源码修改编译
https://lh H 9 e Qibguestfs.org/guestfs-faq.1.html#mount:-unsupported-file4 A [ 9 7 % 3 asystem-type-with-ntfs-in-rhel-7.2

libgusetfs自带的工具virt-copy-in,也可以拷贝文件到虚机内部d e 8 , ! % M
以上都是修改shutoff状态下虚机磁盘的方式,至于处于active状态的,貌似有qemu-guest-agent和cloud-init,这个如果有需求再研究

更新:
原来直接编译的nbdi e r 7 I 8 F k.ko 直接insmod nbd.ko,多个虚机同时修改,发现/dev/mapper下只有/dev/mapper/nbd0 的; Y : 9 g b O信息,后来重启了把nbd.ko 放入/lib/modules/$(uname -r)/extra/ ,执行

depmod -a
modprobe nbd max_part=16

连接之后又不在/dev/mapper下了,而是就在/dev/nbdxx下。。。真奇怪。。。另外连接到/dev/nbd之后,需要partprobe才能看到分区