找回密码
 注册
查看: 619|回复: 2

ceph 文件系统mds cephfs文件系统扩容

[复制链接]

0

主题

0

回帖

9

积分

管理员

积分
9
QQ
发表于 2022-7-27 02:00:01 | 显示全部楼层 |阅读模式
cephfs扩容方案
1 N$ ?' a3 {; O6 h+ f+ J) w; U% {
需求描述0 I5 s& M; m' B
. s. s8 F, Q4 k! }9 I  N2 i3 S* V* J
建立完善的cephfs的扩容方案,满足cephfs用户数据存储空间在各种场景下的扩容需求。目前扩容只涉及到用户的数据存储,元数据部分因为空间使用率较低所以不需要考虑扩容。
6 S5 T; i5 M% i: }: ]
8 p. z+ }; C6 l' ]. v现有cephfs用户存储模型& U) X, l1 D8 O
  g% R( Y1 d6 c5 }2 _
目前单个用户会对应一个ceph集群里面的多个Dir目录,每个Dir目录底层会关联到两个pool,其中metadata_pool用来存储元数据,data_pool用来存储数据。
; _$ z" O6 ^3 z- A8 P; A4 ?' b* v
6 G6 L' M  M. `0 i1 f8 c+ _7 l7 t8 M. ]6 I& z

