查询 incomplete的错误pg
ceph pg dump_stuck | grep incomplete
root@st-10:~# ceph pg dump_stuck | grep incomplete
ok
8.47c incomplete [39,113,80] 39 [39,113,80] 39
找到相应的主机,把OSD 39 113 80全部DOWN掉。
找到副本数据最完整的OSD选择一个(OSD39),能恢复多少数据算多少,进入相应主机,导出PG。
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-39/ --journal-path /var/log/ceph/ --pgid 8.47c --op export --file 8.47c.bak
拷贝8.47c.bak的文件到 OSD 113 80的服务器上。
进入OSD113的服务器上,导入PG
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-113/ --journal-path /var/log/ceph/ --op import --file 8.47c.bak
导入完成后,对标记为complete
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-80/ --journal-path /var/log/ceph/ --type filestore --pgid 8.47c --op mark-complete
进入到80的服务器,导入PG,标记complete
进入OSD39的服务器标记为complete
启动OSD 39 113 80