圖片來源/Nvidia、Broadcom,iThome整理,2021年6月

基於可程式化處理器,提供了彈性運算卸載功能的智慧型網路卡(SmartNIC),其實已經問世了10年以上時間,早在2010年代初期,就已有Accelize、AdvancedIO Systems、BittWare、Fiberblaze、Intilop與Solarflare Communications等新創廠商,推出了結合FPGA的網路卡產品。

其中特別值得一提的,是曾在金融高頻交易領域大放異彩的Solarflare Communications,該公司在2012年初推出的AOE(Application Onload Engine)網路卡,結合了10GbE埠、FPGA與16GB記憶體,可以在網路卡上執行金融用戶的交易程式,在網路卡上直接完成資料的運算與傳輸,從而將交易傳輸的延遲降到最低。

不過,這些早期的智慧型網路卡,提供的運算卸載功能比較單一,多是專門針對金融交易、高效能運算或電信等特定用途,用途較為局限,而且還採用了非標準的開發應用環境,使用上也相對不易。

今日新一代的智慧型網路卡,則具備了更靈活的通用運算能力,並採用易於使用的標準開發作業環境,可因應資料中心多樣化的應用。

而將智慧型網路卡從早期特定應用領域的硬體加速裝置,推廣到一般資料中心應用,要歸功於Intel、Broadcom、Mellanox等網路卡大廠的參與。

首先是Mellanox在2016年發表了BlueField可程式化網路處理器,並以此為基礎,於2017年推出BlueField智慧型網路卡,接下來Intel與Broadcom則分別在2019年發表N3000系列可程式化加速卡,以及Stingray系列智慧型網路卡。

其他重要網路元件供應商如Marvell與Netronome也都投入了這個領域,Marvell透過併購Cavium,取得後者的LiquidIO系列智慧型網路卡產品線,Netronome則在更早的時候便推出獨立開發的Agilio系列。就連FPGA領域的領導廠商Xilinx,也在併購Solarflare Communications的基礎上,進入這個市場,推出了Alveo系列智慧型網路卡。

除了這些大廠之外,市面上,後續還湧現了Pensando、Fungible等極具潛力的新創廠商,目前已有10家以上供應商,共數十款產品可選,讓這個領域開始進入興盛期。

而為了突顯新一代智慧型網路卡多樣化的運算卸載能力,身為主要供應商之一的Mellanox-Nvidia,也開始改用「資料處理器(DPU)」這個新名稱,意圖讓這種產品與CPU、GPU鼎足而立,共同構成伺服器運算單元的3大要角。

而另一些針對儲存應用的智慧型網路卡供應商,如Nebulon,則以「儲存處理器(SPU)」來稱呼,來強調儲存方面的應用。

標準型網路卡與智慧型網路卡之間的關鍵區別,並不在於運算卸載能力的有無或多寡,而是在於可程式化能力。

當前基於ASIC的標準型網路卡中,比較高階的款式,其實已能提供相當豐富的卸載功能,涵蓋了網路傳輸卸載、儲存傳輸協定卸載、AES加解密、虛擬化網路功能與I/O處理的卸載等,同時也提供了對應的軟體介面,讓用戶端可以整合與啟用這些卸載功能。但ASIC的功能基本上是固定的,只能運行網路卡廠商預設的應用功能。

相較下,智慧型網路卡不僅具備與標準網路卡一樣的網路控制器功能,還搭載了嵌入式可程式化處理器,如Arm多核心處理器或FPGA晶片,搭配DRAM記憶體、Flash記憶體等儲存單元,等同是一臺具體而微的迷你伺服器,除了提供預先設定的加速與卸載功能外,也能視需要載入與運行新的軟體功能,甚至還能在智慧型網路卡上執行Linux作業系統、虛擬化平臺或Container,應用非常靈活。

但另一方面,額外的運算單元與記憶體等元件,也大幅提高了智慧型網路卡的尺寸、成本與功耗。圖片來源/Nvidia、Broadcom,iThome整理,2021年6月

提高伺服器的運算效益

在虛擬化與軟體定義化的潮流下,當前伺服器必須承載的網路、安全與儲存等方面的基礎服務負載,也越來越多,甚至會占用到伺服器CPU運算能力的1/3以上,而且這些負載還在迅速增加中,留給應用程式的運算能力,也越來越少。

智慧型網路卡便是因應這個困境的解方,除了像傳統網路卡一樣,提供網路連接與傳輸功能外,更重要的是可利用卡板上搭載的運算單元,幫助卸載伺服器CPU的運算負荷,讓伺服器能將更多的CPU資源,釋放給業務端的應用程式使用,而不是消耗在基礎服務上。

