李 瓊,宋振龍,袁 遠,謝徐超
(國防科技大學(xué)計算機學(xué)院,湖南 長沙 410073)
高性能計算HPC(High Performance Computing)技術(shù)是信息時代世界各國競相爭奪的技術(shù)制高點,是一個國家綜合國力和科技創(chuàng)新力的重要標(biāo)志。Exascale (1 018 FLOPS)超級計算機已經(jīng)成為了各國爭奪的下一個戰(zhàn)略制高點。
E級超級計算機在數(shù)百萬結(jié)點上運行達數(shù)十億個進程,如此之多的進程并發(fā)I/O、數(shù)百PB的容量和數(shù)十TB/s的帶寬需求給存儲系統(tǒng)的可擴展能力、容錯能力、實用效率帶來前所未有的技術(shù)挑戰(zhàn),存儲系統(tǒng)將成為E級計算機系統(tǒng)設(shè)計的一個關(guān)鍵環(huán)節(jié),I/O性能將成為制約整個系統(tǒng)性能的一大關(guān)鍵因素[1]。同時,隨著HPC高性能計算、高性能大數(shù)據(jù)分析HPDA(High Performance Data Analysis)和智能應(yīng)用的融合,運行在HPC計算系統(tǒng)上的工作負載類型更加復(fù)雜多樣,大數(shù)據(jù)容量大、速度快、模態(tài)多等特性對超級計算機的存儲系統(tǒng)提出了新的技術(shù)挑戰(zhàn)[1]。具體表現(xiàn)在以下幾個方面:(1) E級計算能力,單位時間內(nèi)的數(shù)據(jù)處理能力增強,導(dǎo)致對存儲系統(tǒng)性能的要求提高。(2) 計算精度提高,數(shù)據(jù)量增大。計算性能的不斷提升使得之前無法進行的高精度計算變得可行,而高精度計算使得需要處理的數(shù)據(jù)量增多,從而增大了存儲系統(tǒng)的壓力。(3) 數(shù)據(jù)密集型應(yīng)用越來越多,I/O與計算比增大。大數(shù)據(jù)時代,越來越多的大數(shù)據(jù)應(yīng)用等運行在超級計算機上,大數(shù)據(jù)應(yīng)用的I/O時間和計算時間占比高,I/O性能對并行應(yīng)用的影響尤為突出。(4) E級系統(tǒng)數(shù)百萬結(jié)點規(guī)模,故障率高,檢查點(CheckPoint)應(yīng)用需求巨大。預(yù)測E 級系統(tǒng)的平均無故障時間將小于1小時,CheckPoint必須限時盡快完成,對Burst I/O帶寬需求將達到100~200 TB/s。
E級計算時代存儲墻和I/O瓶頸問題日益突出[2,3],問題產(chǎn)生的主要原因在于:(1)處理器和存儲器件技術(shù)發(fā)展的不均衡,在過去的十多年中,CPU性能每年增長超過了60%,而磁盤性能每年僅有4%~7%的增長。盡管有SSD等新型存儲器件,但受經(jīng)費限制難以在E級系統(tǒng)中全面取代磁盤。(2)HPC存儲系統(tǒng)的擴展能力嚴重滯后于計算架構(gòu)并發(fā)度的爆發(fā)式增長,同時也跟不上應(yīng)用I/O模式復(fù)雜性和數(shù)據(jù)規(guī)模的增長,現(xiàn)有HPC架構(gòu)加重了I/O存儲與計算速度的失配性。(3)現(xiàn)有I/O軟件棧不適應(yīng)新型存儲器件,存在效率問題,即使底層硬件裸帶寬充足,應(yīng)用程序可獲得的實際I/O帶寬依然會受限于頂層數(shù)據(jù)模型和底層物理存儲方法的匹配度。
新型存儲技術(shù)的發(fā)展為解決I/O瓶頸問題提供了機遇[4]。近年來,閃存作為最成熟的新型存儲介質(zhì)已得到廣泛應(yīng)用,多種新型非易失存儲介質(zhì)NVM(Non-Volatile Memory,也稱為SCM,Sto- rage Class Memory)相繼推出[5,6]。Intel 和 Micro合作研發(fā)的3D XPoint被認為是最具大規(guī)模商用潛力的 NVM 存儲產(chǎn)品,目前基于3D XPoint的PCIe SSD-Optane產(chǎn)品,存儲延遲小于10 μs,I/O吞吐率均在50萬IOPS以上。同時,研究人員針對新型存儲介質(zhì)制定了新的控制器和接口標(biāo)準(zhǔn)。NVMe(Non-Volatile Memory express)協(xié)議是針對閃存、3D-XPoint等非易失型存儲器NVM量身定制的新型主機控制器接口規(guī)范,通過與PCIe(Peripheral Component Interconnect express)接口的高效組合,可有效降低存儲系統(tǒng)協(xié)議棧開銷,提升存儲系統(tǒng)I/O吞吐率,在數(shù)據(jù)中心和高性能計算機中應(yīng)用廣泛。受限于PCIe總線的擴展性,NVMe協(xié)議不適用于大規(guī)模的跨網(wǎng)遠程存儲訪問。將NVMe協(xié)議基于RDMA(Remote Direct Memory Access)、Fibre Channel、TCP等網(wǎng)絡(luò)擴展的NVMeoF存儲網(wǎng)絡(luò)協(xié)議應(yīng)運而生。NVMeoF存儲網(wǎng)絡(luò)實現(xiàn)了主機與遠程NVMe存儲系統(tǒng)的通信,為構(gòu)建高性能易擴展的網(wǎng)絡(luò)存儲提供了有效的技術(shù)途徑。
國外關(guān)于面向E級I/O系統(tǒng)的研究,主要有美國的FastForward計劃和Blackbob計劃,歐洲的E級計算項目DEEP-ER和ExaNeST等項目,研究如何將新型NVM應(yīng)用到E級系統(tǒng),研究存儲架構(gòu)和應(yīng)用層數(shù)據(jù)模型,以及覆蓋整個I/O棧的應(yīng)用層、中間層和存儲層3個層次的研究設(shè)計[7,8]。美國FastForward計劃由美國能源部DOE(Department Of Energy)支持,資助7個國家實驗室研究Exscale I/O棧,提出了FFSIO(extreme-scale technology acceleration Fast Forward Storage and IO stack project)建議,對超級計算機存儲系統(tǒng)設(shè)計具有重要影響,重點關(guān)注如何使用新存儲介質(zhì)及混合存儲技術(shù),重新設(shè)計接口、I/O語義、存儲模型,覆蓋整個I/O棧的3個主題。美國的Blackbob計劃是由NVIDIA公司、國家科學(xué)基金會NSF(National Science Foundation)、能源部DOE、國防部高級研究計劃署DARPA(Defense Advance Research Projects Agency)共同資助的項目,研究如何將新型NVRAM存儲介質(zhì)應(yīng)用到E級系統(tǒng),研究存儲架構(gòu)和應(yīng)用層數(shù)據(jù)模型。歐洲的E級計算項目DEEP-ER由20多家知名大學(xué)和廠商合作,面向HPC設(shè)計了BeeGFS文件系統(tǒng),采用NVM存儲和NAM網(wǎng)絡(luò)存儲技術(shù),提高并發(fā)I/O性能,解決E級計算I/O帶寬擴展問題。
Burst Buffer突發(fā)緩沖存儲架構(gòu)成為高性能計算存儲領(lǐng)域研究熱點[9],該架構(gòu)采用I/O轉(zhuǎn)發(fā)和I/O緩沖區(qū)機制,在全局存儲和計算結(jié)點之間構(gòu)建轉(zhuǎn)發(fā)層,按一定比例將一組計算結(jié)點映射到幾個I/O轉(zhuǎn)發(fā)結(jié)點,緩解數(shù)萬甚至十萬計算結(jié)點同時與后端存儲服務(wù)器通信的壓力,使后端全局存儲層的客戶端規(guī)模得以縮小,提高存儲系統(tǒng)的擴展性。
天河二號、Oakforest-PACS、Shaheen、Titan、Trinity、Cori等一系列超級計算機系統(tǒng)利用閃存構(gòu)建Burst Buffer,顯著提高了系統(tǒng)Burst I/O帶寬?,F(xiàn)有2種代表性的Burst Buffer存儲架構(gòu)。一種為在計算結(jié)點本地的Burst Buffer架構(gòu),Burst Buffer位于各個計算結(jié)點上,其好處在于總的Burst I/O帶寬隨計算結(jié)點的數(shù)量線性增長??茖W(xué)計算應(yīng)用程序可以通過使每個進程將其數(shù)據(jù)寫入其本地Burst Buffer來獲得可擴展的寫帶寬。但是,將緩沖的數(shù)據(jù)刷新到后端并行文件系統(tǒng)時需要占用計算結(jié)點的計算能力,可能會對計算結(jié)點上的計算任務(wù)造成干擾。另一種為遠程共享Burst Buffer存儲架構(gòu),Burst Buffer部署在計算結(jié)點和后端并行文件系統(tǒng)之間的專用I/O結(jié)點上,數(shù)據(jù)刷新到后端并行文件系統(tǒng)時不會干擾計算結(jié)點上的計算任務(wù),因此該架構(gòu)實現(xiàn)了出色的資源隔離,不過其I/O帶寬取決于網(wǎng)絡(luò)帶寬、Burst Buffer總帶寬和I/O結(jié)點數(shù)等多種因素。Argonne國家實驗室的Aurora超算系統(tǒng)具有異構(gòu)Burst Buffer架構(gòu),同時包括結(jié)點本地Burst Buffer和遠程共享Burst Buffer。現(xiàn)階段,由于 NVM 價格和容量的限制,以及復(fù)雜的編程模式,在實際HPC系統(tǒng)中很少出現(xiàn)純 NVM 的場景,更多的將還是NVM+SSD+HDD 的層次式混合存儲架構(gòu)。在SSD等NVM存儲設(shè)備還相當(dāng)貴的狀況下,Burst Buffer與傳統(tǒng)并行文件系統(tǒng)各有所長,將長期分工并存。
大數(shù)據(jù)時代,為了充分利用HPC系統(tǒng)的并行計算能力,許多大數(shù)據(jù)應(yīng)用程序正遷移到HPC系統(tǒng),如何在HPC系統(tǒng)上支持大數(shù)據(jù)的高時效分布式處理與存儲成為重要的研究課題。HPC系統(tǒng)為提高計算刀片集成密度和可靠性,計算結(jié)點一般不配備本地盤,這種存儲資源與計算結(jié)點的分離要求通過網(wǎng)絡(luò)對并行文件系統(tǒng)進行遠程訪問,導(dǎo)致高I/O延遲。在計算結(jié)點和并行文件系統(tǒng)之間設(shè)置突發(fā)緩沖區(qū),讀取輸入數(shù)據(jù)和讀取/寫入中間數(shù)據(jù),可縮短I/O延遲。開源的Memcached等研究項目采用Burst Buffer來預(yù)取大數(shù)據(jù)或存儲中間數(shù)據(jù),應(yīng)對HPC 上大數(shù)據(jù)應(yīng)用程序面臨的高I/O延遲問題。
針對E級計算和大數(shù)據(jù)處理對存儲系統(tǒng)的需求與挑戰(zhàn),本文研究設(shè)計一種基于NVMeoF存儲池的分域共享并發(fā)存儲架構(gòu),既滿足E級系統(tǒng)科學(xué)計算超高并發(fā)度I/O應(yīng)用需求,又滿足大數(shù)據(jù)分析HPDA和智能應(yīng)用高時效I/O應(yīng)用需求。
支持HPC和大數(shù)據(jù)處理的分域共享并發(fā)存儲架構(gòu)如圖1所示,從數(shù)據(jù)訪問特性上看,主要包含基于NVMeoF的虛擬本地存儲層、基于NVMe存儲池的子域共享加速層、大容量全局共享存儲層3部分。設(shè)計多態(tài)存儲服務(wù)結(jié)點,軟件上實現(xiàn)高并發(fā)NVM存儲池NV-BSP(Burst Storage Pool)、Burst I/O緩沖加速功能和并行存儲功能,可根據(jù)系統(tǒng)規(guī)?;蛘邞?yīng)用的I/O特性在多態(tài)存儲服務(wù)結(jié)點上進行動態(tài)配置,實現(xiàn)可適配多種應(yīng)用模式、混合存儲資源的柔性配置,以及數(shù)據(jù)的動態(tài)部署。

