ceph unfound object问题的解决
生活随笔
收集整理的這篇文章主要介紹了
ceph unfound object问题的解决
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
-
查看丟失對象的pg id
ceph health detail -
查找該pg下丟失的object
ceph pg 8.32 list_missing -
嘗試修復該pg:
ceph pg repair 8.32ceph pg scrub 8.32 -
修復不成功的話,可以直接告訴ceph使用已有的版本或者直接刪除
嘗試切換到舊版本的object:
ceph pg 8.32 mark_unfound_lost revert直接刪除該pg丟失的object:
ceph pg 8.32 mark_unfound_lost delete如果以上步驟還未修復該對象,那么執行如下步驟
-
找出當前資源池下所有的rbd塊
rbd ls test_rep_pool[root@node1 ~]# rbd ls test_rep_pool rbd_test -
獲取該塊的詳細信息 顯示如下
rbd info test_rep_pool/rbd_testrbd image 'rbd_test':size 10GiB in 2560 objectsorder 22 (4MiB objects)block_name_prefix: rbd_data.14cf06b8b4567format: 2features: layering, exclusive-lock, object-map, fast-diff, deep-flattenflags: create_timestamp: Fri May 10 16:03:43 2019 -
找出該對象對應的osd id
ceph osd map test_rep_pool rbd_data.14cf06b8b4567顯示如下信息[root@node1 ~]# ceph osd map test_rep_pool rbd_data.14cf06b8b4567 osdmap e199 pool 'test_rep_pool' (2) object 'rbd_data.14cf06b8b4567' -> pg 2.eb35710a (2.a) -> up ([0,1], p0) acting ([0,1], p0)獲取到該pg對應的up set和acting set
-
在每個osd中刪除該對象
- 先停掉對應的osd
systemctl stop ceph-osd@id - 使用
ceph-objectstore-tool刪除該osd中 的對象
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-1/ --pgid 8.e rbd_data.7.20a274b0dc51.0000000000000fc8 remove
- 先停掉對應的osd
-
刪除后在資源池中創建一個同名的空對象:
rbd create -p test_rep_pool --size 4M rbd_data.14cf06b8b4567
總結
以上是生活随笔為你收集整理的ceph unfound object问题的解决的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 先试试能不能发?
- 下一篇: ceph rados命令使用