美文网首页
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