【ceph】pg状态不正常,Degraded data redundancy: 460/77222938 objects degraded (0.001%), 11 pgs degraded

文章讨论了Ceph集群的健康警告,特别是pg(PlacementGroup)状态异常,如stuckundersized,提示数据冗余度降低。文章建议检查OSD健康、存储池状态、副本数配置,并提供数据再平衡操作等解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  本站以分享各种运维经验和运维所需要的技能为主

《python零基础入门》:python零基础入门学习

《python运维脚本》: python运维脚本实践

《shell》:shell学习

《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战

《k8》暂未更新

《docker学习》暂未更新

《ceph学习》ceph日常问题解决分享

《日志收集》ELK+各种中间件

《运维日常》运维日常

《linux》运维面试100问

 pg状态不正常

            Degraded data redundancy: 460/77222938 objects degraded (0.001%), 11 pgs degraded, 20 pgs undersized

    pg 1.9 is stuck undersized for 67505.094338, current state active+undersized+degraded, last acting [95,60]

    pg 1.a is stuck undersized for 67505.092252, current state active+undersized, last acting [125,26]

    pg 1.b is stuck undersized for 67505.096730, current state active+undersized, last acting [25,125]

    pg 1.c is stuck undersized for 67505.098017, current state active+undersized, last acting [79,166]

    pg 1.e is stuck undersized for 67505.096981, current state active+undersized+degraded, last acting [97,63]

    pg 2.1 is stuck undersized for 66585.680482, current state active+undersized+degraded, last acting [167,74]

    pg 2.7 is stuck undersized for 64373.451329, current state active+undersized+degraded, last acting [119,13]

    pg 2.8 is stuck undersized for 66579.748265, current state active+undersized+degraded, last acting [141,7]

    pg 2.a is stuck undersized for 63851.308379, current state active+undersized+degraded, last acting [85,0]

    pg 2.d is stuck undersized for 63752.075326, current state active+undersized+degraded, last acting [51,115]

    pg 3.a is stuck undersized for 63856.354608, current state active+undersized+degraded, last acting [119,27]

    pg 4.1 is stuck undersized for 67505.096880, current state active+undersized, last acting [30,87]

    pg 4.2 is stuck undersized for 67505.061049, current state active+undersized, last acting [158,74]

    pg 4.6 is stuck undersized for 67505.081249, current state active+undersized, last acting [111,22]

    pg 4.7 is stuck undersized for 67505.093693, current state active+undersized, last acting [95,17]

    pg 4.8 is stuck undersized for 67505.092161, current state active+undersized, last acting [70,150]

    pg 4.9 is stuck undersized for 67505.095216, current state active+undersized+degraded, last acting [107,17]

    pg 4.c is stuck undersized for 67505.097948, current state active+undersized, last acting [127,30]

    pg 4.d is stuck undersized for 67505.086830, current state active+undersized+degraded, last acting [123,2]

    pg 4.f is stuck undersized for 67505.097398, current state active+undersized+degraded, last acting [110,66]

根据信息, Ceph 集群的健康状态显示为 HEALTH_WARN,并且存在数据冗余度降低的警告。具体的警告信息是:460/76950244 个对象降级(0.001%),11 个降级的 PG(Placement Group),20 个大小不足的 PG。

警告信息中提到了一些 pg(Placement Group)被标记为 "stuck undersized",表示这些 PG 处于大小不足的状态,并且已经持续了一段时间。每个 PG 的状态描述了它们的活动状态、大小和降级情况,以及最后一次执行操作的 OSD(Object Storage Daemon)节点。

这些警告表明你的 Ceph 集群中的一些 PG 处于不完整的状态,可能由于某些原因导致了数据冗余度的降低。这可能会影响数据的可靠性和性能。为了解决这个问题,你可以采取以下步骤:

  1. 检查集群的 OSD 健康状态:运行 ceph osd tree 命令,检查 OSD 的状态是否正常,是否有 OSD 处于故障或离线状态。

  2. 检查集群的存储池(Pool)状态:运行 ceph osd pool stats 命令,检查存储池的状态是否正常,是否有存储池达到了容量限制。

  3. 检查集群的副本数和故障域设置:确保你的存储池设置了足够的副本数,并且故障域设置正确。这样可以确保数据在集群中的多个位置进行复制,提高数据的冗余度和可靠性。

  4. 执行数据再平衡操作:运行 ceph pg repair 命令来触发数据再平衡操作,以恢复 PG 的正常状态。这将重新分布数据并恢复大小不足的 PG。

  5. 监控和调整集群性能:确保你的 Ceph 集群具备足够的计算、存储和网络资源,以满足负载需求。监控集群的性能指标,并根据需要进行调整和优化。

我的问题是第三条,副本数规划不对,修改完后集群状态恢复ok。

这里也参考一下了一下大佬写的pg状态详解,对我帮助颇大。

分布式存储Ceph之PG状态详解 - 简书 

 

