250-SoC PCIe卡

白皮書

使用 BittWare FPGA 解決方案在結構上構建 NVMe

概述

自從引入非易失性記憶體快遞(或NVMe)協議以來,數據中心客戶已經廣泛採用了這種新技術,它為存儲應用程序帶來了更高的性能和低延遲(Gupta,2018)。NVMe的功能集使該技術成為市場上增長最快的存儲解決方案。國際數據公司預測,到2021年,基於NVMe的存儲解決方案將產生與主要外部存儲出貨量相關的收入的50%以上(Burgener,2019)。

BittWare提供FPGA加速解決方案,以實現基本的硬體卸載(壓縮,重複數據刪除等)以及特定於應用程式的演算法,例如使用FPGA進行推理的機器學習應用程式。這種與 NVMe 相匹配的性能級別的基本和高級存儲加速的組合就是我們所說的計算存儲。我們的 250 系列產品,包括 250S+、250-SoC 和 250-U2,專注於這一市場。

最近,NVMe聯盟推出了一種名為NVMe over Fabrics(NVMe-oF)的協定變體,以利用NVMe相對於現有網路基礎設施的優勢。隨著數據中心繼續看到本地NVMe存儲的擴展,遠端使用者可以使用NVMe-oF以很少的開銷訪問分解存儲(Gibb,2018)。這需要在硬體中實現專門的網路堆疊,以保持低延遲和高頻寬的 NVMe 優勢。

我們的解決方案使用帶有片上ARM處理器的FPGA,即250-SoC板上的賽靈思 Zynq MPSoC。FPGA 充當 NVMe-oF 控制器,在使用片上處理器時,可與 CPU 卸載,甚至與 CPU 解耦。我們通過在 FGPA 邏輯(包括網路協定棧)中全面實現 NVMe 數據平面來提供低延遲和高頻寬。ARM內核在設計中用於使用延遲和頻寬問題較少的軟體來處理控制平面。本應用筆記描述了如何將BittWare 250-SoC配置為JBOF中的NVMe-oF控制器。

什麼是結構上的 NVMe

NVMe-oF協定使用高速SSD技術,並將其擴展到本地伺服器或數據中心之外。

NVMe-oF 允許應用程式開發人員訪問網路結構上的遠端存儲節點,例如光纖通道、InfiniBand、通過融合乙太網 (RoCE) 的 RDMA(遠端直接記憶體訪問)、iWARP 和最近的 TCP/IP,同時保持低延遲(對於包含 100 個 NVMe 驅動器的集群,通常在 10us 之間,對於大型集群,通常在 100 微秒之間)。簡而言之,NVMe-oF 事務涉及主機和目標;目標是伺服器通過網路公開NVMe塊存儲設備,供主機伺服器訪問(Davis,2018)。使用 RDMA,主機-目標數據傳輸可以在沒有 CPU 處理事務的情況下發生;相反,專用 RNIC 在資源之間傳遞數據,對計算資源的影響很小,因為 NIC 中的硬體部分管理網路堆疊的傳輸層。

NVMe 主機軟體流程
NVMe 傳輸框圖

為什麼將FPGA用於NVMe-oF?

當您決定將NVMe-OF卸載到PCIe卡中時,您基本上有三種選擇:

首先,您可以使用 ASIC 實現,這將是成本最低、延遲最低的選擇。但是,ASIC不允許您卸載「計算存儲」演算法。ASIC通常也僅適用於最流行的網路頻寬,這些頻寬很少是最高頻寬。

其次,您可以使用具有高內核數的片上系統,這將允許您添加「計算存儲」 演算法。但是,這樣做需要並行程式設計技能。最終的解決方案通常是此處選擇的最高延遲,這直接違背了NVMe的低延遲價值主張。與ASIC一樣,這些MPP SOC通常僅適用於最流行的網路頻寬,而這些頻寬很少是最高頻寬。

第三,您可以使用FPGA。此選項允許您添加「計算存儲」演算法,同時保持類似 ASIC 的延遲。此選項還支援高頻寬網路,例如100甚至400Gb。儘管它可能是三種選擇中最昂貴的一種,但當您考慮存儲市場所涉及的數量時,成本差異只會略高。

自適應存儲

通過利用 FPGA 和 SoC 等技術,數據中心架構師可以進一步減少數據在數據密集型操作中進出 CPU 的數據移動。通過硬體驅動的加速,使用者應用程式顯示出更高的性能和更短的回應時間。隨著可用 CPU 週期數的增加,分配工作負載的進程會更有效地利用使用專用硬體和 CPU 的混合系統體系結構。FPGA 結構架構、其 IO 輸送量和程式設計靈活性有助於設計與高頻寬 NVMe 儲存緊密耦合的可重新配置硬體。例如,FPGA 特別適用於壓縮、加密、RAID 和糾刪碼、重複數據刪除、鍵值卸載、資料庫查詢卸載、視頻處理或 NVMe 虛擬化。FPGA 硬體提供專用解決方案的性能,但也具有可重新配置的優勢,可快速切換目的,因為數據中心的需求會隨著時間的推移而變化。

將 Xilinx MPSoC 用於 NVMe-oF 目標

