|
|
"osd_max_backfills": "1",
, w9 ~. u5 c/ G5 o: v8 E, |& J1 x7 j"osd_recovery_sleep": "0",
! b$ W6 _+ _0 o0 l) g7 a1 k2 V7 T7 a% ?1 ?( ]5 g4 V5 N: @7 `5 b
"osd_recovery_max_active": "3",
. w6 n5 T8 Y- ?; q" l
# X- F, c; i' z, m, e @: s6 P; f- a"osd_recovery_max_single_start": "1",
7 L7 c! J5 `1 M! V8 F4 j8 y( b6 ~' L/ c/ I0 Y ?+ S6 R6 g1 J
无论哪种情况,osd上线后通常会发现,自己承载的pg有数据落后了,需要进入恢复模式,从其它osd上获取新的数据达到同步。
7 ?2 Q$ _# F, u' ^2 {& F! i$ S5 o
& Z+ C# x1 j* W: q
j1 Y, q0 m7 z- @" [这个过程就是recovery。recovery分为两种:log-based recovery: 是说osd故障时间不长,需要恢复的数据可以通过pg log回放找回来。
y0 D) u9 x% w3 Z) G$ _$ p Q( b: ~7 h4 K0 a5 U4 _( V& `
1 F5 d' |8 L- \' `# ~8 D, ^3 Ibackfill recovery: 是说无法通过pg log回放找全数据,只能通过全量回填(backfill)拷贝。
; c9 m* C5 B4 {! U) l* m+ T( {7 t5 F: T" @" z
, b1 P' i; c p
操作前记得查看下默认参数值,操作完后记得恢复到原先参数
, t! Z, H/ }( E5 c% D
5 ?0 D3 }' I. ]) Q% ^" |- ^+ I8 q' ?0 P
业务优先:
5 |& o3 z5 |: G% L/ X: T
, |+ y: ]! O0 c
$ n7 }' q6 ~! F8 z1 Cceph tell osd.* injectargs '--osd-max-backfills 1 --osd-recovery-max-active 1 --osd-recovery-max-single-start 1'ceph tell osd.* injectargs '--osd-recovery-sleep 1'
: o1 g% d$ b, y* `* c5 ]0 x
Q: U/ R6 a- \1 @* B3 ?, E, {. l- K
恢复优先:, g* ^* f. {# g4 H7 q, q- M
% d& X! |# x$ q2 A U; U
1 U% W) I1 @; gceph tell osd.* injectargs '--osd-max-backfills 5 --osd-recovery-max-active 5 --osd-recovery-max-single-start 5'ceph tell osd.* injectargs '--osd-recovery-sleep 0'
( ?) y$ h4 q" L3 P) y7 z; f
. S) f0 W- z6 r1 C8 L
$ f6 A3 x' X: A0 H( W还原配置:
) ]# e L) r; o( U7 C: U0 P( \( ], v/ ]5 Q; w! H
( e3 U& \' `* q; Z% ?; M- N
ceph tell osd.* injectargs '--osd-max-backfills 1 --osd-recovery-max-active 3 --osd-recovery-max-single-start 1'ceph tell osd.* injectargs '--osd-recovery-sleep 0'6 b4 o' D' C; ^; p9 g5 K: t$ r
" Y9 i6 L( v) d: ]. m[root@ceph1 ~]# ceph tell 'osd.*' injectargs '--osd-recovery-max-active 4'. G9 O3 @2 B$ d4 G' P5 P; ?( m4 B
osd.0: osd_recovery_max_active = '4' (not observed, change may require restart)
% p5 a$ H/ [( X! oosd.0: {}
1 W$ s5 z6 T" ?+ l& m% S/ \osd.1: osd_recovery_max_active = '4' (not observed, change may require restart) 5 z/ ^5 z: a _; X7 L1 ?, \
osd.1: {}
0 R5 G) Z4 \9 v) p+ ]4 t. T4 zosd.2: osd_recovery_max_active = '4' (not observed, change may require restart)
" w+ _ d3 e+ I: b2 rosd.2: {}
+ O! F7 m' j2 l5 f5 g8 s[root@ceph1 ~]# ceph tell 'osd.*' injectargs '--osd-max-backfills 16'- G& \1 G& q* R6 ?( x3 r
osd.0: osd_max_backfills = '16'
7 X( C: L( G- A: d2 ?osd.0: {}) \0 u" e9 u5 W4 `- F3 O/ R
osd.1: osd_max_backfills = '16' ! B. c. j/ T+ i1 y
osd.1: {}
2 X7 b, J x& G. A$ mosd.2: osd_max_backfills = '16' % Z! o4 s9 w: a4 j, N V
osd.2: {}
- [* A& K; `: a( J; M
; t# H* Z* H1 [0 U0 p9 S" y, g6 H+ G9 J) S9 L
+ n( ]. U: s. T; K$ [0 K$ _上面都是临时方式修改:
) ?! \3 N( v f q0 P' t4 Z; F* I3 G' w% m& S& W
; N& z1 W9 i Z
, Q% J: @4 L/ `+ S |
|