NVMe通過改進物理接口、增加命令數(shù)量和隊列深度,使存儲基礎(chǔ)設(shè)施能夠充分利用閃存的優(yōu)勢。但是NVMe也帶來了一個挑戰(zhàn):NVMe的延遲非常低,它暴露了存儲基礎(chǔ)架構(gòu)中其他組件的弱點?;A(chǔ)架構(gòu)中的任何薄弱環(huán)節(jié)都會增加延遲并降低NVMe的價值。
文件系統(tǒng)是存儲基礎(chǔ)架構(gòu)中的一個問題較大的部分。現(xiàn)在是供應(yīng)商重新考慮文件系統(tǒng)架構(gòu)的時候了,特別是,他們必須修改文件系統(tǒng)與NVMe存儲的交互方式,以避免成為瓶頸。
為什么是文件系統(tǒng)?
服務(wù)于AI和高速工作負載的文件系統(tǒng)通常是可橫向擴展的。一個橫向擴展文件系統(tǒng)由多個存儲服務(wù)器或節(jié)點組成,文件系統(tǒng)聚合這些節(jié)點中的內(nèi)部存儲,將其表示為用戶和應(yīng)用程序可以訪問的單個存儲池。傳統(tǒng)的文件系統(tǒng)也可以橫向擴展,但它們是串行的,這意味著所有I/O都要經(jīng)過一個主節(jié)點,而AI和高速工作負載很容易將其壓倒,從而造成瓶頸。這些工作負載依賴于一個并行文件系統(tǒng)結(jié)構(gòu),該結(jié)構(gòu)允許集群中的任何節(jié)點向用戶或應(yīng)用程序提供I/O服務(wù),這使得網(wǎng)絡(luò)效率更加重要。
大多數(shù)NVMe存儲系統(tǒng)都是為塊存儲而設(shè)計的。因此,它們避免了文件系統(tǒng)架構(gòu)的性能開銷。然而,在大多數(shù)情況下,文件系統(tǒng)會被添加到塊存儲系統(tǒng)中,以便這些AI和高速工作負載可以使用它。大多數(shù)現(xiàn)代應(yīng)用程序——尤其是AI、機器學(xué)習(xí)和大數(shù)據(jù)分析處理程序——都依賴于文件系統(tǒng)。
添加了文件系統(tǒng)的設(shè)計良好、基于塊的NVMe存儲系統(tǒng)仍然可能比基于塊的SAS存儲系統(tǒng)快,但是RAW塊存儲和文件系統(tǒng)控制的存儲之間的性能下降是顯著的。所以,組織需要針對NVMe進行過優(yōu)化的文件系統(tǒng)。
對于基準測試,應(yīng)關(guān)注什么
供應(yīng)商常常會使用幾個文件系統(tǒng)基準測試來演示其功能。這些測試中的大多數(shù)使用帶有并行文件系統(tǒng)的NVMe塊存儲,供應(yīng)商可以輕松地使用各種配置來使某個參數(shù)達到圖表的頂部,然這可能具有一定的誤導(dǎo)性。
例如,在當(dāng)前的標準性能評估公司SFS 2014基準測試中,頂級供應(yīng)商在測試環(huán)境中的驅(qū)動器數(shù)量、驅(qū)動器類型和存儲節(jié)點數(shù)量上存在顯著差異。在大多數(shù)情況下,硬件供應(yīng)商試圖通過使用超出需求的硬件來減少文件系統(tǒng)架構(gòu)開銷,并將價格推高到超出對于大多數(shù)組織來說較為合理的水平。
真正重要的是硬件和文件系統(tǒng)對組織的工作負載類型和預(yù)算的實施情況,大多數(shù)公司沒有無限的資金來創(chuàng)建完美的NVMe-文件系統(tǒng)組合。IT專業(yè)人員應(yīng)該尋找能夠達到需求的最簡單的配置。
對于文件系統(tǒng),應(yīng)關(guān)注什么
文件系統(tǒng)性能主要有三個限制因素:
· 文件系統(tǒng)與存儲節(jié)點的通信效率;
· 文件系統(tǒng)如何高效地管理連接各個存儲節(jié)點的網(wǎng)絡(luò),以及如何高效地與客戶端通信;
· 文件系統(tǒng)如何有效地管理元數(shù)據(jù)訪問。
在大多數(shù)現(xiàn)代應(yīng)用程序環(huán)境中,元數(shù)據(jù)占所有I/O的80%以上。
文件系統(tǒng)通常通過操作系統(tǒng)I/O棧與存儲媒介通信。大多數(shù)高級文件系統(tǒng)都基于Linux,并通過該堆棧進行通信,但是Linux堆棧增加了開銷。另一種方法是文件系統(tǒng)創(chuàng)建自己的I/O通道,以連接到基于NVMe的文件系統(tǒng)。從文件系統(tǒng)開發(fā)過程來看,與驅(qū)動器的直接通信更加困難,但是它為文件系統(tǒng)用戶提供了獲得最大性能的最佳機會,而不必使用昂貴的硬件進行過度補償。
文件系統(tǒng)通常通過使用標準NFS協(xié)議與客戶端通信,但是NVMe有一個網(wǎng)絡(luò)變體(NVMe- oF),現(xiàn)代文件系統(tǒng)應(yīng)該提供軟件支持并行,以及本地NVMe-oF訪問,以便在客戶端上運行。NVMe-oF還可以用于互連各種存儲節(jié)點,這樣會使文件系統(tǒng)更易于訪問,以直連存儲的延遲。
在全NVMe文件系統(tǒng)架構(gòu)中,元數(shù)據(jù)訪問本質(zhì)上是快速的,但是元數(shù)據(jù)的布局方式必須是高效的,以便從NVMe的低延遲中獲益。優(yōu)化元數(shù)據(jù)性能,需要將其跨越文件系統(tǒng)集群中的所有節(jié)點,這樣就不會出現(xiàn)單個節(jié)點的性能瓶頸。
如何充分利用NVMe
與其他類型的工作負載相比,AI和高速負載可以更充分地利用NVMe。這些工作負載的挑戰(zhàn)通常是應(yīng)用程序通過文件系統(tǒng)訪問存儲,傳統(tǒng)的文件系統(tǒng)沒有為基于NVMe的驅(qū)動器優(yōu)化它們的I/O。更快的節(jié)點硬件和NVMe驅(qū)動器提供了更好的性能,但是傳統(tǒng)文件系統(tǒng)的架構(gòu)無法使硬件充分發(fā)揮其潛力。
為了避免這個問題,需要尋找直接寫入NVMe驅(qū)動器而不是通過操作系統(tǒng)I/O堆棧的文件系統(tǒng)。還要尋找能夠讓客戶端跨NVMe-oF進行通信的文件系統(tǒng),并以不影響性能的方式管理元數(shù)據(jù)。