【CEPH】scrub error解决方案

问题描述


【CEPH】scrub error解决方案_第1张图片


原因分析


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

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


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


查看健康统计

ceph health detail

        结果示例:

        由上图可知pg编号8.39,8.22,8.14出现问题。


PG修复


ceph pg repair 


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


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


查看健康统计


ceph pg repair 

        结果示例:


        由上图可知pg编号8.39,8.22,8.14出现问题。acting中是其对应存储的OSD的编号


定位清理失败的数据


        先通过ceph pgrepair 修复,然后打开ceph –w查看失败信息:提示如下:

【CEPH】scrub error解决方案_第2张图片

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


截断数据


rados –p  truncate length

        例:


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

rados –p compute truncate rbd_data.1823a2ae8944a 4173824



重新修复数据


  ceph pg repair 8.39


        此时即可修复成功!

你可能感兴趣的:(CEPH)