找回密码
 注册
查看: 6613|回复: 0

Ceph对接Openstack

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2018-10-12 17:12:21 | 显示全部楼层 |阅读模式
具体操作
( B! m9 T" `5 o' [' n5 I9 t% }0 Y# Y" U
创建存储池. ]2 P1 z& S0 ~2 W/ c
针对Openstack的3个不同服务,需要把存储资源池隔离开,也就是每个服务一个Pool:8 b  L% s9 t0 s+ N
# u+ q) K8 M+ [
// 创建volumes池,对应Cinder服务
% C$ X% ^* O! V$ Aceph osd pool create volumes 128
) a: u) k5 \0 b$ d7 }9 B: e% H$ ~0 A  d) h. t5 U" ]1 I2 `! P
// 创建images池,对应Glance服务1 S  I( p+ P6 E" k" o+ u, s
ceph osd pool create images 128% e5 d2 a; ^1 _3 ?: F1 H7 ~

% a4 W9 O2 f! A// 创建vms池,对应Nova服务% ~7 d( y/ r% z3 o4 m4 q6 v% g/ ^
ceph osd pool create vms 128. R7 t8 ?( @, V7 E6 {! C  O# f
  H3 ^& ?, b1 _1 B1 b" {
// 创建backups池,对应Cinder-backup服务。但这个backup在同一Ceph集群中,意义不大,既然是做备份的话,就应该跨集群或者跨机房、跨区域来达到备份容灾的目的。$ w1 u1 s* r7 g8 N, |0 ^
ceph osd pool create backups 128
) x( U- K" z; a( a9 L+ ~3 u4 m/ \4 E* I. c. A# e" j$ O& {
; f* ^) }% i- w5 m" ]" J! L
安装Ceph相关包/ l- r1 k5 R$ W
在glance-api的主机上安装python-rbd包7 g/ @3 B6 u# B2 Y5 N2 A( ^

; E5 V+ }$ r+ Y9 V; u. r, ^yum install python-rbd3 N5 \# C2 L; V. f6 O( V, C

  {+ A3 _  d0 L1 U7 ?# \* F9 Y! B% |: I9 ^+ ~
在nova-compute、cinder-volume、cinder-backup节点上安装ceph-common包
, |( @, F3 y$ S! J$ U1 a( ^; M
% u  M7 Q7 {4 c. tyum install ceph-common
6 \5 |+ y* C' [& M+ a7 Y9 E安装完ceph包之后,需要将ceph集群的ceph.conf copy到所有client端。6 {: }. h& ]% I+ r

" p, A5 O7 p1 R如果在Ceph的配置中打开了auth认证,就需要做如下的操作;如果Ceph中的auth都是设置的none,也就是关闭的话,可以不做如下操作。: l  B& y' ~& H# F$ C
5 |- q6 ?" D9 L* m1 K" i

! k2 ^+ f: M: V" X+ _) }5 h; r  O* w7 i! U. F  W+ r
在ceph中创建了cinder、glance等用户,并做了权限控制5 I; ]/ P6 [2 |# a

: B' i$ ^2 l  X3 C, hceph auth get-or-create client.cinder mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=volumes, allow rwx pool=vms, allow rx pool=images'  W& _. p5 q; S6 b
ceph auth get-or-create client.glance mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=images'% z' w. W7 r# @+ U& @
ceph auth get-or-create client.cinder-backup mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=backups'
  X; c. k8 E5 }2 {. Q3 h* \7 j* d- N; _8 H
0 L& f$ Y- p; e0 T8 T$ u+ ~& H' p
将上面生成的keyring文件,保存在相应的节点上,并修改为相应的权限5 \3 r1 e6 _& S/ j
; w; t1 M( P- a& ^' j" }9 ?7 \
// 注意替换所有的server为相应的主机名
2 g8 L! j" A. f9 A9 Cceph auth get-or-create client.glance | ssh {glance-api-server} sudo tee /etc/ceph/ceph.client.glance.keyring
% l/ s+ Y( h8 S- s5 }' Issh {glance-api-server} sudo chown glance:glance /etc/ceph/ceph.client.glance.keyring
" E0 L" z8 n. {8 C& {ceph auth get-or-create client.cinder | ssh {cinder-volume-server} sudo tee /etc/ceph/ceph.client.cinder.keyring
. }5 t& a" G" c9 Mssh {cinder-volume-server} sudo chown cinder:cinder /etc/ceph/ceph.client.cinder.keyring7 r$ `7 B! p! f4 E
ceph auth get-or-create client.cinder-backup | ssh {cinder-backup-server} sudo tee /etc/ceph/ceph.client.cinder-backup.keyring
9 A8 a0 r4 u/ D8 c1 l  ?! qssh {cinder-backup-server} sudo chown cinder:cinder /etc/ceph/ceph.client.cinder-backup.keyring9 y* {' v+ B# \& J( B

/ [6 [* {3 p! ]9 b% L* d) n/ e" r# W2 `6 A1 g- V) S. w9 y- y
在nova-compute节点上保存和cinder-volume相同的keyring0 d4 @5 f$ V0 R$ v4 ~# Q7 r

+ r6 g% t4 E3 t- W4 x9 u1 c- h0 d% Uceph auth get-or-create client.cinder | ssh {nova-compute-server} sudo tee /etc/ceph/ceph.client.cinder.keyring
* W( G7 |5 ^# h4 O2 Y4 z9 q2 p0 W1 q! @  ?; ^1 [& L1 j6 I" P' c

% s/ V6 j8 j" J  V% G: Q/ d在libvirt上添加secret key% f) E- f# ^7 z' \! U
6 `6 k2 a- d% F6 T, j
// 获取cinder keyring,并保存到一个临时文件中5 a8 X, m4 V4 H
ceph auth get-key client.cinder | ssh {nova-compute-node} tee client.cinder.key
) b* B. [; k+ u% U/ [  w$ q  W$ Y/ O. S* J% o$ E! w: l0 B
// 生成一个UUID" b+ f+ U. I3 |& A! K
uuidgen
+ c/ _: _4 k0 |0 }0 v457eb676-33da-42ec-9a8c-9293d545c337
8 h% s; {$ D; C7 y$ m
4 q% b3 N( r5 ]2 \// 修改secret.xml文件,注意替换下面的uuid7 c. ]4 I: `& y. v! L
cat > secret.xml <<EOF
3 a& \$ f( t4 r, Z( c2 v/ u2 e<secret ephemeral='no' private='no'>
3 R+ o1 H: T/ a8 L  Z# Z, K  <uuid>457eb676-33da-42ec-9a8c-9293d545c337</uuid>2 T5 {# \; {7 `# u+ X+ E
  <usage type='ceph'>
" I8 [& h! |  c    <name>client.cinder secret</name>
0 ~/ u" g. S3 a9 E* y/ q. U8 L# g  </usage>- W# H* \1 G2 t) j- }0 a
</secret>
4 B! ^* E8 A  p) j& yEOF: I" ~) f% c" t- d4 e' F

+ y7 H- \7 l6 M) q2 B  Csudo virsh secret-define --file secret.xml
1 z2 L  m2 F  \! k8 ASecret 457eb676-33da-42ec-9a8c-9293d545c337 created
, W) r+ M7 |! [9 ]3 e2 l0 Q
$ @6 z( S0 e& j; m- N8 }// 设置libvirt的secret key,并删除之前的key临时文件
7 _  q! W) p' K8 Csudo virsh secret-set-value --secret 457eb676-33da-42ec-9a8c-9293d545c337 --base64 $(cat client.cinder.key) && rm client.cinder.key secret.xml$ K9 y" F! O- m: w+ x
. m- w2 a; Q( ]/ E7 W
% a% P! `" i) S: t% E
在三大模块中增加ceph相关配置8 a0 Y* G/ {( Y
Glance配置
* a: Q+ x% N- r- ?8 z- @
4 j/ K% T9 k( t// 在/etc/glance/glance-api.conf中添加如下:
: n6 {6 M: w+ s
# q; M4 M( ]' F, ~// 在DEFAULT域中增加:
! x8 T# p/ c& X[DEFAULT]
  }* ]6 @& _# s2 L) {# {: z0 _8 R6 f& rdefault_store = rbd! ]4 g# L9 Y& u7 e

; S4 Z% ]: T  e- M1 j  K// 在glance_store域中增加如下,如果没有glance_store域,直接创建:
- f% C2 {" z/ W: Z4 }/ R[glance_store]9 x1 W1 G& M/ e' @2 K6 H
stores = rbd# r6 m! N. P6 q; m$ v  `& o
rbd_store_pool = images
2 B6 P/ D- O( |& n0 orbd_store_user = glance
6 H# X( L; F( k6 }7 a  Zrbd_store_ceph_conf = /etc/ceph/ceph.conf
$ ~0 G& ^$ F8 s7 t8 srbd_store_chunk_size = 8  d+ a+ u2 [! \+ d, b

* P& E7 G+ a( X. V: P0 ~1 q; S# I% l3 ~/ i# E/ K
Cinder配置
  _5 G) e: ?. e0 x7 z* B7 u& p- ~& a
// 在/etc/cinder/cinder.conf中添加如下:
2 h7 a; X2 q% n& ^; D6 |8 k+ f
// 在DEFAULT域中增加:* p% d9 h4 h& N/ @, H$ {3 C
[DEFAULT]7 X0 \. R% o8 o" \% m# V6 l5 C
enabled_backends = ceph& H' W# U# b7 e  r! M3 u* E8 \# L

2 a1 u, k. Q) \0 ~* K// 在ceph域中增加如下,如果没有ceph域,直接创建:. _+ J" t/ h+ O0 W0 x* j
[ceph]
9 l% p+ a. t/ W% evolume_driver = cinder.volume.drivers.rbd.RBDDriver* N3 I! Y/ x8 @
rbd_pool = volumes
7 h8 W% O# ^& irbd_ceph_conf = /etc/ceph/ceph.conf
+ T" d* q& v; x: X- d  Yrbd_flatten_volume_from_snapshot = false: V. r0 p8 S2 t
rbd_max_clone_depth = 5
7 b; H# s1 ?* T6 M$ w6 w& @rbd_store_chunk_size = 4; r( N( i! c( o; c7 {; w4 X5 }
rados_connect_timeout = -1
% P; u+ ^  Y7 h& k+ p) q; xglance_api_version = 26 h- [/ H. }  v% n- ^0 _2 `0 O

/ ^9 r* |$ O& k// 如果使用了ceph auth,还需增加:& Z+ O  I6 m. x! E  t& N
rbd_user = cinder9 D0 L# z3 E) u
rbd_secret_uuid = 457eb676-33da-42ec-9a8c-9293d545c3376 n% C4 ]$ h) u3 o$ \6 w4 Z
$ R5 H0 I2 b: i" d

9 y5 y0 Q! m9 Z- g" N5 FCinder-backup配置
1 U' _1 K& G" r0 z. Y
, x, [! O0 d% B+ {6 k% I1 w// 在/etc/ceph/ceph.conf中添加如下:& _* o, r' x! i; L2 D
backup_driver = cinder.backup.drivers.ceph
, o$ A7 h. M7 L& z( dbackup_ceph_conf = /etc/ceph/ceph.conf4 \+ X( m: l: ^; y/ d. |
backup_ceph_user = cinder-backup
( p: G- a& Y; J; _0 D/ ]9 N# l, dbackup_ceph_chunk_size = 134217728
% v0 D- V( M- H# ]3 q( \backup_ceph_pool = backups2 n$ Q7 ?+ F2 O( M
backup_ceph_stripe_unit = 0
- j& U6 y) T1 l. ^* ibackup_ceph_stripe_count = 0
: O+ D. G/ K7 [! ?* y! rrestore_discard_excess_bytes = true3 c4 |6 h, e- O/ j8 F! p, @5 S. H6 r
$ E0 o; R8 m% o2 M

1 v7 v: q7 e9 c# b3 {& m1 C计算机点Nova配置% m: ^* _6 d9 {

+ |! g* K) M" g& K# h// 在/etc/nova/nova.conf中添加如下:; V8 Q7 i* m" p4 ~: u/ l$ K+ ]
[libvirt]' ]4 \0 q+ {5 I& s
images_type = rbd
" L: X& z# b3 ]5 S2 L: i7 Dimages_rbd_pool = vms& a% |/ a( N$ Y- c
images_rbd_ceph_conf = /etc/ceph/ceph.conf
% W1 [$ \% h/ S$ x% Q3 v$ a5 h( ^8 prbd_user = cinder
4 k! T' E( C6 t+ J, [9 urbd_secret_uuid = 457eb676-33da-42ec-9a8c-9293d545c337
+ h) _( r5 a+ \  a" J% ?/ hdisk_cachemodes="network=writeback"; _$ }- E4 F' k: L
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 00:00 , Processed in 0.039099 second(s), 24 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表