工作中需要计算云盘快照容量以及云盘自身的大小
#创建 5G大小的 image
rbd create ceph-pool/rbd-demo-1.img --size 5G
#物理机上面 rbd map挂载卷
rbd -c /etc/ceph/ceph.1.conf map <pool-name>/<image-name>
实际中,如果image或者parent image 开启特殊feature时会导致无法map,需要先disable掉再map
#计算 image占用容量大小
1. 通过du 计算
#rbd -c /etc/ceph/ceph.1.conf du sata_pool1/volume-da2f06ac-72ff-47c7-bff0-942e240c38b3
2. 通过diff 计算
#rbd -c /etc/ceph/ceph.1.conf diff sata_pool1/volume-0ef27b6a-973a-422c-a8dc-6c315228cbae | awk '{ SUM += $2 } END { printf ("%.2f GB",SUM/1024/1024/1024) }'
实际中,发现至少在14 版本ceph上面,du是不准确的,diff 似乎更准确,但是diff这么计算包含了image自身的大小以及快照的总大小,没法看到每个快照各自的大小