Mellanox ASAP2技术揭秘:如何通过硬件卸载提升OVS性能?
1. 为什么我们需要硬件卸载OVS在虚拟化环境中Open vSwitchOVS就像是一个交通警察负责指挥虚拟机之间的网络流量。但问题在于这个警察一直靠软件在CPU上干活。想象一下早高峰时所有车辆都靠一个交警手动指挥——CPU很快就会被压垮网络延迟飙升带宽利用率却上不去。我亲眼见过一个典型案例某云服务商的KVM主机运行OVS时仅仅40Gbps的流量就让CPU占用率突破70%虚拟机之间的Ping延迟波动达到惊人的200ms。这就是典型的软件定义网络硬件定义瓶颈现象。硬件卸载的本质就像给交警配了个智能红绿灯系统。Mellanox的ASAP2技术把OVS最耗时的数据平面操作数据包解析、匹配、转发等转移到ConnectX系列智能网卡上处理。实测数据显示启用ASAP2后吞吐量提升10倍从20Gbps到200Gbps延迟降低90%从100μs到10μsCPU占用率从80%降至5%2. ASAP2技术解剖硬件加速的魔法原理2.1 从软件到硬件的进化之路传统OVS的工作流程就像手工分拣快递每个数据包都要经过内核协议栈用户空间的ovs-vswitchd进程进行流表匹配再通过内核模块完成转发ASAP2的革新在于把步骤2和3搬到了SmartNIC的硬件流水线上。ConnectX网卡上的Flow Steering引擎可以并行处理数百万条流表规则就像快递分拣机的激光扫描器瞬间完成分类。关键技术突破点可编程解析器支持VXLAN/GRE等隧道协议的硬件解封装TCAM流表在硬件中实现OVS的12元组匹配逻辑动作引擎直接执行VLAN操作、数据包修改等动作2.2 保持控制平面不变的智慧这里有个精妙设计ASAP2只卸载数据平面控制平面仍由原生的OVS控制。就像自动驾驶汽车保留方向盘给紧急情况使用既获得硬件加速又保持SDN的灵活性。实际操作中你会发现用熟悉的ovs-vsctl命令管理流表时完全感受不到硬件差异。3. 手把手配置ASAP2实战3.1 环境准备要点我强烈建议使用ConnectX-5及以上网卡实测配置过程最稳定。最近在Ubuntu 20.04上踩过的坑内核版本必须≥5.4OFED驱动要≥5.2关闭BIOS的节能选项否则性能波动大检查网卡是否支持ethtool -i eth0 | grep driver # 正确应显示driver: mlx5_core3.2 关键配置六步走切换switchdev模式注意PCI地址要替换devlink dev eswitch set pci/0000:03:00.0 mode switchdev开启硬件TC卸载ethtool -K eth0 hw-tc-offload on配置OVS启用卸载ovs-vsctl set Open_vSwitch . other_config:hw-offloadtrue调整流表老化时间防突发流量冲击ovs-vsctl set Open_vSwitch . other_config:max-idle30000重启服务systemctl restart openvswitch验证规则卸载ovs-dpctl dump-flows # 看到offloaded:yes即为成功4. 性能对比数字会说话在双端口ConnectX-6 DX上测试的结果测试项纯软件OVSASAP2卸载提升倍数64B包吞吐量12Mpps148Mpps12xTCP延迟(99%)86μs7.2μs92%↓流表容量50K1M20xCPU占用(100Gbps)72%3%96%↓特别要提的是有状态连接跟踪这个黑科技。传统防火墙靠CPU维护连接状态表而ConnectX-6 DX能在硬件中跟踪TCP会话状态实现400Gbps线速的4层防火墙这是我见过最优雅的解决方案。5. 避坑指南来自实战的经验坑1VF绑定顺序问题在创建VF时一定要先设sriov_numvfs再改模式。有次我顺序反了导致VF无法正确继承卸载能力。正确姿势echo 8 /sys/class/net/eth0/device/sriov_numvfs devlink dev eswitch set pci/0000:03:00.0 mode switchdev坑2流表不卸载遇到流量没卸载时先检查ethtool -k确认hw-tc-offload为ondmesg看有无mlx5_core报错更新固件到最新版特别是旧版网卡坑3VXLAN性能骤降这是协议栈的GSO问题解决方法ethtool -K eth0 tx-udp_tnl-segmentation on在超融合架构中部署时建议把OVS的n_rxq设成与物理核数一致能减少跨核调度开销。这个参数调优后我们的NVMe over Fabric性能又提升了15%。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2462870.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!