HPC三種存儲方案
我們常說工匠做合適的工作需要選擇正確的工具。雖然這句話隨處可見,但它卻道出了設(shè)計(jì)和制造HPC系統(tǒng)的精髓。一直以來,HPC的計(jì)算部分都是用這種方法選擇處理器和內(nèi)存并設(shè)計(jì)互聯(lián)結(jié)構(gòu)、規(guī)定軟件棧和工具。當(dāng)然,這一切都和存儲密不可分。
要實(shí)現(xiàn)性能、成本、可控性、可擴(kuò)展性和數(shù)據(jù)完整性的良好平衡,根據(jù)不同情況有幾種存儲方案可供選擇。例如有些數(shù)據(jù)連續(xù)幾個(gè)月都沒有被存取,那么是否所有數(shù)據(jù)都需要用快速存儲?又或者是否有必要用一個(gè)容量大但性能低的存儲方式保留數(shù)據(jù)而不是運(yùn)行應(yīng)用程序?不同的情況應(yīng)該使用不同的存儲方案解決。
這篇文章接下來的部分將描述三種HPC存儲方案:(1)聯(lián)機(jī)永久存儲(有時(shí)被稱為主存儲),(2)高速高速暫存器,(3)分類存儲。每一種解決方案都將對整個(gè)數(shù)據(jù)生命周期(從產(chǎn)生到最后歸檔,打個(gè)比方說就是從搖籃到墳?zāi)?起作用。圖1 闡述了這些存儲工具如何適應(yīng)IDC(International Data Corporation,國際數(shù)據(jù)公司)的HPC分類和吞吐量。
▲圖 1. 存儲工具如何符合一定的規(guī)模及吞吐量
這三種方案能夠很靈活地解決HPC的存儲問題,滿足您的需求并提供給您一個(gè)高效存儲方案。如果您需要一種以上的存儲方式,您可以輕松地以高效、低成本的方式對它進(jìn)行擴(kuò)展。如果您的應(yīng)用程序和用戶不需要高速暫存器,那么您就可以不用付費(fèi)購買并行 I/O 存儲方案。
接下來,我們將要討論第一種方案——聯(lián)機(jī)永久存儲,它專注于為小型系統(tǒng)提供合理的性能表現(xiàn)。另外,如果大型系統(tǒng)對用戶主目錄和應(yīng)用程序目錄的性能沒有迫切的需求,那么聯(lián)機(jī)存儲也是一個(gè)不錯的選擇。
HPC聯(lián)機(jī)永久存儲: NFS是候選方案之一
HPC的計(jì)算節(jié)點(diǎn)都需要一個(gè)常見的文件系統(tǒng)。NFS為這個(gè)常見的文件系統(tǒng)提供了一個(gè)簡單、穩(wěn)固的解決方案。 基于NFS標(biāo)準(zhǔn)的存儲方案被廣泛用于Linux的HPC集群空間, 因?yàn)镹FS簡單易操作并且歷經(jīng)考驗(yàn),故障模式為公眾所知,而且在每一個(gè)Linux發(fā)行版中都是事實(shí)上的標(biāo)準(zhǔn)安裝包,非常方便。這種特性讓NFS成為了許多HPC裝置的聯(lián)機(jī)存儲方案的一個(gè)較好的選擇。根據(jù)2009IDC的調(diào)研,在110個(gè)HPC站點(diǎn)中,NFS是使用最為廣泛的文件系統(tǒng)。91個(gè)最大的HPC系統(tǒng)中,56%都在使用NFS。同樣的,近期展開的64個(gè)HPC系統(tǒng)中,其中64%使用的是NFS。這份調(diào)查說明在HPC部署中,NFS作為一個(gè)頂級文件系統(tǒng)的選擇是很重要的。
無論以下哪種情況,NFS 都可以為HPC集群提供一個(gè)穩(wěn)定的文件系統(tǒng)方案:(1) 集群應(yīng)用程序的 I/O 要求可以通過單個(gè)或者多個(gè)集群服務(wù)器滿足,(2)計(jì)算節(jié)點(diǎn)數(shù)量與連接后臺存儲的帶寬相稱,(3)存儲容量能夠滿足集群需要,(4) 您需要一個(gè)可靠、容易理解并易操作的存儲。
從理論上來說,如果應(yīng)用程序的文件訪問模式是N個(gè)用戶訪問N個(gè)文件,而且并行應(yīng)用程序只有單個(gè)進(jìn)程執(zhí)行I/O,在這種情況下NFS作為主應(yīng)用程序存儲將運(yùn)行得很好。許多使用NFS作為主存儲的應(yīng)用程序都能符合要求并運(yùn)行得非常好。目前的最佳實(shí)踐是無論HPC計(jì)算集群多大,統(tǒng)一使用10Gb以太網(wǎng)或者InfiniBand連接NFS 服務(wù)器。
然而,當(dāng)系統(tǒng)開始龐大起來或者數(shù)據(jù)集增加,或者當(dāng)許多計(jì)算客戶同時(shí)存取一個(gè)單一文件(N對1 文檔存取),NFS可能就不是最佳選擇方案了。在這種情況下,應(yīng)用程序可以運(yùn)用專用的高性能存儲器來執(zhí)行應(yīng)用。
總體來說,NFS不僅對小型乃至中型集群有效,在更大一些的應(yīng)用環(huán)境里也同樣有效。對于大一點(diǎn)的集群來說,NFS仍然在啟用集群節(jié)點(diǎn)的主目錄和的應(yīng)用程序的共享方面發(fā)揮著重要作用。在這種情況下, NFS不是運(yùn)行應(yīng)用程序的最主要的存儲,因此即使對大量的計(jì)算節(jié)點(diǎn)來說性能要求也不高。在計(jì)算節(jié)點(diǎn)上輕松掛載用戶主目錄和應(yīng)用程序,也可以使用NFS實(shí)現(xiàn)。
3.2 HPC聯(lián)機(jī)永久存儲: 戴爾NFS 存儲解決方案 (NSS)
戴爾NFS 存儲解決方案(NSS)是一種完全基于NFS的文件存儲,提供包括所有必須的硬件、軟件、性能指南、支持和部署服務(wù)。戴爾NSS通過提供調(diào)整服務(wù)器、存儲以及文件系統(tǒng)配置的詳細(xì)指南,幫助用戶部署NFS 服務(wù)器,以達(dá)到最佳性能及可靠性。
戴爾為您提供六種NSS推薦配置,和戴爾不斷發(fā)展的配置和調(diào)整存儲系統(tǒng)最佳實(shí)踐一道為幫助用戶實(shí)現(xiàn)最佳性能。您有兩個(gè)連接選擇:四倍速率 (QDR) 無限帶寬或者10Gb以太網(wǎng)連接,三種規(guī)模選擇:小型(20 TB 存儲容量), 中型 (40 TB存儲容量),大型 (80 TB存儲容量)。另外為滿足應(yīng)用程序的性能需求,QDR 無限帶寬方案提供了高達(dá)1.4 GBps的總吞吐量, 同時(shí)10Gb以太網(wǎng)方案可以提供高達(dá)1.1 GBps的總吞吐量。所有六種配置使用戴爾PowerEdge和PowerVault 產(chǎn)品以及XFS (Red HatScalable File System )提供模塊化方法來構(gòu)建存儲方案,裸容量能夠擴(kuò)展到高達(dá)96 TB。
構(gòu)成戴爾NSS的主模塊為PowerEdge R710 網(wǎng)關(guān)服務(wù)器和 PowerVault MD1200 直連存儲附件。如果您需要戴爾NSS的詳細(xì)配置參數(shù),歡迎訪問戴爾NSS網(wǎng)站。
3.3 NSS性能
本章節(jié)將分別比較NSS小型、中性以及大型配置的大規(guī)模連續(xù)讀寫性能。以下討論的性能數(shù)據(jù)均來自由32 臺PowerEdge R410服務(wù)器作為計(jì)算節(jié)點(diǎn)和NFS 客戶端的集群。基于10Gb以太網(wǎng)和InfiniBand,我們做了三組測試。
測試使用IOzone進(jìn)行。IOzone是一個(gè)用于衡量大規(guī)模連續(xù)讀寫的工業(yè)標(biāo)準(zhǔn)。測試中為達(dá)到足夠大的規(guī)模和連續(xù)強(qiáng)度,我們使用高達(dá)25GB的文件和1024KB的請求大小來保證NFS服務(wù)器和客戶端緩存均保持飽和的工作狀態(tài)。IOzone在集群模式下運(yùn)行,并在每個(gè)計(jì)算節(jié)點(diǎn)上開啟一個(gè)線程。
第一組測試是在IPoIB(IP over InfiniBand)上進(jìn)行大型連續(xù)讀寫測試。
圖2顯示的是一系列節(jié)點(diǎn)也就是NFS 客戶端的大規(guī)模連續(xù)寫性能。對于大規(guī)模連續(xù)寫,在使用NSS大型結(jié)構(gòu)時(shí)達(dá)到了最高的性能。該大型結(jié)構(gòu)的速度峰值大概在1.45GB/秒左右,測試中,大型結(jié)構(gòu)存儲表現(xiàn)優(yōu)于NSS的小型和中型結(jié)構(gòu)表現(xiàn),原因在于大型結(jié)構(gòu)存儲擁有更多的硬盤和附加的磁盤陳列控制器,從而獲得更高的處理能力和主軸來處理工作負(fù)荷。正如圖2所示,當(dāng)計(jì)算節(jié)點(diǎn)達(dá)到一定數(shù)量之后,存儲性能有所下降,這是由于NFS并發(fā)寫流量使磁盤成為性能瓶頸。
▲圖2 NSS IPoIB大規(guī)模連續(xù)寫性能
圖3 顯示了一系列節(jié)點(diǎn)在InfiniBand網(wǎng)絡(luò)下大規(guī)模連續(xù)讀取的性能。由圖可見,相對于相應(yīng)的寫性能,NSS的大規(guī)模連續(xù)讀取性能的下降要緩慢很多。這是因?yàn)镹FS寫操作具有很高的復(fù)雜性,相對于讀取挑戰(zhàn)性更多。測試結(jié)果同樣表明在解決方案中使用更多的硬盤,就會有更高的讀取峰值,并且會具有更多持續(xù)性的生產(chǎn)力。
▲圖3 NSS IPoIB 大規(guī)模連續(xù)讀性能
第二組測試是基于10Gb以太網(wǎng)進(jìn)行的大規(guī)模連續(xù)讀寫。本測試使用以太網(wǎng)代替上組測試中使用的InfiniBand。
圖4 顯示了10Gb以太網(wǎng)中進(jìn)行大規(guī)模連續(xù)寫時(shí)NSS的性能情況。在本測試中大型結(jié)構(gòu)的大規(guī)模連續(xù)存儲峰值速度達(dá)到了將近1.2GB/秒,同時(shí)小型結(jié)構(gòu)達(dá)到了550MB/秒。和上文InfiniBand環(huán)境下測試結(jié)果相同,三種NSS結(jié)構(gòu)在計(jì)算節(jié)點(diǎn)達(dá)到一定數(shù)量之后,也都呈現(xiàn)性能降低的情況。然而,通過增加硬盤的數(shù)量和增加磁盤陳列控制器,存儲峰值速度以及保持高速性能的能力都將持續(xù)提高。
▲圖4 NSS在10Gb以太網(wǎng)下大規(guī)模連續(xù)寫性能
圖5顯示了(NSS)基于10Gb以太網(wǎng)的規(guī)模連續(xù)讀性能。在本測試中,NSS小型結(jié)構(gòu)峰值的讀取速度和NFS工作負(fù)荷的飽和點(diǎn)接近270MB/秒。中型結(jié)構(gòu)(比小型結(jié)構(gòu)增加了一組MD1200矩陣)的讀取峰值和飽和點(diǎn)接近為500MB/秒。最后,IOzone并沒有顯示大型結(jié)構(gòu)(比小型結(jié)構(gòu)多了一個(gè)磁盤陳列控制器和兩組MD1200矩陣)運(yùn)行32節(jié)點(diǎn)的峰值速度或工作負(fù)荷飽和點(diǎn),需要更多的NFS客戶端才能得到測試結(jié)果。
▲圖5 NSS在10Gb以太網(wǎng)下的大規(guī)模連續(xù)讀性能
10Gb以太網(wǎng)下的NSS大規(guī)模寫性能要優(yōu)于相應(yīng)的讀性能,這是由于NSS方案中的緩存技術(shù)優(yōu)化了進(jìn)入硬盤的數(shù)據(jù)流,使集中寫成為可能。對于連續(xù)讀取而言,這個(gè)過程高度依賴于“讀取優(yōu)先”,而NFS服務(wù)卻限制了用于滿足“讀取優(yōu)先”的緩存容量,這樣請求只能靠更頻繁地讀取硬盤來應(yīng)對,導(dǎo)致了讀取性能的降低。
HPC 快速暫存: 并行文件系統(tǒng)簡介
近些年來,在HPC中從計(jì)算節(jié)點(diǎn)到后臺存儲都在廣泛應(yīng)用并行I/O,并行文件系統(tǒng)作為I/O性能擴(kuò)展的解決方案在不斷上升。并行I/O 由于它的并行特性,應(yīng)用程序性能非常突出,它可以同時(shí)在容量和性能方面進(jìn)行大量擴(kuò)展。并行文件系統(tǒng)通過在多存儲裝置上分配(或分割)數(shù)據(jù)實(shí)現(xiàn)性能及擴(kuò)展性。并行文件系統(tǒng)接近線性的性能擴(kuò)展是NFS方案無法達(dá)到的。
盡管并行存儲方案可以帶來高性能以及容量的可擴(kuò)展性,但是設(shè)計(jì)、調(diào)整、控制和維護(hù)并行文件系統(tǒng)很困難。并行文件系統(tǒng)通常包含幾種存儲服務(wù)器,既可以共享后臺存儲方案也可以擁有各自獨(dú)立的存儲。恰當(dāng)?shù)嘏渲眠@種存儲是很難的。HPC系統(tǒng)的設(shè)計(jì)和實(shí)施面臨的較為典型的困難就是,多少條帶寬度最合適,需要多少存儲服務(wù)器,要求哪種元數(shù)據(jù)性能,如何按比例擴(kuò)充存儲方案的性能和容量,如何使用最少的人力成本管理和監(jiān)控存儲方案的有效性,等等。不難看出,設(shè)計(jì)一個(gè)良好的并行存儲方案并不是一件容易的事。
在實(shí)現(xiàn)并行文件系統(tǒng)的眾多方法中,有一種是在單一系統(tǒng)里交付高吞吐量,并行存取以及可擴(kuò)展的容量。不過,事實(shí)證明這種方案在配置實(shí)施和維護(hù)的時(shí)候很復(fù)雜,成本也相當(dāng)高。因此另一種方案,Lustre?并行文件系統(tǒng)開始流行起來,Lustre?并行文件系統(tǒng)使用完全可伸縮的多服務(wù)器、高度并行的方式部署。
Lustre并行文件系統(tǒng)
對于需要非常大的吞吐量、擴(kuò)展性和容量的應(yīng)用程序來說,Lustre是一種基于對象、開源高效的并行文件系統(tǒng)。雖然有些復(fù)雜,但Lustre功能非常豐富。
世界十大超級計(jì)算中心當(dāng)中的七個(gè)以及超過50%的全球top50超級計(jì)算機(jī)都在使用Lustre,它可以擴(kuò)展到25,000 名用戶,32 PB (32,000 TB), 總的數(shù)據(jù)吞吐量高達(dá)130 GB/s。
Lustre是一種真正的并行文件系統(tǒng),它可以允許一個(gè)集群中的多節(jié)點(diǎn)同時(shí)對同一個(gè)文件進(jìn)行讀寫,這樣就大大增加了支持并行I/O的應(yīng)用程序的文件系統(tǒng)I/O性能。它通過在多個(gè)存儲陣列上對數(shù)據(jù)進(jìn)行條帶化,整合所有存儲服務(wù)器和存儲陣列。這樣,Lustre 就能用低成本的硬件來實(shí)現(xiàn)巨大的、可擴(kuò)展的后臺存儲功能。
對于用戶來說,Lustre文件系統(tǒng)提供了POSIX?-compliant UNIX?文件系統(tǒng)界面??蛻舳藪燧dLustre文件系統(tǒng)一直可以看到一個(gè)單獨(dú)的命名空間。在其他客戶端讀取文檔的同時(shí),不同的客戶端可以同時(shí)對同一個(gè)文件的不同部分進(jìn)行寫操作。
Lustre客戶端通常是典型的HPC集群計(jì)算節(jié)點(diǎn),它們運(yùn)行Lustre客戶端軟件并通過以太網(wǎng)或InfiniBand與Lustre 服務(wù)器進(jìn)行通信。Lustre客戶端軟件由Lustre服務(wù)器和運(yùn)行在計(jì)算節(jié)點(diǎn)上的應(yīng)用程序之間的接口組成。
圖示6 展現(xiàn)了Lustre并行文件系統(tǒng)的原理。
Lustre設(shè)計(jì)將文件系統(tǒng)操作分為兩個(gè)獨(dú)立的部分:文件系統(tǒng)元數(shù)據(jù)操作在元數(shù)據(jù)服務(wù)器(MDS)完成,文件數(shù)據(jù)操作在對象存儲服務(wù)器(OSS)上完成。
▲圖 6. Lustre并行文件系統(tǒng)原理示意圖
OSS節(jié)點(diǎn)文件對象數(shù)據(jù)使用目標(biāo)對象存儲(OST)來儲存(LUNs)。通常情況下,多個(gè)OSS在任何時(shí)候都處于active狀態(tài)。由于每增加一個(gè)OSS,就能提供更多的網(wǎng)絡(luò),更大的吞吐量,更強(qiáng)的處理能力以及更多的容量,因此使用更多的OSS就可以實(shí)現(xiàn)更大的吞吐量。
一個(gè)Lustre裝置由以下三個(gè)關(guān)鍵系統(tǒng)組成: 元數(shù)據(jù)子系統(tǒng), 目標(biāo)存儲子系統(tǒng)和Lustre計(jì)算客戶端。設(shè)計(jì)和配置這些組件并不是一件容易的事情。因?yàn)橐紤]到方方面面來使其性能達(dá)到最佳,比如服務(wù)器配置、條帶寬度、OST大小、RAID配置、網(wǎng)絡(luò)以及對集群軟件棧冗余與交互作用的需求。如果這其中一點(diǎn)或者更多的方面沒有考慮適當(dāng),那么設(shè)計(jì)和配置出的性能可能達(dá)不到你的預(yù)期或要求。