BittWare 250-SoC 採用 Xilinx UltraScale+ Zynq ZU19EG MPSoC,可通過兩個 QSFP28 埠連接到網路結構,並通過 16 通道主機介面或四個 8 通道 OCuLink 連接器連接到 PCIe 結構。這款 MPSoC 適配器是驅動 NVMe-oF 目標節點的完美平臺,因為它結合了 FPGA 結構(也稱為 PL 或可程式設計邏輯)、網路 IO、PCIe 連接和板載 ARM 處理器中的數據流計算。請注意,ARM 不在數據平面中;它處理控制平面工作。在 CPU 和儲存端點之間放置專用硬體加速器可創建一個經過優化的系統,使其計算更接近數據。

2 個 250-SoC 卡,帶 PCIe 交換機和 NVMe SSD

硬體

為了演示NVMe-oF,BittWare將250-SoC放置在裝有多個NVMe U.2驅動器的JBOF(Just-A-Bunch-of-Flash)機箱中,並將250-SoC板的QSFP28埠暴露給網路。Celestica Euclid JBOF具有兩個插入式刀片,帶有PCIe開關和一個PCIe插槽;每個抽屜都充當網路結構和NVMe儲存之間的管道。NVMe 數據包從 QSFP28 連接埠傳輸到 FPGA 結構,然後通過 PCIe 主機介面(JBOF 的 PCIe 交換機),最後到達 NVMe 驅動器。在此實現中,未使用 250-SoC OCuLink 連接器,但在不同的硬體平臺中,它們可以容納此設計的有線版本,其中 PCIe 事務將通過電纜運行。

Celestia Euclid JBOF 插圖

門器皿

該設計實現了 RoCE v2 的 NVMe-oF 目標(符合 NVMe 1.2 和 NVMe-oF 1.0 規範),該目標支援顯式擁塞管理。面向 MPSoC 的 IP 使用多個 Xilinx IP 庫模組,所有這些模組都通過數據平面的 512 位 AXI 總線互連,該總線以 200MHz 運行。Xilinx 嵌入式 RDMA NIC 處理 100Gb/s 網路流量,而 PCIe 根複合 IP 內核管理與 16 通道 PCIe 3.0 介面與 JBOF 電路的連接,可驅動多達 24 個驅動器,DMA 內核控制通過 AXI 總線的高速數據傳輸。此外,NVMe-oF 目標內核在 100Gb/s 的數據路徑上管理多達 256 個佇列,而四核 A53 ARM 處理器上運行的固件則處理存儲節點的高級管理。

NVMe over fabric 框圖

最大化性能

MPSoC PL 可以容納數據路徑的最大頻寬。因此,為了展示整個系統的最大功能,主機必須生成盡可能接近 100Gb/s 的網路流量。為了進行基準測試,幾個 NVMe-oF 主機連接到網路交換機,然後該交換機可以將最大數據輸送量饋送到在 JBOF 中運行 NVMe-oF 目標的 250-SoC MPSoC 卡。該參考設計顯示了大約 2.5 MIOPS 的隨機讀取性能和超過 1.1M 的隨機寫入性能,同時顯示了 105 us 的應用延遲。

可重新配置硬體解決方案的優勢

與軟體(CPU + 外部網卡 + SPDK)或 RNIC 解決方案(CPU + 集成網卡)相比,基於 MPSoC 的 NVMe-oF 解決方案具有多個優勢。如果與其他產品相比,基於 MPSoC 的解決方案具有相對較高的成本和功耗,則從頻寬、可配置性和延遲的角度來看,此類技術優於競爭對手。類似地,對於 RNIC 解決方案,MPSoC NVMe-oF 將使網路介面輸送量飽和。但是,MPSoC 硬體實現提供了其他解決方案所不具備的靈活性和適應性級別。因此,這種自適應硬體可以針對特定於域的應用程式,允許系統架構師將客戶定義的功能(RAID,或隨著規範發展而推出的新 NVMe 功能)與主要 IP 相結合,並增強整體系統功能集。另一種選擇是添加自定義加速器,例如,將兩個函數組合在一個框中。最後,解決方案供應商可以創建針對特定目的(如視頻處理(例如視頻編解碼器)或人工智慧工作負載)優化的特定應用程式硬體產品。通過將存儲管理等 IT 功能與通常由昂貴的計算節點執行的任務相結合,CPU 無需執行高頻寬 IO 傳輸,並重新用於更多計算關鍵操作。從延遲的角度來看,基於 MPSoC 的解決方案比 CPU 驅動的替代方案提供了低且可預測的延遲。

Euclid JBOF解決方案圖示

結論

隨著NVMe在過去幾年中的成熟,它為NVMe-oF鋪平了道路,NVMe-oF現在為分解存儲環境提供了與NVMe類似的好處(Weaver,2019)。該技術提高了計算和存儲節點的利用率,同時提高了數據中心的敏捷性和性能(Waever,2019)。NVMe-oF允許開發人員以新穎的方式定位應用程式,例如,需要對大量數據集(幾個100s PB)進行隨機讀取的AI工作負載將從這項技術中受益匪淺(Hemsoth,2019)。FPGA 和 MPSoC 在 NVMe-oF 協定之上提供了額外的創新層;這些元件中的可程式設計邏輯允許設計系統架構,該架構可以處理高頻寬數據傳輸、低延遲,同時還可配置為優化或特定於應用的定製。BittWare提供了一系列NVMe加速選項,包括NVMe-oF,請與我們聯繫以瞭解更多資訊。

引用