Gluster是一個可水平拓展的網絡文件系統。它是各種不同的存儲服務器之上的組合,這些服務器由以太網Infiniband RDMA網絡互相融匯,最終形成一個大的並行網絡文件系統。它有包括雲計算在內的多重應用,諸如:生物信息學流媒體、文檔存儲和CDN等。Gluster是由GNU託管的自由軟件,許可證是AGPL[3]。Gluster公司[4],是Gluster的首要商業贊助商,且提供商業產品以及基於Gluster的解決方案。

GlusterFS
原作者Gluster
開發者Red Hat公司
當前版本
  • 11.1(2023年11月6日;穩定版本)[1]
編輯維基數據鏈接
源代碼庫 編輯維基數據鏈接
操作系統Linux, OS X, FreeBSD, NetBSD, OpenSolaris
類型分布式文件系統
許可協議GNU通用公共許可證第三版[2]
網站www.gluster.org

設計

Gluster是客戶端-服務器架構。服務器一般被部署成存儲磚(storage brick),每一台服務器運行一個名為glusterfsd 的守護進程,將本地文件系統導出為。Gluster的客戶端進程通過TCP/IP,InfiniBand或SDP之上構建的自定義協議連接到服務器,使用可以疊加的翻譯器(translator)將多個遠程服務器上的虛擬卷組聚合起來。通常情況下,每個文件會被作為一個整體來存儲,但是,將文件條帶化存放在多個遠程卷組也是可以實現的。客戶端可以通過 FUSE 機制使用 GlusterFS 的原生協議,或者通過內置的服務端翻譯器使用NFS v3 協議來掛載這個聚合的卷,或者直接使用 gfapi 客戶端函數庫來訪問這個卷。客戶端可以使用統一文件對象(Unified File and Object, UFO)翻譯器來二次導出一個原生協議掛載,比如通過內核空間的 NFS v4 服務器、SAMBA 或是基於對象的 OpenStack Storage 協議。

大多數GlusterFS功能被實現為翻譯器,包括了:

  • 基於文件的鏡像[5]與賦值[6]技術
  • 基於文件的數據存儲計算領域的數據帶[7]技術
  • 基於文件的負載平衡[8]技術
  • 卷的雙機備份[9]技術
  • 磁盤高速緩存[10]技術以及排產[11]

Gluster的設計遵循奧卡姆剃刀原則的簡單性:儘管它導出一已存在,但是構建存儲的決定權在於客戶端翻譯器。客戶端自身都是沒有狀態的,互相之間沒有交互。但是期望相互間的翻譯器配置是一致的。這會引發內存一致性模型問題,但這種設計允許Gluster用商用硬件在規模上能達到數個拍字節,避免了通常影響分布式文件系統的緊內聚鬆耦合瓶頸。

另見

引用