1、ceph
作者sage博士2004年发表。
2、ceph特点
高性能
a、采用crush算法,数据分布均衡
b、灾域的隔离,实现各类负载的副本放置规则
c、支持上千个存储节点的规模
高可用性
a副本数可以灵活控制
b支持故障域隔离,数据强一致性
c故障场景自动修复自愈
d没有单点故障 自动管理
高可扩展
去中心化
扩展灵活
节点增长而线性增长
特性丰富:支持块存储、文件存储、对象存储
3、应用场景
ceph是高性能、可扩容的分布式存储系统
对象存储 RADOSGW 提供restful接口
块存储 RDB
文件系统 CephFS
4、ceph核心组件
monitor集群状态监视器
MDS metadata server:ceph元数据
OSD object store daemon :对象存储守护程序 负责存储数据、处理数据复制、恢复、回、再平衡
RADOS:reliable autonomic distributed object store 可靠自动分布对象存储 ,保存对象,确保数据一致性
LIBRADOS :应用程序提供接口
RADOSGW :网关接口,提供对象存储服务,使用librgw和librados实现应用程序和ceph对象建立连接
RBD:块设备 自动精简并调整大小,数据分散在多个OSD上
cephFS 文件系统
5、ceph数据存储过程
PG placement Group
file-->object映射
object-->PG映射
PG-->OSD映射,crush算法
CRUSH controlled replication under scalable hashing 数据存储分布式选择算法
6、ceph IO流程和数据分布
步骤:
1. client 创建cluster handler。
2. client 读取配置文件。
3. client 连接上monitor,获取集群map信息。
4. client 读写io 根据crshmap 算法请求对应的主osd数据节点。
5. 主osd数据节点同时写入另外两个副本节点数据。
6. 等待主节点以及另外两个副本节点写完数据状态。
7. 主节点及副本节点写入状态都成功后,返回给client,io写入完成。