|
|
楼主 |
发表于 2022-7-22 08:35:49
|
显示全部楼层
root # ceph pg deep-scrub pgid) n' N; H# e; }& [) j/ o
; D2 q9 T3 o) d
+ N- L# B# ~% _5 h
) N }& {9 D+ ], @9 y
提示7 R, R6 `, E+ A* E# a; N
7 g' W n: D5 e% X- k7 f如果之前为您的配置或密钥环指定了非默认位置,则此时可以指定它们的位置: a6 e( i8 l" V/ s& H" @. [
# h, {2 j8 K- H$ p1 W, Q
root # ceph -c /path/to/conf -k /path/to/keyring health
& L- |( l) N# q0 U* ?$ m4 A* M1 A2 k1 _2 d3 O! [2 G8 }
4.2 监视集群 ( z8 V5 n" ?7 G# m: O% F% J
9 B; K) H1 p9 y: f/ y5 m- t
可以使用 ceph -s 了解集群的即时状态。例如,由一个监视器和两个 OSD 组成的微型 Ceph 集群可在某工作负载正在运行时列显以下内容: M2 {" U W* k& o9 _, m
9 K8 l- A+ G+ ~. g7 j* D) S9 ~cluster:1 _5 s4 H3 p" _& d) q6 s
- |! L* h) p, R8 s! Q8 u5 ]
id: 6586341d-4565-3755-a4fd-b50f51bee248
- o3 s: T: H& w( V( d0 K; Q
% ^& b" e, R, u" |2 X: ?+ o health: HEALTH_OK; p n6 A# H; V# ^
% y6 |1 X1 m3 r7 p) Y0 p* u
0 Q! }! a& Q5 Y' ?+ z
; X$ T! h: g l9 }4 A) lservices:
+ } R i: L9 A1 Q
1 U6 J8 @ S0 g- @+ `/ ~, K8 W mon: 3 daemons, quorum blueshark1,blueshark2,blueshark3
' e; R1 w5 Y( q6 W$ U+ d/ L2 u" ?( u P
mgr: blueshark3(active), standbys: blueshark2, blueshark1
; g {& G, B! N9 e$ }
/ L$ F) \9 A8 K/ t. T4 h osd: 15 osds: 15 up, 15 in: I2 ~! I, v( H( }. j5 L
5 }- K8 N6 o1 b* y
+ b; K* ~4 i0 l
( f% U _* S0 \5 E( n @ Edata:
0 c! W; v. v7 u" ]' s* d( ]5 ^$ I. o2 k+ j
pools: 8 pools, 340 pgs& Y a; g g* d: |' q {7 [
4 S* U: ~1 r+ I! v objects: 537 objects, 1985 MB
& D, B8 E7 D; [0 k9 d9 M0 M& W7 L
( A7 A/ U3 E# H- V4 e usage: 23881 MB used, 5571 GB / 5595 GB avail$ [* J3 `4 P/ ]- B& x
! W) z9 |/ e% b4 E7 e' Y pgs: 340 active+clean$ @. a$ K/ f: ~0 s F8 K4 Y! o
% u1 o$ L2 B9 S" u4 `% z* y+ @
& t( w: P& g% R8 U1 X
) |; O* l0 s& oio:, g: ^, p1 [9 q) H- `; H5 S, |) s
8 Y; w2 {: l/ k/ d
client: 100 MB/s rd, 26256 op/s rd, 0 op/s wr
7 b. G. ]4 { a! b1 K% A& C j" T( } a( N3 A R4 R; c* _
输出内容提供了以下信息:: U8 ^; `; p1 ]6 m7 ?6 w; t
( H3 W- h/ c: [% ]5 ~5 T. C1 n# L集群 ID
2 J! y4 [0 J9 L' U2 q' W* S( \5 t- y集群运行状况
; f- l) D6 W) a& u. ~- F9 F监视器地图版本号和监视器仲裁的状态
1 A) t& D; B& h* mOSD 地图版本号和 OSD 的状态
' |# x7 a' {5 o! `0 f归置组地图版本8 o; k2 x( u! i) g8 v7 o
归置组和存储池数量- G( O5 _1 v' R, d+ a3 ]9 g
所存储数据理论上的数量和所存储对象的数量;以及 L! I/ ~3 W! e7 A0 Z6 W, X) }. w
所存储数据的总量。
/ M/ w7 g/ N7 ~% w0 E
2 G% Y% `" Q: |0 ]
8 {: r" n/ W2 G提示:Ceph 计算数据用量的方式& Y* m/ F) ~ N9 O' i1 j- |: n$ f( r
% {& O F. {- `6 A" ]0 Sused 值反映实际使用的原始存储量。xxx GB / xxx GB 值表示集群的可用容量(两者中较小的数字),以及集群的整体存储容量。理论数量反映在复制、克隆所存储数据或创建其快照前这些数据的大小。因此,实际存储的数据量通常会超出理论上的存储量,因为 Ceph 会创建数据的副本,可能还会将存储容量用于克隆和创建快照。
, y# T0 v) f1 O; ~3 P( K5 m. T/ y7 ]8 }6 S$ S, G
显示即时状态信息的其他命令如下:
5 [, r O+ p$ p/ E
5 a9 |, D( `& Oceph pg stat# ~" h# r3 N8 n$ t% {% x9 h! V k
ceph osd pool stats2 W" w7 m" M# X7 l
ceph df
/ w* O; @ P( |6 C( X5 aceph df detail& ?( ]4 ?' |$ e# v8 I
要获得实时更新的信息,请将以上任何命令(包括 ceph -s)放置在等待循环中,例如:
8 {5 n9 H. l* J
0 O- A* c7 X) f" w7 B% M5 Jroot # while true ; do ceph -s ; sleep 10 ; done
& s9 B! _- O4 ]% h. I/ a: ^: r
" B9 X6 D# v5 A# H* n1 u如果您看累了,请按 Ctrl–C。
1 W ]3 @- f1 A. Q+ Z& @ K: g9 Z; s, r& v
4.3 检查集群的用量统计数字
/ q9 _2 x t. b- U
3 O4 r4 s9 S" `4 d" E- b要检查集群的数据用量和在各存储池中的数据分布,可以使用 df 选项。它类似于 Linux df。执行以下命令:
/ ?9 `' [. C* \/ O# W7 ?
3 V; D6 B; ^" Proot # ceph df
( ]: [, C% M- Q, T. K- K7 [0 U6 b' H3 n% V/ ^1 D9 H. X* u; u3 H
GLOBAL:) d1 U9 a* h& m6 L2 a3 c
2 X: P9 ?3 |3 n" k
SIZE AVAIL RAW USED %RAW USED# M- s3 ?/ X o/ Q* d0 N: q
: `. e7 j0 }9 a 55886G 55826G 61731M 0.11
8 m5 p; U( O) X5 U* |; r! a4 S; @4 i" ]% A
POOLS:
1 o f2 q J$ ^, {! Z
! M$ n/ L: `& e/ T! j NAME ID USED %USED MAX AVAIL OBJECTS
( f4 j" j9 q, S9 |4 K% G% S6 Y' O$ ?; q6 Y
testpool 1 0 0 17676G 0
- ~- p# X+ m3 Y( X `, Z1 I
2 w- t& e' B! a ecpool 2 4077M 0.01 35352G 2102
4 _/ |& v3 m# b8 Y5 o9 ]4 P& B; R I2 f4 u/ e1 ^( O$ r
test1 3 0 0 17676G 03 f- C9 h# v; n4 G% z9 d' Q
4 Q! N% {& u0 B% O- L1 [
rbd 4 16 0 17676G 37 ^# B2 ^1 R. @6 L4 i
' g. t1 X. ]. s/ ?, r" X( ?, d
rbd1 5 16 0 17676G 3/ K {* E$ t: H( O# m1 z
' q' J9 [9 k0 t
ecpool1 6 5708M 0.02 35352G 28717 b1 E$ m2 ^$ U- Y9 Y; j# R
# E# B- i# |% N9 S输出内容的 GLOBAL 段落提供集群用于数据的存储量概览。, A. P% B0 l9 N" K- z" m1 S+ b& y
4 D% C# Y/ v# ]$ I' z% l/ Y& B. Z2 M
SIZE:集群的整体存储容量。
# s" o5 M, F9 I7 {( }! h- B0 l( J3 lAVAIL:集群中可以使用的可用空间容量。2 B( s3 Q( [, P, q
RAW USED:已用的原始存储量。
, Y% `& @" ^2 h3 k9 R% RAW USED:已用的原始存储量百分比。将此数字与 full ratio 和 near full ratio 搭配使用,可确保您不会用完集群的容量。有关其他详细信息,请参见存储容量。- ]6 m. [5 s. x" P+ K ]; [2 O5 |
6 Z; v: [; [4 `0 I$ \
# }- U$ |( U: V& ~; o
注意:集群填充程度& T) S; k: r% o% @' ]( J3 @1 N
1 a0 n! y" J* U4 D0 |
原始存储填充程度达到 70% - 80%,表示需要向集群添加新的存储。较高的用量可能导致单个 OSD 填满,集群处于不良运行状况。1 ?2 J) ^$ U0 R7 O$ k
7 Y6 A, C) X: ~' W" {1 X& I( W
使用命令 ceph osd df tree 可列出所有 OSD 的填充程度。; N- ^1 k: ?; O+ D- I$ v! n( i& i# v
' k9 G& J; c2 _8 q7 ^输出内容的 POOLS 段落提供了存储池列表和每个存储池的理论用量。此段落的输出不反映副本、克隆数据或快照。例如,如果您存储含 1MB 数据的对象,理论用量将是 1MB,但是根据副本、克隆数据或快照数量,实际用量可能是 2MB 或更多。
7 R- }7 T) f) g' v* z% O
: u& O8 @ @1 S) S3 |8 l' O4 f; [NAME:存储池的名称。
5 {$ f; _% R' OID:存储池 ID。
1 `+ y5 }0 ?+ {6 y& S tUSED:以千字节 (KB) 为单位的理论已存储数据量,如果该数字附加了 M,则以兆字节为单位,如果附加了 G,则以千兆字节为单位。
& K" ^! S2 p0 v' R" T5 ^3 f. _( [, M0 t%USED:每个存储池的理论已用存储百分比。1 D" h% N! k5 b$ f% ?9 t- @ o
MAX AVAIL:给定存储池中的最大可用空间。
w9 K7 L! |6 F: EOBJECTS:每个存储池的理论已存储对象数。
3 r2 |: {6 P( R/ k2 w! c. T6 {9 _4 ?0 ^
% s# b* M( g! q( ?# O/ C! n
注意
, C, t x0 c, |+ d! J \2 g8 O0 ^2 e) p7 ^
POOLS 段落中的数字是理论上的。它们不包括副本、快照或克隆数量。因此,USED 和 %USED 数量之和不会加总到输出内容 %GLOBAL 段落中的 RAW USED 和 %RAW USED 数量中。 L5 T# J" T3 f6 p! c
( D/ ^$ g$ z5 F4 P; V1 L
4.4 检查集群的状态
! U* P. i' `4 x9 [1 n- a ]( s
1 i3 W6 C( R7 P' U* u& }要检查集群的状态,请执行以下命令:
$ ?( A4 S$ a+ x \- \+ w0 F6 I9 G: @" ~' F+ m/ A( B7 ]% e* |/ a1 I2 M
root # ceph status- o) \/ c) J6 {2 k' q# y
- J1 A3 o$ R+ Q# H, |+ Q' b" ~; p
或者
1 I! c$ u/ J% F) y$ \$ i2 l+ l8 D8 @! s1 u, K$ {
root # ceph -s* o7 \/ [3 d3 o1 [+ \! \2 P
% C( N; {. C m9 g$ ]8 ?- i
在交互模式下,键入 status,然后按 Enter。) R+ p ^2 ?5 a/ c
6 x; p" g% j! {# L$ \% L
ceph> status
5 _# V+ B; l# q: d( \. F% T: v( {, l- `, g- q1 z5 a4 p& K+ ?
Ceph 将列显集群状态。例如,由一个监视器和两个 OSD 组成的微型 Ceph 集群可能会列显以下内容:( e1 b. J2 c* m8 \2 l* D
S% \" ?3 I/ }& ~1 `* \
cluster b370a29d-9287-4ca3-ab57-3d824f65e3390 c+ j: I3 t8 B+ ~
4 m4 I. e! |: p health HEALTH_OK. b: [2 F L7 s% H, E
( T# p# o) s2 c, e; U' f
monmap e1: 1 mons at {ceph1=10.0.0.8:6789/0}, election epoch 2, quorum 0 ceph10 O/ ~! ^1 s u7 c* x4 H, S
" d- }6 ? v8 U1 W1 f6 K: I osdmap e63: 2 osds: 2 up, 2 in. H8 i! t( r3 `6 _ g5 ~- l9 i2 k# e6 E
: _8 C& {% c; V$ f
pgmap v41332: 952 pgs, 20 pools, 17130 MB data, 2199 objects
% v) [. l$ t0 b. x
0 e+ P6 V) W: m6 z7 p9 \5 l 115 GB used, 167 GB / 297 GB avail) c9 \% Y# M8 {2 G; o
6 p' N: i: E$ F9 s 1 active+clean+scrubbing+deep9 I6 F7 s y! ^2 \5 ]
* ~; y/ T$ G4 g6 F2 J# g6 a& h1 B
951 active+clean3 _2 @1 _; C( _7 |9 ^( X. n. t
0 N8 n: e9 m7 e" R/ a& T4 J5 p4.5 检查 OSD 状态 : S$ _: p# V! N, Z$ R9 u
4 P% M# e1 U! {" C$ f可通过执行以下命令来检查 OSD,以确保它们已启动且正在运行:# y4 L/ I$ v% ~! p
" a, p+ I# t6 G& Droot # ceph osd stat
7 |! q% I. L7 j {
) p0 S. `8 _$ G& _$ J! ?) S或者( v4 u; H! k% v* C. \! [
; l/ z* f2 w' |4 @# Z6 rroot # ceph osd dump% m5 N! g+ f n' `2 v
( k8 m9 a2 H* n8 ?5 r
还可以根据 OSD 在 CRUSH 地图中的位置查看 OSD。
0 h, x& J3 J. r( F& Z- c2 F4 ?# L# G8 \( ^; ?" y, c e3 E
root # ceph osd tree/ V1 N7 U# ?* o6 [( L
9 A7 W( u" k. h5 z( ?; v4 e' \Ceph 将列显 CRUSH 树及主机、它的 OSD、OSD 是否已启动及其权重。5 q0 D7 _0 |: t# h; |6 r6 g5 i
/ c) f# J5 o- C: t
# id weight type name up/down reweight
" t5 O* D1 S. x' x+ {. V, n: w) S. [4 h+ H% W: a8 O
-1 3 pool default. @" X4 n8 H% T& b- @ O
2 H! H- ^8 j5 N# V! Z
-3 3 rack mainrack4 R$ t& \2 a2 [
8 v; s8 P; W7 f& w+ y-2 3 host osd-host: w, v, w1 _; j. u# Z. f3 X
# n7 u0 ~4 E; |6 k! G0 1 osd.0 up 1. H8 G- x' |" X8 k
, L G0 i* b1 ~" e- z6 l j
1 1 osd.1 up 1- a& u, {+ b3 O6 m E
0 u5 x: f4 g$ D) @4 \- u5 _9 a. t- @
2 1 osd.2 up 1
: a9 `8 y# Y$ y! K2 B& F( m0 Q9 r: z F8 a
4.6 检查填满的 OSD ( E2 n4 a+ c% l( w( x
( i7 ]* i6 T+ i. z$ h1 VCeph 可阻止您向填满的 OSD 写入数据,以防丢失数据。在正常运行的集群中,当集群接近其填满比例时,您会收到警告。mon osd full ratio 默认设为容量的 0.95 (95%),达到该比例后,集群会阻止客户端写入数据。mon osd nearfull ratio 默认设为容量的 0.85 (85%),达到该比例时,集群会生成运行状况警告。
1 p* A" `" q% s2 m; e o3 _9 V0 i
( \0 ~/ C7 D' V" t# ^8 p9 D可通过 ceph health 命令报告填满的 OSD 节点:
5 n9 \, m2 V6 y- k( F' L. Z* G* }4 k x# ~; J* a) y
ceph health
8 j2 ?6 N, ~3 v# U: @# T1 ]1 V
( d. X) ?4 ~. r0 v HEALTH_WARN 1 nearfull osds% n }/ J5 V7 e0 W0 R9 W4 j5 r- z
u% O. _2 @, H6 k- p) H osd.2 is near full at 85%
! v# G6 _ ]- i' @# v W+ F5 U, K
5 E1 A/ [% _: H或者
# @2 w/ C* e! f C6 F* ?$ Y7 \0 [- \! }& ]( I6 X
ceph health
: e# I* k5 P9 c! Z1 D1 a$ f7 y4 _8 t+ u2 m- n- a' x
HEALTH_ERR 1 nearfull osds, 1 full osds
0 Q! m, c, b# T/ V0 G' L
: @) ]9 P6 i: O# b8 G0 Z) w8 W osd.2 is near full at 85%
$ u3 r- I9 N1 @' A2 e6 ?/ L* k& X8 {4 u' d s- P
osd.3 is full at 97%/ q) Z& h! ?, @) }* N0 v) ^7 x
5 `2 \' w; c& o$ w" H处理填满的集群的最佳方法是添加新的 OSD 节点,以让集群将数据重新分布到新的可用存储。
% o& o7 f: C+ T8 M7 V5 R9 x
0 T& T2 Z3 Y# B如果 OSD 因填满而无法启动,您可以通过删除已满 OSD 中的一些归置组目录来删除一些数据。
( ?7 e- z! T, [$ L0 t' j$ h/ o, d/ F6 P1 a* N: a1 z2 p, `3 z* G0 m4 g
" J+ ?" ]3 U) s: G7 a5 T' Q& j
; c% q7 s: p) E+ P3 Y' ~提示:防止 OSD 填满3 c- Z" i- Q8 A
, C! l8 N5 l- n f& H8 O5 e, B$ `5 {OSD 变满(即用完 100% 的磁盘空间)之后,往往会迅速崩溃而不发出警告。管理 OSD 节点时需记住下面几点提示。
: y3 _" B# d! ?; P" m% O* a( D* z7 o) d. m1 ?3 q# e3 r# N) _
每个 OSD 的磁盘空间(通常挂载在 /var/lib/ceph/osd/osd-{1,2..} 下)需放置在专用的底层磁盘或分区上。
1 K4 k2 H. f$ R8 J' I检查 Ceph 配置文件,确保 Ceph 不会将其日志文件存储在专供 OSD 使用的磁盘/分区上。
/ S- H" d- k; X( @确保没有其他进程写入专供 OSD 使用的磁盘/分区。
' q* a- x5 D) I: m; S0 `$ J4.7 检查监视器状态 $ `: X1 S9 p* h) T m$ _% s( u
! k2 n, O- Y) P& S5 t
如果集群有多个监视器(这是很有可能的),则应在启动集群之后到读取和/或写入数据之前的期间检查监视器仲裁状态。有多个监视器在运行时,仲裁必须存在。您还应该定期检查监视器状态,确保它们正在运行。: [- r$ G1 \# @' e0 F
1 s* {: k7 b# @
要显示监视器地图,请执行以下命令:
) W8 p6 i R1 e: t% j+ ?, X% s6 x: Z4 u1 ~
root # ceph mon stat
w* ^) @; {+ d, j( l' Q& t k: U! c
或者+ R! P$ k8 f1 ~( h% ?
7 q" x5 T1 T. M. ]; r' K% x. Z9 }root # ceph mon dump4 I: O6 A- [1 I2 K: k8 g: @
* h& B5 O' b8 a( c( ]. J& _, j要检查监视器集群的仲裁状态,请执行以下命令:
2 o9 d% A5 k( ^# P2 g; P/ M$ R, C$ C
root # ceph quorum_status+ {4 s; u, e% l: k) G
6 ?& |" A0 ]' T/ h3 ?3 D8 UCeph 将返回仲裁状态。例如,由三个监视器组成的 Ceph 集群可能返回以下内容: x" ~; F8 a) O% r
% G; e' w2 \: z5 d& F
{ "election_epoch": 10,% K# G3 k5 D+ S5 t( E( a
' X" s+ x; S0 Y5 W "quorum": [
, w. F3 m. M7 D. E& t: t( S. N! u3 r# ~) z' ] i
0,- p" ^' d* w, {3 F( y) S
+ @; ?9 a- I, D! t+ ~/ B* |8 ]
1,
- ?) u8 W: m1 g7 y+ ]' n& t' O {
2], j5 r+ M \5 P* m- P" }6 t! n7 U
1 U, A9 J" D: `: t; Y$ L3 }* V
"monmap": { "epoch": 1,4 j+ w; C" _9 n7 n
4 i. `+ v1 j0 t, A8 _. v7 d, g' D
"fsid": "444b489c-4f16-4b75-83f0-cb8097468898",
1 D( f, z- [1 p( L! k- p/ d8 \8 }1 M. H; n
"modified": "2011-12-12 13:28:27.505520",
4 i, a( {# c$ Q7 [: B- h& T' a8 w( W
"created": "2011-12-12 13:28:27.505520",/ R6 G0 l9 v, E
0 D: o0 K& G' v" ], t" p "mons": [
; l# j# k" u! W9 p' }6 U4 W' ]# N# B
{ "rank": 0,7 l w* T4 E- c K. j# i& f
( ?, ]$ ]# }( A2 }% a- V" P
"name": "a",
) ^5 s/ M4 M0 g4 t4 \% P
# g- m& }, o: z9 _4 e4 G0 H9 H "addr": "127.0.0.1:6789\/0"},
- R* E- e$ O7 I. m W- U$ Y' m* A& Z/ {4 A+ B3 `- d
{ "rank": 1,- I M o0 M' I+ }
. Y# f6 i% R# E( X0 E" T( o0 u
"name": "b",. w' o- B, m8 _' z
/ b2 a4 r d: H' v0 ?, y- u! ?5 l "addr": "127.0.0.1:6790\/0"},
1 E: D6 M& ^- O$ d: x% p
/ R) l/ O0 P2 g { "rank": 2,
! @8 @9 g; y/ y( i' p9 D, z; w' _% o! o
"name": "c",
9 x5 e( k5 H% | z) L: q* i
& D7 c+ p9 n# j5 U) y* s+ m "addr": "127.0.0.1:6791\/0"}
5 A: {2 d' \2 a5 _) q, W- d3 Q5 K0 n6 a' Z$ d7 i
]
; m! w' T& Z6 E/ k+ H* P' q5 X; H& A, J- S0 P
}- s- f6 r, C {0 g. ?. x% s* r% T
' H0 p W$ O' q$ d8 Y! K) m
}
$ e, g5 n( N5 O4 w( R F. Z
2 i2 P2 g. e# Y: C4.8 检查归置组状态 / }& W6 ?5 a+ R/ c. v. T+ Q6 j Z5 R
' D* H L' T2 d1 x6 Y
归置组会将对象映射到 OSD。监视归置组时,您希望它们处于 active 和 clean 状态。有关详细的讨论内容,请参见监视 OSD 和归置组。
8 U5 T! }" M( j( c: F8 g' r8 N3 o& a
4.9 使用管理套接字
" t6 Z4 i- }- N' l, p# f8 c; w: W( ~. r7 v& ^2 K
Ceph 管理套接字可让您通过套接字接口查询守护进程。默认情况下,Ceph 套接字驻留在 /var/run/ceph 下。要通过管理套接字访问守护进程,请登录运行守护进程的主机,并使用以下命令:# N1 J5 Z. _) J' x$ F/ H7 E
/ i: w( O& s8 ^/ j4 proot # ceph --admin-daemon /var/run/ceph/socket-name
- q) M3 ^3 u6 ~& j) A! e4 q" O5 W0 I. q9 q- B
要查看可用的管理套接字命令,请执行以下命令:
% h1 m! T& J4 u8 B, D2 q
' H; ~+ {! z1 f5 Jroot # ceph --admin-daemon /var/run/ceph/socket-name help1 Q% c! [: ? k% }' l& o
" ?0 ]7 R" Y' b管理套接字命令可让您在运行时显示和设置您的配置。有关详细信息,请参见在运行时查看配置。3 t3 g0 u- q" p' \( R
' Y$ [+ |, T6 ], q8 r1 S" N# Y, j+ g d另外,您也可以直接在运行时设置配置(管理套接字会绕过监视器,这与 ceph tell daemon-type.id injectargs 不同,后者依赖于监视器,但不需要您直接登录有问题的主机)。
- i6 z j0 A5 A |
|