ceph pg inconsistent修复(unexpected clone)

问题概述:

ceph -s 显示pg 10.17 inconsistent

且命令ceph pg repair 10.17无法修复,/var/log/ceph/cep-osd.3.log报错内容如下:
pg 10.17 osd [3,4] 权威副本osd:3
repair 10.17 10:e889b16a:::rbd_data.88033092ad95.0000000000000012:b : is an unexpected clone

修复步骤:

0.备份
rados -p ceph-kvm-pool get rbd_data.88033092ad95.0000000000000012 /tmp/rbd_data.88033092ad95.0000000000000012 

1.禁止集群均衡
ceph osd set noout
ceph osd set noscrub
ceph osd set nodeep-scrub

2.禁止recover
ceph osd set nobackfill
ceph osd set norebalance
ceph osd set norecover

3.停止osd
systemctl stop ceph-osd@3

4.列出快照
ceph-objectstore-tool --pgid 10.17 \
    --data-path /var/lib/ceph/osd/ceph-3/ \
    --op list | grep rbd_data.88033092ad95.0000000000000012 

5.删除有问题的快照
日志里:rbd_data.88033092ad95.0000000000000012:b : is an unexpected clone
b转为十进制为11,因此需要删除的为snapid为11的快照
ceph-objectstore-tool --pgid 10.17 \
    --data-path /var/lib/ceph/osd/ceph-3/ \
    '["10.17",{"oid":"rbd_data.88033092ad95.0000000000000012","key":"","snapid":11,"hash":1452118295,"max":0,"pool":10,"namespace":"","max":0}]' \
    remove

6.启动osd
systemctl start ceph-osd@3

7.清除标记位
ceph osd unset norecover
ceph osd unset norebalance
ceph osd unset nobackfill

重复处理完全部osd(步骤2~7)

8.deep-scrub
ceph pg deep-scrub 10.17

9.处理完全部pg inconsistent后,清除其余标记位
ceph osd unset noscrub
ceph osd unset nodeep-scrub
ceph osd unset noout

其余指令:
列出不一致的pg:
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-3/ --type bluestore --op list-pgs
列出不一致的object:
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-3/ --type bluestore --pgid 10.17 --op list

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值