找回密码
 注册
查看: 581|回复: 0

pg修复 ceph之pg修复 过程记录

[复制链接]

0

主题

0

回帖

9

积分

管理员

积分
9
QQ
发表于 2022-8-5 02:00:28 | 显示全部楼层 |阅读模式
从一本书中了解到pg修复过程记录下:
2 R) V" I+ j; ?: eceph 的scrub/deep  scrub  是集群自带的自我检测并修复的功能,能够实现对object 进行自我修复,下面来试试手动修复。0 I* w2 s3 ]+ ]% m

1 f2 i0 r" o& R' z% W! [/ S  f0 N首先找到PG所在位置:
& U! K2 B7 ^7 }0 K[root@ceph-1 ~]# ceph health detail: e+ `9 q$ N1 `" U. B3 G* y7 |# \
HEALTH_ERR  1 pgs inconsistent; 2 scrub errors- G. V' |9 M, R1 f
pg 16.1c2 is active_clean_inconsistent ,acting  [2,5,10]
  }  {2 G# t1 k  @7 O% S2 scrub errors! @) G5 ^  N! W

5 r& m1 d: b5 b) }; r
5 }; B  W3 Z: i  T如上所示,PG 16.1c2 当前的位置在OSD 2 5 10 上。
8 V3 h3 T9 F8 ]+ @这时可以直接通过ceph pg repair 16.1c2  直接检测并修复,下面我们可以来挖得更深入点。* A/ r, O7 G3 X9 G- @! V  i
( u. W, @- ]$ n: E9 ?3 e. S9 s( h: ]" P
再次 找到问题所在
) S& W$ `4 v0 v8 @+ r0 b# B! \   在相应的OSD日志里,找到错误的提示,如  grep -Hn  'ERR' /var/log/ceph/ceph-osd.2.log 。如果日志已经被切割了,用Zgrep 代替
; q5 d. D& N; y5 xZgrep 可以对已经压缩的文件进行正则匹配。3 o6 H7 M& A* p) U" }# v1 @
1 [+ @4 b2 b" o5 a1 B7 i) \
log [ERR] :   16.1c2 shard 2: soid 98cbb1c2/rb.0.09213.253e1f29.00000001232c/head/ /16  digest 0 != known digest  3607295895: ]" r2 B3 l& `- o
log [ERR] :   16.1c2 shard 5: soid 98cbb1c2/rb.0.09213.253e1f29.00000001232c/head/ /16  digest 0 != known digest  3607295895% h7 M7 |' O1 Z& D; C- i: z6 c2 `
& }3 ]1 m/ s+ R- ]& C; t
: S/ H  K/ M* |& \0 M: R8 f  G" Y: c
从日志看,object 的摘要(digest)本应该为3607295895 ,但实际却是0。5 d0 e# ]2 h5 t: v) H0 w; d  z
+ r0 A% o* [+ \7 ?; s7 P5 D6 ?2 T
/ w3 T% c+ q! r7 z
最后 找到对象9 j1 Y6 Z& C+ C  T+ M7 a
从日志里,我们已经获得如下信息! Q8 C  Z5 H( Q5 x1 L" x. D
0 i2 {) }  k+ t, d% B: O/ S( r$ C
  问题PG是  编号为16.1c2  。
( _0 b% e1 b& E; `! G9 `  osd的ID是2 # R. H; [% D& P7 u$ V
  object名字是rb.0.09213.253e1f29.00000001232c
$ {& W! p, c4 G5 \9 K! m/ U, m- ?% F' A9 ]0 h7 I3 f/ J9 r7 N
接下来我们找到object 的具体文件所在的位置。
2 ^2 \; l/ G; @
. D' e4 C2 {! }( u. H2 t- V# T5 y[root@ceph-2 ~]# find /var/lib/ceph/osd/ceph-2/current/6.17b_head/ -name 'rb.0.09213.253e1f29.00000001232c*' -ls
( E% ?6 m2 ^1 D" Y8 z$ P% I1 b1 s* [- @$ s( A
33581488    0 -rw-r--r--   1 ceph     ceph            0 Jul 27 11:47 /var/lib/ceph/osd/ceph-2/current/16.1c2_head/DIR_C/DIR_1/rb.0.09213.253e1f29.00000001232c__head_58BCC1C1__11/ o  x9 e( i6 H/ t4 V
- B/ `% ]& h0 M
4 \( H+ s. w/ `( h- L, d
下面可以做这样的事情:
! M; B3 ~2 S" G6 @  在每个系统上检测一下这个object的大小: f- ~2 j3 n3 k) P" V/ e
  在每个系统上校验胰一下这个object 的MD5值
" t) c$ _2 M4 i
. T$ k; i8 e" W: O+ i6 Q; V# g2 b, a% A7 h* X9 N' ~; d
修复问题:
& r1 k0 w0 T. ~0 }& E: d( T' ~, S8 \  修复步骤如下:
1 a: t3 T$ H, v    停止所有错误object的osd进程。- X9 X8 t* c% ~* _9 V) `2 K2 n
    日志同步到磁盘  ceph-osd-i <osd ID> --flush-journal。
" S6 y( _6 s/ A) I! u+ o: e2 N    移出有错误的object。
8 Z8 t! R- w5 X8 h8 ?6 i    启动OSD进程。
9 Z5 k" D4 G8 r& \% ~    调用ceph pg repair 16.1c2 1 e( m  h! e- }3 d0 V
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-11 22:58 , Processed in 0.029434 second(s), 26 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表