Figure 1 Regional shared and high concurrent storage architecture based on NV-BSP圖1 基于NV-BSP的分域共享并發(fā)存儲架構(gòu)
伴隨著計算任務(wù)的運行,計算任務(wù)占據(jù)的結(jié)點形成了一個邏輯分區(qū),資源管理系統(tǒng)在任務(wù)調(diào)度時,可以將一個邏輯分區(qū)內(nèi)的加速存儲資源整合起來,形成一個面向任務(wù)的子域共享的Burst Buffer存儲加速空間,通過該局部加速空間和全局存儲空間之間的有機融合,可以有效支持面向特定計算任務(wù)的突發(fā)I/O緩沖加速和低延遲存儲訪問。
面向大數(shù)據(jù)和智能應(yīng)用,可以將存儲服務(wù)結(jié)點上所有NVMe SSD進行池化管理,通過基于自主高速互連網(wǎng)的NVMeoF網(wǎng)絡(luò)存儲技術(shù),為計算結(jié)點提供低延遲突發(fā)緩沖設(shè)備:NVMeoF虛擬本地盤,高效支持低延遲的本地I/O訪問模式,來應(yīng)對遠程訪問全局共享并行文件系統(tǒng)的高I/O延遲問題,提高大數(shù)據(jù)實時處理能力。針對具有巨大輸入數(shù)據(jù)量且多次執(zhí)行的大數(shù)據(jù)應(yīng)用程序,采用控制I/O干擾的提前預(yù)讀、異步滯后寫策略,重疊大數(shù)據(jù)應(yīng)用程序的I/O和計算階段,以進一步隱藏遠程數(shù)據(jù)訪問的高延遲。
面向科學(xué)與工程計算,NV-BSP存儲池將所有NVMe SSD統(tǒng)一管理構(gòu)成NVMe存儲加速層,實現(xiàn)應(yīng)用和傳統(tǒng)并行文件系統(tǒng)之間的Burst I/O緩沖加速,支持E級系統(tǒng)數(shù)十萬結(jié)點并發(fā)I/O,滿足應(yīng)用程序瞬時并發(fā)I/O操作的性能需求,減少對后端全局并行文件系統(tǒng)的I/O壓力。另一方面,采用I/O存儲結(jié)點和大量存儲設(shè)備構(gòu)成大容量存儲池,支持高性價比、超大容量的數(shù)據(jù)存儲,全局存儲可靈活部署各種類型的存儲系統(tǒng),主要為應(yīng)用程序提供足夠的存儲空間,為各種數(shù)據(jù)后處理提供數(shù)據(jù)共享支持。
面向不同應(yīng)用模式的差異化I/O需求,這種I/O存儲架構(gòu)支持靈活配置存儲資源,作業(yè)管理和資源調(diào)度軟件可根據(jù)數(shù)據(jù)密集度動態(tài)分配存儲資源,并采用針對性的I/O優(yōu)化策略為CheckPoint、純數(shù)據(jù)流、混合負載、帶寬敏感型或延遲敏感型等各類I/O應(yīng)用提供有效的QoS服務(wù)保障。
計算結(jié)點運行全局并行文件系統(tǒng)的客戶端進程,在支持傳統(tǒng)POSIX接口的同時,提供了HDF/MPI-IO接口以及針對定制化應(yīng)用的API接口。采用挖掘I/O局部性的分區(qū)域I/O策略,設(shè)計輕量級用戶態(tài)文件系統(tǒng)協(xié)議和I/O請求轉(zhuǎn)發(fā)技術(shù),利用存儲服務(wù)結(jié)點處理并轉(zhuǎn)發(fā)一組計算結(jié)點的I/O請求,使并行文件系統(tǒng)的客戶端數(shù)目得以適度調(diào)控,提供可均衡擴展的快速I/O能力。
存儲服務(wù)結(jié)點實現(xiàn)NV-BSP存儲池,同時連接高速互連網(wǎng)和后端存儲局域網(wǎng),通過后端存儲局域網(wǎng)掛接大容量存儲池。本文采用層次式融合存儲管理技術(shù)維護所有NV-BSP存儲池的存儲空間,采用一種基于非確定性DHT(Distributed Hash Tables)映射規(guī)則的數(shù)據(jù)布局與組織方法,實現(xiàn)了高效的數(shù)據(jù)布局和I/O調(diào)度,提供彈性可擴展的數(shù)據(jù)和元數(shù)據(jù)訪問能力。采用多模式的數(shù)據(jù)同步技術(shù),對2個層次之間的數(shù)據(jù)存儲及一致性進行有效管理,構(gòu)造高效、可靠、統(tǒng)一的融合虛擬存儲空間,有效提高E級系統(tǒng)復(fù)雜應(yīng)用條件下整體I/O性能。
存儲網(wǎng)絡(luò)傳輸帶寬和延遲是影響并行存儲系統(tǒng)性能的重要因素,本文針對E級計算并行存儲需求,研究存儲與網(wǎng)絡(luò)融合的網(wǎng)絡(luò)實現(xiàn)架構(gòu)和NVMeoF網(wǎng)絡(luò)存儲通信技術(shù),增強存儲系統(tǒng)的橫向擴展能力和柔性可配置能力,支持NV-BSP存儲池和大容量存儲池的可定義配置,整個存儲系統(tǒng)的規(guī)模柔性可擴展。通過擴充NV-BSP存儲池數(shù)目,可以實現(xiàn)系統(tǒng)瞬發(fā)I/O帶寬的持續(xù)擴展,支持并發(fā)操作客戶端數(shù)量到十萬結(jié)點規(guī)模,并支持平滑擴展到E級系統(tǒng)規(guī)模。
本文基于天河高速互連網(wǎng)絡(luò)實現(xiàn)NVMeoF網(wǎng)絡(luò)存儲協(xié)議,實現(xiàn)網(wǎng)絡(luò)與存儲的協(xié)同性能優(yōu)化,降低遠程存儲訪問延遲。NV-BSP存儲池支持天河高速互連網(wǎng)絡(luò)接口,可以方便地部署到天河超級計算機系統(tǒng)中,并通過NVMeoF存儲網(wǎng)絡(luò)技術(shù)實現(xiàn)計算子域與NV-BSP存儲池的互連,加快計算子域與存儲池的RDMA數(shù)據(jù)交換。
本文研究設(shè)計支持遠程存儲直通訪問的NV-BSP存儲池,實現(xiàn)面向HPC的存儲互連融合網(wǎng)絡(luò)框架,支持零拷貝的聚合、分發(fā)和預(yù)取,實現(xiàn)高帶寬、低延遲存儲互連通信與數(shù)據(jù)傳輸,減少I/O訪問延遲,增強存儲系統(tǒng)的橫向擴展能力。BSP存儲池硬件邏輯結(jié)構(gòu)如圖2所示,主要由RDMA網(wǎng)絡(luò)接口部件(RNIC)、存儲緩存Buffer、NVMeoF硬件加速引擎、CPU、內(nèi)存、PCIe網(wǎng)絡(luò)和NVMe SSD構(gòu)成。這種存儲互連融合架構(gòu)支持多個Host(I/O訪問發(fā)起者)和多個NV-BSP存儲池的高效互連互通,在保證低延遲、高帶寬等性能指標(biāo)的前提下,為存儲系統(tǒng)提供良好的擴展性。ION(I/O Node)服務(wù)結(jié)點和計算結(jié)點均可作為Host,通過網(wǎng)絡(luò)接口部件RNIC發(fā)送NVMe訪問請求,互連網(wǎng)絡(luò)基于訪問目的地址路由到相應(yīng)NV-BSP的RNIC上,NVMeoF引擎解析接收到的訪問請求,并轉(zhuǎn)換成NVMe設(shè)備訪問命令,NVMe設(shè)備基于PCIe交換網(wǎng)絡(luò)獲取訪問命令,完成后續(xù)的數(shù)據(jù)訪問操作,最后由RNIC將完成應(yīng)答返回給Host。

