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

ceph分布式存储cephfs部署ceph-deploy方式

[复制链接]

0

主题

0

回帖

9

积分

管理员

积分
9
QQ
发表于 2022-7-26 11:00:02 | 显示全部楼层 |阅读模式
为了高可用性,我们部署三个MDS。" c; p- S- G+ T) D+ R7 s+ |* T

# z; u9 o& f  z, Z. E; V0 ~# L! L% N1 d% S2 U$ P! F2 G/ }7 ^
$ cd ~/ceph-deploy/    # 必须在这个目录下执行 7 Y; {5 Z5 \( o' d3 L8 ^9 K& H9 Y

2 H% l7 l3 x. f8 {+ o; L6 K* N7 q- M8 @* d# P: C

& r( j/ V5 N# _& S3 ~  j& [$ ceph-deploy mds create ceph-1 ceph-2 ceph-3 1 ~. G; @1 j0 J

! O. f) ^$ M2 }- L3 a$ @
) Q1 z" }# \3 ]# 安装mds
; T( K7 t) c( ^
, Q( _8 x1 j6 |9 A/ r1 D& E+ Q0 l- M& {& Y7 B

9 c& v" g$ O/ h. k$ |$ ceph -s         # 查询集群状态 , H2 g+ J  y4 W

! x4 @* y& T/ a/ M. D& h' f) F/ l$ w' I0 Z* {/ K! \
cluster:
& E4 q* @  X3 s! ]5 m# \5 t7 S2 Q8 S+ i0 A+ O# h; k. H  a; k

0 a$ g7 o* d* m9 x9 Oid:     b5ae2882-7ec6-46cd-b28e-6d7527e5deb3
" s+ T& |+ E9 ?4 m) ?: y; a* k  W. }6 x, C
! r- H: `$ Z/ j/ w' k5 V0 C( b! q: K" P( G' y6 o' G
health: HEALTH_OK , j. ?) Z, i& P$ i

, t9 C1 o) e- ^
0 ~5 j, K( o" f5 K7 X
: V% t3 t  o& l  \
0 W2 M8 h: n! I: o& uservices: % q1 p8 s8 l8 C9 I
5 q! Y* W6 f' g

: R- y- N& E+ d& Q; }- h; ^mon: 3 daemons, quorum ceph-1,ceph-2,ceph-3(age 42m) 1 u9 ?! i. Y7 y3 Z4 [

: o$ q; _& v" X2 J) W! x1 z' a, p! H1 z/ @
mgr: ceph-1(active, since 46m), standbys: ceph-2, ceph-3% \2 j! {8 {' g2 C' Q- q* n# P
: `! l* l1 v' Z' o+ i
  }' O; Z* i; I
mds:  3 up:standby        # 因为当前还没有文件系统,所以三个都是standby状态
1 u! T; L8 D% X; t
$ F  X  h7 E: Y3 w7 r& f3 e, r! ]* ]3 m! L
osd: 3 osds: 3 up (since 44m), 3 in (since 44m)
5 h( R! a- k! N6 w
) f" l, u2 k  G( R5 H* y8 j0 f4 D5 X5 q; w* n
rgw: 1 daemon active (ceph-1 )1 {8 d- O+ k! G+ c' q4 {
) K' d. u7 x1 @

