监控PG状态

如果够你执行ceph health,ceph -s ceph -w 命令,你可能会发现集群并不总是返回HEALTH OK 状态。在检查完OSDs是否运行之后,你还需要检查PG状态。在以下情况下,集群不返回HEALTH OK:

  1. 刚创建pool,PG还没peer完成
  2. PG正在恢复
  3. 刚添加或删除一个OSD
  4. 刚修改CRUSH map并且PG正在迁移
  5. 不同副本的PG存在不一致数据
  6. ceph正在scrubbing PGs 副本
  7. ceph没有足够的空间完成backfilling操作

如果前述情况之一引起ceph返回HEALTH WARN,不要惊慌。在多数情况下,集群能自愈。在一些情况下需要采取行动。监控PGs的一个重要方面是确保当集群运行且所有的PG较好的处于active+clean状态。查看PG状态运行下面的命令:

ceph pg stat

返回的结果会告诉你PGs总数,有多少PG处于某个特定状态,存储了多少数据

注意:一般来说Ceph会报告多种PGs状态

除了PGs状态,ceph存储使用空间,剩余多少容量,总容量等。这些数据在下列情况相当重要:

  • 你将达到 near full ratio 或 full ratio
  • 因为一些CRUSH配置错误导致你的数据没有分布在集群中

PG IDs

PGs IDs由池号(不是池名)跟着(.)  和 PG ID -- 一个十六数组成。你可以通过 ceph osd lspools 输出查看。例如,默认池rdb返回池号0。一个完整合格的PG ID包括下列各式:

{pool-num}.{pg-id}

典型的是这样:

0.1f

检索PGs列表,执行下面:

ceph pg dump

你也可以使用JSON格式输出并保留至文件:

ceph pg dump -o {filename} --format=json

执行下面命令查询特定PG:

ceph pg {poolname}.{pg-id} query

Ceph会以JSON格式输出查询结果。

接下来的部分详细讲解PG状态。

 

CREATING

当你创建一个池,就会创建指定数量的PG。当创建一个个或多个PG时,Ceph会返回creating。一旦创建完成,OSDs作位PGs Acting Set的一部分将执行peer。peer一执行完PG状态就是 active+clean,这就意味着ceph client可以开始写PG了

PEERING

当ceph Peering 一个PG, 在一个PG中,Ceph会使存储PG副本的OSDs进入对象和元数据的协商一致状态。当Ceph完成peering,这意味着存储PG的OSDs对当前PG状态达成一致。然而,完成peering过程并不意味着每一个副本中都有最新的内容。

权威历史

        ceph不允许client写操作直到acting set中所有的OSDs坚持写操作。这种方式确保了自上一次成功peering操作后,acting set中至少有个有一个成员会记录所有的写许可操作。

          有了对写许可操作的精确记录,Ceph能够建立并扩散一个新PG权威历史--一个完整,有完全操作顺序的集合,一执行,就能让一个OSD的PG备份更新

CLEAN

当一个PG处于clean状态,主OSD和副本OSDs会成功peered,并且PG中不会有孤立副本。Ceph在PG中复制所有的对象正确的次数。

DEGRADED

当一个client写入一个对象进主OSD,主OSD 负责将副本写入副本OSDs中。在主OSD将对象写入存储后,PG保持degraded状态,一直到主OSDs接收到副本OSDs创建对象成功的确认

PG可能会出现 active+degraded 的原因是一个OSD可能是active状态即使它没有包含所有的对象。如果一个OSD down了,ceph会将分配给这个OSD的所有PG标记成degraded状态。这些OSDs回复在线时,必须再次peer。然而,client依然可以将新对象写入degraded PG,只要PG active。

如果一个OSD down 并且 degraded 状态持续,ceph 可能会把 OSD 标记为down,之后标记为out,使它离开集群,同时重映射数据从down OSD 到正常OSD。标记为down和out之间的时间

一个PG可能也会是degraded,因为ceph不能发现一个或多个它认为应该在PG中的对象。虽然你不能读写没有找到的对象,但你在degraded PG中仍能访问所有其它对象。

BACK FILLING

当一个新的OSD加入集群,CRUSH会在集群新旧OSD间重新分配PG。强制新OSD立即接受重新分配PG会使新OSD的承受大量负载。用PG Back filling OSD 允许这个过程在后台开始。一旦back filling 完成,准备好之后就能为请求提供服务了

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值