ceph pg incomplete狀態處理

記錄初始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,然后再執行命令
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容