|
1. OSD概念 OSD:Object Storage Device,主要负责响应客户端请求返回具体数据的守护进程,一般一个集群会有多个OSD,每一块盘都会对应一个OSD。 2. OSD 状态
7 M/ W3 x" K' x: J. u
) c; J1 ]6 ^% s' E[root@data1 ~]# ceph osd stat
) i' \) C) e2 k/ ~
" U: |% G" h# y( P- 6 m% G+ w) D/ I3 D9 A. W7 `
5 ?% A$ l7 x3 e2 k$ H4 osds: 3 up (since 23m), 3 in (since 13m); epoch: e345
/ {; l( R2 K' K) n2 e! c6 V! l0 b3 @' L/ g$ Q8 ]9 N
7 t+ X; }& P" y- Q
OSD状态说明: a. 集群内(in) b. 集群外(out) c. 活着且在运行(up) d. 挂了且不再运行(down) 正常情况下OSD的状态是up in状态,如果down掉OSD,它的状态会变为down in,等待数据均衡完成后osd变为down out状态,Ceph 会把其归置组迁移到其他OSD, CRUSH 就不会再分配归置组给它。 3. 查看OSD的状态 - 3 _0 N4 ?6 B3 k0 c5 e
h$ O" C/ b9 L# l. k/ |9 G e: {
# 查看集群的osd状态$ j) F5 _2 y" }5 `
% X5 {6 T" m8 } - & s5 ?4 U/ y; ^& t" C
8 q# k3 T" J9 t+ Y+ I' m O8 f# 查看指定osd的状态:ceph osd dump 3
; d5 G7 x5 k* T# I+ z0 l; ^- R1 x8 f' [5 S H
6 e% c0 Z5 D8 t, s' w! q
. z- ?* d+ }% D4 Z6 a
) j- D. O& Q; ?1 r2 ]" g2 \& ?9 a7 w! m& Z
4 c7 U* _7 b* N7 c1 t |+ t
) V/ _6 q2 I# t8 j[root@node1 ~]# ceph osd dump; g& |! L& q$ h7 E( D
3 M8 Q+ I1 p* t9 V+ L9 M2 s
; g) p( R% K. O+ I7 e( \% l; \7 Z4 m* P
epoch 242
& w7 f9 j7 g4 K `' g' T q9 G" b$ R p4 v& r; X) X- E4 n
- , X5 H! k. r# W. H" O" m
: W5 _8 P, {1 ], ]0 X1 e: Pfsid a1001d7b-e11e-48b5-9d18-759aeb238b21
' E( {1 c9 S; E) D
4 ? M' s+ {7 u. ]: ]4 l/ o8 p - 5 v* [. y( K8 O( i k
# V" W" e& M9 d( _
created 2020-05-25 15:25:44.802972
8 T% M, g1 W) _& G$ }: T
) x. I( v. m h - 0 H2 D! w# g( [. N* L) M* j$ k" W. [
& y- ]# }+ Q* ^. c- z; p" h0 W
modified 2020-05-26 13:22:00.626733+ r% [. M6 r2 G G+ [& k6 ~1 R: f
' p% z6 f7 w: V) T* C
4 u: v; H! x/ ?# O! d0 e' V
4 C$ U9 {; ?+ w! wflags sortbitwise,recovery_deletes,purged_snapdirs,pglog_hardlimit
# R' ?: y3 W4 z' [0 ]& {; N3 N; y6 X2 n9 W- F9 z+ v
- 4 ?' L9 ~- [" ^3 S' c" ]
0 _5 m1 U+ b7 n0 t$ }2 ^, @' @crush_version 23; R+ L9 c" }1 N0 E9 E* v5 [
k9 Q, ?: i. l- E! P
- 5 O* O k7 z" ]# }' I% ]8 _
9 Y! S3 ]( b) \. Z" Lfull_ratio 0.95
7 l1 C; N8 s b6 Z! i. _; `8 U6 t+ w
- " P, m; B; K( ^$ z- P. ^) e9 R6 p
: C; k8 u2 |4 o: W! i& g# i0 Y0 J
backfillfull_ratio 0.9" U! k$ E4 k) r: s+ Q6 j1 q- E' j
, n0 Q5 E2 d6 n/ X+ |
7 Q1 w: Q$ N; p; U& ~& p- N( G
9 Q9 A! m$ _) q# H$ r% ~) |nearfull_ratio 0.851 u/ o0 _) {# ]) t1 Y$ f5 |
1 d U* n. \: M1 y5 c
! {+ f" c2 A e) z) O3 t. x- t: Q/ }7 v/ s
require_min_compat_client luminous
* `+ a/ @2 C& T: W% Y7 o9 v _/ c# n8 z4 F
- 5 Y9 c! q# u+ z6 I
; ?' {- }) H j4 Cmin_compat_client luminous
' C- J- [4 z' }6 E. b& Q* E% y! S2 ]! F
, G7 C+ n2 l: m- Y- A( O5 F/ ]7 `: R/ M+ g, t# R
require_osd_release nautilus
; Y d& c: H! U3 n8 u! E
$ s9 W' y+ \7 L% x) t" f8 {- 2 e1 y+ x7 G* \. o( z
/ J- H* Z; ?/ \4 X. S) c- P
pool 8 'pool' replicated size 2 min_size 1 crush_rule 0 object_hash rjenkins pg_num 128 pgp_num 128 autoscale_mode warn last_change 60 flags hashpspool,selfmanaged_snaps max_bytes 214748364800 stripe_width 0 application rbd& ~! W5 }; s" ]4 s$ m, @4 i
4 A8 M( P' d3 l( |! Y3 b
- 3 c& R" X Q' o- X
8 m( l: [' e6 Z7 M' B+ I
removed_snaps [1~3]
9 u% S* M4 E; [3 X4 G* W% C1 ~
- & v& u$ H. x! P2 H
2 C3 F- h2 A2 p" R7 cmax_osd 4
$ f- w: d$ R+ W8 ~
, k0 G" ]) Y7 r) K: q6 r - # ?! E. Z# ]# A$ |5 U( [0 M" a
, c3 Q7 ^3 y& D+ X0 R" d8 Q
osd.0 up in weight 1 up_from 231 up_thru 235 down_at 230 last_clean_interval [13,228) [v2:192.168.102.21:6800/1518,v1:192.168.102.21:6801/1518] [v2:192.168.102.21:6802/1518,v1:192.168.102.21:6803/1518] exists,up 23438b52-b147-456e-8368-7fcb71daf267
$ F3 e: H$ _: S! d8 d$ I, v8 j3 w5 B/ |/ T
6 h0 B2 k- E7 y; ~% P! M0 D7 C% `0 J3 G1 I+ o! @; v1 w7 O3 B
osd.1 up in weight 1 up_from 229 up_thru 235 down_at 227 last_clean_interval [13,226) [v2:192.168.102.19:6800/1517,v1:192.168.102.19:6801/1517] [v2:192.168.102.19:6802/1517,v1:192.168.102.19:6803/1517] exists,up f66ea32b-bc4a-4806-92bd-958b6f291676
0 S" E! F$ a1 x8 M& s i3 v
+ g& r! O6 w( ]& v) h- W
! v' p6 m' A* j. B& ~9 p; k7 K( W9 G
osd.2 up in weight 1 up_from 235 up_thru 235 down_at 228 last_clean_interval [13,227) [v2:192.168.102.20:6800/1501,v1:192.168.102.20:6801/1501] [v2:192.168.102.20:6802/1501,v1:192.168.102.20:6803/1501] exists,up 76ca3ce8-5f01-4272-835b-796881f27f8a
; `4 R6 V2 j! M! D+ t3 n \8 P+ X: V; |5 v( b+ r& c) ~! O
- 3 Q2 G* Z4 a2 Z B! t, W% O9 W7 L
1 b; |2 H8 C' w G* R3 A- z+ zosd.3 down out weight 0 up_from 0 up_thru 0 down_at 0 last_clean_interval [0,0) exists,new
$ V' Z0 ~ [3 D5 t1 Q; Y8 v# ^, r; ? C5 s9 s0 e9 ^1 P- ?
+ A- W9 A! t6 T) h9 N( [
4. 查看OSD目录树 - $ X2 u. L$ h+ Q$ k8 w6 ]
8 j5 Y: p8 p2 N# a9 t, I
[root@node1 ~]# ceph osd tree/ ^0 ~* \/ f) l' c; `
- Q+ m. ?. ^( F/ J$ g
- 1 Q( X, p0 i) `+ l4 `& _9 @
2 R$ t) B+ \# \# s6 B' p2 y3 _4 }
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF 1 [) ]1 Z5 @' {$ T) U
6 ?. @5 t5 `0 r1 a: G - ' ~2 j; k6 t% f& o7 M/ A# D& E
( c" F- X5 t+ ^! B -1 0.78119 root default 1 G% {) F0 B$ a7 r
- n: B% b& ]6 L; S! \
- " b$ J9 H7 e' y# s, ?: w. \* D
5 x1 K D, s# a" K% e9 ?9 u -2 0.78119 rack rack 4 \* G$ ^0 W8 Q; Y
) X6 n4 P2 [' G J' v
# y1 l5 M+ r3 {/ q& Q9 c" Z V" w7 {, G+ u% x
-11 0.19530 host node1
; Y/ C: \4 h9 c6 `5 K6 ^7 ^6 u
8 m3 \3 x( l) |- q5 t
) }7 ~& y% g2 f3 J! L, K
- R$ U/ w( E! l" E4 F4 R 3 ssd 0.19530 osd.3 down 0 1.00000
4 l5 x5 e9 U3 m, K+ p% N
8 g4 y( T( A. R$ u/ z1 A3 c
/ ]8 k' {& ]# @9 C- Y9 F f* d, J. k1 ~7 \
-3 0.19530 host node2 `9 T: X) C, \8 L2 s5 ^
# }' ]$ v3 ]- x2 m
- 9 E. F k) O: v4 e
# E9 Z& M7 |& `- ?$ \ 1 ssd 0.19530 osd.1 up 1.00000 1.00000
4 [ K; W9 A/ B/ @6 c% p: n/ y; s5 T0 I2 t# d/ w! r
- _3 U5 Q: u( N( ~6 h. d, n% Q2 D6 O6 e8 |8 f. p/ A
-4 0.19530 host node3 7 f8 I9 H* F: y
; J7 h9 e9 C( F1 n
* G* z5 A$ ~+ c, t+ |) M; |/ M/ e: K! m4 M
2 ssd 0.19530 osd.2 up 1.00000 1.00000
+ X% L; n/ t- O: Y4 i1 L4 U5 T5 J6 f0 v* A
- : a) T) I- D* I; m, a: O8 c
, i1 k6 H9 Y9 J: F8 f; ]5 B
-5 0.19530 host node4 7 z1 e* S/ k _: G1 j5 W3 E
* A" [: R5 _0 i
/ u7 E# @5 U8 M' K2 G& |- W! q6 |- Q! I3 V- h$ `
0 ssd 0.19530 osd.0 up 1.00000 1.00000
: E; d# p2 P* C v, R
( g! z* S9 E( X" }' r" Q5 Q5 o. q# ^- Z0 `- E
5. 下线OSD - . `- \2 Z9 y0 K( @) N
Y0 n+ ?% [- r: Q. Z4 c#让ID为3的osd down 掉,此时该 osd 不接受读写请求,但 osd 还是存活的,即对应down in状态( t1 T! P4 j7 v+ k( H
1 e# W& K' n5 a& S, K9 o6 W" Q
# D* Z& I2 v/ ]* |/ b/ s$ i6 j: O, ^
- S7 _ ^) e! k- _2 u6 {4 E
0 I& m6 E" f1 K& ?+ S
; l* y# a1 s# p' Z9 n0 _
% Z3 d( s7 J5 r7 _[root@node1 ~]# ceph osd down 0
v9 o7 o, G( Y* q0 N2 f8 M% h" w, \7 H, M
- 9 y7 D- ~, ]& A. O3 S$ V
& X1 W/ R, J' A4 U1 }; P7 R( U2 y
+ ~8 t" _& |7 B# |, r3 k- L+ S- _/ t& e* W% s: b. V; F
- # ?+ Z* n! e- y1 M7 v& D6 G( _! e
9 R0 p' u# g1 N+ {. U$ i[root@node1 ~]# ceph osd tree
! c. N; q9 R8 r5 B7 q% o1 S v: z) m, H5 A [5 \# M9 R) \; m
- 8 D4 M& O/ B6 M# B* w
- d4 }% q( T% C. }' yID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF 3 _& H$ x5 D E/ F$ b
; }2 K2 m' S* U Y6 Z& u9 O* x7 {; \
$ I; @2 k( T1 J6 G" s
3 `* d; N* r% d -1 0.78119 root default ; ^) @+ W9 M, M6 J+ Q9 N* ?
3 Z* g; Z+ |5 H1 p. l
" @( j. p% D- v
2 ?7 j" S6 b7 b4 ? -2 0.78119 rack rack
* R1 y6 [1 l+ s& L+ D# c) ?- N% c) K3 f1 a; ? H7 T- }. E) w
0 R1 G% r" N h6 c5 k1 T! K+ ?
: W2 B5 ] N! }5 }-11 0.19530 host node1 ) B- b- j. D$ ^, h4 W% V
2 ^5 j/ @- X7 E7 r: Z; N3 f: v
9 \: [( ?5 W3 G) J |6 I' V4 ^
z7 N' [, W1 X7 O/ n* j 3 ssd 0.19530 osd.3 down 1.00000 1.00000 5 [; Q _+ k9 p8 A+ o
' t3 h g1 B; e7 e- }& N* y( V1 P
2 d% o! x: X$ M2 X. E+ |
5 H% U8 z1 T7 h) t -3 0.19530 host node2
* W8 W% p2 r H* t9 o) `7 S
' g& }! W" x3 I4 g; j, q. v
: e& f( j6 W, I( G
1 w( u& @" p% b( J/ G. z% n 1 ssd 0.19530 osd.1 up 1.00000 1.00000
4 c2 _; e" i: e/ B6 K& ?6 k; s0 T/ ~( P* L+ J9 h
- 0 T0 l- ]' {8 F3 W v# J! ^
% l7 Y7 K* V/ P+ u' R$ S7 T' p! y5 ^
-4 0.19530 host node3 ' F j# I U' f9 z2 Y
Q, i- }4 ]% y% }" _
0 L- D$ Q3 _/ q$ i6 @8 E; |3 V+ {# E! d/ C
2 ssd 0.19530 osd.2 up 1.00000 1.00000 ( |# c5 W! j7 N+ h4 Z; k
, e4 g6 m7 |7 _8 B* e- o1 e
( l! a7 l$ [0 `3 X% K/ P/ s3 c \
! U0 I2 e4 h0 p9 b9 |; W! `1 A -5 0.19530 host node4
, S( c. `6 S9 T0 G! |- y) |/ }7 N8 z9 |
- & q' V' h4 I/ ^* c
. w( p4 m5 a5 @/ z3 T
0 ssd 0.19530 osd.0 up 1.00000 1.00000
$ p) t6 [) I' {( A- p2 k4 i3 ~8 h1 G0 t. m2 O2 ^& p
5 p! v' ?7 [: Z4 V4 O4 w# |8 n, Q
5. 上线OSD
) |( G2 _1 E* y4 R
2 L# Q9 Q0 V- U$ ^! z8 o5 r#让ID为3的osd up起来,此时该 osd 接受读写请求,对应up in状态2 @. n Z1 D ~1 D
- @6 e- D$ S" A; Q1 ~1 ?
5 ]. N. C9 X) q7 L! v' @9 I% |6 d z0 k5 m$ C9 f& v0 ^
' Z2 y9 Q+ c; X* P
0 t* r7 ^) k3 l' \; S, Q
" r3 W. z/ l) n9 |$ ?5 }6 c
) t% Q$ s& U3 H9 `) O[root@node1 ~]# ceph osd up 31 Q- l4 C4 x/ {" ?- v' }' Y8 v/ M
) w; O- |0 ?! I; l; e
& ?4 x/ ^' [0 L' Z0 P- g$ Y
# f* L2 h1 {7 e
0 G, n0 U6 H. P; T5 R
/ ]% x# X$ C* i/ _- |" ?
6 m& q. |1 c' G5 V3 Y) y$ `7 o$ \, ]' b# f
[root@node1 ~]# ceph osd tree
. c8 w" R( _- ?# a7 P. I! F/ ]3 G: y
" e6 D' F* }; v& m' i R- $ p& ?0 X* `: J* B. @1 ^' Q
2 {+ A' P' u; c: e8 ^$ p& z. K" N
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
" g0 H$ A0 ]" m! q% Z2 g, i, u
7 N6 h% `0 a$ d! d2 P9 c - ! @7 R i- ?+ a+ L& o$ u% w! x
2 _. O0 P" d# {& G
-1 0.78119 root default * F O8 C, y& F2 u& t
% O4 j4 A* I6 W
4 F6 c. O! [( P# g2 m
- m: i% d- Z/ p: H6 Z- b! | -2 0.78119 rack rack $ I$ `3 i, F3 ?4 ?0 h
$ S$ V6 ~! s. d0 G Q* {4 m' n
: U c* r$ l5 T5 S
! p N0 b% K- D6 |+ j-11 0.19530 host node1 7 m# _6 f+ Q9 ~ ~: u, `9 M; g2 D' v" h
4 l/ k8 M2 V: [
# D: l. W N" ~1 }/ q* X1 ]
0 h) B# V- K3 i' J) r 3 ssd 0.19530 osd.3 up 1.00000 1.00000 : u5 A0 B4 K* }0 ~0 m; H
, {. L" T# c# G" y, c5 P, u
- 3 D$ z( r ~+ v
7 _1 ^; n' B& D -3 0.19530 host node2
) P6 B g7 f. i/ P5 h5 p* g) G7 F) @5 U8 C4 V6 K
- * B; |8 \6 |$ w: x5 Q
+ Y2 c1 g, N% e' O: J 1 ssd 0.19530 osd.1 up 1.00000 1.00000
' X8 Z) [$ O; C. t/ N9 R& m t
) I9 b! U7 I" n" S0 l. k6 W - 7 u) `- ]5 a7 \- O
, E4 G& ?8 O' o" N" J. e -4 0.19530 host node3
+ i. ^4 V0 L1 T! N+ {6 s1 M4 K% e5 r, m1 h# n% b6 }
9 I$ t6 q6 A* ^. L2 b t/ t+ C) K9 T( ~( b! g: F7 \
2 ssd 0.19530 osd.2 up 1.00000 1.00000 1 D5 R) K* J" i! G. B+ K7 ?
4 L8 v- Q- ?% G, z( P2 a. b" W- 2 N V4 z- c0 O' _4 t. u
$ g; }1 }& \' ] } I -5 0.19530 host node4
; ?0 [& q; e1 b, [( X, m2 @2 X, W& E
]$ x3 `5 N; F7 `5 \+ ~
, B+ D7 Z4 T$ b 0 ssd 0.19530 osd.0 up 1.00000 1.00000
; S$ O5 f) T7 I0 {# W
+ |! T, u* l0 x9 G F
% }% c! T' Q1 ]- Q8 `" S5 k6 W# V
6. OSD踢出集群
' q( t5 G& v! b( u! T5 ] {
. b ]' _# x8 T( c#让ID为3的osd踢出集群,对应down out状态
) X u/ k# J! e& e
% F$ | j) q" M2 T- & Q/ b8 F3 w/ _3 B0 d
# e0 ~% g% N3 \' a6 X) Z2 h
5 W8 C$ W$ g& B) |$ d0 U+ v- t1 E7 s" K- g: o* }$ Q |4 V6 U
( f# V# [7 y/ _ C3 X' }* J) q9 j! m! @: k9 O" x: s
[root@node1 ~]# ceph osd out 3
: d: m) M4 l7 n. F; A7 v) U4 P; ?& w7 ~+ \7 p9 H
! x3 o5 \7 P5 T- J- l
7. OSD加入集群 - 3 a; o/ H% Q: `$ K
' @2 u2 o: J+ o#让ID为3的osd加入集群,对应up in状态,即上线一个OSD& T2 _- o- H9 l& f/ G+ O
( l' y5 K+ S/ T' ~# \ - " Y( z) i! S5 b* ~$ T
* s$ B$ F- ]0 I+ d% i5 a
. ~5 i& {" [6 d( x/ S
( E+ Y. X# Y" [/ d% D - ) z* [4 }, T9 J# Y/ Y- q' M p
' {8 Q, O( o% A4 [[root@node1 ~]# ceph osd in 3
?" K8 H+ h, v2 A! B6 k( q: E, l7 a. D$ d9 v5 [* G
, `1 a" X7 ~* Z1 p! o+ Y3 t6 s
8. 删除OSD - 8 M1 L- S% n% t# P5 {" G
1 ]: A3 d; e9 s% t- N2 m& q6 H
#在集群中删除一个OSD,需要先停止OSD,即stop osd
: e. V2 { B, I6 V% E. Z/ V; r, A1 v5 d' A1 B5 i
5 S5 h; [* q- N5 r1 Z9 n7 B2 @) D
9 l3 Q$ [+ i0 m& N
& n6 L8 q9 E4 |5 ^1 v
1 ~' e* `- H0 e
& a o9 {* E) B7 t3 q% e[root@node1 ~]# ceph osd rm osd.3( {6 p* V0 o( W' g
! y# I8 Q) u8 {' U7 ?# q
6 @" {% p; m$ }* k" I
9. 从crush map中删除OSD
$ T2 s& }: G8 j2 c2 P( J
8 A: `) N7 S& `. r- R2 k#在crush map中删除一个OSD0 A9 Z& l+ \; C4 S1 P, n/ o1 v3 g
1 ]/ c% ? s5 {1 T
4 b3 i1 Z8 `: \) X% {
; G9 [+ g. r' V. }" [1 G) B; Y& E3 }% F$ P
2 Q$ Y% x4 {& ?7 C
2 x! X& Z M. t7 E# R% y( d
4 d% R/ v4 q( R8 ^4 }- G4 J# X# J[root@node1 ~]# ceph osd crush rm osd.3! [; m8 ~) g7 }; T: @
( a8 D8 P* M9 T$ ^$ F0 Q, q7 k8 B3 Q6 A$ a
10. 删除host节点
) f1 ]9 v4 ^5 h* Y' D# t* i4 Z6 l" V& w, e: y2 F/ R' ?, D: S$ x" a( m
#从集群中删除一个host节点9 q l' A+ c* v Z
1 ~9 J4 j" Y/ A7 ~5 c4 \- + l" P; H" M, p' T
/ i! `9 |, `1 O+ V/ P4 B
; R1 w4 O2 ]2 B
( V" o: X7 M4 _ - 5 s$ i9 ]" L7 `! i7 n/ ?
3 v4 G6 x4 d; R! g2 P9 y[root@node1 ~]# ceph osd crush rm node14 R8 E y7 @8 g5 c
* u5 s3 j+ s- V4 W* J
5 E+ g# U# N( I. h4 g* V7 h) T
11. 查看最大OSD个数 - 3 P/ @9 X4 V% |! s+ P* J
/ n, V- `4 R) N) @5 R- a5 ~3 A( w! \
#查看最大osd个数,默认最大是4osd节点: ^2 t+ ?+ A* u7 |
L6 L7 O" f; l. w. ?9 _
$ ?4 D3 S8 f* d4 H O4 M& S6 x/ c3 D/ u5 _
& m6 Z1 r* J |4 p, h& R$ G1 I9 n" J) L* T
- / \0 l) Q& [8 y# [7 a b% S
# z" s) S1 I$ |7 A) I k8 F8 \: |[root@node1 ~]# ceph osd getmaxosd! N X5 \3 \+ d+ R! H" W7 Y* l9 k
[! p/ C2 M1 m4 m
! Q) X0 K4 e6 P* h
12. 设置最大OSD个数 - 8 A) q+ c5 n9 B' r1 s) E1 C
8 M( j+ G9 J* k, ^$ L: V" _0 Z' w#设置最大osd个数,默认最大是4osd节点$ m$ P1 p) G: Y, P9 Q9 j
" U. O! x' c. h+ z
- / @# D, s" O$ o9 g. }7 P( r
* j' V: |3 f- F4 j# ?" \# a0 M7 a" ]% \6 T$ o
+ M4 K; @, E! t" l: _; R
- 2 w0 o) D% T/ h2 e
# l$ Q2 e* ~* ^' i2 J* i9 ?: P3 ^
[root@node1 ~]# ceph osd setmaxosd 60+ `( F2 p$ ^& r* a
2 l! M0 H! M6 Z' E/ |* f& ]+ p6 Y8 G& n
13. 设置OSD的crush权重 [root@node1 ~]# ceph osd crush reweight osd.3 3.014. 暂停OSD
0 B& x3 {' }, B8 |; }
/ X4 x* J; \9 P. i. r8 v r#暂停后整个集群不再接受数据$ S) P$ _+ |# b9 F
: }8 }+ w# i4 q( S; |- _
/ C N) L4 `' \8 m" `! C% }: u% f5 ?. g( |* M1 X5 U& k
. v6 t8 K0 M+ C
4 Z2 J( |8 v, v3 s& ~. P7 l1 C6 x: ^- ; ?, C9 s6 b, ?/ G
& j! u% C* k$ ^: \
[root@node1 ~]# ceph osd pause
% ]( a$ q6 Q4 H
, Z0 u" ^6 p) T) p* u8 n$ i7 z5 ~
15. 开启OSD - 5 S( B- _3 o' b3 ?: z, W7 ^- f
8 h% a2 W$ s3 V/ U) u) s#开启后再次接收数据
! ?/ _9 l& ]; k/ ]9 r' u7 ]( t9 t+ p, C- P! C# H, j/ I
- 1 M" \6 |: m- u8 I) B: n0 l2 E2 ?
( b0 U# g; v- s! w+ _% u/ f! d6 s0 |4 e+ F" B: B/ K$ q
( Z6 {$ T$ ^, X; y$ m
+ m. Q. a* a+ M0 a% f( p
; i; o5 Z& z+ k! p6 S, T6 n[root@node1 ~]# ceph osd unpause7 M+ D. \ I5 e5 @5 I1 A# ?% _
9 t) @2 Z* v4 ? O. z
. n7 i# H$ [& R6 j: o I; E
16. 查看OSD参数 [root@node1 ~]# ceph --admin-daemon /var/run/ceph/ceph-osd.1.asok config show17. 查看延迟
/ L. k- d3 `& Z* U1 f3 b( \0 ~1 Y# l7 Z5 }1 O+ d# E1 k) {4 {7 W
# 主要解决单块磁盘问题,如果有问题及时剔除OSD。统计的是平均值 T$ S8 l% A s$ o! c: s
. I6 D2 m8 H- Q4 M) i: n4 K. e- ~
l. R8 B( C0 d& d( S+ x9 P' K2 Y, W% b4 o
# commit_latency 表示从接收请求到设置commit状态的时间间隔
+ x- j$ M& h. \2 e8 I; O& N3 y" J0 ?
! Z8 X5 p2 y9 s. p$ F5 V* Z6 ^% X0 h1 G
# apply_latency 表示从接收请求到设置apply状态的时间间隔. w2 E) |; Q# f: t* ?
( i1 A; S+ O& c7 e" q8 f- : Q; _9 ]1 b- p
1 J' }2 m4 C) ~* o3 a
" H) a; ^/ O3 }6 H, g* i: M- u. o
- $ ~& [) w; d3 J; V, K
; \% o' W; H5 m" c- R
[root@node1 ~]# ceph osd perf. D+ ]% C: Y9 r
1 }+ `9 Q& y; x8 j0 ~; N - 5 Y$ S5 M0 A; d2 G9 M& t
! v% O+ h' o1 P, Oosd commit_latency(ms) apply_latency(ms)
8 {6 u# h% x8 _. X( p& F5 l0 U, \2 ]. B; }
$ Y( u- n3 |; m& `" H# J& M% B$ {# j; e* a
3 0 0
' c R$ l5 V3 i* v* V# S" `8 k+ j& d8 n3 k
( C! w/ U! h- q5 m6 }* Q6 P6 Y
" K. W. R8 [" G1 \# c) |% p$ k0 p5 Y5 ? 2 3 3 ' J: I6 d# g+ s4 U. _5 e5 W
+ S$ a% V$ c2 C/ s" w' P& D- & g; X1 A# i" E/ A5 S$ Y8 _
( r# W7 D9 o, u6 } d
1 4 4
8 G3 x) X4 A8 ~( Y0 N9 I1 q8 ~: Y# w8 R* }
0 D& B( P6 z1 m8 p+ l0 Z* e) n0 ~+ y
0 3 3 4 F3 }$ ]$ n+ O2 H& E, _$ m: s& ]/ ~
- g4 p5 g, t/ I. ^9 O5 X
$ ?. w( `5 ?3 @$ C, ]
18. 主亲和性 - ) d! b0 e) V- Q1 q
2 D* w6 D* b. Y) n a# Ceph 客户端读写数据时,总是连接 acting set 里的主 OSD (如 [2, 3, 4] 中, osd.2 是主的)。
7 h, J. k+ k! C+ I2 y3 m' [9 L6 a8 B) C
4 S& H: Z' Q3 m; @% b! r. T) D9 J# @
# 有时候某个 OSD 与其它的相比并不适合做主 OSD (比如其硬盘慢、或控制器慢),最大化硬件利用率时为防止性能瓶颈(特别是读操作),- u4 b* Z' m! Q X* M
# F2 a* Q: A$ G8 |
- & m8 M0 T; D6 ~8 O
0 C/ S) L, |7 d* P7 [# 你可以调整 OSD 的主亲和性,这样 CRUSH 就尽量不把它用作 acting set 里的主 OSD 了。
! @; E; ~, n/ c
( n& R% ^ H. [ - / j/ q$ m5 f( _- d2 P/ h
+ b* H( e' D: U9 t
; L; |/ q: R! B, H6 C7 ?
! ^% s. l* Q: j - 7 H# W9 z3 D& A, X4 v5 Q* r
' k7 z( e: M4 Z; r" _5 \6 D* G' f6 G
#ceph osd primary-affinity <osd-id> <weight>
0 T, l% P) c( T* L3 \
1 U; i9 l+ j: a
! n, i- i) P' I8 o
+ z6 ^5 t8 a' y" P
+ i# F0 p: z8 i' E
( F- p& B2 i; V' U' p
7 [+ ]5 M8 `4 p5 ?- m3 p; o5 L2 b; u/ B) G! J. E
[root@node1 ~]# ceph osd primary-affinity 2 1.0 w& o( ?# q! P# |$ Z
6 [. @) i: j8 @9 y/ U' q
' N% \7 G" V3 P4 j: K* ?6 A5 N: r
/ B, [! A k6 C* t( i7 U) \- }
/ b5 c) g6 {3 D1 F. N8 r. m P- A
( B" o$ }& b9 M# v
$ L! t) h* t; `9 o4 G
b/ H! s# E/ `5 C& G5 F% \#主亲和性默认为 1 (就是说此 OSD 可作为主 OSD )。此值合法范围为 0-1 ,其中 0 意为此 OSD 不能用作主的,#1 意为 OSD 可用作主的;此权重小于 1 时, CRUSH 选择主 OSD 时选中它的可能性低
8 |: h9 L& N, G, i; K
_( R6 {6 e3 O: h3 ^; p+ V& \9 I+ y
+ ~7 ~" W/ p! e: {' j
19. 查看osd对应盘的利用率 - ! B- K, N. ~, \! u
) w' O$ e- X3 |9 A, L; q[root@node1 ~]# ceph osd df
: v2 i' ?0 ^9 @1 \6 V! q& d! s2 h+ D6 h0 V- F/ J0 \+ p( q+ M
- 7 H+ ^+ ^8 ~* c: t; h. l
+ h- |8 E7 |3 n% p+ r
ID CLASS WEIGHT REWEIGHT SIZE RAW USE DATA OMAP META AVAIL %USE VAR PGS STATUS ( |% t$ H6 `% [, ^: `- M# S5 T# q
9 ]4 e6 o$ U+ L4 x
- 4 z( w! D+ K( t- q' _1 ?
7 [; E4 b. C/ \ 3 ssd 0.19530 0 0 B 0 B 0 B 0 B 0 B 0 B 0 0 0 down / i/ K7 _' y$ M" F0 w+ P) I
; Q8 i u! H- H; b" B0 N$ E7 o
9 _3 u$ ?4 k+ W% |' `+ B
# Q+ |% \& q- o; [4 }- k' A 1 ssd 0.19530 1.00000 198 GiB 43 GiB 39 GiB 39 KiB 1024 MiB 155 GiB 21.88 1.01 189 up + w: j7 {7 z& @8 M
( }1 ^( f, K5 G& ~& a4 |
- ' U, }3 g1 x% n/ N/ z0 J) }. J2 m
, S+ z3 C+ d7 q% A9 q. K) r
2 ssd 0.19530 1.00000 198 GiB 43 GiB 39 GiB 48 KiB 1024 MiB 155 GiB 21.60 1.00 191 up
. M* S) |% S! y( A
$ q0 q( S; ^# G0 {8 m1 N
; w T& p5 V0 `& T1 p
6 M" Q, J0 L! @' x( G 0 ssd 0.19530 1.00000 198 GiB 42 GiB 38 GiB 41 KiB 1024 MiB 156 GiB 21.20 0.98 188 up
1 _+ j1 v( O' i2 }
$ P) N$ ~. `, R7 q; Q5 N; B- % N+ k _ ` ~% d+ A j% G4 m
$ m1 ^+ S3 D1 j: q* r TOTAL 594 GiB 128 GiB 116 GiB 130 KiB 3.0 GiB 466 GiB 21.56 - W, e" t, G0 g! i
$ P4 A6 j) |0 d0 Y! E
- # d+ P4 A, l- E/ C3 w2 S# w
% t* Q# e! y( t4 P( a& }/ D1 i
MIN/MAX VAR: 0.98/1.01 STDDEV: 0.28' }" O+ E8 h# W
* H& l; Z* v/ K0 c/ V4 u6 m0 W
* J- O: K! n% }3 Z7 G8 Q
20. 提取crush图 - . N, `, [4 G: P0 I$ x a
) q5 I3 ^2 U- [# 提取最新crush图5 Y' |; [) Z" B" |! Y2 h7 B
% [( l1 A- G2 t( j" t$ t
' n( n. W+ c. k( i" |( M$ l2 b" ]) V' A7 K& s. C o8 e, K
# ceph osd getcrushmap -o {compiled-crushmap-filename}
# ]1 r- p, w$ j5 N5 O6 K- b( W5 y2 U& B5 }$ L" K, ^
" Z( o) m8 x, w8 q9 G& T2 ?8 T! R k! b* o5 `
/ i M9 Q. B) W. F5 |7 H9 X3 B' t: U( H
- # \# g2 T; N! `( v" p
' l, X% z9 C; N/ z
[root@node1 ~]# ceph osd getcrushmap -o /tmp/crush9 s A- w+ v; {+ N# q
( ^ i* n! |1 }$ j - ( k/ F" Z3 U0 F: U" |! i
, ]* _2 d% `& ?- T! m. R: D
1 u" z/ G& W2 v
: J8 t* o5 q4 W9 A' h2 s2 ^7 C - / y, T; i! ?9 ?, X7 C8 j
0 T' Z7 Y/ r" V: a- w- |$ u1 U' b
# 反编译crush图
. k) I% v( ?! D" u& t' s {0 ?" p, K
- ) F, F* ?, ~& j6 d% s/ o& v/ M6 t7 f
9 i% U- l) I% v# }$ H$ u5 U# crushtool -d {compiled-crushmap-filename} -o {decompiled-crushmap-filename}
. h( ~7 V) C1 R: Q
0 a1 k9 v2 l! d* x
. k; o9 s: f7 |5 f6 `) ?1 z! s1 F9 G+ y+ ]1 i8 q
[root@node1 ~]# crushtool -d /tmp/crush -o /tmp/decompiled_crush. E$ z2 U/ ^) G
0 S9 p; [& s. l7 ^$ O. Z* r# c; z# j
; b3 T9 u9 p9 Z7 z( R- i
21. 注入crush图
; f$ t/ Q. A# o- q1 |6 D' K) d6 ?" x
; I7 @2 u9 \; n. }+ z5 n#例如修改故障域host为osd,需要提取crush图,修改故障域,然后注入crush图6 D# m/ r/ ` [2 |3 U& i% w8 k
/ h0 s+ q$ p. N* x' h5 s
$ o+ R% W9 H5 b2 v. @8 P. x/ l% G/ A! i
. u |- K/ ~- F) b# M
F4 ]2 v2 `$ K, ^ f# Q& @5 _- & Q) _1 E* J9 ?: V2 L" S
8 M) Q- f" q& z% b- f) ]' K# 编译crush图
f8 i C$ X& \: A, x& Q2 ^2 ?0 [6 V9 R( ?# Z- h
- ( o! F+ X0 j3 ]# B, G
& U$ [8 ~( [% b6 }5 R; H8 o
# crushtool -c {decompiled-crush-map-filename} -o {compiled-crush-map-filename}5 K% x, q# s& w/ Q- K& B$ i
5 m2 W9 Z* C( n+ w; N
, C( w& S8 H2 M& D) P% y0 y9 \3 j
: ?" g7 |5 B, D0 N- a% R; B
+ _( H+ A2 G+ j% R7 Z; Z+ C1 ^- Z$ G
- 7 W% f5 t2 l. h7 Q ?, H5 L" f
8 I- E: C' q& v& }' x[root@node1 ~]# crushtool -c /tmp/decompiled_crush -o /tmp/crush_new
+ c! |7 H& A5 F. L/ x. m. |9 @% y. T* P' X' {3 s% Y
- ( F5 O: ~; F7 b( D) @
6 }* h, b7 Z# w b
; |& d) ]& ^. h( x3 w w
8 j# \% F' f7 d5 _% f: @
! D9 c6 ^. {, c4 j6 E6 C
( X: Y4 _2 Z7 I' w( @* x#注入crush图4 E1 u( @$ T7 w5 W% z) ~
/ @! f; |" a Q. J- $ g- s! o$ x0 E: T
Q% T5 y& \( q+ U
# ceph osd setcrushmap -i {compiled-crushmap-filename}
2 P3 u% }3 q8 _% d$ r5 f9 i
& a' r& ]; N4 A - 5 Y4 p# N" n% L* v' x
/ _/ e1 H0 i" X7 C4 t
[root@node1 ~]# ceph osd setcrushmap -i /tmp/crush_new
9 @, i" O% i) g) w( T2 w- h
7 L2 L J! d2 n& q! v; f% z8 g9 v; W- y7 q
22. 停止自动均衡
/ l: F" h5 y4 ~" f+ |3 u
8 P2 Z" E' p1 i; C# 在集群维护过程中,如果某一个机架或者主机故障,而此时不想在停机维护osd过程中让crush自动均衡,提前设置为noout) I) I8 e1 e3 J$ I) }7 s0 H+ P
$ I" A2 J! L1 W: E
- . U4 [9 Y: |! Q7 O' S( \! l% G# j
+ f5 i2 m9 A2 P' W$ L7 m: D' E, R! m C5 X* Y( z
# _7 E/ O" l8 A3 e - 1 n7 N5 |3 ^# g& @1 ~
) \, ]: d9 l1 F" v[root@node1 ~]# ceph osd set noout
; \3 y5 I T9 O4 g
& H. i7 i9 |7 j3 A) k9 ]' b4 v7 d, b0 p) z: B( r7 |9 p8 K
23. 取消停止自动均衡 - + i5 s) o I) V+ t0 u( A; B
z" \- U7 A3 S
# 取消停止自动均衡
" X. y# n1 c0 u2 A- K3 _5 K* H) g1 ^9 J x/ T4 k- O9 {5 [, Y
- ! x. a$ O. c' `) h
6 a9 j+ }# J! d% ~4 i8 t1 ?' Q
& h2 R6 H; e+ f$ k0 X* X
2 j$ B1 m' r; S+ _
, Y6 N' ~) ]+ G; g c
5 p L5 i% I5 `0 K& ~[root@node1 ~]# ceph osd set noout9 c* U7 K a# C# P# n T# i$ g
, i* Y9 v; V/ i) ]! c
5 Y; U5 F. j8 N, ]. K0 K; `
24. 删除OSD的痕迹
- F/ k5 v9 n" ?; w+ x( O1 I9 F
) X/ Y; v1 B- M# 删除OSD的所有痕迹,包括其cephx加密秘钥,OSD ID 和crush map entry
/ B. n4 x3 ]! ?9 ?2 V; |
) a& N2 M4 N& q! S
% ?, R9 [% c0 G, U% B4 F
2 k$ ?& X( x2 M/ a2 r# q2 W# D& m3 Q3 x9 V3 F
, Z9 X; [. ]# J2 R; F) f
2 J" R4 M7 Q2 h4 j5 w, r
/ F8 l7 M9 [) {+ X" {) E3 B# C$ y/ m1 ~8 t2 ^: T& _
, _' [( f. `& W; A1 |9 I0 [% ^! E- / Z. g; y* m+ z F2 X1 N; k2 s
6 Q; D" K% P$ p8 T
ceph osd purge <osdname (id|osd.id)> {--yes-i-really-mean-it}, b' U3 l9 Q7 G
% Q- f4 J- q+ G
$ \7 A: ~8 V; g- `( i9 Q: t. F. x/ {7 z/ C* }
& Z' b8 s/ j) p' _) }& I% W2 ~
* t% `+ N' l7 ^6 ?, Z3 D6 O. Y" x/ e# Y1 n" h1 _
[root@node1 ~]# ceph osd purge 1 --yes-i-really-mean-it$ Q B0 w% U. j
& A3 A9 V0 L2 v- @% r5 [" c
* |: L3 z- w {8 @6 `6 T, x5 ~# ?: S
; I& @/ x2 ~, q! W. ~
% O1 [% K1 e/ s" @/ t' G! R
% ~! F) s O9 G+ Z* ~3 {- . P1 R" W) L# {0 F2 }; E
' B) H+ y. R, D$ Y* u, b1 p8 V1 A此时osd已经不在集群中# F( y9 q" S4 D
. I- L$ c* H- }
7 z; T" U# Y9 @$ l
$ U! ~" J: d" ^; V& O
5 D2 i# S5 ~8 H" W
; N+ d/ E- J' q
# w. }" ]% U8 d3 M! G
' M" t% B' @2 i& M[root@node1 ~]# ceph osd tree" @' O! i, W9 a# M& i# j6 Z
8 O: d9 ]/ L4 N$ }4 w
- 5 s, I) X+ G5 j( F B
+ V! b# f& @2 V- y6 f
-1 0.04799 root default
: Y0 {. n7 }( {2 g" k, t& ?
1 O( |+ o: m0 d0 m1 z - 6 f! N. I: s, _; `
1 O% |. R% M \- N -2 0.00999 host luminous0( L6 z+ E) G2 X0 T( {/ a
! C) n0 \( e G2 W+ c# Y - & d1 P4 f1 C# C( E8 ]7 Z$ n
% K+ {& y# G( J: o
5 0.00999 osd.5 up 1.00000 1.00000
' n) c5 h) Z9 N( H7 y4 H ^, E8 l* R7 W
* j" r# w' V6 V7 i. \$ ^
) c" C+ x6 N$ s: w -3 0.01900 host luminous2
/ h1 l `% J/ ]3 c0 D
) Q9 Y, t' j5 n+ z9 l6 {- ) T$ A' R/ G& [4 {
3 s- Q! i& W) C. X, W( E+ d 0 0.00999 osd.0 up 1.00000 1.00000- V- n$ P4 }$ C2 P! W% V. J
3 J; O" Y9 j9 p& y* I' X' Y
# L1 w% B, O: H1 u: n5 U& F9 a* z; V
4 0.00999 osd.4 up 1.00000 1.00000
* ^1 X% O" @( L; c; S; k1 U) h- g* r: S
6 G$ N3 J& |' l' {4 O1 i, E
& |, g$ G& z3 i -4 0.01900 host luminous1! P& Z, R; R0 I
t5 H* z$ x3 M$ O+ b* [
- 9 J' X, Z! ~; C( C) A- |( g: s
, T3 W) O5 l- |. w0 o2 Q1 V$ ]7 B
2 0.00999 osd.2 up 1.00000 1.00000$ A% ~) }) s8 r" h) m- \! ]
* w6 m" L$ c8 |7 ^ - / [/ t9 ]- A h
" x6 C# W: m" x& S; d' Y) u 3 0.00999 osd.3 up 1.00000 1.00000- e$ b8 e% Z& w& T ~7 Q3 `' Q" K
; g6 p) L$ x7 p8 c
. V$ ]+ u! `& E& e/ e4 d% l- G
) V" ]4 C, n1 a
; v: X( @ r) G* `7 a |