|
|
创建存储池% y5 ~8 e- r, K+ e& @4 r
/ I0 a. V6 F& q# ceph osd pool create images 644 c' ?5 o" H2 E0 ?9 N
# ceph osd pool create compute 64. v* v J$ T, K$ Y& N
# ceph osd pool create volumes 64
- B }6 Z5 B S, q* Y, v# ceph osd pool create backups 64
% j* U) W- n+ DCreate Ceph User ceph1 r4 F6 q. q z( u' h
7 Q8 ^' O, {2 f, R4 w1 h' f
# ceph auth get-or-create client.ceph mon 'allow r' osd 'allow class-read object_prefix rbd_children, \( p" V: r, R0 c& J5 _
allow rwx pool=images, allow rwx pool=compute, allow rwx pool=volumes, allow rwx pool=backups'! ^ ?( L! @( ]# Y! L$ g
[client.ceph]
4 v: V X- n$ I/ V key = AQDIistY4xELCxAAPkelu47q/fxM3R8B732jlw==
; k0 [/ H& v& E, K" D6 r" b$ G& Q9 W! W) c7 D
copy user.keyring to glance-api node and cinder-volume node
3 M9 O) {( g7 q
p q. c% k* G+ m/ Yceph-monitor # ceph auth get-or-create client.ceph >> ceph.client.ceph.keyring
6 G7 G7 w. }; S; N# scp ceph.client.ceph.keyring ceph.conf controller:/etc/ceph/% ]0 e e$ ~6 w% c6 O
# scp ceph.client.ceph.keyring ceph.conf cinder-volume:/etc/ceph/
3 y& _0 f8 J2 F4 a7 Z! ^6 b5 \2 `7 K7 |
对接glance-api8 W. F: r/ k6 e4 G1 L t
install rbd! Z0 d! e. ?9 @' y" C" ?* S
0 n5 Y5 G' n* {( g
& w9 Y# o5 |+ Q% K( \& W, i. f
# yum install ceph-common python-rbd' r1 D9 l4 J% j3 }: m0 o
设置key权限
$ u3 a! `+ u, G+ [+ @; [# y* I$ C% T4 c
. r2 w# y% m o
# chown glance:glance /etc/ceph/ceph.client.ceph.keyring! F* p7 i& [, l% d2 s+ }8 z$ G, W
edit /etc/glance/glance-api.conf) c7 C$ L: |( L# c
0 [3 t& ]- @# M7 |" V9 R M2 ^* N0 y% @* ?
[DEFAULT]- E2 E2 b: |7 {$ ?
...
' H( `6 l' L6 Rdefault_store = rbd
6 K3 H- J+ {3 E) a7 P7 i...
7 B$ O4 o- K* s1 \[glance_store]
8 \# d* t' t$ n2 F" F& J, sstores = rbd* ~3 R* I B/ l
rbd_store_pool = images1 J" @) T0 a9 m8 i8 @* X+ t
rbd_store_user = ceph
1 k" E* j6 F6 F7 c3 b) |rbd_store_ceph_conf = /etc/ceph/ceph.conf
& w' O$ _) s: ~1 F- jrbd_store_chunk_size = 8! _: ^# ?* c" {3 ^3 G
restart glance service8 g0 T6 Z# M9 v! O; I6 P0 T; g# a
; f: {1 O- v; u: \3 L0 g; D* S
. J% D9 @& z$ v. T8 q! i
# stemctl restart openstack-glance-api.service openstack-glance-registry.service
% q$ y+ w U7 X6 U p( g' E/ J0 o# K% @* Z" x- f5 ]9 x: s
2 H( r0 @& m2 R( s7 T$ h* T8 \4 |
对接cinder-volume8 u& Y$ N4 p+ o5 l+ E1 J
install ceph-common, J9 K) G$ ^' c; C
5 d% {& `2 `5 X. { O' | y
# yum install ceph-common python-rbd
% V* V7 T8 z0 w \设置key权限
; M8 t2 {$ J e; c2 H4 q
, ]: f/ ~! V6 {9 c2 S; L: `9 L5 y, e6 |( E8 M- ~, p B$ s
# chown cinder:cinder /etc/ceph/ceph.client.ceph.keyring
* [& c/ {2 `1 R$ D8 Eedit /etc/cinder/cinder.conf
, R1 \. a1 g9 ]3 L
- E# O4 y* e0 n/ M( Q+ K; M[DEFAULT]) Q0 c U3 p3 R! N. M
: g0 f9 H+ I! A9 o2 X1 d* qenabled_backends = ceph0 L0 W/ p6 i* p; r
# G' P/ a& J) X7 [; G" I6 p) Y[ceph]6 e H1 m/ T+ l8 b# V
3 L _8 Y4 ~( S7 t1 U' C4 ?volume_driver = cinder.volume.drivers.rbd.RBDDriver
8 V: }+ {+ C9 j* o1 vvolume_backend_name = ceph
# z4 v/ H1 A0 `rbd_pool = volumes v8 \3 [; g" i: B. X+ H1 A
rbd_ceph_conf = /etc/ceph/ceph.conf! L8 A/ s6 l* e( @ ?
rbd_flatten_volume_from_snapshot = false
- w# {8 m$ d9 ]9 Brbd_max_clone_depth = 5
2 t( s+ @/ T1 |* C& Jrbd_store_chunk_size = 4
( J5 b$ J V1 h3 d6 A) trados_connect_timeout = -1
6 a" Q; _) s5 B; O& @glance_api_version = 2! J* r* t% M8 a" z
rbd_user = ceph, {% a4 L' p4 p* E
rbd_secret_uuid = 791c2ef6-bc56-43b0-b2c7-0cd863621040
" G' G4 V8 T* `1 \2 [restart cinder-volume service/ [; _. ~ t# q5 y {, m
6 h1 e6 x+ _- [ N
# systemctl restart openstack-cinder-volume.service
8 r8 X8 p* g8 ~4 D7 ~2 I( J! U
, d! n, U! G; }, Z5 \4 X
- o' ?- u4 \, K0 s1 E9 v
1 E1 N }1 p! Y* n" A7 e对接compute
: L8 _+ E% p2 S5 O D% G6 d9 o9 Ainstall; W* P1 `5 k- N5 K( x2 s
1 E# P$ T' @2 k8 |
# yum install ceph-common python-rbd/ ?# a8 D6 |% W) c3 M. d" V
edit nova config! N. M9 i7 O2 w. h
. ^# C' n1 D8 e% \[cinder]
1 M: n5 c) B3 h) I7 ]os_region_name = RegionOne
2 v) W( j; c; ]8 _5 h& |% b1 ^0 O7 J; U* n# \ r% W
[libvirt]
: n6 V6 N1 C& q6 k( _images_type = rbd# r; d J$ w- Z
images_rbd_pool = compute
2 X+ _% q: g% w' p3 ~images_rbd_ceph_conf = /etc/ceph/ceph.conf1 L( L2 k2 F" ^# r/ g
disk_cachemodes="network=writeback"
# D# V* E! G1 }2 w' t; hrbd_user = ceph4 `. `8 e- v* N: A" x* S
rbd_secret_uuid = 791c2ef6-bc56-43b0-b2c7-0cd863621040
2 n' |) b6 h! F" u: Y8 i9 H- W! q' {8 [7 s8 G5 @
inject_password = false
3 i4 j! D8 ]+ P8 a% iinject_key = false
' d I& l. |6 Ainject_partition = -2 V' Q q# V) [% x6 {# G
- y& X; v* T4 V. u5 I5 }live_migration_flag="VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST,VIR_MIGRATE_TUNNELLED"
- o' {; C/ B2 c( ?& yhw_disk_discard = unmap
6 |; `! s2 g6 O7 H
5 `% k2 r# Z6 K; B/ P, |4 `* O5 [1 E* {* \; p }6 ^9 A2 k
8 w. y. M3 A2 Q9 V4 e+ B
- _" X t1 U" t M. U1 _4 \
copy ceph config
: y7 f2 A1 M0 a9 b. z2 }
! d" V z: y w' B2 q% s: E- y# scp ceph-node:/etc/ceph/ceph.conf /etc/ceph/ceph.client.ceph.keyring /etc/ceph
k N6 o+ e$ u8 g1 ?! d- [# chown nova:nova /etc/ceph/ceph.conf /etc/ceph/ceph.client.ceph.keyring
1 G3 O/ t3 e3 e7 W/ u) S0 v Icopy ceph user keyring
2 ?) _; y( r/ E/ e7 S. `+ V0 w8 N4 q* J+ { h* v
6 ]% k7 L1 E2 L! A. r0 a[ceph-monitor]# ceph auth get-key client.ceph >> client.ceph.key
5 j. `& B T- r/ C" B( s3 j[ceph-monitor]# scp client.ceph.key compute:/etc/nova
8 @( A) g, c9 P. }+ v, U0 O' C4 M7 N$ [6 X3 {: B+ m
& _$ d! b; Y6 f: @: }
) R" \/ s- V6 q6 w% |
设置libvird
" o4 v: h8 x/ d2 n# e, q& j0 p+ l% V! ?1 H. c1 F- `
# uuidgen ( Y: L- T# y4 q0 p X2 D
791c2ef6-bc56-43b0-b2c7-0cd863621040; L$ P T2 ` i9 D; H; d. I; h1 s
- E* Y- b1 b1 k: d8 ^& f
# cat > secret.xml <<EOF
/ f, z; D/ S3 A- [, w<secret ephemeral='no' private='no'>
6 b, A4 K, _6 l4 \ <uuid>791c2ef6-bc56-43b0-b2c7-0cd863621040</uuid>
, Z$ N: s- }# B3 M8 x# c <usage type='ceph'>% e: Q7 S, G" F+ F, A! V
<name>client.cinder secret</name>
: p4 f. G# u+ t& u6 o2 z! g9 I: d </usage>% j* |8 ?: O! i+ F
</secret>7 p P% j- j7 y% S S ]& l
EOF( n8 y) c4 R7 v1 x6 b
4 M- }. \! p& L# }* m7 H7 l
# virsh secret-define --file secret.xml
1 @) F5 ~, L! i) kSecret 791c2ef6-bc56-43b0-b2c7-0cd863621040 created3 [8 X% x! R4 y0 o+ S1 ?9 U# s
) F3 v0 a) z7 V P+ |& a# virsh secret-set-value --secret 791c2ef6-bc56-43b0-b2c7-0cd863621040 --base64 $(cat client.ceph.key) / s, \% I# i" z
Secret value set
1 r3 |+ V1 c" Q$ E/ w3 {restart nova-compute: y2 E; K% l: R5 m: c5 M) o
/ r0 j" r! P0 J
systemctl restart openstack-nova-compute.service
" R- \$ X' c. I t |
|