Figure 2 Hardware architecture of NV-BSP圖2 NV-BSP存儲池硬件邏輯結(jié)構(gòu)
存儲池管理軟件總體架構(gòu)如圖3所示,主要包括I/O處理模塊和存儲資源管理模塊2大部分,實現(xiàn)對NVMe SSD設(shè)備的一體化存儲管理和監(jiān)控。I/O處理模塊包括數(shù)據(jù)讀寫請求處理、控制命令處理、數(shù)據(jù)重建處理、錯誤處理等功能,存儲資源管理模塊主要包括存儲池管理、資源分配、數(shù)據(jù)保護策略、虛擬盤管理等功能。在提出的基于數(shù)據(jù)保護域的虛擬化存儲池資源管理架構(gòu)中,每個SSD被切分為多個稱為Chunk的物理塊,所有的SSD物理資源被池化成一個Storage Pool,池化的物理資源通過Allocator分配給Container存儲容器。每個Container由多個Chunk構(gòu)成,是一個基本的數(shù)據(jù)保護單元,可按需動態(tài)配置不同的數(shù)據(jù)保護級別。多個Container組成虛擬盤VDisk(Virtual Disk)。這種虛擬化存儲池架構(gòu)將物理資源與數(shù)據(jù)保護進行了徹底的分離,數(shù)據(jù)保護不再依賴于物理盤,實現(xiàn)了高效靈活的資源管理和快速數(shù)據(jù)重構(gòu)。通過帶權(quán)重的分配算法、基于圖的讀寫處理模型、無鎖I/O并發(fā)處理等關(guān)鍵技術(shù),支持存儲數(shù)據(jù)根據(jù)NVM存儲介質(zhì)壽命、應(yīng)用I/O模式、數(shù)據(jù)可靠性合理分布,達到I/O負載均衡、性能高可擴展的目的。

