|
|
1、启动一个ceph 进程, }" g3 i, g# H* u# W
启动mon进程, E0 K0 ?3 I- Z( N0 k. x
service ceph start mon.node1
" R! Y9 P# b) U启动msd进程6 q. n+ m5 W; ]% W5 W8 |
service ceph start mds.node15 E4 ^' X4 J4 x! a5 d
启动osd进程
; t- I$ k6 L) H- B1 D! U service ceph start osd.04 |: @2 a' Y, I B- ^: `9 j+ u
2、查看机器的监控状态
! G% N. V6 ?4 v& m) n[root@client ~]# ceph health
8 ]8 H9 L1 N1 V- K$ |2 b& lHEALTH_OK! D/ r$ D8 s$ M: i' K, ~4 }4 b
3、查看ceph的实时运行状态, q5 x; k6 K% i& l5 D9 Q: E9 W
[root@client ~]# ceph -w& ]1 J. S+ e. h) [- Y# d- ~8 k& q
cluster be1756f2-54f7-4d8f-8790-820c82721f17. H. h9 n b* u$ ?$ j
health HEALTH_OK
- R- e/ ?" | {5 ?% Q1 m monmap e2: 3 mons at {node1=10.240.240.211:6789/0,node2=10.240.240.212:6789/0,node3=10.240.240.213:6789/0}, election epoch 294, quorum 0,1,2 node1,node2,node3
2 [" {$ K- S+ Y* d$ C3 M( w! k mdsmap e95: 1/1/1 up {0=node2=up:active}, 1 up:standby
8 y% \8 C2 N8 I- B$ k$ V6 ~ osdmap e88: 3 osds: 3 up, 3 in
5 J+ b$ _) ]+ D ~! Z* Y& r pgmap v1164: 448 pgs, 4 pools, 10003 MB data, 2520 objects
1 r: o1 g6 }8 k2 t Z 23617 MB used, 37792 MB / 61410 MB avail
4 I# @( k3 n3 U) s1 r) ]( M 448 active+clean
* ?9 ]6 A. d' C" Y2 Z/ ^2014-06-30 00:48:28.756948 mon.0 [INF] pgmap v1163: 448 pgs: 448 active+clean; 10003 MB data, 23617 MB used, 37792 MB / 61410 MB avail3 [! O: i6 n; x9 ^
/ B7 m( R% {! r, p; u6 M2 q/ i- t( E7 Z
4、检查信息状态信息
; {& z" Q8 w$ u" J. ~# z[root@client ~]# ceph -s
# M$ a8 C- `- q# Z* S cluster be1756f2-54f7-4d8f-8790-820c82721f17% Q+ c! Y+ k. C; t5 V: o# f! S- E% ?' m* h
health HEALTH_OK6 A+ X6 E; Q: b5 r9 G. K$ G
monmap e2: 3 mons at {node1=10.240.240.211:6789/0,node2=10.240.240.212:6789/0,node3=10.240.240.213:6789/0}, election epoch 294, quorum 0,1,2 node1,node2,node3" p1 b; f! d. C! }4 h1 m5 _( }! G
mdsmap e95: 1/1/1 up {0=node2=up:active}, 1 up:standby
, l" e- Z V- F5 H+ G0 J osdmap e88: 3 osds: 3 up, 3 in
( e0 }6 F" t/ T- C pgmap v1164: 448 pgs, 4 pools, 10003 MB data, 2520 objects
, S: ^. T- M8 T$ _, ^ 23617 MB used, 37792 MB / 61410 MB avail
) O8 } w' X8 T2 X! L( ]. `8 Z( J 448 active+clean
/ J( h& }8 a$ a: q[root@client ~]# / h) n1 e3 U7 i- }, M
! G5 ~2 O) [8 y/ l+ }. n3 {1 C5 L/ b& Y
5、查看ceph存储空间1 U. B" I; e1 S6 C+ l) t4 W' L0 L
[root@client ~]# ceph df3 }1 s) D; ~' _# _
GLOBAL:
4 }5 I+ q5 Z) ]+ A# L- u' b SIZE AVAIL RAW USED %RAW USED # C) M1 k5 ?2 O
61410M 37792M 23617M 38.46
( f% r8 M+ I: z1 fPOOLS:
3 R$ g: p) s& J+ ^ NAME ID USED %USED OBJECTS
3 p5 t' F" z6 H- ` data 0 10000M 16.28 2500 * j9 @' a0 {7 Y1 S! w
metadata 1 3354k 0 20
5 ~8 [. q) D) u0 U rbd 2 0 0 0
7 J( d/ l: L7 I$ z6 H/ n jiayuan 3 0 0 0 ) j6 d! X- c$ v% D0 G: e' Q( T
[root@client ~]# & h/ L' O/ a' I
6、删除一个节点的所有的ceph数据包6 j. n/ F; l2 R
[root@node1 ~]# ceph-deploy purge node1/ I1 s3 n' h& i) |0 Z3 n
[root@node1 ~]# ceph-deploy purgedata node1/ o4 A& U: f1 n, ^6 T8 N& ]5 c3 j1 s( R
7、为ceph创建一个admin用户并为admin用户创建一个密钥,把密钥保存到/etc/ceph目录下:# @1 t1 m @0 w9 \! ?
ceph auth get-or-create client.admin mds 'allow' osd 'allow *' mon 'allow *' > /etc/ceph/ceph.client.admin.keyring
& ]- b0 |4 H5 B或
9 s, L9 q& _+ ]! {9 L) ?ceph auth get-or-create client.admin mds 'allow' osd 'allow *' mon 'allow *' -o /etc/ceph/ceph.client.admin.keyring
+ X2 G1 i' B0 a4 k h2 @8、为osd.0创建一个用户并创建一个key: h c6 T5 D; M/ f: M( ~
ceph auth get-or-create osd.0 mon 'allow rwx' osd 'allow *' -o /var/lib/ceph/osd/ceph-0/keyring9 M. u7 w& m4 _4 L' ^
9、为mds.node1创建一个用户并创建一个key$ t& K" [# }3 D6 ^' F- O
ceph auth get-or-create mds.node1 mon 'allow rwx' osd 'allow *' mds 'allow *' -o /var/lib/ceph/mds/ceph-node1/keyring
% n* s. y5 ~2 P% o# Z1 F+ R10、查看ceph集群中的认证用户及相关的key8 C1 E3 m+ P- q# z' r' U
ceph auth list
5 S7 m& |8 o! [1 |- X# a- d# ]11、删除集群中的一个认证用户( \2 E8 A8 z6 u9 B
ceph auth del osd.0( ]: n: h( z# z" j- S
12、查看集群的详细配置) @$ u2 [; y" D6 J2 K e, D$ W, w
[root@node1 ~]# ceph daemon mon.node1 config show | more1 Y: Y% P( R" s* x( I* x% z/ `
13、查看集群健康状态细节. T2 {2 |6 ?4 j0 m$ d+ [
[root@admin ~]# ceph health detail' r" }, c: y5 u9 F, I5 q
HEALTH_WARN 12 pgs down; 12 pgs peering; 12 pgs stuck inactive; 12 pgs stuck unclean5 @/ M& I1 r7 @8 d1 K1 F) Z
pg 3.3b is stuck inactive since forever, current state down+peering, last acting [1,2]
! g/ G: A$ d6 X7 Lpg 3.36 is stuck inactive since forever, current state down+peering, last acting [1,2]
/ p# ^- q; }. m, l. n5 cpg 3.79 is stuck inactive since forever, current state down+peering, last acting [1,0]! o0 ~, w" b/ [3 k, [3 Y9 I
pg 3.5 is stuck inactive since forever, current state down+peering, last acting [1,2]6 U! Y F" S# j5 ~
pg 3.30 is stuck inactive since forever, current state down+peering, last acting [1,2]
8 U0 H) |' v. {pg 3.1a is stuck inactive since forever, current state down+peering, last acting [1,0]9 `0 V0 `! v: [& T$ }! Q5 M
pg 3.2d is stuck inactive since forever, current state down+peering, last acting [1,0]
& T4 S3 f; B: Hpg 3.16 is stuck inactive since forever, current state down+peering, last acting [1,2]% E7 c" Y4 `) y+ I6 i% @6 @
. ]1 p; K; V- K14、查看ceph log日志所在的目录* @- I+ e" {7 W
[root@node1 ~]# ceph-conf --name mon.node1 --show-config-value log_file
9 S& r- ~6 s+ [2 {4 s: U/var/log/ceph/ceph-mon.node1.log4 @9 e3 r, Z/ d# g
E5 E. C; `* @/ {7 y* A
+ L C' }$ i0 B5 M+ {二、mon
! ]' y ]# s9 @5 n1、查看mon的状态信息
6 Q1 I0 p8 N' j4 G4 V% B7 P+ h[root@client ~]# ceph mon stat
7 U2 z" J% d Ge2: 3 mons at {node1=10.240.240.211:6789/0,node2=10.240.240.212:6789/0,node3=10.240.240.213:6789/0}, election epoch 294, quorum 0,1,2 node1,node2,node3( v, ~2 x- `) v( t; q# Y+ ~& Q. v9 Y8 m( `
2、查看mon的选举状态+ T! A* I, \- {/ h. ^- ^/ o
[root@client ~]# ceph quorum_status
1 s; g e5 a$ d0 X/ R{"election_epoch":294,"quorum":[0,1,2],"quorum_names":["node1","node2","node3"],"quorum_leader_name":"node1","monmap":{"epoch":2,"fsid":"be1756f2-54f7-4d8f-8790-820c82721f17","modified":"2014-06-26 18:43:51.671106","created":"0.000000","mons":[{"rank":0,"name":"node1","addr":"10.240.240.211:6789\/0"},{"rank":1,"name":"node2","addr":"10.240.240.212:6789\/0"},{"rank":2,"name":"node3","addr":"10.240.240.213:6789\/0"}]}}0 `; F h. E) w. j8 `
3、查看mon的映射信息4 w9 g5 B6 K1 }2 ~
[root@client ~]# ceph mon dump. d5 H3 @6 R4 `: N0 C6 ~
dumped monmap epoch 27 j- ~2 O4 u3 P
epoch 29 }7 Y0 v# C; N- g& u& n3 C
fsid be1756f2-54f7-4d8f-8790-820c82721f17
1 m v( A2 ?5 r/ r: |5 s5 K: k. hlast_changed 2014-06-26 18:43:51.6711063 {( K' j. ]* S
created 0.0000006 h1 b' l# p+ _, v
0: 10.240.240.211:6789/0 mon.node1
' U! S; C6 S- X9 u: G. ]1: 10.240.240.212:6789/0 mon.node2
9 @5 x( V! A1 X+ Z* L$ ]. U/ l2: 10.240.240.213:6789/0 mon.node3
1 e, I6 ~/ `# @; d- N) |4、删除一个mon节点
5 A' Y" y# x1 k% r- ` s[root@node1 ~]# ceph mon remove node1* y; ~8 t% m$ P2 a1 @) O- C [: A# t3 g
removed mon.node1 at 10.39.101.1:6789/0, there are now 3 monitors
+ b0 U3 ]+ \" U' G2014-07-07 18:11:04.974188 7f4d16bfd700 0 monclient: hunting for new mon
( e( F$ b- ~6 M4 V4 d: I" Q1 E' c5、获得一个正在运行的mon map,并保存在1.txt文件中& Q6 o' W: p ? Y+ A
[root@node3 ~]# ceph mon getmap -o 1.txt- N# J' `$ _0 n( a4 r& g
got monmap epoch 64 a" T" [; K* R
6、查看上面获得的map
/ W! O ~' [" F6 _5 Z[root@node3 ~]# monmaptool --print 1.txt
8 ^( C' w! e% u! q' [6 c- ] `monmaptool: monmap file 1.txt9 V. K8 f% B: N: g$ y" M
epoch 6/ v) z5 V$ o0 W5 C* x
fsid 92552333-a0a8-41b8-8b45-c93a8730525e6 V, T9 N5 Z) e+ E
last_changed 2014-07-07 18:22:51.9272056 q8 L7 e4 |( @
created 0.0000000 k; m. @! M3 O- m7 y# w# O' y
0: 10.39.101.1:6789/0 mon.node1
; N4 f, ]5 f" z% b9 g4 a1: 10.39.101.2:6789/0 mon.node2
' G4 o; n; A" c" i) y% `9 s T2: 10.39.101.3:6789/0 mon.node3
?5 ]1 U" ]& n[root@node3 ~]#/ Q: _* N2 C% @
7、把上面的mon map注入新加入的节点% q$ Z5 s/ w( y4 d) U
ceph-mon -i node4 --inject-monmap 1.txt
# N8 k' [; X- }" K7 F8、查看mon的amin socket" m# i' r: G& S& n& J# h
root@node1 ~]# ceph-conf --name mon.node1 --show-config-value admin_socket' F9 ~5 d$ J2 U! m/ [
/var/run/ceph/ceph-mon.node1.asok
, l7 m& G/ Q/ _* R8 L9、查看mon的详细状态
8 Z) x. Z Q g* r2 N[root@node1 ~]# ceph daemon mon.node1 mon_status 1 g+ `8 z: t2 [( r+ h
{ "name": "node1",
+ F: v: Y4 X8 M, _1 M "rank": 0,( s" h) Q$ i' A& ^5 M
"state": "leader",' ^( H3 k: `6 E7 J
"election_epoch": 96,
1 N/ t( c: v% l1 h& M "quorum": [/ Q: ] w9 j4 |8 g; y8 ~
0,
/ M5 d+ D, b' z5 b. n: P 1,# {8 g9 c0 Y6 ?" U8 V* Y8 Z
2],( q+ r* y" \( V* ?! b
"outside_quorum": [],& g& F& i `' L4 [1 `
"extra_probe_peers": [
* X3 r4 [% |: O/ A% b H5 h "10.39.101.4:6789\/0"],1 j& W9 E$ p" z4 [/ V% W; q% Q
"sync_provider": [],( {; f {8 _. R
"monmap": { "epoch": 6,
7 Z! R1 F7 Z/ y6 d3 } "fsid": "92552333-a0a8-41b8-8b45-c93a8730525e",$ l2 x5 ]+ g6 k; Y J3 }, F$ z
"modified": "2014-07-07 18:22:51.927205",0 _5 X' u2 x }( O
"created": "0.000000",7 }& p8 y( t% I# h3 X0 Q6 U
"mons": [
) h9 ^' S3 Y2 F& R { "rank": 0,
9 y) a# J; E2 n. T0 f "name": "node1",
+ M- b2 E$ _/ s$ j/ Q' {, q "addr": "10.39.101.1:6789\/0"},+ \, J6 u! C# L+ K
{ "rank": 1,- U) a8 y4 l1 E3 l, U* L1 s
"name": "node2",0 d% w# `1 v% n/ H$ F
"addr": "10.39.101.2:6789\/0"},% O X5 @, [ s- L3 w4 Y* }3 J
{ "rank": 2,+ O. D5 U& X3 [; s0 E, N! {
"name": "node3",# B: w" R, H; t- P
"addr": "10.39.101.3:6789\/0"}]}( N& [) R' r3 L* J( O
10、删除一个mon节点* N1 E8 [' \! r& r
[root@os-node1 ~]# ceph mon remove os-node1/ k' w! R2 H F0 k# ^
removed mon.os-node1 at 10.40.10.64:6789/0, there are now 3 monitors$ B6 N/ t! ]1 x6 ~) C
; d0 w+ \' m6 N9 N2 h三、msd- A+ b" E. a- g1 c7 R
1、查看msd状态9 Z2 _/ E7 Q O
[root@client ~]# ceph mds stat3 j. ~2 Q" \0 _7 @
e95: 1/1/1 up {0=node2=up:active}, 1 up:standby
* c, j$ o4 d$ u# U9 s2、查看msd的映射信息% Y) {* A* J8 }, R$ i* ^( G; M' x$ s \
[root@client ~]# ceph mds dump
, H) W0 }0 S. Fdumped mdsmap epoch 95' e) `) a) s$ u) ~2 c7 Q6 r0 Q
epoch 95) k, Q6 s1 y C3 Y, N( X
flags 0
! i6 M( o: A+ e4 g" d2 r: B8 gcreated 2014-06-26 18:41:57.686801
' R, W: q# d4 ^8 e& smodified 2014-06-30 00:24:11.749967- O$ K$ u- H% a
tableserver 08 |5 L# O& x E8 ]* h
root 0! D+ o# N/ o4 w7 f% a7 C4 t# a7 n
session_timeout 60+ L7 \2 R' [+ |, Y& _2 H# {
session_autoclose 300
+ [5 Y2 _4 f% h2 xmax_file_size 1099511627776 u' O# H- T5 w) J6 {1 N' U
last_failure 84
# ]" d+ m+ T6 d1 F# P2 I4 ylast_failure_osd_epoch 81
- l; B u6 R! r7 B1 M1 G: |/ x9 t: Gcompat compat={},rocompat={},incompat={1=base v0.20,2=client writeable ranges,3=default file layouts on dirs,4=dir inode in separate object,5=mds uses versioned encoding,6=dirfrag is stored in omap}
7 y2 ?2 j+ j9 |$ P6 Mmax_mds 17 k7 s8 j8 q6 L+ v- S! N
in 0
8 S$ C4 n' D) v3 p: l% ~; ?. aup {0=5015}
0 _* k5 z! ` x* m% l( Zfailed
* I' @* x! d" R d5 qstopped
1 e( E- p t) Rdata_pools 0) b/ _& Z& V3 a/ \4 U! J
metadata_pool 1
8 {' `) ?# p2 B3 W2 G$ W' h8 p Jinline_data disabled b- M& M( R' x! T
5015: 10.240.240.212:6808/3032 'node2' mds.0.12 up:active seq 30: M5 q8 c: l8 e6 Y& e M
5012: 10.240.240.211:6807/3459 'node1' mds.-1.0 up:standby seq 38
9 h* o3 H4 k1 y" b) p+ P0 k3、删除一个mds节点
& u* v C( d* N$ ]+ e[root@node1 ~]# ceph mds rm 0 mds.node1
`; g, n! J8 D0 M8 l ? mds gid 0 dne
+ `' `/ c; a- u8 v" c% d9 _: Q% }" o a. k$ s2 s
四、osd- J0 K+ H2 V( j# f
1、查看ceph osd运行状态3 ]3 z: a& j% P; l% \4 q
[root@client ~]# ceph osd stat
) T* U1 U5 U+ l4 a q9 J6 ~ osdmap e88: 3 osds: 3 up, 3 in
* w# A. j3 c) n8 e8 h0 |2 o/ W4 ]. ^) z2 O. {6 l
2、查看osd映射信息 d+ \1 o' x6 z% Z2 W9 ?
[root@client ~]# ceph osd dump3 K8 u3 R0 X- h2 U0 _/ y3 G
epoch 88
* J; D; Q9 x F! Ufsid be1756f2-54f7-4d8f-8790-820c82721f17" T" P7 n3 k! X, v* X7 U( S
created 2014-06-26 18:41:57.687442) M- j6 f5 I2 b/ M
modified 2014-06-30 00:46:27.179793
9 `9 ]3 C4 E' q/ @, y ~flags
* J/ l8 m6 \* Z( {# c7 w+ t7 |pool 0 'data' replicated size 2 min_size 1 crush_ruleset 0 object_hash rjenkins pg_num 64 pgp_num 64 last_change 1 owner 0 flags hashpspool crash_replay_interval 45 stripe_width 0
3 ~+ O5 _$ ?, ^' F! j' A; H2 opool 1 'metadata' replicated size 2 min_size 1 crush_ruleset 0 object_hash rjenkins pg_num 64 pgp_num 64 last_change 1 owner 0 flags hashpspool stripe_width 07 @ J3 ?7 r! x* n% c
pool 2 'rbd' replicated size 2 min_size 1 crush_ruleset 0 object_hash rjenkins pg_num 64 pgp_num 64 last_change 1 owner 0 flags hashpspool stripe_width 0
5 O5 i' S5 |; dpool 3 'jiayuan' replicated size 2 min_size 1 crush_ruleset 0 object_hash rjenkins pg_num 256 pgp_num 256 last_change 73 owner 0 flags hashpspool stripe_width 0
8 d* ?6 Q, K9 e2 fmax_osd 30 w+ _# s- p: b+ Z1 o6 j& o
osd.0 up in weight 1 up_from 65 up_thru 75 down_at 64 last_clean_interval [53,55) 10.240.240.211:6800/3089 10.240.240.211:6801/3089 10.240.240.211:6802/3089 10.240.240.211:6803/3089 exists,up 8a24ad16-a483-4bac-a56a-6ed44ab74ff07 W8 d5 P% u, t8 q# l) e( o
osd.1 up in weight 1 up_from 59 up_thru 74 down_at 58 last_clean_interval [31,55) 10.240.240.212:6800/2696 10.240.240.212:6801/2696 10.240.240.212:6802/2696 10.240.240.212:6803/2696 exists,up 8619c083-0273-4203-ba57-4b1dabb89339
% u. Q, z! p! ^8 A( q6 ?osd.2 up in weight 1 up_from 62 up_thru 74 down_at 61 last_clean_interval [39,55) 10.240.240.213:6800/2662 10.240.240.213:6801/2662 10.240.240.213:6802/2662 10.240.240.213:6803/2662 exists,up f8107c04-35d7-4fb8-8c82-09eb885f0e58
( L1 c3 |8 L9 g- {[root@client ~]# - j$ X y" ~7 P' n8 d) d
# A+ W ]0 o; l- B
3、查看osd的目录树( l ^3 R3 P& V# r' x% M0 z
[root@client ~]# ceph osd tree$ z" p6 C$ R9 z; t1 }7 ]' L3 q
# id weight type name up/down reweight: Y2 D& N; v' H8 Z+ U/ X
-1 3 root default" x6 X) ~5 N% N$ u3 j
-2 1 host node1- A2 ~7 f1 L. |1 A- f
0 1 osd.0 up 1
: ?* c0 j9 q( W- X% I-3 1 host node2
& r+ y9 u5 R# {2 x* ~1 1 osd.1 up 1
9 K9 R+ i) p# a1 V6 Y-4 1 host node3" l' u8 g# W p& x* b6 A
2 1 osd.2 up 1
4 M& x; D* X6 u O8 v: k6 N* L9 ?% r4 ?
4、down掉一个osd硬盘
) D0 X/ D/ G0 R& Y[root@node1 ~]# ceph osd down 0 #down掉osd.0节点
( w! D, ~# \ i' Z+ |& E5、在集群中删除一个osd硬盘
+ H0 m: g0 e" I+ r[root@node4 ~]# ceph osd rm 0, w- D. S. n6 a; c' y7 z& b
removed osd.0
3 e" P! M1 v3 D9 ^/ l, J4 a6、在集群中删除一个osd 硬盘 crush map
, i% @7 v2 R0 }# W, W2 Z[root@node1 ~]# ceph osd crush rm osd.0: N: L( H5 ], T! [( T& i7 W
7、在集群中删除一个osd的host节点
3 |5 M. {! x; q4 f$ A9 S[root@node1 ~]# ceph osd crush rm node1# t9 O5 V! q x; g$ p2 d
removed item id -2 name 'node1' from crush map
& t0 B4 R9 g) @, g
1 _! {. S. D) W2 C& [# N查看最大osd的个数 2 z9 r' m2 t# U" `- s6 v$ t S" l
[root@node1 ~]# ceph osd getmaxosd& i* { q) E L$ |$ o
max_osd = 4 in epoch 514 #默认最大是4个osd节点4 d$ c8 C. J$ D* b4 l
8、设置最大的osd的个数(当扩大osd节点的时候必须扩大这个值)
' i$ X6 _, i8 c( s# u[root@node1 ~]# ceph osd setmaxosd 10
( k) l: t w# v! A8 s1 E9、设置osd crush的权重为1.0
8 s$ ~$ a1 m: E2 v' p3 J" Eceph osd crush set {id} {weight} [{loc1} [{loc2} ...]]$ u$ E' ~3 W! Y* o$ G: ?* N; C+ @
例如:% p; O5 ?6 K( B
[root@admin ~]# ceph osd crush set 3 3.0 host=node44 }- x1 @: H! g, w! V7 ?
set item id 3 name 'osd.3' weight 3 at location {host=node4} to crush map
% g! a3 _% P t[root@admin ~]# ceph osd tree/ y( Z) ?/ E( a! E& U9 z7 ?
# id weight type name up/down reweight
. W, ]( x* `2 y5 ~# X$ Q-1 6 root default
6 q+ _/ e" B. q5 ]$ y* z4 m-2 1 host node1
/ ^5 A Q' w! v/ D1 C# r0 1 osd.0 up 1
' T4 M. e2 @! Q/ N2 }6 D% T-3 1 host node2
% v; j0 L" f/ U! m, b: ?( w1 1 osd.1 up 1/ I! x3 C( S! D& V( a; F8 U6 W+ K
-4 1 host node3& D0 N" C8 x2 d; f' u: e. [
2 1 osd.2 up 1
# k* ~5 A- T' [5 M-5 3 host node4# e6 `+ Q; c0 B- G* m9 ]2 U3 \
3 3 osd.3 up 0.5
# ^9 _* C( v5 P1 u5 C( C0 A
3 w2 H& Q9 \* y, R或者用下面的方式. h# B: ~) O& t( t# _' S) @
[root@admin ~]# ceph osd crush reweight osd.3 1.0
. @: h% A- f9 Z) O' E1 H6 B8 z5 @% zreweighted item id 3 name 'osd.3' to 1 in crush map) @2 f8 Z6 \- \* N8 G
[root@admin ~]# ceph osd tree
. P1 ~; ^) Y5 b. ?( h, \# id weight type name up/down reweight4 Q3 ^! @- F3 [" L- [! x$ m
-1 4 root default
6 z% ]0 v2 r/ m-2 1 host node1
- j2 I) G) t% B1 ?3 V" F6 ?0 1 osd.0 up 1
6 ^3 f5 o3 z3 O6 H& H; Z e-3 1 host node2
1 @" E1 ?' ~9 R9 A6 y `1 1 osd.1 up 1
: S# V+ R, `2 {- G" E-4 1 host node3! q/ \1 A/ ?& T0 K6 M: l" V5 Q6 ~
2 1 osd.2 up 1
4 w, V% w+ {! d3 `-5 1 host node4
' Z1 R) p( m. a( o3 1 osd.3 up 0.5! Y6 D# l9 N. ~& i$ p9 R
10、设置osd的权重2 m2 j, U) ?% s% E) d- |1 {5 J
[root@admin ~]# ceph osd reweight 3 0.5
5 a3 ~2 _0 {4 O4 `9 n) sreweighted osd.3 to 0.5 (8327682)
' O9 v& s. S( c2 N3 J: m( l( y8 a[root@admin ~]# ceph osd tree
& B& n' w$ W$ c7 F1 C# id weight type name up/down reweight
0 R+ ~6 o: ^( L [; C) A-1 4 root default
% a6 X- J6 t, h4 F! u) @8 _8 t-2 1 host node1
$ o2 X- G6 Y# {* C' I0 1 osd.0 up 1& {) K7 W S% f% {9 M$ `8 ?
-3 1 host node2" [5 f6 U- w. f9 `# F
1 1 osd.1 up 14 Q7 G$ p1 i7 E5 C
-4 1 host node3
?3 r; z6 J7 T7 n: L8 X; C2 ^" h2 1 osd.2 up 1
, g& n. L0 C+ W+ }, ~4 z-5 1 host node4/ ^! Q/ s" m# h4 \) x. R& h
3 1 osd.3 up 0.52 w# q9 a$ s9 s* {/ t
11、把一个osd节点逐出集群1 b9 Y$ L8 Q( Y8 h
[root@admin ~]# ceph osd out osd.3
% T2 D1 ]8 r& w P6 Y) R: J8 ~marked out osd.3.
" z# E2 X- f0 z2 k[root@admin ~]# ceph osd tree8 y- u' ~# x6 L$ V0 ^1 H6 |
# id weight type name up/down reweight, z# E* C8 j8 V
-1 4 root default# g. k q" D/ Z$ t7 N6 ?
-2 1 host node1
- N9 i3 f. [4 x6 F& N9 ?6 l0 1 osd.0 up 1 t+ j* s$ h, N# E7 P8 p
-3 1 host node2- C1 S8 f9 [6 G' T1 A4 V
1 1 osd.1 up 1
$ H( }( M! ~, Q* U# \: A7 A3 M-4 1 host node39 Z t8 @ I- m) Q
2 1 osd.2 up 11 ]7 o0 }/ _ \
-5 1 host node4
0 C: l5 e5 ]4 G" N. F3 1 osd.3 up 0 # osd.3的reweight变为0了就不再分配数据,但是设备还是存活的2 C, d: Y8 [: |9 f/ F9 O( `. y
12、把逐出的osd加入集群
7 f0 I* M4 x$ [* c$ Z3 K5 D: R0 B[root@admin ~]# ceph osd in osd.3
/ s7 r+ I% }: T! f; u. K, hmarked in osd.3.
! ]6 d9 e1 |' t; A- ~[root@admin ~]# ceph osd tree6 Y; X- |8 H+ a( K7 v& E
# id weight type name up/down reweight
: m* t! I f, _+ W-1 4 root default. J' @* Q, H+ F% b2 [* s
-2 1 host node1
, O% W; W, t8 [* X0 1 osd.0 up 1
8 q$ B5 I L% w2 {3 v-3 1 host node2
; N4 C9 f$ L( D. q7 q! V1 1 osd.1 up 1
- a6 F0 T# s; Y0 j; X0 M+ z8 u-4 1 host node3
+ d6 z% c* i6 `0 Y/ W2 1 osd.2 up 1, X- t, H7 V. z2 x
-5 1 host node4. `" o$ y, n2 `# r
3 1 osd.3 up 1
1 p7 {8 O* ~5 ^1 X6 O13、暂停osd (暂停后整个集群不再接收数据)
+ y+ J* @6 c: w) E3 M[root@admin ~]# ceph osd pause
( E7 [, T" x0 r2 iset pauserd,pausewr $ Z1 K9 p( x, d
14、再次开启osd (开启后再次接收数据) ) r8 I. i1 v, Y& q2 ^+ M3 Z' X
[root@admin ~]# ceph osd unpause
3 m1 E6 M! Y+ }+ a0 { j2 i. aunset pauserd,pausewr' s' ^2 V1 Y* H* P
, G) K: x: b9 J! e8 T6 U+ D& [15、查看一个集群osd.2参数的配置
% `1 d% F6 d9 z; j% n* z" y! yceph --admin-daemon /var/run/ceph/ceph-osd.2.asok config show | less
/ ] z6 S8 l7 J7 o9 G4 d* R1 x& t- a
/ J6 I$ f1 d3 I1 V, R! l
" B( \# p$ ^, V( Q& g$ W" j五、PG组
?; z% c1 E1 M: L3 `1、1、查看pg组的映射信息
: l) x: [# R! ?4 P* }5 G. n[root@client ~]# ceph pg dump, L: S: h/ i+ D4 U
dumped all in format plain
- J) r R* V- t Kversion 11643 O( {/ d7 V M. c
stamp 2014-06-30 00:48:29.754714! Z% J- s6 X0 Y, n a) ^ r5 v( ^
last_osdmap_epoch 88
+ N: Q8 g. F/ d! A7 I- |last_pg_scan 73% A2 w1 z7 I* K; \& ~$ A1 A
full_ratio 0.955 v- Z" [; j6 Y
nearfull_ratio 0.85
' L2 b/ ~- B* T. T* O! ^pg_stat objects mip degr unf bytes log disklog state state_stamp v reported up up_primary acting acting_primary last_scrub scrub_stamp last_deep_scrudeep_scrub_stamp
4 ]( X. G; F/ X' v! a9 {$ c0.3f 39 0 0 0 163577856 128 128 active+clean 2014-06-30 00:30:59.193479 52'128 88:242 [0,2] 0 [0,2] 0 44'25 2014-06-29 22:25:25.282347 0'0 2014-06-26 19:52:08.521434
E8 c6 K" b# W6 B. @3.3c 0 0 0 0 0 0 0 active+clean 2014-06-30 00:15:38.675465 0'0 88:21 [2,1] 2 [2,1] 2 0'0 2014-06-30 00:15:04.295637 0'0 2014-06-30 00:15:04.295637
9 R: ~2 `0 B2 L! u! b2.3c 0 0 0 0 0 0 0 active+clean 2014-06-30 00:10:48.583702 0'0 88:46 [2,1] 2 [2,1] 2 0'0 2014-06-29 22:29:13.701625 0'0 2014-06-26 19:52:08.845944
1 g- r8 L0 U, V9 e1 Q: e9 |1.3f 2 0 0 0 452 2 2 active+clean 2014-06-30 00:10:48.596050 16'2 88:66 [2,1] 2 [2,1] 2 16'2 2014-06-29 22:28:03.570074 0'0 2014-06-26 19:52:08.655292
" i* B" {7 e& @/ z* D0.3e 31 0 0 0 130023424 130 130 active+clean 2014-06-30 00:26:22.803186 52'130 88:304 [2,0] 2 [2,0] 2 44'59 2014-06-29 22:26:41.317403 0'0 2014-06-26 19:52:08.5189781 f4 | t, s( y7 ?. q& v1 D) J# I
3.3d 0 0 0 0 0 0 0 active+clean 2014-06-30 00:16:57.548803 0'0 88:20 [0,2] 0 [0,2] 0 0'0 2014-06-30 00:15:19.101314 0'0 2014-06-30 00:15:19.101314$ K$ [0 t, X/ x/ J0 O* |' L; P
2.3f 0 0 0 0 0 0 0 active+clean 2014-06-30 00:10:58.750476 0'0 88:106 [0,2] 0 [0,2] 0 0'0 2014-06-29 22:27:44.604084 0'0 2014-06-26 19:52:08.864240+ d9 l; e" b$ \7 h
1.3c 1 0 0 0 0 1 1 active+clean 2014-06-30 00:10:48.939358 16'1 88:66 [1,2] 1 [1,2] 1 16'1 2014-06-29 22:27:35.991845 0'0 2014-06-26 19:52:08.646470
1 B0 Q% h- ^1 `. ~, @. s0.3d 34 0 0 0 142606336 149 149 active+clean 2014-06-30 00:23:57.348657 52'149 88:300 [0,2] 0 [0,2] 0 44'57 2014-06-29 22:25:24.279912 0'0 2014-06-26 19:52:08.514526
0 b8 Z9 d) X* g% O0 e! ~3.3e 0 0 0 0 0 0 0 active+clean 2014-06-30 00:15:39.554742 0'0 88:21 [2,1] 2 [2,1] 2 0'0 2014-06-30 00:15:04.296812 0'0 2014-06-30 00:15:04.296812
( F+ D* K& W j. u2 }. K' T2.3e 0 0 0 0 0 0 0 active+clean 2014-06-30 00:10:48.592171 0'0 88:46 [2,1] 2 [2,1] 2 0'0 2014-06-29 22:29:14.702209 0'0 2014-06-26 19:52:08.8553827 V5 T# T: ^# C! E" {8 n5 }+ {4 Y
1.3d 0 0 0 0 0 0 0 active+clean 2014-06-30 00:10:48.938971 0'0 88:58 [1,2] 1 [1,2] 1 0'0 2014-06-29 22:27:36.971820 0'0 2014-06-26 19:52:08.6500709 _0 K& {& n# t% ~* H
0.3c 41 0 0 0 171966464 157 157 active+clean 2014-06-30 00:24:55.751252 52'157 88:385 [1,0] 1 [1,0] 1 44'41 2014-06-29 22:26:34.829858 0'0 2014-06-26 19:52:08.513798( H# s+ T, P2 P$ u
3.3f 0 0 0 0 0 0 0 active+clean 2014-06-30 00:17:08.416756 0'0 88:20 [0,1] 0 [0,1] 0 0'0 2014-06-30 00:15:19.406120 0'0 2014-06-30 00:15:19.4061209 N4 C) Z3 E9 S- t1 O
2.39 0 0 0 0 0 0 0 active+clean 2014-06-30 00:10:58.784789 0'0 88:71 [2,0] 2 [2,0] 2 0'0 2014-06-29 22:29:10.673549 0'0 2014-06-26 19:52:08.834644/ J, |) Z& b9 x$ z( X% J; }/ ~# r
1.3a 0 0 0 0 0 0 0 active+clean 2014-06-30 00:10:58.738782 0'0 88:106 [0,2] 0 [0,2] 0 0'0 2014-06-29 22:26:29.457318 0'0 2014-06-26 19:52:08.6420186 Z3 {, e, S5 d6 \& ]: u
0.3b 37 0 0 0 155189248 137 137 active+clean 2014-06-30 00:28:45.021993 52'137 88:278 [0,2] 0 [0,2] 0 44'40 2014-06-29 22:25:22.275783 0'0 2014-06-26 19:52:08.5105028 ?2 e. m; D: ?2 i2 \
3.38 0 0 0 0 0 0 0 active+clean 2014-06-30 00:16:13.222339 0'0 88:21 [1,0] 1 [1,0] 1 0'0 2014-06-30 00:15:05.446639 0'0 2014-06-30 00:15:05.446639
, O9 x4 K* N- O. N' O4 c- Z' e2.38 0 0 0 0 0 0 0 active+clean 2014-06-30 00:10:58.783103 0'0 88:71 [2,0] 2 [2,0] 2 0'0 2014-06-29 22:29:06.688363 0'0 2014-06-26 19:52:08.8273427 @1 z! m: Y! [/ r& a
1.3b 0 0 0 0 0 0 0 active+clean 2014-06-30 00:10:58.857283 0'0 88:78 [1,0] 1 [1,0] 1 0'0 2014-06-29 22:27:30.017050 0'0 2014-06-26 19:52:08.644820* f" r/ Z4 b- K% }; e+ n7 Q
0.3a 40 0 0 0 167772160 149 149 active+clean 2014-06-30 00:28:47.002342 52'149 88:288 [0,2] 0 [0,2] 0 44'46 2014-06-29 22:25:21.273679 0'0 2014-06-26 19:52:08.508654
( t$ k4 V( ]7 K+ _0 G$ r+ x7 {3.39 0 0 0 0 0 0 0 active+clean 2014-06-30 00:16:13.255056 0'0 88:21 [1,0] 1 [1,0] 1 0'0 2014-06-30 00:15:05.447461 0'0 2014-06-30 00:15:05.4474616 l# R5 A9 {0 c/ i
2.3b 0 0 0 0 0 0 0 active+clean 2014-06-30 00:10:48.935872 0'0 88:57 [1,2] 1 [1,2] 1 0'0 2014-06-29 22:28:35.095977 0'0 2014-06-26 19:52:08.844571' l; Y( w/ h8 n
1.38 0 0 0 0 0 0 0 active+clean 2014-06-30 00:10:48.597540 0'0 88:46 [2,1] 2 [2,1] 2 0'0 2014-06-29 22:28:01.519137 0'0 2014-06-26 19:52:08.633781; E, Y. \- |. Y+ O5 Z9 s( [& o
0.39 48 0 0 0 201326592 164 164 active+clean 2014-06-30 00:25:30.757843 52'164 88:432 [1,0] 1 [1,0] 1 44'32 2014-06-29 22:26:33.823947 0'0 2014-06-26 19:52:08.504628
4 \% |) o/ o- q9 _下面部分省略. t8 x8 b, \2 q
: S4 L# q# i. z) ~+ I4 c$ D, j
2、查看一个PG的map
! d% k! g! W* v+ n" j[root@client ~]# ceph pg map 0.3f( _7 q( }& Z5 E4 L
osdmap e88 pg 0.3f (0.3f) -> up [0,2] acting [0,2] #其中的[0,2]代表存储在osd.0、osd.2节点,osd.0代表主副本的存储位置# k# H# s, ]# @. U
3、查看PG状态& d9 w2 G5 d" k6 G0 V- \
[root@client ~]# ceph pg stat( t) l2 p& C9 @0 e) I) r
v1164: 448 pgs: 448 active+clean; 10003 MB data, 23617 MB used, 37792 MB / 61410 MB avail) m J" j, k& L
4、查询一个pg的详细信息
% C: D- M' d# b, ~* R7 O[root@client ~]# ceph pg 0.26 query0 D# t7 y2 c' M) V0 \6 o- g2 n& C
5、查看pg中stuck的状态5 _- W/ q5 q% f
[root@client ~]# ceph pg dump_stuck unclean6 Z, ~% l' h* N; ]7 _# y
ok
! H& v. `. I8 I[root@client ~]# ceph pg dump_stuck inactive
) M" h( T% G5 H2 {( G+ A$ Wok5 I& p) `% N0 v- F
[root@client ~]# ceph pg dump_stuck stale5 ~$ w* \0 u( N7 Y2 _
ok' Y6 _1 `5 e) C( v3 B9 D/ C; L8 z
6、显示一个集群中的所有的pg统计: x# d3 U, @* S: N
ceph pg dump --format plain6 l' w9 I5 V* _$ S
7、恢复一个丢失的pg
1 M: M3 s, m% }. m! Aceph pg {pg-id} mark_unfound_lost revert' p; w6 s9 }8 t2 x4 L* O! Y
8、显示非正常状态的pg
" N! z9 Z4 s* q" G* kceph pg dump_stuck inactive|unclean|stale
$ e' H( k2 g. }0 D六、pool
' G9 w! X! R* [( y( V) g( B4 B1、查看ceph集群中的pool数量/ l1 a2 O- c% ?2 v( v: I
[root@admin ~]# ceph osd lspools
9 N9 B" E' n" b1 |1 _% \& P0 data,1 metadata,2 rbd,8 E' _# Q9 o' k
2、在ceph集群中创建一个pool! q9 u1 v5 n' j$ M/ @: |( C
ceph osd pool create jiayuan 100 #这里的100指的是PG组$ N& H% }$ Q% G2 @ w
3、为一个ceph pool配置配额
7 E/ ]9 t/ {# o5 {% j9 a5 gceph osd pool set-quota data max_objects 10000
3 |" X/ y: _. c$ j% k( C3 h4、在集群中删除一个pool
3 U+ i- N' W2 W. a% t& N: Hceph osd pool delete jiayuan jiayuan --yes-i-really-really-mean-it #集群名字需要重复两次9 S5 X D8 c8 n: N4 |8 t
5、显示集群中pool的详细信息 `9 `# G- O" K, `1 Z; E: f
[root@admin ~]# rados df
# G, X. r. y# X+ b# ~ cpool name category KB objects clones degraded unfound rd rd KB wr wr KB5 F" L7 ~$ t. }8 t8 [( q
data - 475764704 116155 0 0 0 0 0 116379 4757647041 v8 |" R1 W# J* m1 V
metadata - 5606 21 0 0 0 0 0 314 5833
' z8 D4 E! |" Z. x0 I, y" Mrbd - 0 0 0 0 0 0 0 0 0) O, }8 C6 V* z" e1 v
total used 955852448 116176( U; N# B9 @( {6 {
total avail 639497596
% B) G' S% J! P) W' r& | total space 1595350044
6 p7 M) w t* U2 O, i+ G5 i" I[root@admin ~]#
, ]& o" W0 Q S6、给一个pool创建一个快照& A6 U5 e1 U+ v
[root@admin ~]# ceph osd pool mksnap data date-snap 5 @. e8 n0 p$ K5 w; l
created pool data snap date-snap
8 ?. A$ m- U9 d, G7、删除pool的快照& |- P' I+ `, f3 l
[root@admin ~]# ceph osd pool rmsnap data date-snap
0 W: F* l" o, C- s" K8 H9 a+ mremoved pool data snap date-snap- ]8 u5 ]- H1 [
8、查看data池的pg数量
, z8 G0 }. @- }. J[root@admin ~]# ceph osd pool get data pg_num
' j, z) s: a3 y0 o3 Ypg_num: 648 f1 `6 {# c/ o$ l2 \. k
9、设置data池的最大存储空间为100T(默认是1T)3 c2 v2 n! d* K' J
[root@admin ~]# ceph osd pool set data target_max_bytes 100000000000000, b( o! m y7 g4 d
set pool 0 target_max_bytes to 100000000000000
6 W' v# `6 l% D5 ~, ^% ?9 R" P10、设置data池的副本数是3 f0 R: K" W! T- g& T7 b
[root@admin ~]# ceph osd pool set data size 3+ L' {3 Y: ], D% ^
set pool 0 size to 39 ]# U% `7 C$ n( y9 K9 A
11、设置data池能接受写操作的最小副本为2( S( i' G6 l" w# a5 c- l* }
[root@admin ~]# ceph osd pool set data min_size 2
- h# v" @/ g' s" {! k7 k: qset pool 0 min_size to 2" N' b( |$ F1 ]- }+ h, B
12、查看集群中所有pool的副本尺寸
9 h |1 u, b7 p/ D! l( H! g$ j2 Q v[root@admin mycephfs]# ceph osd dump | grep 'replicated size'& M3 ]5 b* o0 y; U; ?
pool 0 'data' replicated size 3 min_size 2 crush_ruleset 0 object_hash rjenkins pg_num 64 pgp_num 64 last_change 26 owner 0 flags hashpspool crash_replay_interval 45 target_bytes 100000000000000 stripe_width 0
0 h: k. n6 q4 Y; T9 u, mpool 1 'metadata' replicated size 2 min_size 1 crush_ruleset 0 object_hash rjenkins pg_num 64 pgp_num 64 last_change 1 owner 0 flags hashpspool stripe_width 0
' S5 e) v } o3 {: A1 v2 |pool 2 'rbd' replicated size 2 min_size 1 crush_ruleset 0 object_hash rjenkins pg_num 64 pgp_num 64 last_change 1 owner 0 flags hashpspool stripe_width 0! m0 H7 V+ H, Q7 r# b
13、设置一个pool的pg数量
1 o) c! D1 ]* _* L: o+ c; [, ~6 O[root@admin ~]# ceph osd pool set data pg_num 100
4 [2 u& L9 f! J1 e# hset pool 0 pg_num to 1007 m* S) T0 R; H, K3 a9 f# @
14、设置一个pool的pgp数量
" s; C: C8 z& ~, M[root@admin ~]# ceph osd pool set data pgp_num 100
4 `' G+ D8 W" j" ^# Jset pool 0 pgp_num to 100
* E: ]& L" ^8 w5 u3 z& b! |" E# B# R6 q: |$ C' P2 G
七、rados和rbd指令
, T: D6 v5 }# a! [$ b a1、rados命令使用方法
( B; w# M, r& o0 L; |+ O/ _+ F" a(1)、查看ceph集群中有多少个pool (只是查看pool)! Z. H+ t. b' H! T8 ^6 A: |
[root@node-44 ~]# rados lspools
( ]+ G8 H; r7 k% O: i, kdata
5 A" D) `8 K X7 p' s" h+ h1 i- Jmetadata9 f/ ^# x) t# T. P
rbd
1 {: z. s8 W3 i6 y" Oimages4 Q+ Z* h% C3 e2 `% M
volumes
+ z- _% h! _9 L3 t( d* P6 {.rgw.root
0 f( u6 n( h- i4 d: A/ tcompute
$ T; M4 F% f3 V6 b- n4 m8 x.rgw.control# D3 ?) b: z# f+ Q
.rgw! ^- z7 N3 g* c+ U; H% M
.rgw.gc
6 z4 V% }9 q& p) d" H8 d. T.users.uid/ i4 _: ]4 b3 d3 i% _& q! P
(2)、查看ceph集群中有多少个pool,并且每个pool容量及利用情况! \2 S4 V, T/ r3 Z5 r/ X" J
[root@node-44 ~]# rados df . c! M; S* M* N$ W% n9 Y
pool name category KB objects clones degraded unfound rd rd KB wr wr KB& F3 c# [# D4 q) n" A& U
.rgw - 0 0 0 0 0 0 0 0 0
4 u: o7 r- l/ N$ v" T4 k.rgw.control - 0 8 0 0 0 0 0 0 0
# j) }1 W, Y* Y.rgw.gc - 0 32 0 0 0 57172 57172 38136 0* C2 [" q; k) \2 d* U6 f( c% E
.rgw.root - 1 4 0 0 0 75 46 10 10
6 X7 s0 n0 v0 l# K6 Z& ~.users.uid - 1 1 0 0 0 0 0 2 1( k+ f: e, s2 ?" I
compute - 67430708 16506 0 0 0 398128 75927848 1174683 222082706; E9 l: |$ z& r
data - 0 0 0 0 0 0 0 0 0
8 P# J/ ^& q+ J) R: X; himages - 250069744 30683 0 0 0 50881 195328724 65025 388375482& M! G' ]; ]# k# y6 G2 R
metadata - 0 0 0 0 0 0 0 0 0
, S2 P' c/ Y! c- P$ }/ x( o: Yrbd - 0 0 0 0 0 0 0 0 0
3 _: S. h. L# uvolumes - 79123929 19707 0 0 0 2575693 63437000 1592456 163812172) c; h6 L: I( e
total used 799318844 66941* U9 m! ~/ f! A1 i
total avail 11306053720- l9 r; W3 W2 ~% o* g
total space 12105372564
0 H- `$ g% `3 L[root@node-44 ~]#
7 ^1 _" U1 L# i2 ^$ l4 |' C# S$ j(3)、创建一个pool
. N0 P/ ~- _5 p- ^# v. V) Y8 h, f[root@node-44 ~]#rados mkpool test
5 l8 L5 C& ^2 m4 q! J5 S( t& z(4)、查看ceph pool中的ceph object (这里的object是以块形式存储的)
) ~8 ?: j. Z! U0 c' I; i7 f[root@node-44 ~]# rados ls -p volumes | more' I' C1 T* i# L2 U8 k
rbd_data.348f21ba7021.0000000000000866
' z; ]$ T% c; W! n1 U6 srbd_data.32562ae8944a.0000000000000c79
" V+ h: n/ V9 y+ a$ Trbd_data.589c2ae8944a.00000000000031ba
/ ?- R" C: |: |% I4 r8 V7 erbd_data.58c9151ff76b.00000000000029af
; N6 i9 x* y/ @- B; mrbd_data.58c9151ff76b.0000000000002c19
7 q8 x1 |' ^% H i/ {6 Vrbd_data.58c9151ff76b.0000000000000a5a, [( A1 h8 g1 ~9 o# a+ i
rbd_data.58c9151ff76b.0000000000001c697 M* ~* }- w5 _* V1 y: q
rbd_data.58c9151ff76b.000000000000281d
. F1 x( \! E6 s( P prbd_data.58c9151ff76b.0000000000002de1) O5 o4 D) v- E1 T6 z3 _2 n6 l, ~
rbd_data.58c9151ff76b.0000000000002dae7 m/ J* o; P, @7 f% d& j- F
(5)、创建一个对象object
" M/ m6 G) \) z4 _[root@admin-node ~]# rados create test-object -p test
" y% w2 L. @2 P8 I" I
5 ] [( f J# @! |( ^- x) B! E* H[root@admin-node ~]# rados -p test ls4 e9 `6 M9 R1 q2 g% J
test-object+ p k7 \* W0 l# s: ~; r) U
(6)、删除一个对象. V S$ P, j8 S+ y/ v5 x
[root@admin-node ~]# rados rm test-object-1 -p test/ b; y3 t( X7 x+ d w7 \
4 x9 q' @" e6 c& w7 a3 h" B
! m( t4 C, D2 Q+ ~ C6 U
2、rbd命令的用法
) b4 t" ]: Q7 t3 q3 D V
9 M: Z5 I2 i+ T( K, n(1)、查看ceph中一个pool里的所有镜像
5 J1 h8 p1 k, m" X/ m ^; n+ }[root@node-44 ~]# rbd ls images
- J, q& E! J5 e( S* Y2014-05-24 17:17:37.043659 7f14caa6e700 0 -- :/1025604 >> 10.49.101.9:6789/0 pipe(0x6c5400 sd=3 :0 s=1 pgs=0 cs=0 l=1 c=0x6c5660).fault
$ E4 o' f( Y% f3 R, Z0 P I2182d9ac-52f4-4f5d-99a1-ab3ceacbf0b9
! Z" g& }4 u. O9 m34e1a475-5b11-410c-b4c4-69b5f780f03c
: t) ]8 o6 l+ ^, u, U1 A4 a; p% u476a9f3b-4608-4ffd-90ea-8750e804f46e$ ~+ \8 O/ g3 @+ b3 i9 r7 o
60eae8bf-dd23-40c5-ba02-266d5b942767
2 s: P$ ?' X" C0 q6 {. }; D5 E72e16e93-1fa5-4e11-8497-15bd904eeffe
3 B) F0 Q, v' e* f+ n+ U/ E74cb427c-cee9-47d0-b467-af217a67e60a
2 E# P( F4 `4 d4 X$ q8f181a53-520b-4e22-af7c-de59e8ccca78
) x2 ?) j# ?3 {3 [0 c7 @9867a580-22fe-4ed0-a1a8-120b8e8d18f4! D2 D+ w) b. C+ W
ac6f4dae-4b81-476d-9e83-ad92ff25fb13 @4 o1 n5 J6 K. `6 r: n7 t8 m
d20206d7-ff31-4dce-b59a-a622b0ea3af6
( y8 t' J2 ~' ]2 x1 w$ F
' u" Y# E" j$ v, v5 b4 m[root@node-44 ~]# rbd ls volumes- z7 s3 \1 P# L3 _
2014-05-24 17:22:18.649929 7f9e98733700 0 -- :/1010725 >> 10.49.101.9:6789/0 pipe(0x96a400 sd=3 :0 s=1 pgs=0 cs=0 l=1 c=0x96a660).fault' b& h5 q: c+ x8 j( z5 O! }% D
volume-0788fc6c-0dd4-4339-bad4-e9d78bd5365c2 [/ O' i1 P/ x+ n! _8 o
volume-0898c5b4-4072-4cae-affc-ec59c2375c51
0 T- Z; j3 S/ h' W; K5 svolume-2a1fb287-5666-4095-8f0b-6481695824e2
* N' c6 k/ H0 X- e- Qvolume-35c6aad4-8ea4-4b8d-95c7-7c3a8e8758c5
( B* \' O+ U5 o. s+ J3 w! b( {volume-814494cc-5ae6-4094-9d06-d844fdf485c4
`! I3 p6 ~, yvolume-8a6fb0db-35a9-4b3b-9ace-fb647c2918ea. D) ?8 s& `, J
volume-8c108991-9b03-4308-b979-51378bba2ed17 O) z' J/ d4 K! B1 O- _% \
volume-8cf3d206-2cce-4579-91c5-77bcb4a8a3f8
+ S# g2 u- i6 U( W# j9 B& R9 }volume-91fc075c-8bd1-41dc-b5ef-844f23df177d1 i; C9 u, M/ ^1 G+ m, N
volume-b1263d8b-0a12-4b51-84e5-74434c0e73aa1 g: D% S) Z+ P2 F
volume-b84fad5d-16ee-4343-8630-88f265409feb! `: D" `! k2 D; T
volume-c03a2eb1-06a3-4d79-98e5-7c62210751c3
/ K( B% b( j8 ^8 Xvolume-c17bf6c0-80ba-47d9-862d-1b9e9a48231e+ H; d% t, p; C& F6 J
volume-c32bca55-7ec0-47ce-a87e-a883da4b4ccd/ {' c+ X; _- J* ~! Y4 P3 V" p# M
volume-df8961ef-11d6-4dae-96ee-f2df8eb4a08c1 J b, Z% a+ \, p6 \
volume-f1c38695-81f8-44fd-9af0-458cddf103a3
. V8 V7 k: [6 U! H! K# |0 v( e/ d# X) f0 ^4 B: W4 _$ Z. V( H8 v" e
(2)、查看ceph pool中一个镜像的信息1 j) _5 I/ ?! {% R2 K/ a
[root@node-44 ~]# rbd info -p images --image 74cb427c-cee9-47d0-b467-af217a67e60a
8 j0 R! C- Z4 f1 W- w! n, Y) urbd image '74cb427c-cee9-47d0-b467-af217a67e60a':- ]: a+ n' F/ C- ^$ T
size 1048 MB in 131 objects+ \" T& M( P1 U: M* E$ A
order 23 (8192 KB objects)
4 N# b9 y3 a: u) B block_name_prefix: rbd_data.95c7783fc0d0
* p- |" A5 J8 | format: 2) F% h) n, K1 ]0 l) }- n
features: layering G) ^# Y- R# x: D
(3)、在test池中创建一个命名为zhanguo的10000M的镜像# f* b* b% \' p+ z! j! U
[root@node-44 ~]# rbd create -p test --size 10000 zhanguo c7 x# U- X/ R9 v1 b
[root@node-44 ~]# rbd -p test info zhanguo #查看新建的镜像的信息/ D+ a/ K$ [- f5 }4 J8 j8 b% x
rbd image 'zhanguo':0 k3 p$ h4 {4 a* f
size 10000 MB in 2500 objects2 [3 n. h% C g5 G1 V# @( u
order 22 (4096 KB objects)7 j1 P I3 D! _7 k7 P( U
block_name_prefix: rb.0.127d2.2ae8944a8 n+ s0 C- l; }* P" O3 I; e }
format: 1
b. Y" `6 t E) A[root@node-44 ~]#
w' `, P9 c) V5 h* p8 G, N1 Z(4)、删除一个镜像
, n) g" p$ F9 {* U# T7 s3 N[root@node-44 ~]# rbd rm -p test lizhanguo
7 j' ]4 A& N( x3 y. U2 XRemoving image: 100% complete...done., J8 }) f1 X6 p( z- ]+ [9 q; {, R8 a Q
(5)、调整一个镜像的尺寸2 M9 f9 P d0 ]6 A
[root@node-44 ~]# rbd resize -p test --size 20000 zhanguo
7 W3 {) i, l3 D% f4 u$ ~Resizing image: 100% complete...done.
5 J- R9 R; p9 m& H[root@node-44 ~]# rbd -p test info zhanguo #调整后的镜像大小
2 O# m. M' g p) P9 m7 irbd image 'zhanguo':
$ r6 k3 f; l4 j D9 E0 [2 m, b8 A size 20000 MB in 5000 objects o6 d x( q( X0 M6 I' x) [
order 22 (4096 KB objects)! O0 k' k( F; @8 v- W3 @8 Y
block_name_prefix: rb.0.127d2.2ae8944a
: P9 w6 ]; `3 a8 R5 w- J format: 1
1 Z" k4 ~; X& S/ t8 [# H' p[root@node-44 ~]#
. L4 b& v5 @# I(6)、给一个镜像创建一个快照
1 {) S' l/ s+ k6 o5 u6 |& B[root@node-44 ~]# rbd snap create test/zhanguo@zhanguo123 #池/镜像@快照
) L$ `3 \+ S3 l l( q& o; r2 R[root@node-44 ~]# rbd snap ls -p test zhanguo
/ r# i( f1 h$ a- tSNAPID NAME SIZE
6 m% l. J7 E- K4 m5 p3 r 2 zhanguo123 20000 MB
' X1 ^0 G' H) i8 f[root@node-44 ~]#
" F; o# w _. ^, G, n[root@node-44 ~]# rbd info test/zhanguo@zhanguo123
! Q: n) h1 E: v7 ^* ^rbd image 'zhanguo': B9 ^! ?# l( P9 m# Q9 f9 \, h4 y/ O
size 20000 MB in 5000 objects5 E# q4 \8 X3 {/ |
order 22 (4096 KB objects)* L, l# K8 \) i W0 k. H: U
block_name_prefix: rb.0.127d2.2ae8944a
+ J* k2 @! ~: a: u format: 1( N9 o( q C) v& x
protected: False7 [' L& i" }0 r, l5 I5 b
[root@node-44 ~]#
7 A& N/ i( @ d$ Q' z* q. n# l$ P(7)、查看一个镜像文件的快照! _# J! b: l5 H; U
[root@os-node101 ~]# rbd snap ls -p volumes volume-7687988d-16ef-4814-8a2c-3fbd85e928e4
- F" f7 a! N. bSNAPID NAME SIZE
- u; E. F1 `7 P/ N 5 snapshot-ee7862aa-825e-4004-9587-879d60430a12 102400 MB / X; }3 p1 T; D: s- X6 R
(8)、删除一个镜像文件的一个快照快照 Y! L3 P! I5 D7 \4 D
快照所在的池/ 快照所在的镜像文件 @ 快照
4 L, h# {) {# B& h5 `[root@os-node101 ~]# rbd snap rm volumes/volume-7687988d-16ef-4814-8a2c-3fbd85e928e4@snapshot-ee7862aa-825e-4004-9587-879d60430a12: L5 Y0 q, X4 u* C6 ~% k
rbd: snapshot 'snapshot-60586eba-b0be-4885-81ab-010757e50efb' is protected from removal. ~: x6 b* X; @$ w; I c! Y5 z7 H+ q
2014-08-18 19:23:42.099301 7fd0245ef760 -1 librbd: removing snapshot from header failed: (16) Device or resource busy1 L$ Y \$ L6 r* R z3 s
上面不能删除显示的报错信息是此快照备写保护了,下面命令是删除写保护后再进行删除。
0 l/ P' j+ o- E' r$ n$ A[root@os-node101 ~]# rbd snap unprotect volumes/volume-7687988d-16ef-4814-8a2c-3fbd85e928e4@snapshot-ee7862aa-825e-4004-9587-879d60430a12& D a* V, f B u$ G: z
[root@os-node101 ~]# rbd snap rm volumes/volume-7687988d-16ef-4814-8a2c-3fbd85e928e4@snapshot-ee7862aa-825e-4004-9587-879d60430a12
" M7 q' o5 X9 k; F x5 d2 U/ ^' }(9)删除一个镜像文件的所有快照9 Y! T: g" c3 d& \2 X0 |
[root@os-node101 ~]# rbd snap purge -p volumes volume-7687988d-16ef-4814-8a2c-3fbd85e928e4
- J/ C6 i- G2 d. ~Removing all snapshots: 100% complete...done.6 ~! V6 y+ G N* n
6 U2 s7 R0 |3 W' n+ w q0 M) d
3 D; w, G7 k& y6 p6 B- U: ?+ G! i
(10)、把ceph pool中的一个镜像导出
9 G+ _+ n# @" ^; O导出镜像2 R7 S/ l' V: I$ ?" C2 Z2 o5 ^
[root@node-44 ~]# rbd export -p images --image 74cb427c-cee9-47d0-b467-af217a67e60a /root/aaa.img% Q, [1 }& ?2 x9 t- M
2014-05-24 17:16:15.197695 7ffb47a9a700 0 -- :/1020493 >> 10.49.101.9:6789/0 pipe(0x1368400 sd=3 :0 s=1 pgs=0 cs=0 l=1 c=0x1368660).fault
, ]- W2 S3 C& h; o) nExporting image: 100% complete...done.
0 T9 z5 D) D% n9 p9 G- U0 h# Z* Q7 o' K/ o3 U2 }/ f
导出云硬盘0 X. C5 F( w8 r7 Y: A: C' }7 u
[root@node-44 ~]# rbd export -p volumes --image volume-470fee37-b950-4eef-a595-d7def334a5d6 /var/lib/glance/ceph-pool/volumes/Message-JiaoBenJi-10.40.212.246 S: D' |5 v9 ^
2014-05-24 17:28:18.940402 7f14ad39f700 0 -- :/1032237 >> 10.49.101.9:6789/0 pipe(0x260a400 sd=3 :0 s=1 pgs=0 cs=0 l=1 c=0x260a660).fault
9 C, c( V) R: [: v3 N. q+ RExporting image: 100% complete...done.
# H6 S+ S: {: O$ E+ ?) d0 u7 a( x/ D4 K+ V
(11)、把一个镜像导入ceph中 (但是直接导入是不能用的,因为没有经过openstack,openstack是看不到的)7 {8 a$ I6 |! w5 F ?( S( Z- y: j
[root@node-44 ~]# rbd import /root/aaa.img -p images --image 74cb427c-cee9-47d0-b467-af217a67e60a
0 @- C; c& I0 x( U8 p0 |5 cImporting image: 100% complete...done.
7 L* X' e$ E1 N# r; x" Q! ~7 x& b& @7 b' v( [6 H6 }1 D7 C
|
|