<think>好的,我现在需要帮用户解决关于存储系统中数据可用性减少和数据冗余降级的问题,特别是涉及96个非活动页面和96个大小足的页面。首先,我需要理解用户提到的这些状态具体意味着什么,以及可能的原因和解决方法。 首先,用户提到了“Reduced data availability”和“degraded data redundancy”,这通常与存储系统中的副本或纠删码配置有关。根据用户提供的引用内容,特别是引用[3]中的例子,当OSD停止时,PG状态会变成undersized+degraded+peered,这说明有副本足的情况。同样,非活动状态(inactive)可能意味着PG无法处理IO请求,可能因为OSD宕机或其他问题。 接下来,用户的问题中提到有96个inactive和undersized的页面(pages),这里的“pages”可能是指PGs(Placement Groups)。在Ceph中,PG状态反映了数据分布和健康情况。所以需要确认用户的问题是否是关于Ceph存储集群中的PG状态,例如active+clean变为inactive或undersized。 根据引用[1],当OSD短暂挂掉时,集群可能还能正常写入,但恢复时会有数据同步过程。如果OSD长时间可用,可能导致PG无法达到所需的副本数,从而出现undersized状态。同样,引用[3]提到停止OSD后,PG状态变为undersized+degraded+peered,说明副本足,数据冗余降低。 接下来,我需要分析可能导致96个PG处于非活动和大小状态的原因。可能的原因包括多个OSD下线、网络分区、硬件故障,或者配置问题如pg_num设置当。例如,如果有多个OSD同时宕机,可能导致多个PG无法满足副本要求,进而变成undersized和inactive。 解决方案方面,首先需要检查集群状态,使用如ceph -s、ceph osd tree、ceph pg dump等命令,确定哪些OSD有问题。然后尝试恢复故障的OSD,例如重启OSD服务,或者替换故障硬件。如果OSD无法恢复,可能需要将其标记为out并重新平衡数据,如引用[4]中的操作步骤。 此外,调整PG的数量和分布也可能有帮助,确保集群有足够的资源分布PG。监控和自动修复机制也很重要,确保集群能够自动恢复故障。 在回答时,需要按照用户的要求,结构清晰,分步骤说明原因和解决方案,同时引用提供的参考文献来支持观点。例如,引用[2]提到使用ceph pg stat查看状态,引用[3]说明停止OSD后的状态变化,引用[4]展示如何移除OSD。 最后,生成相关问题,可能需要包括如何监控PG状态、调整PG数量、处理OSD故障的详细步骤,以及预防措施等。</think>### 数据可用性减少与冗余降级问题分析 在分布式存储系统(如Ceph)中,出现 **96个非活动(inactive)页面** 和 **96个大小足(undersized)页面** 通常与存储池的**Placement Group(PG状态异常**相关。以下是具体原因与解决方案: --- #### 一、核心概念解析 1. **PG状态定义** - **Inactive**:表示PG当前无法处理客户端IO请求,可能因OSD宕机、网络中断或仲裁足导致[^3]。 - **Undersized**:PG的实际副本数低于存储池配置的副本数(如配置`size=3`但当前只有2个副本)。 2. **影响** - **数据可用性减少**:客户端可能无法读写部分数据。 - **冗余降级**:数据副本未达到预期,存在丢失风险。 --- #### 二、根本原因 1. **OSD故障** - 多个OSD同时宕机或下线(如硬件故障、服务崩溃),导致PG无法维护足够副本[^1]。 - 示例:若一个PG的3个副本分布在3个OSD上,其中1个OSD故障,则PG变为`undersized+degraded`。 2. **网络分区** - 部分OSD因网络中断无法与集群通信,导致PG无法完成数据同步。 3. **PG分布均** - PG数量(`pg_num`)配置合理,导致部分OSD负载过重,故障时影响更多PG。 --- #### 三、解决步骤 1. **检查集群状态** 使用以下命令定位问题OSD和PG: ```bash ceph -s # 查看整体健康状态 ceph osd tree # 检查OSD在线状态 ceph pg dump | grep -E "inactive|undersized" # 筛选异常PG ``` 2. **恢复故障OSD** - **重启OSD服务**:尝试恢复暂时性故障。 ```bash systemctl restart ceph-osd@<ID> # 替换<ID>为具体OSD编号 ``` - **硬件修复**:若OSD因磁盘损坏下线,需更换磁盘后重新加入集群[^4]。 3. **手动干预PG状态** - **标记故障OSD为`out`**:强制集群迁移数据至其他OSD。 ```bash ceph osd out <OSD_ID> # 标记OSD为下线状态 ceph osd purge <OSD_ID> --yes-i-really-mean-it # 彻底移除OSD ``` - **触发数据恢复**:集群会自动重建缺失副本,PG状态将从`undersized`逐步恢复至`active+clean`[^1][^2]。 4. **调整PG分布** - **优化`pg_num`**:根据集群规模调整PG数量,避免单个OSD承载过多PG。 - **平衡数据分布**:使用`ceph osd reweight`调整OSD权重,分散负载。 --- #### 四、预防措施 1. **冗余配置** - 设置存储池副本数`size≥3`,并启用`min_size=2`,确保即使部分OSD故障仍可读写[^1]。 2. **监控与告警** - 实时监控PG状态(如`ceph pg stat`),设置`inactive`或`undersized`状态的告警阈值。 3. **定期维护** - 定期检查硬件健康状态,预更换老化设备。 --- ### 相关问题 1. 如何监控Ceph集群中PG的实时状态? 2. PG数量(pg_num)设置合理会导致哪些问题? 3. Ceph中如何处理因网络分区导致的数据一致? 4. 如何验证数据恢复后的一致性?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值