自上世紀(jì)80 年代中期首批 PC 機(jī)面市后不久,網(wǎng)絡(luò)接口卡 (NIC) 就已經(jīng)進(jìn)入了市場。然而,在過去的幾年里,我們看到了 SmartNIC 的興起。什么是 SmartNIC?按照最基本的定義,SmartNIC 就是可編程NIC。很多廠商只是順應(yīng) SmartNIC 這一概念在自身實現(xiàn)中堆砌冗繁的芯片與固件。一個比較準(zhǔn)確的定義是SmartNIC 是包含客戶可用的額外計算資源和使用這些資源所需的開源工具的NIC。這些額外的計算資源用來處理進(jìn)出服務(wù)器時的網(wǎng)絡(luò)流量,以及在應(yīng)用層面卸載主機(jī)CPU。
計算單元
SmartNIC在同一張卡上融合有線網(wǎng)絡(luò)和計算資源。這些計算資源的構(gòu)成可包含下列一種或數(shù)種類型的資源:傳統(tǒng)x86 CPU,如 Arm 核;數(shù)字信號處理器 (DSP) 專用核;人工智能 (AI);網(wǎng)絡(luò)處理單元 (NPU);或現(xiàn)場可編程門陣列 (FPGA)。一個SmartNIC 上含有多個上述計算單元的情況并不罕見。
服務(wù)器與NIC 連接
每個服務(wù)器使用NIC 連接到網(wǎng)絡(luò)。有時也使用通常用來支持?jǐn)z像頭和恒溫器等物聯(lián)網(wǎng) (IoT) 設(shè)備的嵌入式無線連接,但大多數(shù)服務(wù)器還是以有線方式連接到網(wǎng)絡(luò)。采用有線聯(lián)網(wǎng)的原因較多,不過兩個最重要的原因是性能和可用性。
廣告
在可用性方面,有線網(wǎng)絡(luò)只有在電纜受損或拆除的情況下才中斷。至于網(wǎng)絡(luò)性能方面,我們重點關(guān)注兩個指標(biāo):一個是帶寬,可通過網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量;另一個是時延,即傳輸數(shù)據(jù)所用的時間。
提升算力
雖然今天的數(shù)據(jù)中心聯(lián)網(wǎng)采用的是25 GbE,并且正在迅速升級到 50 GbE 和 100 GbE,但仍需要認(rèn)真地考慮為 SmartNIC 添加額外的計算資源。對于傳統(tǒng)的 CPU 核(比如 Arm 的 CPU 核),最高效的使用方式是將它們預(yù)留給控制平面管理。例如,一個雙核或四核Arm 核組常被用于控制平面管理任務(wù),如將軟件卸載到其他計算單元和記錄日志。
今天的數(shù)據(jù)中心NIC 每秒要處理數(shù)百萬乃至超過一億個網(wǎng)絡(luò)數(shù)據(jù)包。即便主頻在3GHz 的 Arm 核,也不能勝任每秒檢查和處理數(shù)百萬個數(shù)據(jù)包的工作,更別說數(shù)千萬個數(shù)據(jù)包了。每秒的指令數(shù)根本不夠應(yīng)付這樣大數(shù)量的數(shù)據(jù)包。處理這樣大數(shù)量的數(shù)據(jù)包,需要使用專用計算資源,如專用網(wǎng)絡(luò)處理器、FPGA或 GPU 核。
FPGA 的并行處理和可編程邏輯特性,常常使其成為這種任務(wù)的最佳選擇。FPGA 可以通過重配置快速解析網(wǎng)絡(luò)數(shù)據(jù)包報頭,甚至是數(shù)據(jù)包本體。然后采取必要的處理,如丟棄數(shù)據(jù)表、包裝數(shù)據(jù)包或以線速率修改數(shù)據(jù)包內(nèi)容。賽靈思 Alveo SN1000 SmartNIC 就是包含一個 Arm 核組和一個網(wǎng)絡(luò)處理器的基于 FPGA 的 SmartNIC 的典型示例。
卸載
CPU卸載是 SmartNIC的一個關(guān)鍵用途。區(qū)塊鏈散列和視頻轉(zhuǎn)碼等計算密集型任務(wù)交由SmartNIC 單獨處理即可,從而釋放了寶貴的服務(wù)器 CPU 資源。
區(qū)塊鏈依賴的是求解工作量證明。網(wǎng)絡(luò)上完成求解的第一個節(jié)點會得到獎勵,并允許在鏈上捆綁并發(fā)布下一個區(qū)塊。SmartNIC能在計算下一個解時,將區(qū)塊鏈和待完成事項保存在存儲器中。如果求解成功,SmartNIC就公布這個區(qū)塊并開始處理下一個區(qū)塊。
視頻轉(zhuǎn)碼是另一種非常適合SmartNIC 從主機(jī) CPU卸載的任務(wù)。使用自適應(yīng)比特率 (ABR) 壓縮支持移動設(shè)備的視頻轉(zhuǎn)碼,是另一種 CPU 密集型任務(wù)(特別是對于實時視頻應(yīng)用而言)。這些壓縮任務(wù)極度線性,在移植到基于 FPGA 的加速器上后,被證明效率較通用 CPU 提高 10 倍到 20 倍。
此外,SmartNIC 還內(nèi)置基本的 Netfilter 防火墻,從主機(jī) CPU 卸載過濾出入站數(shù)據(jù)包的任務(wù)。Netfilter 是一種新版本的 IP 信息包過濾系統(tǒng),為過濾網(wǎng)絡(luò)流量提供了非常可靠的架構(gòu)。將這個防火墻卸載到 SmartNIC,每秒可為主機(jī) CPU節(jié)省數(shù)百萬條指令,以支持于在服務(wù)器上運行的其它應(yīng)用。
我們也提供數(shù)據(jù)包封裝,也就是封包功能。一旦我們對虛擬化或容器化系統(tǒng)使用疊加網(wǎng)絡(luò),我們就需要封裝網(wǎng)絡(luò)數(shù)據(jù)表,讓它們在這些疊加網(wǎng)絡(luò)間正確路由。疊加網(wǎng)絡(luò)處理的例子如 Open vSwitch (OvS)。它有非常高的 CPU 占用率,因此將這個任務(wù)卸載到 SmartNIC 可釋放大量主機(jī) CPU 周期。
最后,我們還可以卸載通常運行在 DNS 等服務(wù)器上或內(nèi)存數(shù)據(jù)庫上的主要網(wǎng)絡(luò)應(yīng)用。完全在 SmartNIC 內(nèi)處理 DNS 查詢是一種典型的 SmartNIC 應(yīng)用,因為事務(wù)較小而且查找表處理速度較快。
采用 SmartNIC 進(jìn)行存儲控制
SmartNIC 也能兼用作存儲控制器。像賽靈思 Alveo U25 這樣的一些 SmartNIC,自己的本地存儲擁有千兆字節(jié)片上和板載存儲器(比如 U25 有 6GB)。這種存儲可兼用作服務(wù)器自己的 NVMe 磁盤的緩存。這種做法很有意義,因為 Compute Express Link (CXL) 等協(xié)議能讓未來的 SmartNIC 直接管理與 NVMe 驅(qū)動器的關(guān)系。
賽靈思Alveo U25 智能網(wǎng)卡
此外,SmartNIC 也能在硬件中進(jìn)行抹除編碼,還可以為存儲加密。對于驅(qū)動器加密,SmartNIC 提供了一種獨特的安全機(jī)制。如果使用 SmartMIC 為存放到NVMe存儲的數(shù)據(jù)進(jìn)行加密或解密,要破解這種加密,就需要同時擁有這兩個設(shè)備。如果管理員拆下 NVMe 驅(qū)動器到其他地方去解密,他們只能使用暴力破解法,猜測被留在 SmartNIC 上的缺失的加密密鑰。
SmartNIC 可以方便地采用密碼術(shù)保障上電周期間密鑰的安全性,進(jìn)一步提高系統(tǒng)的可靠性和安全性。例如,被賽靈思收購的Solarflare在 NIC 上保持著一個硬件安全隔離區(qū),過去幾年一直在其 X2 芯片上存儲 NIC 密鑰。未來的 SmartNIC 安全隔離區(qū)將有望為 SSL/TLS 端點加密保存數(shù)十萬個安全密鑰并保障它們的安全。
電子交易
最后,SmartNIC 還在另外一個領(lǐng)域里大有前途。那就是超低時延電子交易。我們在上文里談?wù)撨^在幾百億分之一秒內(nèi)傳輸網(wǎng)絡(luò)數(shù)據(jù)包。今天,高性能25-GbE NIC的時延在1,000ns左右。采用正確架構(gòu)的系統(tǒng)、正確的軟件和調(diào)試到位的 SmartNIC,能在收到網(wǎng)絡(luò)數(shù)據(jù)包的同時完成分析,一次四個字節(jié)。響應(yīng)數(shù)據(jù)包則能以令人驚奇的 22ns 內(nèi)注入到網(wǎng)絡(luò)中。這比傳統(tǒng)的高性能 NIC 速度提高了 40 多倍。當(dāng)用于電子交易時,這些 SmartNIC 的投資回報 (ROI) 有時可以不到一秒就能測得。
市場采用日益攀升
隨著云服務(wù)提供商不斷擴(kuò)大容量,他們也在增加 SmartNIC 的部署,以將寶貴的 CPU 核心釋放給業(yè)務(wù)應(yīng)用,優(yōu)化服務(wù)器利用率。今天的服務(wù)器往往把 30% 的 CPU 周期用在管理網(wǎng)絡(luò)上。即相當(dāng)于每三部生產(chǎn)服務(wù)器中就有一部用于組網(wǎng)。SmartNIC 支持系統(tǒng)架構(gòu)師將高性能計算資源部署在服務(wù)器的邊緣,也就是網(wǎng)絡(luò)上。然后 SmartNIC就能用于保護(hù)服務(wù)器,進(jìn)而保護(hù)企業(yè),同時有力地從成本高昂得多的服務(wù)器 CPU 上卸載任務(wù)。
審核編輯:郭婷
-
dsp
+關(guān)注
關(guān)注
553文章
7987瀏覽量
348788 -
FPGA
+關(guān)注
關(guān)注
1629文章
21729瀏覽量
603050 -
數(shù)據(jù)中心
+關(guān)注
關(guān)注
16文章
4764瀏覽量
72101
發(fā)布評論請先 登錄
相關(guān)推薦
評論