" T; O8 ?) h' P' K单集群扩容方案
2 J) V( l# g- P. T9 t3 E( Y+ Y0 ~& S/ C
通过filelayout进行扩容
5 E; Q& ~; P! t3 K/ b3 {  c( U! C! x- @& g7 S! w$ }
基本原理3 {. b6 `; z0 q  T: C$ K( A

3 r, r( B. j  s8 n' r. D每个文件都有filelayout的xattr属性,其中包含一个关键的pool字段,用来指定存储文件底层用到哪个pool,因此利用该特性可以实现基于目录基本的扩容。
% `8 ?/ `( U  A# a
9 F) m4 Y9 Z, y4 @参考 https://docs.ceph.com/docs/maste ... ata-pool-to-the-mds$ |) N, c/ o9 X  m& C
5 k* E& [! o" N6 }, D9 x6 o. l
操作流程
) }9 X! W3 m, b* [& F- ~& }9 u4 l; F6 A$ a9 q) e6 \8 V
root@host1:/mnt/cephfs1# ceph df RAW STORAGE:     CLASS     SIZE        AVAIL       USED       RAW USED     %RAW USED     hdd       952 TiB     861 TiB     89 TiB       91 TiB          9.52     TOTAL     952 TiB     861 TiB     89 TiB       91 TiB          9.52 POOLS:     POOL                      ID     STORED      OBJECTS     USED        %USED     MAX AVAIL     rbdtest-site1-ssd-img      1     8.7 TiB       2.34M      26 TiB     24.58        27 TiB     rbdtest-site1-sas-img      2     8.8 TiB       2.31M      26 TiB      3.63       233 TiB     cephfs_metadata            3      85 GiB     116.05k      86 GiB      0.10        27 TiB     cephfs_data                4      12 TiB     198.68M      36 TiB     30.65        27 TiB     cephfs_pool1               5     121 GiB      31.04k     364 GiB      0.44        27 TiB     sym_cephfs_data            6     656 KiB          13     3.6 MiB         0       233 TiB     sym_cephfs_metadata        7         0 B           0         0 B         0       233 TiB     kubernetes                20       152 B           6     192 KiB         0       233 TiB root@host1:/mnt/cephfs1# setfattr -n ceph.dir.layout.pool -v cephfs_pool1 /mnt/cephfs1/extest1/ root@host1:/mnt/cephfs1# getfattr -n ceph.dir.layout /mnt/cephfs1/extest1 getfattr: Removing leading '/' from absolute path names # file: mnt/cephfs1/extest1 ceph.dir.layout="stripe_unit=4194304 stripe_count=1 object_size=4194304 pool=cephfs_pool1" root@host1:/mnt/cephfs1/extest1# touch file2 root@host1:/mnt/cephfs1/extest1# getfattr -n ceph.file.layout /mnt/cephfs1/extest1/file2 getfattr: Removing leading '/' from absolute path names # file: mnt/cephfs1/extest1/file2 ceph.file.layout="stripe_unit=4194304 stripe_count=1 object_size=4194304 pool=cephfs_pool1"0 C- c( ?: e8 @  P; g% p, ?

. j8 P- T0 S+ C方案1. 同级目录扩容
  ?) J5 e% L2 F
; X' z" c7 H* o9 k; w' Z& i2 Y1 y如果业务侧能够按新增主目录方式进行扩容,则可以通过新增一个用户主目录,将新目录指向新的data_pool来实现扩容。' `- |! Y& j/ |4 e9 }

& O$ i# i" g' n9 }& ^" f9 t优点:新扩容的pool不会对现有存储服务造成影响。# h2 P. M! I- q9 R$ V9 ]. Q

* V- r" u7 k+ Q; R" S/ l4 y6 z! a, {缺点:业务需要能够适配这种新增子目录的扩容方式。) w, ^# p4 {2 K

. M6 B+ A1 h6 T! h! z$ N: m9 x
% d) b- l0 C2 V
1 U4 `+ j! z0 k% Y8 b8 i方案2. 子目录扩容4 U8 d8 Q; f. P& i8 h
/ L9 j$ L; Z2 O
如果业务侧只能在原有主目录中进行操作,则可以通过在原有主目录下新增一个用户子目录,将新生成的子目录指向新的data_pool来实现扩容。3 ?# M: C" y7 a7 F% J5 O% d

+ e& o, f8 D: N- ]优点:新扩容的pool不会对现有存储服务造成影响。( b% _+ ]; g# o; T& c
8 U' _! \! U: [2 L# z9 ~$ U* Q! H3 Z+ S
缺点:业务需要能够适配这种新增子目录的扩容方式。% c) X, d% W# d( |$ W! l5 Y

8 |3 U- G, r5 q/ N" z( [/ E7 V/ I, R, G1 C6 T

5 [4 h! H0 b! v% a  f通过新增OSD进行扩容
) q1 k+ g% }4 u; ~$ x: }. b
4 v$ K3 P1 d1 y$ }基本原理# `' ^' N% U1 C# Y% r" w" R" l
4 e6 ?, I1 j3 Z! M  E/ z0 d# S
基于原生底层分布式存储的基本特性,可以在原有的pool里面新增OSD进行扩容,但是新增OSD会导致旧有数据重新平衡,造成性能波动,影响服务质量。/ H1 z+ ^, p  }
2 @+ S& D: F) d1 [# v6 _8 t
方案3. 原有data_pool扩容1 f7 r4 Z1 H& T( L5 L) F1 H1 o+ ^
) j0 l& ]/ G' K( f6 }0 D1 W
通过在原有data_pool中新增OSD来实现扩容。
, F& @' |1 Z9 M* y8 a
) C+ E3 X$ {7 ?# n" B5 g2 D. O优点:业务和k8s层面不需要做任何变动,完全对上层透明。. A" W" B/ N$ S4 X" J) m

" f) s/ j) q, U) U4 C缺点:旧集群在新增OSD的时候会发生性能抖动,同时为了兼顾扩容速率和减少业务影响,相对扩容周期会比较长。受限与机房机柜和网络设备环境,有物理层面的上限。
" m4 J2 k% r+ S3 {3 A) }' z
3 j: _! o4 n! E0 T4 d9 o0 F8 n; B, D/ \, }
5 t* l$ `: s' m: j/ p& N
多集群扩容方案7 U+ U6 ]* i2 I( R" j7 ]! @$ S7 ^" B

: m1 D# C- y% t% C8 E方案4. 新增ceph集群% |8 a. o! C+ R% W0 n; a, ?

: n# y! ~5 _  V. @" x受限于单集群规模存储集群的规模有限(受限机柜、网络等),单机房多集群、多机房多集群都会可能存在,因此这一块的存储扩容方案也会纳入设计范围。9 G0 J7 e) h2 U7 }& a+ G8 n

" R5 i8 a8 j' i; {/ e优点:适配现有的单集群部署方案(1个集群跨3个机柜),相对来讲容易做故障域隔离(鸡蛋不放一个篮子里).扩容新集群不会对现有存储服务造成影响。
: Q) u8 @' \4 k5 K5 q2 z7 }7 k5 [6 m9 n# p. F  y
缺点:需要业务能够适配这种跨集群模型(跨集群的目录数据不能互通),单个docker里面最好不要同时挂载两个以上集群的目录。k8s的存储资源调度复杂度上升,需要支持多集群。% B4 ^2 X& M/ \# y+ m

* [' |. H3 e/ k, q
% }) x& ]- O, g

0

主题

0

回帖

9

积分

管理员

积分
9
QQ
 楼主| 发表于 2022-7-27 13:41:27 | 显示全部楼层
[root@ceph-1 ~]# ceph fs get filefs
& L8 T/ Q: [6 E$ hFilesystem 'filefs' (3)
; I6 ^, ?9 P! _5 C8 Ffs_name        filefs
, \( i* k3 f1 F' q+ }2 depoch        53
0 i  n) F# X  P, Y) H. ]1 D/ Tflags        c1 R4 K8 A* C% R' f* N% x! k
created        2022-07-27 11:43:28.889488# |6 ~4 `' f$ m! Y' ^. o
modified        2022-07-27 11:52:06.236226
( W' h9 c! \+ X/ x5 ^& `2 T/ Itableserver        0- ~, N; C% D, A+ X- o% O
root        04 B& D% F! ^  ~* {
session_timeout        60
' B: D& f  _  B: ^" Wsession_autoclose        300
7 |+ ~  }  b4 v3 t% m7 f4 Kmax_file_size        1099511627776
: }9 I9 ~4 |( H2 o8 p6 t5 Rlast_failure        0
3 z5 e( a5 t0 \2 mlast_failure_osd_epoch        308
" ?  h5 L2 j( P$ {7 d$ zcompat        compat={},rocompat={},incompat={1=base v0.20,2=client writeable ranges,3=default file layouts on dirs,4=dir inode in separate object,5=mds uses versioned encoding,6=dirfrag is stored in omap,8=no anchor table,9=file layout v2}
* j4 n. o" T3 l: R7 ^. J$ n2 Vmax_mds        1
- N1 r) @3 g+ lin        0, m9 T9 M7 G) ^( u
up        {0=6289}
3 l; T( G$ S" Efailed        3 k1 ~! Z% |8 v
damaged       
" M/ f3 `$ i. w# jstopped        , V) [; ~2 u2 H+ ?* P1 B
data_pools        [7]2 M0 @) n1 [) m
metadata_pool        6
, q' l; A) \- e# Qinline_data        disabled; D! F( X5 w( a" G  Y3 y; W
balancer        ! q/ \9 b4 v1 c6 h
standby_count_wanted        1& E; [3 U$ V% u$ [  q; l, N
6289:        192.168.120.16:6800/3770900281 'ceph-2' mds.0.50 up:active seq 261

0

主题

0

回帖

9

积分

管理员

积分
9
QQ
 楼主| 发表于 2022-7-27 13:43:43 | 显示全部楼层
恢复步骤# ^4 {2 Q0 I# J7 w5 I

9 M8 n2 X! K8 f6 \5 P8 U设置允许多文件系统, N: y% S: l+ z- s. h
ceph fs flag set enable_multiple true –yes-i-really-mean-it' g. V- T) w) @5 U1 L8 T' p! f4 z
创建一个新的元数据池,这里是为了不去动原来的metadata的数据,以免损坏原来的元数据
+ z/ c* y8 }2 j9 e. O" @ceph osd pool create recovery 8) X" {+ ~% A3 u5 p
将老的存储池data和新的元数据池recovery关联起来并且创建一个新的recovery-fs0 c  M6 |( z" b, H
ceph fs new recovery-fs recovery data_pool –allow-dangerous-metadata-overlay[root@ceph-2 ~]# ceph fs new recovery-fs   recovery  metadata  --allow-dangerous-metadata-overlay2 M8 |0 v" D$ i& H8 y! X  b' ~, U
new fs with metadata pool 8 and data pool 6, r" P* p9 g3 S6 P
# d3 L% O9 Y- }! d5 U, M" H

* D5 z4 l* C3 A( F, H2 L9 I+ C" u做下新的文件系统的初始化相关工作* p) @( N# {. `0 x7 n/ l! y
cephfs-data-scan init –force-init –filesystem recovery-fs –alternate-pool recovery0 O" X2 t& Q4 E. L0 h
reset下新的fs
0 |) v/ ]* S' ]" ?7 wceph fs reset recovery-fs –yes-i-really-mean-it8 u. M- [- H( M( ~
cephfs-table-tool recovery-fs:all reset session
" h5 @1 c$ |: u1 h( rcephfs-table-tool recovery-fs:all reset snap
, U. g  J; c$ C+ v1 fcephfs-table-tool recovery-fs:all reset inode8 e" H5 P9 A' h; ^( o
做相关的恢复
" N7 z( h# q4 c% ~cephfs-data-scan scan_extents –force-pool –alternate-pool recovery –filesystem cephfs data_pool
) Z0 d8 F7 i7 W$ |- V6 {" K- k: ycephfs-data-scan scan_inodes –alternate-pool recovery –filesystem cephfs –force-corrupt –force-init data_pool
% {( T! ]% f& m* p" N& ucephfs-data-scan scan_links –filesystem recovery-fs4 @7 Z; a. ^4 V: L5 R* j& v
systemctl start ceph-mds.target
4 y9 n5 w% n  `. f. d8 _等待mds active 以后再继续下面操作' Q$ B% w7 o( B1 {
ceph daemon mds.mon0 scrub_path / recursive repair
1 }, o9 n3 d1 T5 Rceph fs set-default recovery-fs
( {" j5 d6 T7 z& b" D& _; \5 E9 J% H; ^8 P& H' X2 v- D
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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