趙靜 陳元謀
(中國電信股份有限公司研究院戰(zhàn)略發(fā)展研究所,北京 102209)
隨著“新基建”“數(shù)字經(jīng)濟”等國家政策的推出,云網(wǎng)融合已成為我國數(shù)字信息基礎(chǔ)設(shè)施建設(shè)的重要內(nèi)容和典型特征。云網(wǎng)融合是通信技術(shù)和信息技術(shù)深度融合所帶來的信息基礎(chǔ)設(shè)施的深刻變革,目標是使傳統(tǒng)上相對獨立的云資源和網(wǎng)絡(luò)設(shè)施融合形成一體化供給、一體化運營、一體化服務(wù)的體系[1]。云網(wǎng)融合,既是國家戰(zhàn)略布局的重要保障,也是新技術(shù)發(fā)展的必然趨勢,更是解決云網(wǎng)重構(gòu)問題以滿足社會多樣化業(yè)務(wù)訴求的破局關(guān)鍵。
超大規(guī)模數(shù)據(jù)中心(Hyperscale Data Centers,HDCs),作為云網(wǎng)融合加速演進升級的重要底座,憑借其強大的計算和存儲能力,已經(jīng)成為當今數(shù)字時代最重要的基礎(chǔ)設(shè)施之一。IDC的數(shù)據(jù)顯示,2020—2025年全球產(chǎn)生或復制的數(shù)據(jù)量以復合年均增長率(Compound Annual Growth Rate,CAGR)保持23%的比例增長[2]。數(shù)據(jù)的指數(shù)級增長和頻繁交互,造成流量激增,使得數(shù)據(jù)中心網(wǎng)絡(luò)不得不向更高性能和更高靈活性方向演進。根據(jù)IEEE P802.3 bs標準[3],未來以太網(wǎng)產(chǎn)品將以200 Gbit/s、400 Gbit/s速度運行,甚至向800 Gbit/s、1.6 Tbit/s演進。僅靠提升軟件和算法方面的計算能力已無法滿足數(shù)據(jù)激增和業(yè)務(wù)加速處理的需求,要進一步提升基礎(chǔ)設(shè)施整體性能,必須從硬件入手。
然而受限于摩爾定律放緩、量子計算技術(shù)尚未成熟,中央處理器(Central Processing Unit,CPU)計算能力增速低于網(wǎng)絡(luò)傳輸速率的增速并且差距持續(xù)增大(見圖1)。通過CPU進行內(nèi)存訪問和數(shù)據(jù)搬移的開銷、網(wǎng)絡(luò)處理加速的成本,正變得讓人望而卻步。中科院數(shù)據(jù)顯示,服務(wù)10G網(wǎng)絡(luò)通信的協(xié)議處理就需要8核高端CPU一半的算力[4]。傳統(tǒng)以計算為中心的系統(tǒng)體系架構(gòu)已無法滿足高性能、低成本的硬件加速需求,以數(shù)據(jù)為中心的智能網(wǎng)卡(Smart NIC)應(yīng)運而生。
圖1 以太網(wǎng)帶寬與CPU性能增速比(RBP)失調(diào)
隨著社會數(shù)字化、智能化發(fā)展,通用CPU在大數(shù)據(jù)分析、人工智能等密集型計算和數(shù)據(jù)處理領(lǐng)域面臨的問題越來越多。為適應(yīng)計算多元化和不斷增長的性能需求,越來越多的場景開始引入圖形處理器(Graphics Processing Unit,GPU)、張量處理器(Tensor Processing Unit,TPU)、現(xiàn)場可編程邏輯門陣列(Field Programmable Gate Array,F(xiàn)PGA)等各種硬件加速器,異構(gòu)計算隨之產(chǎn)生。
以計算為中心的加速方案,主要通過指令控制流驅(qū)動計算。目前,應(yīng)用較成熟的硬件加速方案,通常以CPU為中心設(shè)計,并通過外加一種硬件加速器完成某一特定場景中的計算任務(wù)加速。GPU是目前應(yīng)用最廣泛的硬件加速器,基于CPU和GPU的硬件加速方案架構(gòu)如圖2所示。CPU作為計算和控制中心,一方面執(zhí)行常規(guī)邏輯任務(wù),例如網(wǎng)絡(luò)堆棧中的數(shù)據(jù)包處理,并完成與網(wǎng)絡(luò)客戶端的交互;另一方面向硬件加速器發(fā)送請求,完成相關(guān)的加速器調(diào)用、數(shù)據(jù)傳輸和同步等任務(wù)。
圖2 以CPU為中心的硬件加速方案架構(gòu)
隨著計算需求不斷增長,各種硬件加速器層出不窮,以CPU為中心的加速方案面臨的問題也越來越多,主要問題如下。
(1)CPU管理加速器開銷大。所有加速器調(diào)用、同步和數(shù)據(jù)移動的任務(wù)程序都在CPU中運行。隨著計算加速器種類增多,必然會給CPU帶來越來越大的負擔。而且這些任務(wù)會嚴重影響時延敏感內(nèi)核的端到端延遲。有研究表明,在CPU+GPU的運行過程中調(diào)用300 μs的神經(jīng)網(wǎng)絡(luò)推理,每個請求大概會產(chǎn)生30 μs的延遲開銷,約占10%,這也是造成多GPU縮放不佳的根本原因[5]。
(2)CPU內(nèi)核浪費。將網(wǎng)絡(luò)服務(wù)器邏輯和加速器管理卸載到更適合這些任務(wù)的處理器,CPU可發(fā)揮更大的價值。例如,與加速器交互時需要通過高速串行計算機擴展總線標準(Peripheral Component Interconnect Express,PCIe)總線訪問內(nèi)存映射控制寄存器,介于CPU寄存器比較長,會產(chǎn)生延遲和阻塞等問題;輪詢可用于解決低延遲問題,但輪詢在簡單的微控制器就可以運行,而沒必要浪費CPU內(nèi)核。額外的CPU內(nèi)核可以用來處理其他更高價值的任務(wù),實現(xiàn)整體性能的最大化。
(3)應(yīng)用程序干擾。以CPU為中心的設(shè)計,存在低效率和性能隔離較差的問題。在多租戶系統(tǒng)中,硬件加速服務(wù)會受到同一臺機器上來自其他云租戶應(yīng)用程序運行的干擾,與單獨執(zhí)行該加速服務(wù)相比,在不同的CPU內(nèi)核上并發(fā)執(zhí)行這兩個工作負載會導致延遲較高,不利于時延敏感任務(wù)的加速處理。
智能網(wǎng)卡,又被業(yè)界稱為數(shù)據(jù)處理器(Data Processing Unit,DPU)或基礎(chǔ)設(shè)施處理器(Infrastructure Processing Unit,IPU),是一種兼具硬件加速和網(wǎng)絡(luò)傳輸功能的可編程智能網(wǎng)絡(luò)適配器,主要用于卸載、加速和隔離軟件定義的網(wǎng)絡(luò)、存儲、安全和管理功能[6]。與傳統(tǒng)網(wǎng)卡相比,智能網(wǎng)卡最直接的作用是被用作CPU的卸載引擎,與CPU控制面相配合,釋放CPU的算力到上層應(yīng)用,最終實現(xiàn)高性能與通用性的最佳平衡。
以數(shù)據(jù)為中心的加速方案,主要通過數(shù)據(jù)流驅(qū)動計算,具體參見圖3。采用將數(shù)據(jù)集中處理、調(diào)度的方式,一方面利用靈活可編程的硬件加速引擎,完成網(wǎng)絡(luò)、存儲、安全等領(lǐng)域的功能卸載,滿足多樣性計算加速需求;另一方面,配備高性能網(wǎng)絡(luò)接口,如100G、200G、400G或更高性能的接口,實現(xiàn)以線速解析、處理并快速傳輸數(shù)據(jù)到CPU和其他硬件加速器。智能網(wǎng)卡不僅能有效提高數(shù)據(jù)處理性能,大幅減輕CPU的負擔,還能降低其他硬件加速器的性能損耗,最大程度地提升系統(tǒng)的整體性能。
圖3 以智能網(wǎng)卡為中心的硬件加速方案系統(tǒng)架構(gòu)示意圖
與以CPU為中心的加速方案相比,以智能網(wǎng)卡為中心的加速方案具有以下優(yōu)勢。
(1)整體性能更高。以數(shù)據(jù)為中心的處理結(jié)構(gòu),網(wǎng)絡(luò)數(shù)據(jù)直接由智能網(wǎng)卡處理、調(diào)度、I/O加速,避免了因數(shù)據(jù)接入/輸出路徑過長導致的數(shù)據(jù)處理性能受限。智能網(wǎng)卡還集成了多核CPU、專用處理器核和高速I/O接口,既可實現(xiàn)數(shù)據(jù)面和控制面的任務(wù)處理加速,又可滿足多業(yè)務(wù)需求,提高了整體性能。
(2)提高硬件資源利用率。智能網(wǎng)卡實現(xiàn)了各種基礎(chǔ)設(shè)施任務(wù)的操作卸載,不僅為CPU減輕了網(wǎng)絡(luò)、安全、存儲和加速器管理等方面的加速負擔,還為其他硬件加速器提供了硬件卸載功能,大大提高了CPU和硬件加速器的資源利用率,以及加速器的可移植性。
(3)性能分離。智能網(wǎng)卡實現(xiàn)了基礎(chǔ)設(shè)施功能和租戶工作負載物理分離,有效避免了硬件加速服務(wù)和同時運行的其他云租戶應(yīng)用程序的干擾問題。此外,通過卸載安全控制平面,實現(xiàn)主機業(yè)務(wù)和安全控制隔離,保證了安全性;通過卸載存儲功能,實現(xiàn)算存分離,有利于存儲廠商發(fā)揮自家產(chǎn)品優(yōu)勢。
(4)靈活可編程。智能網(wǎng)卡可編程、可靈活配置,支持各類應(yīng)用程序按需定制,并且支持重新組裝以滿足新的要求。
近年來,利用智能網(wǎng)卡進行硬件卸載已經(jīng)受到學術(shù)界的廣泛關(guān)注,關(guān)鍵技術(shù)正在逐漸完善。最新發(fā)表的研究主要集中在智能網(wǎng)卡的數(shù)據(jù)傳輸、負載平衡、任務(wù)調(diào)度和性能隔離等功能的技術(shù)突破上。
主機端傳輸層的硬件卸載是智能網(wǎng)卡實現(xiàn)網(wǎng)絡(luò)高性能的核心,然而也是網(wǎng)絡(luò)堆棧中最復雜、有狀態(tài)的組件。智能網(wǎng)卡通常需要集成專門的網(wǎng)絡(luò)協(xié)議處理核來實現(xiàn)百G級別的數(shù)據(jù)包線速處理,如TCP/UDP協(xié)議、遠程直接內(nèi)存訪問(Remote Direct Memory Access,RDMA)、數(shù)據(jù)包交換協(xié)議等,但實現(xiàn)有狀態(tài)的數(shù)據(jù)傳輸仍面臨挑戰(zhàn)。
RDMA技術(shù),通過引入RoCE(RDMA over Converged Ethernet)協(xié)議已成為在基于以太網(wǎng)的數(shù)據(jù)中心中部署RDMA的規(guī)范方法[7-8],主要用于實現(xiàn)超低時延、超高吞吐量傳輸。RoCE只有在無損網(wǎng)絡(luò)才能實現(xiàn)良好的端到端性能,故通常需要結(jié)合基于優(yōu)先級的流量控制(Priority-based Flow Control,PFC)機制來避免數(shù)據(jù)包丟失。然而引入PFC會帶來一系列性能問題,如網(wǎng)絡(luò)阻塞、死鎖等[7-10]。對此,文獻[11]設(shè)計了一種改進的RoCE NIC,通過損失修復和端到端流量控制,以一些增量修改為代價,消除了RoCE對PFC的依賴,并且提高了性能。
在數(shù)據(jù)中心中,跨多個服務(wù)器的負載平衡一直是實現(xiàn)更高性能和資源利用率面臨的重要挑戰(zhàn),單個主機內(nèi)的負載平衡也不例外。雖然多核服務(wù)器可以利用多隊列網(wǎng)卡將傳入的數(shù)據(jù)包分發(fā)給不同的CPU,但是因大象流和老鼠流混合而產(chǎn)生的公平性問題依然存在;并且由于缺乏對服務(wù)器資源的了解,智能網(wǎng)卡仍無法完全支持自動縮放和負載平衡。尤其是在邊緣場景中,這些涉及處理延遲的問題將更加嚴重。根據(jù)最新的研究,通過優(yōu)化智能網(wǎng)卡的體系架構(gòu)并充分利用其靈活可編程的特點[12-13],可以很好地解決上述問題。
文獻[12]提出了一種在邊緣服務(wù)器中使用智能網(wǎng)卡來優(yōu)化性能和減少延遲的方法,在智能網(wǎng)卡上重新集成負載均衡器和自動縮放器,通過動態(tài)加權(quán)算法平衡端口之間的負載,利用有狀態(tài)的流表在縮放時保護流的親和力等,可以提高流級的公平性20%,減少15%+的尾部延遲,并支持高性能網(wǎng)絡(luò)功能的自動縮放。文獻[13]則主要面向時延敏感車載網(wǎng)絡(luò),提出了一種新的智能網(wǎng)卡體系架構(gòu),通過使用基于硬件的負載平衡器和網(wǎng)絡(luò)監(jiān)控軟件,實現(xiàn)動態(tài)分配網(wǎng)絡(luò)流量給可用的本地和遠程處理資源池,提高了可用計算資源的利用率,并且保證了端到端延遲。
多租戶云數(shù)據(jù)中心要求相互競爭的租戶和應(yīng)用程序彼此隔離,并公平地共享有限的網(wǎng)絡(luò)資源,需要智能網(wǎng)卡執(zhí)行相應(yīng)的調(diào)度、策略。但是對于當前的智能網(wǎng)卡而言,大部分的控制、調(diào)度和管理任務(wù)仍由主機CPU負責,若使用單個網(wǎng)卡隊列在軟件中強制執(zhí)行網(wǎng)絡(luò)策略,不僅加重CPU負擔,還難以驅(qū)動不斷增加的線路速率。智能網(wǎng)卡亟需一種完全適用于自己的新型調(diào)度方法和策略。
文獻[14]提出了一種新型智能網(wǎng)卡架構(gòu),在網(wǎng)卡上集成一個可定制、分層的數(shù)據(jù)包調(diào)度器和一個高速的OS/NIC接口,使得每個流都有一個隊列,實現(xiàn)將所有單個流調(diào)度決策從操作系統(tǒng)移到網(wǎng)卡中。試驗結(jié)果表明,該設(shè)計能夠以低CPU開銷將所有數(shù)據(jù)包調(diào)度完全卸載到網(wǎng)卡,并且在運行各種調(diào)度算法的同時,實現(xiàn)操作系統(tǒng)驅(qū)動線路速率(100 Gbit/s)。針對神經(jīng)網(wǎng)絡(luò)加速問題,文獻[15]提出一個以FPGA為中心的智能網(wǎng)卡框架,支持同時執(zhí)行計算、通信和控制,允許在多個智能網(wǎng)卡設(shè)備上進行靈活和細顆粒度的任務(wù)創(chuàng)建、分發(fā)、執(zhí)行和終結(jié),實現(xiàn)CPU分離的調(diào)度,最大限度地隱藏流媒體應(yīng)用程序網(wǎng)絡(luò)通信延遲,同時避免CPU干預,在系統(tǒng)級別上實現(xiàn)了高FPGA利用率和高性能。
為了充分發(fā)揮智能網(wǎng)卡的優(yōu)勢,未來考慮讓多云租戶利用共享的硬件資源以提升性能。在共享的智能網(wǎng)卡上運行來自不同租戶的應(yīng)用程序的關(guān)鍵挑戰(zhàn)是確保性能隔離。雖然目前已有不少智能網(wǎng)卡投入商用,主要用于支持網(wǎng)絡(luò)虛擬化和特定應(yīng)用程序的任務(wù),但是當下的智能網(wǎng)卡并不能為其上運行的單個應(yīng)用程序之間提供足夠的性能隔離。
要實現(xiàn)基于FPGA的智能網(wǎng)卡上的性能隔離,需要考慮FPGA設(shè)計生態(tài)系統(tǒng)的各個方面,如全局綜合、路由功能等,這會使多租戶環(huán)境的使用復雜化[16]。對此,文獻[16]提出了一種基于SoC智能網(wǎng)卡的性能隔離機制,以便能公平地分享每一種相互競爭的資源。試驗結(jié)果表明,該解決方案平衡了維護25 Gbit/s線路速率處理的需要,在實現(xiàn)數(shù)據(jù)包處理有效隔離的同時,還能公平共享對固定功能硬件加速器的訪問。
國內(nèi)外主流廠商的智能網(wǎng)卡產(chǎn)品參見表1。其中,國外的代表性產(chǎn)品主要有NVIDIA的DPU、Intel的IPU、Marvell的OCTEON10等;國內(nèi)的代表性產(chǎn)品主要有阿里云的CIPU、芯啟源電子科技有限公司(簡稱“芯啟源”)的Agilio系列等。
表1 國內(nèi)外主流廠商及其智能網(wǎng)卡產(chǎn)品
2021年4月,NVIDIA發(fā)布了其第三代DPU產(chǎn)品——Bluefield-3系列[17],旨在實現(xiàn)一種專門針對數(shù)據(jù)中心基礎(chǔ)設(shè)施軟件的新型處理器,用以卸載和加速由虛擬化、網(wǎng)絡(luò)、存儲、安全和其他云原生AI服務(wù)產(chǎn)生的巨大計算負載。
BlueField-3號稱首款可實現(xiàn)400 Gbit/s速度的DPU產(chǎn)品。BlueField-3可提供“零信任”安全環(huán)境,通過對數(shù)據(jù)中心的每個用戶進行身份認證,保障企業(yè)從云到核心數(shù)據(jù)中心再到邊緣的安全性。BlueField-3具有NVIDIA的網(wǎng)絡(luò)內(nèi)計算技術(shù),支持下一代超級計算平臺,提供最佳裸金屬性能和對多節(jié)點租戶隔離的本地支持。此外,BlueField-3通過NVIDIA DOCA軟件框架提供了一個完整、開放的軟件生態(tài)平臺,便于開發(fā)者在BlueField系列上開發(fā)應(yīng)用,并且隨著每代DPU的演進,原開發(fā)應(yīng)用程序可以完全向后兼容。
Intel推出的IPU是一個具有硬化加速器和以太網(wǎng)連接的高級網(wǎng)絡(luò)設(shè)備[18],使用緊密耦合的專用可編程內(nèi)核來加速和管理基礎(chǔ)設(shè)施功能,旨在使云和通信服務(wù)提供商減少CPU開銷,并充分釋放其性能價值。
IPU支持將CPU或xPU連接到網(wǎng)絡(luò)以加速主機基礎(chǔ)設(shè)施功能,包括安全性、虛擬化、存儲、負載平衡,以及虛擬網(wǎng)絡(luò)功能和微服務(wù)的數(shù)據(jù)路徑優(yōu)化[19]。同時,IPU具有2個100 GbE網(wǎng)絡(luò)接口和集成的硬加密塊,能夠以線速保護工作負載。IPU增強了傳統(tǒng)網(wǎng)卡中的以太網(wǎng)網(wǎng)絡(luò)功能,主要通過硬件加速器和緊密耦合的計算引擎組合處理任務(wù)。此外,Intel的IPDK(互通制程設(shè)計套件)的生態(tài)發(fā)展良好,圍繞著IPU的體系結(jié)構(gòu)和軟件生態(tài)定義了許多云計算基礎(chǔ)設(shè)施上的應(yīng)用。
Marvell最新推出的OCTEON 10系列DPU,支持最新的PCIe 5.0 I/O與DDR5內(nèi)存,可實現(xiàn)集成機器學習推理引擎、加密處理引擎和矢量數(shù)據(jù)包處理引擎等的虛擬化,專為有較高性能要求的云、5G、數(shù)據(jù)中心應(yīng)用而設(shè)計[20]。OCTEON 10采用了最新的ARM Neoverse N2內(nèi)核,在整型處理上是目前算力最高的DPU,但是浮點運算僅支持FP16,在做內(nèi)聯(lián)機器學習時有一定局限性。OCTEON 10引入了矢量數(shù)據(jù)包處理引擎,與上一代的標量處理引擎相比,它能夠?qū)?shù)據(jù)包的處理吞吐量提高5倍,降低功耗50%[20]。
2022年6月,阿里云發(fā)布云基礎(chǔ)設(shè)施處理器(Cloud infrastructure Processing Units,CIPU),并宣稱未來將替代CPU成為云計算的管控和加速中心[21]。CIPU向下接入云基礎(chǔ)設(shè)施物理資源,包括計算、存儲、網(wǎng)絡(luò)資源,并進行快速云化和硬件加速;向上接入飛天云操作系統(tǒng),管控阿里云全球200 多萬臺服務(wù)器,提供更高性能、更低價格、更可靠的云計算服務(wù)。CIPU與計算結(jié)合,對接入各種類型資源的服務(wù)器進行硬件加速,將算力虛擬化損耗降為“0”,并提供硬件級安全隔離;CIPU與存儲結(jié)合,對存算分離架構(gòu)的塊存儲接入進行硬件加速,實現(xiàn)訪問云端比訪問本地硬盤更快;CIPU與網(wǎng)絡(luò)結(jié)合,對高帶寬物理網(wǎng)絡(luò)進行硬件加速,通過構(gòu)建大規(guī)模彈性RDMA高性能網(wǎng)絡(luò),時延最低可達5 μs[22]。此外,CIPU和飛天系統(tǒng)還支持與阿里云其他自研產(chǎn)品進行深度的適配,如神龍計算、盤古存儲、洛神網(wǎng)絡(luò)和安全內(nèi)核等。
芯啟源一直致力于設(shè)計和研發(fā)智能網(wǎng)卡和高端芯片,并為網(wǎng)絡(luò)通信領(lǐng)域提供最優(yōu)的解決方案。Agilio智能網(wǎng)卡平臺是芯啟源發(fā)布的首個兼顧軟件和硬件的解決方案,主要用于實現(xiàn)開源通用計算網(wǎng)絡(luò)數(shù)據(jù)路徑的透明卸載。Agilio支持多達200 萬個安全規(guī)則,可提供100 Gbit/s、28 Mbit/s的吞吐量,同時僅需要消耗1/10的計算資源就能提供可擴展的通用計算網(wǎng)絡(luò)功能[6]。此外,Agilio還具備靈活高效的可編程能力,支持P4/C語言的混合編程和eBPF卸載,助力實現(xiàn)業(yè)務(wù)定制化功能,滿足不同場景下的業(yè)務(wù)需求。
綜上所述,DPU側(cè)重的是集成加速平臺的數(shù)據(jù)卸載能力,重點關(guān)注CPU上網(wǎng)絡(luò)、存儲、安全等任務(wù)的硬件卸載;IPU側(cè)重的是虛擬化云化能力,聚焦數(shù)據(jù)密集場景下計算能力的提高;OCTEON 10關(guān)注最新處理器內(nèi)核的使用,側(cè)重于將某一特定算法或應(yīng)用的計算能力發(fā)揮到極致;CIPU側(cè)重硬件芯片與云操作系統(tǒng)以及其他相關(guān)平臺的融合,關(guān)注軟硬件一體化;Agilio側(cè)重兼顧軟件和硬件的智能網(wǎng)卡解決方案,并重點實現(xiàn)產(chǎn)品的通用性和高可編程性。以上所有產(chǎn)品,都旨在通過“軟件定義+硬件加速”的方式,替代CPU成為新的核心硬件。
智能網(wǎng)卡常被應(yīng)用于網(wǎng)絡(luò)、存儲和安全等的功能卸載[4]。例如,將虛擬交換機(Open vSwitch,OVS)的數(shù)據(jù)面卸載到智能網(wǎng)卡,可有效提升報文轉(zhuǎn)發(fā)性能且保證安全性;將NVMe-oF(NVMe over Fabric)功能卸載到智能網(wǎng)卡,可為云主機提供與本地NVMe性能接近的高性能彈性遠端存儲,不僅顯著提升了存儲性能,也提高了服務(wù)器自身的CPU利用率;將NGFW和DDoS等安全設(shè)備上的流表卸載到智能網(wǎng)卡,通過攔截流量,實現(xiàn)安全服務(wù)應(yīng)用的硬件加速;將虛擬化網(wǎng)絡(luò)的控制平面完全卸載到智能網(wǎng)卡上,可實現(xiàn)主機操作系統(tǒng)與虛擬化網(wǎng)絡(luò)的安全隔離,有效防止黑客攻擊時的范圍擴散。下面將以O(shè)VS卸載為例,詳細介紹其應(yīng)用痛點及解決方案。
一直以來,云服務(wù)商主要依賴OVS進行流量轉(zhuǎn)發(fā)。然而隨著網(wǎng)絡(luò)流量的激增和業(yè)務(wù)需求的演進,轉(zhuǎn)發(fā)承載數(shù)據(jù)越來越復雜和沉重,對OVS性能提出了更高的要求。介于CPU不適合處理并行固定模式的計算,OVS內(nèi)核轉(zhuǎn)發(fā)性能最多只能達到幾十萬pps[6]。雖然借助DPDK(Data Plane Development Kit)可實現(xiàn)轉(zhuǎn)發(fā)帶寬量級的提升,但是OVS-DPDK在轉(zhuǎn)發(fā)數(shù)據(jù)時需要跨CPU,不同虛擬機(VM)的流量會因為CPU瓶頸導致?lián)砣?,不能保障租戶帶寬隔離,并且無法滿足高性能網(wǎng)絡(luò)需求。轉(zhuǎn)而通過SR-IOV(Single Root I/O Virtualization)可以簡單提高性能但又會導致虛擬機遷移受限等問題[4]。
將OVS卸載到智能網(wǎng)卡可以很好地解決上述問題,主要包括OVS數(shù)據(jù)面卸載和OVS全卸載兩種模式。OVS數(shù)據(jù)面卸載原理如圖4所示,只將OVS的流表卸載到智能網(wǎng)卡硬件執(zhí)行,控制面維持在虛擬化網(wǎng)絡(luò)主機上。該方案的優(yōu)勢在于控制面不需要過多適配,就能使數(shù)據(jù)面性能得到很大的提升。隨著智能網(wǎng)卡的成熟演進,OVS將逐漸實現(xiàn)控制面和數(shù)據(jù)面同時卸載到智能網(wǎng)卡,全面釋放CPU算力資源。但是這依賴于智能網(wǎng)卡的技術(shù)提升和大規(guī)模應(yīng)用推廣。
圖4 OVS數(shù)據(jù)面卸載原理
在目前“多PU”(CPU/GPU/TPU)共存的發(fā)展環(huán)境下,智能網(wǎng)卡需要將XPU的數(shù)據(jù)或業(yè)務(wù)先剝離再集中處理。期間,智能網(wǎng)卡自身的軟硬協(xié)作以及智能網(wǎng)卡與XPU的軟件協(xié)作至關(guān)重要。
高效便捷的軟硬件協(xié)作,不僅能提升維護和迭代的效率,還能保證智能網(wǎng)卡產(chǎn)品研發(fā)質(zhì)量。例如,開發(fā)人員可以通過軟件適配來調(diào)度各個處理器的編程框架,從而構(gòu)建良好的開發(fā)環(huán)境,充分發(fā)揮智能網(wǎng)卡的最大效能。此外,軟硬件協(xié)作也是智能網(wǎng)卡滿足定制化需求和商業(yè)化推廣的關(guān)鍵。例如,客戶可以通過使用具體場景的軟件,執(zhí)行網(wǎng)絡(luò)/存儲/安全卸載等方面的具體需求,并延伸至不同的行業(yè)領(lǐng)域。與此同時,隨著智能網(wǎng)卡的商用落地和大規(guī)模推廣,大量新應(yīng)用需求不斷涌現(xiàn),使得智能網(wǎng)卡軟件功能覆蓋廣度與適配度成為智能網(wǎng)卡產(chǎn)品商業(yè)化競爭的關(guān)鍵。即使目前主流廠商(如NVIDIA、Intel、芯啟源)已經(jīng)有了一些針對自身封閉生態(tài)制定的解決方案,但是由于軟件生態(tài)開放程度有限,商業(yè)化推廣進程緩慢。
隨著數(shù)據(jù)中心業(yè)務(wù)的多樣性發(fā)展,業(yè)界對智能網(wǎng)卡平臺可編程性的要求越來越高。智能網(wǎng)卡,不僅要直觀地表達出并發(fā)處理任務(wù)、充分利用計算資源、提高計算效率,還要兼顧易用性,盡量采用易于設(shè)計、開發(fā)和維護的高級語言進行編程。
智能網(wǎng)卡將在未來承載更豐富的應(yīng)用場景,包括但不限于網(wǎng)絡(luò)、存儲、安全、云計算、5G、人工智能、安全、生命科學等場景[6]。例如,將CPU上網(wǎng)絡(luò)/存儲/安全等功能卸載下來,為CPU減負;運行Hypervisor,高效完成網(wǎng)絡(luò)虛擬化、IO虛擬化、存儲虛擬化等任務(wù),徹底釋放CPU算力;成為算法加速的沙盒、靈活的加速器載體等。在眾多應(yīng)用場景的驅(qū)動下,智能網(wǎng)卡必將擁有更高效、更通用、更易用的可編程平臺,更方便地通過中間件和接口實現(xiàn)快速開發(fā),更加強調(diào)無縫銜接、可遷移、可直接調(diào)用,其生態(tài)也將愈加成熟。
目前,要實現(xiàn)智能網(wǎng)卡底層架構(gòu)和上層應(yīng)用的標準化,雖然還存在一定挑戰(zhàn),但已經(jīng)是智能網(wǎng)卡行業(yè)發(fā)展的大勢所趨。智能網(wǎng)卡的主流廠商在底層架構(gòu)的設(shè)計和實現(xiàn)方式方面仍存在各自封閉發(fā)展的問題,例如:NVIDIA采用的是“ARM+ASIC+專用加速器”的架構(gòu),Intel主要采用的是基于“FPGA+x86”的架構(gòu),而芯啟源則采用NP-SoC的架構(gòu),并且各自都有一套自研生態(tài)系統(tǒng)。此外,負責上層應(yīng)用的各大廠商正在結(jié)合自身戰(zhàn)略錨定不同應(yīng)用細化領(lǐng)域進行產(chǎn)品研發(fā),技術(shù)方面也是“八仙過海,各顯神通”。這些廠商通過COTS組件構(gòu)建系統(tǒng)以降低研發(fā)成本,又以打造定制化產(chǎn)品為目的分層構(gòu)建IaaS/PaaS/SaaS服務(wù)。
上層應(yīng)用的標準化發(fā)展和底層架構(gòu)的統(tǒng)一緊密相關(guān)。一方面,上層負載不同必然導致其對底層架構(gòu)的需求各異;另一方面,隨著智能網(wǎng)卡未來多樣化的場景需求,需要統(tǒng)一的上層應(yīng)用來整合這些不同類別的應(yīng)用需求,并適應(yīng)底層架構(gòu)。未來,要實現(xiàn)智能網(wǎng)卡在各個領(lǐng)域的全面部署,構(gòu)建一種大規(guī)模統(tǒng)一的底層架構(gòu)和完整的上層應(yīng)用生態(tài),在滿足特定需求的同時便于橫向擴展必不可少。
隨著5G、云計算、大數(shù)據(jù)、人工智能等云網(wǎng)融合基礎(chǔ)要素技術(shù)的快速發(fā)展,快速且安全地處理各領(lǐng)域業(yè)務(wù)對當下的基礎(chǔ)設(shè)施提出了更高要求。智能網(wǎng)卡,憑借其“軟件定義+硬件加速”的高性能、可編程、低成本的優(yōu)勢,引起了學術(shù)界和產(chǎn)業(yè)界的廣泛關(guān)注。與現(xiàn)有的以CPU為中心的加速方案相比,以智能網(wǎng)卡為中心的加速方案不僅能大幅減輕CPU的負擔、有效提高數(shù)據(jù)處理速度和安全,還能降低其他硬件處理器的性能損耗,最大程度地提升系統(tǒng)整體性能。目前,學術(shù)界已在智能網(wǎng)卡的數(shù)據(jù)傳輸、負載平衡、任務(wù)調(diào)度和性能隔離等方面的研究取得了明顯進展;產(chǎn)業(yè)界的智能網(wǎng)卡主流產(chǎn)品也已進入技術(shù)穩(wěn)定和初步商用階段。下一階段,智能網(wǎng)卡將不斷優(yōu)化底層硬件設(shè)計,并提高靈活可編程的能力,逐步由單一場景功能的精細化擴展至各行各業(yè)的廣泛應(yīng)用。此外,考慮到智能網(wǎng)卡的技術(shù)成熟和商業(yè)化推廣,構(gòu)建開放的軟件生態(tài),加強軟硬件協(xié)作,并實現(xiàn)底層架構(gòu)和上層應(yīng)用的標準化統(tǒng)一,將成為智能網(wǎng)卡行業(yè)關(guān)注熱點。未來,CPU、GPU、DPU等計算架構(gòu)將持續(xù)融合,邁入“多PU”共存的時代。