• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

oneston 2.0 PG不一致修复

8小时前提问
  • 0关注
  • 0收藏,44浏览
rxb 四段
粉丝:0人 关注:0人

问题描述:

系统有PG不一致,在确认关闭校验后,执行修复,但系统一直未开始,请问是什么原因,要怎么处理

root@sdist1:~# ceph pg repair 1.760 

instructing pg 1.760 on osd.78 to repair

root@dist1:~# ceph -s | grep repair

root@dist1:~# ceph -s | grep repair

3 个回答
粉丝:2人 关注:0人

你执行的 ceph pg repair 1.760 命令已经成功给主 OSD 发送了修复指令("instructing pg 1.760 on osd.78 to repair"),但修复动作本身并未开始或未完成。这在 Ceph 中是一个常见现象,通常不是命令失败了,而是修复任务被阻塞或正在排队。

1. 为什么修复没有立即执行?

根据你的描述和搜索结果,主要有以下几个可能原因:

  • 被其他清理任务阻塞ceph pg repair 本质上是一种特殊的清理(scrub)操作。Ceph 对每个 OSD 上能同时运行的清理任务数量有限制(参数 osd_max_scrubs,默认值通常为 1)。如果 PG 1.760 所在的 OSD  正在执行其他的清理或深度清理,你的修复命令就会进入等待队列,直到那些任务完成才会开始 。

  • PG 正处于恢复/回填状态:如果集群当时正在处理其他 OSD 的恢复或数据回填,PG 可能暂时无法响应修复请求 。

  • 等待深度清理完成:根据 Ceph 的代码逻辑,手动执行修复时,会先对 PG 发起一次深度清理(deep-scrub),以全面扫描并定位不一致的对象。这个深度清理过程本身就需要一定时间,尤其是当 PG 数据量较大时。你执行的 ceph pg repair 命令只是把这个任务加入了队列,并不会立即显示进度 。

  • 底层问题:虽然 fdisk -l 能看到 LUN,但可能存在 OSD 文件系统损坏、网络不稳定或磁盘有坏道等潜在问题,导致修复进程无法正常启动或反复失败 。

2. 排查与处理步骤

你可以按顺序尝试以下方法,让修复工作继续进行:

第一步:检查当前阻塞修复的任务

首先,确认 PG 1.760 和其主 OSD 的当前状态。

# 1. 查看 PG 的详细状态,重点关注 "state" 字段和 "recovery_state"
ceph pg 1.760 query # 2. 检查 OSD.78 的负载,看看是否有活跃的清理或恢复任务 ceph osd perf # 或者直接查看 OSD 的日志 tail -n 100 /var/log/ceph/ceph-osd.78.log | grep -i scrub第二步:暂停其他清理任务,为修复让路

如果确认是其他清理任务阻塞,可以暂时暂停集群的所有自动清理,让修复任务能够获得资源并立即执行 。

# 临时禁用自动清理
ceph osd set noscrub ceph osd set nodeep-scrub # 等待几秒钟,然后再次尝试修复 ceph pg repair 1.760 # 稍等片刻后,用以下命令观察修复是否开始 ceph pg 1.760 query | grep -A 10 "recovery_state"如果修复开始,你可能会在 recovery_state 中看到 WAITING_SCRUBDEEP_SCRUB 等状态。修复完成后,记得重新启用自动清理:
ceph osd unset noscrub
ceph osd unset nodeep-scrub第三步:检查 OSD 日志寻找线索

如果修复仍然无法开始,直接查看 OSD 的日志能提供最直接的原因。

# 在 OSD.78 所在的主机上执行
grep "1.760" /var/log/ceph/ceph-osd.78.log | grep -E "repair|scrub|error" | tail -n 20你需要留意日志中是否有 failed to repairblocked for 或任何与磁盘 IO 相关的错误(如 read-only file systemInput/output error)。如果有 IO 错误,问题可能出在磁盘硬件或文件系统上。

3. 如果修复最终失败或无法开始

如果尝试了上述步骤,修复依然没有动静,或者最终失败,请不要反复重试修复命令。你需要根据情况采取不同措施 :

  • 如果日志中出现

    PG.1.760 shard X: soid OBJECT digest Y != known digest Z
    PG.1.760 shard X: soid OBJECT omap_digest Y != known omap_digest Z
  • 这类“digest mismatch”(摘要不匹配)的错误不能通过 ceph pg repair 安全修复,因为它无法判断哪个副本的数据是正确的。强行修复可能导致数据损坏。在这种情况下,建议联系红帽支持或从健康的副本中手动导出/导入对象 
  • 如果修复后 PG 状态变为 active+clean+inconsistent,但错误计数未清零
    这说明修复操作虽然执行了,但未能解决所有不一致。例如,在纠删码池中,如果有两个以上的分片数据损坏,Ceph 可能无法自动重建 。

  • 如果怀疑磁盘硬件问题
    立即检查 OSD.78 所在主机的 dmesg 和 smartctl -a /dev/sdX。如果磁盘有坏道,应该先尝试将数据迁移出该 OSD(ceph osd out osd.78),等待数据恢复完成后再处理磁盘,而不是强行修复 PG 

暂无评论

X_x2 四段
粉丝:0人 关注:1人

ceph -s的回显看看呢

暂无评论

粉丝:43人 关注:1人

验证修复状态** 观察 OSD 日志,确认是否有 `fixed` 输出表示修复成功: ```bash tailf /var/log/ceph/ceph-osd.78.log | grep fixed

暂无评论

编辑答案

你正在编辑答案

如果你要对问题或其他回答进行点评或询问,请使用评论功能。

分享扩散:

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作

举报

×

侵犯我的权益 >
对根叔社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明