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

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

被折叠的 条评论
为什么被折叠?



