一、方案概述
近年来,随着云计算技术的飞速发展,云规模的不断扩大,业务层面对网络延迟、带宽的要求越来越高;在虚拟网络中采用OvS-DPDK方式来加速网络报文处理,相对于OvS kernel datapath确实能够带来明显的性能提升,但是此方式在性能扩展及成本效益间存在局限性,已经不能满足越来越高的性能需求。
行业内将虚拟网络的加速功能聚焦到硬件层面来实现,如ASIC、智能网卡、DPU等方案,利用网卡更接近网络数据的特点,实现网卡内完成网络转发及动作的
RAYMAX紧跟行业发展,在多年的技术积累下快速实现了xSmartNIC智能网卡产品落地。其中,xSmartNIC HWAS是一款基于FPGA的网卡且支持OvS data plane offload功能,使用自研的xSmartNIC HWAS技术能显著提升虚拟机网络性能。
二、方案架构
xSmartNIC HWAS方案是基于开源项目Open vSwitch和DPDK来实现的,总体实现架构如下图1所示。
在虚拟化环境下,OvS使用DPDK来加速,其data plane都在用户态实现,QEMU虚拟机使用xSmartNIC SR-IOV特性配置成VF直通模式。当使能HWAS特性后,DPDK驱动与xSmartNIC PF交互数据,从物理口进来的会话首包进入OvS后会触发流表 Offload流程(红色箭头表示),最终在xSmartNIC HWAS模块中会维护所有流表规则,该会话的后续数据帧则直接在网卡硬件中处理并转发给指定VF,对应的虚拟机就能接收到数据包。从虚拟机发出的会话包也是相同的处理流程。
图1:xSmartNIC HWAS构架
三、方案特性
xSmartNIC HWAS方案主要特性如下:
★2个物理端口,每个端口最大带宽为10Gbps (可升级至25Gbps)
★支持OvS offload基本功能(vlan/L2/L3/L4匹配及动作)
★支持流表规则模糊匹配
★支持OvS group offload
★流表规格:2K/PF x 2
★VF规格:6/PF x 2
四、方案优势
目前传统的虚拟化环境下QEMU虚拟机的网络使用VirtIO方式与OvS连通,数据收发过程中有内存拷贝;且在HOST有多虚拟机的场景下,虚拟网络性能会受服务器系统资源(如内存总线带宽、cache等)负荷而波动,整体网络带宽和时延性能较差。xSmartNIC HWAS方案相对于传统方式性能有极大提升,以下是对比测试分析。
1.OvS直接转发
测试方法及环境搭建如下图2a所示,OvS 从Port0接收数据,处理后仍从Port0口转发出去。图2b为当xSmartNIC开启HWAS模式后(即Offload模式),将流表规则从OvS offload到网卡后,数据在xSmartNIC处理完后直接完成转发,不再进入OvS软件数据平面。
在进行如上所述的对比测试后,xSmartNIC offload功能对64B小包带宽性能提升1倍多,延迟显著下降,数据如表1。
表1:xSmartNIC OvS HWAS 对比测试结果 | |||
Type | Single-Port Bandwidth (Gbps) | Dual-Port Bandwidth (Gbps) | Delay (us) |
非offload模式 | 3.6 | 6.8 | 16 |
offload模式 | 7.6 | 14 | 2.5 |
2. OvS虚拟化环境下的数据转发
使用VirtIO 方式时如下图3a所示,port1为Vhost-user类型端口,QEMU虚拟机使用对应的VirtIO-Net驱动并且testpmd使用单核单队列方式转发数据。
当xSmartNIC开启HWAS模式(即OvS offload)时如下图3b所示,QEMU虚拟机的网络设备使用SR-IOV直通方式,OvS datapath处理直接在xSmartNIC网卡中实现。
按照上述两种方式,当PF0处理4台虚拟机时(每台虚拟机独立转发数据包),带宽和时延对比测试如下图4所示,结果表明xSmartNIC HWAS加速功能能极大提升虚拟机的网卡带宽和降低网络时延。