李亮,陳茹萍,方魯杰,韓宇崢,姜冰,徐志亮,袁泉
(1.中電(海南)聯(lián)合創(chuàng)新研究院有限公司,海南 澄邁 571924;2.海南省 PK 體系關鍵技術研究重點實驗室,海南 澄邁 571924;3.中軟信息系統(tǒng)工程有限公司,中國 北京 102209)
國產(chǎn)化網(wǎng)絡技術創(chuàng)新和應用已經(jīng)成為國內(nèi)發(fā)展的主流趨勢,互聯(lián)網(wǎng)數(shù)據(jù)和信息安全問題也越來越得到國家的重視。為了我國互聯(lián)網(wǎng)絡技術的不斷發(fā)展壯大,構造我國自主創(chuàng)新的網(wǎng)信產(chǎn)業(yè)體系,使國產(chǎn)信息化產(chǎn)品更好地與國產(chǎn)計算機體系進行適配,中國電子信息產(chǎn)業(yè)集團于2019 年發(fā)布了完全獨立自主研發(fā)的國產(chǎn)化計算機軟硬件基礎體系—PKS 體系[1],它具有自主、安全、可控的特性。
在這個大背景下,國家網(wǎng)信產(chǎn)業(yè)的發(fā)展也帶動了國產(chǎn)智能網(wǎng)卡的發(fā)展。國產(chǎn)智能網(wǎng)卡相較于普通網(wǎng)卡,在業(yè)務卸載、基于硬件級別的網(wǎng)絡虛擬化和網(wǎng)絡安全等方面都有較大優(yōu)勢。將國產(chǎn)智能網(wǎng)卡加入PKS 體系中,可以進一步加強計算機底層軟硬件的網(wǎng)絡自主安全能力。
本文研究了基于 PKS 體系下國產(chǎn)智能網(wǎng)卡在不同場景的性能規(guī)律,發(fā)現(xiàn)現(xiàn)階段國產(chǎn)智能網(wǎng)卡在實際應用中存在的問題,為用戶選擇國產(chǎn)智能網(wǎng)卡提供數(shù)據(jù)參考,同時推動國產(chǎn)智能網(wǎng)卡廠商對其進行優(yōu)化,加速PKS 體系對網(wǎng)絡自主安全可控的研究。
PKS 體系是由中國電子自主研發(fā)的綠色、開放、共享、安全的數(shù)字原生態(tài)架構體系。其中P 代表Phytium飛騰處理器,K 代表Kylin 麒麟操作系統(tǒng),S 代表Security注入安全能力[2]。PKS 體系將國產(chǎn)化操作系統(tǒng)和CPU(Central Processing Unit)處理器進行整合,并將安全注入到最底層,形成一條完整的國產(chǎn)化計算機產(chǎn)業(yè)鏈。PKS 體系代表國家自主網(wǎng)信產(chǎn)業(yè)的主流趨勢,也被稱為“中國架構”。
PKS 體系的架構優(yōu)勢總結為以下三點[3-5]:
(1) 國際首次采用CPU 的內(nèi)置可信技術:將可信計算融入到飛騰CPU中,并且通過可信任白名單嵌入到麒麟操作系統(tǒng),實現(xiàn)可信計算和安全防護的雙體系結構。
(2) 國際首次采用內(nèi)存內(nèi)置物理防護技術:在內(nèi)存控制層內(nèi)置硬件防護芯片,對關鍵代碼和數(shù)據(jù)進行實時的權限管理。
(3)終端統(tǒng)一安全中心、云端統(tǒng)一安全管控:在終端統(tǒng)一安全防護軟件接口、在云端統(tǒng)一安全管控接口,使常規(guī)安全軟件與PKS 底層核心一體化來提升安全防護效果和效率。
PKS 體系加強了網(wǎng)絡安全防護,通過處理器內(nèi)核間物理隔離和物理安全防護,將可信計算3.0 主動免疫隔離出可信核用于可信計算、內(nèi)存隔離、I/O 隔離等,并通過將白名單機制嵌入到麒麟操作系統(tǒng)中進行全流程監(jiān)控管理??尚庞嬎?.0 技術將可信計算融入到處理器進行安全防護,為網(wǎng)絡信息系統(tǒng)培養(yǎng)主動免疫能力,形成操作系統(tǒng)和存儲控制器多級最底層的體系防護。
PKS 體系的網(wǎng)絡安全防護[3]如圖1 所示。
圖1 PKS 可信雙體系防護
目前PKS 體系已經(jīng)在數(shù)據(jù)庫、云計算等方面得到應用,形成一條完整安全的國產(chǎn)化計算機產(chǎn)業(yè)鏈,但是隨著我國互聯(lián)網(wǎng)技術不斷發(fā)展壯大,在云存儲和虛擬化平臺網(wǎng)絡數(shù)據(jù)和信息安全等方面的問題也在不斷顯露出來,因為大量的業(yè)務需求致使網(wǎng)絡數(shù)據(jù)流量快速增長,加重了宿主機的硬件負擔,雖然軟件優(yōu)化可以增強轉(zhuǎn)發(fā)性能[6],但是仍然存在以下幾個問題:
(1)虛擬交換機在使用時會占用服務器的多個CPU核,大量消耗宿主機的計算資源,造成企業(yè)的成本增加和資源浪費。
(2)隨著服務器網(wǎng)口帶寬的提升,到了25 Gb/s 甚至100 Gb/s 之后,服務器用于處理數(shù)據(jù)報文的開銷越來越大,軟件優(yōu)化方案無法解決面臨的性能瓶頸,無法滿足高速增長的高網(wǎng)絡帶寬的需求。
國產(chǎn)智能網(wǎng)卡的出現(xiàn)是為了實現(xiàn)對各種虛擬化網(wǎng)絡的支持,并將網(wǎng)絡、存儲和系統(tǒng)需要利用宿主機高資源的網(wǎng)絡功能進行卸載,提升數(shù)據(jù)處理能力,釋放硬件資源,并將其加入PKS 體系,提升網(wǎng)絡的安全隔離能力。
國產(chǎn)智能網(wǎng)卡架構技術特點:
(1)國產(chǎn)智能網(wǎng)卡可以實現(xiàn)對部分網(wǎng)絡功能的卸載,提高網(wǎng)絡吞吐量,減少宿主機的負載。
(2)國產(chǎn)智能網(wǎng)卡具有獨立的計算單元,能夠完成特定的重組加速和安全加速等功能。
(3)國產(chǎn)智能網(wǎng)卡具備可定制功能,根據(jù)需求靈活定制新的功能特性,可以執(zhí)行特定的網(wǎng)絡和數(shù)據(jù)功能,增加一定的邏輯后還可以實現(xiàn)部分vSwitch 的功能[7]。
目前國內(nèi)流行的國產(chǎn)智能網(wǎng)卡主要分為三類:基于ASIC(Application Specific Integrated Circuit)架構、基于FPGA(Field-Programmable Gate Array)架構、基于SoC(System on Chip)架構。
基于ASIC 架構使用專用網(wǎng)絡通道,通過多線程微處理器加速內(nèi)核為用戶提供最高使用性能,同時降低CPU 負擔。ASIC 架構的智能網(wǎng)卡成本低,性能優(yōu),但其開發(fā)周期長,設計完成后邏輯固化不可更改。
基于FPGA 架構通過使用FPGA 編程對智能網(wǎng)卡的通用邏輯和可重構處理邏輯進行重新編輯,編程后可以滿足不同要求的使用需求。FPGA 智能網(wǎng)卡靈活性高,但是其成本較高,難編譯。
基于SoC 架構設計是集合ASIC 和FPGA 編程的集成CPU 處理器,它擁有前兩種的所有優(yōu)勢,可以零消耗實現(xiàn)虛擬化層。SoC 智能網(wǎng)卡的實用性強,易操作,更具有實際應用價值。
本文所研究的國產(chǎn)智能網(wǎng)卡是采用國產(chǎn)多核處理器+FPGA 的協(xié)同架構,提供高性能和可編程能力。FPGA 可編程能力可以根據(jù)需求靈活定制新的功能特性,并且內(nèi)置國產(chǎn)CPU 也可加強網(wǎng)絡傳輸?shù)陌踩?,起到網(wǎng)絡安全隔離的作用[8],國產(chǎn)智能網(wǎng)卡是國產(chǎn)化網(wǎng)絡安全體系不可或缺的構件。其架構原理圖如圖2所示。
圖2 國產(chǎn)智能網(wǎng)卡架構原理圖
為了滿足國產(chǎn)計算機對實際業(yè)務的需求,將國產(chǎn)智能網(wǎng)卡的特點與PKS 體系的特性相結合,從而增強網(wǎng)絡安全、提升網(wǎng)絡性能。
1.2.1 國產(chǎn)智能網(wǎng)卡與普通網(wǎng)卡的區(qū)別
普通網(wǎng)卡僅實現(xiàn)物理層和數(shù)據(jù)鏈路層的功能[9],但是服務器CPU 則負責處理上層邏輯的網(wǎng)絡協(xié)議。CPU根據(jù)上層的邏輯對數(shù)據(jù)包進行封裝和解封,而網(wǎng)卡根據(jù)更下層的邏輯僅對幀進行封裝和解封。
國產(chǎn)智能網(wǎng)卡卸載了部分傳輸層和路由層的處理邏輯[10],并將有線網(wǎng)絡和計算資源整合在一張可以編程的網(wǎng)卡上,以減少硬件的開銷,提高服務器運行關鍵程序和操作系統(tǒng)的效率。智能網(wǎng)卡還具備計算能力,可以將服務器端的網(wǎng)絡功能、安全功能和儲存功能等卸載到網(wǎng)卡的硬件上,完全釋放服務器的運算處理能力,使宿主機有更多資源去和現(xiàn)有的高速網(wǎng)絡進行匹配。
1.2.2 國產(chǎn)智能網(wǎng)卡應用特征
(1) 網(wǎng)絡虛擬化。將Open vSwitch 等常見流量處理工作卸載到智能網(wǎng)卡中,構建基于硬件性能級別的OverLay 網(wǎng)絡和VxLAN/Geneve 網(wǎng)絡,優(yōu)化網(wǎng)絡轉(zhuǎn)發(fā)性能。
(2) 存儲優(yōu)化。國產(chǎn)智能網(wǎng)卡提供標準化接口機制,操作系統(tǒng)可以直接訪問存儲資源池,減少對特定外部設備驅(qū)動的依賴。
(3) 加速功能。國產(chǎn)智能網(wǎng)卡支持卸載部分傳輸層和路由層的處理邏輯,降低服務器的資源開銷,提高網(wǎng)絡吞吐量。
(4) 架構靈活。FPGA 架構靈活開放,軟硬件都具備可編程能力,支持擴展網(wǎng)卡特性和應用功能。并且提供Virtio 虛擬化原生接口,減少對外部驅(qū)動的依賴,即插即用靈活部署。
(5)芯片安全。采用國產(chǎn) CPU 芯片,安全可控,為用戶網(wǎng)絡安全提供基礎保障。
為了使國產(chǎn)智能網(wǎng)卡更好地與國產(chǎn)化服務器進行適配,本文在PKS 體系下對智能網(wǎng)卡的不同應用場景進行驗證,從而發(fā)現(xiàn)現(xiàn)階段國產(chǎn)智能網(wǎng)卡的實際應用問題,為國產(chǎn)智能網(wǎng)卡下階段優(yōu)化提供實際數(shù)據(jù)和優(yōu)化建議。本節(jié)針對國產(chǎn)智能網(wǎng)卡和普通網(wǎng)卡在PKS 體系下的應用場景進行研究和分析,主要從基準性能、HTTP 應用場景、特性場景(iSCSI 存儲場景、VxLAN 網(wǎng)絡場景)三個方面開展性能對比。
結合實際的應用場景,本文共設計了兩套對比環(huán)境,即長城S2500+普通網(wǎng)卡和長城S2500+國產(chǎn)智能網(wǎng)卡(CPU+FPGA),根據(jù)實際時間周期計劃,每套環(huán)境設計四組對比樣本,并行開展對比工作。具體環(huán)境如表1所示。
表1 環(huán)境配置信息
2.2.1 基準性能
國產(chǎn)智能網(wǎng)卡和普通網(wǎng)卡的基準性能對比主要從帶寬、時延、請求應答響應效率、丟包率、網(wǎng)絡抖動、中斷數(shù)等方面開展,具體數(shù)據(jù)如表2 所示。
表2 網(wǎng)絡基準性能
通過對表中數(shù)據(jù)進行分析,在TCP 性能方面(包括帶寬、時延、TCP_RR)國產(chǎn)智能網(wǎng)卡與普通網(wǎng)卡的性能相差幅度不大,僅在2%~15%。在UDP_RR 性能方面,智能網(wǎng)卡相較于普通網(wǎng)卡性能差異達到252.6%,其主要原因是FPGA 對于UDP(User Datagram Protocol)報文的處理邏輯存在問題。在網(wǎng)卡中斷方面,國產(chǎn)智能網(wǎng)卡由于未實現(xiàn)中斷聚合功能,且中斷向量的數(shù)量較少,因此產(chǎn)生的中斷數(shù)量和CPU 利用率相較于普通網(wǎng)卡差異較大。
2.2.2 HTTP 應用場景
國產(chǎn)智能網(wǎng)卡和普通網(wǎng)卡的HTTP 應用場景對比主要從QPS(Query Per Second)指標開展,具體數(shù)據(jù)如表3所示。
表3 HTTP 應用場景性能
HTTP 應用場景方面,國產(chǎn)智能網(wǎng)卡相較于普通網(wǎng)卡的性能差異較明顯,主要原因有以下三點:
(1)國產(chǎn)智能網(wǎng)卡目前僅支持單隊列,在多連接并發(fā)場景下,單隊列無法及時處理多個網(wǎng)絡包。
(2)國產(chǎn)智能網(wǎng)卡的slow path 慢路徑下的并發(fā)處理能力有限。在較大并發(fā)場景下,大量首個網(wǎng)絡包同時走slow path 慢路徑,導致無法及時處理網(wǎng)絡首包。國產(chǎn)智能網(wǎng)卡的報文處理分為fast path 快路徑和slow path 慢路徑,快路徑是報文與硬件流表進行匹配后直接轉(zhuǎn)發(fā),慢路徑是報文在硬件流表中匹配失敗,需要到軟件流表進行二次匹配再更新硬件流表進行轉(zhuǎn)發(fā),智能網(wǎng)卡的流表流向原理圖如圖3 所示。
圖3 智能網(wǎng)卡流表流向原理圖
(3)國產(chǎn)智能網(wǎng)卡的FPGA 上的硬件流表有限。在較大并發(fā)場景下,大量未被FPGA 及時處理的非首包流向CPU 的慢路徑,造成性能損耗。
2.2.3 特性場景
特性場景對國產(chǎn)智能網(wǎng)卡和普通網(wǎng)卡的性能對比,主要從iSCSI 存儲場景和VxLAN 網(wǎng)絡場景兩方面開展。
(1)iSCSI 儲存場景
國產(chǎn)智能網(wǎng)卡和普通網(wǎng)卡的iSCSI 儲存場景對比主要從IOPS((Input Operations Per Second)和帶寬兩項指標開展,具體數(shù)據(jù)如表4 所示。
表4 iSCSI 存儲性能
在iSCSI 存儲場景下,國產(chǎn)智能網(wǎng)卡的各項存儲性能指標均低于普通網(wǎng)卡,主要原因有以下兩點:
①國產(chǎn)智能網(wǎng)卡內(nèi)部流控機制待優(yōu)化,未對突發(fā)的連續(xù)讀請求進行緩存和調(diào)度,造成了請求堵塞阻塞,導致讀性能較低。
②國產(chǎn)智能網(wǎng)卡內(nèi)部邏輯已經(jīng)啟用了網(wǎng)絡通道發(fā)送校驗和計算的卸載,但接收方向暫時還不支持校驗和計算卸載,導致寫性能較低。
(2)VxLAN 網(wǎng)絡場景
VxLAN(Virtual eXtensible Local Area Network,虛擬可擴展的局域網(wǎng))是一種OverLay 技術,通過三層網(wǎng)絡搭建虛擬的二層網(wǎng)絡。將VxLAN 部署在互通IP 的三層網(wǎng)絡,使用隧道端點VTEP(VxLAN Tunnel End Point)封裝相應VxLAN 數(shù)據(jù)的IP 地址,然后在物理網(wǎng)絡上創(chuàng)建多個VxLAN 網(wǎng)絡形成傳輸隧道,最后通過VxLAN 隧道來實現(xiàn)VTEP 之間的數(shù)據(jù)傳輸。
國產(chǎn)智能網(wǎng)卡和普通網(wǎng)卡的VxLAN 網(wǎng)絡場景對比主要從帶寬、時延、請求應答響應效率、包轉(zhuǎn)發(fā)效率四個方面開展,具體數(shù)據(jù)如表5 所示。
表5 VxLAN 網(wǎng)絡性能
在VxLAN 網(wǎng)絡場景下,國產(chǎn)智能網(wǎng)卡利用FPGA硬件進行OVS 流表轉(zhuǎn)發(fā),對于云網(wǎng)絡的加速具有一定效果,國產(chǎn)智能網(wǎng)卡的時延、響應效率和包轉(zhuǎn)發(fā)效率均優(yōu)于普通網(wǎng)卡,但其帶寬仍低于普通網(wǎng)卡帶寬。
目前由于國內(nèi)對于國產(chǎn)智能網(wǎng)卡的研究仍處于初級研制階段,因此與普通網(wǎng)卡相比仍有一定的劣勢,雖然在基準性能方面相差不大,但是在HTTP 應用場景下差距較為明顯,相比較于目前市面上的主流網(wǎng)卡,我們的優(yōu)點在于:構建基于硬件性能級別的網(wǎng)絡虛擬化;硬軟件具備可編程能力,基于Virtio 虛擬化接口的開放架構;采用國產(chǎn)CPU 芯片,安全可控。
未來隨著業(yè)務數(shù)據(jù)流量不斷增加,對虛擬化網(wǎng)絡性能的提高迫在眉睫,所以國產(chǎn)智能網(wǎng)卡實現(xiàn)硬件卸載功能,為服務器硬件釋放資源,提高網(wǎng)絡性能變得十分重要。因此國產(chǎn)智能網(wǎng)卡在未來的發(fā)展中,要提高其硬件的穩(wěn)定性,使其在環(huán)境惡劣的條件下依然保持一種高穩(wěn)定性;加強硬件性能的業(yè)務卸載能力,增強其可拓展性與適配性;內(nèi)部嵌入計算性能較優(yōu)的芯片增強其計算性能,從而使國產(chǎn)智能網(wǎng)卡適配對網(wǎng)絡帶寬要求更高的網(wǎng)絡環(huán)境。
隨著PKS 體系的快速發(fā)展,國產(chǎn)智能網(wǎng)卡也需增加對應的API(Application Program Interface)接口以適應PKS 體系下的軟件適配,同時也需要加緊研制對應的監(jiān)控軟件,以能對其進行實時監(jiān)控。