您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關怎樣深度解析Lustre體系結構,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
Lustre架構是一種集群存儲體系結構,其核心組件就是Lustre文件系統。該文件系統可在Linux操作系統上運行,并提供了符合POSIX標準的UNIX文件系統接口。
Lustre文件系統是什么
Lustre架構用于許多不同種類的集群。眾所周知,它服務于許多全球最大的高性能計算(HPC)集群,提供了數以萬計的客戶端,PB級存儲和每秒數百GB的吞吐量。許多HPC站點使用Lustre文件系統作為全站范圍的全局文件系統,為數十個群集提供服務。
Lustre文件系統具有按需擴展容量和性能的能力,降低了部署多個獨立文件系統的必要性(如每個計算群集部署一個文件系統),從而避免了在計算集群之間復制數據,簡化了存儲管理。Lustre文件系統不僅可將許多服務器的存儲容量進行聚合,也可將其I / O吞吐量進行聚合,并通過添置服務器進行擴展。通過動態地添加服務器,輕松實現整個集群的吞吐量和容量的提升。
雖然Lustre文件系統可以在許多工作環境中運行,但也并非就是所有應用程序的最佳選擇。當單個服務器無法提供所需容量時,使用Lustre文件系統集群無疑是最適合的。在某些情況下,由于其強大的鎖定和數據一致性,即使在單個服務器環境下Lustre文件系統也比其他文件系統表現得更好。
目前,Lustre文件系統并不特別適用于“端對端”的用戶模式。在這種模式下,客戶端和服務器在同一節點上運行,每個節點共享少量存儲。由于Lustre缺少軟件級別的數據副本,如果一個客戶端或服務器發生故障,存儲在該節點上的數據在該節點重新啟動前將不可訪問。
Lustre文件系統特性
Lustre文件系統可運行在各種廠商的內核上。一個Lustre文件系統在客戶端節點數量、磁盤存儲量、帶寬上進行擴大或縮小。可擴展性和性能取決于可用磁盤、網絡帶寬以及系統中服務器的處理能力。
Lustre文件系統可以以多種配置進行部署,這些配置的可擴展性遠遠超出了迄今所觀察到生產系統中的規模和性能。下表中列出了一些Lustre文件系統的可擴展性和性能:
性能增強的ext4文件系統:Lustre文件系統使用改進版的ext4日志文件系統來存儲數據和元數據。這個版本被命名為ldiskfs,不僅性能有所提升且提供了Lustre文件系統所需的附加功能。
Lustre 2.4或更高版本中,可使用ZFS作為Lustre的MDT,OST和MGS存儲的后備文件系統。這使Lustre能夠利用ZFS的可擴展性和數據完整性特性來實現單個存儲目標。
符合POSIX標準:通過完整的POSIX測試集,像測試本地文件系統Ext4一樣,測試Lustre文件系統客戶端,只有極少量例外。在集群中,大多數操作都是原子操作,因此客戶端永遠不會看到損壞的數據或元數據。 Lustre軟件支持mmap()文件I / O操作。
高性能異構網絡:Lustre軟件支持各種高性能低延遲的網絡,可使用遠程直接內存訪問(RDMA)方式,實現在InfiniBand、Intel OmniPath等高級網絡上的快速高效網絡傳輸。可使用Lustre路由橋接多個RDMA網絡以獲得最佳性能。Lustre軟件同時也集成了網絡診斷。
高可用性:Lustre文件系統通過OSTs(OSS targets)的共享存儲分區實現主動/主動故障切換。 Lustre 2.3或更早版本通過使用MDT(MDS target)的共享存儲分區實現主動/被動故障切換。 Lustre文件系統可以與各種高可用性(HA)管理器一起工作,以實現自動故障切換并消除了單點故障(NSPF)。這使得應用程序透明恢復成為可能。多重掛載保護(MMP)提供了對高可用性系統中錯誤的綜合保護,避免導致文件系統損壞。
Lustre 2.4或更高版本中,可配置多個MDT的主動/主動故障切換。這允許了通過添加MDT存儲設備和MDS節點來擴展Lustre文件系統的元數據性能。
安全性:默認情況下,TCP連接只允許授權端口通過。 UNIX組成員身份在MDS上進行驗證。
訪問控制列表(ACL)及擴展屬性:Lustre安全模型遵循UNIX文件系統原則,并使用POSIX ACL進行增強。此外還有一些額外功能,如root squash。
互操作性:Lustre文件系統可運行在各種CPU架構和大小端混合的群集上,連續發布的Lustre主要軟件版本之間保持互操作性性。
基于對象的體系結構:客戶端與磁盤文件結構相互隔離,可在不影響客戶端的情況下升級存儲體系結構。
字節粒度文件鎖和細粒度元數據鎖:許多客戶端可以同時讀取和修改相同的文件或目錄。 Lustre分布式鎖管理器(LDLM)確保了文件系統中所有客戶端和服務器之間的文件是一致的。其中,MDT鎖管理器負責管理inode權限和路徑名。每個OST都有其自己的鎖管理器,用于鎖定存儲在其上的文件條帶,其性能可隨著文件系統大小增長而擴展。
配額:用戶、組和項目配額(User、Group、Project Quota)可用于Lustre文件系統。
容量增長:通過向群集添加新的OST和MDT,可以在不中斷服務的情況下增加Lustre文件系統的大小和集群總帶寬。
受控文件布局:可以在每個文件,每個目錄或每個文件系統基礎上配置跨OST的文件布局。這允許了在單個文件系統中調整文件I/O以適應特定的應用程序要求。 Lustre文件系統使用RAID-0進行條帶化并可在OST之間調節空間使用大小。
網絡數據完整性保護:從客戶端發送到OSS的所有數據的校驗和可防止數據在傳輸期間被損壞。
MPI I/O:Lustre架構具有專用的MPI ADIO層,優化了并行I/O以匹配基礎文件系統架構。
NFS和CIFS導出:可以使用NFS(通過Linux knfsd)或CIFS(通過Samba)將Lustre文件重新導出,使其可以與非Linux客戶端(如Microsoft Windows和Apple Mac OS X)共享。
災難恢復工具:Lustre文件系統提供在線分布式文件系統檢查(LFSCK),當發生主要文件系統錯誤的情況下恢復存儲組件之間的一致性。 Lustre文件系統在存在文件系統不一致的情況下也可以運行,而LFSCK可以在文件系統正在使用時運行,因此LFSCK不需要在文件系統恢復生產之前完成。
性能監視:Lustre文件系統提供了多種機制來檢查性能和進行調整。
開放源代碼:為在Linux操作系統上運行,Lustre軟件使用GPL 2.0許可證。
Lustre組件介紹
一個Lustre安裝實例包括管理服務器(MGS)和一個或多個與Lustre網絡(LNet)互連的Lustre文件系統。Lustre文件系統組件的基本配置如下圖所示:
管理服務器(MGS)
MGS存儲集群中所有Lustre文件系統的配置信息,并將此信息提供給其他Lustre組件。每個Lustre目標(target)通過聯系MGS提供信息,而Lustre客戶通過聯系MGS獲取信息。MGS最好有自己的存儲空間,以便可以獨立管理。但同時,MGS可以與MDS放在一起,并共享存儲空間,如上圖中所示。
Lustre文件系統組件
·元數據服務器(MDS): MDS使存儲在一個或多個MDT中的元數據可供Lustre客戶端使用。每個MDS管理Lustre文件系統中的名稱和目錄,并為一個或多個本地MDT提供網絡請求處理。
·元數據目標(MDT): 在Lustre 2.3或更早版本中,每個文件系統只有一個MDT。 MDT在MDS的附加存儲上存儲元數據(例如文件名,目錄,權限和文件布局)。雖然共享存儲目標上的MDT可用于多個MDS,但一次只能有一個MDS可以訪問。如果當前MDS發生故障,則備用MDS可以為MDT提供服務,并將其提供給客戶端。這被稱為MDS故障切換。
在Lustre 2.4中,分布式命名空間環境(DNE)中可支持多個MDT。除保存文件系統根目錄的主MDT之外,還可以添加其他MDS節點,每個MDS節點都有自己的MDT,以保存文件系統的子目錄樹。
在Lustre 2.8中,DNE還允許文件系統將單個目錄的文件分布到多個MDT節點。分布在多個MDT上的目錄稱為條帶化目錄。
·對象存儲服務器(OSS):OSS為一個或多個本地OST提供文件I / O服務和網絡請求處理。通常,OSS服務于兩個到八個OST,每個最多16TB;在專用節點上配置一個MDT;在每個OSS節點上配置兩個或更多OST;而在大量計算節點上配置客戶端。
·對象存儲目標(OST):用戶文件數據存儲在一個或多個對象中,每個對象位于Lustre文件系統的單獨OST中。每個文件的對象數由用戶配置,并可根據工作負載情況調試到最優性能。
·Lustre客戶端:Lustre客戶端是運行Lustre客戶端軟件的計算、可視化或桌面節點,可掛載Lustre文件系統。
Lustre客戶端軟件為Linux虛擬文件系統和Lustre服務器之間提供了接口。客戶端軟件包括一個管理客戶端(MGC),一個元數據客戶端(MDC)和多個對象存儲客戶端(OSC)。每個OSC對應于文件系統中的一個OST。
邏輯對象卷(LOV)通過聚合OSC以提供對所有OST的透明訪問。因此,掛載了Lustre文件系統的客戶端會看到一個連貫的同步名字空間。多個客戶端可以同時寫入同一文件的不同部分,而其他客戶端可以同時讀取文件。
與LOV文件訪問方式類似,邏輯元數據卷(LMV)通過聚合MDC提供一種對所有MDT透明的訪問。這使得了客戶端可將多個MDT上的目錄樹視為一個單一的連貫名字空間,并將條帶化目錄合并到客戶端形成一個單一目錄以便用戶和應用程序查看。
Lustre網絡 (LNet)
Lustre Networking(LNet)是一種定制網絡API,提供處理Lustre文件系統服務器和客戶端的元數據和文件I/O數據的通信基礎設施。
Lustr文件系統 集群
在規模上,一個Lustre文件系統集群可以包含數百個OSS和數千個客戶端(如下圖所示)。 Lustre集群中可以使用多種類型的網絡,OSS之間的共享存儲啟用故障切換功能。
Lustre文件系統存儲與I/O
在 Lustre 2.0 中引入了Lustre文件標識符(FID)來替換用于識別文件或對象的UNIX inode編號。 FID是一個128位的標識符,其中,64位用于存儲唯一的序列號,32位用于存儲對象標識符(OID),另外32位用于存儲版本號。序列號在文件系統(OST和MDT)中的所有Lustre目標中都是唯一的。這一改變使未來支持多種 MDT 和ZFS(均在Lustre 2.4中引入)成為了可能。
同時,在此版本中也引入了一個名為FID-in-dirent(也稱為Dirdata)的ldiskfs功能,FID作為文件名稱的一部分存儲在父目錄中。該功能通過減少磁盤I/O顯著提高了ls命令執行的性能。 FID-in-dirent是在創建文件時生成的。
在 Lustre 2.4 中,LFSCK文件系統一致性檢查工具提供了對現有文件啟用FID-in-dirent的功能。具體如下:
·為1.8版本文件系統上現有文件生成IGIF模式的FID。
·驗證每個文件的FID-in-dirent,如其無效或丟失,則重新生成FID-in-dirent。
·驗證每個linkEA條目,如其無效或丟失,則重新生成。 linkEA由文件名和父類FID組成,它作為擴展屬性存儲在文件本身中。因此,linkEA可以用來重建文件的完整路徑名。
有關文件數據在OST上的位置信息將作為擴展屬性布局EA,存儲在由FID標識的MDT對象中(具體如下圖所示)。若該文件是普通文件(即不是目錄或符號鏈接),則MDT對象1對N地指向包含文件數據的OST對象。若該MDT文件指向一個對象,則所有文件數據都存儲在該對象中。若該MDT文件指向多個對象,則使用RAID 0將文件數據劃分為多個對象,將每個對象存儲在不同的OST上。
當客戶端讀寫文件時,首先從文件的MDT對象中獲取布局EA,然后使用這個信息在文件上執行I / O,直接與存儲對象的OSS節點進行交互。具體過程如下圖所示。
Lustre文件系統的可用帶寬如下:
·網絡帶寬等于OSS到目標的總帶寬。
·磁盤帶寬等于存儲目標(OST)的磁盤帶寬總和,受網絡帶寬限制。
·總帶寬等于磁盤帶寬和網絡帶寬的最小值。
·可用的文件系統空間等于所有OST的可用空間總和。
Lustre文件系統條帶化
Lustre文件系統高性能的主要原因之一是能夠以輪詢方式跨多個OST將數據條帶化。用戶可根據需要為每個文件配置條帶數量,條帶大小和OST。當單個文件的總帶寬超過單個OST的帶寬時,可以使用條帶化來提高性能。同時,當單個OST沒有足夠的可用空間來容納整個文件時,條帶化也能發揮它的作用。
如圖下圖所示,條帶化允許將文件中的數據段或“塊”存儲在不同的OST中。在Lustre文件系統中,通過RAID 0模式將數據在一定數量的對象上進行條帶化。一個文件中處理的對象數稱為stripe_count。每個對象包含文件中的一個數據塊,當寫入特定對象的數據塊超過stripe_size時,文件中的下一個數據塊將存儲在下一個對象上。stripe_count和stripe_size的默認值由為文件系統設置的,其中,stripe_count為1,stripe_size為1MB。用戶可以在每個目錄或每個文件上更改這些值。
下圖中,文件C的stripe_size大于文件A的stripe_size,表明更多的數據被允許存儲在文件C的單個條帶中。文件A的stripe_count為3,則數據在三個對象上條帶化。文件B和文件C的stripe_count是1。OST上沒有為未寫入的數據預留空間。
最大文件大小不受單個目標大小的限制。在Lustre文件系統中,文件可以跨越多個對象(最多2000個)進行分割,每個對象可使用多達16 TB的ldiskfs,多達256PB的ZFS。也就是說,ldiskfs的最大文件大小為31.25 PB,ZFS的最大文件大小為8EB。Lustre文件系統上的文件大小受且僅受OST上可用空間的限制,Lustre最大可支持2 ^ 63字節(8EB)的文件。
注意: Lustre 2.2之前,單個文件的最大條帶數為160個OST。盡管一個文件只能被分割成2000個以上的對象,但是Lustre文件系統可以有數千個。
上述就是小編為大家分享的怎樣深度解析Lustre體系結構了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。