ceph osd pg 状态介绍

导读:
1.从零部署一个ceph集群
2.ceph block device与cephfs快速入门
3.ceph 对象存储快速入门
4.Ceph存储集群&配置
5.centos7 通过cephadm部署ceph octopus版本
6.ceph集群状态检查常用命令

OSD in/out 、up/down

OSD状态应处于集群内(in)、集群外(out),并且处于运行(up)或关闭(down)。如果OSD处于up,他可能位于集群中(可以读写数据),也可能不在集群中。如果OSD原本在集群中但是最近被移除了集群,ceph会将整个PG移动到其他OSD中。如果OSD不在集群中,则CRUSH不会将PG分配给OSD。
ceph osd pg 状态介绍_第1张图片

PG状态

OSD存储PG,PG包含对象。集群的整体监控状态主要取决于PG。只有所有PG的状态都是active+clean状态时,集群才会保持为HEALTH_OK状态。如果ceph集群不是健康状态,很有可能PG不是active+clean。下面介绍下PG的多种状态

  • creating:创建pool时,它将创建指定的pg的数量。 当Ceph创建一个或多个PG时,它将fillback创建。 创建OSD之后,属于PG"Acting Set"的OSD将会对等(peer)。 对等完成后,展示PG状态应为active+clean,这意味着Ceph客户端可以开始写入PG。

    在这里插入图片描述

  • peering:在peering状态下,OSD的PG都在acting集合中,存储PG的副本,并保持PG中的对象和元数据状态一致。在peering操作完成后,存储PG的所有OSD都彼此确认当前状态。

  • active:在peering操作完成后,Ceph将PG状态置为active。处在active状态,说明PG及其副本中的数据都处于能够提供I/O操作的状态。

  • clean:在clean状态下,主OSD和副本OSD已经成功彼此确认,所有PG都处在正确的位置上,没有发生偏移,而且所有对象都复制好正确的副本数。

  • degraded:当客户端将PG对象写入主OSD时,主OSD负责将副本写入副本OSD。在主OSD将对象写入存储后,PG将保持degraded状态,直到主OSD从副本OSD收到确认Ceph成功创建副本对象的确认为止。

    PG可以处于active+degraded的原因是:即使OSD尚未容纳所有对象,也可能处于active状态,如果OSD出现故障down掉了,ceph将会标记分配给OSD的每一个PG为degraded。当OSD重新恢复后,OSD会再次完成peer操作。即使PG处于degraded状态,客户端依然可以执行I/O操作。

    如果OSD down并且degraded状态持续存在,ceph可能会将down的OSD标记为不在集群内,并将数据映射到另一个OSD中。标记down的时间默认为600s,可以由mon osd down out interval控制。

    PG也可能degraded,因为ceph找不到认为应该在PG中的一个或多个对象,虽然无法读取或写入未找到的对象,但仍可以访问处于degraded PG中的其他对象。

  • recovering:ceph专为容错能力而设计。当OSD发生故障时,其存储的内容可能会与其他OSD上副本的数据不一致。当OSD恢复up状态,ceph会针对这些PG启动恢复操作,使得它们的数据与其他OSD上的PG副本保持一致。

  • back filling:当新的OSD加入集群后,CRUSH将把PG从集群中的OSD重新分配给新添加的OSD来平衡数据。这个过程称之为back filling。一旦PG的backfilling 操作完成,OSD可以参与到客户端的I/O操作中。

    在backfilling操作期间,可能会看到如下状态:

    • backfill_wait:backfill操作处于挂起状态,还未执行。
    • backfill_toofull:已请求backfill操作,由于存储容量不足无法完成。
  • remapped:每当OSD的 acting 集合有变化,就会触发数据迁移,数据从老的 acting 集合OSD向新的 acting 集合OSD转移。在迁移操作期间,依然由旧的 acting 集合主副本OSD为客户端提供服务。迁移完成后,使用新的 acting 集合主OSD为客户端提供服务。

  • stale:ceph通过heartbeat机制来确保主机与daemon处于运行状态,当ceph-osd daemon处于卡顿状态,从而无法积极反应统计结果。默认情况下osd daemon每隔0.5秒向ceph mon报告统计信息。如果某个PG的acting集合的主副本OSD没有成功向mon报告统计结果,或者其他OSD报告它们的主OSD状态变为down,mon会考虑将这些PG标记为stale状态。

可以通过如下命令查看PG状态。

[root@ceph-admin ~]# ceph pg stat
INFO:cephadm:Inferring fsid 23db6d22-b1ce-11ea-b263-1e00940000dc
INFO:cephadm:Using recent ceph image ceph/ceph:v15
105 pgs: 105 active+clean; 5.3 KiB data, 71 MiB used, 297 GiB / 300 GiB avail


x pgs: y active+clean; z bytes data, aa MB used, bb GB / cc GB avail
pg的总数(x),处于特定状态(例如,active+clean(y))和已存储的数据量(z)的特定状态下有多少个放置组。
已使用的存储容量(aa),剩余存储容量(bb)和该pg的总存储容量(cc)。

你可能感兴趣的:(ceph)