【存储ceph】 ceph概念与原理

 CEPH概念

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

 

CEPH架构

   

                       经典的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这一层其实是为了更好的分配数据和定位数据。

状态描述
ActivatingPeering已经完成,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内容一致,并且大小等于存储池的副本数
CreatingPG正在被创建
DeepPG正在或者即将进行对象一致性扫描清洗
Degraded降级状态。Peering完成后,PG检测到任意一个PG实例存在不一致(需要被同步/修复)的对象,或者当前ActingSet 小于存储池副本数
DownPeering过程中,PG检测到某个不能被跳过的Interval中(例如该Interval期间,PG完成了Peering,并且成功切换至Active状态,从而有可能正常处理了来自客户端的读写请求),当前剩余在线的OSD不足以完成数据修复
IncompletePeering过程中, 由于 a. 无非选出权威日志 b. 通过choose_acting选出的Acting Set后续不足以完成数据修复,导致Peering无非正常完成
Inconsistent不一致态。集群清理和深度清理后检测到PG中的对象在副本存在不一致,例如对象的文件大小不一致或Recovery结束后一个对象的副本丢失
PeeredPeering已经完成,但是PG当前ActingSet规模小于存储池规定的最小副本数(min_size)
Peering正在同步态。PG正在执行同步处理
Recovering正在恢复态。集群正在执行迁移或同步对象和他们的副本
Recovering-wait等待Recovery资源预留
Remapped重新映射态。PG活动集任何的一个改变,数据发生从老活动集到新活动集的迁移。在迁移期间还是用老的活动集中的主OSD处理客户端请求,一旦迁移完成新活动集中的主OSD开始处理
RepairPG在执行Scrub过程中,如果发现存在不一致的对象,并且能够修复,则自动进行修复状态
ScrubbingPG正在或者即将进行对象一致性扫描
Unactive非活跃态,PG不能处理读写请求
Unclean非干净态,PG不能从上一个失败中恢复
Stale未刷新态。PG状态没有被任何OSD更新,这说明所有存储这个PG的OSD可能挂掉, 或者Mon没有检测到Primary统计信息(网络抖动)
UndersizedPG当前Acting Set小于存储池副本数

 Degraded

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

 

 

参考:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值