Ceph 块设备 rbd 相关学习

块设备相关文档

http://docs.ceph.org.cn/rbd/rbd/

rbd 命令

创建 rbd

$ rbd create --size 10240 kcha/mysqldata

查看 rbd

$ rbd list kcha
mysqldata

调整块设备映像大小:

$ rbd resize --size 10240 kcha/mysqldata
Resizing image: 100% complete...done.

查看信息:

$ rbd info kcha/mysqldata
rbd image 'mysqldata':
        size 10240 MB in 2560 objects
        order 22 (4096 kB objects)
        block_name_prefix: rbd_data.b21066b8b4567
        format: 2
        features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
        flags:

移除 features

$ rbd feature disable kcha/mysqldata exclusive-lock, object-map, fast-diff, deep-flatten

rbd 占用

查看 rbd 实际占用:

$ rbd diff kcha/mysqldata | awk '{ SUM += $2 } END { print SUM/1024/1024 " MB" }'
860.449 MB
$ rbd diff kcha/mysqldata | awk '{ SUM += $2 } END { print SUM/1024/1024/1024 " GB" }'
0.840282 GB

删除 rbd

直接删除:

$ rbd rm kcha/mysqldata
Removing image: 100% complete...done.

若 rbd 被占用,则需要先将占用加入黑名单,后再删除。

# 加入黑名单
$ ceph osd blacklist add 10.105.136.63:0/1081512968
blacklisting 10.105.136.63:0/1081512968 until 2020-09-01T10:46:28.920245+0000 (3600 sec)
# 删除
$ rbd rm kcha/mysqldata
Removing image: 100% complete...done.
# 查看黑名单
$ ceph osd blacklist ls
listed 1 entries
10.105.136.63:0/1081512968 2020-09-01T10:46:28.920245+0000
# 移除黑名单
$ ceph osd blacklist rm 10.105.136.63:0/1081512968
un-blacklisting 10.105.136.63:0/1081512968

导入导出

$ rbd export kcha/mysqldata ~/mysqldata
Exporting image: 100% complete...done.
$ rbd import ~/mysqldata  mantidata/mysqldata --image-format 2
Importing image: 100% complete...done.

RBD 特性解析

特性一览表

RBD 支持的特性,及具体 BIT 值的计算如下

属性 功能 BIT 码
layering 支持分层 1
striping 支持条带化 v2 2
exclusive-lock 支持独占锁 4
object-map 支持对象映射(依赖 exclusive-lock ) 8
fast-diff 快速计算差异(依赖 object-map ) 16
deep-flatten 支持快照扁平化操作 32
journaling 支持记录 IO 操作(依赖独占锁) 64

默认属性值

ceph kraken 版本默认属性值

# ceph --show-config|grep rbd|grep featuresrbd_default_features = 61

为啥是 61?我们创建一个默认配置的 rbd 看看

# rbd create test-feature --size 64# rbd info rbd/test-featurerbd image 'test-feature':	size 65536 kB in 16 objects	order 22 (4096 kB objects)	block_name_prefix: rbd_data.107d238e1f29	format: 2	features: layering, exclusive-lock, object-map, fast-diff, deep-flatten	flags:

1+4+8+16+32 = 61

就是说除了特性:striping 和 journaling 外都开启了。

控制属性

有三种方法来开启需要的特性

1、在创建 image 时,通过 --image-feature 来指定需要开启的特性

2、对已存在的 image 可以通过如下命令开启和关闭

rbd feature enable <pool-name>/<image-name> <feature-name>rbd feature disable <pool-name>/<image-name> <feature-name>

3、当然,每次通过 enable 和 disable 来不是很便捷,可以通过修改配置文件来解决

vim /etc/ceph/ceph.conf...rbd_default_features = 1...

具体该设为多少可以通过上面 BIT 值查表计算得出。