贈書| 詳解GPFS檔案系統架構、組網和Building Block

架構師技術聯盟發表於2017-12-18

640?wx_fmt=png&wxfrom=5&wx_lazy=1


0?wx_fmt=gif&wxfrom=5&wx_lazy=1

      此次技術乾貨分享內容分為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節點同步,還是在一個子網內的節點間同步請求。

0?wx_fmt=png

      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客戶端。伺服器通常都會複用,以來降低成本,伺服器的許可可以作為客戶端使用,但是有客戶端許可的伺服器不能做伺服器角色使用。


0?wx_fmt=png


      每個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,適用於大規模叢集擴充套件。


0?wx_fmt=png


  • 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,線上新增過程不會中斷現有業務。


      關於GPFS整體解析,請點選原文連結參看“高效能運算(HPC)技術、方案和行業全面解析”。


第二部分、贈書活動


      安曉輝老師的新書《程式設計師的成長課》正式出版,目前獲得3本新書的贈書機會,而且還包郵配送。本書彙集他十幾年開發管理經驗和上百個諮詢案例,全面論述了開發者價值成長和職業選擇,有很好的實戰參考價值。

0?wx_fmt=png

      架構師技術聯盟自開號以來,線上活動比較少(由於工作原因),在此表示歉意,更多能做的就是堅持原創和技術分享。同時,為粉絲讀者的一路追隨表示由衷感激。贈書雖有限,但感激不盡。為把書比較合理的送給大家,規則是從留言獲贊數最多的前3位(統計時間截止發文次日22:00)。



溫馨提示:
請搜尋“ICT_Architect”“掃一掃”下面二維碼關注公眾號,獲取更多精彩內容。

640?wx_fmt=png

專注做一個有情懷的技術分享平臺

0?wx_fmt=gif

相關文章