ceph同时提供对象存储、块存储、文件存储三种接口,但本质上其实是对象存储,也就是说一个rbd image实际上包含了多个对象(默认情况下是image_size/4M)。
此处以块存储(RBD)为例进行演示,因为三种接口最终存储文件的操作单元都是对象,所以其他接口的方法类似:
前提:在bloc接口下有一个池:pool1,创建另一个volume(rbd image):vol1。
因为这个vol1里其实包含了很多object,我们首先要查找object的位置:
1.查找volume(rbd image)的指纹信息
[root@controller-1 ~]#rbd info pool1/vol1
rbd image 'vol1':
size 10240 MB in 2560 objects
order 22 (4096 kB objects)
block_name_prefix: rbd_data.bd85d5ffe883b
format: 2
features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
flags:
其中:bd85d5ffe883b就是指纹信息
2.根据指纹找到这个volume的object
rados -p pool1 ls|grep bd85d5ffe883b
rbd_data.bd85d5ffe883b.0000000000000261
rbd_data.bd85d5ffe883b.00000000000001a7
rbd_data.bd85d5ffe883b.000000000000017c
rbd_data.bd85d5ffe883b.0000000000000596