易陆发现互联网技术论坛

 找回密码
 开始注册
查看: 4|回复: 0
收起左侧

在openstack中对接ceph存储的纠错码池方式

[复制链接]
发表于 2025-3-29 11:00:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?开始注册

x
openstack 中使用 Ceph 纠删码(Erasure Coding, EC)池,通常涉及到以下几个步骤:. f5 ^" b# L" J6 ~# |  w% _
1. 配置 Ceph 集群以支持纠删码首先,确保你的 Ceph 集群已经配置并支持纠删码。这通常涉及到以下几个步骤:% s7 E" T( S% o+ T/ t5 X
a. 创建纠删码池在 Ceph 中,你可以创建一个使用纠删码的池。例如,使用 jerasure 和 reed_sol_van 算法创建一个纠删码池:
% M! ?  P2 n; p4 ?/ B0 i+ h& {
# l' G7 }* d  @+ m4 x9 N* i3 M) x: R- [

& T, `* g+ f: `- I0 [) T) {0 t, K/ S. i2 P1 e8 K' {) p5 K$ ^

9 D3 E+ ?+ _- ~: _) `
8 O5 p& X  j/ W) Q$ J2 q
) ~* N" l. U1 x8 l/ F7 c' p, c: b  E- N
ceph osd pool create ec_pool 128 128 erasure code_profile ec_profile
1 ^4 p* f: T4 Eceph osd erasure-code-profile set ec_profile jerasure yel error_domain=1 k=6 m=2 ruleset-failure-domain=host crush-root=default
' D& ]6 A5 P; V3 w* @, t1 l: p- a$ [2 q- R- O$ p
3 a# X+ h) Z: h# l2 s
这里,k=6 表示数据块数量,m=2 表示校验块数量,error_domain=1 表示每个主机最多有一个故障域。2 C( S" i. o: ?2 i
b. 验证池配置确认池已正确配置为纠删码:* n, u1 g8 {# e! l

! x2 j% j% ]2 u& H; p0 ^! k5 ~
# r1 e8 S) u: f0 o+ Z' z
, q6 @& o) C6 A- F0 C  O
; a' ~5 h& ?" m% J/ t7 s1 Y) o
4 }2 H9 `( c' [1 ^4 I# l9 ?- [. J
- p8 I. T' c; |  q6 }* i
ceph osd pool get ec_pool erasure_code_profile   / f" c: s! S8 L  X$ O( F; e& K
7 x8 P8 }! M; H+ t

6 {' m% z: }" \7 }2. 在 OpenStack 中配置 Ceph 和使用纠删码池在 OpenStack 中使用 Ceph 纠删码池,你需要在 Cinder 和 Nova 中配置 Ceph 以使用这个新的池。
; a1 [; q; Z/ p1 A3 la. 修改 Cinder 配置文件编辑 Cinder 的配置文件(通常是 /etc/cinder/cinder.conf),并添加或修改以下设置:# h. R. X& p/ [1 N+ M6 w+ u1 K0 A
  X' Q% x" D$ @- S" E
- W, e, o7 R2 {$ L3 E" q
* ~( n! L% h6 g3 f. R. J; `

' f& K2 P6 U' h' L1 x. N/ U% A9 t# F/ m: F- l, L
. W2 z; L& e% X' T

; i8 S! x' Z. [: {2 l7 G, K" O
# K4 _0 h; s- }" ?. Q( R
* t7 q) [  f( g7 n) p: D
8 i; J! M8 C" F) [% h4 r* M7 |" K! b& @/ g5 h0 M- W* n' p
[cinder]7 X) c: m# j9 W, f$ i
volume_driver = cinder.volume.drivers.rbd.RBDDriver
0 A: }. z5 f0 v( n+ d& r5 n; brbd_pool = ec_pool
# _' A3 x" X" @0 y$ |) G3 F' erbd_user = cinder-user
0 @* b" H7 s: c2 Prbd_secret_uuid = <secret-uuid>   
: s* K7 W2 q: X. B' z
6 y' _. l; J# G* s* V0 {7 j# k+ s" f2 d
确保 rbd_secret_uuid 是你的 Ceph 认证密钥的 UUID。你可以使用以下命令生成 UUID 长字符串:2 m% y1 Z) L+ C# L, z4 w% P1 V
- k0 Z# D* ]" A0 z( J

/ w5 I  l8 y" `+ X% o5 T% }3 L7 g1 l( _* O/ e, k
- W! }9 m- ?1 I2 i: }  h& U5 \7 ~- _
4 c, J' A) p$ Y  b" D2 }

) O! R( k' I  z/ E. a- L. Q$ T1 T
uuidgen  ]- w4 {% a4 J4 t

0 i* e4 V$ Z+ n' S+ y% \
/ l: l1 \, T+ @
1 W+ V% ]3 n, w' c. {3 }0 ?b. 配置 Ceph 认证密钥生成 Ceph 认证密钥并将其添加到 Cinder 和 Nova 的配置中:2 g1 E) a% ^; z! h5 b+ D4 j% M

4 |( L# r7 O/ s9 D( b  X5 i! O6 B/ [; q* L+ v1 M) u9 R* z% V, T

( L. g' M9 Z3 U1 F5 _3 b, s, [7 u9 M% l( l7 `0 h1 ]5 W2 U
/ W+ k' _1 x" u8 C. j7 z7 X/ R

& W; T# i6 G* W, m( W! h$ T' U2 N& X" }8 Q- _0 j
ceph auth get-key client.cinder-user | base64
" e  [% m( Z: X9 c) `* n0 |; k) }6 {, W) f) b  k

# d7 f7 K- T- `) Z0 m4 K/ W将输出添加到 Cinder 和 Nova 的配置文件中:
8 t* R0 M% |. d4 r$ N3 l
3 v# K2 o6 s" V  y$ `
) h6 Q: c3 M( t: ?& Y, g( l- e: v$ a9 z9 p; W4 ]$ L! M
" X$ Z' |7 |/ T0 Q: O) S2 t' }

2 Y$ g+ p" A, d
$ D3 n$ I" o( O3 g' W9 ]( _- `: G1 Z

! O: w" m! H- r' N4 ^7 w2 M1 }* P/ U% K* G, O

7 l1 e' D% D* f# F$ E% H[DEFAULT]
) u4 R# j) ~7 e9 e  Orbd_secret_uuid = <secret-uuid>     ###from uuidgen$ D; t& T$ F) g/ N2 j  C! M
rbd_user = cinder-user
- E9 _* Q( ?: zrbd_ceph_conf = /etc/ceph/ceph.conf
+ y8 s; F- v) y, z
/ A9 y) f4 V$ v$ s  N1 n8 c/ N# j$ _
c. 重启 Cinder 服务以应用更改& w! c# ]( u* B3 P: t1 ?
) ?* Q: w4 B0 T3 ?5 z# T3 y

