ceph 对象存储查询对象数据
RGW获取对象元数据
普通对象
bucket :jxc
pool :obj_data
file :file_0_MQnZW
普通对象存储方式:小于chunk_size的对象文件在底层RADOS 只有一个对象,大于chunk_size的对象文件,会分成多个对象存储,其中第一个对象叫做首对象,大小为rgw_max_chunk_size,其他的对象按照rgw_obj_stripe_size切成不同的object 存入rados。如图41M对象,chunk_size=4M,strip_size=32M:
![0](https://img2020.cnblogs.com/blog/2187105/202108/2187105-20210823175155314-1881671503.jpg)
1、获取存储池列表
rados lspools
![0](https://img2020.cnblogs.com/blog/2187105/202108/2187105-20210823175154123-903199768.jpg)
2、获取对象信息(首对象,size = chunk size)
rados -p obj_data ls | grep file_0_MQnZW
![0](https://img2020.cnblogs.com/blog/2187105/202108/2187105-20210823175154161-1397020592.jpg)
3、获取对象xattr列表
rados -p obj_data listxattr d8627e44-9768-4aad-adcd-aecc00585b88.2524098.99_file_0_MQnZW
![0](https://img2020.cnblogs.com/blog/2187105/202108/2187105-20210823175154163-1279562302.jpg)
4、重定向对象manifest
rados -p obj_data getxattr d8627e44-9768-4aad-adcd-aecc00585b88.2524098.99_file_0_MQnZW user.rgw.manifest > file_0_MQnZW.manifest
5、查看对象manifest信息
ceph-dencoder type RGWObjManifest import file_0_MQnZW.manifest decode dump_json
![0](https://img2020.cnblogs.com/blog/2187105/202108/2187105-20210823175155350-495351717.jpg)
6、根据前缀或bucket_id获取对象各条带信息
![0](https://img2020.cnblogs.com/blog/2187105/202108/2187105-20210823175154533-847040663.jpg)
分段对象
bucket :jxc
pool :obj_data
file :VC6CN.7z
分段对象存储方式:头对象大小为0,按分段大小切成不同对象,然后每个分段按照rgw_obj_stripe_size切成不同的object 存入rados,如果单个分段小于strip_size,则只保留一个首对象。如果单个分段大于strip_size,则首对象size=strip_size,中间对象size=strip_size,尾对象为剩余大小。如图157.9M对象,分段大小50M,strip_size=32M:
![0](https://img2020.cnblogs.com/blog/2187105/202108/2187105-20210823175156443-344289410.jpg)
1、获取存储池列表
rados lspools
![0](https://img2020.cnblogs.com/blog/2187105/202108/2187105-20210823175154123-903199768.jpg)
2、获取对象信息
rados -p obj_data ls | grep VC6CN.7z
![0](https://img2020.cnblogs.com/blog/2187105/202108/2187105-20210823175155635-1248990788.jpg)
3、获取对象xattr列表
rados -p obj_data listxattr d8627e44-9768-4aad-adcd-aecc00585b88.1694570.1_VC6CN.7z
![0](https://img2020.cnblogs.com/blog/2187105/202108/2187105-20210823175154476-1434629110.jpg)
4、重定向对象manifest
rados -p obj_data getxattr d8627e44-9768-4aad-adcd-aecc00585b88.1694570.1_VC6CN.7z user.rgw.manifest > VC6CN.7z.manifest
5、查看对象manifest信息
ceph-dencoder type RGWObjManifest import VC6CN.7z.manifest decode dump_json
![0](https://img2020.cnblogs.com/blog/2187105/202108/2187105-20210823175154889-541355412.jpg)
6、根据前缀或bucket_id获取对象各条带信息
![0](https://img2020.cnblogs.com/blog/2187105/202108/2187105-20210823175156752-792566003.jpg)
秒合对象
bucket :bucket_0_ocf3JW
pool :obj_data
file :combos_0_Tvj
秒合对象存储方式:秒合对象首对象size=0,各子对象按照整体上传或者分片上传的方式存储到RADOS中。
![0](https://img2020.cnblogs.com/blog/2187105/202108/2187105-20210823175155349-126786191.jpg)
1、获取存储池列表
rados lspools
![0](https://img2020.cnblogs.com/blog/2187105/202108/2187105-20210823175154123-903199768.jpg)
2、获取对象信息(头对象)
rados -p obj_data ls | grep combos_0_Tvj
![0](https://img2020.cnblogs.com/blog/2187105/202108/2187105-20210823175154716-152056646.jpg)
3、获取对象xattr列表
rados -p obj_data listxattr d8627e44-9768-4aad-adcd-aecc00585b88.1694591.1_combos_0_Tvj
![0](https://img2020.cnblogs.com/blog/2187105/202108/2187105-20210823175154574-959338336.jpg)
4、重定向对象mmt
rados -p obj_data getxattr d8627e44-9768-4aad-adcd-aecc00585b88.1694591.1_combos_0_Tvj user.rgw.mmt > combos_0_Tvj.mmt
5、查看对象mmt信息
ceph-dencoder type RGWCombosObjMemberManifest import combos_0_Tvj.mmt decode dump_json
![0](https://img2020.cnblogs.com/blog/2187105/202108/2187105-20210823175155110-1437736011.jpg)