<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 5455字,需瀏覽 11分鐘

           ·

          2022-03-06 15:54



          ?
          ?本文內(nèi)容參考自“Lustre文件系統(tǒng)操作手冊(2021)”,全文內(nèi)容包含45章節(jié),620+頁干貨。52份Lustre及HPC技術(shù)方案載鏈接如下:

          Lustre文件系統(tǒng)操作手冊(2021)
          Lustre文件系統(tǒng)技術(shù)匯總(1)
          Lustre文件系統(tǒng)技術(shù)匯總(2)
          Lustre文件系統(tǒng)技術(shù)匯總(3)
          Lustre文件系統(tǒng)技術(shù)匯總(4)
          Lustre文件系統(tǒng)關(guān)鍵特性(1)
          Lustre文件系統(tǒng)關(guān)鍵特性(2)
          Lustre文件系統(tǒng)關(guān)鍵特性(3)
          Lustre文件系統(tǒng)關(guān)鍵特性(4)
          Lustre文件系統(tǒng)關(guān)鍵特性(5)
          Lustre常見解決方案匯總(1)
          Lustre常見解決方案匯總(2)
          高性能計算HPC方案及技術(shù)匯總

          在Lustre 2.4中,分布式命名空間環(huán)境(DNE)中可支持多個MDT。除保存文件系統(tǒng)根目錄的主MDT之外,還可以添加其他MDS節(jié)點,每個MDS節(jié)點都有自己的MDT,以保存文件系統(tǒng)的子目錄樹。在Lustre 2.8中,DNE還允許文件系統(tǒng)將單個目錄的文件分布到多個MDT節(jié)點。分布在多個MDT上的目錄稱為條帶化目錄。


          對象存儲服務(wù)器(OSS):OSS為一個或多個本地OST提供文件I / O服務(wù)和網(wǎng)絡(luò)請求處理。通常,OSS服務(wù)于兩個到八個OST,每個最多16TB;在專用節(jié)點上配置一個MDT;在每個OSS節(jié)點上配置兩個或更多OST;而在大量計算節(jié)點上配置客戶端。
          對象存儲目標(biāo)(OST):用戶文件數(shù)據(jù)存儲在一個或多個對象中,每個對象位于Lustre文件系統(tǒng)的單獨OST中。每個文件的對象數(shù)由用戶配置,并可根據(jù)工作負載情況調(diào)試到最優(yōu)性能。
          Lustre客戶端:Lustre客戶端是運行Lustre客戶端軟件的計算、可視化或桌面節(jié)點,可掛載Lustre文件系統(tǒng)。


          ? ? ? Lustre客戶端軟件為Linux虛擬文件系統(tǒng)和Lustre服務(wù)器之間提供了接口??蛻舳塑浖ㄒ粋€管理客戶端(MGC),一個元數(shù)據(jù)客戶端(MDC)和多個對象存儲客戶端(OSC)。每個OSC對應(yīng)于文件系統(tǒng)中的一個OST。


          ? ? ? 邏輯對象卷(LOV)通過聚合OSC以提供對所有OST的透明訪問。因此,掛載了Lustre文件系統(tǒng)的客戶端會看到一個連貫的同步名字空間。多個客戶端可以同時寫入同一文件的不同部分,而其他客戶端可以同時讀取文件。


          ? ? ? 與LOV文件訪問方式類似,邏輯元數(shù)據(jù)卷(LMV)通過聚合MDC提供一種對所有MDT透明的訪問。這使得了客戶端可將多個MDT上的目錄樹視為一個單一的連貫名字空間,并將條帶化目錄合并到客戶端形成一個單一目錄以便用戶和應(yīng)用程序查看。



          ? ? ? Lustre Networking(LNet)是一種定制網(wǎng)絡(luò)API,提供處理Lustre文件系統(tǒng)服務(wù)器和客戶端的元數(shù)據(jù)和文件I/O數(shù)據(jù)的通信基礎(chǔ)設(shè)施。


          Lustr文件系統(tǒng)在規(guī)模上,一個Lustre文件系統(tǒng)集群可以包含數(shù)百個OSS和數(shù)千個客戶端(如下圖所示)。Lustre集群中可以使用多種類型的網(wǎng)絡(luò),OSS之間的共享存儲啟用故障切換功能。



          Lustre文件系統(tǒng)存儲與I/O,在 Lustre 2.0?中引入了Lustre文件標(biāo)識符(FID)來替換用于識別文件或?qū)ο蟮腢NIX inode編號。FID是一個128位的標(biāo)識符,其中,64位用于存儲唯一的序列號,32位用于存儲對象標(biāo)識符(OID),另外32位用于存儲版本號。序列號在文件系統(tǒng)(OST和MDT)中的所有Lustre目標(biāo)中都是唯一的。這一改變使未來支持多種 MDT 和ZFS(均在Lustre 2.4中引入)成為了可能。


          ? ? ? 同時,在此版本中也引入了一個名為FID-in-dirent(也稱為Dirdata)的ldiskfs功能,F(xiàn)ID作為文件名稱的一部分存儲在父目錄中。該功能通過減少磁盤I/O顯著提高了ls命令執(zhí)行的性能。FID-in-dirent是在創(chuàng)建文件時生成的。


          ? ? ? 在 Lustre 2.4 中,LFSCK文件系統(tǒng)一致性檢查工具提供了對現(xiàn)有文件啟用FID-in-dirent的功能。具體如下:


          • 為1.8版本文件系統(tǒng)上現(xiàn)有文件生成IGIF模式的FID。

          • 驗證每個文件的FID-in-dirent,如其無效或丟失,則重新生成FID-in-dirent。

          • 驗證每個linkEA條目,如其無效或丟失,則重新生成。linkEA由文件名和父類FID組成,它作為擴展屬性存儲在文件本身中。因此,linkEA可以用來重建文件的完整路徑名。


          ? ? ? 有關(guān)文件數(shù)據(jù)在OST上的位置信息將作為擴展屬性布局EA,存儲在由FID標(biāo)識的MDT對象中(具體如下圖所示)。若該文件是普通文件(即不是目錄或符號鏈接),則MDT對象1對N地指向包含文件數(shù)據(jù)的OST對象。若該MDT文件指向一個對象,則所有文件數(shù)據(jù)都存儲在該對象中。若該MDT文件指向多個對象,則使用RAID 0將文件數(shù)據(jù)劃分為多個對象,將每個對象存儲在不同的OST上。



          ? ? ? 當(dāng)客戶端讀寫文件時,首先從文件的MDT對象中獲取布局EA,然后使用這個信息在文件上執(zhí)行I / O,直接與存儲對象的OSS節(jié)點進行交互。具體過程如下圖所示。




          (1)寫性能優(yōu)于讀性能:Lustre系統(tǒng)中通常寫性能會優(yōu)于讀性能。首先,對于寫操作,客戶端是以異步方式執(zhí)行的,RPC調(diào)用分配以及寫入磁盤順序按到達順序執(zhí)行,可以實現(xiàn)聚合寫以提高效率。而對于讀,請求可能以不同的順序來自多個客戶端,需要大量的磁盤seek與read操作,顯著影響吞吐量。
          其次,目前Lustre沒有實現(xiàn)OST read cache,僅僅在客戶端實現(xiàn)了Readahead。這樣的設(shè)計也是有充分理由的,每個OST有可能會有大量客戶端并發(fā)訪問,如果進行數(shù)據(jù)預(yù)讀,內(nèi)存消耗將會非常大,而且這個是不可控制的。Writecache是在客戶端上實現(xiàn)的,內(nèi)存占用不會太大并且是可控的。再者,對于TCP/IP網(wǎng)絡(luò)而言,讀會占用更多的CPU資源。讀操作,Lustre需要從網(wǎng)絡(luò)接口緩存進行數(shù)據(jù)Copy而獲得所需數(shù)據(jù),而寫操作可以通過sendfile或Zero Copy避免額外的數(shù)據(jù)復(fù)制。

          (2)大文件性能表現(xiàn)好:Lustre的元數(shù)據(jù)與數(shù)據(jù)分離、數(shù)據(jù)分片策略、數(shù)據(jù)緩存和網(wǎng)絡(luò)設(shè)計非常適合大文件順序I/O訪問,大文件應(yīng)用下性能表現(xiàn)非常好。這些設(shè)計著眼于提高數(shù)據(jù)訪問的并行性,實現(xiàn)極大的聚合I/O帶寬,這其中關(guān)鍵得益于數(shù)據(jù)分片設(shè)計(具體見上面的分析)。另外,后端改進的EXT3文件系統(tǒng)本身也非常適合大文件I/O。

          (3)小文件性能表現(xiàn)差:然而,Lustre的設(shè)計卻非常不利于小文件I/O,尤其是LOSF(Lots of small files)。Lustre在讀寫文件前需要與MDS交互,獲得相關(guān)屬性和對象位置信息。與本地文件系統(tǒng)相比,增加了一次額外的網(wǎng)絡(luò)傳輸和元數(shù)據(jù)訪問開銷,這對于小文件I/O而言,開銷是相當(dāng)大的。對于大量頻繁的小文件讀寫,Lustre客戶端Cache作用會失效,命中率大大降低。
          如果文件小于物理頁大小,則還會產(chǎn)生額外的網(wǎng)絡(luò)通信量,小文件訪問越頻繁開銷越大,對Lustre總體I/O性能影響就越大。OST后端采用改進的EXT3文件系統(tǒng),它對小文件的讀寫性能本身就不好,其元數(shù)據(jù)訪問效率不高,磁盤尋址延遲和磁盤碎片問題嚴重。這也是大多數(shù)磁盤文件系統(tǒng)的缺點,Reiserfs是針對小文件設(shè)計的文件系統(tǒng),性能表現(xiàn)要好很多。Lustre的設(shè)計決定了它對小文件I/O性能表現(xiàn)差,實際I/O帶寬遠低于所提供的最大帶寬。在4個OSS的千兆網(wǎng)絡(luò)配置下,單一客戶端小文件讀寫性能不到4MB/s。


          Lustre文件系統(tǒng)的可用帶寬如下:
          • 網(wǎng)絡(luò)帶寬等于OSS到目標(biāo)的總帶寬。

          • 磁盤帶寬等于存儲目標(biāo)(OST)的磁盤帶寬總和,受網(wǎng)絡(luò)帶寬限制。

          • 總帶寬等于磁盤帶寬和網(wǎng)絡(luò)帶寬的最小值。

          • 可用的文件系統(tǒng)空間等于所有OST的可用空間總和。


          ? ? ? Lustre文件系統(tǒng)高性能的主要原因之一是能夠以輪詢方式跨多個OST將數(shù)據(jù)條帶化。用戶可根據(jù)需要為每個文件配置條帶數(shù)量,條帶大小和OST。當(dāng)單個文件的總帶寬超過單個OST的帶寬時,可以使用條帶化來提高性能。同時,當(dāng)單個OST沒有足夠的可用空間來容納整個文件時,條帶化也能發(fā)揮它的作用。


          ? ? ? 如圖下圖所示,條帶化允許將文件中的數(shù)據(jù)段或“塊”存儲在不同的OST中。在Lustre文件系統(tǒng)中,通過RAID 0模式將數(shù)據(jù)在一定數(shù)量的對象上進行條帶化。一個文件中處理的對象數(shù)稱為stripe_count。每個對象包含文件中的一個數(shù)據(jù)塊,當(dāng)寫入特定對象的數(shù)據(jù)塊超過stripe_size時,文件中的下一個數(shù)據(jù)塊將存儲在下一個對象上。stripe_count和stripe_size的默認值由為文件系統(tǒng)設(shè)置的,其中,stripe_count為1,stripe_size為1MB。用戶可以在每個目錄或每個文件上更改這些值。


          ? ? ? 下圖中,文件C的stripe_size大于文件A的stripe_size,表明更多的數(shù)據(jù)被允許存儲在文件C的單個條帶中。文件A的stripe_count為3,則數(shù)據(jù)在三個對象上條帶化。文件B和文件C的stripe_count是1。OST上沒有為未寫入的數(shù)據(jù)預(yù)留空間。



          ? ? ? 最大文件大小不受單個目標(biāo)大小的限制。在Lustre文件系統(tǒng)中,文件可以跨越多個對象(最多2000個)進行分割,每個對象可使用多達16 TB的ldiskfs,多達256PB的ZFS。也就是說,ldiskfs的最大文件大小為31.25 PB,ZFS的最大文件大小為8EB。Lustre文件系統(tǒng)上的文件大小受且僅受OST上可用空間的限制,Lustre最大可支持2 ^ 63字節(jié)(8EB)的文件。


          ? ? ? 注意: Lustre 2.2之前,單個文件的最大條帶數(shù)為160個OST。盡管一個文件只能被分割成2000個以上的對象,但是Lustre文件系統(tǒng)可以有數(shù)千個。


          ? ? ?實際上前面已經(jīng)提到,Lustre并不適合小文件I/O應(yīng)用,性能表現(xiàn)非常差。因此,建議不要將Lustre應(yīng)用于LOSF場合。不過,Lustre操作手冊仍然給出了一些針對小文件的優(yōu)化措施。?


          1、通過應(yīng)用聚合讀寫提高性能,比如對小文件進行Tar,或創(chuàng)建大文件或通過loopback mount來存儲小文件。小文件系統(tǒng)調(diào)用開銷和額外的I/O開銷非常大,應(yīng)用聚合優(yōu)化可以顯著提高性能。另外,可以使用多節(jié)點、多進程/多線程盡可能通過聚合來提高I/O帶寬。?
          2、應(yīng)用采用O_DIRECT方式進行直接I/O,讀寫記錄大小設(shè)置為4KB,與文件系統(tǒng)保持一致。對輸出文件禁用locking,避免客戶端之間的競爭。?
          3、應(yīng)用程序盡量保證寫連續(xù)數(shù)據(jù),順序讀寫小文件要明顯優(yōu)于隨機小文件I/O。?
          4、OST采用SSD或更多的磁盤,提高IOPS來改善小文件性能。創(chuàng)建大容量OST,而非多個小容量OST,減少日志、連接等負載。?
          5、OST采用RAID 1+0替代RAID 5/6,避免頻繁小文件I/O引起的數(shù)據(jù)校驗開銷。


          ? ? ?Lustre提供了強大的系統(tǒng)監(jiān)控與控制接口用于進行性能分析與調(diào)優(yōu),對于小文件I/O,也可以通過調(diào)整一些系統(tǒng)參數(shù)進行優(yōu)化。


          禁用所有客戶端LNET debug功能:缺省開啟多種調(diào)試信息,sysctl -w lnet.debug=0,減少系統(tǒng)開銷,但發(fā)生錯誤時將無LOG可詢。?
          增加客戶端Dirty Cache大?。?/span>lctl set_param osc./*.max_dirty_mb=256,缺省為32MB,增大緩存將提升I/O性能,但數(shù)據(jù)丟失的風(fēng)險也隨之增大。?
          使用loopback mount文件:創(chuàng)建大Lustre文件,與loop設(shè)備關(guān)聯(lián)并創(chuàng)建文件系統(tǒng),然后將其作為文件系統(tǒng)進行mount。小文件作用其上,則原先大量的MDS元數(shù)據(jù)操作將轉(zhuǎn)換為OSS讀寫操作,消除了元數(shù)據(jù)瓶頸,可以顯著提高小文件性能。這種方法應(yīng)用于scratch空間可行,但對于生產(chǎn)數(shù)據(jù)應(yīng)該謹慎使用,因為Lustre目前工作在這種模式下還存在問題。

          載鏈接:
          Lustre文件系統(tǒng)操作手冊(2021)
          Lustre文件系統(tǒng)技術(shù)匯總(1)
          Lustre文件系統(tǒng)技術(shù)匯總(2)
          Lustre文件系統(tǒng)技術(shù)匯總(3)
          Lustre文件系統(tǒng)技術(shù)匯總(4)
          Lustre文件系統(tǒng)關(guān)鍵特性(1)
          Lustre文件系統(tǒng)關(guān)鍵特性(2)
          Lustre文件系統(tǒng)關(guān)鍵特性(3)
          Lustre文件系統(tǒng)關(guān)鍵特性(4)
          Lustre文件系統(tǒng)關(guān)鍵特性(5)
          Lustre常見解決方案匯總(1)
          Lustre常見解決方案匯總(2)
          高性能計算HPC方案及技術(shù)匯總

          本號資料全部上傳至知識星球,更多內(nèi)容請登錄智能計算芯知識(知識星球)星球下載全部資料。




          免責(zé)申明:本號聚焦相關(guān)技術(shù)分享,內(nèi)容觀點不代表本號立場,可追溯內(nèi)容均注明來源,發(fā)布文章若存在版權(quán)等問題,請留言聯(lián)系刪除,謝謝。



          電子書<服務(wù)器基礎(chǔ)知識全解(終極版)>更新完畢。

          獲取方式:點擊“閱讀原文”即可查看182頁?PPT可編輯版本和PDF閱讀版本詳情。



          溫馨提示:

          請搜索“AI_Architect”或“掃碼”關(guān)注公眾號實時掌握深度技術(shù)分享,點擊“閱讀原文”獲取更多原創(chuàng)技術(shù)干貨。


          瀏覽 273
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  免费一片A | 在线欧美成人网站 | 美女艹逼视频 | 日韩先锋资源 | 天堂在线观看av 亚洲无码视频播放 |