* L! Q9 n3 Q* |; J6 ^$ A8 u4 a  M; v  t1 U/ @

7 ]0 M8 Y! g" N! J- C8 V" q( \
, q4 G# i  b5 g. h. ~# R- s( I0 \$ m
systemctl restart openstack-cinder-api.service openstack-cinder-volume.service openstack-cinder-scheduler.service0 s" S; m; y# Q. r" ?' y

7 Y3 J- z) K' G; \6 M8 p$ u2 T
; X9 Q  q" S) ^# P0 {: j3. 验证配置确认 Cinder 可以正常使用纠删码池:% k( p6 u8 ]' j! Q  ?

! p& P$ b  `; g% C' G" U' K7 [# V
+ p) l  z  K+ R  `1 }9 c

4 u+ `8 U2 `/ M4 E+ G6 L8 O8 d4 q+ `
! S4 b  {3 F% @7 f! N' k+ [& W
( O1 [% w, N3 C& D9 w  x0 K9 a1 G7 `7 s9 r# \0 Z( I5 s
openstack volume create --image <image-id> --size 10 <volume-name>& d# C/ l6 M, d" \& U/ m0 u2 D

; U4 m& {8 j# Y( ^7 v; V
2 Y3 N* e6 p) y( ^检查卷是否正确创建在 EC 池中:/ ]9 F8 |, G. y* B+ q
" U3 S. }7 u% K8 G* h' c$ M& R
+ c) J: @( J4 w' _) p$ a- P
6 ], N- ]- {5 _* b$ B# F% L
  d; j% A1 G$ M3 m! j
) H( q' H0 |3 z
/ L8 D; u' X2 ]! V7 ]: N% Z
6 t( Y1 p% b, R" j/ ~
rbd ls -p ec_pool --id cinder-user --keyfile=/etc/ceph/ceph.client.cinder-user.keyring | grep <volume-name>
$ j) P- V' C1 `/ \6 S0 ?9 H9 I
) o1 F4 d" m1 w) K* F+ ~; C
4 S4 f1 g! F5 R1 E" [9 n* O4. 在 Nova 中使用 Ceph 块存储(可选)如果需要在 Nova 中使用 Ceph 块存储,确保 Nova 的配置也指向正确的 Ceph 用户和密钥。这通常涉及到编辑 /etc/nova/nova.conf 并添加类似的 RBD 设置。4 z* g; Y; P# j
5. 重启相关服务(如果需要)根据需要重启 Nova 服务:
# L  N1 F' k+ v. O
% a( m& x! c9 X) R5 q; A6 V; Z8 K7 t- c# E( I

6 v4 y. |. h7 t& y0 B$ n, L+ O; l" U& P  s% L
9 y# j" c. p  l3 @! [3 O5 b1 V: {% Q
1 L0 V' W% R, [; ]; g7 U5 n
7 b" p7 F( L, B# S% _3 M  {
systemctl restart openstack-nova-compute openstack-nova-api openstack-nova-scheduler openstack-nova-conductor, _3 i3 M3 \. s  j
4 x$ [) _3 _! i% \" N
/ _- d7 Y& z* ~8 i
通过以上步骤,你应该能够在 OpenStack 中成功配置和使用 Ceph 的纠删码池4 T7 @$ R  h$ e+ Q5 Y. y. x

# H6 M7 |' V# u6 H$ A- M配置完成。0 `  _% c, q+ Y0 Q; L! [
$ k7 }/ \& W, Z; ~1 `5 D
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

北京云银创陇科技有限公司以云计算运维,代码开发

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )点击这里给我发消息

GMT+8, 2026-4-8 21:29 , Processed in 0.047627 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

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