詳解GPFS文件系統架構、組網和Building Block
此次技術乾貨分享內容分為GPFS技術實踐分享和贈書活動2部分,對技術不太感興趣的讀者可以直接跳到贈書活動部分。
第一部分、GPFS技術實踐分享
IBM GPFS(General Parallel FileSystem)是一個分散式、共享、並行集群文件系統,支持從多個節點同時對單一文件系統或一組文件系統的訪問。GPFS可以在AIX、Linux和windows操作系統和IBM Power、Intel/AMD x86架構下使用,被全世界HPC用戶廣泛使用。GPFS集群中每一個節點都由管理命令集、GPFS內核擴展、多線程守護進程三個組件構成。
GPFS管理命令集,是用來控制GPFS操作和配置的腳本集合,默認情況下GPFS命令可以在集群中任何一個節點執行,GPFS集群會自動處理並把請求的操作重定向到合適的節點執行。可以定義為在所有GPFS節點同步,還是在一個子網內的節點間同步請求。
GPFS內核擴展提供了一個介面和操作系統的vNode、VFS層交互模塊,並註冊GPFS作為一個Native文件系統,GPFS在操作系統中以一個標準的處理應用下發給操作系統的請求。
GPFS守護進程處理所有I/O操作和Buffer管理,包括對於順序讀進行Read-ahead,對於非同步的所有寫進行Write-behind操作,I/O操作被GPFS的Token管理保護,以確認數據分布在集群中所有節點的一致性。GPFS守護進程會和其他節點的守護進程共同工作,進行文件系統的配置變更、修復、並行更新元數據狀態。
GPFS NSD組件對運行在節點上的應用,提供一種在集群中相對於直接訪問普通硬碟的集群訪問,集群中NSD可能會物理的連接到所有的節點或者伺服器上,數據通過NSD server對外提供一個虛擬連接,最多可以為每個NSD指定8個NSD Server,如果其中一個伺服器宕機了,列表中的下一個伺服器將會接管宕機的節點工作。
當啟動GPFS和一個文件系統掛載的時候,GPFS通過守護進程確認哪些NSD可以通過物理或者虛擬的方式訪問,即NSD的發現過程,NSD的默認發現順序是優先本地的塊設備介面,例如SAN、SCSI和IDE,其次是NSD Server。
對GPFS文件系統集群中的組件和其關係進行總結。Node在GPFS文件系統中獨立的OS實例,NSD則是對GPFS集群可見用於創建文件系統的存儲設備,NSD server提供對特定NSD訪問的I/O伺服器,通過一組NSD創建的文件系統稱為GPFS文件系統。運行應用程序並通過掛載文件系統訪問文件系統節點稱為Application Node。
GPFS支持配置一些節點直接連接到磁碟上而其他的一些節點通過這些節點訪問磁碟,這種配置組網通常在一些較大的HPC集群中使用,提供一種低成本高性能的組網方式。當GPFS節點為其他節點提供訪問磁碟的服務時,這個節點稱之為NSD Server,GPFS節點通過NSD Server訪問數據時稱之為GPFS客戶端。伺服器通常都會復用,以來降低成本,伺服器的許可可以作為客戶端使用,但是有客戶端許可的伺服器不能做伺服器角色使用。
每個GPFS集群有一個集群管理伺服器,從設置為Quorum的節點中選舉得來,並且可以通過命令更改,主要負責監視磁碟狀態,檢測節點故障,執行節點恢復,確定仲裁節點是否滿足啟動GPFS daemon管理與遠程集群的通信,選擇文件系統管理節點。
每個文件伺服器都會有一個文件系統管理伺服器,文件管理伺服器通過集群管理進行選擇。文件系統管理伺服器通常分布在管理伺服器中,文件管理伺服器不可以跨節點,但是可以在一台伺服器上運行多個文件系統的文件管理伺服器,文件管理伺服器通常有以下功能。
文件系統配置(添加磁碟,改變磁碟可達性,修復文件系統,掛載、解掛載文件系統)
磁碟空間分配(控制磁碟的那個段的空間分配給哪個節點)
令牌管理(令牌管理伺服器通過授權令牌協調訪問共享磁碟上的文件傳達到讀或寫一個文件的數據或元數據的權利)。
Quota管理(在啟用了配額的文件系統中GPFS文件系統管理節點自動承擔配額管理的職責)
配置管理(在每個GPFS集群中配置管理伺服器通常有主備兩台相互協同工作,當主不可用備機接替工作,配置管理伺服器通常有Manager Node來充當)
文件系統在執行元數據的寫操作時,為了保證數據的一致需要對數據進行加鎖,也就會產生鎖衝突,為了解決寫衝突GPFS引入Meta node,通過Meta node去收集和合併其他節點的元數據的狀態更新,維護元數據的完整性。
Meta node節點是在每個文件打開時動態選擇的,在每個文件關閉時動態刪除,一個文件的讀寫可以由所有節點操作,一個文件的所有元數據操作都通過Meta node執行(主要包括許可權和屬性),也只可以通過Meta node執行。通常情況下打開文件操作時間持續最長的會被選舉為Meta node。
GPFS在系統架構設計十分靈活,豐富的功能延伸出了多種組網方式,而每種組網方式適配不同的應用模式,常見組網方式包括SAN、NSD、SNC、Remote Cluster和混合組網方式。
Storage Area Network(SAN) Model要求計算節點直接掛載存儲,並且充當計算節點、NSD Server、NSD Client三種角色。NSD Server通過存儲網路或直連的方式連接到存儲設備上,前端通信協議為GE,後端通信協議為FC或Infiniband,適用於小規模集群。
Network Shared Disk(NSD) Server Model要求計算節點安裝GPFS軟體,並充當NSD Client角色,使用單獨的伺服器充當NSD Server,負責處理I/O。NSD磁碟BuildingBlock的方式,每兩台伺服器通過直連的方式連接到NSD Server上,前端通信協議為10GE或Infiniband,後端通信協議為FC或Infiniband,適用於大規模集群擴展。
Shared Nothing Cluster(SNC)Model要求計算節點安裝GPFS軟體,並充當NSD Client角色,使用單獨的伺服器充當NSD Server,負責處理I/O。NSD採用伺服器自帶硬碟,或者獨立存儲,數據之間不使用寬條帶方式進行分布,而採用FPO方式進行排布。前端通信協議為10GE或Infiniband,後端通信協議為FC或Infiniband。適用於Hadoop和Mapreduce環境。
Remote Cluster Mount Model要求GPFS提供在多個GPFS集群間共享數據的服務,GPFS在其他集群mount本集群的資源,其訪問磁碟和本地訪問磁碟體驗類似,這種跨集群訪問可以是在一個數據中心也可以是跨遠距離的WAN。 在一個多集群配置中每個集群可以進行分別的管理,在簡化管理的同時提供一個多組織數據訪問的視圖。前端通信協議為10GE或Infiniband,後端通信協議為FC或Infiniband,適用於同城或異地部署環境。
混合組網環境下,GPFS允許在一個集群中混合部署多種組網環境,例如集群中部分主機採用Storage Area Network (SAN) Model,部分主機採用Network Shared Disk (NSD) Server Model方式進行組網。 當多個組網類型同時存在於一個集群中時,影響的只是集群使用NSD的方式,對於上層主機對數據的訪問沒有影響。
GPFS文件系統解決方案的BuildingBlock如何設計呢?如上文所述GPFS的架構、組網相比Lustre和NAS等來說要較為複雜,如何可以簡化存儲設計以匹配性能和容量需求,如何讓GPFS易於規劃、交付和調優,如何讓GPFS以近線性的方式進行擴容呢?這裡基於最佳項目實踐討論下BuildingBlock設計(Building Block即一個最小的可通過模塊疊加實現性能和容量線性擴展的伺服器和存儲組合)。
Building Block類型一般分為性能和容量2大類型,Capacity Building Block以獲取最大容量為目的的BuildingBlock,實際使用中可通過Building Blcok的疊加實現容量和性能的近線性增長;Performance Building Block以獲取最大性能為目的的BuildingBlock,實際使用中可通過Building Block的疊加實現性能和容量的近線性增長。
Building Block可選配置選項非常靈活,如計算網路組網方式,存儲磁碟選項,仲裁節點數和數據副本等等。
計算網路組網方式默認Infiniband組網,適用於帶寬要求較高,時延敏感的應用。通過提供了可選的10GE組網,適用於帶寬較低,延時不敏感的應用,如每個BuildingBlock的帶寬要求高時,需要通過埠綁定匯聚埠帶寬。
數據存儲磁碟選項包括磁碟類型、磁碟框類型(2.5寸2U硬碟框、3.5寸4U高密框)等,可靠性選項需要考慮數據份數(默認值元數據2份),仲裁節點數、磁碟仲裁。仲裁節點數默認值6~8台NSD Server採用3個仲裁節點,10台NSD Server時5個仲裁節點,10台NSD Server以上使用7個仲裁節。磁碟仲裁默認值2~4台NSD Server時,用3個仲裁盤。
Building Block擴展性設計主要考慮2種典型場景,即初次新建交付Building Block和已存在GPFS通過Building Block擴容。
在初次新建交付多個Building Block場景下,由於GPFS實行寬條帶策略,性能存在木桶效應,所以建議每個Building Block配置一致。同時在交付多個Building Block時考慮後續的擴容,即擴容以之前交付的Building Block作為一個擴展模塊,保持配置均衡。
在已存在GPFS通過Building Block擴容場景下,當對現有GPFS文件系統進行擴容時,推薦使用GPFS集群中已有的BuildingBlock模式進行配置,保持GPFS文件系統的配置均衡。當對現有GPFS文件系統進行擴容時,需要將新增Building Block的節點在線加入到集群中,新增BuildingBlock中的LUN在線添加為新的NSD,在線添加過程不會中斷現有業務。
第二部分、贈書活動
安曉輝老師的新書《程序員的成長課》正式出版,目前獲得3本新書的贈書機會,而且還包郵配送。本書彙集他十幾年開發管理經驗和上百個諮詢案例,全面論述了開發者價值成長和職業選擇,有很好的實戰參考價值。
架構師技術聯盟自開號以來,線上活動比較少(由於工作原因),在此表示歉意,更多能做的就是堅持原創和技術分享。同時,為粉絲讀者的一路追隨表示由衷感激。贈書雖有限,但感激不盡。為把書比較合理的送給大家,規則是從留言獲贊數最多的前3位(統計時間截止發文次日22:00)。


TAG:架構師技術聯盟 |