Figure 3 Software architecture of NV-BSP圖3 NV-BSP存儲池管理軟件框架
NV-BSP存儲池軟件架構(gòu)包含物理資源管理域、數(shù)據(jù)保護域和邏輯卷管理3個層次,通過塊設(shè)備接口對外提供存儲服務(wù)。針對傳統(tǒng)管理技術(shù)存在RAID擴容、整盤數(shù)據(jù)重構(gòu)、全局磨損均衡難以實現(xiàn)等幾個方面的問題,本文提出針對閃存的底層虛擬化技術(shù)、帶權(quán)重的分配算法,支持根據(jù)存儲介質(zhì)壽命、應(yīng)用I/O模式、數(shù)據(jù)可靠性合理布局數(shù)據(jù),達到I/O負載均衡、數(shù)據(jù)快速重建的目的;設(shè)計針對NVMe協(xié)議的無鎖生產(chǎn)者-消費者算法、多I/O隊列的無鎖流控算法、基于圖的讀寫處理模型,達到提高存儲池I/O帶寬和吞吐率,縮短I/O延遲的目的。
大數(shù)據(jù)應(yīng)用程序?qū)θ止蚕聿⑿形募到y(tǒng)引入的大量I/O請求可能會對HPC應(yīng)用程序的性能產(chǎn)生不利影響,為了在保證HPC應(yīng)用程序QoS的同時加速大數(shù)據(jù)應(yīng)用程序的性能,本文采用一種預(yù)取策略,在計算結(jié)點仍在處理上一個迭代的大數(shù)據(jù)輸入的同時,獲取下一個迭代的大數(shù)據(jù)輸入,允許將大數(shù)據(jù)輸入到計算子域共享的NV-BSP存儲池,通過NVMeoF網(wǎng)絡(luò)存儲技術(shù)映射給計算結(jié)點,實現(xiàn)虛擬本地盤I/O模式,縮短從全局共享并行文件系統(tǒng)讀取大數(shù)據(jù)的遠程I/O延遲。但是,在HPC和大數(shù)據(jù)應(yīng)用程序混合運行環(huán)境下,會在全局共享并行文件系統(tǒng)級別帶來I/O干擾問題。
為了分析大數(shù)據(jù)應(yīng)用程序的I/O操作對并發(fā)HPC應(yīng)用程序I/O性能的影響,針對典型應(yīng)用程序建立性能分析模型,以便指導(dǎo)子域共享加速層和大容量全局共享存儲層間的存儲層次管理和I/O流控策略,在保證HPC應(yīng)用程序QoS約束的同時優(yōu)化大數(shù)據(jù)應(yīng)用的性能。

