美文网首页
ceph pg incomplete状态处理

ceph pg incomplete状态处理

作者: 崇尚赛跑的蜗牛 | 来源:发表于2021-01-06 11:08 被阅读0次
记录初始pg状态

先记录下初始pg现状,防止osd服务down掉之后,主、从、历史副本发生变化
ceph pg dump|grep incom > pgincom.info
ceph pg 1.4 query > 1.4query

停止pg对应osd
ceph osd set noout
systemctl stop ceph-osd@$OSD_NUMBER
导出备份pg和导入pg

查找历史pg所在osd和其他副本pg所在osd,查看pg中的对象,先对比pg的主副本之间 pg里面的对象数 哪个对象数多 就把哪个pg export出来,然后import到对象数少的pg里面,选择完整对象的pg导出,再导入到主pg中(导入前备份)
然后再mark complete

查看对象
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-69 --pgid 2.218 --op list
导出
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-69/  --pgid 2.218 --op export --file 2.218
导入
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-179/ --pgid 2.218  --op import --file 2.218
删除pg

对于数据不完整的pg,实在无法修复的,执行删除操作

ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-179/  --pgid 2.218 --op remove  --force
标记pg状态为complete

修复完的pg进行cpmplete标记

ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-179/  --pgid 2.218 --op mark-complete
启动服务

systemctl start ceph-osd@$OSD_NUMBER
ceph osd unset noout

参考文档
[1]https://docs.ceph.com/en/latest/man/8/ceph-objectstore-tool/
[2]https://ypdai.github.io/2018/07/26/ceph-objectstore-tool%E5%B7%A5%E5%85%B7/
[3]https://ceph.com/planet/%E5%A4%84%E7%90%86ceph-incompelete%E7%9A%84%E7%BB%8F%E9%AA%8C/

注意:Mount failed with ‘(11) Resource temporarily unavailable
解决:这个代表ceph-objectstore-tool工具使用时,data-path目录指定的osd服务是运行的,需要先把osd服务down掉systemctl stop ceph-osd@$OSD_NUMBER,然后再执行命令

相关文章

网友评论

      本文标题:ceph pg incomplete状态处理

      本文链接:https://www.haomeiwen.com/subject/ktknoktx.html