由于object大小与oi size大小不一致导致pg inconsistent

当Ceph集群出现PG Inconsistent错误且pg repair无效时,由于object info size与磁盘上的object文件大小不一致,需要通过手动调整oi size并进行特定步骤修复。涉及关键操作包括:找出问题PG ID、备份并校验object文件、使用rados truncate调整oi size,最后执行pg repair和检查集群状态。

1、问题现象:
ceph -s 集群出现pg inconsistent错误,ceph pg repair无法修复,查看日志,报错信息如下:

log [ERR] : 3.f80 repair 1 missing, 0 inconsistent objects
log [ERR] : 3.f80 repair 2 errors, 1 fixed
log [ERR] : deep-scrub 3.f80 3/b1cc8f80/rbd_data.216f087229a7b1.000000000fb3e7/head on disk size (4194304) does not match object info size (2932736)

2、问题分析:
由于object info size大小是2932736,和磁盘上的object文件4M(4194304)不匹配,所以使用pg repair无法修复。需要使用rados truncate把oi size调整到4M再repair。

3、问题处理:
a、执行 ceph health detail 命令,找出 pg 不一致的 pg id 。
b、使用ceph pg repair <PG_ID> 并观察日志,找出对应的报错日志,根据报错日志确认object文件。
c、收集3个object文件的md5值。
d、使用cp -a 备份3个object文件,使用md5sum校验备份的数据。
e、确认出问题的卷无数据写入,执行 rados -p sata-00 truncate rbd_data.216f087229a7b1.00000000000fb3e7 4194304
f、使用 md5sum比对md5值,确认truncate之后,与之前是保持一致的。
g、确认object info size大小,执行如下命令:

执行 attr -l 'rbd\udata.216f087229a7b1.00000000000fb3e7__head_B1CC8F80__3'  #找到所有包含ceph._的行,按以下方法追加到/tmp/0
执行 at
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值