(1)

Ihpc(nBB,nthread)=
TI(nthread)×NI(nBB)×Ihpc(1,1)
(2)
其中,Ihpc(1,1) 是通過使用單個突發(fā)緩沖結(jié)點和單個線程來離線計算獲得的干擾因子。
同理為大數(shù)據(jù)應(yīng)用程序建立性能分析模型,給定執(zhí)行預(yù)取的NV-BSP結(jié)點數(shù)(nBB)和每個結(jié)點的預(yù)取線程數(shù)(nthread)估算預(yù)取時間。類似于式(1),預(yù)取時間還受到與HPC應(yīng)用競爭的持續(xù)時間和干擾因素的影響。當(dāng)單獨運行大數(shù)據(jù)應(yīng)用程序時,對預(yù)取時間Tpref建立如下分析模型:
Tpref(nBB,nthread)=
NS(nBB)×TS(nthread)×Tpref(1,1)
(3)
其中,NS(nBB) 和TS(nthread)分別代表結(jié)點數(shù)和每個結(jié)點的線程數(shù)的可擴展性。與上述同理推算,例如NS(2)=t2/t1,t1和t2分別是采用1 個和 2個NV-BSP突發(fā)緩沖結(jié)點執(zhí)行預(yù)取時的預(yù)取時間。同樣,通過使用單個突發(fā)緩沖區(qū)結(jié)點和單個線程來分析獲得Tpref(1,1) 預(yù)取時間。當(dāng)與HPC應(yīng)用程序混合運行時,對大數(shù)據(jù)應(yīng)用程序的預(yù)取時間Tpref建立如下分析模型:
(4)
Ibigdata是大數(shù)據(jù)應(yīng)用程序的干擾因子,定義為與HPC應(yīng)用程序混合運行和不混合運行時的預(yù)取時間之比,采用類似于式(2)的離線分析方法計算Ibigdata(nBB,nthread)。
大數(shù)據(jù)應(yīng)用程序的預(yù)取開銷定義為不能與計算階段重疊的預(yù)取時間:

