本来不想再写Ceph相关的文章了,最近在做ceph元数据优化研究及架构,整体思路是:将rados作为数据存储引擎,构建分布式元数据集群来管理元数据,如:将rgw或者fs相关的元数据从ceph的元数据池中抽取出来,转存到分布式元数据集群中,以此达到提升单集群处理能力的目的;要达到这个目的,有两个基础条件:1.对ceph中rgw或者fs的各CURD操作原理及IO路径非常熟悉,2.对ceph中元数据的组织及存储非常熟悉;然后才能在rgw或者mds的IO路径中进行数据及元数据的分离操作,并以合适的格式将元数据转存到分布式元数据集群中。
这是第二篇:本篇分析Object(data)的组织形式及其存储结构
下文的操作在最新的Nautilus版本环境下进行
数据对象分析
对象存储Object的数据存储在:{zone}.rgw.buckets.data
池中。一个rgw对象包含一个或者多个rados对象,下面是几种可能的情况:
1)通过s3cmd put {file} s3://{bucket}
上传的对象,如果对象小于15MB,是下面这个样子:
Header对象包含元信息,如:acl(对应结构RGWAccessControlPolicy),manifest(对应结构RGWObjMa