BittWare提供FPGA加速解決方案,以實(shí)現(xiàn)基本的硬件卸載(壓縮、去重復(fù)化等),加上特定應(yīng)用的算法,如使用FPGA進(jìn)行推理的機(jī)器學(xué)習(xí)應(yīng)用。這種以與NVMe相匹配的性能水平對(duì)存儲(chǔ)進(jìn)行基本和高級(jí)加速的組合就是我們所說(shuō)的計(jì)算存儲(chǔ)。我們的250系列產(chǎn)品,包括250S+、250-SoC和250-U2,都專注于這個(gè)市場(chǎng)。
NVMe聯(lián)盟推出了一個(gè)名為NVMe over Fabrics(NVMe-oF)的協(xié)議變體,以利用NVMe在現(xiàn)有網(wǎng)絡(luò)基礎(chǔ)設(shè)施上的優(yōu)勢(shì)。隨著數(shù)據(jù)中心不斷擴(kuò)大內(nèi)部NVMe存儲(chǔ),遠(yuǎn)程用戶可以使用NVMe-oF以很少的開銷訪問(wèn)分類存儲(chǔ)(Gibb,2018)。這需要在硬件中實(shí)現(xiàn)專門的網(wǎng)絡(luò)堆棧,以保持NVMe的低延遲和高帶寬優(yōu)勢(shì)。
我們的解決方案在250-SoC板上使用了FPGA與片上ARM處理器Xilinx Zynq MPSoC。FPGA作為NVMe-oF控制器,在使用片上處理器時(shí),從CPU中卸載,甚至與CPU解耦。我們通過(guò)在FGPA邏輯中完全實(shí)現(xiàn)NVMe數(shù)據(jù)平面,包括網(wǎng)絡(luò)協(xié)議棧,提供低延遲和高帶寬。ARM內(nèi)核在設(shè)計(jì)中是為了使用軟件來(lái)處理控制平面,其中延遲和帶寬問(wèn)題較少。本應(yīng)用說(shuō)明介紹了如何將BittWare 250-SoC配置為JBOF中的NVMe-oF控制器。
什么是NVMe over Fabrics?
NVMe-oF協(xié)議使用高速SSD技術(shù),并將其擴(kuò)展到本地服務(wù)器或數(shù)據(jù)中心之外。
NVMe-oF允許應(yīng)用開發(fā)者訪問(wèn)網(wǎng)絡(luò)結(jié)構(gòu)上的遠(yuǎn)程存儲(chǔ)節(jié)點(diǎn),如光纖通道、InfiniBand、通過(guò)聚合以太網(wǎng)(RoCE)的RDMA(遠(yuǎn)程直接內(nèi)存訪問(wèn))、iWARP和最近的TCP/IP,同時(shí)保持較低的延遲(通常對(duì)于一個(gè)由100個(gè)NVMe驅(qū)動(dòng)器組成的集群來(lái)說(shuō),延遲在10us之間,對(duì)于大型集群來(lái)說(shuō),延遲在100微秒之間)。簡(jiǎn)而言之,一個(gè)NVMe-oF事務(wù)涉及一個(gè)主機(jī)和一個(gè)目標(biāo);目標(biāo)是服務(wù)器在網(wǎng)絡(luò)上暴露NVMe塊存儲(chǔ)設(shè)備,供主機(jī)服務(wù)器訪問(wèn)(Davis,2018)。使用RDMA,主機(jī)-目標(biāo)數(shù)據(jù)傳輸可以在沒(méi)有CPU處理事務(wù)的情況下進(jìn)行,相反,專用的RNIC在資源之間傳遞數(shù)據(jù),對(duì)計(jì)算資源的影響很小,因?yàn)镹IC中的部分硬件管理網(wǎng)絡(luò)堆棧的傳輸層。
為什么NVMe-oF要用FPGA?
當(dāng)你決定將NVMe-OF卸載到PCIe卡上時(shí),你基本上有三種選擇。
首先,你可以使用ASIC實(shí)現(xiàn),這將是成本最低、延遲最低的選擇。然而ASIC不允許你也卸載“計(jì)算存儲(chǔ)”算法。ASIC一般也只適用于最流行的網(wǎng)絡(luò)帶寬,很少有最高帶寬的。
其次,你可以使用核數(shù)較多的系統(tǒng)級(jí)芯片,這樣就可以增加“計(jì)算存儲(chǔ)”算法。但是,這樣做需要并行編程能力。最終的解決方案一般是這里選擇中延遲最高的,這直接違背了NVMe的低延遲價(jià)值主張。和ASIC一樣,這些MPP SOC一般只適用于最流行的網(wǎng)絡(luò)帶寬,而這些帶寬很少是最高帶寬。
第三,你可以使用FPGA。這種方案可以讓你在保持類似ASIC的延遲的同時(shí),增加“計(jì)算存儲(chǔ)”算法。這種方案還可以實(shí)現(xiàn)100甚至400Gb等高帶寬網(wǎng)絡(luò)。雖然它可能是三個(gè)選項(xiàng)中最昂貴的,但當(dāng)你考慮到存儲(chǔ)市場(chǎng)所涉及的數(shù)量時(shí),成本差異只會(huì)變得略高。
自適應(yīng)存儲(chǔ)
通過(guò)利用FPGA和SoC等技術(shù),數(shù)據(jù)中心架構(gòu)師可以進(jìn)一步減少數(shù)據(jù)密集型操作中數(shù)據(jù)到/從CPU的移動(dòng)。通過(guò)硬件驅(qū)動(dòng)的加速,用戶應(yīng)用表現(xiàn)出更高的性能和更低的響應(yīng)時(shí)間。隨著空閑CPU周期數(shù)的增加,分配工作負(fù)載的進(jìn)程可以更高效地利用專用硬件和CPU的混合系統(tǒng)架構(gòu)。FPGA結(jié)構(gòu)、其IO吞吐量和編程靈活性有利于設(shè)計(jì)與高帶寬NVMe存儲(chǔ)緊密耦合的可重構(gòu)硬件。FPGA特別適用于壓縮、加密、RAID和擦除代碼、數(shù)據(jù)重復(fù)數(shù)據(jù)刪除、鍵值卸載、數(shù)據(jù)庫(kù)查詢卸載、視頻處理或NVMe虛擬化等。FPGA硬件提供了專用解決方案的性能,但也具有可重新配置的優(yōu)勢(shì),可隨著數(shù)據(jù)中心需求的變化而快速切換用途。
使用Xilinx MPSoC實(shí)現(xiàn)NVMe-oF目標(biāo)
BittWare 250-SoC采用Xilinx UltraScale+ Zynq ZU19EG MPSoC,既可以通過(guò)兩個(gè)QSFP28端口連接到網(wǎng)絡(luò)結(jié)構(gòu),也可以通過(guò)一個(gè)16線主機(jī)接口或四個(gè)8線OCuLink連接器連接到PCIe結(jié)構(gòu)。這款MPSoC適配器是驅(qū)動(dòng)NVMe-oF目標(biāo)節(jié)點(diǎn)的完美平臺(tái),因?yàn)樗Y(jié)合了FPGA結(jié)構(gòu)(也稱為PL或可編程邏輯)中的數(shù)據(jù)流計(jì)算、網(wǎng)絡(luò)IO、PCIe連接和板載ARM處理器。請(qǐng)注意,ARM不在數(shù)據(jù)平面,它處理控制平面的工作。在CPU和存儲(chǔ)端點(diǎn)之間放置一個(gè)專用的硬件加速器,可以創(chuàng)建一個(gè)優(yōu)化的系統(tǒng),使計(jì)算更接近數(shù)據(jù)。
硬件
為了演示NVMe-oF,BittWare將250-SoC放置在JBOF(Just-A-Bunch-Of-Flash)機(jī)箱內(nèi),機(jī)箱內(nèi)填充了多個(gè)NVMe U.2驅(qū)動(dòng)器,并將250-SoC板的QSFP28端口暴露在網(wǎng)絡(luò)中。Celestica Euclid JBOF具有兩個(gè)帶PCIe交換機(jī)和PCIe插槽的插入式刀片;每個(gè)抽屜作為網(wǎng)絡(luò)結(jié)構(gòu)和NVMe存儲(chǔ)之間的管道。NVMe數(shù)據(jù)包從QSFP28端口中轉(zhuǎn)到FPGA結(jié)構(gòu),然后經(jīng)過(guò)PCIe主機(jī)接口、JBOF的PCIe交換機(jī),最后到達(dá)NVMe驅(qū)動(dòng)器。在本實(shí)施例中,沒(méi)有使用250-SoC OCuLink連接器,但在不同的硬件平臺(tái)上,它們可以容納本設(shè)計(jì)的有線版本,其中PCIe事務(wù)將通過(guò)電纜運(yùn)行。
Gateware
該設(shè)計(jì)實(shí)現(xiàn)了RoCE v2的NVMe-oF目標(biāo)(符合NVMe 1.2和NVMe-oF 1.0規(guī)范),它支持顯式擁塞管理。針對(duì)MPSoC的IP使用了多個(gè)Xilinx IP庫(kù)塊,所有的數(shù)據(jù)平面都通過(guò)運(yùn)行在200MHz的512位AXI總線互連。Xilinx Embedded RDMA NIC處理100Gb/s的網(wǎng)絡(luò)流量,而PCIe根復(fù)合IP核則管理與16線PCIe 3.0接口的連接,連接到驅(qū)動(dòng)多達(dá)24個(gè)驅(qū)動(dòng)器的JBOF電路,DMA核則控制AXI總線上的高速數(shù)據(jù)傳輸。此外,NVMe-oF目標(biāo)核通過(guò)100Gb/s數(shù)據(jù)路徑管理多達(dá)256個(gè)隊(duì)列,而運(yùn)行在四核A53 ARM處理器上的固件則處理存儲(chǔ)節(jié)點(diǎn)的高層管理。
最大限度地提高性能
MPSoC PL可以容納數(shù)據(jù)路徑的最大帶寬。因此,為了展示整個(gè)系統(tǒng)的最大能力,主機(jī)必須產(chǎn)生盡可能接近100Gb/s的網(wǎng)絡(luò)流量。為了進(jìn)行基準(zhǔn)測(cè)試,幾臺(tái)NVMe-oF主機(jī)連接到網(wǎng)絡(luò)交換機(jī),然后交換機(jī)可以將最大數(shù)據(jù)吞吐量饋送到JBOF中運(yùn)行NVMe-oF目標(biāo)的250-SoC MPSoC卡。這個(gè)參考設(shè)計(jì)顯示出約2.5 MIOPS的隨機(jī)讀取性能和超過(guò)1.1M的隨機(jī)寫入性能,同時(shí)顯示出105 us的應(yīng)用延遲。
可重構(gòu)硬件解決方案的優(yōu)勢(shì)
基于MPSoC的NVMe-oF解決方案與軟件(CPU+外部網(wǎng)卡+SPDK)或RNIC解決方案(CPU+集成網(wǎng)卡)相比,有幾個(gè)優(yōu)勢(shì)。如果說(shuō)基于MPSoC的解決方案與其他產(chǎn)品相比具有相對(duì)較高的成本和功耗,那么從帶寬、可配置性和延遲的角度來(lái)看,這種技術(shù)就會(huì)優(yōu)于競(jìng)爭(zhēng)對(duì)手。同樣,對(duì)于RNIC解決方案來(lái)說(shuō),MPSoC NVMe-oF將使網(wǎng)絡(luò)接口的吞吐量達(dá)到飽和。然而,MPSoC硬件實(shí)現(xiàn)提供了其他解決方案所不具備的靈活性和適應(yīng)性水平。因此,這種自適應(yīng)硬件可以針對(duì)特定領(lǐng)域的應(yīng)用,允許系統(tǒng)架構(gòu)師將客戶定義的功能(RAID或隨著規(guī)格的發(fā)展而出現(xiàn)的新的NVMe功能)與主IP相結(jié)合,并增強(qiáng)整體系統(tǒng)的功能集。另一種選擇是添加自定義加速器,例如加密或壓縮,將兩種功能結(jié)合在一個(gè)盒子里。最后,解決方案提供商可以創(chuàng)建針對(duì)特定用途優(yōu)化的特定應(yīng)用硬件產(chǎn)品,如視頻處理(例如視頻編解碼器)或人工智能工作負(fù)載。通過(guò)將存儲(chǔ)管理等IT功能與通常由昂貴的計(jì)算節(jié)點(diǎn)執(zhí)行的任務(wù)相結(jié)合,CPU可以從執(zhí)行高帶寬IO傳輸中解脫出來(lái),并被重新用于更多的計(jì)算關(guān)鍵操作。從延遲的角度來(lái)看,基于MPSoC的解決方案比CPU驅(qū)動(dòng)的替代方案提供了低和可預(yù)測(cè)的延遲。
結(jié)論
隨著NVMe在過(guò)去幾年的成熟,它為NVMe-oF鋪平了道路,現(xiàn)在NVMe-oF為分列式存儲(chǔ)環(huán)境提供了與NVMe類似的優(yōu)勢(shì)(Weaver,2019)。該技術(shù)提高了計(jì)算和存儲(chǔ)節(jié)點(diǎn)的利用率,同時(shí)提高了數(shù)據(jù)中心的敏捷性和性能(Waever,2019)。NVMe-oF允許開發(fā)人員以新穎的方式瞄準(zhǔn)應(yīng)用,例如,需要在龐大的數(shù)據(jù)集(幾百s PB)上隨機(jī)讀取的AI工作負(fù)載將顯著受益于這項(xiàng)技術(shù)(Hemsoth,2019)。FPGA和MPSoC在NVMe-oF協(xié)議之上提供了額外的創(chuàng)新層;這些器件中的可編程邏輯允許設(shè)計(jì)系統(tǒng)架構(gòu),可以處理高帶寬數(shù)據(jù)傳輸、低延遲,同時(shí)還可以保持可配置的優(yōu)化或特定應(yīng)用的定制。BittWare提供一系列NVMe加速選項(xiàng),包括NVMe-oF--請(qǐng)與我們聯(lián)系,了解更多信息。
審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
19293瀏覽量
229977 -
FPGA
+關(guān)注
關(guān)注
1629文章
21744瀏覽量
603669 -
控制器
+關(guān)注
關(guān)注
112文章
16376瀏覽量
178231
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論