Open vSwitch (OVS)允许虚拟机(VM)相互通信并与外部世界通信。 OVS传统上驻留在超级管理程序中,并基于流的十二元组匹配进行交换。 基于软件的OVS解决方案需要大量CPU资源,影响系统性能并防止充分利用可用带宽。
Mellanox加速交换和数据包处理(ASAP2)技术通过在Mellanox ConnectX-5及以后的NIC硬件(Mellanox嵌入式交换或eSwitch)中处理OVS数据平面来允许OVS卸载,同时保持OVS控制平面不变。 因此,我们观察到显着更高的OVS性能,而没有相关的CPU负载。
从v5.0开始,OVS-DPDK也成为MLNX_OFED包的一部分。 OVS-DPDK支持ASAP2,就像OVS-Kernel(基于Traffic Control(TC)内核的解决方案)一样,但具有不同的功能集合。
传统ASAP2硬件数据平面是建立在SR-IOV虚拟功能(VF)之上的,因此VF直接传递给VM,而Mellanox驱动程序在VM内运行。 还支持的另一种方法是vDPA(vhost数据路径加速)。 vDPA允许使用VirtIO建立与VM的连接,因此数据平面是在SR-IOV VF和VM内标准VirtIO驱动程序之间建立的,而控制平面由vDPA应用程序在主机上管理。 支持两种vDPA风格:软件vDPA;和硬件vDPA。 软件vDPA管理功能嵌入到OVS-DPDK中,而硬件vDPA使用独立应用程序进行管理,并可与OVS-Kernel和OVS-DPDK一起运行。 有关更多信息,请参见“通过VF Relay(软件vDPA)加速VirtIO”和“通过硬件vDPA加速VirtIO”的部分。