ceph块儿设备映射到物理机 rbd map
查看池
[root@node-1 ~]# ceph osd pool ls
新建rbd块
[root@node-1 ~]# rbd create volumes/Test_pressure.img --size 100G --image-format 2
查看块信息
[root@node-1 ~]# rbd info -p volumes --image Test_pressure.img
rbd image 'Test_pressure.img':
size 100 GiB in 25600 objects
order 22 (4 MiB objects)
snapshot_count: 0
id: 30d05554c7f23
block_name_prefix: rbd_data.30d05554c7f23
format: 2
features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
op_features:
flags:
create_timestamp: Sun Sep 26 16:57:19 2021
access_timestamp: Sun Sep 26 16:57:19 2021
modify_timestamp: Sun Sep 26 16:57:19 2021
将rbd块映射到主机(报错)
[root@node-1 ~]# rbd map volumes/Test_pressure.img
rbd: sysfs write failed
RBD image feature set mismatch. You can disable features unsupported by the kernel with "rbd feature disable volumes/Test_pressure.img object-map fast-diff deep-flatten".
In some cases useful info is found in syslog - try "dmesg | tail".
rbd: map failed: (6) No such device or address
删除
[root@node-1 ~]# rbd rm -p volumes --image Test_pressure.img
Removing image: 100% complete...done.
故障排查:
rbd 块 ceph 支持两种格式:
# rbd create volumes/Test_pressure.img --size 100G --image-format 2
--image-format format-id
选择用哪个对象布局,默认为 1 。
format 1 - 新建 rbd 映像时使用最初的格式。此格式兼容所有版本的 librbd 和内核模块,但是不支持较新的功能,像克隆。
format 2 - 使用第二版 rbd 格式,librbd 和 3.11 版以上内核模块才支持(除非是分拆的模块)。此格式增加了克隆支持,使得扩展更容易,还允许以后增加新功能。
为使用rbd块新特性,使用格式2,在map时发生以上报错:
查找相关资料,找到信息如下:
笔者安装的是nautilus版本,新建rbd块指定格式2,默认格式2的rbd块支持如下特性,默认全部开启;
layering: 支持分层
striping: 支持条带化 v2
exclusive-lock: 支持独占锁
object-map: 支持对象映射(依赖 exclusive-lock )
fast-diff: 快速计算差异(依赖 object-map )
deep-flatten: 支持快照扁平化操作
journaling: 支持记录 IO 操作(依赖独占锁)
使用系统为centos7.6 ,内核版本3.10.0-957.10.1.el7.x86_64,根据报错内容提示可知,服务器系统内核版本,不支持有些格式2的新特性导致。可以使用 --image-feature 选项指定使用特性,不用全部开启。我们的需求仅需要使用快照等特性,开启layering即可,配置方式如下:
[root@node-1 ~]# rbd create volumes/Test_pressure.img --size 100G --image-format 2 --image-feature layering
映射到物理机
[root@node-1 ~]# rbd map volumes/Test_pressure.img
/dev/rbd0
挂载
[root@node-1 ~]# mkfs.xfs /dev/rbd0
[root@node-1 ~]# mount /dev/rbd0 /mnt/
[root@node-1 ~]# mkdir -p /mnt/test
[root@node-1 ~]# ll /mnt/
total 0
drwxr-xr-x 2 root root 6 Sep 26 17:53 test
# 经测试,内核版本3.10,仅支持此特性(layering),其它特性需要使用更高版本内核,或者从新编译内核加载特性模块才行。
# 看看format 1 format 2的区别在哪
format: 2
features: layering, exclusive-lock, object-map, fast-diff, deep-flatten # 格式2支持的功能较多,但是低内核又不支持那么多,只能把其他的功能禁用掉使用
卸载硬盘
[root@node-1 ~]# rbd unmap volumes/Test_pressure.img
删除块
[root@node-1 ~]# rbd rm -p volumes --image Test_pressure.img