亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于vDPA 的虛擬網(wǎng)絡轉(zhuǎn)發(fā)技術研究與優(yōu)化

        2022-01-08 11:57:18歐陽卓玥鄒素雯
        電子設計工程 2022年1期
        關鍵詞:驅(qū)動程序網(wǎng)卡內(nèi)核

        歐陽卓玥,鄒素雯

        (1.武漢郵電科學研究院,湖北武漢 430074;2.烽火通信科技股份有限公司,湖北武漢 430205)

        5G 時代的到來,加速了網(wǎng)絡虛擬化的進程。隨著軟件定義網(wǎng)絡(SDN)和網(wǎng)絡功能虛擬化(NFV)的快速發(fā)展,云數(shù)據(jù)中心網(wǎng)絡的架構也隨之發(fā)生轉(zhuǎn)變,開始使用虛擬化技術[1]。在虛擬網(wǎng)絡轉(zhuǎn)發(fā)過程中,雖然內(nèi)核模塊可以直接訪問硬件設備,但是用戶空間應用程序需要執(zhí)行系統(tǒng)調(diào)用并在內(nèi)核中執(zhí)行中間步驟,增加了主要任務的開銷[2]?;贗ntel x86架構的數(shù)據(jù)平面開發(fā)套件(Data Plane Development Kit,DPDK)是一套為Linux 用戶空間應用程序提供優(yōu)化庫的解決方案,可以避免從用戶空間到內(nèi)核態(tài)空間報文的復制過程。雖然基于DPDK 的OVS 方案在數(shù)據(jù)包處理效率方面相對于傳統(tǒng)的Linux 數(shù)據(jù)收發(fā)方案有很大提高,但依然無法滿足現(xiàn)在日益增長的對網(wǎng)絡轉(zhuǎn)發(fā)性能的需求。vhost數(shù)據(jù)路徑加速(vhost Data Path Acceleration,vDPA)技術在基于DPDK 的OVS 方案的基礎上,通過優(yōu)化virtio 數(shù)據(jù)平面的vhost 數(shù)據(jù)路徑,使得數(shù)據(jù)流轉(zhuǎn)發(fā)達到線速性能,提升了虛擬網(wǎng)絡轉(zhuǎn)發(fā)效率。

        1 虛擬網(wǎng)絡轉(zhuǎn)發(fā)技術

        1.1 DPDK虛擬化技術

        DPDK(Data Plane Development Kit)是Intel 提供的基于x86 架構的數(shù)據(jù)平面開發(fā)工具集[3],主要以Intel Architecture(IA)多核處理器為目標平臺,實現(xiàn)了高性能數(shù)據(jù)包處理。DPDK 是一個全面的網(wǎng)絡內(nèi)核旁路解決方案,不僅支持眾多的網(wǎng)卡類型,也有多種內(nèi)存和CPU 調(diào)度的優(yōu)化方案。

        DPDK 的主要模塊包括核心庫Core Libs、PMD庫、Classify庫和QoS庫等[4]。核心庫Core Libs 是DPDK 程序的基礎,包括系統(tǒng)抽象層、內(nèi)存管理、無鎖環(huán)、緩存池等;PMD 庫提供全用戶態(tài)的驅(qū)動,通過輪詢和線程綁定得到極高的網(wǎng)絡吞吐,支持各種物理和虛擬網(wǎng)卡;Classify 庫支持精確匹配、最長匹配和通配符匹配,提供常用包處理的查表操作;QoS 庫提供網(wǎng)絡服務質(zhì)量相關組件,如限速和調(diào)度等。

        DPDK 解決了IA 多核處理器對高性能數(shù)據(jù)包處理的需求[5],其核心思想主要包括以下幾個方面:①輪詢模式[6],DPDK 輪詢網(wǎng)卡檢測是否有網(wǎng)絡報文的接收或者發(fā)送,避免了傳統(tǒng)網(wǎng)卡驅(qū)動的中斷上下文的開銷;②用戶態(tài)驅(qū)動,DPDK 通過用戶態(tài)驅(qū)動的開發(fā)框架在用戶態(tài)操作設備及數(shù)據(jù)包,避免了不必要的用戶態(tài)和內(nèi)核態(tài)之間的數(shù)據(jù)拷貝和系統(tǒng)調(diào)用;③親和性與獨占,利用線程的CPU 親和綁定的方式,將特定的線程指定在固定的核上運行,避免線程在不同核之間頻繁切換帶來的開銷,提高并行處理的吞吐量;④降低訪問存儲開銷,DPDK 使用大頁技術降低TLB(Translation Lookaside Buffer)未命中率,利用預取命令提高緩存的訪問率等。

        1.2 Open vSwitch及相關技術

        Open vSwitch(OVS)主要用于云環(huán)境中虛擬網(wǎng)絡的管理,使得對網(wǎng)絡狀態(tài)的流量監(jiān)控變得更容易。OVS 是一個高質(zhì)量的多層虛擬交換機,滿足了不同虛擬化平臺間的移植性。OVS 支持可編程自動化網(wǎng)絡大規(guī)模部署及拓展,能夠支持標準網(wǎng)絡管理接口和協(xié)議,還支持與其他現(xiàn)有虛擬交換方案的混合部署。OVS 在物理服務器上創(chuàng)建一個或多個vSwitch供各個虛擬機接入,將接入到OVS 的虛擬機分配到不同的VLAN 中實現(xiàn)網(wǎng)絡隔離。

        Open vSwitch產(chǎn)生的主要目的是管理和配置虛擬機網(wǎng)絡,如圖1 所示,在軟件定義網(wǎng)絡的架構下,OVS作為SDN交換機,向上連接控制器,向下連接主機,同時OVS 交換機可以與物理交換機通信,相互交流數(shù)據(jù)。OVS 的基本功能主要包括:①自動化控制:OVS支持Open Flow[7],用戶可以通過ovs-ofctl 使用Open Flow 協(xié)議連接交換機,實現(xiàn)查詢和控制;②QoS:支持擁塞管理和流量整形;③安全:支持VLAN 隔離、流量過濾等功能,保證了虛擬網(wǎng)絡的安全性;④監(jiān)控:支持Netflow、SFlow、SPAN、RSPAN 等網(wǎng)絡監(jiān)控技術。

        圖1 OVS交換機的角色

        1.3 基于DPDK的OVS轉(zhuǎn)發(fā)技術

        雖然OVS 作為虛擬交換機已經(jīng)進行了優(yōu)化,但是它在網(wǎng)絡功能虛擬化場景下的轉(zhuǎn)發(fā)性能、時延等方面還需要提高。Intel 利用DPDK 的加速思想,通過配置軟件架構,使得從OVS 連接的某個網(wǎng)絡端口接收到的報文不需要openvswitch.ko 內(nèi)核態(tài)的處理,報文直接通過DPDK PMD 驅(qū)動到達用戶態(tài)ovsvswitchd 里[8],對OVS 的轉(zhuǎn)發(fā)性能進行了優(yōu)化。

        DPDK 加速的OVS利用了DPDK 的PMD 驅(qū)動、向量指令、大頁等技術,來優(yōu)化用戶態(tài)的數(shù)據(jù)通路,直接繞過內(nèi)核態(tài)的數(shù)據(jù)通路,加速物理網(wǎng)口和虛擬網(wǎng)口的報文處理速度。圖2 顯示了基于DPDK 加速的OVS轉(zhuǎn)發(fā)流程圖。

        圖2 基于DPDK加速的OVS轉(zhuǎn)發(fā)流程圖

        2 vDPA技術簡介

        2.1 vDPA技術

        vDPA(vhost Data Path Acceleration)虛擬數(shù)據(jù)路徑加速,主要目的是標準化網(wǎng)卡的SRIOV 數(shù)據(jù)通路,讓SRIOV 的虛擬功能可以支持virtio ring 的layout,并且在Guest的空間可以使用標準的virtio 驅(qū)動。

        vDPA 本質(zhì)上是一種使用virtio ring layout 標準化NIC SRIOV 數(shù)據(jù)平面并將單個標準virtio 驅(qū)動程序放置在與任何供應商實現(xiàn)分離的方法,同時向其中添加了通用控制平面來支持它[9]。因為vDPA 是SRIOV 之上的抽象層,因此它還可以支持可擴展IOV 等新興技術。

        vDPA 有潛力成為為虛擬機提供線速以太網(wǎng)接口的解決方案,它具有以下優(yōu)勢:①開放的公共規(guī)范:任何人都可以看到、使用和參與更新規(guī)范(virtio規(guī)范),而不用鎖定特定的供應商;②線速性能:與SRIOV 類似,中間沒有memory 地址翻譯;③單個通用NIC 驅(qū)動程序:可以將virtio-net 驅(qū)動程序作為標準驅(qū)動程序,和用于存儲設備的NVMe 驅(qū)動程序一樣,通過vDPA 框架支持不同廠家的網(wǎng)卡。

        2.2 vDPA DPDK設計

        DPDK 基于vhost-user 的協(xié)議為vDPA 技術提供了一個后端實現(xiàn)。在內(nèi)核里,DPDK 主要基于mdev框架實現(xiàn)。DPDK 中設計增加兩個新組件:vDPA 驅(qū)動和用戶態(tài)驅(qū)動,來控制vDPA 設備硬件;vDPA 框架提供vhost-user socket 和vDPA 驅(qū)動的連接。vDPA DPDK 框架提供一系列的設備回調(diào)函數(shù),由網(wǎng)卡廠家實現(xiàn),這些函數(shù)被vhost-user 調(diào)用來創(chuàng)建數(shù)據(jù)路徑[10]。vDPA 在vhost-user 庫中添加選擇性的數(shù)據(jù)路徑支持,將設備驅(qū)動程序與vhost socket 關聯(lián),將vswitch 添加為端口代表,同時能將信息返回到數(shù)據(jù)路徑中。

        在應用場景中使用vDPA 設備,其數(shù)據(jù)路徑還是全硬件卸載,而控制路徑可以使用vDPA API。相對于全卸載的virtio PMD 模式,這種方式的好處是更加靈活,可以切換到其他使用vDPA 的硬件設備或回到全軟件路徑,同時也可以實現(xiàn)對熱遷移的支持并實現(xiàn)標準化。

        3 基于vDPA轉(zhuǎn)發(fā)優(yōu)化的實現(xiàn)

        自DPDK18.05 版本開始,DPDK 實現(xiàn)了對vDPA的支持。它基于vhost-user 協(xié)議,為前端提供統(tǒng)一的控制路徑[11]。在DPDK 中支持vDPA 功能,使得內(nèi)核中基于MDEV 框架的vDPA 框架能更標準地實現(xiàn)。

        如圖3 所示,為運用vDPA 技術的數(shù)據(jù)流在各個模塊中的轉(zhuǎn)發(fā)流程圖。硬件層中有一個vDPA 設備,位于網(wǎng)卡中虛擬功能(Virtual Function,VF)和物理功能(Physical Function,PF)中間的模塊,該設備使用其專有的控制路徑直接填充虛擬隊列。virtio-net設備實現(xiàn)了驅(qū)動底層vDPA 設備的實際功能。這個vDPA 設備采用將virtio 數(shù)據(jù)路徑卸載到該設備的方式。virito-mdev 設備通過自身的API 接口傳輸virtio-mdev 命令[12],并執(zhí)行命令轉(zhuǎn)換、仿真或調(diào)解。

        圖3 vDPA流程圖

        vDPA DPDK 框架引入了一組由供應商vDPA 設備驅(qū)動程序?qū)崿F(xiàn)的回調(diào),由vhost-user 庫調(diào)用以設置數(shù)據(jù)路徑,在rte_vdpa_dev_ops 結構體中可以看到,這些回調(diào)中一半與標準vhost-user 協(xié)議請求具有一一對應的關系,例如獲取和設置virito 功能[13]、獲取受支持的vhost-user 協(xié)議功能等。其中dev_conf 回調(diào)函數(shù)用于設置和啟動設備,并在vhost-user 層接收到設置和啟用數(shù)據(jù)路徑所需的所有信息后被調(diào)用。在此回調(diào)函數(shù)中,vDPA 設備驅(qū)動程序?qū)⒃O置環(huán)地址、DMA mapping 并 啟動設 備[14]。

        4 性能測試

        在Linux 環(huán)境中對虛擬機之間的通信進行測試,主要是vDPA 技術使用前后對網(wǎng)絡I/O 性能的對比測試。在兩臺相同的服務器中搭建實驗環(huán)境,服務器的配置如表1 所示。

        表1 服務器基本配置表

        在第一臺服務器中搭建基于DPDK 加速的OVS實驗環(huán)境,在第二臺服務器中搭建vDPA 的實驗環(huán)境,分別在兩種實驗環(huán)境中創(chuàng)建虛擬機進行通信測試。實驗環(huán)境中使用iperf 命令行作為網(wǎng)絡性能的測試工具,可以測試兩臺虛擬機之間的帶寬性能[15]。

        在DPDK-OVS 實驗環(huán)境中,配置、編譯DPDK 和OVS 并進行大頁設置和VFIO[16]。vDPA 實驗環(huán)境中的測試方案如圖4 所示,在環(huán)境中修改.config 文件進行配置,用Linux 命令啟動librte_pmd_mlx5_vdpa 程序,使DPDK 應用程序與libibverbs 連接。然后創(chuàng)建兩臺虛擬機,其中一臺作為客戶端,另一臺作為服務端,從客戶端向服務端發(fā)送數(shù)據(jù),數(shù)據(jù)直接通過數(shù)據(jù)平面到達網(wǎng)卡進行轉(zhuǎn)發(fā),進一步提高了數(shù)據(jù)轉(zhuǎn)發(fā)效率。實驗中分別測試TCP 協(xié)議和UDP 協(xié)議在虛擬機之間的傳輸帶寬值。

        圖4 優(yōu)化后轉(zhuǎn)發(fā)測試網(wǎng)絡拓撲圖

        對實驗測試結果進行整理,TCP 轉(zhuǎn)發(fā)測試數(shù)據(jù)如圖5 所示,UDP 轉(zhuǎn)發(fā)測試數(shù)據(jù)如圖6 所示??梢钥吹绞褂胿DPA 技術優(yōu)化后網(wǎng)絡帶寬在原來DPDKOVS 基礎上幾乎增加了一倍。

        圖5 TCP轉(zhuǎn)發(fā)測試數(shù)據(jù)

        圖6 UDP轉(zhuǎn)發(fā)測試數(shù)據(jù)

        5 結束語

        文中首先對當前虛擬網(wǎng)絡轉(zhuǎn)發(fā)技術進行了分析研究,提出了一種新的基于vDPA 技術的虛擬網(wǎng)絡轉(zhuǎn)發(fā)性能優(yōu)化設計方案并進行實現(xiàn),通過加速數(shù)據(jù)路徑達到優(yōu)化數(shù)據(jù)流轉(zhuǎn)發(fā)過程的目的,通過在實驗環(huán)境中進行優(yōu)化前后的對比測試驗證了該解決方案的可行性。

        猜你喜歡
        驅(qū)動程序網(wǎng)卡內(nèi)核
        在DDS 中間件上實現(xiàn)雙冗余網(wǎng)卡切換的方法
        萬物皆可IP的時代,我們當夯實的IP內(nèi)核是什么?
        強化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
        Server 2016網(wǎng)卡組合模式
        基于嵌入式Linux內(nèi)核的自恢復設計
        Linux內(nèi)核mmap保護機制研究
        挑戰(zhàn)Killer網(wǎng)卡Realtek網(wǎng)游專用Dragon網(wǎng)卡
        驅(qū)動程序更新與推薦
        驅(qū)動程序更新與推薦
        驅(qū)動程序更新與推薦
        丰满少妇被爽的高潮喷水呻吟| 亚洲精品乱码久久久久99| 又紧又大又爽精品一区二区| 在线观看人成视频免费| 国产精品免费一区二区三区四区| 久久婷婷国产综合精品| 美女张开腿让男人桶爽| 久久综合狠狠色综合伊人| 欧美人与动牲交a精品| 黑人巨茎大战欧美白妇| 国产午夜亚洲精品午夜鲁丝片| 日本又黄又爽gif动态图| 99久久国产综合精品麻豆| 最近高清中文在线字幕观看| 国产日韩A∨无码免费播放| 国产系列丝袜熟女精品视频| 亚洲AV无码未成人网站久久精品| 亚洲天天综合色制服丝袜在线| 亚洲加勒比无码一区二区在线播放| 国产一级一片内射视频在线| 日韩精品自拍一区二区| 国产二区中文字幕在线观看 | 国产av一级片在线观看| 亚洲一区二区日韩专区| 精品人妻一区二区三区在线观看| 亚洲熟妇av一区| 亚洲中文字幕无码一久久区| 特黄特色的大片观看免费视频| 亚洲国产精品久久久久久久| 色www亚洲| 好爽~又到高潮了毛片视频| 水蜜桃视频在线观看免费18| 韩国女主播一区二区三区在线观看 | 久久精品国产99国产精偷| 性生交片免费无码看人| 亚洲a∨国产av综合av下载| 国产成人精品无码播放| 2021年最新久久久视精品爱| 国内精品嫩模av私拍在线观看 | 亚洲中文字幕无码二区在线| 精品亚洲乱码一区二区三区|