本来不想再写Ceph相关的文章了,最近在做ceph元数据优化研究及架构,整体思路是:将rados作为数据存储引擎,构建分布式元数据集群来管理元数据,如:将rgw或者fs相关的元数据从ceph的元数据池中抽取出来,转存到分布式元数据集群中,以此达到提升单集群处理能力的目的;要达到这个目的,有两个基础条件:1.对ceph中rgw或者fs的各CURD操作原理及IO路径非常熟悉,2.对ceph中元数据的组织及存储非常熟悉;然后才能在rgw或者mds的IO路径中进行数据及元数据的分离操作,并以合适的格式将元数据转存到分布式元数据集群中。
前期通过三篇文章介绍了上述的第一项基础条件,本篇介绍第二项基础条件,这是第一篇:rgw关键流程分析及业务逻辑
下文的操作在最新的Nautilus版本环境下进行,基于s3 API进行,对rgw中的架构,关键流程及处理逻辑进行抽象,以用户管理举例说明
架构概述
简单介绍下rgw的逻辑分层架构,如下图:
我将rgw从逻辑上分成两层:
1)frontend:主要是处理HTTP请求以及业务逻辑封装,并提供到下层store的语义转化。
2)store:主要负责io处理,对librados的封装。
根据这个分层,很显