浅析开源项目之 Ceph1
需积分: 0 145 浏览量
更新于2022-08-04
收藏 1.78MB PDF 举报
浅析开源项目之 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 实现高性能的分布式存储系统。
天眼妹
- 粉丝: 29
- 资源: 332
最新资源
- 基于Spring Boot +Dubbo微服务商城系统资料齐全+详细文档.zip
- 基于Spring cloud、dubbo、oauth2的微服务应用资料齐全+详细文档.zip
- 基于Spring Cloud Gateway的Dubbo网关资料齐全+详细文档.zip
- 基于Spring Cloud Alibaba的微服务架构资料齐全+详细文档.zip
- 基于Spring MVC+MyBatis+Shiro+Dubbo开发的分布式后台管理系统资料齐全+详细文档.zip
- 基于springboot+dubbo+redis session共享,图形验证码,手机短信验证码资料齐全+详细文档.zip
- MATLAB代码:计及绿证交易和综合需求响应的综合能源系统优化调度 关键词:绿证交易 综合需求响应 综合能源系统 优化调度 仿真平台: matlab+yalmip+cplex 主要内容:代码针对综合
- 这是一套核心期刊论文格式模板
- 基于Springboot,Dubbo 等开发的分布式抽奖系统资料齐全+详细文档.zip
- 基于springboot-dubbo-mybatis构架一个通用的开发开发框架资料齐全+详细文档.zip
- 基于SpringBoot+Dubbo+Zookeeper+Maven+IDEA搭建分布式项目实战资料齐全+详细文档.zip
- 基于springboot+dubbo的练手级电商项目资料齐全+详细文档.zip
- 基于springBoot的封装开发dubbo接口的http平台资料齐全+详细文档.zip
- 基于springboot集成dubbo、zookeeper,基于注解形式资料齐全+详细文档.zip
- 基于Springcloud Alibaba Dubbo创建的后台分布式管理系统资料齐全+详细文档.zip
- 基于zipkin调用链封装starter实现springmvc、dubbo、restTemplate等实现全链路跟踪资料齐全+详细文档.zip