【DPU、SPU提供嶄新儲存加速應用】DPU與SPU不僅具備可程式化硬體加速能力,還兼具網路卡、HBA卡與儲存控制器等角色。左為Fungible以DPU打造而成的FS1600儲存伺服器,右為Nebulon的SPU卡。(圖片來源/Fungible、Nebulon)

儲存裝置端的輔助運算架構,基本概念就是在SSD或Flash儲存裝置上嵌入運算晶片,從而提供額外的運算能力,可用於執行不同的運算作業,從而為主機處理器卸載運算負擔。

依照儲存模組的型式,儲存裝置端的輔助運算產品,可以分為專屬規格與通用規格兩大類。

專屬規格的儲存端硬體加速單元

Hitachi Vantara VSP系列儲存陣列的專屬FMD(Flash Module Drives)快閃儲存模組,是專屬規格儲存裝置端硬體加速架構的典型代表。

目前FMD模組已發展到第3代的FMD HD模組,含有1顆ASIC晶片(內含1顆32位元4核心處理器),2顆負責壓縮功能的協同處理器、8GB DDR3 DRAM記憶體,以及64或128顆128GB NAND MLC晶片,每張模組可提供14TB最大容量,還能提供垃圾回收、寫入均衡,卸載即時壓縮作業、加密與優先負載存取等一系列功能,可幫助VSP控制器減輕負擔。

不過由於FMD是一種專屬規格裝置,採用特殊的3.5吋規格,也只能搭配Hitachi Vantara VSP系列儲存陣列使用。

通用規格的儲存端硬體加速單元

近2、3年來,也有另一些廠商,發展了基於標準SSD的硬體加速架構,最具代表性的,便是三星與Xilinx合作的SmartSSD,以及NGD Systems的運算型儲存裝置(Computational Storage Device)。

SmartSSD是SSD一線大廠三星,與FPGA晶片龍頭廠商Xilinx合作的產品,基本概念就是一種內嵌了Xilinx FPGA加速晶片的2.5吋NVMe SSD。和一般的SSD一樣,含有4TB容量的三星V-NAND快閃記憶體、標準的SSD控制器,並透過標準的U.2介面來連接主機。SmartSSD的特別之處,在於內嵌了Xilinx的Kintex Ultrascale+ KU15P FPGA晶片,以及額外的內部記憶體,可用於各式各樣的運算工作,用戶端可以透過Xilinx的軟體開發平臺,來讓自身的平臺取用SmartSSD的硬體加速功能。

類似的,NGD Systems的運算型儲存裝置,也是在標準的2.5吋SSD與PCIe SSD卡上,嵌入由Arm處理器、Xilinx FPGA晶片與額外記憶體構成的運算單元,用戶端可透過NGD Systems的API與程式庫,讓自身平臺使用運算型儲存裝置的硬體加速功能。

三星的SmartSSD

SmartSSD是一種「智慧型」SSD,和一般SSD同樣搭載了NAND快閃記憶體與SSD控制器,還內嵌了Xilinx FPGA晶片與額外記憶體,可用於執行各式各樣的運算工作。(圖片來源/Samsung)

硬體加速模組新勢力—SmartNIC

前面介紹的硬體加速模組,都是專屬類型,也就是專門搭配特定特定廠商的儲存平臺運作。不過這2年來,市場上興起了一類通用類型的硬體加速卡——SmartNIC,可以透過API或專屬軟體套件的中介,讓各式各樣的應用平臺,使用SmartNIC的硬體加速功能。

顧名思義,SmartNIC是由網路卡(NIC)延伸發展而來,是一種「智慧型」(Smart)的網路卡。一般網路卡是基於ASIC晶片,只支援特定處理工作,如乙太網路的傳輸與控制。而SmartNIC則能載入執行額外的多樣化軟體功能。也就是說,網路卡像以前的老式功能手機,只能執行固定的電話通信功能;SmartNIC則像智慧型手機,可透過安裝App軟體執行各式各樣不同的功能。

