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用商用硬件在規模上能達到數個拍位元組,避免了通常影響分散式檔案系統的緊內聚鬆耦合瓶頸。

另見

參照