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

ceph临时调整osd full的阀值以及weigh的值

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2023-3-16 10:55:52 | 显示全部楼层 |阅读模式

临时调整osd full的阈值,然后删除不需要的rbd磁盘

ceph tell osd.* injectargs '--mon-osd-full-ratio 0.98'
, A8 \" e- `3 P
& ^  B& L  ^$ F7 W) P5 L" L7 K
调整每个osd的weigh值,使数据重新分布# ceph osd crush reweight osd.10 1.05 ( F" Z1 \8 t# t. R; N; o+ K+ V
& y. q# ]) ^/ @
5 @- v" @* W  m1 X6 D1 T0 @
reweighted item id 10 name 'osd.10' to 1.05 in crush map
* j$ x' x+ ?+ [" u1 ^
# K; U, o, T: G" ]  t# z5 z/ E  r
( u% @* v0 S* y
osd缺省的weight值为1,调整以后数据会向weigh值高的osd上重新分布,把一些比较空闲的osd weight值调高,接收数据,使用率高的osd weight调低,释放数据
( q$ U& L$ W# n* Y9 }5 G. n* T
5 [( i' ~! P1 p2 J9 u. V
7 ?3 |* h3 }, t( Q# q8 oceph中各osd的pg数量是近似均匀的,可以认为各pg下的数据容量大致相等,因此从原理上来说保证各osd pg相等,则各osd上的磁盘使用量也差不多相同,但是由于算法做不到绝对均匀的原因某些osd上的pg数会相差比较大,这样某些osd上的空间使用量就会比较多。建议是ceph部署完成,各pool也创建完成后,主动手工观察,通过命令调整osd的权重来调整osd上的pg数;1 G- _; l2 d* M/ U+ m4 l  P
( L8 ]+ I# I  f: J- Y
统计各osd上所有pg数:! f" [$ E2 v/ _  P" u
ceph pg dump | awk '% ~4 c; G( k; e8 i5 ^/ P& t
/^pg_stat/ { col=1; while($col!="up") {col++}; col++ }
& P5 F- }2 o1 X3 S /^[0-9a-f]+\.[0-9a-f]+/ { match($0,/^[0-9a-f]+/); pool=substr($0, RSTART, RLENGTH); poollist[pool]=0;
+ s; `! ~  b$ P6 @7 ?/ M up=$col; i=0; RSTART=0; RLENGTH=0; delete osds; while(match(up,/[0-9]+/)>0) { osds[++i]=substr(up,RSTART,RLENGTH); up = substr(up, RSTART+RLENGTH) }
: _! |6 D! b$ C( l7 p& t for(i in osds) {array[osds,pool]++; osdlist[osds];}$ t; J) s& _6 R5 I
}
4 J; s  B2 r& `+ Q; m/ pEND {
* u6 Y3 [/ O* w4 _9 m- j printf("\n");
" S7 V8 T! C3 m: @9 @  }* G1 l printf("pool :\t"); for (i in poollist) printf("%s\t",i); printf("| SUM \n");+ v- i& o! ^3 ?. N5 i4 t2 k3 u
for (i in poollist) printf("--------"); printf("----------------\n");* Z8 l5 f/ ]: {. u. _2 |* q
for (i in osdlist) { printf("osd.%i\t", i); sum=0;
# {( `) C  ^1 n3 u% Y9 [ for (j in poollist) { printf("%i\t", array[i,j]); sum+=array[i,j]; poollist[j]+=array[i,j] }; printf("| %i\n",sum) }. T1 R' {! U8 o- z' M
for (i in poollist) printf("--------"); printf("----------------\n");
# }! E2 a2 B* g) \3 W! p& X6 [' A printf("SUM :\t"); for (i in poollist) printf("%s\t",poollist); printf("|\n");
% Q& L9 [& p8 m6 ^; B}') c3 }9 G* G* T3 W: k- B
$ Y2 ]: A. i6 R: T. a% ~9 Z
0 O; H( b. F* W6 y/ j# {0 }1 K/ W) }
上面这个是获取各osd所有pool的pg数,其实我们只关注default.rgw.buckets.data这个pool,其他pool数据很少,我们通过ceph df知道default.rgw.buckets.data的pool id是23,通过一个更简单命令得到23号pool在各osd上的pg数排序:  z- \( M- S5 H) a2 O6 B

( t/ T9 q2 G/ p+ f7 m3 @ceph pg dump|grep '^23\.'|awk -F ' ' '{print $1, $15}'|awk -F "[ ]|[[]|[,]|[]]" '{print $3, $4}'|tr -s ' ' '\n'|sort|uniq -c|sort -n
( ?% J* T, L6 ?( Z! E) R6 J( g- y, P2 Q( M
输出如下:! A  n" V" e/ O$ g. S" }9 _0 |
9 b: F2 P. I' r* `
     95 1  S. N0 V& P7 z( N& X9 U
     95 312
1 d+ S" e# f  {$ |     96 252
1 z6 E6 L& \% }2 V# b     99 1774 M' [5 l' m  c! Y* Z
     99 265
8 V7 M9 j; [9 P* V! r6 U     99 62
9 M6 e& d. N7 i! l6 l# [) p- R- K    101 121
0 ~8 @" B. W& z+ t, E    101 261, _$ V' _- Z( J$ i5 A2 P

2 z) o: I+ h$ D# }......
# u, u0 e: w8 n- S% C8 I) f8 m! n3 F7 x0 w1 P
    132 102
1 G  _" U$ H" G9 o) s    132 105" Z, m; w- O3 P! {) i9 S
    132 179  F+ ^$ ~4 \( S$ o4 I$ N9 {
    132 253
. ]! ?8 m+ @5 E7 M% r$ c6 k9 E; k( K    132 256( ~! y8 ?5 m7 e4 @/ i, R& m
    133 1111 A4 I4 a6 ?/ c5 ~8 v7 v
    133 115/ a$ `" E, z2 w7 r% w* {8 Y- x- \
    133 151# n/ W4 o' I8 W0 ~; ?* p6 j- ]( Q
    133 203
+ l2 x: N: m4 l8 Z* D3 g. o) T- u    133 259. ]( G; {, f& W1 R
    133 271( S3 a4 P: m3 v: w- w
    133 292" t1 U% W! Y& d: _' R1 O
    134 257
) I4 P6 [. O" y' r3 K) J; [    134 3021 D/ A) A4 y8 \
    134 61
, r1 h3 i8 t6 k1 n6 m6 u' U# L    135 220, Z/ z( t+ D3 p, h7 |
$ Y' I" q0 C. m3 u$ }& z$ o. Z
可以看到最少的osd.1上面只有95个pg,最多的osd.220上有135个pg,调整pg的命令:
6 G! h. a9 q# Z  u) y8 B9 Q( g7 e: Z
ceph osd reweight-by-pg 105 default.rgw.buckets.data, K6 |: R1 ?9 U  K1 b- u* @
4 m( k3 s* \" W
注:105这个数字貌似不起作用,ceph内部会自己调整. H: F) B" e. {9 L
: x2 i8 a, ]$ b9 ?) T: v

6 l& X9 i& b- x
) l- s9 Q  ]+ r7 M2 w& _( r由于每次手动观察比较麻烦,可以通过计算每次调整后的个osd上pg数的方差来判断效果,如果每次反差在减小,说明分布相对更均匀一些:
, o+ o1 }, B0 c, y! @5 G1 y2 c2 s1 ?
1 X' v+ z( \( x# y9 Iceph pg dump|grep '^23\.'|awk -F ' ' '{print $1, $15}'|awk -F "[ ]|[[]|[,]|[]]" '{print $3, $4}'|tr -s ' ' '\n'|sort|uniq -c|sort -r|awk '{printf("%s\n", $1)}'|awk '{x[NR]=$0;s+=$0;n++} END{a=s/n;for(i in x) {ss += (x-a)^2} sd = sqrt(ss/n); print "SD = "sd}'
  c' H0 Q& k. udumped all in format plain
* b, k/ Q& s$ G  j5 K# Y- pSD = 8.71607! v  [# N/ O  N
( k, |; a  n! \0 d. M1 u

' J, \2 P1 x/ i/ o, b: n" Z4 C3 {% ?1 }( ]" V" I

! Q' P% {; n# b" q8 B( e
/ \6 B9 ]: b' }+ S( H7 ^8 m# X* l' Q0 V' z
CEPH 数据不一致时,需要对ceph pg的数据进行平衡
; q& @2 k& S1 o, [) K: w0 p/ K- ?' r' @! M
1:检查数据分布是否均衡
/ O. N7 X1 o, X/ Z1 p( h
, f1 v  J+ q5 }#查看osd使用情况* v+ S6 w, J4 D

# f; l2 L+ `4 B' S# p( E, N# K/ w$ c# ceph osd df tree7 H; s; L6 m3 [7 F5 D
# }1 r  s- n( [  m' J
#查看osd_num,PGS, %USE
/ F& q; x8 f, s1 {9 B! ~* Z; v* `1 |+ ]  J
# ceph osd df tree | awk '/osd\./{print $NF" "$(NF-1)" "$(NF-3) }'
4 L! ]! y. J: y$ e9 }( ?' H
. c' k' K9 B/ \osd.0 up 0.92
4 R6 Q: L" Y( G4 ]3 x' p$ h  O! d# j2 x9 R) ~3 ~
osd.3 up 1.026 S3 {" Q  M1 E" A  Z, I$ @
9 k3 J2 z3 J# F& Y
osd.1 up 0.90: ?9 P* k2 O. x2 }( R! H" t% v

5 ^( y( ]: T$ A4 e" _4 y5 {osd.4 up 1.23/ y# h9 e- y1 \1 p/ B, \1 e
  C- ~0 J0 E0 S# _8 a9 x
osd.2 up 0.95
: A) t/ Q) ~/ a% B$ k7 w  g7 O4 Z" r, ^! x2 |( C
osd.5 up 1.03
9 E6 @$ G% [9 I- W- U" O& y
- ]2 [; ]- G! k' A$ `0 f( r; n#
) [; I/ {/ v5 X# G8 ~9 ]$ s+ L. u! t* [% r: N6 }9 A2 @, {4 B
2:reweight-by-pg 按归置组分布情况调整 OSD 的权重
* U' z: i' L0 x) ^" E+ |( w1 u; f: F; j( o+ p* D
# ceph osd reweight-by-pg7 Q3 e, q* d- u
) ?6 M+ \$ h6 L; k$ T  W) a. M

, s0 w9 R' B5 z6 y/ d1 q8 n- q
% r! w) Y+ i/ @, o0 E  ]* C- T4 }* rEX:7 o5 _* J: t0 L' P  B
; I( @/ ^6 v# `, w
    $ceph osd reweight-by-pg' \! j" I8 `7 i' _1 c
    moved 35 / 4032 (0.868056%)                                         #35个PG发送迁移
" z) V& k/ n+ j( D9 i    avg 115.2                                                           #每个OSD承载的平均PG数目为115.25 p0 B4 n( C; o# h0 u
    stddev 10.378 -> 9.47418 (expected baseline 10.5787)             #执行本次调整后, 标准方差将由10.378变为9.47418
8 G' j) C; J5 ^( t* P6 V    min osd.15 with 93 -> 92 pgs (0.807292 -> 0.798611 * mean)            #当前负载最轻的OSD为osd.15,只承载了93个PG, 执行本次调整后,将承载92个PG& P$ [2 i0 G  O  L
    max osd.6 with 141 -> 132 pgs (1.22396 -> 1.14583 * mean)         #当前负载最重的OSD为osd.6, 承载了141个PG, 执行本次调整后,讲承载132个PG  {. w' m( k6 G) X: _8 p
    oload 120
+ e- P: ~6 }5 N% e    max_change 0.05/ S7 I5 B% m0 L" }" I
    max_change_osds 4
; K1 t0 C$ ?! s, U- b: K% P    average_utilization 21.1365; s0 O4 d7 W  n
    overload_utilization 25.3638. K0 Y! B1 N4 z; p& ]
    osd.6 weight 1.0000 -> 0.9500                                        #执行本次调整后,对osd.6,osd.23,osd.7,osd.27的reweight进行调整6 k5 q( }  G# k. M
    osd.23 weight 0.8500 -> 0.9000
3 @/ E/ C# }6 a3 Q# n7 n" y    osd.7 weight 0.9000 -> 0.9500
" r  O$ C& d6 j0 {% x: [# L    osd.27 weight 0.8500 -> 0.9000" v$ X9 A  i8 T) |, u

3 w) l, v# q# i. R) {) [# T' n+ v/ C# @
' }; b) q% w3 Y- ]$ o) p
3: reweight-by-utilization 按利用率调整 OSD 的权重* ]/ p+ \5 ]! C' [# @; X3 ^. }- F
+ k9 n0 E2 l9 g- k2 F$ D& w& F- [

: O+ Y3 M  |  t& v0 O' D5 J: N: H+ L$ x6 M1 |# U  B
# ceph osd reweight-by-utilization
6 e6 h; C/ E( ?3 m! K3 _7 i$ g* M, I6 O( E! ^: W# u4 p) j
moved 10 / 843 (1.18624%)                                                                #10个PG发送迁移( N7 z2 L. {* v# h7 l0 D" K
- {4 r2 o) k0 x) I3 H7 \- U9 ^
avg 140.5                                                                                             #每个OSD承载的平均PG数目为140.5
: c% g3 k, ^6 b: _" {( l9 ?# B  k" \' L! k( O! S. D
stddev 8.69387 -> 12.339 (expected baseline 10.8205)                       #执行本次调整后, 标准方差将由8.69387 变为12.339. C1 _2 Q1 x' q/ H7 ?

$ q' k0 H' z; w, L/ y3 }& G  g  qmin osd.3 with 127 -> 127 pgs (0.903915 -> 0.903915 * mean)  #负载最轻的OSD为osd.3,只承载了127个PG, 执行本次调整后,将承载127
3 l1 t# T/ e8 q' o
9 \! _( D$ u- L, H5 N0 M3 wmax osd.0 with 154 -> 154 pgs (1.09609 -> 1.09609 * mean) #负载最重的OSD为osd.0, 承载了154个PG, 执行本次调整后,讲承载154个PG
: p, ]# m# I1 O0 u7 C# l
* s! e5 l# L- }
2 A$ w; u$ R. j
6 }& T9 w1 E; @" [oload 1202 ?' ~1 c8 W, G- I: x" e

& u0 q3 T: A4 I4 d5 V( x4 mmax_change 0.05+ N# U; v& ]2 [( |+ E; e& g# b' X

0 x, y$ j9 P7 U+ K: \max_change_osds 40 t4 v9 l: b, d6 L: a
; o% X! I- B- a7 U# x( d- y
average_utilization 0.0904
, O& G3 p. s8 Q, @# Z) T
& F4 C! [' x6 ?overload_utilization 0.10847 P$ _, o  a  `5 B1 ~: `: `2 `
- Z0 ?4 M, J# }5 ~1 ]( U8 |
osd.4 weight 0.9500 -> 0.9000
8 X+ h! a, }2 x0 E# I  P* a& m- ?* e
检查数据的平衡状态:4 @% q3 @/ L" ?0 y) k5 C+ ]; Z
$ ^' k7 H9 o7 J4 L' }2 T' z. \6 J2 g* S8 e
# ceph -s
9 ^) u) L: r+ ^5 P4 U* q1 w2 k* n  }8 w. A& i

' e/ [# Z) A# v) ]4 M% |9 q
! F( F! h. I  }7 O, R2 ~ 4: 数据均衡后还原权重& W0 J  F" A& h6 a1 }- [/ |

7 z  o  R5 J  S. p6 X. H4 k# T! j5 _#统计osd_num, REWEIGHT/ j( N' U" Y: ~  {) d

2 {1 J* U+ L6 t  S/ V$ u9 @[root@node-10 ~]# ceph osd df tree | awk '/osd\./{print $NF" "$4 }'
* _$ c3 @+ [6 F* P% W" q' S& h. |' {7 b# k% W
osd.0 1.00000
" Q# q5 ]5 I' K3 ]. c
9 r( u: F& \5 gosd.3 1.00000+ J5 U4 M% ?# T2 C

1 g9 c, Z/ v- F" q- W0 Dosd.1 1.000004 K/ H' P$ V5 I& j( o

* h3 p8 [/ m& g5 k6 R. dosd.4 0.90002
. G- [9 r6 \, F5 i  B% J3 h9 r; ]: h7 {
osd.2 1.00000
6 C, I5 O# D0 [2 c
3 a  m$ u/ s, O7 s+ cosd.5 1.00000  p) P* G3 _( T2 m( D
5 h6 j6 C8 k4 J' U
[root@node-10 ~]#
8 ^7 m! n. O0 e$ H( o6 N# U0 v
8 A- S) P- k6 d2 l" E# P. ~  k. `. K- J" h  U0 j

$ {1 _, w, ^; e, r, z" b#依次设置osd权重为默认值,1.0
, L4 m9 N5 i. V' b- p
  T; U) l) C7 j7 [, G& F% v' x#ceph osd reweight {id} {weight}
. }+ g6 J+ ~3 V+ B) m2 v0 F- C
5 Y9 O: q, i9 X! p# s#说明:osd weight的取值为0~1
- L6 Y/ j$ z4 u: y
1 t+ m5 Z. Y. N$ a- B( j$ R( E
+ |# T. P/ C& l; G' C6 M: `* [: M* R9 h8 ^8 h, B. S
$ ceph osd reweight 5 1.0
5 ?1 z, i; B7 I4 I8 i+ k8 _, o
+ N$ m% |2 z! D: E
* D5 g3 J7 Y" Z; i( f5 {通过ceph osd tree 可以查看到 weight 和reweight的值9 T7 n0 b- c3 `& w' X3 g. h/ J
1 ?% D# |) @$ o% L7 S/ N# \4 H
6 j" d3 W6 B( i  q9 B

; W9 M. _+ z4 T" [! q

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-16 11:05:29 | 显示全部楼层
1)粗略统计(注:本方法只针对于2副本;gc会影响统计结果;对于一个pg,可能多个副本发生迁移,一个pg上的数据量没有乘以迁移的副本数,导致结果不准确)
2 R/ K( W) n% E, D, p. T8 Q, D: ?1 A8 L
步骤:
: D  Z. J, x1 K6 \. X: _0 F  Y+ j; z
①统计数据迁移前pg的分布+ h, ]" c! W0 C% T

; f. C- e& V8 {- Y$ a/ Dceph pg dump pgs|awk '{print $1,$2,$7,$15}' |sort >>/root/oldpg  #这里记录的分别是,pg名,object数,pg上的数据量,以及pg的acting osd。6 h# B2 y+ O' Q) X9 P  T# T
. O- v6 ~( v# A, K5 i3 K
②统计数据迁移后pg的分布
% X0 r) ?3 }" ~0 R3 O- Z* V
" C8 j2 }! b; V* J8 T1 _8 f3 o0 Fceph pg dump pgs|awk '{print $1,$2,$7,$15}' |sort >>/root/newpg
% e7 R! K3 r$ j
) N- z/ K; `% F5 u+ Z0 d. _③对比前后pg变化' `1 Z/ q$ _% X) l

/ w5 i. U; y4 x- Z$ o$ gvimdiff  /root/oldpg /root/newpg #查看是否有pg上的数据量发生变化或者一个pg是否只有一个副本发生位置变化
0 n$ v' h, M2 I# u2 B/ P0 m4 d9 G+ H; E$ V9 t7 A% R& y
③计算迁移量$ ^, j) t% r+ k5 S, J
. ~8 j' t( D' B6 I
diff -y /root/oldpg /root/newpg --suppress-common-lines|awk 'BEGIN{sum=0}{sum+=$3}END{print sum}' 来进行统计,这里的单位是字节: a: w; S/ X! {% |
7 ?, Q' [" ~# \7 i9 D+ A& T( r2 _. p
(2)相对精确的统计$ \( k  e& `4 H, l
/ \6 |0 L( r7 }
理论①:对于一个pg,可能多个副本发生迁移,一个pg上的数据量乘以迁移的副本数可得到准确结果。
2 _  B$ o; {9 C* ?  O+ M' L3 p5 D6 _9 t0 M  ?

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-16 11:07:39 | 显示全部楼层
开始操作及注意事项
# m0 L" I% _* y- R4 j3 v: O建议每次调整一个osd ,等同步完成后再进行下一个,下面会说调整如何查看# ]) G) l* x- ^/ @3 g' q

2 E8 H; @7 ?, h7 ^1 _: E4 X查看使用率8 h5 G4 O6 l! E- T. T+ Q6 X1 h# }
凡是%user达到85的都需要调整
5 t) e3 {2 ~2 Rceph osd df |sort -nk 7
+ ~4 O" H' u5 }7 d5 @1 i8 I7 X( @5 u2 y! P% U6 ]% P
调整权重及调整后查看' L% w4 N$ z, [0 s. u
格式:ceph osd reweight osdID REWEIGHT(osdid和reweight用ceph osd df查看); {: I* ~* }- m. M0 L9 L5 J' H6 r; E
如:调整上图调整osdid为1的优先级为0.85 :ceph osd reweight 1 0.859 E' w( e9 [+ y3 r

7 B( I' I  K1 I& X! I注:这个REWEIGHT值 越低 表示优先级越低 也就是说数据会优先往REWEIGHT的上面写,默认是1.# Y& w9 \( a3 D, N! w# r( R
. J. M; L$ e6 K) h; s. r
调整完毕以后 使用ceph –s 查看 会有一个数据同步进度 等进度完成以后再调整下一个
" h7 V. C' o3 j$ b( v, u8 T/ r3 [/ k6 z, D$ b

9 B9 c0 A% `, {* T2 y$ o使用率达到85%不调整的影响
+ _; Q+ \3 z- O) @9 V# X3 G. z& ~刚开始说了 osd使用率达到85以后 数据会停止或者极少量写入,现在来详细说明,首先查看 remapped (重映射) ,具体看图5 D0 O, i, r, i! ?
ceph pg dump | grep remapped9 Y4 ]( |  U% I- z2 t+ B( u9 P7 T
1 q1 [1 h) [9 u  Z

. [  n% i  d3 B+ u1 A+ Q: \

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-16 12:58:52 | 显示全部楼层
3. 处理故障的pg
从ceph的状态中,可以看到,有一部分的pg处于stale/down/peering等状态,这部分异常的pg不能提供对外提供服务,影响了业务的可用性,通过ceph health detail找到这部分异常的pg,发现其中有一些pg的upset中都没有映射到osd,或者三副本只选出来2个osd,没有选出来第3个osd,下面是当时故障的pg的状态:
这个现象很有可能是权重不平衡导致的,关于权重在0.94.7版本的ceph中,有两个参数,一个是weight,一个是reweight,weight会参与crush算法,计算出要落位osd,然后reweight是在此基础上再去决定是否选择此osd,但是reweight不会参与crush算法,crush算法本质上是一个概率算法,因此当权重相差悬殊的时候,很有可能选不出来osd,客户环境中部分osd的reweight设置成了0.09,有将近一半的osd都将reweight设置成了小于1的值,这就有可能导致pg出现异常,从而选不出osd。因此尝试将故障pg对应的osd的reweight重置为1:
" y! u/ [3 L/ I; b6 F7 K
[url=][/url]
4 |1 I; i% C2 C" f3 }
1
0 J1 i  E) P: q' }0 m( v6 N" L2& w( T1 p, z) h0 V' a5 b0 E6 ?
3# C. K# Y6 ?  M5 Q3 {
ceph health detail | grep stale
' V* n4 F2 Z. e' J" {ceph pg <pgid> query) m5 J# z# t: O, S  \) w
ceph osd reweight <id> 1. l* Q2 r: v; P: x
4 c# d2 G) r$ i6 F
置为1之后,观察到该pg重新映射出了osd,并且消除了stale状态,恢复了服务。因为reweight的不确定性,我们调整权重,一般不调整reweight,让它始终保持为1,在L版之前的ceph中,需要通过调整weight值进行数据平衡,L版之后新增了weight-set功能,可以更有效的去平衡数据。
此时,可以将所有reweight不为1的osd重置为1:
& j$ {1 F; J  B- f: z/ [2 ?7 I+ i
[url=][/url]
/ M& S1 J8 m6 j1 ]/ g: `3 V" m6 j
1
) S# D1 U9 u$ @( ]$ a
for i in `cat reweight_osds.txt`; do setsid ceph osd reweight $i 1; done
: R2 R& g0 l8 Y! f3 @

8 D- C+ P- q. l4 d, k4 w! _
重置为1之后,stale的pg全部恢复了正常,业务也恢复了正常。
4. 数据重平衡
后续需要做的操作就是继续平衡数据,但是要保持各个osd-domain的权重值大小一致,然后可以微调osd的weight值,将一个osd-domain中高使用率的调低,同时也要将另一个osd-domain中低使用率的调高,平衡数据,直到各个osd的使用率趋于均衡。
5. 恢复mon服务
等待数据平衡完成之后,压缩61 62的mon服务,然后启动,再将63加进集群。
至此故障处理完成,所以最终总结一下,引起该故障的本质原因,在于调整数据均衡的方式不对,权重调整的幅度过于大,不同osd之间的权重相差悬殊,导致pg出现了问题,进而引发了后续的一系列问题。因此,关于权重值需要关注以下几点:
  • 保持各个bucket的故障域的权重是相等的,bucket里面的osd权重值可以不一致,但是osd上的权重值得保持相等,扩容/缩容,都需要考虑这个问题
  • weight不要设置过大与过小,需要跟它的实际容量保持一致
  • 尽量不调整reweight值,即使调整,也是微调6 ~! @. K# Q0 l; f( W

' ^0 R) B7 h+ t* i
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 00:05 , Processed in 0.018516 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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