相較於基於ASIC的一般網路卡,SmartNIC則是基於可程式化的運算晶片,例如多顆Arm處理器構成的叢集、客製化的網路處理器,或是FPGA晶片等,通常還會搭配用於系統控制的Arm處理器與記憶體,有些還嵌入了修改的Linux核心。用戶端系統必須透過SmartNIC的API或程式開發套件,來存取SmartNIC的處理功能。

目前SmartNIC的主要供應商包括Intel、Xilinx、Broadcom,以及Nvidia-Mellanox等大廠,以及Pensando、Fungible等新創廠商。

雖然架構有所差異,不過各廠商的SmartNIC基本精神都是一致的,就是利用SmartNIC提供的運算硬體,視用戶端需要執行不同的軟體功能,從而為主機處理器卸載運算負擔,所以Intel又將這類產品稱為「可程式化加速卡」。

SmartNIC是第3方廠商提供的通用硬體加速裝置,用戶端可透過API或專屬軟體的中介,來使用SmartNIC上的運算硬體資源。照片為當前常見的幾種SmartNIC產品,分別為Intel N3000(左上),Xilinx Alveo U25(右上),以及Mellanox的BlueField(中下)。(圖片來源/Intel、Xilinx、Mellanox)

從SmartNIC到DPU與SPU

理論上,儲存廠商也能透過導入SmartNIC,讓儲存產品獲得硬體加速功能。 事實上,一些SmartNIC相關新創廠商便是以儲存應用為目的,如Fungible、Nebulon、SoftIron與Pliops等,這些廠商往往將自身的加速硬體稱為資料處理器(DPU)或儲存處理器(SPU),強調儲存方面的應用。

DPU、SPU與SmartNIC相比,其中SmartNIC算是網路卡的延伸,是額外嵌入運算晶片的智慧型網路卡,但SmartNIC本身只提供了運算晶片與前端I/O介面,還需要另外結合其他控制器與後端I/O介面,才能構成完整的儲存系統;DPU與SPU則是在SmartNIC的基礎上,再結合RAID卡與HBA卡的功能而成,和SmartNIC一樣內嵌運算晶片,另外還具備連結與控制後端磁碟裝置的能力。理論上,廠商可以直接以DPU與SPU為核心,打造出完整的儲存設備。

例如,Nebulon的儲存處理器(SPU)介面卡,就搭載了雙Arm處理器、卸載引擎,用於資料傳輸與系統管理的10/25GbE網路卡,以及用於連接伺服器內接SSD的SAS與NVMe埠。Nebulon的SPU介面卡與標準伺服器結合後,就能將這臺伺服器化身為高效能儲存陣列,由SPU卡來扮演傳統儲存陣列的RAID卡與HBA卡角色,並透過卸載引擎的幫助,提供高效能的存取服務。

類似的,SoftIron也是以Arm處理器結合FPGA加速晶片的運算硬體核心,打造出基於Ceph軟體平臺的HyperDrive儲存系統。另一家新創廠商Pliops的SPU。也是以提供儲存加速為目的。

而Fungible則在不久前的2020年底,正式推出第一款基於DPU的完整儲存陣列產品FS1600。FS1600採用2U機箱,含有24臺NVMe SSD,核心是2張Fungible的DPU加速卡,每張DPU卡含有Fungible的F1 DPU與6組100Gb乙太網路埠,用於提供運算與I/O處理功能。

憑藉全面支援NVMe架構與DPU加速能力,FS1600的單一2U機箱即可提供驚人的1500萬IOPS的效能,而且延遲只有110μs,相較下,多數2U/24Bay組態的儲存陣列,大多只有200萬、300萬IOPS效能,顯示出DPU、SPU這種硬體加速架構的效能潛力。

熱門新聞

Advertisement