- 积分
- 16843
在线时间 小时
最后登录1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?开始注册
x
在 openstack 中使用 Ceph 纠删码(Erasure Coding, EC)池,通常涉及到以下几个步骤:
9 }+ ]+ Z/ T9 \0 F5 c1. 配置 Ceph 集群以支持纠删码首先,确保你的 Ceph 集群已经配置并支持纠删码。这通常涉及到以下几个步骤:9 @3 I. Z i9 U0 W
a. 创建纠删码池在 Ceph 中,你可以创建一个使用纠删码的池。例如,使用 jerasure 和 reed_sol_van 算法创建一个纠删码池:
/ L2 R2 }1 K" m* x2 i7 w; C% [7 z' q- t3 `( g- g: c% t
. I* M: E% @- ^5 i8 a3 \6 b
- p* h) L; F M% @1 X- U
* @- t8 \" k& r* Y
* ^# p( s& G7 C/ R! p0 i) o: y
; z7 N! K9 g7 I0 |% h; U7 q1 {) x
. {( s9 C# l& u5 E/ |! [
! H4 p) [5 N- eceph osd pool create ec_pool 128 128 erasure code_profile ec_profile
# A( j5 v" Q1 _+ O$ e* } m# Zceph osd erasure-code-profile set ec_profile jerasure yel error_domain=1 k=6 m=2 ruleset-failure-domain=host crush-root=default
, B, Z+ z) i$ G+ @
6 x- a, \+ R# n' R% W2 \7 d
) @* _4 h% W D" X这里,k=6 表示数据块数量,m=2 表示校验块数量,error_domain=1 表示每个主机最多有一个故障域。
5 }* C9 V [% O6 wb. 验证池配置确认池已正确配置为纠删码:
& P! Y: S; ~5 a# b& F& l2 _
3 ^- b8 K/ I9 A, R+ U( X, I7 d, h5 v+ t3 F
: @6 W! C, A% z8 J6 g4 r% o$ }( W% I% I" @
7 m* Y8 h1 J; ?+ ?+ Z t3 Q
8 ~( P: I4 [/ u! ^; V' H* P w) Y' z/ q; i Y8 ~
ceph osd pool get ec_pool erasure_code_profile
( ]8 F" }3 ]+ m, L
+ v, b; c4 Z& ~9 l" Y
; d" b- n$ ?; B/ g2. 在 OpenStack 中配置 Ceph 和使用纠删码池在 OpenStack 中使用 Ceph 纠删码池,你需要在 Cinder 和 Nova 中配置 Ceph 以使用这个新的池。: e6 M! ~) i/ `8 w* ~
a. 修改 Cinder 配置文件编辑 Cinder 的配置文件(通常是 /etc/cinder/cinder.conf),并添加或修改以下设置:
i( @, Y. _0 S1 y) o0 @9 B) P0 j* |% f8 r ]
% F% b9 x+ A6 @# J% S
- t# I9 S7 z [4 }7 {& [- B( Q" ~0 b6 V# N! }. L
- f& E, _9 y4 }! F- T4 U( V) x n& ^+ u
$ _* k# E4 q4 H& [" q$ }
0 V/ c# N( O+ @8 N. T/ u# V
0 M6 d6 \( ^4 Y) B# G# c/ u3 g
4 d! h! g L6 {* f0 t5 N, }+ j- ^, ^# |
[cinder]! O8 ^& |5 J" w4 @ A- X
volume_driver = cinder.volume.drivers.rbd.RBDDriver
8 ~# L3 j8 C+ y3 i6 {# @" V% Zrbd_pool = ec_pool
: l7 z0 i" g6 m. p4 ?rbd_user = cinder-user
6 j. _) R1 e" P2 r) Nrbd_secret_uuid = <secret-uuid>
0 f3 T) w' y1 p6 B: R! K5 Y8 ~0 Q- s6 S& J
5 m1 A, w5 q0 `确保 rbd_secret_uuid 是你的 Ceph 认证密钥的 UUID。你可以使用以下命令生成 UUID 长字符串:3 S+ x! x0 q* U! r$ L; W
: H- o- M0 }' f1 L, e" T5 G
: z$ g" M4 Z- O) r
) D, @2 a8 y' s3 a3 H4 k( m F
9 z2 h% P+ v) V) E' C0 {) ?% T* X' i0 w: b9 y$ _
& |8 U8 O6 N3 p* l; r
" q1 @9 ^- d' }$ y1 ?6 E& quuidgen
, V6 A& S' a; F4 r1 u/ a: q
8 `# Y5 H* g$ N/ u* K" k
. ?0 D' J, J' A, Y1 l+ j; R, h n; b% ^# `* U6 e& k8 k* t) F# k: M
b. 配置 Ceph 认证密钥生成 Ceph 认证密钥并将其添加到 Cinder 和 Nova 的配置中:
4 o& C3 `, |) B# ?! d; A. B8 N7 F J9 h% F: F, x
6 K$ n# d4 r/ g3 Z
5 T7 h( ?# C# p' _3 D% H! c7 J' ]' d. V) j2 `# ^8 x' R
1 i# Z _0 \5 L, |6 `
) Z5 g3 {. v0 b. C& i& @" h9 u& Q! `( \9 }
ceph auth get-key client.cinder-user | base64
6 y8 V; _% \" j/ p6 G, Y5 b* |: Y, M) \
; ?3 O# _3 H& ~- ]& C* c0 {! O
/ M5 J0 h3 t$ S5 `将输出添加到 Cinder 和 Nova 的配置文件中:
' L# F- [6 n. ?1 U' W
& D. \7 b( @% j* `- s2 I
9 P' z5 {0 f! l+ E
9 H& T, E4 P2 r$ a0 Q* _- v% X; f0 g6 y# ~; W& r
, X" ^' \! E2 _4 e
8 f' e5 o6 _5 P0 O5 I: X
1 H, j2 R/ h1 g1 ?7 A
( e, ?5 D7 `3 k8 ?+ v8 B: p
% ?9 u# R7 H+ k# P
. l& @( R. ]6 r' s. R; E" W1 E2 |[DEFAULT]
- i9 _& n/ d; c1 d9 l/ xrbd_secret_uuid = <secret-uuid> ###from uuidgen
" U7 ~- w$ V8 ~1 [" }' J; q, Q4 crbd_user = cinder-user8 A4 p. |& J( y5 M7 q/ ~
rbd_ceph_conf = /etc/ceph/ceph.conf) Q# H' b. d" g% f! A; d
" W) W( ]/ f @, N6 @
- T) T% d% \2 j$ p! A0 I: ac. 重启 Cinder 服务以应用更改
7 f/ t. t, v8 w, q: L
& R( R) B/ B3 c$ H" R, h7 R7 B. h1 K( B6 O( h) |7 }1 v. K2 \
8 G& l9 v. V4 Q; H4 X5 \' a i/ B# R/ \$ `. o1 K! w
! b& ?' N& D0 |+ J
. x1 \/ V5 [7 M1 Csystemctl restart openstack-cinder-api.service openstack-cinder-volume.service openstack-cinder-scheduler.service
: L% y$ u+ a2 @! m3 Q2 ~$ H* L; Z4 P$ n5 ^ `1 u2 u: d' z g x
" M! Y3 y! w7 h) Q! f
3. 验证配置确认 Cinder 可以正常使用纠删码池:: a( R5 P ^9 ]& Z+ n
/ i" K1 x: G- `8 d( W) i5 E: ]. E* b7 y# Q1 G7 @5 o- N' j
" M9 a, B& _& J
' N8 k# R! b z4 @8 P
4 N& S. p* t9 `* ?& n2 q
3 m% T2 S( z" Q. E" v) O- U' `' r/ |: X/ p- B
openstack volume create --image <image-id> --size 10 <volume-name>/ }+ g" H. L; J8 @/ w ]
" y1 u! w% K# |& D5 f
2 |: h1 W( M/ [# F$ r检查卷是否正确创建在 EC 池中:
3 n! A7 F" ~ ]! u/ I
- b: b* N$ u9 F0 d! x4 `* G& x: v' M: d7 K0 d& q- |7 I4 X$ C
3 n7 A) m* j# K3 }5 H K
- o# }3 H9 n3 l; T. J$ i- U0 ], M2 I- Y1 ]
# q4 u( C0 J0 L4 n: K8 {" }8 x( _ c, B5 M# @ s8 x
rbd ls -p ec_pool --id cinder-user --keyfile=/etc/ceph/ceph.client.cinder-user.keyring | grep <volume-name>& S( w7 K3 s8 F0 z4 I
2 h& q: p# A4 G0 {
9 A+ m/ H& S' v* ^2 X
4. 在 Nova 中使用 Ceph 块存储(可选)如果需要在 Nova 中使用 Ceph 块存储,确保 Nova 的配置也指向正确的 Ceph 用户和密钥。这通常涉及到编辑 /etc/nova/nova.conf 并添加类似的 RBD 设置。. I2 z( D8 l% M9 I4 W/ _& \
5. 重启相关服务(如果需要)根据需要重启 Nova 服务:2 ?. l3 |) D# ]( e( O4 B1 H. k4 C- E
: ?* A r5 ]+ V* z( R, r
" H/ K# H! h" ^% G. f6 ^. `$ N# M7 a
?: K: [5 M) ~# O! w+ {4 _% [
: ], v- n8 |) r2 _" v7 Y3 g8 K
- ]5 ~+ S `8 N1 C( {
, y. A) D# ]) q9 {9 l) `systemctl restart openstack-nova-compute openstack-nova-api openstack-nova-scheduler openstack-nova-conductor0 O! c! A K$ d6 v l
: w" I# y- u \, l% F
. F( D* g+ X3 p& ]& m
通过以上步骤,你应该能够在 OpenStack 中成功配置和使用 Ceph 的纠删码池/ A' F' F" w1 n/ [" @) P
: M+ `" D. B, N7 Q' M: i) ~
配置完成。
' k% O1 i: @9 H ]2 N9 m: C n/ G3 B: s% D2 Q
|
|