XSKY新一代分散式檔案系統XGFS揭秘——後設資料服務
XSKY新一代分散式檔案系統XGFS揭秘——後設資料服務
新一代 分散式檔案儲存系統XGFS,基於最新一代NVMe/SCM儲存介質設計,利用高效能LSM儲存引擎,結合XSKY獨有專利技術的鍵值設計,構建出完全自主的後設資料服務…本文系揭秘XGFS系列之首篇內容。
01儲存介質的高速發展
上一代分散式檔案系統後設資料服務(MDS),多半基於HDD/SSD介質設計;這種設計不僅後設資料訪問效能不佳,而且為了實現在慢速介質上透過數量堆積來實現效能與空間擴充套件,做出了很多架構讓步:如動態目錄子樹、動態遷移等,複雜性高的同時更帶來不少穩定性問題。
近年來,硬體儲存介質從HDD到SSD(MLC/SLC),並快速發展到NVMe/SCM時代,分散式系統尤其是分散式檔案儲存系統(Distributed File System),需要思考如何發揮出新興介質的極致效能。
02如何利用新型LSM儲存引擎
上一代分散式檔案系統如GlusterFS大多使用Linux的單機檔案系統ext4/xfs做後設資料承載,ext4/xfs底層均採用B樹和Page頁實現後設資料管理;
這種MDS設計大多使用上層寫入合併等方法來緩解Page空洞和寫入頻寬低等問題,但仍然嚴重依賴上游Linux核心,難以面向新型業務需求做出後設資料最佳化和定製,例如同時儲存POSIX檔案協議和S3物件協議的後設資料,同時難以應對分散式檔案系統的海量後設資料場景,通常需要在儲存引擎層做更多的定製,使得利用單機檔案系統實現更好後設資料系統;
隨著LSM儲存引擎的快速發展和普及,越來越多的資料庫和應用系統選擇基於LSM儲存引擎來構建整體的分散式系統,如HBase、Cassandra等;
LSM儲存引擎的寫入模式天然適應於SSD/NVMe類儲存介質,大大最佳化了寫放大問題並提升儲存介質壽命,還帶來更高的寫吞吐量和介質空間使用率;這些都給分散式檔案系統的研發設計帶來了啟發。
03XGFS架構
XSKY基於對客戶業務的深度理解,以及結合新一代儲存介質和高效能LSM儲存引擎的應用優勢,推出了新一代分散式檔案儲存系統XGFS。
XGFS分散式檔案儲存系統由後設資料服務叢集和混合盤資料服務共同組成。其繼承了XSKY多年在分散式混合盤上的深厚積累以及大規模儲存運維能力,包括多級快取技術、支援副本與EC糾刪碼、支援延展叢集雙活、硬碟和網路亞健康處理等,帶來了高價效比的整體TCO和豐富的功能特性。
另,XSKY XEUS、一體機產品已在NAS市場推出了3年多,並部署了數百個實際生產叢集;XGFS多活檔案協議閘道器繼承了這些檔案產品成熟穩定的檔案協議層模組,並在高效能IO直通、多浮動IP切換與回切、多閘道器節點分割槽和分子網等方面做了深入的最佳化,使得XGFS既在處理NFS、SMB等檔案協議相容性上游刃有餘,又針對分散式檔案的高頻寬、高吞吐場景做了靶向最佳化。
XGFS後設資料服務的架構具有如下優勢:
01
基於最新一代NVMe/SCM儲存介質設計,充分發揮出新興介質近百萬級IOPS和數GB頻寬的效能優勢,輕鬆滿足對於檔案系統的高頻率後設資料訪問需求;
02
利用高效能LSM儲存引擎,結合XSKY獨有專利技術的鍵值設計,構建出完全自主的後設資料服務;既相容POSIX檔案語義和S3物件語義,又支援使用者/使用者組、許可權/ACL、擴充套件屬性等;
03
後設資料在本節點的日誌保護和節點間的強一致性複製,使得後設資料叢集輕鬆應對慢盤、網路異常、節點重啟/掉電等故障場景,提供RPO=0的後設資料通路;
04
使用XSKY自研的高速網路傳輸模組,原生為RoCE/RDMA高效能網路量身打造,大大降低節點間後設資料複製包的傳輸時延,使得整個後設資料叢集擁有更高的IOPS效能。
04技術原理
1、LSM儲存引擎實現檔案後設資料管理;XSKY獨有專利的KV鍵值對設計,實現完備的語義支援
利用LSM引擎的範圍查詢和字首索引功能,結合獨有專利的Key設計,大大提升List、Lookup等操作的執行效率,透過合併索引資料和檔案本身的資訊,去掉了List操作的二次索引開銷,效能相比ext4檔案系統提升約 40%;
在Value設計中,既充分相容POSIX語義中的size、讀寫許可權、MAC time、變長的xattr擴充套件屬性、Windows ACL許可權等,又可擴充套件支援配額、快照等功能,以及S3物件語義中的etag、last modified等欄位;真正實現了後設資料按需定製和擴充套件。
2、充分利用LSM引擎能力,打造高效的檔案後設資料服務XMDS
單個後設資料服務程式XMDS的設計中,首先需要將面向業務的檔案操作,如Open、List、Rename等,組合成原子性的事務,並利用KV的事務特性提交給LSM引擎;這樣就做到了既相容POSIX通用協議,又可以在事務內無損耗的實現配額和快照等高階功能,更進一步實現了每一級目錄的實時容量使用情況和趨勢能力,提供了豐富的資料分析能力;
XMDS透過在記憶體中合併大量後設資料的修改並一次性提交寫日誌,充分釋放了NVMe/SCM的超高寫入頻寬和併發吞吐能力;同時日誌append-only的寫入模式,也大大延長了高速介質的寫入壽命;LSM引擎的後臺壓縮能力,既有效減少了後設資料空間管理碎片、空洞問題,提升了硬碟的整體空間利用率,還解決了檔案後設資料本身的GC問題,使得XMDS輕鬆應對百億級別以上的海量檔案場景;
最後,單個XMDS還引入了WAL日誌機制,當出現本節點上LSM引擎故障並恢復後,可及時回放尚未落盤持久化的事務,保證了資料一致性。
3、強一致性的後設資料服務叢集
由多個XMDS共同組成了多副本的XMDS叢集,並在多個XMDS間設計了強一致的複製機制:所有後設資料的修改都會即時同步到所有關聯副本,保證了後設資料的強一致性,客戶端從任意一個XMDS服務中都能獲取到相同的資料檢視;
部署在不同物理節點上的XMDS多副本,結合完備的XMDS間全量、增量恢復機制,向上層業務打造出9個9高可靠性的後設資料服務;同時,增量與全量恢復IO也做了大量效能最佳化,實驗室3節點實測檔案後設資料恢復效能為10億檔案/1小時;最後,透過細粒度區間鎖實現了恢復IO實現了對後設資料讀寫請求的零阻塞,大大提升了業務可用性;
在後設資料服務提供低延遲高吞吐的背景下,創新的將傳統分散式檔案系統客戶端與MDS之間的協議輕量化,解決過去有狀態會話的複雜狀態維護,顛覆性的實現了客戶端訪問切換無損耗,讓上層各類業務絲滑執行,又能保持過去會話式的後設資料效能。
4、高效能的網路傳輸模組
原生為RoCE/RDMA等新型網路設計的網路傳輸模組,利用NUMA Aware的記憶體池和無鎖化設計,極大得降低了CPU開銷並減少了互斥等待時間;
透過網路模組與IO棧的深度結合,既避免了不必要的執行緒上下文切換,又減少了入隊出隊的損耗,實現了後設資料的快速通路,讓IO延遲響應進入 亞毫秒級別。
05術語表
【未完待續】
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978858/viewspace-2713760/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 大資料 | 分散式檔案系統 HDFS大資料分散式
- 分散式檔案系統分散式
- Java後端分散式系統的服務路由:智慧DNS與服務網格Java後端分散式路由DNS
- HDFS分散式檔案系統分散式
- 分散式檔案系統-HDFS分散式
- 分散式檔案系統---GlusterFS分散式
- FastDFS分散式檔案系統AST分散式
- 隨行付微服務之分散式檔案系統微服務分散式
- 2.9.5 資料庫中支援的檔案系統服務資料庫
- 高併發服務端分散式系統設計概要服務端分散式
- cephFS分散式檔案系統操作分散式
- FastDFS-分散式檔案系統AST分散式
- 分散式檔案系統之 FastDFS分散式AST
- CEPH檔案系統後設資料的SSD加速
- 分散式、服務化的 ERP 系統架構設計分散式架構
- 分散式檔案系統HDFS,大資料儲存實戰(一)分散式大資料
- Java後端分散式系統的服務監控:Zabbix與NagiosJava後端分散式iOS
- Java後端分散式系統的服務降級:優雅降級與服務熔斷Java後端分散式
- 分散式檔案上傳導致服務假死了?分散式
- 分散式檔案系統(HDFS)與 linux系統檔案系統 對比分散式Linux
- 部署GPS分散式檔案系統分散式
- GFS分散式檔案系統部署解析分散式
- 01_FastDFS分散式檔案系統AST分散式
- 分散式檔案系統(FastDFS)叢集分散式AST
- 分散式檔案系統FastDFS詳解分散式AST
- [分散式]--Dubbo分散式服務框架-服務治理分散式框架
- 分散式系統理論基礎8:zookeeper分散式協調服務分散式
- 分散式系統(三)——分散式事務分散式
- 好程式設計師大資料學習路線分享分散式檔案系統HDFS程式設計師大資料分散式
- 【系統設計】分散式鍵值資料庫分散式資料庫
- 分散式服務框架 Zookeeper -- 管理分散式環境中的資料分散式框架
- Java後端分散式系統的服務健康檢查:Spring Boot HealthJava後端分散式Spring Boot
- 揭秘位元組跳動業務背後的分散式資料治理思路分散式
- 輕量級分散式檔案系統fastDFS分散式AST
- 分散式檔案系統(FastDFS)安裝 配置分散式AST
- 雲端儲存及其分散式檔案系統分散式
- 分散式 | dble後設資料更新同步分散式
- 大資料時代之hadoop(四):hadoop 分散式檔案系統(HDFS)大資料Hadoop分散式