ceph pg inconsistent不一致(主副本是好的),ceph pg repair无效

ceph pg repair这一操作会先进行pg scrub,得到该PG中不一致的对象,然后再进行recovery。

pg scrub时主副本和从副本均会进行资源预约,只有当scrubs_pending + scrubs_active < _conf->osd_max_scrubs时scrub才能继续进行,也即repair才能进行,否则,repair会失效。

scrubs_pending:该osd已经预约成功,即将进行scrub的pg。

scrubs_active:该osd正在进行scrub的对象。

osd_max_scrubs:一个osd同一时刻默认只能有一个pg做scrub。

资源预约失败日志如下图:


图片发自App

解决办法:

把三副本的osd的osd_max_scrubs都先调大,等到修复好后再调回为1。

备注:

1、只有主副本是好的,从副本有问题时,才能直接使用ceph pg repair。主副本损坏导致的不一致,需要使用其他方法修复。

2、主副本和从副本均有可能因为资源预约失败。

3、初始调大为2,依然无效,调大为5,成功。

你可能感兴趣的:(ceph pg inconsistent不一致(主副本是好的),ceph pg repair无效)