找回密码
 注册
查看: 591|回复: 3

ceph存储backfills值和recover速度设置

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2022-10-19 17:00:09 | 显示全部楼层 |阅读模式
ceph daemon osd.2 config show|grep osd_max_backfills% d3 I3 L8 @# ~5 u/ l
ceph daemon osd.2 config show|grep osd_recovery_max_active+ f: b) ]4 J1 h" X9 L" j
& i1 P; I: Z" {& b: c( K- `, Y8 H
ceph daemon osd.2 config show|grep osd_recovery_sleep
5 T0 W7 b8 ?, V% K$ @* F; `6 J9 `9 S5 \7 O$ I" i7 y
5 [7 E; D- c( t4 u
ceph tell osd.* injectargs "--osd_recovery_sleep_hdd=0"5 C- b/ y5 y8 @- q, b3 h
ceph tell osd.* injectargs "--osd_max_backfills=10"+ q1 W. R) q' v$ ~* l4 Z6 z
ceph tell osd.* injectargs "--osd_recovery_max_active=15"
1 ^9 m6 @$ [7 k" l" M9 I) ~0 x) f% i4 Y

4 _) e& C2 W  N' }+ l同步速度就会上去
8 d* j2 ~/ {4 {1 K" M" A- T5 q! h/ k

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-10-20 08:33:25 | 显示全部楼层
官方建议的PG使用数量:" o0 ?3 i) O) k; N. S

4 Q% p" T: i" c& h& d! ~集群中小于5个OSD,则设置PG的数量为128。
0 O6 P7 n* {  X6 C集群有5-10个OSD时,设置PG的数量为512。
$ P5 w" I& T' h+ |8 ^) z8 C集群中有10-50个OSD时,设置PG的数量为1024.
' }1 D  H0 R5 V' E6 n当集群中超过50个OSD时,需要权衡PG的数量,有一种公式:
  u- j3 I* ]/ {' a' @: t: n6 s
: v/ o1 u$ x" ]1 a* m6 ]; u" F& f' ~- v​ (osd_number * 100)/ f8 u* S8 n1 Q, e: M8 E

& P& c8 r  X$ G, s3 @" apg_num = ------------------------------+ F: `4 x4 L3 A$ a3 H6 b

& n+ _7 u' g; T​ pool size
9 t) w# @0 ^0 E& x9 J8 Z: b) r4 k! C6 ~
例如集群有90个OSD,Pool设置的副本数为3:(90*100)÷3=3000
! }/ F! c  k% G& `7 @2 D9 u: L6 U5 g  p1 N) z' L9 G( l
PGP的数量要和PG的数量保持一致。8 e: q, c' r9 @/ b! _# x

& g, j' y0 U# }" L! D注意这个PG数量是集群所能承担的总PG数量,每个资源池分配多个PG,还需要通过总的PG数乘以资源池占整个集群数据比例,最终拿到一个资源池应该分配多少个PG的数量。

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-11-8 10:35:12 | 显示全部楼层
控制数据恢复及回填速度
) j" q+ n, U2 F) f+ T/ `8 W( e# 将用于数据恢复操作的优先级提到最高级别
' R( d1 m$ K$ U' y* S  vceph tell osd.* injectargs "--osd_recovery_op_priority=63"4 \- x3 n- l& }; E
/ k, a( a. J, m! n
# 将用于client I/O操作的优先级降到31 C- n5 `3 \1 M  r- F: k5 l+ k6 J
ceph tell osd.* injectargs "--osd_client_op_priority=3"
6 f4 v" p7 A3 E) K" c/ w0 I# }( P  W
# 将每个osd上用于回填并发操作数由默认的1调整到50
; s4 I+ W1 b) P* f' ]0 jceph tell osd.* injectargs "--osd_max_backfills=50"
& |% a" u- Z  T% q% u) A4 k! s8 ]+ |8 v, `0 B
# 将每个osd上用于恢复的并发操作数由默认的3调整到50; m- R* v" H; L1 n" G, M
ceph tell osd.* injectargs "--osd_recovery_max_active=50"" q% l! |* Q1 [& i

" P7 D0 x+ E) J. T$ V# 将每个osd上用于执行恢复的线程数由默认的1调整到10$ c1 C7 W4 q- D! f; e
ceph tell osd.* injectargs "--osd_recovery_threads=10"

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-11-8 10:36:32 | 显示全部楼层
[root@hostceph1 ~]# ceph daemon osd.2 config show|grep osd_max_backfills( O3 j+ Y4 {1 v9 t) d! @- ~
    "osd_max_backfills": "1",- f  q& F5 E) s0 A
