深度:全面解析Lustre文件系統(tǒng)(上)

? ? ?
Lustre架構(gòu)是一種集群存儲體系結(jié)構(gòu),其核心組件就是Lustre文件系統(tǒng)。該文件系統(tǒng)可在Linux操作系統(tǒng)上運(yùn)行,并提供了符合POSIX標(biāo)準(zhǔn)的UNIX文件系統(tǒng)接口。Lustre是面向集群的存儲架構(gòu),它是基于Linux平臺的開源集群(并行)文件系統(tǒng),提供與POSIX兼容的文件系統(tǒng)接口。Lustre兩個(gè)最大特征是高擴(kuò)展性和高性能,能夠支持?jǐn)?shù)萬客戶端系統(tǒng)、PB級存儲容量、數(shù)百GB的聚合I/O吞吐量。Lustre是Scale-Out存儲架構(gòu),借助強(qiáng)大的橫向擴(kuò)展能力,通過增加服務(wù)器即可方便擴(kuò)展系統(tǒng)總存儲容量和性能。
Lustre的集群和并行架構(gòu),非常適合眾多客戶端并發(fā)進(jìn)行大文件讀寫的場合,但目前對于小文件應(yīng)用非常不適用,尤其是海量小文件應(yīng)用LOSF(Lots Of Small Files)。Lustre廣泛應(yīng)用于各種環(huán)境,目前部署最多的為高性能計(jì)算HPC,世界超級計(jì)算機(jī)TOP 10中的70%,TOP 30中的50%,TOP 100中的40%均部署了Lustre。另外,Lustre在石油、天然氣、制造、富媒體、金融等行業(yè)領(lǐng)域也被大量部署應(yīng)用。
? ? ?Lustre文件系統(tǒng)可運(yùn)行在各種廠商的內(nèi)核上。一個(gè)Lustre文件系統(tǒng)在客戶端節(jié)點(diǎn)數(shù)量、磁盤存儲量、帶寬上進(jìn)行擴(kuò)大或縮小??蓴U(kuò)展性和性能取決于可用磁盤、網(wǎng)絡(luò)帶寬以及系統(tǒng)中服務(wù)器的處理能力。?
? ? ? Lustre文件系統(tǒng)可以以多種配置進(jìn)行部署,這些配置的可擴(kuò)展性遠(yuǎn)遠(yuǎn)超出了迄今所觀察到生產(chǎn)系統(tǒng)中的規(guī)模和性能。
??
? ? ? Lustre 2.4或更高版本中,可使用ZFS作為Lustre的MDT,OST和MGS存儲的后備文件系統(tǒng)。這使Lustre能夠利用ZFS的可擴(kuò)展性和數(shù)據(jù)完整性特性來實(shí)現(xiàn)單個(gè)存儲目標(biāo),Lustre文件系統(tǒng)典型特性如下。
? ? ? Lustre 2.4或更高版本中,可配置多個(gè)MDT的主動(dòng)/主動(dòng)故障切換。這允許了通過添加MDT存儲設(shè)備和MDS節(jié)點(diǎn)來擴(kuò)展Lustre文件系統(tǒng)的元數(shù)據(jù)性能。
安全性:默認(rèn)情況下,TCP連接只允許授權(quán)端口通過。UNIX組成員身份在MDS上進(jìn)行驗(yàn)證。
訪問控制列表(ACL)及擴(kuò)展屬性:Lustre安全模型遵循UNIX文件系統(tǒng)原則,并使用POSIX ACL進(jìn)行增強(qiáng)。此外還有一些額外功能,如root squash。
互操作性:Lustre文件系統(tǒng)可運(yùn)行在各種CPU架構(gòu)和大小端混合的群集上,連續(xù)發(fā)布的Lustre主要軟件版本之間保持互操作性性。
基于對象的體系結(jié)構(gòu):客戶端與磁盤文件結(jié)構(gòu)相互隔離,可在不影響客戶端的情況下升級存儲體系結(jié)構(gòu)。
字節(jié)粒度文件鎖和細(xì)粒度元數(shù)據(jù)鎖:許多客戶端可以同時(shí)讀取和修改相同的文件或目錄。Lustre分布式鎖管理器(LDLM)確保了文件系統(tǒng)中所有客戶端和服務(wù)器之間的文件是一致的。其中,MDT鎖管理器負(fù)責(zé)管理inode權(quán)限和路徑名。每個(gè)OST都有其自己的鎖管理器,用于鎖定存儲在其上的文件條帶,其性能可隨著文件系統(tǒng)大小增長而擴(kuò)展。
配額:用戶、組和項(xiàng)目配額(User、Group、Project Quota)可用于Lustre文件系統(tǒng)。
容量增長:通過向群集添加新的OST和MDT,可以在不中斷服務(wù)的情況下增加Lustre文件系統(tǒng)的大小和集群總帶寬。
受控文件布局:可以在每個(gè)文件,每個(gè)目錄或每個(gè)文件系統(tǒng)基礎(chǔ)上配置跨OST的文件布局。這允許了在單個(gè)文件系統(tǒng)中調(diào)整文件I/O以適應(yīng)特定的應(yīng)用程序要求。Lustre文件系統(tǒng)使用RAID-0進(jìn)行條帶化并可在OST之間調(diào)節(jié)空間使用大小。
網(wǎng)絡(luò)數(shù)據(jù)完整性保護(hù):從客戶端發(fā)送到OSS的所有數(shù)據(jù)的校驗(yàn)和可防止數(shù)據(jù)在傳輸期間被損壞。
MPI I/O:Lustre架構(gòu)具有專用的MPI ADIO層,優(yōu)化了并行I/O以匹配基礎(chǔ)文件系統(tǒng)架構(gòu)。
NFS和CIFS導(dǎo)出:可以使用NFS(通過Linux knfsd)或CIFS(通過Samba)將Lustre文件重新導(dǎo)出,使其可以與非Linux客戶端(如Microsoft Windows和Apple Mac OS X)共享。
災(zāi)難恢復(fù)工具:Lustre文件系統(tǒng)提供在線分布式文件系統(tǒng)檢查(LFSCK),當(dāng)發(fā)生主要文件系統(tǒng)錯(cuò)誤的情況下恢復(fù)存儲組件之間的一致性。Lustre文件系統(tǒng)在存在文件系統(tǒng)不一致的情況下也可以運(yùn)行,而LFSCK可以在文件系統(tǒng)正在使用時(shí)運(yùn)行,因此LFSCK不需要在文件系統(tǒng)恢復(fù)生產(chǎn)之前完成。
性能監(jiān)視:Lustre文件系統(tǒng)提供了多種機(jī)制來檢查性能和進(jìn)行調(diào)整。
開放源代碼:為在Linux操作系統(tǒng)上運(yùn)行,Lustre軟件使用GPL 2.0許可證。
? ? ? 一個(gè)Lustre安裝實(shí)例包括管理服務(wù)器(MGS)和一個(gè)或多個(gè)與Lustre網(wǎng)絡(luò)(LNet)互連的Lustre文件系統(tǒng)。Lustre文件系統(tǒng)組件的基本配置如下圖所示:

管理服務(wù)器(MGS):MGS存儲集群中所有Lustre文件系統(tǒng)的配置信息,并將此信息提供給其他Lustre組件。每個(gè)Lustre目標(biāo)(target)通過聯(lián)系MGS提供信息,而Lustre客戶通過聯(lián)系MGS獲取信息。MGS最好有自己的存儲空間,以便可以獨(dú)立管理。但同時(shí),MGS可以與MDS放在一起,并共享存儲空間,如上圖中所示。

免責(zé)申明:本號聚焦相關(guān)技術(shù)分享,內(nèi)容觀點(diǎn)不代表本號立場,可追溯內(nèi)容均注明來源,發(fā)布文章若存在版權(quán)等問題,請留言聯(lián)系刪除,謝謝。
電子書<服務(wù)器基礎(chǔ)知識全解(終極版)>更新完畢。
獲取方式:點(diǎn)擊“閱讀原文”即可查看182頁?PPT可編輯版本和PDF閱讀版本詳情。
溫馨提示:
請搜索“AI_Architect”或“掃碼”關(guān)注公眾號實(shí)時(shí)掌握深度技術(shù)分享,點(diǎn)擊“閱讀原文”獲取更多原創(chuàng)技術(shù)干貨。


