|
|
1、启动一个ceph 进程% D0 F% I, r" h5 W
启动mon进程
+ Z7 x/ L- o$ F& {service ceph start mon.node1
3 O1 ]5 Q, p9 `& |: M启动msd进程6 y7 z, {" n4 V4 t# y* S! m
service ceph start mds.node1& G# d) E$ t2 f
启动osd进程
& s. l7 D7 G3 W6 {; @) V4 H service ceph start osd.0- a; X4 ?! K0 p$ X* _5 A
2、查看机器的监控状态; H4 C# O1 b" c& G/ e0 }: t2 x
[root@client ~]# ceph health
: [5 c! f2 p( `0 R6 f4 jHEALTH_OK. C" i5 y. m* @+ K
3、查看ceph的实时运行状态
2 X2 d1 z9 `# v `- S0 s/ D[root@client ~]# ceph -w5 l J' P9 X$ T" g
cluster be1756f2-54f7-4d8f-8790-820c82721f17
5 q& u! A/ k4 G- N, R( B health HEALTH_OK
/ \% g2 E* t. x" s# O& \% ~ 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,node39 b! m1 G3 V& N
mdsmap e95: 1/1/1 up {0=node2=up:active}, 1 up:standby; }# P) m- b9 O. X
osdmap e88: 3 osds: 3 up, 3 in, H9 e! Y K9 M
pgmap v1164: 448 pgs, 4 pools, 10003 MB data, 2520 objects
' p' @% |( o, ]: }# i, I3 {4 j. r 23617 MB used, 37792 MB / 61410 MB avail# h4 u# ^9 d; j
448 active+clean/ G% @+ \/ W9 V! l
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 avail: l* _6 M' a9 c b
/ O- f) H0 p: q7 m3 d5 g4、检查信息状态信息
; J5 E: g: W1 f' ][root@client ~]# ceph -s0 n- G( s. k- I: B- N9 A
cluster be1756f2-54f7-4d8f-8790-820c82721f17
9 O) i C% [8 U6 l7 | health HEALTH_OK0 g/ i0 u8 [0 [" F1 z4 U( t. M8 a! K
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 L! z) V) `, b0 u mdsmap e95: 1/1/1 up {0=node2=up:active}, 1 up:standby9 l7 C) z2 W6 _; C# U3 a
osdmap e88: 3 osds: 3 up, 3 in7 C1 d g* G% h2 I) g
pgmap v1164: 448 pgs, 4 pools, 10003 MB data, 2520 objects
5 ~/ e6 }1 }& H$ p) | 23617 MB used, 37792 MB / 61410 MB avail
- t' [- J6 q5 ] 448 active+clean+ t: i$ N5 _2 j: A( O. P3 C' a
[root@client ~]# & P' j5 s x- a- _
+ w% F% s( ?# @# s8 @5、查看ceph存储空间
( C- o- c! k8 N) U. k[root@client ~]# ceph df
- h: E( ]: K; P0 l; y6 WGLOBAL:
0 w- u6 [! }; F% R SIZE AVAIL RAW USED %RAW USED # O. v" V# Q- r
61410M 37792M 23617M 38.46 # F6 l3 M2 b) _5 Y9 N9 y# s
POOLS:3 [9 `' b5 h6 G9 Z
NAME ID USED %USED OBJECTS
" {0 N0 Z" t/ M& e: z data 0 10000M 16.28 2500
+ S4 `& K. Z( S9 R% J metadata 1 3354k 0 20
! h; t: ` }) ~7 D rbd 2 0 0 0
: K6 ? t3 z5 D' V7 ~( i4 M! S& n jiayuan 3 0 0 0 8 P1 c, t( L# `3 \# u9 j
[root@client ~]#
' b* `2 K. U, a% r$ S9 q7 I0 W6、删除一个节点的所有的ceph数据包# Z0 t6 c$ y7 N( l5 n
[root@node1 ~]# ceph-deploy purge node1
1 s7 [/ p3 E1 b1 n* ][root@node1 ~]# ceph-deploy purgedata node1) _8 e1 r7 [- H5 p) N- b
7、为ceph创建一个admin用户并为admin用户创建一个密钥,把密钥保存到/etc/ceph目录下:
& u0 L0 X: U. T3 m. yceph auth get-or-create client.admin mds 'allow' osd 'allow *' mon 'allow *' > /etc/ceph/ceph.client.admin.keyring
- s4 c& G& h5 F2 U+ [, ], ~或: |9 f- J3 n0 v1 {6 U- u7 Z% \
ceph auth get-or-create client.admin mds 'allow' osd 'allow *' mon 'allow *' -o /etc/ceph/ceph.client.admin.keyring
- _& Y* X8 T" U0 f8、为osd.0创建一个用户并创建一个key" b/ U9 v. E+ T" Z2 D
ceph auth get-or-create osd.0 mon 'allow rwx' osd 'allow *' -o /var/lib/ceph/osd/ceph-0/keyring) T6 B$ A" k9 u( `2 l; |$ x
9、为mds.node1创建一个用户并创建一个key
) V5 r$ X- V' h* q/ mceph auth get-or-create mds.node1 mon 'allow rwx' osd 'allow *' mds 'allow *' -o /var/lib/ceph/mds/ceph-node1/keyring
. f! F# K- W, s9 q5 w10、查看ceph集群中的认证用户及相关的key
' U( L* \ L- Lceph auth list
! E! {' l) B/ T* [11、删除集群中的一个认证用户# o; \9 F3 M# |
ceph auth del osd.0) a3 }8 K* t+ o7 H! Y# E6 l
12、查看集群的详细配置# n% }% B0 L" O* k5 G5 r4 w
[root@node1 ~]# ceph daemon mon.node1 config show | more9 ~' I, I4 c9 M
13、查看集群健康状态细节
; P8 J/ [4 K/ e# _, x1 ^" o8 y& l I[root@admin ~]# ceph health detail8 R( D% Y. a+ ^% ~' {/ M
HEALTH_WARN 12 pgs down; 12 pgs peering; 12 pgs stuck inactive; 12 pgs stuck unclean' Y1 J$ e3 h% o& i& E; n4 `8 Y
pg 3.3b is stuck inactive since forever, current state down+peering, last acting [1,2]
" ^% o, z- A: `( [* ^2 h- R& opg 3.36 is stuck inactive since forever, current state down+peering, last acting [1,2]
: w& q5 k. G6 y5 S/ Zpg 3.79 is stuck inactive since forever, current state down+peering, last acting [1,0]
$ B: D8 H1 C, |pg 3.5 is stuck inactive since forever, current state down+peering, last acting [1,2]( ^/ b' k3 g7 z3 I5 ]
pg 3.30 is stuck inactive since forever, current state down+peering, last acting [1,2]
, d) u. |$ R, Z& [pg 3.1a is stuck inactive since forever, current state down+peering, last acting [1,0]
% V; n3 B; D! {2 O5 V: x. ypg 3.2d is stuck inactive since forever, current state down+peering, last acting [1,0]
3 l" W+ I/ t; g- S1 mpg 3.16 is stuck inactive since forever, current state down+peering, last acting [1,2]
8 I F7 q) }: P, R# L/ K
; Z- u% z/ ^ C4 ~14、查看ceph log日志所在的目录
. X! \" \3 E6 m- M[root@node1 ~]# ceph-conf --name mon.node1 --show-config-value log_file
# b2 Q0 z8 z9 u1 Y" k/var/log/ceph/ceph-mon.node1.log
$ w8 L( }2 s( R5 X
k, i9 [$ s/ t W+ j0 d' T& n" W
6 y# w) {" D! o; d& C* G$ d二、mon) R9 P8 ]/ f3 {$ Y) _
1、查看mon的状态信息6 V+ D8 h3 \9 o3 a" P
[root@client ~]# ceph mon stat
& w6 X9 b/ l5 k5 o. {9 O( }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
* r- F1 i7 V2 _1 T b2、查看mon的选举状态$ G4 k; W" Z' H0 Q, w. [
[root@client ~]# ceph quorum_status9 ?: g: b. P t! o" ~
{"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"}]}}! [1 R. \9 m3 K, R: ~6 a! J
3、查看mon的映射信息) @; ^$ P+ [2 k$ ^4 c0 Z
[root@client ~]# ceph mon dump4 Q q3 H* u# U
dumped monmap epoch 2
: A- {; h9 X; n2 l* M2 m3 ?+ _epoch 26 l$ u o3 H0 i f3 u6 g) }2 T+ Q
fsid be1756f2-54f7-4d8f-8790-820c82721f17
& t4 E: @1 U; r) L# t$ o0 xlast_changed 2014-06-26 18:43:51.671106
4 B/ b* ]; C- N+ g |created 0.000000
1 f! F7 e' v M5 e+ j3 ?: f0: 10.240.240.211:6789/0 mon.node11 U4 v d; I: |: {* N" S
1: 10.240.240.212:6789/0 mon.node2* Z1 T, j3 g/ g: B+ f- J* _- s
2: 10.240.240.213:6789/0 mon.node3
, _& J o1 d+ T! Y2 Q0 S, `4、删除一个mon节点
7 z$ A1 \; i& `% A* `[root@node1 ~]# ceph mon remove node1% W3 f. X2 U$ M. v: A% I
removed mon.node1 at 10.39.101.1:6789/0, there are now 3 monitors5 U6 V3 ], Q! V' m4 A
2014-07-07 18:11:04.974188 7f4d16bfd700 0 monclient: hunting for new mon; `# ~6 O. S# g( ?* K
5、获得一个正在运行的mon map,并保存在1.txt文件中) Y9 \! ~/ D+ j4 g7 U3 W
[root@node3 ~]# ceph mon getmap -o 1.txt
, x! ~$ O7 |" T4 z, hgot monmap epoch 6
* V1 e. L0 E5 S% n# z6、查看上面获得的map
( H: [7 X1 K3 u4 @- _+ a[root@node3 ~]# monmaptool --print 1.txt 0 `6 G8 v# s% k: V$ P
monmaptool: monmap file 1.txt
, E3 w; \- c6 N# ?1 U7 @epoch 69 L0 p- D8 ]% u1 z1 J! J6 W
fsid 92552333-a0a8-41b8-8b45-c93a8730525e. I. f; j8 `' f4 p9 j' p8 x
last_changed 2014-07-07 18:22:51.927205
- x0 h& G7 Q8 k0 g$ `created 0.000000: M- \5 M2 a& o4 i2 e5 x* B
0: 10.39.101.1:6789/0 mon.node19 g c- @: @5 x% i
1: 10.39.101.2:6789/0 mon.node2: z) b/ q8 t7 ~) u( m8 b2 r
2: 10.39.101.3:6789/0 mon.node3
& h5 f9 A1 T" J B& x# }0 H% _[root@node3 ~]#& p4 b$ c% `. ]+ S
7、把上面的mon map注入新加入的节点
7 y# U0 {1 {* iceph-mon -i node4 --inject-monmap 1.txt9 a/ B1 s5 Q) n2 j
8、查看mon的amin socket) I9 N% w: g# C$ u. C% P: o
root@node1 ~]# ceph-conf --name mon.node1 --show-config-value admin_socket* V# Z; N# \$ c; a
/var/run/ceph/ceph-mon.node1.asok
; f4 g! C5 h; u9 W) x' D9、查看mon的详细状态3 G3 V* ^/ R% o8 S% v9 X
[root@node1 ~]# ceph daemon mon.node1 mon_status \2 m8 J R) F: {, ?- V+ C) E
{ "name": "node1",
. w# P: C2 ]7 D& C% x "rank": 0,
' }, i* s# J, p2 t3 ~ "state": "leader",
r/ J& A- W) D* H5 K "election_epoch": 96,: u3 w; Y% r, g# B
"quorum": [
/ ~& P3 d! K. X* W 0,/ A3 \4 M- g t' @5 J I
1,
- N: \9 }' r9 Y3 ?/ ~4 K 2],6 K( W! q9 q- {( O
"outside_quorum": [],! z6 ^1 Y/ G" b2 {
"extra_probe_peers": [
D2 ?0 E4 d. r, J0 H, P "10.39.101.4:6789\/0"],# ~% f6 Z1 x3 a# n, J7 `
"sync_provider": [],. V. o* m/ W0 U( N& ?% @
"monmap": { "epoch": 6,
( \6 y4 F) k6 X0 \" F: b "fsid": "92552333-a0a8-41b8-8b45-c93a8730525e",
0 t3 R7 E7 c6 X0 S0 }) m: P "modified": "2014-07-07 18:22:51.927205",
s# W* Z' U% `9 |6 S4 K "created": "0.000000",% v! k3 y- D3 q
"mons": [$ ]$ C% o* o7 ?/ K: d
{ "rank": 0,6 P! {: {' ]5 R* d
"name": "node1", G( Z+ v* a5 q) Q% Z1 Z
"addr": "10.39.101.1:6789\/0"},
3 x3 b; s: F5 ] { "rank": 1,, \% v: W/ N& I) T0 p. R
"name": "node2",# _/ T! k! e9 _7 E. p. U9 B u
"addr": "10.39.101.2:6789\/0"},
8 Y! B, G8 R! r9 \+ B3 H { "rank": 2,
+ Q) p' p5 P* z$ M "name": "node3",
: q9 g x% h3 M7 o "addr": "10.39.101.3:6789\/0"}]}# L6 C3 X; L1 K3 P2 A/ }
10、删除一个mon节点
2 J$ b/ X. L/ { @" l6 |1 N0 `[root@os-node1 ~]# ceph mon remove os-node1- ^) W) ~ {6 p2 d) X3 ^
removed mon.os-node1 at 10.40.10.64:6789/0, there are now 3 monitors3 |# I. @3 B k: ^ Z
; |+ n/ p/ o9 o三、msd
$ N8 ]# h# R2 I6 g: B- X1、查看msd状态
1 O g. n' s9 X7 V4 ^+ p[root@client ~]# ceph mds stat; q5 \( ?) T, ?2 p! |8 K
e95: 1/1/1 up {0=node2=up:active}, 1 up:standby) S$ o# j/ G1 k+ i$ d1 e! o
2、查看msd的映射信息
O: P# l7 z: N& ?[root@client ~]# ceph mds dump. f$ `0 @" Z \
dumped mdsmap epoch 95
7 C7 J/ H- c6 b' Xepoch 952 _6 G. l0 }0 {) j5 B' S! J) s
flags 0
$ o7 c4 R" U$ {3 g& bcreated 2014-06-26 18:41:57.686801
$ c, T0 @) [% }( L# q6 fmodified 2014-06-30 00:24:11.749967# ~/ f" Q0 L9 f3 i+ N& k
tableserver 0
& U/ h! D7 l croot 0, H+ V6 |$ e( K9 m0 w
session_timeout 60# J4 m# }0 H4 R0 B9 w# `
session_autoclose 300" Y5 U) ~+ p4 z4 T* R7 @
max_file_size 10995116277761 o4 E8 C4 D: f7 _6 z
last_failure 84
6 q! c% X5 V; Elast_failure_osd_epoch 81: Z* L9 U5 K( I
compat 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}0 Y% o+ h- Y5 `$ P1 y9 J. H5 K
max_mds 1
- X3 i8 M2 N$ e5 @' n' X0 J7 ]( T% Vin 0
* e, Y3 W9 p$ e: n) G. c, m8 nup {0=5015}
+ @1 q: z; D1 h: B& `failed: _; F+ C4 p$ a6 q B t8 `# ]
stopped
& g, |5 x. }1 p' g# S6 |) \ ldata_pools 07 g+ C0 s, l; [0 {7 q0 f
metadata_pool 12 T% E/ b4 i) k0 ?* i; I, S
inline_data disabled
. c5 f6 R; q- X ~/ Z+ X9 D" ^7 y( P3 s5015: 10.240.240.212:6808/3032 'node2' mds.0.12 up:active seq 30
( }1 _8 s: G2 V4 E5012: 10.240.240.211:6807/3459 'node1' mds.-1.0 up:standby seq 38
) b6 ?, }$ \8 u3、删除一个mds节点
9 z, m* g$ I( T[root@node1 ~]# ceph mds rm 0 mds.node12 z+ T+ U1 e' h* T/ i; ?
mds gid 0 dne/ s7 q3 }- s" e. ]+ ?
' ^6 }# C/ j" ?/ v; {四、osd
" h6 K: M, V. ~7 B; I1、查看ceph osd运行状态0 L7 F/ k7 x' h8 A. Y# j1 \2 ~
[root@client ~]# ceph osd stat
$ J0 c4 L' M3 V% z osdmap e88: 3 osds: 3 up, 3 in$ w. r& S+ S% t# j6 v+ l& p. W
1 _2 l6 o C3 p; h2、查看osd映射信息. }& s. O7 a9 I7 c
[root@client ~]# ceph osd dump4 u3 d* x: e! e3 f5 B: h
epoch 88
$ ?7 N) P/ a6 dfsid be1756f2-54f7-4d8f-8790-820c82721f17
3 A) U; x+ z+ w7 z6 L# ^7 q, icreated 2014-06-26 18:41:57.687442
$ o: x' f' o' m4 H0 M0 dmodified 2014-06-30 00:46:27.179793
& _) c5 b* Q5 D8 ]0 `flags 9 s J6 G% e5 Z u/ ^0 K( q, v7 y
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 04 M# V5 ?, ?8 Y$ q7 j& |, s6 Y
pool 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
: K9 E) \" N! T# v4 Gpool 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
3 G3 N6 b: U' d- s: f1 Y9 bpool 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, a- E6 y+ V7 c% q% F$ A
max_osd 3
0 q9 f: F3 k! josd.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-6ed44ab74ff0
9 s$ G; ^; S9 J: gosd.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; @ ]* e9 ~8 {
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- g/ }- F% d, W- P! y
[root@client ~]#
* | j4 q% n$ p5 T
2 W- t8 m4 r @! ^2 X3、查看osd的目录树 s1 c/ t# Y j% d2 A+ Q
[root@client ~]# ceph osd tree
3 ]/ f& C4 m$ W* W1 r# id weight type name up/down reweight. a F5 m! A& a8 ^* ?: y3 g4 i
-1 3 root default' v: w: @1 c; ~
-2 1 host node1; o* e% {- L4 o
0 1 osd.0 up 10 a# B5 g a; _6 A4 H+ M
-3 1 host node2 G$ M @9 N8 t
1 1 osd.1 up 1
8 B3 G- T9 q; o& q-4 1 host node3
5 Y6 _3 B! }% c, k, u2 1 osd.2 up 1, a; {' t/ G- M
$ }8 G4 B0 g0 x4、down掉一个osd硬盘
; Z4 O; K+ F2 S5 _2 D[root@node1 ~]# ceph osd down 0 #down掉osd.0节点' F. ~( H* J0 _& J* k1 G* J/ y: |* @
5、在集群中删除一个osd硬盘3 {) F+ m8 u x: C5 B
[root@node4 ~]# ceph osd rm 01 i0 p; r, y8 O3 T( _! y& [
removed osd.08 S: ~9 E2 i5 g6 }
6、在集群中删除一个osd 硬盘 crush map6 Z+ o9 K! Q- Q
[root@node1 ~]# ceph osd crush rm osd.0
( X; u$ }8 K( I; S7、在集群中删除一个osd的host节点
" G" t1 v; ]+ B3 v1 R[root@node1 ~]# ceph osd crush rm node17 O4 v* l" Q$ }" Z4 y
removed item id -2 name 'node1' from crush map! R6 o2 n \# j( J) n
+ f r. m8 |( v H# l
查看最大osd的个数
) b- j- D% l, `" x[root@node1 ~]# ceph osd getmaxosd
& @: b8 \. o- @" q$ smax_osd = 4 in epoch 514 #默认最大是4个osd节点
- R) B( ^( j( j k7 Z3 J* O* T9 }6 l8、设置最大的osd的个数(当扩大osd节点的时候必须扩大这个值)+ s3 i- z9 [; w# Z' l
[root@node1 ~]# ceph osd setmaxosd 10
& }, Y0 K2 [, N' r6 P9、设置osd crush的权重为1.0
7 B, n8 C! H nceph osd crush set {id} {weight} [{loc1} [{loc2} ...]]- H; t( t8 z- @7 X4 y" a
例如:7 r; u1 n& n. D8 n( y" q
[root@admin ~]# ceph osd crush set 3 3.0 host=node4# E9 t* T8 f0 M
set item id 3 name 'osd.3' weight 3 at location {host=node4} to crush map3 i( i2 ^" O5 X1 V
[root@admin ~]# ceph osd tree! E1 A% F: X: Q3 x7 T0 f+ n
# id weight type name up/down reweight
% g- x. }: O- ^-1 6 root default
) l* C. l; m+ R" U) T& Q-2 1 host node1) k# r8 U% E! z+ b8 u! a* K
0 1 osd.0 up 1
8 v8 @. L2 x/ j" Y+ O: q b- D/ Z-3 1 host node2% x9 j0 ?# U* e4 b t
1 1 osd.1 up 13 X: E0 R, _$ Z; A( t
-4 1 host node3. H$ w# |/ v5 A) }- _6 W3 T
2 1 osd.2 up 1
% H( Q& k1 k; @- F, ?-5 3 host node4( d9 o' }( G1 v+ ]) I# W: t, c
3 3 osd.3 up 0.58 ]6 o; `- e# ]
0 w$ O7 w8 Q! \! x# g$ p' a
或者用下面的方式
% y5 Z% t, L$ t' a6 l4 n$ h! j+ B" d[root@admin ~]# ceph osd crush reweight osd.3 1.05 {2 V- b* z) J8 Z) b- r
reweighted item id 3 name 'osd.3' to 1 in crush map) b& O5 [5 ?% ^. I* M6 V
[root@admin ~]# ceph osd tree, r$ Y, w: |5 G' v5 v5 m1 H- v
# id weight type name up/down reweight! u1 N+ |' O4 Y; A' F: f
-1 4 root default
! } \- n) i0 `- [5 d8 V# e5 F8 ]-2 1 host node1: a; w7 E( T) v
0 1 osd.0 up 1
o5 H- f- _! h; a! _. m" l1 \-3 1 host node2
$ F/ d# ]/ m$ C; d9 [( S% O1 1 osd.1 up 1
* a8 a6 v2 R0 b$ `6 ]-4 1 host node30 @) Q, [; V6 ]& z7 S! M$ G1 k
2 1 osd.2 up 1/ S. S6 I) B) Y/ W, ~
-5 1 host node4
6 w7 V" V' W/ |+ `6 k$ z K" a3 1 osd.3 up 0.5
0 o) P1 P% r& W6 n4 F7 [' G4 {7 c10、设置osd的权重# D- N; L) S& e L: j2 B
[root@admin ~]# ceph osd reweight 3 0.5
5 `& {7 |4 H* s- ~9 \& }reweighted osd.3 to 0.5 (8327682)
. W1 F* H6 @* p5 [[root@admin ~]# ceph osd tree" }" _" {/ A5 @2 T7 Y
# id weight type name up/down reweight
/ u/ z5 U' X8 K0 S$ ^' S) [-1 4 root default5 d5 p( {% n7 ?
-2 1 host node1
6 Y$ e5 s: z6 Y B0 1 osd.0 up 1
+ C. t0 P. L" M, n-3 1 host node2
, p/ W. y3 y, t; m6 Y& l3 ]1 1 osd.1 up 1
$ H# G9 `8 {$ f2 q: x-4 1 host node3
% A) K+ j6 P, W8 c9 T$ z0 V2 1 osd.2 up 1" o; V _# H9 i9 A" Y! I# P2 _
-5 1 host node4/ E; A. ?3 A9 a9 u9 \% `! J# \
3 1 osd.3 up 0.5
7 W2 s3 b7 P* w11、把一个osd节点逐出集群
4 n3 F/ g# x; H$ S x; n[root@admin ~]# ceph osd out osd.3' k; k2 J) v' `. r% |7 X
marked out osd.3. 7 Y% }8 K, M5 f" C' Z7 u/ Y
[root@admin ~]# ceph osd tree6 G0 V! s% j6 S$ a5 T( z
# id weight type name up/down reweight
7 O/ A9 ]- ^' I) V9 X8 n-1 4 root default
e$ F- `/ f0 g& I0 h-2 1 host node1
+ X* r* W: X+ k2 P0 ~" _0 1 osd.0 up 11 r0 w# r* Z8 {* h# u' C
-3 1 host node2
- {- J: J, p' B: u1 1 osd.1 up 1
" D9 H @; M" T! n: O/ b' L-4 1 host node35 U* d$ z% L8 ~ x
2 1 osd.2 up 1
7 O5 P3 \' \8 N4 G6 a3 U-5 1 host node4
, P! @4 X/ G1 \4 D; k7 }) y3 1 osd.3 up 0 # osd.3的reweight变为0了就不再分配数据,但是设备还是存活的. L! l' x1 p; b4 o, O7 [/ R
12、把逐出的osd加入集群
. R7 a) {8 B' ]$ \& [[root@admin ~]# ceph osd in osd.33 z5 w( i. I, L. C8 x* H, h
marked in osd.3. . y$ ~9 Z5 J3 V" a: n" i& @
[root@admin ~]# ceph osd tree8 c3 T. [( i. [, U. t
# id weight type name up/down reweight
; a5 t$ Q% N' j; B# R# ^8 l$ ^-1 4 root default4 t2 V e: k0 e' z3 |3 r2 j% Q
-2 1 host node1% `. s- K! ^! N3 U
0 1 osd.0 up 1 A9 l7 s X, _/ M' e
-3 1 host node2% k( m6 G- J, b& k+ p, L; U
1 1 osd.1 up 1
& t8 H+ V( u$ ^) P& B, ^2 e-4 1 host node3
6 h/ w' m: y0 w6 V) _2 h4 P H2 1 osd.2 up 1
) ^, Y6 h6 d5 Q5 G& _-5 1 host node41 p' I: `! {* F; W' @- \4 [
3 1 osd.3 up 1) `! n% }/ I; h* T6 u, Y
13、暂停osd (暂停后整个集群不再接收数据)
* K) X! t. [! D ]4 q[root@admin ~]# ceph osd pause/ j: ^- f) }2 a/ h8 z& l' ^
set pauserd,pausewr
1 l: f/ p9 {7 d0 Y5 D14、再次开启osd (开启后再次接收数据)
% Y- f9 b+ B, }" @. P) D& w2 b+ D" b- H[root@admin ~]# ceph osd unpause8 f. [6 Y8 W2 D* D4 [) K
unset pauserd,pausewr& E* D1 ^; F% u) I( d2 B; i
; D4 t+ m6 u% J+ ^7 {! I/ W4 a15、查看一个集群osd.2参数的配置3 ]8 p( g: h) ?* U% B2 ^" }) P
ceph --admin-daemon /var/run/ceph/ceph-osd.2.asok config show | less$ M5 O2 G/ q% j. W7 X- c
0 V+ `7 ` {! \; [, B% \+ y( K! |1 u" f4 }
# o% B. c$ d6 q8 Y/ t& N L五、PG组6 S- L8 Z% U7 n" ~8 {; r
1、1、查看pg组的映射信息
0 d6 L+ B4 p( ~3 ?( n[root@client ~]# ceph pg dump
/ ]( W$ y: K$ Z7 Q' z# @+ ddumped all in format plain2 t0 _# X% S( i
version 11646 L- R( T. L* [, i) z3 _; [
stamp 2014-06-30 00:48:29.754714
) I$ K8 ?7 R6 g+ a6 {+ }last_osdmap_epoch 88# ^0 {: E6 Z0 e# ?
last_pg_scan 73- a. F4 |0 C+ l" e* k+ s' M" w9 ^5 A% i
full_ratio 0.95/ g8 p0 N5 h6 _+ P( k# y* `
nearfull_ratio 0.854 t/ W4 f. y+ t& O2 y5 H& M2 ^$ F/ 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
$ d- Y) e2 X* ^& `' Q1 r' U0.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( R# a$ I8 z) k: R0 C
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
. J, W5 b4 c& w2.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
- {2 b4 O2 H1 `. {5 S1.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/ _8 s9 O* m- t' v! V
0.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.518978
4 H3 R8 V3 x5 `+ L: @3 b, `3 m3.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
$ C5 ^+ b8 L( [$ U! i2.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" v( o$ D* V3 \, v! z3 l/ V
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" t# |1 a4 U& A( T$ n4 @, x
0.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
9 a- @- }! d: N" D$ `' U3.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
. A0 s4 t5 K) g% ~, { {2.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.8553820 G+ D/ D# m) Y; M
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.650070
. x6 O `' [ i8 e# v/ [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$ A4 c9 `1 T: ~ f( ]% a! F
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.4061207 ?3 E: o! k- h* g3 r. k' m
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.8346448 f# V% G5 Q4 m+ A
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.6420183 B9 e8 w! u5 N8 ]4 R" ~
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.510502& N/ P8 D; Q( w6 l' z
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
" d B4 D/ H# e% }2.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.827342
; I) O! V! } U8 ^& z/ r1.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
( z" a& m" {9 }: n8 v0.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
2 W% I, U/ x( {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.447461
3 W- B0 `+ T$ l6 Z/ z5 B: W0 w2.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
3 X9 B. s9 B! T/ d! y& a6 J1.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$ h2 o$ C+ R1 U( U9 B
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.5046281 s* [( [5 f, ?, a. `, x
下面部分省略
H1 M$ W9 X( u6 r# E3 A- S! Q; d1 w0 G. s: _
2、查看一个PG的map4 ^% j- {: F8 v$ m% z: B6 t! j) m
[root@client ~]# ceph pg map 0.3f
$ \6 C3 F( }7 }8 B( e" T' o- y0 Dosdmap e88 pg 0.3f (0.3f) -> up [0,2] acting [0,2] #其中的[0,2]代表存储在osd.0、osd.2节点,osd.0代表主副本的存储位置9 P* V: b W8 n3 y1 g
3、查看PG状态0 F' h" K; z6 v% O9 ?
[root@client ~]# ceph pg stat$ a$ B4 `' F% q1 E# N8 y( X$ t& \
v1164: 448 pgs: 448 active+clean; 10003 MB data, 23617 MB used, 37792 MB / 61410 MB avail
2 }2 u p. @; q; ]# P4、查询一个pg的详细信息
. ?" F" f2 w* F7 t. p[root@client ~]# ceph pg 0.26 query
; [# |9 N% b& u5、查看pg中stuck的状态
$ R) o: B% }# V* Z ~% w[root@client ~]# ceph pg dump_stuck unclean5 Y3 q0 q* z. F: |+ n( Y6 J8 f, {0 p
ok
1 k V9 |' y8 H" A* ^3 ][root@client ~]# ceph pg dump_stuck inactive$ a8 U: b" u2 d. t$ q$ K# h; |) Q
ok
, {6 m% o+ O# M- J4 p. }) R[root@client ~]# ceph pg dump_stuck stale
7 e" u$ B G9 c+ R: p& Zok
* J8 {! o) l6 ]) P6、显示一个集群中的所有的pg统计
' R2 S& f }$ p$ y( aceph pg dump --format plain# Z- a# i$ d/ Q$ l
7、恢复一个丢失的pg
4 A4 C4 r7 A6 f: J* gceph pg {pg-id} mark_unfound_lost revert* Z1 v+ ?& O8 ?. p& \, {3 Y
8、显示非正常状态的pg/ `* o$ S5 F) _; b+ G
ceph pg dump_stuck inactive|unclean|stale3 `+ D/ G: m! l$ L" x* ` Z& m
六、pool7 U" {8 o# O8 s9 z9 L
1、查看ceph集群中的pool数量
" }! T4 x- Q: _' Y/ \& X[root@admin ~]# ceph osd lspools/ A! I7 [3 F6 r. l9 X
0 data,1 metadata,2 rbd,' Y' N! e3 P% U& }( e7 T# \3 z
2、在ceph集群中创建一个pool
6 v9 U U8 H6 I' i& o2 w& Jceph osd pool create jiayuan 100 #这里的100指的是PG组
) X* m8 B. {7 ^% E3、为一个ceph pool配置配额
* h* O2 p6 a& X6 M# }ceph osd pool set-quota data max_objects 10000
! k; Q6 `) _/ s5 t4、在集群中删除一个pool9 N- u+ k' _8 {+ }, o$ G" d" x
ceph osd pool delete jiayuan jiayuan --yes-i-really-really-mean-it #集群名字需要重复两次
" v7 P( c1 v& Z* v! G- e7 M5、显示集群中pool的详细信息- }* a5 R) q2 M: w# |: I5 I+ ?
[root@admin ~]# rados df
* P% Z* u& M. Z |pool name category KB objects clones degraded unfound rd rd KB wr wr KB) N6 k- }2 Q1 ^4 Z+ i/ e N9 V
data - 475764704 116155 0 0 0 0 0 116379 475764704
/ p" _( v; n4 X4 T+ k8 Q9 k) lmetadata - 5606 21 0 0 0 0 0 314 58332 w: \3 p; P# o
rbd - 0 0 0 0 0 0 0 0 0- r- m# q3 s- q, U! D4 [. y6 w" p+ M% s8 R
total used 955852448 116176
& p' ?$ F5 K; R8 e+ T1 Q total avail 639497596: B m5 v# x0 a+ w& ?
total space 1595350044# J: d: G+ ]/ v& i$ g1 z
[root@admin ~]#
% }! a/ r. s0 T. v& ^7 h6、给一个pool创建一个快照
& B' e. T5 w5 S6 i. O[root@admin ~]# ceph osd pool mksnap data date-snap
6 H( g! L# P, \: Ocreated pool data snap date-snap/ a" ?# [; J; j2 k9 [3 l& A( A
7、删除pool的快照5 J1 _) c( i; ^4 b1 Z* |
[root@admin ~]# ceph osd pool rmsnap data date-snap! u8 v2 R1 Z7 w* w6 C8 p
removed pool data snap date-snap
/ M2 p0 T2 j7 T3 { U! a6 ~4 ^- w9 m8、查看data池的pg数量
% R. V& R$ E ?1 c0 y9 J+ Q2 o[root@admin ~]# ceph osd pool get data pg_num- T, k6 \# @ g& Z& M
pg_num: 64
0 H% b w% a2 B. r7 b( u" b) v+ C9、设置data池的最大存储空间为100T(默认是1T)/ U N4 Y- F) f; A" s
[root@admin ~]# ceph osd pool set data target_max_bytes 1000000000000001 v$ q( [! t f+ H2 g) J: W
set pool 0 target_max_bytes to 100000000000000
- {* E8 o1 B3 d10、设置data池的副本数是3) \: u9 Y; j) G: T3 Z
[root@admin ~]# ceph osd pool set data size 3
8 X5 @9 G0 b; G. ~) c3 \set pool 0 size to 3: L% ~. A; M9 G
11、设置data池能接受写操作的最小副本为29 k k# x+ n0 e" b7 U9 q' o7 f8 O6 M; q
[root@admin ~]# ceph osd pool set data min_size 2% e$ v+ ^0 E3 R' a! T
set pool 0 min_size to 2
, x$ G: R N; J" F5 Y2 w& O; C7 }$ m12、查看集群中所有pool的副本尺寸5 E7 X' ?$ D/ f+ V0 z) ^" L
[root@admin mycephfs]# ceph osd dump | grep 'replicated size'
2 O& j( [" E7 _# [6 Jpool 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
: _6 P+ ~: p4 B" n; }pool 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
% z3 H3 i4 }1 Y3 Q {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- D6 n4 }- u2 J3 h4 K6 [! C
13、设置一个pool的pg数量5 Y6 {6 e/ u0 @# X% N+ C3 e
[root@admin ~]# ceph osd pool set data pg_num 100, v! K4 N+ Y% K, ~% K7 ]- v
set pool 0 pg_num to 100
8 X! h( n2 ?: }" ]14、设置一个pool的pgp数量1 [6 c0 \+ Q7 ~* A1 { E
[root@admin ~]# ceph osd pool set data pgp_num 100
_8 q* N/ v: L$ W) wset pool 0 pgp_num to 1006 Q4 T& d, ` T* [( Y! E A- ?6 C2 o
, R5 }0 m8 l% v3 G @七、rados和rbd指令5 \' |, `! o2 Y$ ^ L/ Y
1、rados命令使用方法0 x. \! V% Q% H, Z& P
(1)、查看ceph集群中有多少个pool (只是查看pool)
5 \- B3 C" V' p[root@node-44 ~]# rados lspools
* g0 D8 K& ~* Bdata
1 V# n1 Q. y0 ?5 b! a5 gmetadata( @1 N$ F& I' _
rbd
$ R+ l- G/ q4 K8 y+ wimages; ~8 A' Z" c9 c2 t2 ~4 A4 B4 L9 g
volumes1 n% O3 N1 n9 d( z# _% Q
.rgw.root
: U9 L5 p1 x0 ]. d; ?compute7 f1 y7 Z J0 P$ o
.rgw.control
0 u7 Q2 s. H; b B; j P.rgw
. _7 k, U% \' S; `' }5 s) a6 B.rgw.gc
, h# X$ i, ?% {% Q$ d5 E: p.users.uid
6 G* C. c$ \% L(2)、查看ceph集群中有多少个pool,并且每个pool容量及利用情况; I! e$ g" O' [, H
[root@node-44 ~]# rados df
8 B+ Y$ f0 H& i& L- _pool name category KB objects clones degraded unfound rd rd KB wr wr KB
" v z; Q7 J8 {) } g8 X. o.rgw - 0 0 0 0 0 0 0 0 0
( w) W5 Z' ]0 z% j( q0 C/ Q$ [) E.rgw.control - 0 8 0 0 0 0 0 0 0( i1 r8 X, a5 h. m3 e. j. q& J( j
.rgw.gc - 0 32 0 0 0 57172 57172 38136 0
6 D# {+ Y9 }; \; |- d2 ^. Y.rgw.root - 1 4 0 0 0 75 46 10 10
8 n6 V/ G% e* s6 X! L! K0 I.users.uid - 1 1 0 0 0 0 0 2 11 R* v2 C& R: z5 R2 F1 @
compute - 67430708 16506 0 0 0 398128 75927848 1174683 222082706
A7 q# u& f, mdata - 0 0 0 0 0 0 0 0 0
8 r4 l* W) N! |4 {images - 250069744 30683 0 0 0 50881 195328724 65025 388375482
- p k2 j; s1 j- \) P7 ~7 gmetadata - 0 0 0 0 0 0 0 0 0
]( y; S: y" [" ]6 mrbd - 0 0 0 0 0 0 0 0 0* X/ ^) I7 }6 H0 _7 \
volumes - 79123929 19707 0 0 0 2575693 63437000 1592456 163812172" i$ U, U% H0 c" r: ], i7 D
total used 799318844 669418 {5 [4 M) x7 ]( j- p7 A
total avail 113060537202 |8 A. I4 Q. R% u0 p4 h& |
total space 12105372564, o0 n* d4 t1 t. X
[root@node-44 ~]# ' G9 m. [9 q6 O3 F
(3)、创建一个pool
/ C! A2 ]) [3 V3 r( `; C[root@node-44 ~]#rados mkpool test* K+ f) M, i+ \: m6 v0 P7 `+ @. j8 I
(4)、查看ceph pool中的ceph object (这里的object是以块形式存储的)0 C! F& x8 z2 T1 }
[root@node-44 ~]# rados ls -p volumes | more
; X' s% l! E1 o) m2 W: vrbd_data.348f21ba7021.0000000000000866) m' |0 x1 v5 i/ ?# E, w
rbd_data.32562ae8944a.0000000000000c79
, U, n: J+ g, R4 ?0 rrbd_data.589c2ae8944a.00000000000031ba- x1 p6 T/ q/ E' J1 ~5 {
rbd_data.58c9151ff76b.00000000000029af
- B0 ?" _- G3 R2 {( t. y: Z: v5 V7 ^5 h1 srbd_data.58c9151ff76b.0000000000002c19
6 A6 j2 o8 \: Jrbd_data.58c9151ff76b.0000000000000a5a
/ @/ J1 C% g8 Q1 Orbd_data.58c9151ff76b.0000000000001c69: G; K8 W! V# k
rbd_data.58c9151ff76b.000000000000281d% @' {2 L+ W3 h
rbd_data.58c9151ff76b.0000000000002de1& |7 Y( a9 c! y j
rbd_data.58c9151ff76b.0000000000002dae; D- a' p: F; e5 h
(5)、创建一个对象object * S* `( S8 s. Q5 h1 T( f6 \. q
[root@admin-node ~]# rados create test-object -p test
# i. k( f% p( E4 x9 p6 L! n5 b
) f I0 a$ [: c: f; v0 D[root@admin-node ~]# rados -p test ls
9 z3 j0 w2 `& L1 `- n4 htest-object+ [+ L! {4 @4 |1 y+ @
(6)、删除一个对象6 i' J. L3 o" W: z6 I T" b+ p
[root@admin-node ~]# rados rm test-object-1 -p test( a+ t; G4 R, q) K- z- G
4 ?" O: l6 L! C- O% z1 n
5 [* _' H. k2 L% R, ~" U9 Y2、rbd命令的用法
4 `* |# A" g' e- M- l* N
# y* [$ p* F! z(1)、查看ceph中一个pool里的所有镜像
: r) h* p# y2 Q+ R; z; y$ H+ s( l[root@node-44 ~]# rbd ls images
$ b- j1 @. t4 @+ _5 q+ k H4 j2014-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$ X% H9 r/ ^( @/ A
2182d9ac-52f4-4f5d-99a1-ab3ceacbf0b9
& h5 ^$ I# P- o0 l/ J4 b! _34e1a475-5b11-410c-b4c4-69b5f780f03c
+ |+ v% o4 H9 s5 i/ {8 `476a9f3b-4608-4ffd-90ea-8750e804f46e
$ o0 w( J: i- Y; I4 s2 Z60eae8bf-dd23-40c5-ba02-266d5b942767
' J/ l8 T2 L' ~. I7 W! L72e16e93-1fa5-4e11-8497-15bd904eeffe
; i. k' R" n8 N7 W% c- j# H0 ^2 Q74cb427c-cee9-47d0-b467-af217a67e60a# a1 s5 C; a$ s5 R3 O; }
8f181a53-520b-4e22-af7c-de59e8ccca78
: R! Q2 a5 H+ \& c+ A3 A% c9867a580-22fe-4ed0-a1a8-120b8e8d18f4$ v$ Z5 f- n8 M) |
ac6f4dae-4b81-476d-9e83-ad92ff25fb136 L" @, u( U* g8 g
d20206d7-ff31-4dce-b59a-a622b0ea3af6+ E* m8 s; A8 R+ F% P; M0 S
& b$ X! z8 c0 r
[root@node-44 ~]# rbd ls volumes8 J+ N$ g) n, G6 E: V) Y
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).fault0 S" ]3 ]; z1 f7 R, C- z
volume-0788fc6c-0dd4-4339-bad4-e9d78bd5365c
/ k- T* T. o) C! a' d0 hvolume-0898c5b4-4072-4cae-affc-ec59c2375c51( p# a0 K" _2 J( n/ j6 f
volume-2a1fb287-5666-4095-8f0b-6481695824e2+ A' g' u1 [. ^# S' F
volume-35c6aad4-8ea4-4b8d-95c7-7c3a8e8758c5$ D0 b+ P, l; `* r3 x6 N
volume-814494cc-5ae6-4094-9d06-d844fdf485c4& x: z0 A) X2 _5 Y, ]
volume-8a6fb0db-35a9-4b3b-9ace-fb647c2918ea
+ L# r6 B; R$ g) h0 z! {2 [volume-8c108991-9b03-4308-b979-51378bba2ed1
1 |; b% f1 [( K" a- ]: m/ yvolume-8cf3d206-2cce-4579-91c5-77bcb4a8a3f8- ~6 m/ ?& _! H, @( L/ f* F
volume-91fc075c-8bd1-41dc-b5ef-844f23df177d
: ?; O8 O9 q5 s% [1 uvolume-b1263d8b-0a12-4b51-84e5-74434c0e73aa
2 s3 _( i ?, D1 c' mvolume-b84fad5d-16ee-4343-8630-88f265409feb
2 B% x) [7 |" G% r3 M( y( Lvolume-c03a2eb1-06a3-4d79-98e5-7c62210751c31 A( Z6 `& o _9 Q. o
volume-c17bf6c0-80ba-47d9-862d-1b9e9a48231e
! B+ h7 r8 J7 k4 r0 Pvolume-c32bca55-7ec0-47ce-a87e-a883da4b4ccd
, ~8 m" B4 M! x- L& bvolume-df8961ef-11d6-4dae-96ee-f2df8eb4a08c
3 ^+ }; X; C3 \$ Qvolume-f1c38695-81f8-44fd-9af0-458cddf103a34 J; O) g/ \2 H) n
4 M: B% l, q" M7 C
(2)、查看ceph pool中一个镜像的信息* c) X4 X( ~; `- {/ q, G/ n' Q
[root@node-44 ~]# rbd info -p images --image 74cb427c-cee9-47d0-b467-af217a67e60a
8 n% C! R5 F, y& O* c/ B: crbd image '74cb427c-cee9-47d0-b467-af217a67e60a':
- Z% {" S- O; U; v$ _8 F size 1048 MB in 131 objects8 \: x; G+ @+ k3 {$ }( Q
order 23 (8192 KB objects)! H* M% E+ I& @' j) g
block_name_prefix: rbd_data.95c7783fc0d0
% r* ^* [* T1 G0 O/ B8 n( S format: 2& z* T/ y& ~3 i2 C( X6 d
features: layering
g6 q, k3 i' z(3)、在test池中创建一个命名为zhanguo的10000M的镜像4 @8 D' l m; l$ _5 Q
[root@node-44 ~]# rbd create -p test --size 10000 zhanguo. o1 ~/ H1 C7 j1 c: F+ d% M. q
[root@node-44 ~]# rbd -p test info zhanguo #查看新建的镜像的信息
2 M9 c7 k$ w2 g5 W, X7 krbd image 'zhanguo':3 E8 M0 Z( N8 x; f9 {: ^: l
size 10000 MB in 2500 objects$ f6 c C2 }3 X8 m% i! d/ e" ^" m
order 22 (4096 KB objects)6 E, Q2 g: j" U I
block_name_prefix: rb.0.127d2.2ae8944a# c5 w1 A u7 R
format: 1
1 B8 W. m& S: L9 b- ~) w! d% h" M[root@node-44 ~]#
: [. R6 k; I0 V(4)、删除一个镜像
/ V+ {( G& S J$ b4 G# i& c! }/ w[root@node-44 ~]# rbd rm -p test lizhanguo6 a( `. z" Q) F5 U7 _
Removing image: 100% complete...done.0 L1 F( ]: l' P0 |1 q
(5)、调整一个镜像的尺寸; i& Y8 z: c8 O, r2 T2 A
[root@node-44 ~]# rbd resize -p test --size 20000 zhanguo4 Q0 h$ D5 l+ ~: ^! e+ S% e
Resizing image: 100% complete...done.& A9 t- q& G7 W6 w
[root@node-44 ~]# rbd -p test info zhanguo #调整后的镜像大小+ E1 d7 E) ]% N2 k; B
rbd image 'zhanguo':
$ Z. M6 @1 Y$ K+ f' L- \ size 20000 MB in 5000 objects
. \$ L) T% h; T9 g$ w- D2 u7 ~- X9 i order 22 (4096 KB objects)4 ~$ V8 z: L% }* s$ W* c
block_name_prefix: rb.0.127d2.2ae8944a
9 Y! }$ i6 V2 H6 U format: 1
! Y0 K+ K% n5 {& o( Y7 g[root@node-44 ~]#
+ E8 i, u* j, L B% o(6)、给一个镜像创建一个快照
3 J. B8 m/ g7 E[root@node-44 ~]# rbd snap create test/zhanguo@zhanguo123 #池/镜像@快照
9 D' ?0 r4 u" `5 N' A[root@node-44 ~]# rbd snap ls -p test zhanguo$ _0 x$ F2 |) J) @0 ~
SNAPID NAME SIZE
7 v, b5 z7 s+ X 2 zhanguo123 20000 MB 4 a8 N: B+ v- U4 z
[root@node-44 ~]#
( Y8 ^" N& |1 D) }4 I/ q[root@node-44 ~]# rbd info test/zhanguo@zhanguo1233 S7 Q# x1 |7 ^0 V8 }8 C* {
rbd image 'zhanguo':* N1 @& Y, q* c7 u3 Q. P
size 20000 MB in 5000 objects
) Y5 E! g6 A. x order 22 (4096 KB objects)
4 U1 M9 s' j% Z; P$ f; K+ J) Y block_name_prefix: rb.0.127d2.2ae8944a2 T! i- _9 s& |3 C
format: 1
7 L, X/ X- ~5 o7 H6 E2 R) y protected: False
7 n" ^5 w ~& o( u# C- d! N* w% E, k[root@node-44 ~]#
' q: T" B- ?: V: M1 ](7)、查看一个镜像文件的快照
! ^" N5 V1 I( K9 b# A0 O* U[root@os-node101 ~]# rbd snap ls -p volumes volume-7687988d-16ef-4814-8a2c-3fbd85e928e4
, D, k7 T: j* L c8 }- L( {SNAPID NAME SIZE " m' d" m1 l* x- c: F
5 snapshot-ee7862aa-825e-4004-9587-879d60430a12 102400 MB
7 G; |% M% @- V9 J) v) _' M# ^(8)、删除一个镜像文件的一个快照快照; C* e: q* O) S
快照所在的池/ 快照所在的镜像文件 @ 快照
) R/ Y0 f3 ^4 y[root@os-node101 ~]# rbd snap rm volumes/volume-7687988d-16ef-4814-8a2c-3fbd85e928e4@snapshot-ee7862aa-825e-4004-9587-879d60430a120 k& }" _+ J M8 B9 E
rbd: snapshot 'snapshot-60586eba-b0be-4885-81ab-010757e50efb' is protected from removal.- `, s. }! @! \. c: o
2014-08-18 19:23:42.099301 7fd0245ef760 -1 librbd: removing snapshot from header failed: (16) Device or resource busy
' `$ F/ J( _3 h+ Z3 F上面不能删除显示的报错信息是此快照备写保护了,下面命令是删除写保护后再进行删除。
: z* n- h) ^4 _- k* T0 d& \[root@os-node101 ~]# rbd snap unprotect volumes/volume-7687988d-16ef-4814-8a2c-3fbd85e928e4@snapshot-ee7862aa-825e-4004-9587-879d60430a12* b' E/ i+ l0 Q6 `; L9 I ~
[root@os-node101 ~]# rbd snap rm volumes/volume-7687988d-16ef-4814-8a2c-3fbd85e928e4@snapshot-ee7862aa-825e-4004-9587-879d60430a12
! h |* ?3 m. S! k. k(9)删除一个镜像文件的所有快照
$ r& w2 }! A7 c& c- n3 ~[root@os-node101 ~]# rbd snap purge -p volumes volume-7687988d-16ef-4814-8a2c-3fbd85e928e4. b$ P: T! K! _1 [1 L
Removing all snapshots: 100% complete...done.8 v H" O: v# o6 Y" k
: h( \: L: G3 W' `) B$ ]5 O% I1 b: P8 @! X/ ~6 U0 @& S- e. R
(10)、把ceph pool中的一个镜像导出5 R v! |, g. x0 N+ n- H' O
导出镜像, l j9 R) r6 B/ ~ z/ c+ O
[root@node-44 ~]# rbd export -p images --image 74cb427c-cee9-47d0-b467-af217a67e60a /root/aaa.img0 b/ }; g+ a1 m* C" B
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
7 J# r; Z! ^! h( {Exporting image: 100% complete...done.
( W( E& |' c- B4 x; o
9 z$ V/ O- c n, t% ^# `1 _导出云硬盘
1 k; ~5 @3 A4 C; ~# z8 n+ t8 \6 r& _[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.24
) U+ _: K) l# ~( R1 Z3 t% B9 F2014-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
7 n. I6 D/ ]8 R6 j& L) wExporting image: 100% complete...done.7 t% K" ] @- L: }0 z
, x, q1 O1 i8 Z' w- E/ o(11)、把一个镜像导入ceph中 (但是直接导入是不能用的,因为没有经过openstack,openstack是看不到的)
9 a) [+ K/ u8 I% H[root@node-44 ~]# rbd import /root/aaa.img -p images --image 74cb427c-cee9-47d0-b467-af217a67e60a
# O+ P$ I: _1 r t( y* mImporting image: 100% complete...done.) x. v8 {/ c0 \% r. w
/ P! p2 _. |6 u* I, {" F: k
|
|