ceph学习(七) rbd 使用
2020-05-22 本文已影响0人
Joncc
1. 创建块设备映像
rbd create --size {megabytes} {pool-name}/{image-name}
创建块设备映射之前需要创建对应的存储池
2. 调整块设备映像大小
rbd resize --size 2048 foo (to increase)
rbd resize --size 2048 foo --allow-shrink (to decrease)
3. 删除块设备映像
rbd rm {rbdname }
rbd rm {pool_name}/{rbd_name}
4. 映射块设备
sudo rbd map {pool-name}/{image-name} --id {user-name}
出现这个报错的原因是和Linux内核版本和rbd映像格式有关
创建rbd的时候可以加上
-image-feature=layering
rbd create --size {megabytes} {pool-name}/{image-name} --image-feature=layering
例:
rbd create --size 10T test_1/rbd_s1 --image-feature=layering
rbd支持两种镜像格式 --image-format
format 1 已经弃用, 为一个新的镜像使用原始的格式。这个格式可以被所有的librbd版本和内核rbd模块所理解,但是不支持最新的特性
format 2 rbd格式第二版,被librbd和3.1内核版本以上支持。这个格式支持克隆,在将来更容易扩展支持更多的特性
--image-feature 可以指定rbd format2特性启用或者禁用
rbd format2 支持的属性有
layering BIT码为1
striping BIT码为2
exclusive-lock BIT码为4
object-map BIT码为8
fast-diff BIT码为16
deep-flatten BIT码为32
查看当前ceph集群版本支持的rbd 的属性
ceph --show-config|grep rbd|grep features
rbd_default_features = 61
61=32+16+8+4+1 即默认支持layering,exclusive-lock,object-map,fast-diff,deep-flatten
前面的报错中显示不支持的代号是0x3c, 这是十六进制,换算成10进制就是60。也就是不支持后面4种特性
查看当前使用的镜像属性
rbd info foo
rbd image 'foo':
size 1024 MB in 256 objects
order 22 (4096 kB objects)
block_name_prefix: rbd_data.855f2ae8944a
format: 2
features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
flags:
可以关闭后面4个特性
rbd feature disable rbd/foo exclusive-lock, object-map, fast-diff, deep-flatten
再挂载试试
rbd map rbd/foo
/dev/rbd0
挂载成功
再查看foo的特性
rbd info foo
rbd image 'foo':
size 1024 MB in 256 objects
order 22 (4096 kB objects)
block_name_prefix: rbd_data.855f2ae8944a
format: 2
features: layering
flags:
发现只有一个laytering特性了。
这样每次创建一个镜像都这样启动和关闭特性比较麻烦,可以修改ceph.conf文件
rbd_default_features = 3
5. 格式化
lsblk |grep rbd
mkfs.xfs -K /dev/rbd2