当前位置:网站首页>ovs与ovs+dpdk架构分析
ovs与ovs+dpdk架构分析
2022-04-23 05:59:00 【魏言华】
OVS内核态架构图
内核态与用户态交互
OVS的架構分成快速路徑(fast path)與慢速路徑(slow path)
快速路徑是內核空間(kernel space)的openvswitch.ko
慢速路徑是用戶空間(user space)的ovs-vswitchd
OVS+DPDK架构
dpif-netdev:用户态的快速通路,实现了基于netdev设备的dpif API。
ofproto-dpif:实现了基于dpif层的ofproto API。
netdev-dpdk:实现了基于DPDK的netdev API,其定义的几种网络接口如下:
dpdk物理网口:其实现是采用高性能向量化DPDK PMD的驱动。
dpdkvhostuser接口: vhost-user可以挂接到用户态的数据通道上,与虚拟机的virtio网口快速通信。为了性能,在vhost burst收发包个数上,需要和dpdk物理网口设置的burst收发包个数相同。
DPDK加速的OVS数据流转发的大致流程如下:
1)OVS的ovs-vswitchd接收到从OVS连接的某个网络端口发来的数据包,从数据包中提取源/目的IP、源/目的MAC、端口等信息。
2)OVS在用户态查看精确流表和模糊流表,如果命中,则直接转发。
3)如果还不命中,在SDN控制器接入的情况下,经过OpenFlow协议,通告给控制器,由控制器处理。
4)控制器下发新的流表,该数据包重新发起选路,匹配;报文转发,结束。
DPDK加速的OVS与原始OVS的区别在于,从OVS连接的某个网络端口接收到的报文不需要openvswitch.ko内核态的处理,报文通过DPDK PMD驱动直接到达用户态ovs-vswitchd里。
数据流向
从物理或虚拟接口进入OvS-DPDK的数据包会根据其标头字段接收唯一的标识符或哈希,然后将其与三个主要交换表之一中的条目进行匹配:精确匹配缓存(EMC),数据路径分类器(dpcls)或ofproto分类器。数据包的标识符将按顺序遍历这三个表中的每一个,除非找到匹配项,在这种情况下,将执行表中匹配规则指示的适当操作,并在完成所有操作后将数据包转发出交换机。
这三个表具有不同的特性和相关的吞吐量性能/延迟。EMC为有限数量的表条目提供了最快的处理速度。数据包的标识符必须与该表中所有字段(源IP和端口,目标IP和端口以及协议的5元组)的条目完全匹配,以实现最快的处理,否则它将在EMC上“遗漏”并传递给dpcls。dpcls包含更多表条目(安排在多个子表中),并启用数据包标识符的通配符匹配(例如,指定了目标IP和端口,但允许任何源)。这大约提供了EMC吞吐量性能的一半,并且可以满足大量的表条目。
dpcls上的未命中会导致将数据包标识符发送到ofproto分类器,以便OpenFlow控制器可以决定操作。该路径性能最低,比EMC慢10倍以上。ofproto分类器中的匹配导致在更快的交换表中建立新的表条目,以便可以更快地处理相同流中的后续数据包。
EMC插入概率
默认情况下,每100个流中有1个插入到精确匹配缓存(EMC)中。可以通过设置emc-insert-inv-prob选项改变此插入概率:
ovs-vsctl --no-wait set Open_vSwitch . other_config:emc-insert-inv-prob=N
EMC是以PMD为边界的,每个PMD拥有自己的EMC;dpcls是以端口为边界的,每个端口拥有自己的dpcls;ofproto classifier是以桥为边界的,每个桥拥有自己的ofproto classifier
版权声明
本文为[魏言华]所创,转载请带上原文链接,感谢
https://blog.csdn.net/u013743253/article/details/120291014
边栏推荐
猜你喜欢
随机推荐
NodeJS 模块之间的使用
SQL学习|复杂查询
数据可视化基础了解
EF CORE在ASP.NET CORE项目中基于数据库优先模式生成实体模型
leetcode刷题之x的算术平方根
js中的作用域与作用域链
【代码解析(1)】Communication-Efficient Learning of Deep Networks from Decentralized Data
Leak detection and vacancy filling (II)
压力测试工具 Jmeter
Promise(一)
TP5中的getField()方法变化,tp5获取单个字段值
浏览器中堆栈内存的底层处理
Decentralized Collaborative Learning Framework for Next POI Recommendation
Each traversal usage of tp6
el-date-picker限制选择范围,从当前时间到两个月前
并发优化请求
【代码解析(3)】Communication-Efficient Learning of Deep Networks from Decentralized Data
freeCodeCamp----arithmetic_arranger练习
1-1 NodeJS
leetcode刷题之二进制求和