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