(5)


(6)
(7)
對混合應(yīng)用程序進行QoS控制時,可根據(jù)式(6)和式(7)選擇大數(shù)據(jù)預(yù)取延遲時間td,在滿足HPC應(yīng)用I/O時間期限約束的同時,盡可能降低預(yù)取開銷,使Cpref值為0,重疊大數(shù)據(jù)應(yīng)用程序的I/O和計算階段,隱藏讀取大數(shù)據(jù)的I/O延遲,最大程度地減少HPC與大數(shù)據(jù)應(yīng)用程序之間的I/O干擾導(dǎo)致的性能下降。
本文基于小規(guī)模驗證系統(tǒng)對NV-BSP存儲池原型系統(tǒng)的I/O性能進行了評測。NV-BSP存儲池原型系統(tǒng)配置2個Intel Xeon Gold 6128 CPU,192 GB DDR4內(nèi)存,配置8塊NVMe U.2接口的SSD硬盤,單盤容量1.8 TB,單盤讀寫帶寬可分別達到2.8 GB/s和1.4 GB/s。操作系統(tǒng)為CentOS Linux 7.7,內(nèi)核版本為4.19.46。采用FIO測試工具進行性能評估,實驗中FIO生成的所有工作負載均使用Linux異步I/O(libaio)模式,并采用直接I/O模式(不進Cache)。
為了評估單個NV-BSP存儲池的縱向擴展能力,本文測試分析了配備的NVMe SSD盤數(shù)量對NV-BSP存儲池性能的影響,測試了配備3~8個NVMe SSD的存儲池中VDisk的I/O吞吐率IOPS。實驗中,將FIO工作負載配置為4 KB粒度的讀密集型(寫30%、讀70%)和寫密集型(70%寫、30%讀)I/O模式,8個線程,每個線程隊列深度為64。圖4顯示了具有不同NVMe SSD數(shù)量的NV-BSP中VDisk的IOPS測試結(jié)果。隨著NV-BSP中配備的NVMe SSD盤數(shù)量越來越多,VDisk的I/O吞吐率IOPS增長趨勢明顯。具體來說,對于讀密集型工作負載,當(dāng)SSD的數(shù)量從3增加到6時,IOPS提高86.94%,而當(dāng)SSD數(shù)量從4增加到8時,IOPS則提高97.82%。對于寫密集型工作負載,SSD數(shù)量從3增加到6時,IOPS提高了87.04%,SSD數(shù)量從4增加到8時,IOPS提高了97.98%。

