OvS-DPDK卸载方案      

       

       Intel DPDK 全称Intel Data Plane Development Kit,是intel提供的数据平面开发工具集。目前被广泛应用于Intel x86服务器,用来增加服务器网络吞吐量,以及降低报文从网卡到服务器内核的延迟。DPDK允许将用户态的数据,不经过内核及Linux协议栈直接转发到网卡,以实现数据包的加速及CPU减负的目的。

       Open vSwitch (OvS) 为多层虚拟交换机。OvS可以通过可编程的扩展,完成大规模网络自动化。另外它提供多个物理服务器的分布式支持。在虚拟交换机出现之前,LinuxHypervisor有内置的L2交换机,同样可以提供快速可靠的交换服务,但只是针对单台服务器。OvS的出现为多个服务器的虚拟化开发提供了平台。

       OvS处理包的方式主要有两种:快速路径,对于可以匹配到流表的包,OvS一般在内核空间的数据层进行转发;慢速路径则是对于不能匹配的包,OvS会把流的首个包给用户空间,以便更新流表,从而为后续包提供转发路径。这样,可以避免大部分的包在用户层和内核层的转发开销,但是同时又受制于Linux的协议栈。

      通过把OvSDPDK集成,利用OvS的转发优势及DPDK可以避开Linux协议栈的优势,转发层的快速通道被移入了DPDK所在的用户空间,在吞吐量的性能上达到10倍于纯OvS系统【1】。而OvS中核心的查找匹配转发的数据层处理对于每个包都至少占用超过10K的CPU周期,我们通过把这些数据层对于包的匹配处理移到xNIC中通过硬件实现,可以最大程度上减少CPU负荷。此外,xNIC对于处理每个包的匹配转发能实现最大延迟小于100ns。上层方案如下图所示。

 

 

【1】https://software.intel.com/en-us/articles/open-vswitch-with-dpdk-overview