導航:首頁 > 源碼編譯 > 編譯ovsdpdk中的DH

編譯ovsdpdk中的DH

發布時間:2022-11-27 20:01:10

Ⅰ Dpdk與OpenvSwitch

1、DPDK
DPDK是X86平台報文快速處理的庫和驅動的集合,大多數情況下運行在linux的用戶態空間。

2、Open vSwitch
簡稱OVS是一個虛擬交換軟體,主要用於虛擬機VM環境,作為一個虛擬交換機,支持Xen/XenServer, KVM, and VirtualBox多種虛擬化技術。
在這種某一台機器的虛擬化的環境中,一個虛擬交換機(vswitch)主要有兩個作用:傳遞虛擬機VM之間的流量,以及實現VM和外界網路的通信。
在 OVS 中, 有幾個非常重要的概念:
Bridge: Bridge 代表一個乙太網交換機(Switch),一個主機中可以創建一個或者多個 Bridge 設備。
Port: 埠與物理交換機的埠概念類似,每個 Port 都隸屬於一個 Bridge。
Interface: 連接到 Port 的網路介面設備。在通常情況下,Port 和 Interface 是一對一的關系, 只有在配置 Port 為 bond 模式後,Port 和 Interface 是一對多的關系。
Controller: OpenFlow 控制器。OVS 可以同時接受一個或者多個 OpenFlow 控制器的管理。
Datapath: 在 OVS 中,datapath 負責執行數據交換,也就是把從接收埠收到的數據包在流表中進行匹配,並執行匹配到的動作。
Flow table: 每個 datapath 都和一個「flow table」關聯,當 datapath 接收到數據之後, OVS 會在 flow table 中查找可以匹配的 flow,執行對應的操作, 例如轉發數據到另外的埠。

3、OVDK

Ⅱ DPDK pf-ring pf-ring-zc

DPDK  vs pf-ring vs pf-ring-zc      https://blog.csdn.net/whatday/article/details/89242246

基於VPP+DPDK開源框架開發UPF  https://workerwork.github.io/posts/vpp/

VPP vs OVS   

淺析基於DPDK框架下OVS與VPP的差異點    https://www.secrss.com/articles/14352

論用戶態協議棧--DPDK與他的哪些小夥伴們(VPP, OVS, TREX,mTCP,f-Stack等)

InfiniBand RDMA/ROCE     

Open Fast Path

《深入淺出DPDK》讀書筆記(十六):DPDK應用篇(基於DPDK的存儲軟體優化:SPDK)   https://rtoax.blog.csdn.net/article/details/109371661

Ⅲ 如何藉助 OVN 來提高 OVS 在雲計算環境中的性能

雖然 OVN 是 OVS 社區在 2015 年 1 月份才宣布的一個子項目,但是到目前為止 OVN 已經支持了很多功能,
Logical switches:邏輯交換機,用來做二層轉發。
L2/L3/L4 ACLs:二到四層的 ACL,可以根據報文的 MAC 地址,IP 地址,埠號來做訪問控制。
Logical routers:邏輯路由器,分布式的,用來做三層轉發。
Multiple tunnel overlays:支持多種隧道封裝技術,有 Geneve,STT 和 VXLAN。
TOR switch or software logical switch gateways:支持使用硬體 TOR switch 或者軟體邏輯 switch 當作網關來連接物理網路和虛擬網路。
OVN 對於運行平台沒有額外的要求,只要能夠運行 OVS,就可以運行 OVN,所以 OVN 可以和 Linux,Docker,DPDK 還有 Hyper-V 兼容,從 OVS 升級到 OVN 是非常容易的。
另外 OVN 可以和很多 CMS(Cloud Management System)集成到一起,比如 Openstack neutron,這些 CMS 只需要添加一個 plugin 來配置 OVN 即可。

編譯和運行DPDK示常式序

DPDK(Data Plane Development Kit)是數據平面開發工具包,由用於加速在各種CPU架構上運行的數據包處理的庫組成。

在Linux上部署DPDK的方法請參考:
在Linux(CentOS)上部署DPDK------命令行方式

該章節的內容參照自官網的 DPDK build sample apps

