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 
上一篇下一篇

猜你喜欢

热点阅读