相較于結合了運算單元與網絡卡的「智能網絡卡」,結合了運算單元,以及快閃儲存裝置的「智能型SSD(Intelligent SSD)」,歷史相對短了許多,是這4、5年才成熟的新型加速運算裝置。
智能型SSD的正式稱呼是「運算型儲存(Computational Storage)」,顧名思義,是一種擁有運算能力的儲存裝置,基本概念與智能網絡卡相似,都是透過裝置上內含的嵌入式處理器,幫助卸除服務器CPU的運算負擔,藉此釋放出更多CPU資源給應用程序,進而提高資源利用率與整體效能。
但比起由網絡卡延伸發展的智能網絡卡,基于SSD的智能型SSD,針對的應用型態與廠商生態,也有所差異。
智能型SSD的應用要求,是「就近」處理自身儲存的數據,從而「在儲存裝置上同時完成運算與儲存」,如此一來,便無須耗費CPU周期、經由PCIe總線將數據從后端儲存裝置讀取到內存中進行運算,減少了數據傳輸與移動的需求,達到加快處理速度、減少延遲的目標。
標準化的努力
相對于主要由網絡卡廠商推動的智能網絡卡,智能型SSD理所當然是由儲存廠商主導,不過比起自行其是的智能網絡卡廠商們,在智能型SSD領域,則有標準化組織領導發展共通標準。
為避免生態系分裂為互不兼容的產品,儲存網絡工業協會(SNIA)成立了運算型儲存技術工作小組(Technical Work Group),正在制定標準,并發展一套通用程序編撰模型,最終目標是運算型儲存應用的通用化,讓客戶端的應用程序,能透過標準化的界面,發現與使用連接到服務器主機上的任何運算型儲存設備資源。
SNIA目前將運算型儲存設備,分成3個層級:
●運算型儲存處理器(Computational Storage Processor,CSP):指運算引擎,不包含儲存裝置。
●運算型儲存裝置(Computational Storage Drive,CSD):結合了運算引擎與儲存單元而成。
●運算型儲存數組(Computational Storage Array,CSA):由多組運算引擎與儲存裝置,加上數組控制器組成的設備。
在SNIA框架下,列出了一系列可由運算型儲存設備執行的功能列表,并區分了兩種產品:
●固定用途(Fixed Purpose)運算型儲存:提供定義明確的運算型儲存服務,如壓縮、erasure coding、加密等。
●通用(General Purpose)運算型儲存:提供可程序化的運算型儲存服務,執行客制化的運算功能。
新創廠商引領產品發展
不同于大廠林立的智能網絡卡領域,在智能型SSD的領域,目前除了三星以外,其余供貨商如NGD System、ScaleFlux、Eideticom等,大多數為新創公司。
以產品層級來說,三星、NGD System與ScaleFlux的產品,都屬于運算型儲存裝置(CSD),也就是完整的智能型SSD產品,Eideticom與Pliops的產品則屬于運算型儲存處理器(CSP),只含運算引擎,須另外搭配儲存裝置運作。
在產品應用用途方面,ScaleFlux、Eideticom與Pliops的產品是以固定運算功能為主,如ScaleFlux著重在壓縮,Eideticom能提供壓縮、erasure coding、加密、重復數據刪除與機器學習等功能,Pliops則專門提供數據庫KV值作業加速。至于三星與NGD System,則強調執行客制化程序的多用途能力。
而就最關鍵的運算核心來說,相較于智能網絡卡領域,呈現多核處理器、FPGA與訂制網絡處理器三大類型鼎立的局面,智能型SSD目前是以FPGA為主流,多數產品的運算引擎都是基于Xilinx FPGA,但目前出現了朝向Arm多核處理器轉型的趨勢。
其中,NGD System已率先完成從FPGA向Arm處理器的轉型,他們的前2代產品Catalina-1與Catalina-2,原本都是基于Xilinx FPGA,但新的Newport Platform系列產品,便轉換到內嵌在該公司專屬ASIC芯片中的Arm處理器。
ScaleFlux也已表明,預定于今年下半年發表的下一代產品中,將以基于Arm處理器的運算核心,取代目前使用的FPGA,藉此可以降低成本與功耗、提高速度,并提供更多的運算功能。
最特別的是Nyriad,其用于搭配自身Nsulate儲存平臺的加速卡,是基于Nvidia GPU,可以提供erasure coding功能,也能用于其他運算。
最后,雖然SNIA正在發展通用的標準化應用接口,但是,就目前而言,客戶端還是必須透過各廠商各自提供的開發工具與API,才能使用智能型SSD的運算功能。
智能型SSD vs. 智能網絡卡:角色與特性的異同
智能型SSD與智能網絡卡,都是內含嵌入式運算單元的服務器加速裝置,目的也同樣是卸除服務器CPU的運算負擔,但是,盡管基本應用概念相同,由于產品的型態差異,促使兩種裝置存在著一系列關鍵區別。
角色與應用定位
SSD與網絡卡這兩種裝置,在服務器上有著不同位置與角色,因此分別由兩者發展來的智能型SSD與智能網絡卡,也各自有著合適的運用方式。
網絡卡位于服務器I/O最前端、作為數據流出入口,所以智能網絡卡先天適合執行針對I/O數據流進出的實時處理相關運算,例如網絡與儲存傳輸協議,以及安全控管方面的運算卸除。
SSD位于服務器I/O最末端,是數據最終保存之處,因而智能型SSD適合針對已寫入數據的相關運算,例如數據庫查詢、掃描、AI學習、數據分析、圖像處理等。
也就是說,合理的運用概念,是讓運算裝置「就近」處理運算工作,盡可能減少數據移動。智能網絡卡位于I/O出入口,適合「就近」處理網絡傳輸與安全方面的運算;智能型SSD位于數據保存位置,適合「就近」執行儲存數據的分析運算。反之,若違反「就近運算」原則,就會產生數據搬移需求,必須耗費CPU周期與PCIe傳輸,以致帶來額外延遲。
裝置型式與傳輸信道的差異
比起網絡卡型式的智能網絡卡,智能型SSD產品的型態更為多元,包含常見的2.5吋U.2或M.2規格SSD,PCIe SSD卡,還有長尺狀的EDSFF規格,除了PCIe SSD卡是透過PCIe插槽連接主機外,其余幾種規格,都是藉由NVMe接口,嫁接到PCIe總線上,但這也形成了傳輸帶寬的相對劣勢。
NVMe目前只達到PCIe 3.0 x4,而高速網絡卡是從PCIe3.0 x8起跳,部分還是采用PCIe 3.0 x16或PCIe 4.0 x8,所以,基于NVMe的智能型SSD,與服務器主機之間的傳輸帶寬,只有智能網絡卡的一半或1/4。
但另一方面,比起必須占用PCIe擴展槽的智能網絡卡,透過NVMe磁盤槽部署的智能型SSD,有利于「以量取勝」,獲得相當可觀的運算能力。如ScaleFlux便聲稱,每臺服務器可安裝8臺他們的CSS系列智能型SSD,NGD System還測試過在2U服務器上滿載24臺智能型SSD的機器學習系統,遠超過單一服務器所能部署的智能網絡卡數量。
編輯:黃飛
?
評論