找回密码
 注册
查看: 639|回复: 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'( P1 O) y: ?$ ~( q( P
- r) {% R- c6 k2 r$ x  E
调整每个osd的weigh值,使数据重新分布# ceph osd crush reweight osd.10 1.05
% r' j; ^4 c% C& u/ b/ L' J/ `& n4 z; [9 [. o

# N$ v6 [5 v) T4 W7 ireweighted item id 10 name 'osd.10' to 1.05 in crush map, g: }$ C) Y% J9 h% J& g$ h6 ^+ D! I5 Y

* X+ v8 V7 t* |1 R5 p7 Y* j+ P. o
& g6 _, b/ W8 E
osd缺省的weight值为1,调整以后数据会向weigh值高的osd上重新分布,把一些比较空闲的osd weight值调高,接收数据,使用率高的osd weight调低,释放数据$ y+ v5 [* F: G4 d
& R5 O. \) D0 U: b- l# X! u( W, o
9 ]7 b0 d1 c# Z  n- S
ceph中各osd的pg数量是近似均匀的,可以认为各pg下的数据容量大致相等,因此从原理上来说保证各osd pg相等,则各osd上的磁盘使用量也差不多相同,但是由于算法做不到绝对均匀的原因某些osd上的pg数会相差比较大,这样某些osd上的空间使用量就会比较多。建议是ceph部署完成,各pool也创建完成后,主动手工观察,通过命令调整osd的权重来调整osd上的pg数;
8 e& s8 A+ Q4 ]. E
3 v2 M- U  C5 I! W统计各osd上所有pg数:9 z3 H/ u, d9 l! e3 `' M
ceph pg dump | awk '
# U+ h  s7 H4 m7 c8 P /^pg_stat/ { col=1; while($col!="up") {col++}; col++ }% {; P: p8 R  \
/^[0-9a-f]+\.[0-9a-f]+/ { match($0,/^[0-9a-f]+/); pool=substr($0, RSTART, RLENGTH); poollist[pool]=0;+ `# s$ j: H6 ^
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) }5 U, y" \! W: F9 V4 t+ y- F
for(i in osds) {array[osds,pool]++; osdlist[osds];}
2 d! h- J$ c2 _+ T! B9 K" Z}6 I7 |+ H4 r1 |9 E" V6 @
END {7 H; g0 R' \/ i& l$ w; I
printf("\n");4 H; \7 P" j) _6 `6 q
printf("pool :\t"); for (i in poollist) printf("%s\t",i); printf("| SUM \n");
7 `8 K2 i6 U3 Y. X for (i in poollist) printf("--------"); printf("----------------\n");: p9 k6 c1 N& C7 r4 s' S, A
for (i in osdlist) { printf("osd.%i\t", i); sum=0;
' I8 Y+ ?3 a# k9 A for (j in poollist) { printf("%i\t", array[i,j]); sum+=array[i,j]; poollist[j]+=array[i,j] }; printf("| %i\n",sum) }; S' H+ @# _4 R: j3 T
for (i in poollist) printf("--------"); printf("----------------\n");
4 _3 h8 r$ r( N' v& z) W printf("SUM :\t"); for (i in poollist) printf("%s\t",poollist); printf("|\n");7 H  W4 v8 }+ h2 b
}'
+ `9 N: d2 z1 ]+ N
! p/ \/ R% s3 g% [
0 l' E' c( E* u; K. @4 Z上面这个是获取各osd所有pool的pg数,其实我们只关注default.rgw.buckets.data这个pool,其他pool数据很少,我们通过ceph df知道default.rgw.buckets.data的pool id是23,通过一个更简单命令得到23号pool在各osd上的pg数排序:2 G3 R0 P: W: D/ P$ T, L

- ~. _, J0 X0 J! L: Q) K: pceph pg dump|grep '^23\.'|awk -F ' ' '{print $1, $15}'|awk -F "[ ]|[[]|[,]|[]]" '{print $3, $4}'|tr -s ' ' '\n'|sort|uniq -c|sort -n
" q  ^; ^. ^/ C+ T7 h9 B
4 h  W- p* ~5 `3 ?( S输出如下:2 M1 T; }8 u0 [0 C2 h3 F! ?! L
" y4 Y2 u' F* i/ ?" ]: p8 D3 M0 B
     95 15 r, f, H3 N' I5 y; C  ?& P
     95 312
5 k  M! G2 ]4 |% L' l3 {     96 252
2 ~6 O: Y1 e* V9 I/ c( G     99 177/ y- \  }% G( b0 {; t7 R
     99 265% ~- q: o/ M7 u
     99 627 w3 G' i& B0 Q! a1 Q: t, W
    101 121& J$ [( l9 P3 t9 Y" r8 p* P. \
    101 261* Q9 G3 i- o3 k

( I3 v6 O8 [) v2 j+ K......- N( g6 ^4 a) G, G4 N% v* ~% L

" f. i+ S( [" t    132 102
5 z0 j4 i' _2 u3 B1 A1 a8 w    132 1054 I! L2 c7 @* U  |4 }& {$ u* Y
    132 1794 E4 I+ Y* M/ U8 W
    132 253% Z- h- D( n3 z# n
    132 256
8 W9 O2 T# }2 `! A- b6 \: A+ o0 v    133 111( v" \, N+ L9 x: R  ]. c
    133 1152 w. O& S% E2 s6 x$ w7 @
    133 151# O+ \: v1 S5 R) g) \
    133 203, B1 R. v( W* w6 H. P2 K' ^$ Y
    133 2595 K. ]' c) `* p9 s: h  {1 z! X
    133 271
! C. ^) H, K# v7 O    133 292. {/ @+ r. O* k( w7 n
    134 257
( Y. C& C6 y0 z* e$ l8 ]4 A5 b    134 302
/ q) M( e. S) ~' m    134 61, Q8 W) g( y8 B
    135 220
' s  c+ e3 h) W" r8 b# I+ v+ l8 @3 @* o& V
可以看到最少的osd.1上面只有95个pg,最多的osd.220上有135个pg,调整pg的命令:$ N! w; H* [& p
% b# `6 D6 t" ?8 R; Z9 X  Z
ceph osd reweight-by-pg 105 default.rgw.buckets.data+ \6 d$ K; q: C9 B& o
; q% L$ }% Y' S  w
注:105这个数字貌似不起作用,ceph内部会自己调整6 S6 Q9 ?8 [2 ^, q, k: x

, ^1 o: }! C3 i  _4 d4 p/ ]. i, U4 F8 I8 W' P$ c: Y7 p
6 Y+ I* h( U  a0 ?9 h( I0 S. h
由于每次手动观察比较麻烦,可以通过计算每次调整后的个osd上pg数的方差来判断效果,如果每次反差在减小,说明分布相对更均匀一些:
" |. D( A# r7 D
* a1 d  v) U. W0 C3 C7 D6 Oceph 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}'% Q$ V. L% Q3 r8 W# N9 F' W8 q
dumped all in format plain
/ a- h* H& _, p, T( R0 F0 qSD = 8.71607- F0 Y0 w, S1 b% L- G) F
( g8 x/ j+ O6 g$ u9 h/ y) Q