+ k, M5 K9 h0 k$ T2 h% F4 p8 r. A
7 h3 u& Q+ C% t) F/ L! ` . s4 S1 |3 D' w) c& v" y; I
task status:
9 `/ c2 W) H6 u
6 H1 ]  }. t( Q# t
. r; [; \. v) u0 d! |! g; C! q2 R3 q, V4 v
" U, o! o+ }8 x$ r" P$ I. \
data: : c* a3 b) b8 U
8 I5 S( C& B$ V8 _, U8 ^6 k6 m

% i8 d7 W5 }$ K5 M3 n2 `pools:   6 pools, 2000 pgs
. N4 [+ X- B" s# D% z4 b# z% X: x( I* W! z
' F; Q' T  N- i4 G  R- j+ I
objects: 201 objects, 3.6 MiB
$ R" ^8 v8 y8 i0 P% O6 s5 }- Y# Z* z% E5 r3 H" D

0 b2 R9 M6 V6 `- E+ Jusage:   20.0 GiB used, 580 GiB / 600 GiB avail
+ W# d; r' a( {" a: S. w# v  r( n) t- l, E( e& b* c
- K& O. a8 Z4 g( V: [5 A6 w
pgs:     2000 active+clean , S3 O  O6 c* l8 ]% [4 h  P
三、创建cephfs文件系统•一个Ceph文件系统至少需要两个RADOS池,一个用于数据,另一个用于元数据。注意元数据池中的任何数据丢失都可能导致整个文件系统无法访问。( j5 G" s* \* ]$ O
•对元数据池使用较低延迟的存储(例如SSD),因为这将直接影响在客户端上观察到的文件系统操作的延迟。
- b8 a6 g5 R! Z4 b1 M$ ^3.1 创建pool8 Z% V. b* j$ ?/ _( D( E2 j
8 {, K" t# F0 e" t4 n
$ ceph osd pool create cephfs_metadata 32 32
$ q/ @& H& ~# [5 m; B6 d8 N7 j8 A& L
! e$ U0 C; C9 d! E
$ ceph osd pool create cephfs_data 32 32
9 S0 B7 Y" X: H" ?- @+ M
! Y8 `* v5 Q- V! I) |$ v6 H0 u* c( G, B# v% u( w( F9 ]+ ]; V4 k

) m5 G) ]# R0 z4 l( I+ c$ ceph osd lspools
: Z/ Q% U) A$ L. L/ j8 R) y
+ Q: J4 `4 S( q* R2 m% O; V+ \! L
1 .rgw.root
# B% L: ^+ ]( v2 N; h% j* `, ?9 D
( M2 E, ^) q0 z% Z& [; Y# @' R9 ~. y& b! L# x: Q
2 default.rgw.control
: C! e; Z1 a5 J
' b: l7 N9 f4 q6 A
5 E4 {% U( T( u! g8 ^3 default.rgw.meta / O- Q9 a; D. r! k  K8 K

& w/ |+ c3 C2 |( w. K6 B& p1 T) d( W
4 default.rgw.log 2 W4 q; c8 Z6 p# X1 [: R: `) a: c; D+ z

4 W$ V5 k+ r0 Q7 Y8 O& b1 Q, X: ^& m) {% T
5 default.rgw.buckets.index
7 _- j0 V. |- j: H1 k. |8 q+ s2 H/ k3 c3 Z- ]

0 t& O% a1 Q) \* }6 default.rgw.buckets.data
+ _/ W' K9 e: w" V; l. d5 g( I, X4 t$ V$ {( C7 U6 x9 B' P# b) M
9 z3 U2 V2 A, p) u! A+ s
7 cephfs_metadata
8 c" L0 B' y3 I/ O, ^8 x
* f& _% j# v" O& a; M+ m3 u
* {& X& P1 w( U0 R$ x+ k# [8 M. [6 W8 cephfs_data
7 H; r  c4 c! I* j* W6 s! l: ?# ^5 a) `( g2 v, B
& `: {* v( _& S  a1 _/ ~6 W
# 确认pools已创建
, Z2 y: x% V1 v3.2 创建文件系统. C: M; E6 h- M/ l) n$ }

3 \+ U0 d: I7 F5 Q$ ceph fs new cephfs-demo cephfs_metadata cephfs_data & ^5 i. U6 P1 Q) L' j/ @  ^8 F/ {$ a
, E! ]& j, t/ t( d  e% @/ f

  C! `- Y" h' F8 n8 _# 创建文件系统,格式为:ceph fs new <fs_name> <metadata> <data> 1 ~- ]* S5 S  [, ~* ^4 }$ y& M
( u% A  Y, n/ B, U
. N7 k( ~( ^' w/ {

8 J! Q; H3 z7 L$ i. h. m' {$ ceph fs ls   # 查看cephfs相关信息
/ z. }. r+ L9 s0 r% J4 Y5 a/ Q
: Z, k8 b$ _% j) v' ~% q, i6 P; E  q6 h
name: cephfs-demo, metadata pool: cephfs_metadata, data pools: [cephfs_data ]
1 d+ n$ Q0 p4 v- w# c3.3 确认mds进入active状态
& W5 a- L( E5 L$ m
2 |3 z- [+ B! n/ K2 A$ ceph -s   U/ W. a9 H1 B$ ]: U8 B

- N& ]" c4 G# b$ f- Q8 {& k8 m5 M1 @, |0 a) H% ]9 [3 s
cluster: $ h, A! P2 P3 v& ~
2 n- {% e, [- @. Y: \  J

" A! D# W1 p1 l/ D! y1 x9 }' R+ [id:     b5ae2882-7ec6-46cd-b28e-6d7527e5deb3
- z0 W# G! j  h
8 N  E4 u4 T* Y. Q6 w+ T9 u* \4 O1 r: C& p/ |4 c" Z- \
health: HEALTH_OK
; P" q) y4 W3 a' `! `6 |+ m+ k/ \0 L0 ~; ~

9 m8 Z( t( Z2 M. H) T" a% j  T- u4 V$ J) V" q' d
1 G0 n9 C# @' W" f' B2 [' o
services:
. j: F* p: L/ v, b+ Q) i/ T! o8 i+ N; R% S
4 M  C3 V5 ?* ?+ H, F* W. g
mon: 3 daemons, quorum ceph-1,ceph-2,ceph-3(age 60m) # i5 L& k0 O: v7 G: _' x& a9 |# W

; C# G7 B% q; _0 z3 U+ N& l4 f$ x% K: \  G3 k; n' c1 Q
mgr: ceph-1(active, since 64m), standbys: ceph-2, ceph-3% o7 o& Z# B6 _- q

; r6 b/ r: g( Q5 M2 w! _4 Z4 u7 G6 D" h; ~5 |' t1 q: D
mds: cephfs-demo:1 {0=ceph-1=up:active} 2 up:standby
& ?4 Q! l- }0 I0 x! x/ v4 v- e
" \* f6 y- @% g( E0 C( a6 Q6 T! c) M/ D+ {5 R
# 当前活跃状态的是pod4-core-20-6,还有2个备用节点 5 g3 O8 ]- z5 c5 x6 N1 u: Z3 g
6 W3 ]! n, U' k: O2 C

0 j/ E" k8 |. Z+ a$ ]- |. z1 Uosd: 3 osds: 3 up (since 62m), 3 in (since 62m)
  ?. r% O  B" K  ?* ~  w% V
1 e/ ?0 U( m" O6 G; Z; W* u, Y6 s* ~; T- o& S; [) ?/ L
rgw: 1 daemon active (ceph-1) 9 E5 w, R/ j3 y$ J: Z+ Y
" Q2 e# N7 g1 l' y
0 W1 D. C& Y. `# v4 ^0 q6 u
& D5 {/ i  M9 z' B* l  \
+ |1 V; r/ S* l+ ?1 A! o( l3 {
task status:
  `5 G7 @4 F: z/ b
$ i- @3 v& Y3 a( T, m" G! q; o  T4 j4 }$ F& l
scrub status:
8 }& ~+ t  V0 }9 {
4 O$ E" `0 n% S8 G( P4 h2 F; t% t8 \( r; Q
mds.ceph-1: idle
- w  j7 w/ v- d  t( z
* K7 ?5 v$ `2 M3 @( x( W+ p. K
% V! [- i$ X3 v
; U! T  V% v0 b' [% E2 u2 T2 N- n % Y) ]5 O1 j" N( i# n- y# L
data: ' ?; u4 ?: O$ }* t& e8 v1 w

9 }) _6 p$ F  X9 I1 u, `' W$ Z2 T; k
pools:   8 pools, 2000 pgs % v" g! s4 K5 K' w3 a
: c% N8 }. @* U: p4 ?: l
: O2 ~9 Q& E, x1 l: j, [
objects: 223 objects, 3.6 MiB
  m& L& d; y! k2 W, s
) Y* z, i8 [. O& J# x0 k: T6 v/ @0 J) _4 H
usage:  20.0 GiB used, 580 GiB / 600 GiB avail 7 Y- k* u+ @' B/ X7 y
/ B" \7 ?3 k& X/ v: q/ X/ V( C5 r

+ ~3 b4 ~) a& k9 ?& {4 o, p" r  bpgs:     2000 active+clean 0 i$ U. t# B% B$ a6 N/ {0 U
3.4 cephfs内核级别挂载
( o; @: M# @, Y+ c8 ^! X8 q8 k/ W直接内核级别使用,性能最好。
  W% W# c) h- d+ I, J参考:官方文档
2 A# Y8 G3 I- q! {% S6 I$ a1 ~* T* R& u# u! Y

0 t9 e% \9 ~8 I5 S' k8 A0 s$ mkdir /ceph_fs . ?3 |6 z4 d" [. }- E& F' l# S
6 D" V2 j* \- {! C' E9 G" ~
( y9 m& \* U' g8 N" |! B
- @$ H- O) z$ n( i, {9 J$ c* D
$ mount -t ceph 192.168.120.16:6789,192.168.120.31:6789,192.168.120.23:6789:/ /ceph_fs/ -o name=admin 8 L, G9 z' E) w* @. W

- z! o% d( e& s0 L2 U& {) w# |. [" c6 q. m& b
# 挂载需要指定ceph集群中monitor地址及用户名,monitor地址可以指定一个或多个(如果其中一个宕机不影响使用)
# J- O4 m( v1 l6 M. ]; G: V, e5 i* d2 A+ U/ {& ]& x3 f9 M# @! x1 M
挂载后,即可自行写入数据进行测试。$ A& y7 {  M8 Y
3.5 用户空间挂载使用
; G8 n- l' J; o' x) A( V8 ^7 j' `% Q
* z0 x6 L7 u; z& G# X2 z5 `$ yum -y install ceph-fuse     # 安装客户端
  @; G1 K* u$ W- W! D  q. G8 ]+ H! X

  b# ]0 F" v- M+ G  ?9 w+ o1 H/ Q# w" U$ y$ V! q
$ mkdir /ceph-fuse   # 创建挂载点并挂载使用 ( k" d; q' h" ], e

% A% R* L  R/ h+ o
, q4 Z2 f. q4 |: ~9 m3 l; L$ x0 Y3 m! _: U1 _& l
$ ceph-fuse -n client.admin -m 192.168.99.11:6789,192.168.99.12:6789,192.168.99.13:6789 /ceph-fuse 8 G4 J6 y' ~: m8 _: M
7 i, {5 ~! ^9 x8 [) {) F% T

' O! o) r0 R& w, x5 X# monitor地址可以可以指定一个或多个(如果其中一个宕机不影响使用)
9 z) q4 _- v* _, B! t$ e0 Q$ p" C6 F. ^0 I1 N" f
0 O8 T! s" @8 y$ t1 O, O

4 X7 A' i- ~  `- J. b4 i4 a  e$ df -hT /ceph-fuse       # 查看确认 4 o/ E' W. O6 U; v* X- j
  J6 t$ y8 P' x+ ?
7 E; d6 Q+ `7 `* w8 T, [
文件系统       类型            容量  已用  可用 已用% 挂载点 * t. l: Q9 ^& |9 ^' ], k

7 r9 l8 u, ?/ b* O0 d/ r4 a' j+ u  u4 ]. g( C
ceph-fuse      fuse.ceph-fuse   94G     0   94G    0% /ceph-fuse
9 e, j% }. I" y  P; e# s7 U# O3.6 不同用户挂载不同目录3.6.1 添加新的pool到cephfs
& k& l4 X4 O/ x7 h' e" y
4 p7 i2 D8 ~6 j' U7 L: R# cephfs中增加新的pool - o' d0 U: u* O( j, C# U! Q) ^

% s' D& r# R. g; A2 E9 O* u$ P, g8 l. e
$ ceph osd pool create cephfs_data1 64 64   # 创建pool
! r" F# {5 Y# `+ w4 [. Y
. e; a/ H1 Z8 p; N+ f+ l
2 G' G7 T. o: U  m# ]" ^$ ceph fs add_data_pool cephfs-demo cephfs_data1    #加到cephfs中
+ o# D) W* q* [3.6.2 创建bruce的用户,这个用户只能访问目录/bruce,数据存储在 pool cephfs_data1 中
5 u" z+ k# a" k. A' n
$ M/ p4 J$ c2 N! H8 S$ ceph auth get-or-create client.bruce mon 'allow r' \
$ \" y* `" t: g  b, n% b) ~+ t7 U
% Y( k' x8 B4 G/ Z( @/ c7 y, V1 n! H% N2 W3 u
mds 'allow r, allow rw path=/bruce' osd 'allow rw pool=cephfs_data1'
6 M1 M$ W$ `2 ~, K6 o$ S' |5 d; ~; S4 g
  A3 g  j# \5 ]9 o6 ^8 V$ l# t6 r
[client.bruce] 9 V4 o2 q3 @1 c4 p- k# f+ f
2 o/ w) Q) ~( {' L( v

3 t, m+ Z" S+ C7 G2 n( p: T; k( Jkey = AQCtFc9g/CmyERAAzi7ORpEWIxlMiiFC1GK7nA== # A# J" Q' G2 r% ]8 h
3.6.3 客户端挂载; o+ a; Z4 y8 [; ?$ ^! D0 c
6 b9 }; |$ m2 V3 d" D  \+ q
$ mkdir /data1 # Y% w. ^2 r2 x# q) x. o1 {
- s) y9 {2 F* l4 {% e
$ r. }7 p) E* D* \, _7 d
$ mount -t ceph 192.168.120.16:6789,192.168.120.30:6789,192.168.120.23:6789:/ /data1/ \ 2 X2 u  ~* r) N* m5 _4 A  ?- W
% y3 G. j) Q" C% o0 y& ]

; @' b. I2 F5 A% q, e, U6 {-o name=bruce,secret=AQCtFc9g/CmyERAAzi7ORpEWIxlMiiFC1GK7nA==
9 z. @& h* J1 u+ Q9 n四、cephfs权限与访问控制4.1 添加用户) L" O2 `7 q! R) [7 @
添加用户jerry,jerry只有对/jerry路径下的文件具有读写权限,对其他路径下的文件只有读的权限
- w. Z. x" L( ]  t/ F" [) b, W, L2 M( q, u
. W4 V9 j5 ~3 T6 v; L; O+ q
$ ceph auth get-or-create client.jerry mon 'allow r' \
, k& x2 P' P2 G, D! J1 i
6 m1 n- I* l9 {3 t1 e0 j3 q! M8 z- k2 u) e9 e$ }8 Q, I
>   mds 'allow rw,allow rw path=/jerry' osd 'allow rw pool=cephfs_data2'
% K0 h: E* B' c& m; Z3 e# N
5 \% V# U) X# w* Y, K  f4 E; U# M3 G
[client.jerry] , y2 k+ W7 L8 B2 u  B! p- _

1 J+ l+ w4 {5 {; b2 s& K' l7 l$ D' t6 }7 m4 o4 M
key = AQCdFs9gcepnKRAActZ4OcFf0bg3HsDpVMhlMA== 9 e) f0 a! A# f6 v

0 x5 y9 s# G8 E; S+ S; u- |" n; J* o5 M
: Z7 J1 C" T' L. G4 I' h* @3 N
' n7 _. R# Z5 ?0 a- D* j$ mount -t ceph 192.168.120.16:6789:/  /data   -o name=jerry,secret=AQCdFs9gcepnKRAActZ4OcFf0bg3HsDpVMhlMA==
% v: }0 k& {  P8 e9 E) @' r3 T. `: Q7 g
. f: [# X% N& P# K7 W
# 使用jerry用户挂载 $ @/ B# R! ?7 N& o
4.2 获取权限列表
% n0 t# H$ E7 }) ^) c( \2 v- I2 g2 Q2 F+ E! K4 Z3 w
$ ceph auth list
$ a. m4 e6 e1 A. V4.3 删除用户
0 l1 U3 X# P) v; j
" S; c2 d, ~8 a' q6 l$ ceph auth del client.jerry ! I3 M' f; D" ?! r$ C$ C$ @
4.4 获取某个用户的key# v/ ]& h' V5 p( V
* l! e: ^' }: O% _: T
$ ceph auth get-key client.bruce ! u$ B- q1 I( q+ E
4.5 修改用户权限
5 G3 U, V9 H+ I. u# J: n- Y* j2 B7 N) ^1 u7 W- r
$ ceph auth caps client.jerry mon 'allow r' mds 'allow r, allow rw path=/jerry, allow rw path=/test' osd 'allow rw'
2 W6 O; U' a% r) z4.6 注意事项2 H6 |3 q2 |. m8 T
•当用java api操作cephfs时,api无法指定新建文件or目录的所属用户or所属组,这两个属性取决于运行java程序时的当前用户(uid)及其所属的用户组(gid)
6 {( }. H: i. ^/ E2 L4 ^•经过测试发现,cephfs文件or目录的权限是linux本身用户权限和cephfs用户权限的交集3 x0 @$ a! n  U7 m5 a
•修改用户权限后,在本地需要重新挂载才可生效7 V- J" a0 C+ ~( h# {4 Z* \
•建目录,设置权限无需前后顺序
/ u% E( s5 Z4 U1 l+ i8 }) z& B

# |' l) h3 [; e0 A# V6 ~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-11 22:58 , Processed in 0.031534 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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