jewel版本新增加了一个驱动NBD,允许librbd实现一个内核级别的rbd
NBD相比较于kernel rbd:
rbd-nbd是通过librbd这个用户空间通过nbd的内核模块实现了内核级别的驱动,稳定性和性能都有保障
[root@lab8106 ~]# rbd create testnbdrbd -s 10G
[root@lab8106 ~]# rbd-nbd map rbd/testnbdrbd
/dev/nbd0
[root@lab8106 ~]# rbd-nbd list-mapped
/dev/nbd0
上面说了这么多,那么来点直观的认识,nbd带来的好处
查询下image的信息
[root@lab8106 ~]# rbd info testnbdrbd
rbd image 'testnbdrbd':
size 10240 MB in 2560 objects
order 22 (4096 kB objects)
block_name_prefix: rbd_data.10ad2ae8944a
format: 2
features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
flags:
jewel版本默认开启了features: layering, exclusive-lock, object-map, fast-diff, deep-flatten这么多的属性,而这些属性是kernel-rbd还不支持的
所以做rbd map的时候就会出现下面的问题:
[root@lab8106 ~]# rbd map testnbdrbd
rbd: sysfs write failed
RBD image feature set mismatch. You can disable features unsupported by the kernel with "rbd feature disable".
In some cases useful info is found in syslog - try "dmesg | tail" or so.
rbd: map failed: (6) No such device or address
如果非要用,就默认禁用掉这些属性,在配置文件增加
rbd_default_features = 3
那么现在开启属性还行想用块设备方式怎么用,就可以用nbd了
[root@lab8106 ~]# rbd-nbd map rbd/testnbdrbd
/dev/nbd0
这样就可以用了。不用担心接口的问题了,因为只要librbd支持的属性,nbd就默认支持了
[root@lab101 mnt]# rbd-nbd list-mapped
/dev/nbd0
[root@lab101 mnt]# cat /sys/block/nbd0/pid
93059
[root@lab101 mnt]# ps -ef|grep 93059
root 93059 1 0 14:30 pts/1 00:00:00 rbd-nbd map testnbd
root 97346 8580 0 14:36 pts/1 00:00:00 grep --color=auto 93059
rbd几种常用的模式和新模式图:
ceph version 10.2.1 (3a66dd4f30852819c1bdaa8ec23c795d4ad77269)
Why
Who
When
创建
武汉-运维-磨渣
2016-05-19
增加映射关系查询方法
武汉-运维-磨渣
2018-03-27
手机扫一扫
移动阅读更方便
你可能感兴趣的文章