大天使之剑
作者大天使之剑·2019-06-21 10:00
售前技术支持·杭州才云科技

CEPH系列之故障排查:scrub error怎么办?

字数 908阅读 1746评论 0赞 1

ceph scrub error 解决方案

问题描述

控制节点重启后ceph集群报警如下:

ceph -s

7scrub error

原因分析

数据的不一致性(inconsistent)指对象的大小不正确、恢复结束后某副本出现了对象丢失的情况。数据的不一致性会导致清理失败(scrub error)。

CEPH在存储的过程中,由于特殊原因,可能遇到对象信息大小和物理磁盘上实际大小数据不一致的情况,这也会导致清理失败。

不一致性校验失败解决方案

查看健康统计

ceph health detail

pg is active+clean+inconsistent,acting[0,1,2]

PG修复

ceph pg repair <pg_id>

repair无法直接修复的解决方案

如果是对象信息大小和物理磁盘上实际大小数据不一致的情况,则无法直接通过ceph pg repair来修复,此时可通过以下方法解决:

查看健康统计

ceph pg repair <pg_id>

acting中是其对应存储的OSD的编号

定位清理失败的数据 先通过ceph pgrepair 修复,然后打开ceph –w查看失败信息:

其中形如rbd_data.xxxxxxxxxx即具体的对象数据名称。

截断数据

rados –p <poolname> truncate <object_name>length
ERR ---rbd_data.1823a2ae8944a. ---
disk size (4194304) does not match object info size (4173824) adjuseted for ondisk to (4173824)

从上述LOG的描述中可知,rbd_data.1823a2ae8944a在磁盘中的大小为4194304,但是对象信息的大小为41738234,因此要将其截成4173824的长度,操作命令如下

rados –p compute truncate rbd_data.1823a2ae8944a 4173824

重新修复数据

ceph pg repair <id>

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

1

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广