浅析开源项目之 Ceph Ceph 是一个极其复杂的统一分布式存储系统,运维操作门槛高、稳定性不错,性能差强人意。下面对 Ceph 的架构、重要模块和基于 Seastar 的未来规划进行详细分析。 Ceph 概述 Ceph 是由学术界(Sage Weil 博士论文)在 2006 年提出的一个开源的分布式存储系统的解决方案,最早致力于下一代高性能分布式文件存储。经过十多年的发展,还提供了块设备、对象存储 S3 的接口,成为了统一的分布式存储平台,进而成为开源社区存储领域的明星项目,得到了广泛的实际应用。 架构 整体架构如下: * 接口层:提供客户端访问存储层的各种接口,支持 POSIX 文件接口、块设备接口、对象 S3 接口,以及用户可以自定义自己的接口。 * Librados:提供上层访问 RADOS 集群的各种库函数接口,libcephfs、librbd、librgw 都是 Librados 的客户端。 * RADOS:可靠的、自治的分布式对象存储,主要包含 Monitor、OSD、MDS 节点,提供了一个统一的底层分布式存储系统,支持逻辑存储池概念、副本存储和纠删码、自动恢复、自动 rebalance、数据一致性校验、分级缓存、基于 dmClock 的 QoS 等核心功能。 核心组件 * CephFS:Ceph File System,Ceph 对外提供的文件系统服务,MDS 来保存 CephFS 的元数据信息,数据写入 Rados 集群。 * RBD:Rados Block Device,Ceph 对外提供的块设备服务,Ceph 里称为 Image,元数据很少,保存在特定的 Rados 对象和扩展属性中,数据写入 Rados 集群。 * RGW:Rados Gateway,Ceph 对外提供的对象存储服务,支持 S3、Swift 协议,元数据保存在特定的 Pool 里面,数据写入 Rados 集群。 * Monitor:保存了 MONMap、OSDMap、CRUSHMap、MDSMap 等各种 Map 等集群元数据信息。一个 Ceph 集群通常需要 3 个 Mon 节点,通过 Paxos 协议同步集群元数据。 * OSD:Object Storage Device,负责处理客户端读写请求的守护进程。一个 Ceph 集群包含多个 OSD 节点,每块磁盘一个 OSD 进程,通过基于 PGLog 的一致性协议来同步数据。 * MDS:Ceph Metadata Server,文件存储的元数据管理进程,CephFS 依赖的元数据服务,对外提供 POSIX 文件接口,不是 Rados 集群必须的。 * MGR:Ceph Manager,负责跟踪运行时指标以及集群的运行状态,减轻 Mon 负担,不是 Rados 集群必须的。 * Message:网络模块,目前支持 Epoll、DPDK(剥离了 seastar 的网络模块,不使用其 share-nothing 框架)、RDMA,默认 Epoll。 * ObjectStore:存储引擎,目前支持 FileStore、BlueStore、KVStore、MemStore,提供类 POSIX 接口、支持事务,默认 BlueStore。 * CRUSH:数据分布算法,秉承着无需查表,算算就好的理念,极大的减轻了元数据负担(但是感觉过于执着减少元数据了,参考意义并不是很大),但同时数据分布不均,不过已有 CRUSH 优化 Paper。 * SCRUB:一致性检查机制,提供 scrub(只扫描元数据)、deep_scrub(元数据和数据都扫描)两种方式。 * Pool:抽象的存储池,可以配置不同的故障域也即 CRUSH。 IO 流程 IO 流程主要包含了客户端、Monitor、OSD 等组件。客户端通过 Librados 访问 RADOS 集群, RADOS 集群负责处理读写请求,并将数据写入到 OSD 节点中。OSD 节点对数据进行处理,并将处理结果返回给客户端。 PG 一致性协议 PG 一致性协议是 Ceph 中的一致性协议,主要包含了 StateMachine、Failover Overview、PG Peering、Recovery/Backfill 等四个部分。 FileStore FileStore 是 Ceph 中的一种存储引擎,主要提供类 POSIX 接口、支持事务。FileStore 的架构设计主要包含了 Journal、Filesystem 等组件,Journal 负责记录事务,Filesystem 负责存储文件系统的元数据信息。 BlueStore BlueStore 是 Ceph 中的一种存储引擎,主要提供类 POSIX 接口、支持事务。BlueStore 的架构设计主要包含了 BlockDevice、磁盘分配器、BlueFS 等组件,BlockDevice 负责提供块设备服务,磁盘分配器负责分配磁盘空间,BlueFS 负责存储文件系统的元数据信息。 未来规划 Ceph 的未来规划主要包含了基于 Seastar 的未来规划。Seastar 是一个高性能的异步框架,Ceph 将基于 Seastar 实现高性能的分布式存储系统。
剩余42页未读,继续阅读
- 粉丝: 28
- 资源: 332
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论0