cephfs擴容方案
需求描述
建立完善的cephfs的擴容方案,滿足cephfs用戶數據存儲空間在各種場景下的擴容需求。目前擴容只涉及到用戶的數據存儲,元數據部分因為空間使用率較低所以不需要考慮擴容。
現有cephfs用戶存儲模型
目前單個用戶會對應一個ceph集群里面的多個Dir目錄,每個Dir目錄底層會關聯到兩個pool,其中metadata_pool用來存儲元數據,data_pool用來存儲數據。
單集群擴容方案
通過filelayout進行擴容
基本原理
每個文件都有filelayout的xattr屬性,其中包含一個關鍵的pool字段,用來指定存儲文件底層用到哪個pool,因此利用該特性可以實現基于目錄基本的擴容。
參考 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. 同級目錄擴容
如果業務側能夠按新增主目錄方式進行擴容,則可以通過新增一個用戶主目錄,將新目錄指向新的data_pool來實現擴容。
優點:新擴容的pool不會對現有存儲服務造成影響。
缺點:業務需要能夠適配這種新增子目錄的擴容方式。
方案2. 子目錄擴容
如果業務側只能在原有主目錄中進行操作,則可以通過在原有主目錄下新增一個用戶子目錄,將新生成的子目錄指向新的data_pool來實現擴容。
優點:新擴容的pool不會對現有存儲服務造成影響。
缺點:業務需要能夠適配這種新增子目錄的擴容方式。
通過新增OSD進行擴容
基本原理
基于原生底層分布式存儲的基本特性,可以在原有的pool里面新增OSD進行擴容,但是新增OSD會導致舊有數據重新平衡,造成性能波動,影響服務質量。
方案3. 原有data_pool擴容
通過在原有data_pool中新增OSD來實現擴容。
優點:業務和k8s層面不需要做任何變動,完全對上層透明。
缺點:舊集群在新增OSD的時候會發生性能抖動,同時為了兼顧擴容速率和減少業務影響,相對擴容周期會比較長。受限與機房機柜和網絡設備環境,有物理層面的上限。
多集群擴容方案
方案4. 新增ceph集群
受限于單集群規模存儲集群的規模有限(受限機柜、網絡等),單機房多集群、多機房多集群都會可能存在,因此這一塊的存儲擴容方案也會納入設計范圍。
優點:適配現有的單集群部署方案(1個集群跨3個機柜),相對來講容易做故障域隔離(雞蛋不放一個籃子里).擴容新集群不會對現有存儲服務造成影響。
缺點:需要業務能夠適配這種跨集群模型(跨集群的目錄數據不能互通),單個docker里面最好不要同時掛載兩個以上集群的目錄。k8s的存儲資源調度復雜度上升,需要支持多集群。
責任編輯:xj
原文標題:cephfs擴容方案匯總
文章出處:【微信公眾號:Ceph對象存儲方案】歡迎添加關注!文章轉載請注明出處。
-
數據
+關注
關注
8文章
6892瀏覽量
88827 -
儲存
+關注
關注
3文章
199瀏覽量
22355 -
Ceph
+關注
關注
1文章
22瀏覽量
9394 -
擴容
+關注
關注
0文章
4瀏覽量
2350
原文標題:cephfs擴容方案匯總
文章出處:【微信號:cephbook,微信公眾號:Ceph對象存儲方案】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論