导航:首页 > 源码编译 > 编译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相关的资料

热点内容
服务器无响应是什么原因呀 浏览:978
wd文档里的app怎么制作 浏览:509
电脑里的文件夹没有了一般能恢复吗 浏览:410
哪里有配加密钥匙的 浏览:208
服务器开不了机怎么把数据弄出来 浏览:958
gif动态图片怎么压缩 浏览:519
黑猴子棒球压缩文件解压密码 浏览:631
如何让app适应不同的手机屏幕大小 浏览:8
苹果手机如何给安卓手机分享软件 浏览:759
苹果电脑怎么运行腾讯云服务器 浏览:59
明日之后沙石堡命令助手 浏览:261
蛋糕店用什么样的app 浏览:877
长安银行信用卡app怎么取现 浏览:635
dos命令cmd命令的 浏览:226
阿里云存档视频文件的服务器 浏览:194
ftp修改文件权限命令 浏览:491
周易八卦梅花算法 浏览:676
java组织机构 浏览:953
h5大转盘游戏源码 浏览:592
学校服务器地址查询 浏览:109