Figure 4 The influence of the number of SSDs configured by NV-BSP on IOPS圖4 NV-BSP所配SSD數(shù)量對IOPS的影響
為了評估NV-BSP存儲池中無鎖并發(fā)I/O處理技術(shù)的效果,針對配備8個NVMe SSD的NV-BSP進行性能測試,配置不同數(shù)量的I/O處理線程對VDisk的讀寫請求進行并發(fā)處理,測試了塊大小為4 KB的隨機讀寫IOPS,以及塊大小為128 KB的順序讀寫帶寬,測試結(jié)果分別如圖5和圖6所示。圖5呈現(xiàn)了VDisk的隨機讀寫性能隨I/O處理線程數(shù)量遞增呈線性增長,直到I/O處理線程數(shù)量增加到16,此時VDisk的4 KB隨機性能達到了最大值。圖6呈現(xiàn)了配備不同的并發(fā)I/O處理線程數(shù)量條件下VDisk的順序讀寫帶寬。與隨機讀寫性能測試結(jié)果相似,NV-BSP在I/O處理線程數(shù)量遞增情況下顯示出良好的加速比,尤其是對于順序讀性能測試,VDisk的讀帶寬線性增長趨勢明顯,最大達到20 GB/s以上,表明NV-BSP具有良好的性能可擴展性。

Figure 5 The influence of the number of NV-BSP concurrent I/O handlers on IOPS圖5 NV-BSP并發(fā)I/O處理線程數(shù)量對IOPS的影響