當DPDK的target環境創建好後(例如 x86_64-native-linuxapp-gcc ), x86_64-native-linuxapp-gcc 目錄中會包含編譯應用程序的庫和頭文件。

在編譯DPDK應用程序之前,首先需要指定兩個環境變數:

在DPDK的 examples 路徑下面有許多示例應用,這里以其中的 helloworld 為例進行編譯:

DPDK的 examples 路徑下面的應用均可以通過這種方式編譯,也可以直接在 examples 路徑下面運行 make ,將這些應用全都編譯好。

在運行應用程序之前,需要確保:

DPDK應用程序與DPDK target環境的環境抽象層EAL(Environmental Abstraction Layer )庫相關聯,該庫提供了一些通用於每個DPDK應用程序的選項。

EAL的詳細配置請參照: DPDK EAL參數

可按照下列參數運行 ./helloworld :

其中 -l 命令指定cpu cores list是EAL必須的配置;若沒有指定 --socket-mem ,則默認會按照預留的hugepages size來分配。

Ⅳ DPDK實驗環境搭建

事情是是是是是這樣的!
我要用DPDK,但是我覺得搞兩台伺服器連埠發包,太麻煩,雖然實際上,可能並不麻煩。。。。但我就是想在單台伺服器上做。

docker+DPDK+OVS 這種方式來做測試。

然後呢就在網上找了個教程,和我的需求真的是一模一樣。。但是按照那個教程做的過程中啊,出了一些問題。記錄一下~

教程鏈接: https://blog.csdn.net/me_blue/article/details/78589592
其中安裝部分按照教程里的做就可以了。

安裝完dpdk和ovs之後創建網橋以及下發流表用的腳本可以在我的github上獲取。 https://github.com/LinanJ/DPDK-OVS-

在這個實驗中,把pktgen和testpmd放在兩個容器中,然後進行測試。創建容器都沒問題,問題是在啟動pktgen的時候,總是報內存的錯誤,要麼是內存沒有,要麼是內存不足!!!

重點來了,朋友們,教程里的socket_mem部分是兩個1024對吧。那是因為人家有連個NUMA節點,你有么???

我是沒有的。。所以,就會報錯,說是socket1上沒有內存。。顯然沒有。所以啊,如果你只有一個numa節點,那麼你在pktgen上和testpmd上的命令應該是這樣的:

dpdk掛載的就是紅線框的這兩條

這樣就可以了。

Ⅵ ovs 基於dpdk性能優化的原理

得益於用戶態網路協議棧處理,用戶空間,巨頁,內存索引,數據預取, IPC等dpdk的設計,如下維度都有一定性能的提升

除了網路協議棧完全在用戶態處理,內存數據訪問的命中率也有50%+的提升,上下文切換大幅度減少。

性能提升機制主要包括: 提升IPC,內存索引,通過軟體預期降低cache未命中,通過巨頁內存降低TLB未命中,通過用戶空間驅動降低上下文切換次數。

參考:

閱讀全文

與編譯ovsdpdk中的DH相關的資料

熱點內容
oraclelinux安裝目錄 瀏覽:133
安卓系統可以安裝編譯器嗎 瀏覽:570
javajson實體類 瀏覽:690
板加密鋼筋是否取代原鋼筋 瀏覽:66
學習編程的思路 瀏覽:230
app易語言post怎麼學 瀏覽:965
地梁的箍筋加密區位置 瀏覽:302
二分法排序程序及編譯結果 瀏覽:679
日語命令形和禁止型 瀏覽:285
安裝軟體用管理員解壓 瀏覽:505
編譯原理代碼塊 瀏覽:400
小孩可以用壓縮面膜嗎 瀏覽:14
錐形倒角怎麼計演算法 瀏覽:882
java合並鏈表 瀏覽:507
pic單片機編譯器 瀏覽:805
麗水四軸加工中心編程 瀏覽:691
國產系統怎麼解壓 瀏覽:552
戰雙程序員 瀏覽:483
him觸摸編程軟體 瀏覽:931
植物大戰僵屍存檔怎麼轉移安卓 瀏覽:852