文章目录
- 1.Ceph组件介绍
- 1.1 组件介绍
- 1.2 流程解读
- 1.2.1 综合效果图
- 1.2.2 数据存储逻辑
- 1.3 小结
1.Ceph组件介绍
学习目标:这一节,我们从组件介绍、流程解读、小结三个方面来学习。
1.1 组件介绍
无论是想向云平台提供 Ceph 对象存储和 Ceph 块设备服务、部署 Ceph 文件系统还是将 Ceph 用于其他目的,所有 Ceph 存储集群部署都从设置每个 Ceph 节点、网络和 Ceph 开始存储集群。
一个 Ceph 存储集群至少需要一个 Ceph Monitor、Ceph Manager 和 Ceph OSD(对象存储守护进程)。运行 Ceph 文件系统客户端时也需要 Ceph 元数据服务器(MDS)。
组件 | 解析 |
---|---|
Monitors | Ceph Monitor(守护进程,ceph-mon)维护集群状态的映射,包括监视器映射、管理器映射、OSD映射、MDS映射和CRUSH映射。这些映射是Ceph守护进程相互协调所需的关键集群状态。监视器还负责管理守护进程和客户端之间的身份验证。通常至少需要三个监视器才能实现冗余和高可用性。基于paxos协议实现节点间信息同步。Ceph 保存着发生在Monitors 、OSD 和 PG上的每一次状态变更的历史信息(称为 epoch )。 |
Managers | Ceph管理器(守护进程,ceph-mgr)负责跟踪运行时指标和Ceph集群的当前状态,包括存储利用率、当前性能指标和系统负载。Ceph管理器守护进程还托管基于Python的模块来管理和公开Ceph集群信息,包括基于Web的Ceph仪表盘和REST API。高可用性通常至少需要两个管理器。基于raft协议实现节点间的信息同步。 |
Ceph OSDs | Ceph OSD(对象存储守护进程,ceph-osd)存储数据,处理数据复制、恢复、回填、再均衡,并通过检查其他Ceph OSD守护进程的心跳来向Ceph监视器和管理器提供一些监控信息。通常至少需要3个Ceph OSD来实现冗余和高可用性。本质上Ceph OSD就是一个个host主机上的存储磁盘。当 Ceph 存储集群设定为有3个副本时,至少需要3个 OSD 守护进程,集群才能达到 active+clean 状态( Ceph 默认有3个副本,但可以调整副本数)。 |
MDSs | Ceph Metadata Service(元数据服务器,ceph-mds)代表Ceph文件系统存储元数据(也就是说,Ceph 块设备和 Ceph 对象存储不使用MDS )。Ceph元数据服务器使得 POSIX(为应用程序提供的接口标准)文件系统的用户们,可以在不对Ceph存储集群造成负担的前提下,执行诸如ls、find等基本命令。 |
PG | Ceph Placement Groups(放置组),是一个逻辑的概念 ,一个PG包含多个OSD。引入PG这一层其实是为了更好的分配数据和定位数据。写数据的时候,写入主OSD,冗余两份。Ceph 把客户端数据保存为存储池内的对象。通过使用 CRUSH 算法, Ceph 可以计算出哪个放置组(PG)应该持有指定的对象(Object),然后进一步计算出哪个 OSD 守护进程持有该放置组。 CRUSH 算法使得 Ceph 存储集群能够动态地伸缩、再均衡和修复。 |
1.2 流程解读
1.2.1 综合效果图
Ceph将数据作为对象,存储在逻辑存储池中,主要包括两步:
把对象数据,映射给PG
- 计算出哪个放置组应该包含该对象
- 这部分功能是由Hash算法实现的
把 PG 映射到 host 的 OSD:
- 计算出哪个 Ceph OSD Daemon 应该存储该放置组
- 这部分由 Crush 算法来决定的,Crush 算法使 Ceph 存储集群能够动态扩展、重新平衡和恢复。
1.2.2 数据存储逻辑
1.3 小结