其实之前已经学过ceph了,但是很多都忘了,现在学红帽ceph,再对原本的笔记做一下精简与补充
ceph关键组件
Monitor(MON)
Ceph Monitors是维护集群映射的守护进程。集群映射是五个映射的集合,其中包含关于集群状态及
其配置的信息
Monitor需要奇数个Monitor来配置ceph集群,因为会需要仲裁
Ceph Object Storage Devices(OSD)
OSD是Ceph存储集群的底层块设备,一般认为一块磁盘就是一个OSD,比如sda sdb sdc。
Ceph客户端和OSD守护进程都使用了CRUSH算法来高效地计算对象位置信息,而不是依赖于中央查找表。
OSD也分Primary OSD与Secondary OSD,ceph客户端读写数据时,联系的都是主OSD,而Secondary OSD确保集群发生故障时能够正常恢复数据
CRUSH Map
将每个对象分配给了一个Placement Group PG。PG是对象和OSD的抽象层,对象在逻辑层面上存放在PG中,实际上是在OSD中
CRUSH MAP使用伪随机算法将对象分布到PG中,并使用规则确定PG到OSD的映射,如果发生故障,ceph将PG重新映射到不同的OSD,并同步其内容
Ceph Managers(MGR)
提供一组集群的统计信息,其实就是一个web界面,并且支持API来暴露ceph的信息
Ceph Metadata Server(MDS)
元数据服务器,只有cephfs用这玩意,因为ceph底层是对象存储,MDS就负责让ceph对象存储与cephfs客户端之间的通信
Ceph Cluster Map集群映射
MON负责维护集群信息,这其中就包含了五个map
- Monitor Map
包含了集群ID,每个Monitor的位置、地址、端口,映射时间戳。fsid是唯一自动生成的UUID,用来标识Ceph集群
使用Ceph mon dump可以查看Monitor Map
- OSD map
包含集群fsid,pool列表,replica大小,PG数量,OSD列表和状态,map时间戳
使用ceph osd dump可以查看
- PG map
包含PG版本,完整比率,PG的ID,up Set,Acting Set,PG状态,每个pool使用情况信息,map时间戳
使用ceph pg dump可以查看
- CRUSH Map
包含存储设备的列表,故障域层次结构列表
使用ceph osd crush dump可以查看
- MDS Map
包含存储元数据的pool,MDS列表和时间戳
使用ceph fs dump查看MDS map
ceph访问方式
ceph本质上是对象存储,但是它做底层做了开发,使其可以提供多种存储
1 | ceph提供了多种方式访问ceph集群: |
ceph数据分发组件
Pool存储池
osd是用来存放数据的,pool是Ceph存储集群中用于存储对象的逻辑分区
1 | 属性: |
PG
数据在逻辑上存放的位置,PG记录了数据实际上存放在OSD上的映射
略
集群映射Cluster Map
ceph客户端从MON获取最新的Cluster Map副本,Cluster Map为客户端提供了所有集群中MON OSD和MDS的信息,但不提供访问对象的位置
Ceph客户端使用CRUSH算法确定哪些osd负责PG
数据保护
提供两种数据保护方式,一种就是副本,一种是与RAID相同的纠错码
一般来说3副本,略