Figure 6 The influence of the concurrent number of NV-BSP concurrent I/O handlers on bandwidth 圖6 NV-BSP并發(fā)I/O處理線程數(shù)對I/O帶寬的影響
為了評估NVMeof-GLEX網(wǎng)絡(luò)存儲延遲,針對配備了8個NVMe SSD的NV-BSP進行本地延遲和遠程延遲對比測試,測試了塊大小為4 KB的隨機讀寫延遲,對比測試結(jié)果如圖7所示。實驗中,將FIO工作負載配置為4 KB粒度的讀密集型(寫30%、讀70%),本地延遲和基于NVMeof-GLEX網(wǎng)絡(luò)的遠程延遲分別為124.31 μs和183.56 μs;寫密集型(70%寫、30%讀)I/O模式下,本地延遲和基于NVMeof-GLEX網(wǎng)絡(luò)的遠程延遲分別為191.53 μs和245.56 μs。相比本地I/O訪問,基于NVMeof-GLEX網(wǎng)絡(luò)的遠程存儲平均讀、寫延遲僅增加了59.25 μs和54.03 μs。

Figure 7 I/O latency comparison between local and NVMeoF圖7 遠程I/O延遲與本地延遲的對比測試
本文將NV-BSP與Linux中內(nèi)置的MD-RAID進行了性能對比測試。對由NV-BSP和MD-RAID創(chuàng)建的2個不同的VDisk進行性能評測,圖8和圖9分別展示了不同粒度I/O請求的平均I/O延遲和I/O帶寬對比測試結(jié)果。如圖8所示,來自NV-BSP的VDisk平均I/O延遲遠低于MD-RAID的,隨著I/O請求大小從4 KB增加到128 KB,NV-BSP的平均I/O延遲明顯低于MD-RAID的平均I/O延遲。同樣如圖9所示,來自NV-BSP的VDisk的I/O帶寬遠高于MD-RAID的帶寬。隨著I/O請求大小從4 KB增加到128 KB,NV-BSP的帶寬比MD-RAID的帶寬高1.64~11.06倍。測試結(jié)果表明,與MD-RAID相比,NV-BSP的I/O延遲和帶寬都具有明顯優(yōu)勢。

Figure 8 I/O latency comparison between NV-BSP and MD-RAID圖8 NV-BSP與MD-RAID的I/O延遲對比測試

Figure 9 I/O bandwidth comparison between NV-BSP and MD-RAID圖9 NV-BSP與MD-RAID的I/O帶寬對比測試
本文提出了一種基于非易失存儲介質(zhì)NVM的分域共享并發(fā)存儲架構(gòu),設(shè)計了一種支持NVMeoF網(wǎng)絡(luò)存儲的Burst I/O緩沖存儲池NV-BSP,實現(xiàn)了虛擬化存儲池資源管理、基于天河高速互連網(wǎng)的NVMeoF網(wǎng)絡(luò)存儲通信等關(guān)鍵技術(shù),具有橫向和縱向擴展能力,可有效支持面向特定計算任務(wù)的Burst I/O加速和低延遲遠程存儲訪問。基于HPC和大數(shù)據(jù)應(yīng)用程序混合運行性能分析模型,提出了一種混合應(yīng)用程序QoS控制策略。小規(guī)模驗證系統(tǒng)上的性能測評結(jié)果表明:NV-BSP存儲池的讀寫性能可隨并發(fā)I/O處理線程量良好擴展;與Linux 操作系統(tǒng)自帶的MD-RAID相比,NV-BSP大幅降低了平均I/O延遲,I/O帶寬比MD-RAID高1.64~11.06倍,具有明顯的性能優(yōu)勢;相比本地I/O訪問,基于NVMeof-GLEX網(wǎng)絡(luò)的遠程存儲延遲僅增加了59.25 μs和54.03 μs。NV-BSP存儲池支持HPC高速互連網(wǎng)絡(luò)接口,可以方便地部署到超級計算機系統(tǒng)中,通過NVMeoF網(wǎng)絡(luò)技術(shù)實現(xiàn)計算子域與NV-BSP存儲池的互連,加快計算子域與存儲池的RDMA數(shù)據(jù)交換。通過計算與存儲分離,NV-BSP 在提供堪比本地存儲池性能的同時,提高了系統(tǒng)存儲資源動態(tài)調(diào)配的靈活性和系統(tǒng)可靠性。未來將進一步優(yōu)化實現(xiàn)多個NV-BSP存儲池的動態(tài)分配機制,高效支持計算子域內(nèi)共享存儲和高并發(fā)I/O。進一步研究HPC和大數(shù)據(jù)應(yīng)用混合運行環(huán)境下的Qos控制策略,為CheckPoint、純數(shù)據(jù)流、混合負載、帶寬敏感型或延遲敏感型等各類I/O應(yīng)用提供有效的QoS服務(wù)保障。