Ceph 启用对象映射功能
shan

Hammer 版本带来了对 RBD 镜像的新功能的支持,称为对象映射。对象映射跟踪镜像中实际分配的块以及它们的位置。这对于克隆的操作(如调整大小、导入、导出、展平和大小计算)特别有用,因为客户端不需要计算每个对象的位置。客户端只需在该表中查找即可。
目前有几个可用功能
layering:分层支持,ID 为 1striping:条带化 v2 支持,ID 为 2exclusive-lock:独占锁支持,ID 为 4object-map:对象映射支持(需要独占锁),ID 为 8
要启用一个功能,您有两种选择
- 使用带有
rbd命令的 CLI - 通过在
ceph.conf中使用rbd_default_features标志
如果您只想使用单个选项,只需放置其 ID,如果您想要更多功能,则必须求和 ID。例如:要使用 exclusive-lock,只需执行
$ rbd create bar -s 1024 --image-format=2 --image-features=4
$ rbd info bar
rbd image 'bar':
size 1024 MB in 256 objects
order 22 (4096 kB objects)
block_name_prefix: rbd_data.5e7d2ae8944a
format: 2
features: exclusive
flags:
同样在您的 ceph.conf 中使用 rbd_default_features = 4
要启用 object-map,您需要 exclusive-lock,因此您需要求和 4+8
$ rbd create bar -s 1024 --image-format=2 --image-features=12
$ rbd info bar
rbd info bar
rbd image 'bar':
size 1024 MB in 256 objects
order 22 (4096 kB objects)
block_name_prefix: rbd_data.5e962ae8944a
format: 2
features: exclusive, object map
flags:
同样在您的 ceph.conf 中使用 rbd_default_features = 12
如果您想检查映射
$ rados -p rbd ls |grep 5ea22ae8944a
rbd_header.5ea22ae8944a
rbd_object_map.5ea22ae8944a
$ rados -p rbd get rbd_object_map.5ea22ae8944a rbd_object_map.5ea22ae8944a
未来的 CLI 版本会更容易,因为您不再需要使用数字。将使用功能的正确名称。在创建镜像后,您也可以添加更多功能。
$ rbd create leseb -s 1024 --image-format 2 --image-feature exclusive-lock
$ rbd feature enable leseb object-map
尽情享受吧!