ceph---ceph问题处理心得

必须看懂PG状态!

必须看懂PG状态!

必须看懂PG状态!

重要的事情说三遍

ceph 本身的恢复机制是很强的,无论损坏到什么程度,最终都可以恢复。

恢复过程要注意pg的每一个状态,明白了PG的状态,就知道了集群现在做什么,那个地方有问题。

附件:PG状态

状态描述
ActivatingPeering已经完成,PG正在等待所有PG实例同步并固化Peering的结果(Info、Log等)
Active活跃态。PG可以正常处理来自客户端的读写请求
Backfilling正在后台填充态。 backfill是recovery的一种特殊场景,指peering完成后,如果基于当前权威日志无法对Up Set当中的某些PG实例实施增量同步(例如承载这些PG实例的OSD离线太久,或者是新的OSD加入集群导致的PG实例整体迁移) 则通过完全拷贝当前Primary所有对象的方式进行全量同步
无法根据记录的PGLog进行恢复数据时,就需要执行Backfill过程全量恢复数据。
如果超过osd_max_pg_log_entries=10000条, 这个时候需要全量恢复数据。
Backfill-toofull某个需要被Backfill的PG实例,其所在的OSD可用空间不足,Backfill流程当前被挂起
Backfill-wait等待Backfill 资源预留
Clean干净态。PG当前不存在待修复的对象, Acting Set和Up Set内容一致,并且大小等于存储池的副本数
CreatingPG正在被创建
DeepPG正在或者即将进行对象一致性扫描清洗
Degraded降级状态。Peering完成后,PG检测到任意一个PG实例存在不一致(需要被同步/修复)的对象,或者当前ActingSet 小于存储池副本数
降级状态:每个PG有三个副本,分别保存在不同的OSD中,在非故障情况下,这个PG是active+clean 状态,那么,如果PG 的 副本osd.4 挂掉了,这个 PG 是降级状态。
降级就是在发生了一些故障比如OSD挂掉之后,Ceph 将这个 OSD 上的所有 PG 标记为 Degraded。
降级的集群可以正常读写数据,降级的 PG 只是相当于小毛病而已,并不是严重的问题。
Undersized的意思就是当前存活的PG 副本数为 2,小于副本数3,将其做此标记,表明存货副本数不足,也不是严重的问题。
DownPeering过程中,PG检测到某个不能被跳过的Interval中(例如该Interval期间,PG完成了Peering,并且成功切换至Active状态,从而有可能正常处理了来自客户端的读写请求),当前剩余在线的OSD不足以完成数据修复
IncompletePeering过程中, 由于 a. 无非选出权威日志 b. 通过choose_acting选出的Acting Set后续不足以完成数据修复,导致Peering无非正常完成
Inconsistent不一致态。集群清理和深度清理后检测到PG中的对象在副本存在不一致,例如对象的文件大小不一致或Recovery结束后一个对象的副本丢失
当PG内部三个副本有数据不一致的情况,想要修复不一致的数据文件,只需要执行ceph pg repair修复指令,ceph就会从其他的副本中将丢失的文件拷贝过来就行修复数据。
PeeredPeering已经完成,但是PG当前ActingSet规模小于存储池规定的最小副本数(min_size)
Peered状态我们这里可以将它理解成它在等待其他副本上线。
当min_size = 2 时,也就是必须保证有两个副本存活的时候就可以去除Peered这个状态。
处于 Peered 状态的 PG 是不能响应外部的请求的并且IO被挂起。
Peering正在同步态。PG正在执行同步处理
Recovering正在恢复态。集群正在执行迁移或同步对象和他们的副本
Recovery是通过记录的PGLog进行恢复数据的。
记录的PGLog 在osd_max_pg_log_entries=10000条以内,这个时候通过PGLog就能增量恢复数据。
Recovering-wait等待Recovery资源预留
Remapped重新映射态。PG活动集任何的一个改变,数据发生从老活动集到新活动集的迁移。在迁移期间还是用老的活动集中的主OSD处理客户端请求,一旦迁移完成新活动集中的主OSD开始处理
在 OSD 挂掉或者在扩容的时候PG 上的OSD会按照Crush算法重新分配PG 所属的osd编号。并且会把 PG Remap到别的OSD上去。
Remapped状态时,PG当前Acting Set与Up Set不一致。
客户端IO可以正常读写。
RepairPG在执行Scrub过程中,如果发现存在不一致的对象,并且能够修复,则自动进行修复状态
ScrubbingPG正在或者即将进行对象一致性扫描
Unactive非活跃态。PG不能处理读写请求
Unclean非干净态。PG不能从上一个失败中恢复
Stale未刷新态。PG状态没有被任何OSD更新,这说明所有存储这个PG的OSD可能挂掉, 或者Mon没有检测到Primary统计信息(网络抖动)
当出现一个PG内三个副本都挂掉的情况,就会出现stale状态。
此时该PG不能提供客户端读写,IO挂起夯住,请求block
Primary超时未向mon上报pg相关的信息(例如网络阻塞),也会出现stale状态。
UndersizedPG当前Acting Set小于存储池副本数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值