--image-format format-id
选择用哪个对象布局,默认为 1 。
format 1 - 新建 rbd 映像时使用最初的格式。此格式兼容所有版本的 librbd 和内核模块,但是不支持较新的功能,像克隆。
format 2 - 使用第二版 rbd 格式, librbd 和 3.11 版以上内核模块才支持。此格式增加了克隆支持,使得扩展更容易,还允许以后增加新功能。
为使用rbd 块新特性,使用格式2,在map 时发生以上报错:
查找官网相关资料,找到信息如下:
jewel 版本,默认格式2的rbd 块支持如下特性,默认全部开启;
layering: 支持分层
striping: 支持条带化 v2
exclusive-lock: 支持独占锁
object-map: 支持对象映射(依赖 exclusive-lock )
fast-diff: 快速计算差异(依赖 object-map )
deep-flatten: 支持快照扁平化操作
journaling: 支持记录 IO 操作(依赖独占锁)
--image-feature 选项指定使用特性,不用全部开启。我们的需求仅需要使用快照等特性,开启layering即可,配置方式如下:
rbd create rbd/test --size 10G --image-format 2 --image-feature layering
内核版本 3.10,仅支持此特性(layering)