: x: Q; l/ u; M8 o4 T+ [) z9 f2 g0 [, N4 P! T/ H, h2 b6 \8 P  k

  L7 q) ~5 o! \5 C; \7 H$ O4 N5 V% l1 V; ?9 O9 R. T
9 a" O3 Z3 n' ~/ E* E
CEPH 数据不一致时,需要对ceph pg的数据进行平衡" S3 r4 Z0 O% X5 ~; ?1 Z9 U+ z
+ T. }5 h" O4 V) |9 s7 o$ j# C
1:检查数据分布是否均衡8 ]) G! X4 y9 ?7 }. ?  q- S& P

6 F3 z. Y% h* k8 _#查看osd使用情况
4 a. L) i8 M! v' G: }0 Z0 Q& i  O
, |4 s1 W) m! R( `& I3 g# ]# ceph osd df tree
7 ]* Z, ?- ~0 ^* x! K3 c. v7 q, d9 a4 h0 M- K2 `1 K
#查看osd_num,PGS, %USE( |2 }& O! l  S7 s/ D) i: \
& D; A3 u& X$ \  i1 R" r( @4 k
# ceph osd df tree | awk '/osd\./{print $NF" "$(NF-1)" "$(NF-3) }'
" E( R  \1 b. x" y+ i# H, R" `  O& _
osd.0 up 0.92
* T, c1 N  ^) m: n; @# C+ I& {+ g  A
# M4 e4 a# a- Aosd.3 up 1.02
' a4 U* M1 P! x" K; U9 X( b  U, s  h
/ C  w) j& J8 T8 R* n6 Z6 i. T6 iosd.1 up 0.90
  x( M% n& W$ j$ I$ P, G2 F- N6 B4 k9 w- y! e
osd.4 up 1.231 G8 E0 K2 Z% M: C% ^* k) ]. y
! H& s2 T! H9 p' X
osd.2 up 0.956 A! r2 o% C! c
  _: B( B$ i3 o7 g; Y) g
