分布式存储系统之Ceph集群RBD基础使用( 二 )

2、创建并查看image
命令格式: rbd create --size <megabytes> --pool <pool-name> <image-name>
[root@ceph-admin ~]# rbd create --size 5G ceph-rbdpool/vol01[root@ceph-admin ~]# rbd ls -p ceph-rbdpoolvol01[root@ceph-admin ~]#获取指定镜像的详细信息
命令格式:rbd info [--pool <pool>] [--image <image>] [--image-id <image-id>] [--format<format>] [--pretty-format] <image-spec>
[root@ceph-admin ~]# rbd info ceph-rbdpool/vol01rbd image 'vol01':size 5 GiB in 1280 objectsorder 22 (4 MiB objects)id: 149196b8b4567block_name_prefix: rbd_data.149196b8b4567format: 2features: layering, exclusive-lock, object-map, fast-diff, deep-flattenop_features:flags:create_timestamp: Tue Oct4 00:48:18 2022[root@ceph-admin ~]# rbd info ceph-rbdpool/vol01 --format json --pretty-format{"name": "vol01","id": "149196b8b4567","size": 5368709120,"objects": 1280,"order": 22,"object_size": 4194304,"block_name_prefix": "rbd_data.149196b8b4567","format": 2,"features": ["layering","exclusive-lock","object-map","fast-diff","deep-flatten"],"op_features": [],"flags": [],"create_timestamp": "Tue Oct4 00:48:18 2022"}[root@ceph-admin ~]#提示:size M GiB in N objects , 其中M代表image空间大小;N代表将对应M大小的空间分割为多少个对象(分割的数量由条带大小决定 , 即单个对象的大小 , 默认为4M);order 22 (4 MiB objects)是块大小(条带)的标识序号 , 有效范围为12-25 , 分别对应着4K-32M之间的大小;22=10+10+2 , 即2的10次方乘以2的10次方乘以2的2次方 , 2的10次方字节就是1024B , 即1k , 如果order为10 , 则块大小为1k , 由此逻辑图推算22就是4M;ID代表当前image的标识符;block_name_prefix表示当前image相关的object的名称前缀;format表示image的格式 , 其中2表示v2;features表示当前image启用的功能特性 , 其值是一个以逗号分隔的字符串列表 , 例如layering、exclusive-lock等;op_features表示可选的功能特性;
image特性
layering: 是否支持克隆;
striping: 是否支持数据对象间的数据条带化;
exclusive-lock: 是否支持分布式排他锁机制以限制同时仅能有一个客户端访问当前image;
object-map: 是否支持object位图 , 主要用于加速导入、导出及已用容量统计等操作 , 依赖于exclusive-lock特性;
fast-diff: 是否支持快照间的快速比较操作 , 依赖于object-map特性;
deep-flatten: 是否支持克隆分离时解除在克隆image时创建的快照与其父image之间的关联关系;
journaling: 是否支持日志IO , 即是否支持记录image的修改操作至日志对象;依赖于exclusive-lock特性;
data-pool: 是否支持将image的数据对象存储于纠删码存储池 , 主要用于将image的元数据与数据放置于不同的存储池;
管理image
Image特性管理
J版本起 , image默认支持的特性有layering、exclusive-lock、object-map、fast-diff和deep-flatten五个;我们可以使用 rbd create命令的--feature选项支持创建时自定义支持的特性;现有image的特性可以使用rbd feature enable或rbd feature disable命令修改;
[root@ceph-admin ~]# rbd feature disable ceph-rbdpool/vol01 object-map fast-diff deep-flatten[root@ceph-admin ~]# rbd info ceph-rbdpool/vol01rbd image 'vol01':size 5 GiB in 1280 objectsorder 22 (4 MiB objects)id: 149196b8b4567block_name_prefix: rbd_data.149196b8b4567format: 2features: layering, exclusive-lockop_features:flags:create_timestamp: Tue Oct4 00:48:18 2022[root@ceph-admin ~]#提示:如果是使用Linux内核模块rbd来连入ceph集群使用RBD虚拟出来的磁盘 , 对应object-map fast-diff deep-flatten这三个特性在Linux上是不支持的 , 所以我们需要将其禁用掉;

经验总结扩展阅读