cephfs擴(kuò)容方案
需求描述
建立完善的cephfs的擴(kuò)容方案,滿足cephfs用戶數(shù)據(jù)存儲(chǔ)空間在各種場(chǎng)景下的擴(kuò)容需求。目前擴(kuò)容只涉及到用戶的數(shù)據(jù)存儲(chǔ),元數(shù)據(jù)部分因?yàn)榭臻g使用率較低所以不需要考慮擴(kuò)容。
現(xiàn)有cephfs用戶存儲(chǔ)模型
目前單個(gè)用戶會(huì)對(duì)應(yīng)一個(gè)ceph集群里面的多個(gè)Dir目錄,每個(gè)Dir目錄底層會(huì)關(guān)聯(lián)到兩個(gè)pool,其中metadata_pool用來存儲(chǔ)元數(shù)據(jù),data_pool用來存儲(chǔ)數(shù)據(jù)。
單集群擴(kuò)容方案
通過filelayout進(jìn)行擴(kuò)容
基本原理
每個(gè)文件都有filelayout的xattr屬性,其中包含一個(gè)關(guān)鍵的pool字段,用來指定存儲(chǔ)文件底層用到哪個(gè)pool,因此利用該特性可以實(shí)現(xiàn)基于目錄基本的擴(kuò)容。
參考 https://docs.ceph.com/docs/master/cephfs/file-layouts/#adding-a-data-pool-to-the-mds
操作流程
root@host1:/mnt/cephfs1#cephdf RAWSTORAGE: CLASSSIZEAVAILUSEDRAWUSED%RAWUSED hdd952TiB861TiB89TiB91TiB9.52 TOTAL952TiB861TiB89TiB91TiB9.52 POOLS: POOLIDSTOREDOBJECTSUSED%USEDMAXAVAIL rbdtest-site1-ssd-img18.7TiB2.34M26TiB24.5827TiB rbdtest-site1-sas-img28.8TiB2.31M26TiB3.63233TiB cephfs_metadata385GiB116.05k86GiB0.1027TiB cephfs_data412TiB198.68M36TiB30.6527TiB cephfs_pool15121GiB31.04k364GiB0.4427TiB sym_cephfs_data6656KiB133.6MiB0233TiB sym_cephfs_metadata70B00B0233TiB kubernetes20152B6192KiB0233TiB root@host1:/mnt/cephfs1#setfattr-nceph.dir.layout.pool-vcephfs_pool1/mnt/cephfs1/extest1/ root@host1:/mnt/cephfs1#getfattr-nceph.dir.layout/mnt/cephfs1/extest1 getfattr:Removingleading'/'fromabsolutepathnames #file:mnt/cephfs1/extest1 ceph.dir.layout="stripe_unit=4194304stripe_count=1object_size=4194304pool=cephfs_pool1" root@host1:/mnt/cephfs1/extest1#touchfile2 root@host1:/mnt/cephfs1/extest1#getfattr-nceph.file.layout/mnt/cephfs1/extest1/file2 getfattr:Removingleading'/'fromabsolutepathnames #file:mnt/cephfs1/extest1/file2 ceph.file.layout="stripe_unit=4194304stripe_count=1object_size=4194304pool=cephfs_pool1"
方案1. 同級(jí)目錄擴(kuò)容
如果業(yè)務(wù)側(cè)能夠按新增主目錄方式進(jìn)行擴(kuò)容,則可以通過新增一個(gè)用戶主目錄,將新目錄指向新的data_pool來實(shí)現(xiàn)擴(kuò)容。
優(yōu)點(diǎn):新擴(kuò)容的pool不會(huì)對(duì)現(xiàn)有存儲(chǔ)服務(wù)造成影響。
缺點(diǎn):業(yè)務(wù)需要能夠適配這種新增子目錄的擴(kuò)容方式。
方案2. 子目錄擴(kuò)容
如果業(yè)務(wù)側(cè)只能在原有主目錄中進(jìn)行操作,則可以通過在原有主目錄下新增一個(gè)用戶子目錄,將新生成的子目錄指向新的data_pool來實(shí)現(xiàn)擴(kuò)容。
優(yōu)點(diǎn):新擴(kuò)容的pool不會(huì)對(duì)現(xiàn)有存儲(chǔ)服務(wù)造成影響。
缺點(diǎn):業(yè)務(wù)需要能夠適配這種新增子目錄的擴(kuò)容方式。
通過新增OSD進(jìn)行擴(kuò)容
基本原理
基于原生底層分布式存儲(chǔ)的基本特性,可以在原有的pool里面新增OSD進(jìn)行擴(kuò)容,但是新增OSD會(huì)導(dǎo)致舊有數(shù)據(jù)重新平衡,造成性能波動(dòng),影響服務(wù)質(zhì)量。
方案3. 原有data_pool擴(kuò)容
通過在原有data_pool中新增OSD來實(shí)現(xiàn)擴(kuò)容。
優(yōu)點(diǎn):業(yè)務(wù)和k8s層面不需要做任何變動(dòng),完全對(duì)上層透明。
缺點(diǎn):舊集群在新增OSD的時(shí)候會(huì)發(fā)生性能抖動(dòng),同時(shí)為了兼顧擴(kuò)容速率和減少業(yè)務(wù)影響,相對(duì)擴(kuò)容周期會(huì)比較長(zhǎng)。受限與機(jī)房機(jī)柜和網(wǎng)絡(luò)設(shè)備環(huán)境,有物理層面的上限。
多集群擴(kuò)容方案
方案4. 新增ceph集群
受限于單集群規(guī)模存儲(chǔ)集群的規(guī)模有限(受限機(jī)柜、網(wǎng)絡(luò)等),單機(jī)房多集群、多機(jī)房多集群都會(huì)可能存在,因此這一塊的存儲(chǔ)擴(kuò)容方案也會(huì)納入設(shè)計(jì)范圍。
優(yōu)點(diǎn):適配現(xiàn)有的單集群部署方案(1個(gè)集群跨3個(gè)機(jī)柜),相對(duì)來講容易做故障域隔離(雞蛋不放一個(gè)籃子里).擴(kuò)容新集群不會(huì)對(duì)現(xiàn)有存儲(chǔ)服務(wù)造成影響。
缺點(diǎn):需要業(yè)務(wù)能夠適配這種跨集群模型(跨集群的目錄數(shù)據(jù)不能互通),單個(gè)docker里面最好不要同時(shí)掛載兩個(gè)以上集群的目錄。k8s的存儲(chǔ)資源調(diào)度復(fù)雜度上升,需要支持多集群。
責(zé)任編輯:xj
原文標(biāo)題:cephfs擴(kuò)容方案匯總
文章出處:【微信公眾號(hào):Ceph對(duì)象存儲(chǔ)方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
6817瀏覽量
88743 -
儲(chǔ)存
+關(guān)注
關(guān)注
3文章
199瀏覽量
22344 -
Ceph
+關(guān)注
關(guān)注
1文章
22瀏覽量
9392 -
擴(kuò)容
+關(guān)注
關(guān)注
0文章
4瀏覽量
2348
原文標(biāo)題:cephfs擴(kuò)容方案匯總
文章出處:【微信號(hào):cephbook,微信公眾號(hào):Ceph對(duì)象存儲(chǔ)方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論