【存储ceph】 ceph概念与原理

 CEPH概念

    Ceph是一个可靠地、自动重均衡、自动恢复的分布式存储系统,可以将Ceph分为三大块,分别是对象存储、块设备存储和文件系统服务。由于Ceph的良好设计,采用了CRUSH算法、HASH环等方法,使得它不存在传统的单点故障的问题,且随着规模的扩大性能并不会受到影响。

 

CEPH架构

【存储ceph】 ceph概念与原理_第1张图片   

                       经典的Ceph模块架构图

  • RBD: RADOS block device,提供的块设备服务。

  • RGW:RADOS gateway,对外提供的对象存储服务,接口与S3和Swift兼容

  • CephFS:Ceph File System,对外提供的文件系统服务

  • RADOS:Reliable Autonomic Distributed Object Store,实现数据分配、Failover等集群操作

  • Libradio:RADOS库

 

CEPH核心组件

    Monitor:

     集群需要多个Monitor组成的小集群,它们通过Paxos同步数据,用来保存OSD的元数据

     负责监视Ceph集群,维护Ceph集群的健康状态,同时维护着Ceph集群中的各种Map图,比如OSD Map、Monitor Map、PG Map和CRUSH Map,这些Map统称为Cluster Map,Cluster Map是RADOS的关键数据结构,管理集群中的所有成员、关系、属性等信息以及数据的分发,比如当用户需要存储数据到Ceph集群时,OSD需要先通过Monitor获取最新的Map图,然后根据Map图和object id等计算出数据最终存储的位置

   OSD

       Object Storage Device,存储数据、复制数据、平衡数据、恢复数据等,与其它OSD间进行心跳检查等,并将一些变化情况上报给Ceph Monitor。一般情况下一块硬盘对应一个OSD,由OSD来对硬盘存储进行管理,当然一个分区也可以成为一个OSD。

    MDS

     Ceph MetaData Server,主要保存的文件系统服务的元数据,但对象存储和块存储设备是不需要使用该服务的。

 

PG状态表

      Placement Grouops,是一个逻辑的概念,一个PG包含多个OSD。引入PG这一层其实是为了更好的分配数据和定位数据。

状态 描述
Activating Peering已经完成,PG正在等待所有PG实例同步并固化Peering的结果(Info、Log等)
Active 活跃态。PG可以正常处理来自客户端的读写请求
Backfilling 正在后台填充态。 backfill是recovery的一种特殊场景,指peering完成后,如果基于当前权威日志无法对Up Set当中的某些PG实例实施增量同步(例如承载这些PG实例的OSD离线太久,或者是新的OSD加入集群导致的PG实例整体迁移) 则通过完全拷贝当前Primary所有对象的方式进行全量同步
Backfill-toofull 某个需要被Backfill的PG实例,其所在的OSD可用空间不足,Backfill流程当前被挂起
Backfill-wait 等待Backfill 资源预留
Clean 干净态。PG当前不存在待修复的对象, Acting Set和Up Set内容一致,并且大小等于存储池的副本数
Creating PG正在被创建
Deep PG正在或者即将进行对象一致性扫描清洗
Degraded 降级状态。Peering完成后,PG检测到任意一个PG实例存在不一致(需要被同步/修复)的对象,或者当前ActingSet 小于存储池副本数
Down Peering过程中,PG检测到某个不能被跳过的Interval中(例如该Interval期间,PG完成了Peering,并且成功切换至Active状态,从而有可能正常处理了来自客户端的读写请求),当前剩余在线的OSD不足以完成数据修复
Incomplete Peering过程中, 由于 a. 无非选出权威日志 b. 通过choose_acting选出的Acting Set后续不足以完成数据修复,导致Peering无非正常完成
Inconsistent 不一致态。集群清理和深度清理后检测到PG中的对象在副本存在不一致,例如对象的文件大小不一致或Recovery结束后一个对象的副本丢失
Peered Peering已经完成,但是PG当前ActingSet规模小于存储池规定的最小副本数(min_size)
Peering 正在同步态。PG正在执行同步处理
Recovering 正在恢复态。集群正在执行迁移或同步对象和他们的副本
Recovering-wait 等待Recovery资源预留
Remapped 重新映射态。PG活动集任何的一个改变,数据发生从老活动集到新活动集的迁移。在迁移期间还是用老的活动集中的主OSD处理客户端请求,一旦迁移完成新活动集中的主OSD开始处理
Repair PG在执行Scrub过程中,如果发现存在不一致的对象,并且能够修复,则自动进行修复状态
Scrubbing PG正在或者即将进行对象一致性扫描
Unactive 非活跃态,PG不能处理读写请求
Unclean 非干净态,PG不能从上一个失败中恢复
Stale 未刷新态。PG状态没有被任何OSD更新,这说明所有存储这个PG的OSD可能挂掉, 或者Mon没有检测到Primary统计信息(网络抖动)
Undersized PG当前Acting Set小于存储池副本数

 Degraded

      每个PG有三个副本,分别保存在不同的OSD中,在非故障情况下,这个PG是active+clean 状态。降级就是在发生了一些故障比如OSD挂掉之后,Ceph 将这个 OSD 上的所有 PG 标记为 Degraded

 

 

参考:

    https://www.jianshu.com/p/cc3ece850433

你可能感兴趣的:(存储)