当前位置: 首页 > news >正文

Ceph PG unfound/lost 问题排查与解决

Ceph PG unfound/lost 问题排查与解决

    • 背景
    • 现象
    • 排查过程
    • 经验总结
    • 参考命令
    • 结语

背景

Ceph 集群出现 HEALTH_ERR,提示有 PG 对象丢失(unfound),并且 repair 无法自动修复。

现象

  • ceph health detail 显示:

    HEALTH_ERR 4/213107278 objects unfound (0.000%); Possible data damage: 1 pg recovery_unfound; Degraded data redundancy: 36/2130898991 objects degraded (0.000%), 1 pg degraded
    OBJECT_UNFOUND 4/213107278 objects unfound (0.000%)pg 2.f06 has 4 unfound objects
    PG_DAMAGED Possible data damage: 1 pg recovery_unfoundpg 2.f06 is active+recovery_unfound+degraded+repair, acting [520,454,563,300,70,59,243,166,422,333], 4 unfound
    PG_DEGRADED Degraded data redundancy: 36/2130898991 objects degraded (0.000%), 1 pg degradedpg 2.f06 is active+recovery_unfound+degraded+repair, acting [520,454,563,300,70,59,243,166,422,333], 4 unfound
    
  • repair 日志显示:

    repair 4 missing, 0 inconsistent objects
    repair 36 errors, 36 fixed
    

排查过程

  1. 确认 OSD 状态

    • 所有相关 OSD 均为 up,无进程或硬件异常。
  2. 分析 repair/scrub 日志

    • repair 已修复 36 个错误,但有 4 个对象在所有副本上都找不到(unfound)。
  3. 尝试 mark_unfound_lost revert

    • 报错:mode must be 'delete' for ec pool,说明 EC 池只能用 delete
  4. 最终执行

    ceph pg 2.f06 mark_unfound_lost delete
    
    • 系统提示:pg has 4 objects unfound and apparently lost marking
  5. 健康恢复

    • 片刻后,ceph health detail 显示 HEALTH_OK,PG 状态恢复正常。

经验总结

  • unfound objects 表示对象在所有副本上都丢失,无法自动修复。
  • EC 池只能用 delete 方式丢弃丢失对象,不能 revert。
  • repair 只能修复可用副本间的数据不一致,无法凭空恢复丢失对象。
  • 标记 lost 后,集群健康恢复,但对应对象永久丢失,需业务评估影响。

参考命令

# 查看健康和详细信息
ceph health detail
ceph status# 标记 unfound/lost 对象(EC池只能delete)
ceph pg <pgid> mark_unfound_lost delete# 检查PG状态
ceph pg <pgid> query

结语

遇到 Ceph PG unfound/lost 问题,需冷静排查,确认无法恢复后果断 mark lost,保障集群整体健康。建议定期备份重要数据,防止极端情况下的不可恢复丢失。

相关文章:

  • 101alpah_第5个alpha学习
  • 电子电气架构 --- 如何有助于提安全性并减少事故
  • Spark缓存--cache方法
  • 力扣:多数元素
  • 【C/C++】RPC与线程间通信:高效设计的关键选择
  • 香港国际交易节奏解析:结构性波动背后的信号逻辑
  • 【软件设计师:数据库】13.数据库控制与安全
  • 关于多版本CUDA共存的研究,是否能一台机子装两个CUDA 版本并正常切换使用
  • Vue2:引入公共JS,通过this调用
  • 前端基础之《Vue(15)—组件通信(2)》
  • 【漫话机器学习系列】247.当 N=整个母体(WHEN N=POPULATION)
  • vue2 两种路由跳转方式
  • 网络化:DevOps 工程的必要基础(Networking: The Essential Foundation for DevOps Engineering)
  • 信息学奥赛一本通 1511:【SCOI2011】糖果 | 洛谷 P3275 [SCOI2011] 糖果
  • 单片机嵌入式滤波算法库
  • 3.2.3 掌握RDD转换算子 - 5. 合并算子 - union()
  • 人工智能可信度新突破:MIT改进共形分类助力高风险医学诊断
  • AI领域的MCP(Model-Centric Paradigm)
  • vue 中如何使用region?
  • 一、Redis快速入门
  • 南通市委常委、市委秘书长童剑跨市调任常州市委常委、组织部部长
  • 新消费观察| 零售品牌 “走出去” ,如何开辟“新蓝海”?
  • 詹丹|高考语文阅读题设计和答案拟制的一些缺憾
  • 上海乐高乐园度假区将于7月5日开园
  • 杨国荣︱《老子智慧八十一讲》及其他
  • 经济日报头版刊文:为什么贸易战没有出路