当Ceph集群处于类似如下状态: health HEALTH_ERR 1 pgs inconsistent; 1 scrub errors的故障时候,需要手动修复。具体操作方法如下:
1.确定是哪个pg出现问题。执行ceph health detail 查看出现问题的PG名称,和其所处的OSD。
2.执行修复操作:ceph pg repair pg_name
等待一段时间,修复自动完成。
如果再次查看Ceph集群状态,出现active+clean+scrubbing+deep那么接着往下执行。
3.找出处于“active+clean+scrubbing+deep”状态的pg。
ceph pg dump |grep "active+clean+scrubbing+deep"
找到pg所在的OSD节点。
4.登录到pg所在节点的主机,重启osd。
ceph osd set noout
/etc/init.d/ceph restart
5.等待osd状态恢复后,把ceph集群状态恢复。
ceph osd unset noout