|
|
// 集群中添加一个osd,; D4 q! X& m: d# H1 o9 J- x; x
ceph-deploy osd create --bluestore node1 --data /dev/sdg --block-db cache/db1 --block-wal cache/wal1
% i" Y" B; n$ Y, j4 ]$ k
0 @; O' ]% F0 t2 Q& c6 C) x
" L* D8 C; L- T* ]7 vceph daemon osd.5 config show |grep osd_recovery_max_single_start #这个值限定了每个pg可以启动recover操作的最大数。: f; d2 c! y0 S& R$ m2 k
7 F7 v2 f( D2 K; ]* Z7 Q
/ k" h& H, U" r7 d/ U// 查看每个osd节点的参数,或者通过 ceph daemon osd.2 config get osd_recovery_op_priority 查看单个osd的参数
& r. v: F, i) G/ C
+ [: d& Z; ~( ^8 S ceph daemon osd.5 config show |egrep "osd_recovery_max_active|osd_recovery_op_priority|osd_max_backfills"
; r. k% ]. w. c' ^ "osd_max_backfills": "10",5 {5 E+ w |$ \7 {- l4 C3 ]) z
"osd_recovery_max_active": "15", X. z6 D) }' i0 [3 |9 e% C, i3 l
"osd_recovery_op_priority": "3",+ {( W; U: }. T! P/ O: P
9 T* j" N! {4 f& F! I' j5 B
! S: x+ f3 s/ u3 D" k+ z
: f8 }' N! P( p% Rceph tell osd.* injectargs --osd_max_backfills=128
' Z. E' J3 F* {: ^8 ?3 j. \ceph tell osd.* injectargs --osd_recovery_op_priority=0" |0 N+ v( m$ H6 @+ d* m$ i
ceph tell osd.* injectargs --osd_recovery_max_active=64
$ P" O& p& n2 A7 @$ q2 Zceph tell osd.* injectargs --osd_recovery_max_single_start=64
/ Q( C& x( _1 O# F! p% _ceph tell osd.* injectargs --osd_recovery_sleep_hdd=0 \4 B) ^ ?8 L; G5 ?1 _$ N/ ]0 R, ~
9 s& m* q, w" C. R, ]
) q- F- h" b- C) _
核心影响恢复速度的参数
3 s1 k& h H% r( A. D2 {- p; zosd_max_backfills
% W4 ?; ~3 X$ U3 E0 g/ U: x这个参数默认值10. 由于一个osd承载了多个pg,所以一个osd中的pg很大可能需要做recovery.这个参数就是设置每个osd最多能让osd_max_backfills个pg进行同时做backfill.
7 R, c$ l2 {5 @recovery做修复,通过pull或者push的backfills的操作数一般是分开的,所以一般会考虑设置这个值大一些,用于primary osd通过push修复replica osd或者primary osd 通过pull方式修复replica osd
" w i" z9 [5 [# F5 ]osd_recovery_op_priority8 [' V* Q1 K: e1 n% G0 J2 E& u4 q
默认值10. osd修复操作的优先级, 可小于该值;这个值越小,recovery优先级越高。高优先级会导致集群的性能降级直到recovery结束- V. W/ y. u. h8 _. y+ e
osd_recovery_max_active
+ U D* R: e2 Z8 o默认值15. 一个osd上可以承载多个pg, 可能好几个pg都需要recovery,这个值限定该osd最多同时有多少pg做recovery。
r4 x, u0 d5 B% b" a5 B ^osd_recovery_max_single_start
6 p' M" j7 n% g! O; k+ [2 s默认值5. 这个值限定了每个pg可以启动recovery操作的最大数。& ~/ x5 D( ~6 C
第一种情况,配置osd_recovery_max_single_start=1,osd_recovery_max_active=3,这代表每个osd在某个时间会为一个pg最多启动1个恢复操作,并且最多可以由3个恢复操作处于活跃状态。" l: w- J2 i7 o/ k0 w1 a
第二种情况,配置osd_recovery_max_single_start=2,osd_recovery_max_active=3,这代表某个时间点osd会为一个pg启动2个恢复操作,并且最多能有3个恢复操作处于活跃状态。3 L3 M. d' x5 [7 Z1 R3 ]
osd_recovery_sleep_hdd
3 y6 U9 t( D1 o# D每个recovery操作之间的间隔时间,单位是ms
! q) U- i( L0 `% }0 Z: |) A) c) @7 |7 ~! t$ Z% t
% b# ~' O6 k, V, T+ @5 \
4 s6 y n" _1 _5 `; d
& K0 }/ W! f- N5 F* x' m |
|