Broadcom給了一個例子,一臺典型含有36個處理器核心的雙socket伺服器,扣除虛擬化、儲存與網路虛擬化等基礎服務占用的資源(如AES加密、NVMe-oF傳輸、OVS、VNF等),最後將只剩8~12個處理器核心,可以留給應用程式使用。

若換成一臺18個處理器核心的單處理器伺服器,但搭配智慧型網路卡,藉此可將虛擬化、儲存與網路等基礎服務的負載,都卸載到智慧型網路卡上執行,因此可以保留16個以上的處理器核心,供應用程式使用,而且伺服器成本與功耗都可降低將近一半。

也就是說,比起藉由升級CPU來獲得更多的運算能力,透過智慧型網路卡的卸載能力,不僅也能達到釋放更多的CPU資源給應用程式使用的目的,還可減少對CPU規格的要求,並藉此節省伺服器功耗,是更具成本效益的選擇。

智慧型網路卡的型態與類型

智慧型網路卡通常由網路埠、運算單元、記憶儲存單元、流量控制單元,以及與主機連結的通訊單元等幾個部分組成,依照運算單元的形式,可分為多核心嵌入式處理器、FPGA與專屬網路處理器等3種主要類型,其中以多核心處理器與FPGA兩種為大宗。

如Broadcom、Mellanox、Marvell等廠商產品採用的運算單元,都屬於多核心處理器(前兩者採用Arm架構處理器,後者同時擁有MIPS與Arm架構處理器的產品),Intel與Xilinx則採用FPGA。至於採用專屬網路處理器的廠商則有Netronome與Pensando等。

不同類型的處理器架構,在運算特性、整合難易度與便利性方面各有優缺點,在未來可見的時間內,應該會繼續並存下去。

儘管處理器架構有所差異,但是在卸載功能方面,目前的智慧型網路卡產品,都主要針對網路與網路安全,以及儲存等2個應用面向,提供卸載應用,前者包括軟體定義網路(Software Defined Network,SDN)、網路功能虛擬化(Network Function Virtualization,NFV)與網路安全相關的卸載功能,例如虛擬交換器、防火牆等;後者則例如NVMe-oF協定的卸載,重複資料刪除、加密等功能的卸載,有些智慧型網路卡還內含了RAID與Erasure Coding卸載功能(如Broadcom的Stingray系列,以及Nvidia剛發表的BlueField-3)。

而在用戶端,則須透過廠商提供的工具套件與API,來啟用智慧型網路卡的運算能力與卸載功能,或是載入執行客製化的軟體功能,這方面不同廠商的作法差異較大,如同樣基於多核心處理器的智慧型網路卡中,採用Arm處理器的Broadcom、Mellanox產品,便嵌入了完整的作業系統,用戶端開發人員可以透過標準的通信架構與介面來連結智慧型網路卡,開發難度相對較低。相較下, Marvell較早期基於OCTEON處理器(屬於MIPS架構)的產品,則需要使用更底層的系統呼叫指令,使用難度較高一些。

除了結合網路埠與可程式化運算單元的基本型態外,智慧型網路卡還延伸發展出兩種衍生型式。

其一為結合了磁碟控制能力,可以直接連接與控制SSD,如Broadcom的Stingray系列中的PS250,便整合了SAS介面,再搭配內含的RAID功能,等同於1套獨立的儲存控制器;其二為結合了繪圖處理器(GPU),可透過GPU擴展運算能力,提供即時分析處理等功能,如Nvidia的BlueField-2 A100,Nvidia把這種產品稱作融合式加速卡,融合了智慧型網路卡與GPU卡的運算能力。

雲端、大型用戶引領應用

目前智慧型網路卡推廣的一大障礙,在於較高的成本與功耗。因為智慧型網路卡額外的運算單元,雖然提供了運算能力,但也顯著增加了成本與功耗。

與提供同樣傳輸速度網路埠的傳統網路卡相比,智慧型網路卡的價格差距最大可到5倍以上,對於10/25GbE網路卡來說,相當於100至400美元以上的價差,這已經大到企業採購時不能忽略的程度。而在功耗方面,智慧型網路卡可以達到20至80瓦之譜,是傳統網路卡的2至4倍,對於伺服器來說,這樣大的功耗,也已是不可忽視的程度,必須考慮由此帶來的供電與散熱問題。

