参数写错导致卷创建的太大了,16384T,H版本没有object-map特性导致rbd rm删除卷非常慢,实际上后的rados都没有对象(还没有写入多少数据),因此考虑用rados命令进行rbd卷的清理,步骤如下:
- 首先查看卷信息:rbd info rbd/rbd_sys_disk
rbd image 'rbd_sys_disk':
size 16384 TB in 4294967296 objects
order 22 (4096 kB objects)
block_name_prefix: rbd_data.6a74656327b23c6
format: 2
features: layering
flags: - 之后开始清理rados中的数据对象和卷信息记录
123456789101112131415161718192021222324252627282930313233343536373839404142434445$ rados ls -p rbd | grep rbd_data.6a74656327b23c6$ rados rm -p rbd rbd_data.6a74656327b23c6.0000000000000214 # 逐个对象删除即可,可以写一个脚本来做$ rados rm -p rbd rbd_header.6a74656327b23c6 # 清理rbd_header对象$ rados listomapvals -p rbd rbd_directory # 查看rbd_directory的omap属性列表id_6a74656327b23c6 # 删除这个keyvalue: (16 bytes) :0000 : 0c 00 00 00 72 62 64 5f 73 79 73 5f 64 69 73 6b : ....rbd_sys_diskid_6a95c8a327b23c6value: (17 bytes) :0000 : 0d 00 00 00 72 62 64 5f 73 79 73 5f 64 69 73 6b : ....rbd_sys_disk # 注意换行下面还有一个10010 : 31 : 1id_6a9e49a6b8b4567value: (12 bytes) :0000 : 08 00 00 00 76 6f 6c 75 6d 65 30 32 : ....volume02id_6aa42d36b8b4567value: (19 bytes) :0000 : 0f 00 00 00 72 62 64 5f 6c 6f 67 69 63 5f 64 69 : ....rbd_logic_di0010 : 73 6b 31 : sk1name_rbd_logic_disk1value: (19 bytes) :0000 : 0f 00 00 00 36 61 61 34 32 64 33 36 62 38 62 34 : ....6aa42d36b8b40010 : 35 36 37 : 567name_rbd_sys_disk# 删除这个keyvalue: (19 bytes) :0000 : 0f 00 00 00 36 61 37 34 36 35 36 33 32 37 62 32 : ....6a74656327b20010 : 33 63 36 : 3c6name_rbd_sys_disk1value: (19 bytes) :0000 : 0f 00 00 00 36 61 39 35 63 38 61 33 32 37 62 32 : ....6a95c8a327b20010 : 33 63 36 : 3c6name_volume02value: (19 bytes) :0000 : 0f 00 00 00 36 61 39 65 34 39 61 36 62 38 62 34 : ....6a9e49a6b8b40010 : 35 36 37 : 567$ rados rmomapkey -p rbd rbd_directory id_6a74656327b23c6$ rados rmomapkey -p rbd rbd_directory name_rbd_sys_disk$ rbd ls -p rbd 就看不到rbd_sys_disk这个卷了