|
|
"osd_max_backfills": "1",; C0 W8 H& p6 p( ~
"osd_recovery_sleep": "0",
& X4 X$ X; K0 |: i9 a7 G* h* l! A0 N' a6 H# F; X+ O
"osd_recovery_max_active": "3",: X( w( y% x& P
; e# Z6 v) Z6 d9 x* C) p- E& n
"osd_recovery_max_single_start": "1",! b9 b/ |, i3 Q2 w- [/ s# O
_: u7 P/ U G g) b. p
无论哪种情况,osd上线后通常会发现,自己承载的pg有数据落后了,需要进入恢复模式,从其它osd上获取新的数据达到同步。- n! x6 j" h' s2 H8 M% D
; D3 T& ~5 G. v7 {
/ D+ a3 A4 z' o- z" R7 l( y5 r这个过程就是recovery。recovery分为两种:log-based recovery: 是说osd故障时间不长,需要恢复的数据可以通过pg log回放找回来。: H$ @# d4 T( V9 a6 L' |
$ O4 u9 s& T& e9 W" J- H8 O$ L$ s2 D9 _& Z; j0 B M
backfill recovery: 是说无法通过pg log回放找全数据,只能通过全量回填(backfill)拷贝。
& e. Q. e( x; c9 N, y3 Y! \% \, L4 W
" R8 m" U1 @7 W" J @# t1 E操作前记得查看下默认参数值,操作完后记得恢复到原先参数 * @, F( K+ l- s; t* X% n
: A' m$ `$ W3 o/ _8 ]8 S* Z0 K0 P$ @0 G2 i7 R! D6 ~. Q7 x/ l% }( ]: x
业务优先:9 I9 @1 ^6 E( x1 d/ ?7 W, k1 w- H
9 o7 ]( {" `5 ~1 d" G: {* u7 E$ l1 ~% A. p1 G0 N
ceph 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'
2 I4 D$ A; {& i$ O* j- x; U9 u
9 c% u. ]" a: d( K L( E2 C7 ?/ A( n
恢复优先:
& @6 @7 K! K* w) T. ~# r
s6 D1 N9 R w8 `( z. S* m7 `4 h4 x6 _$ }& L8 t* \
ceph 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' 0 f5 B* r5 F' m% I2 G M
$ [. R; b5 i) _# Z4 m4 A
" K4 ~1 A. v+ w( t) m' B( o还原配置:
# J J. T0 ?, P+ a! I: g; [7 ]) _! ]* @1 X. F- E4 J8 {, r. I
4 U, H2 x* j+ [/ b' {+ X$ s" ?8 |" i
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'
8 f: S" R& D4 U/ B6 e. L% a7 u. x8 Q( ?$ D
[root@ceph1 ~]# ceph tell 'osd.*' injectargs '--osd-recovery-max-active 4'" P3 ]4 f" {1 N3 ^6 _& H: g* ~
osd.0: osd_recovery_max_active = '4' (not observed, change may require restart) 7 V# A j( T' Y
osd.0: {}
6 a) g' ^* t p& {osd.1: osd_recovery_max_active = '4' (not observed, change may require restart)
# f9 b6 n! M$ X0 R! Tosd.1: {}7 J1 x! G- o1 Q% A+ v% k9 F
osd.2: osd_recovery_max_active = '4' (not observed, change may require restart) % i- [8 V! y. _# `8 Z2 W
osd.2: {}
' c# w) N) Q6 P& P {& R" k/ E[root@ceph1 ~]# ceph tell 'osd.*' injectargs '--osd-max-backfills 16'
3 n& l. }8 ^3 _+ m R( Qosd.0: osd_max_backfills = '16'
1 j- `7 S+ b- g* @osd.0: {}( D- X4 c2 ?0 G, c, B
osd.1: osd_max_backfills = '16' 5 m* x# u: t) t9 T
osd.1: {}
9 C( \! \8 H- E" Nosd.2: osd_max_backfills = '16' 1 }0 X; H, [7 Z& P5 d
osd.2: {}
; P5 b- A1 S6 G& V! p0 D% f# v8 ?; {& s0 Z1 T3 a- R( V1 c% ]6 \ L
! A1 u2 k5 {" }, _% D
. w2 D6 q* ^& c. s2 @: n8 V, G上面都是临时方式修改:
- |: h! z+ K9 N3 V. _3 |
7 `" w0 N0 K# [2 h, X: [# p9 c7 g/ C3 {! N2 a
( E% Y8 F% O! H9 q1 x
|
|