儘管如此,智慧型網路卡的效益,仍足以抵消其缺點。雖然智慧型網路卡要比傳統網路卡昂貴、且消耗更多功率,但藉由運算卸載功能,所減少的CPU資源消耗,可以為用戶省下更多的伺服器成本與電力。

因而各界十分看好這個領域的未來發展,如市場研究機構Dell'Oro集團在2020年的報告中便預測,到了2024年時,智慧型網路卡的銷售額,將會占整個乙太網路卡市場的26%。

而對不同類型的用戶來說,看待智慧型網路卡需求的方式,以及吸引力也有差異,因為這當中涉及了用戶的資料中心規模、服務取向,以及應用智慧型網路卡所需的軟體整合能力。

依照Dell'Oro的市調報告,以埠數計算的話,美國前4大雲端服務商,就占了2019年90%的智慧型網路卡出貨量,是一個以大型雲端服務商為主流的市場。

這些大型雲端服務商極為龐大、複雜的資料中心基礎設施,是建立在虛擬化服務架構上,也是智慧型網路卡的網路與儲存卸載功能,可大展身手的環境,能將資源運用效率提高到極致,大幅改善基礎設施的成本效率,這不僅促使他們積極引進智慧型網路卡,還自行打造專屬智慧型網路卡。

至於次一級的雲端服務商,雖然未必有足夠資源去自行開發智慧型網路卡,但也能從既有的智慧型網路卡供應商獲得需要的產品。

另一個積極引進智慧型網路卡的用戶群體,是電信業者。這些廠商正急切轉型,希望將核心網路服務,轉移到基於x86伺服器的網路虛擬化環境中運行,而智慧型網路卡的網路虛擬化卸載功能,能在這個環境中發揮關鍵的效用。

還有一個領域,是智慧型網路卡可以發揮所長的場合,便是興起中的邊緣運算應用(Edge Computing),對於承擔了多重存取任務的邊緣運算節點來說,可以透過智慧型網路卡的運算卸載功能,達到降低存取延遲的要求。

至於廣大的企業用戶,由於各自的資料中心規模相對較小,因而缺乏如同雲端服務商那樣高的需求動力,去追求最大限度的資源利用率,對於智慧型網路卡的卸載功能,相對也較不積極。

不過,對於企業用戶來說,更大的導入障礙,是缺乏運用智慧型網路卡所需的軟體整合能力。因為,多數企業都習慣依賴供應商提供現成的軟體平臺,自身缺乏足夠的軟體開發整合能力與資源,來使用智慧型網路卡的加速功能。

所以,企業用戶目前比較有可能應用智慧型網路卡的情境,或許是作低延遲儲存連接的端點,以因應NVMe-over-Fabrics傳輸的低延遲需求。

公有雲服務商的自有智慧型網路卡

【微軟的Catapult加速卡】微軟的Catapult加速卡是基於FPGA打造而成,可為深度類神經網路、Bing 搜尋與SDN等應用,提供加速、減少延遲,同時,也釋放CPU資源而用於其他工作。圖片來源/微軟

公有雲服務商是當前最主要的智慧型網路卡用戶,占了智慧型網路卡出貨量的8、9成。除了採用既有的智慧型網路卡產品外,為了追求針對自身架構的最佳化,幾家公有雲龍頭也紛紛打造了自身專屬的智慧型網路卡。

目前已知三大公有雲服務商——AWS、微軟Azure與阿里雲,都已擁有自身開發的智慧型網路卡類型裝置,如AWS的Nitro卡,阿里雲的MOC卡,以及微軟Azure的Catapult卡。

其中AWS的Nitro卡,是專門支援Nitro虛擬化架構的加速卡,以AWS旗下晶片設計部門Annapurna Labs開發的SoC晶片為核心,目前已發展到第3代,可以將Nitro虛擬化架構中的儲存、網路與資安功能,卸載到Nitro卡上運行,藉此可將絕大多數的實體主機資源保留給用戶端使用,並改善VM的延遲與效能。

類似的,阿里雲的MOC卡,是專門搭配其X-Dragon裸機服務架構使用,由他們自行設計,已發展到第2代,在這張卡上,直接運行輕量型虛擬化平臺X-Dragon Hypervisor。

至於微軟Azure的Catapult加速卡,則起源於2012年啟動的Project Catapult計畫中,基於FPGA技術發展的可程式化硬體加速卡,目前已經推出第3代版本,同時應用在微軟Azure與Bing服務資料中心,用於為AI應用與網路傳輸提供加速。

熱門新聞

Advertisement