osd.5 up 1.03
; \6 X$ f' |! Z! c  P4 A: e6 e8 @* w. {0 G) n' g4 Z: j
#
. ?7 x/ }; P# N6 Q8 F1 f
5 R3 X0 {0 d0 m( j# y- p2:reweight-by-pg 按归置组分布情况调整 OSD 的权重6 Y% w0 I8 Q" t6 Z1 y, ~/ t
; C; d  D6 |! g1 |5 h& }% [7 X
# ceph osd reweight-by-pg
8 I5 k* z( I6 |6 n( q+ P* h$ Y5 r$ s$ {4 l( O  K6 K. ?

5 z( W9 k! W; x6 @. {. G" [) x5 @! O
EX:& K  ~5 b) l5 ?( g4 q# Y
6 j% ?  |) {: |/ T& W$ Z1 R( w8 `
    $ceph osd reweight-by-pg% t& K$ u, u6 H+ h8 h, Q. ^
    moved 35 / 4032 (0.868056%)                                         #35个PG发送迁移
0 u8 x' w+ u% ~# m# j5 {8 o    avg 115.2                                                           #每个OSD承载的平均PG数目为115.2
7 ]& r/ X% p4 `( h  Y9 D1 F    stddev 10.378 -> 9.47418 (expected baseline 10.5787)             #执行本次调整后, 标准方差将由10.378变为9.47418
# R/ g( A0 O; G0 H$ E2 @! ~; g    min osd.15 with 93 -> 92 pgs (0.807292 -> 0.798611 * mean)            #当前负载最轻的OSD为osd.15,只承载了93个PG, 执行本次调整后,将承载92个PG
. Q$ f# C) _: `( T    max osd.6 with 141 -> 132 pgs (1.22396 -> 1.14583 * mean)         #当前负载最重的OSD为osd.6, 承载了141个PG, 执行本次调整后,讲承载132个PG6 Z; W- G$ R+ l8 i& p
    oload 120
: u( F+ ]% J  i9 f" X% N5 ?    max_change 0.05
2 u1 |0 w, L. D, U6 P5 s7 ~/ V    max_change_osds 4
7 D7 f0 f) e8 `/ G$ r) G9 X    average_utilization 21.1365! F6 u: O9 C5 e5 J
    overload_utilization 25.3638/ p$ N% G+ ~) k! [( k6 }
    osd.6 weight 1.0000 -> 0.9500                                        #执行本次调整后,对osd.6,osd.23,osd.7,osd.27的reweight进行调整* O, j* Z0 @/ X; l6 \
    osd.23 weight 0.8500 -> 0.9000$ i1 W9 D$ P* i. A
    osd.7 weight 0.9000 -> 0.9500
& _! a4 ?( W( N2 h$ n; z    osd.27 weight 0.8500 -> 0.9000
( ?* K0 V1 A: X
. w9 T+ H; C/ S% k4 p& i! X0 m. ^- M4 O2 T0 `% Y
1 j6 X5 f7 ^/ O8 ^7 n; i7 L
3: reweight-by-utilization 按利用率调整 OSD 的权重
( {. n) k+ E4 R2 {
$ T. g. p* k( [
) D3 Y: L! h7 Y# O( L
2 N8 p0 X! h6 Q! @2 C) I# ceph osd reweight-by-utilization9 K& I: G& g* p+ x
6 o: h9 Y+ y/ I# v6 e# q* x5 s" X
moved 10 / 843 (1.18624%)                                                                #10个PG发送迁移
9 @* ?7 I( ?7 q$ Q6 f4 |" s$ Q6 m: v1 ~& ^6 B6 C9 G
avg 140.5                                                                                             #每个OSD承载的平均PG数目为140.5
! U) g* C1 e; ]3 {' o: Z
/ a; q- u$ d+ [+ [; |( t7 \' g* \: ustddev 8.69387 -> 12.339 (expected baseline 10.8205)                       #执行本次调整后, 标准方差将由8.69387 变为12.339
) `  B) c$ i. K: `3 l3 M/ [, y3 o" o; A7 v
min osd.3 with 127 -> 127 pgs (0.903915 -> 0.903915 * mean)  #负载最轻的OSD为osd.3,只承载了127个PG, 执行本次调整后,将承载1278 }, Z$ M& N. r! q5 @
6 c% D& T" g7 R! P; T) s
max osd.0 with 154 -> 154 pgs (1.09609 -> 1.09609 * mean) #负载最重的OSD为osd.0, 承载了154个PG, 执行本次调整后,讲承载154个PG
, ^( p8 S2 ~: I5 ~! ~1 r1 o6 T- ?) B/ R* p& f# z8 s! @
# k% k: A% S0 A, F

  E& b7 n# Q( O) X- Hoload 1202 L. c" Q9 |+ k

4 V  ?. v. o7 r8 E% wmax_change 0.05! T9 ^, p+ q0 M: k3 E7 E6 Y
$ d6 I( d+ c9 V6 G0 _( k
max_change_osds 4$ ]' `( s, n$ `2 v- O# U: d7 p5 t
. j3 b+ |5 B5 m/ i
average_utilization 0.09044 p$ [. P+ [- {# m0 Y! L2 B* a
1 ]( h! E# F3 Y/ K8 w; S
overload_utilization 0.1084
) @  Y1 J7 X! M3 L1 C( p
, m, A9 n. E9 B0 r/ x2 o) Fosd.4 weight 0.9500 -> 0.9000+ G& t' }4 k; ?1 S9 c; u& ^4 Q

4 L# L: E- C3 e$ L检查数据的平衡状态:
& U/ t2 f$ j, A2 t; v4 e8 t; n- g  c- \6 S( r
# ceph -s7 w7 [- U2 q& m
0 C0 y7 C2 q" R0 v$ h" p& J
, q1 M) n. b, n5 W/ r
. R1 n1 _! x! {8 C
4: 数据均衡后还原权重
1 [; r0 p8 A" C( M0 v& f9 z. ]* L. P  q$ Q! @: f2 s2 L
#统计osd_num, REWEIGHT* ^6 [! S. z( }9 L

8 Q; n, G% Q: x9 Q[root@node-10 ~]# ceph osd df tree | awk '/osd\./{print $NF" "$4 }'6 b5 n6 Y7 w* }8 \
# {0 V! r& Z( A. ?* ?; f8 {
osd.0 1.00000
# M& e( q# s; A9 H4 z' `2 P
3 w! R* U/ ~6 C9 q4 n7 ~4 @osd.3 1.00000, ]& y. s0 Y4 c+ W# t1 Z9 T0 p

% T" h' J) u& o2 Sosd.1 1.000007 V; ]& l9 }+ Y

6 b- f/ [+ i) p0 j% @% P7 @6 [osd.4 0.90002  E7 n: u1 ?0 b: Z9 S- C" \
* A' X3 V- P: h8 o% S
osd.2 1.00000
1 q# ~7 ~- Y  K7 z3 ?) _* g0 c
; r( R4 A* ~5 v" Kosd.5 1.00000" S; j! D4 x4 E' U7 g9 f+ k

' q/ n+ V$ V# ]" f: _3 Q& J7 `[root@node-10 ~]#
9 o/ g$ c/ k6 n+ E7 q; U  }  w7 V2 x" x$ Z  V- I( k
6 p* b6 \5 G9 S/ _; {. U+ u8 ^( S
) F2 r$ ~' D: x! y/ U2 W
#依次设置osd权重为默认值,1.0* g: ~2 D2 g* i+ b9 \  t1 a& G3 ?

9 I/ R8 k' T( F" }$ o#ceph osd reweight {id} {weight}
2 _* n/ d5 L9 Q) G( t: d; w  |! \- x6 b8 @9 Z" y$ O7 q; w* a
#说明:osd weight的取值为0~1& t8 u6 h. _0 a" k5 u2 n, ~7 S
& H- N, h9 g" z3 T. @" n
* c! H* _; F- [8 o

, Z- D8 t- s# ^$ ceph osd reweight 5 1.0
$ d. h, h; x8 x; `6 z. F
# V: f- e/ X  c, c
" ?8 w! w, B8 O/ `) F& ]通过ceph osd tree 可以查看到 weight 和reweight的值  b, z7 i1 N8 f+ i/ G5 `* E
$ a9 \/ ^1 P3 G7 o

1 b. {- d" A# {! x1 o. }5 e: _7 Q7 X  }* \* \( Z

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-16 11:05:29 | 显示全部楼层
1)粗略统计(注:本方法只针对于2副本;gc会影响统计结果;对于一个pg,可能多个副本发生迁移,一个pg上的数据量没有乘以迁移的副本数,导致结果不准确)( M- [/ T- N' ?# \/ A* w, C, j
$ [. O1 ~% N( Q/ ]) C: z
步骤:' B2 [1 _5 O) D; G
8 T- r; B3 H5 b, U9 w6 q
①统计数据迁移前pg的分布. f7 |( g0 r  I

  Y' }$ G$ \, s4 m% Oceph pg dump pgs|awk '{print $1,$2,$7,$15}' |sort >>/root/oldpg  #这里记录的分别是,pg名,object数,pg上的数据量,以及pg的acting osd。
, C7 Y9 q, C9 ?1 ^( Y9 V2 j+ ]! W5 L  X/ V, L1 l* J) Z9 Y% T1 O
②统计数据迁移后pg的分布6 f1 H3 [' E: P4 ]8 C* ~7 h
% y# b% U- u1 z+ \7 r
ceph pg dump pgs|awk '{print $1,$2,$7,$15}' |sort >>/root/newpg
# A% E& Z) Y& V4 J  `5 i" ^" v. t8 d
+ m( u3 E- ?8 q, u) a③对比前后pg变化
. ^1 T( G! b0 [/ o6 w2 W: ^- @* {9 F: p
vimdiff  /root/oldpg /root/newpg #查看是否有pg上的数据量发生变化或者一个pg是否只有一个副本发生位置变化
1 ^% [7 J3 t9 h# t8 D/ [* |8 x% b7 I7 l# h( N
③计算迁移量  |0 X. y8 q: @

% ~3 ?/ p1 r( s) a- n! Rdiff -y /root/oldpg /root/newpg --suppress-common-lines|awk 'BEGIN{sum=0}{sum+=$3}END{print sum}' 来进行统计,这里的单位是字节; K9 X% \+ L9 D# ]
6 @3 y- u4 }5 O! P- J
(2)相对精确的统计8 P; t/ \. B5 M) ?. a

& N# n% E; t" `9 h% V$ o9 A6 s理论①:对于一个pg,可能多个副本发生迁移,一个pg上的数据量乘以迁移的副本数可得到准确结果。  |% z( N1 G# {& Q+ i" }

. x! W. n$ X; Q: _& O

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-16 11:07:39 | 显示全部楼层
开始操作及注意事项( m5 t- I$ E# K3 ^; W
建议每次调整一个osd ,等同步完成后再进行下一个,下面会说调整如何查看
$ y/ o# b, a1 H. F8 f1 ?6 T7 _+ v1 `9 t$ i1 E- u
查看使用率# x4 |8 B% j3 B3 R4 T+ g
凡是%user达到85的都需要调整' M+ s1 G0 H' ]7 J  l
ceph osd df |sort -nk 7
" r* J/ E! o' M; r
: C/ T+ n7 s7 w# o- c* E& k调整权重及调整后查看3 z0 _. G0 i" K/ Z& X' d7 I
格式:ceph osd reweight osdID REWEIGHT(osdid和reweight用ceph osd df查看)) z& X# F% G  a
如:调整上图调整osdid为1的优先级为0.85 :ceph osd reweight 1 0.85: V. P6 T5 x7 F" E( t+ O; e
" \, E: F& Y. Z
注:这个REWEIGHT值 越低 表示优先级越低 也就是说数据会优先往REWEIGHT的上面写,默认是1.
+ o2 r1 S7 t- F& l3 r6 L% `3 v; Z4 N: P. y
调整完毕以后 使用ceph –s 查看 会有一个数据同步进度 等进度完成以后再调整下一个) i1 M( v2 f/ \+ t

, z' I, E" L2 F/ p' \  Y
5 o$ a! B! R4 o& d: j8 L2 b8 U使用率达到85%不调整的影响
% Q' v. q' K. e$ [; k3 T1 T; B( ^刚开始说了 osd使用率达到85以后 数据会停止或者极少量写入,现在来详细说明,首先查看 remapped (重映射) ,具体看图( t' {9 |; F: q9 d# Z6 N' c3 w
ceph pg dump | grep remapped8 g: f( y7 }7 ?

/ }% T" q7 b8 M9 f) C* t& K6 Q6 L# Y" M1 s% W9 r' e1 M

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:

3 y) i4 w& Y4 ?! {7 h- q[url=][/url]$ T3 |/ ]# O6 p8 V
1
, T7 i' _  ]; y21 Z* |( s6 T, p2 R* n! g  j/ U
37 r2 R" B& Z; z4 ^& P) ]: |
ceph health detail | grep stale
2 j5 I- q$ L+ e& [: R  k; eceph pg <pgid> query, h$ l+ ~+ w# {* T, X- L: c
ceph osd reweight <id> 1
; k; S+ k; C/ m" Q5 g
; q: P( H) H/ q1 r
置为1之后,观察到该pg重新映射出了osd,并且消除了stale状态,恢复了服务。因为reweight的不确定性,我们调整权重,一般不调整reweight,让它始终保持为1,在L版之前的ceph中,需要通过调整weight值进行数据平衡,L版之后新增了weight-set功能,可以更有效的去平衡数据。
此时,可以将所有reweight不为1的osd重置为1:
9 {- f. L' i, H. ~) E
[url=][/url]
1 ]0 Z- v7 c7 ~; g
1/ b6 m# J0 |2 x) {; |1 b  d6 l1 Y
for i in `cat reweight_osds.txt`; do setsid ceph osd reweight $i 1; done
8 M3 U' W* J# l& s/ k+ B. J% t! r

( \: g9 n! B/ H5 ~5 Y9 V6 M
重置为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值,即使调整,也是微调
    # K4 s  p6 \4 I0 k& w, i/ }

) I5 @& n2 c7 m$ d
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 00:04 , Processed in 0.017394 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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