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