1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

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

        共 5455字,需瀏覽 11分鐘

         ·

        2022-03-06 15:54



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

        Lustre文件系統(tǒng)操作手冊(cè)(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)
        高性能計(jì)算HPC方案及技術(shù)匯總

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


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


        ? ? ? Lustre客戶端軟件為Linux虛擬文件系統(tǒng)和Lustre服務(wù)器之間提供了接口。客戶端軟件包括一個(gè)管理客戶端(MGC),一個(gè)元數(shù)據(jù)客戶端(MDC)和多個(gè)對(duì)象存儲(chǔ)客戶端(OSC)。每個(gè)OSC對(duì)應(yīng)于文件系統(tǒng)中的一個(gè)OST。


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


        ? ? ? 與LOV文件訪問方式類似,邏輯元數(shù)據(jù)卷(LMV)通過聚合MDC提供一種對(duì)所有MDT透明的訪問。這使得了客戶端可將多個(gè)MDT上的目錄樹視為一個(gè)單一的連貫名字空間,并將條帶化目錄合并到客戶端形成一個(gè)單一目錄以便用戶和應(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ī)模上,一個(gè)Lustre文件系統(tǒng)集群可以包含數(shù)百個(gè)OSS和數(shù)千個(gè)客戶端(如下圖所示)。Lustre集群中可以使用多種類型的網(wǎng)絡(luò),OSS之間的共享存儲(chǔ)啟用故障切換功能。



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


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


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


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

        • 驗(yàn)證每個(gè)文件的FID-in-dirent,如其無效或丟失,則重新生成FID-in-dirent。

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


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



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




        (1)寫性能優(yōu)于讀性能:Lustre系統(tǒng)中通常寫性能會(huì)優(yōu)于讀性能。首先,對(duì)于寫操作,客戶端是以異步方式執(zhí)行的,RPC調(diào)用分配以及寫入磁盤順序按到達(dá)順序執(zhí)行,可以實(shí)現(xiàn)聚合寫以提高效率。而對(duì)于讀,請(qǐng)求可能以不同的順序來自多個(gè)客戶端,需要大量的磁盤seek與read操作,顯著影響吞吐量。
        其次,目前Lustre沒有實(shí)現(xiàn)OST read cache,僅僅在客戶端實(shí)現(xiàn)了Readahead。這樣的設(shè)計(jì)也是有充分理由的,每個(gè)OST有可能會(huì)有大量客戶端并發(fā)訪問,如果進(jìn)行數(shù)據(jù)預(yù)讀,內(nèi)存消耗將會(huì)非常大,而且這個(gè)是不可控制的。Writecache是在客戶端上實(shí)現(xiàn)的,內(nèi)存占用不會(huì)太大并且是可控的。再者,對(duì)于TCP/IP網(wǎng)絡(luò)而言,讀會(huì)占用更多的CPU資源。讀操作,Lustre需要從網(wǎng)絡(luò)接口緩存進(jìn)行數(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è)計(jì)非常適合大文件順序I/O訪問,大文件應(yīng)用下性能表現(xiàn)非常好。這些設(shè)計(jì)著眼于提高數(shù)據(jù)訪問的并行性,實(shí)現(xiàn)極大的聚合I/O帶寬,這其中關(guān)鍵得益于數(shù)據(jù)分片設(shè)計(jì)(具體見上面的分析)。另外,后端改進(jìn)的EXT3文件系統(tǒng)本身也非常適合大文件I/O。

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


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

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

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

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


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


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


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



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


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


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


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


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


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

        載鏈接:
        Lustre文件系統(tǒng)操作手冊(cè)(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)
        高性能計(jì)算HPC方案及技術(shù)匯總

        本號(hào)資料全部上傳至知識(shí)星球,更多內(nèi)容請(qǐng)登錄智能計(jì)算芯知識(shí)(知識(shí)星球)星球下載全部資料。




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



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

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



        溫馨提示:

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


        瀏覽 273
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            亚洲免费在线视频观看 | 三级片久久 | 色偷偷偷偷偷 | 国产精精品伦子伦 | 在浴室边摸边吃奶边做电影 | 无码人妻久久久久一区二区三区91 | 久久精品国产99 | 婷婷操逼网 | 啪啪资源网 | 日韩成人无码视频 |