[root@hostceph1 ~]# ceph daemon osd.2 config show|grep osd_recovery_max_active" ?* O% c. F1 O
    "osd_recovery_max_active": "3",8 d$ [/ Q" R. q) m( r$ N
[root@hostceph1 ~]# ceph daemon osd.2 config show|grep osd_recovery_sleep
  p' P6 d4 U( `    "osd_recovery_sleep": "0.000000",- V/ u( B8 y7 U; O1 n; F; q- x0 \! p/ e
    "osd_recovery_sleep_hdd": "0.100000",
, @5 C: C& Z: P' ]    "osd_recovery_sleep_hybrid": "0.025000",
; A! t6 j% h+ b, C$ \    "osd_recovery_sleep_ssd": "0.000000",
4 O/ H- N5 Z7 f# {3 H[root@hostceph1 ~]# ceph daemon osd.2 config show|grep max_backfills5 y! [( I5 {/ m& u
    "osd_max_backfills": "1",
# b) ?. o1 I' x3 Z, w0 A- R[root@hostceph1 ~]# ceph daemon osd.2 config show|grep recovery_max_active! x" O( U# l0 u5 E+ s( e
    "osd_recovery_max_active": "3",
. }% {9 t" D4 U9 V7 F( u[root@hostceph1 ~]# ceph daemon osd.2 config show|grep recovery_threads
' |( p) d+ G2 ?7 x[root@hostceph1 ~]# ceph tell osd.* injectargs "--osd_recovery_sleep_hdd=0"
. O8 s; b3 I- t/ |osd.0: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart) 3 u" L# d) l! _6 J; q3 v
osd.1: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart) , U, `/ h6 g  \8 `& E. a
osd.2: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart) , Z" d; B: y, |/ }- T7 a3 E
osd.3: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart)
9 Z: J: Z8 g+ S/ `0 W  qosd.4: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart)
' ^* ~' v. w# {% r3 cosd.5: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart)
) M; ~8 l# {: W' ^osd.6: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart) / c1 n3 ?0 ?6 l0 x4 F9 H  g, K4 b
osd.7: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart) * C+ c+ ^, _* q# M$ r8 }
osd.8: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart) # \4 ?: }+ t+ {
osd.9: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart)
0 x4 I/ G/ C' w: R1 W7 j) @5 }' Kosd.10: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart)
+ |! x+ e$ X( z" qosd.11: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart) ' ^" N# H: S) X5 W! F/ ~
osd.12: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart) 4 e2 X1 z  H# L' ?1 A
osd.13: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart)
: M$ A, P) Y+ E' B2 Uosd.14: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart) 6 r" d4 M4 Y, s) v% {
osd.15: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart) $ W1 ?4 V3 X( O5 e# f
osd.16: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart) ( l% _; E! J/ T; o. Z3 N( J. w: S% U
osd.17: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart) 7 @( Z" ^% g8 v$ ^% q
osd.18: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart) 6 d4 u- R$ W  j$ `/ E- S# g& d$ V
osd.19: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart) ! k: h5 s! ?- z0 P2 L5 e) P& ^4 y
osd.20: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart)
& T8 p% s6 \; `. Q& v  D1 dosd.21: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart) 1 n8 U. s. t( G% P" Z# K
osd.22: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart)
- F- l( A" h6 v0 e, F  E; kosd.23: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart) , G+ d; t' `, O8 S( ~6 X
osd.24: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart)
% u2 C0 W  ^7 x7 x  ?3 R: u4 Zosd.25: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart) ( ~. f. c# w, |& n
osd.26: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart)
, g7 v; x9 _% S/ Kosd.27: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart)
* X7 y7 o( P& U9 F. c: Yosd.28: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart)
7 y, \, _- y( V; R9 zosd.29: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart)
2 t0 U% I" e3 ~& a5 ~) @, rosd.30: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart)
' ^( {' t- S4 i! ]osd.31: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart) 1 f0 u- a3 }' |" _
osd.32: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart)   O" m( y) T& ~. l
osd.33: osd_recovery_sleep_hdd = '0.000000' (not observed, change may require restart)
! Z2 L& b0 F/ U+ l[root@hostceph1 ~]# ceph tell osd.* injectargs "--osd_max_backfills=10". P% ^5 o6 C# V( U6 ~& c
osd.0: osd_max_backfills = '10'
( c; C+ i/ z3 F6 Z- ~osd.1: osd_max_backfills = '10' 5 b- r- h5 I% ?3 C% {0 z7 m
osd.2: osd_max_backfills = '10'
1 L4 ?) a8 I% p; _; d- q. p8 D6 g; Kosd.3: osd_max_backfills = '10'
' d/ i) T. F; A8 nosd.4: osd_max_backfills = '10' 4 z) k, f, E6 X0 O! X4 B* X
osd.5: osd_max_backfills = '10' ' R* }4 l# \4 r% E
osd.6: osd_max_backfills = '10' & |! Z. a( ]8 ~# ~5 _2 F* }0 h% B
osd.7: osd_max_backfills = '10' . |) t# C* H8 l, U' x/ e
osd.8: osd_max_backfills = '10' & k! @5 V) k' }. \( Q
osd.9: osd_max_backfills = '10'
- {8 |( n+ d; f  _5 Rosd.10: osd_max_backfills = '10' : {9 `7 s# K( K9 C, R4 r: L
osd.11: osd_max_backfills = '10'
) d: ?5 Z' A  rosd.12: osd_max_backfills = '10' ; t3 Q9 L/ j- I1 `7 }% p8 c
osd.13: osd_max_backfills = '10'
; I, S5 m, M) F6 w( Josd.14: osd_max_backfills = '10' " D+ |2 N* r3 D! ]9 R# q! U5 L8 s
osd.15: osd_max_backfills = '10' 9 N8 F- f' ~* Z. h
osd.16: osd_max_backfills = '10' ( l$ H" R) n4 h& Y$ w, T
osd.17: osd_max_backfills = '10' * T7 Y4 y) Q$ U4 h" g% J, Z' Q
osd.18: osd_max_backfills = '10'
  D% y* \  ]$ z6 O$ P+ vosd.19: osd_max_backfills = '10'
8 ?& W, ~* A  B! g4 H* w+ M7 nosd.20: osd_max_backfills = '10' 4 `- f$ t9 S# i% r
osd.21: osd_max_backfills = '10' * r' W; s2 V4 }4 T2 Q7 }
osd.22: osd_max_backfills = '10'
: Z9 }! e& `" Q% P+ d! Vosd.23: osd_max_backfills = '10' 8 w$ A: R6 K. q8 G4 [
osd.24: osd_max_backfills = '10'
  ~- z* B$ A7 e. Posd.25: osd_max_backfills = '10' $ ~; t; I( O# M6 F7 C
osd.26: osd_max_backfills = '10'
! H( Z* o) z9 a( |" uosd.27: osd_max_backfills = '10'
0 \% t7 ^+ P( I# m0 e4 `1 Nosd.28: osd_max_backfills = '10' & H2 x1 D! R! n$ @* h8 _/ r
osd.29: osd_max_backfills = '10'
8 y6 `, H. K# T( `osd.30: osd_max_backfills = '10'
$ ~4 G1 W- k; m8 _, i6 josd.31: osd_max_backfills = '10'
$ l! `" }) y2 j8 |. |osd.32: osd_max_backfills = '10'
& c! N- v# o& I" p% j6 Losd.33: osd_max_backfills = '10' - U, }2 L% u0 _5 ^8 ~' Q
[root@hostceph1 ~]# ceph tell osd.* injectargs "--osd_recovery_max_active=10"
/ W% Q) A6 t& i' R, g! mosd.0: osd_recovery_max_active = '10' (not observed, change may require restart) ) u! a2 `& @0 G7 _: j4 B* Q
osd.1: osd_recovery_max_active = '10' (not observed, change may require restart)
4 M4 Y5 G, k: G: \osd.2: osd_recovery_max_active = '10' (not observed, change may require restart)
& @! _! k& U* u( ~( h8 G; Gosd.3: osd_recovery_max_active = '10' (not observed, change may require restart) " l! u" D* T) I& x2 F6 K
osd.4: osd_recovery_max_active = '10' (not observed, change may require restart) + b% o' T# Y. W- l2 m6 L+ ^. ]
osd.5: osd_recovery_max_active = '10' (not observed, change may require restart) , B& a- C3 e% k& B) `# ?
osd.6: osd_recovery_max_active = '10' (not observed, change may require restart) # U$ M& r# @3 y+ V; ~, ^: s
osd.7: osd_recovery_max_active = '10' (not observed, change may require restart)
8 N$ E) |8 I. E0 ~osd.8: osd_recovery_max_active = '10' (not observed, change may require restart)
7 \7 i4 X$ x# t  Z" ^osd.9: osd_recovery_max_active = '10' (not observed, change may require restart) ) E2 `* t( Z. m% X+ v& X
osd.10: osd_recovery_max_active = '10' (not observed, change may require restart) 3 E/ j" b5 o. K" \+ {# K
osd.11: osd_recovery_max_active = '10' (not observed, change may require restart)
* V4 C9 E5 A" x0 Iosd.12: osd_recovery_max_active = '10' (not observed, change may require restart) 6 H4 W. u$ M7 \( n9 d% Y; r" ]. a
osd.13: osd_recovery_max_active = '10' (not observed, change may require restart)
# u& j  ~$ k' V+ w' h6 Sosd.14: osd_recovery_max_active = '10' (not observed, change may require restart)   S; ~$ ~; O& c* q2 ?; g8 S8 ~
osd.15: osd_recovery_max_active = '10' (not observed, change may require restart)
5 }3 W6 f$ R; s' Rosd.16: osd_recovery_max_active = '10' (not observed, change may require restart)
( A. N" K3 d( I/ a* zosd.17: osd_recovery_max_active = '10' (not observed, change may require restart)
3 ?9 Y! ~5 _! Z# s, wosd.18: osd_recovery_max_active = '10' (not observed, change may require restart) 8 L+ m9 \2 b  x
osd.19: osd_recovery_max_active = '10' (not observed, change may require restart) / N: K8 [( r- Q! y
osd.20: osd_recovery_max_active = '10' (not observed, change may require restart) . {& }, M' C$ ]9 f
osd.21: osd_recovery_max_active = '10' (not observed, change may require restart)   T7 \6 t5 z% @
osd.22: osd_recovery_max_active = '10' (not observed, change may require restart)
* O' [7 C& `9 Vosd.23: osd_recovery_max_active = '10' (not observed, change may require restart)
% W8 q4 R5 \# B* _) losd.24: osd_recovery_max_active = '10' (not observed, change may require restart) 7 g* p: S; \4 l5 U: T% L
osd.25: osd_recovery_max_active = '10' (not observed, change may require restart)
# Y- d$ S1 ?* x' x# d/ q) Tosd.26: osd_recovery_max_active = '10' (not observed, change may require restart)
8 p8 ^' c1 z! z! T' O0 L2 josd.27: osd_recovery_max_active = '10' (not observed, change may require restart)
5 |& r3 Z! t+ _0 w8 Rosd.28: osd_recovery_max_active = '10' (not observed, change may require restart) 4 \8 C1 C. B  ~8 z& f/ O
osd.29: osd_recovery_max_active = '10' (not observed, change may require restart)
% ~/ t1 @2 ]. E8 s/ Z! f+ C9 q6 }osd.30: osd_recovery_max_active = '10' (not observed, change may require restart) , }5 G: e5 A+ F0 z- b
osd.31: osd_recovery_max_active = '10' (not observed, change may require restart)
2 H+ U- m8 N: t2 [* _0 o5 }' K, Yosd.32: osd_recovery_max_active = '10' (not observed, change may require restart)
- O/ ?1 f$ Z6 M( R- Zosd.33: osd_recovery_max_active = '10' (not observed, change may require restart) . v4 \. z3 W1 K6 }$ v2 s: l
[root@hostceph1 ~]# ceph -s
6 p5 b/ y' ~# D" Y& M  X4 l  cluster:
' _4 A  f9 p1 O4 `    id:     29046cc0-0682-496b-98b1-912e59964282, N. N2 |& T1 k# j% ]$ q# |
    health: HEALTH_WARN8 Z4 z5 t( y# ]- g+ k
            Reduced data availability: 24 pgs inactive
+ c5 g1 Q' M5 p" i. o7 `; O            24 pgs not deep-scrubbed in time. L2 J5 p  `* M$ V: |' O
            24 pgs not scrubbed in time
6 ~) P1 {% ?* V2 P$ e* \4 f) r
/ p( D* H' y/ E9 s: d6 [! c  services:. Z1 w/ U5 t  y/ F9 _  {
    mon: 3 daemons, quorum hostceph1,hostceph2,hostceph3 (age 3M)" f# s! a2 p0 T( |
    mgr: hostceph2(active, since 3M), standbys: hostceph1, hostceph30 Q  H7 [4 ]4 d) Z, c  Z3 S7 R$ L. w
    osd: 34 osds: 34 up (since 3M), 34 in (since 3M)
! h1 {3 z1 [7 j% W% ~" x. `! s 1 ?# D# G* O: ?$ D9 Z
  data:
* }* L5 I9 {& b- h' \( Y2 c    pools:   9 pools, 5760 pgs7 G, ^! J" Z2 a- O+ e3 e; N- h# r
    objects: 3.11M objects, 12 TiB* R& `  _8 M/ ?5 o( R7 N7 }
    usage:   33 TiB used, 92 TiB / 126 TiB avail
( _7 [: ?) {, Q. Q# P    pgs:     0.417% pgs unknown
+ G: T9 b/ r" ~  a             5735 active+clean
' M1 N# F5 h  B  M/ f. j/ ]# G; |             24   unknown
* y- d* |5 d3 l  |# D& p* w' P             1    active+clean+scrubbing+deep
- F3 d9 L6 Y' f& d; ] 9 e4 e# _; ^* `
  io:
5 ^: D" {4 n( |$ R. W    client:   212 KiB/s rd, 20 MiB/s wr, 258 op/s rd, 647 op/s wr
+ T5 W8 A; k1 m6 x& y/ F . B4 g4 i" z7 l6 l! v9 n9 m
[root@hostceph1 ~]# ceph -s# ]& z9 P: ~2 A( u- U: l- f1 V
  cluster:
0 W5 d" t) M6 T" v    id:     29046cc0-0682-496b-98b1-912e59964282" R4 p; B4 |: }2 K: @, w9 }* z
    health: HEALTH_WARN
6 A& ^6 N  e! W/ v( i6 [" I            Reduced data availability: 24 pgs inactive
7 T* W; u* a: v5 G            24 pgs not deep-scrubbed in time1 k+ u* I$ B- N) v6 @8 _
            24 pgs not scrubbed in time6 ^' W$ B6 @9 \* {
$ J* J5 q  R' J" S' B, \. q
  services:* Q# \) ?! g; i* W. u
    mon: 3 daemons, quorum hostceph1,hostceph2,hostceph3 (age 3M)  T" E  |  U- c- l9 Y! z
    mgr: hostceph2(active, since 3M), standbys: hostceph1, hostceph3
: g6 q% `0 G( S. D% Z* \4 z    osd: 34 osds: 34 up (since 3M), 34 in (since 3M)
; a. R% n1 J" C- P+ ]* K
6 a7 s; l7 k7 o! p: _/ Q  data:
, }3 q7 W% q. S8 _3 A! ~2 a8 h7 b    pools:   9 pools, 5760 pgs, s4 r% f$ e2 V. \' ]
    objects: 3.11M objects, 12 TiB4 I2 N; W' @9 N4 E2 o/ ]/ r
    usage:   33 TiB used, 92 TiB / 126 TiB avail! E: d+ a6 l0 u
    pgs:     0.417% pgs unknown5 V" u- w8 r, J1 m0 I% n4 G" N
             5735 active+clean1 S. D* _9 Q: ~1 [
             24   unknown- \* z( U1 K6 V# ^  C4 B! a
             1    active+clean+scrubbing+deep
4 M, v/ |; l7 p0 A  W% N* p0 u! ] , j, A( T+ r: v4 t7 c
  io:3 `" S/ L" Y/ m
    client:   9.7 KiB/s rd, 20 MiB/s wr, 12 op/s rd, 625 op/s wr
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-11 23:59 , Processed in 0.025981 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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