详解ZStack 高性能网络方案以及性能对比测试

2022-07-04
关注

从写下第一行代码开始,云轴科技ZStack 始终秉持着 4S (Simple、Strong、Scalable、Smart) 的产品理念,这样的思想同样体现在 ZStack 虚拟网络方案上。

Linux Bridge 网络架构简单可靠,且能满足绝大部分应用场景,长久以来都是 ZStack 平台默认的方案。但随着云轴科技 ZStack 客户体量不断增长,默认的网络方案逐渐无法满足部分客户的需求。为了应对需求的变化,云轴科技 ZStack 先后推出了 SR-IOV 方案和高性能网络方案。

01 ZStack 网络方案

1.1 主流网络方案

目前主流的网络方案分为两大类:

以 Linux Bridge 为基础,使用 Linux 内核协议栈,架构简单且稳定可靠,也是 ZStack 平台默认的网络方案;

以 OVS 为基础,采用虚拟交换机的形式,支持 OpenFlow 协议,自由灵活,搭配 DPDK 可获得不俗的性能,ZStack 高性能网络方案就是以 OVS-DPDK 基础实现的。

两种方案各有千秋,选择合适的应用场景才能发挥最佳的作用。本文将介绍 ZStack 平台支持的 4 类网络方案,并通过测试对比其性能差异。

1.1.1 Linux Bridge 方案:功能性较好,但网络性能一般

以 Linux Bridge 为基础,集成多项网络服务,使用通用的 virtio 驱动,稳定可靠,具体如下图所示:

图1  Linux Bridge网络方案

该方案理论性能一般,满足通用场景,功能性较好,支持热迁移和多项网络服务。

1.1.2 SR-IOV 方案:网络性能较好,但功能性较差

SR-IOV 是 PCIe 协议的扩展,它允许设备,例如网卡,将对其资源的访问划分成多个 PCIe functions。ZStack 通过 pci-passthrough 将 VFs (virtual functions) 透传到虚拟机中,以达到最佳的网络性能,具体方案如图2所示:

图2  SR-IOV网络方案

该方案理论上拥有最佳的网络性能,但是功能性较差,例如:要求网卡支持 SR-IOV、无法热迁移、受限于 VFs 数量等。

1.2 ZStack高性能网络方案

云轴科技ZStack 推出的高性能网络方案以 OVS-DPDK 为基础,主要有以下两种实现方式:

1.2.1 dpdkvhostuser 方案:以消耗CPU资源实现高性能

采用标准的 OVS-DPDK 方案,以消耗 CPU 资源为代价换取优秀的网络性能;目前支持 Intel x710 系列以及 mellanox cx-5/cx6 网卡。方案如下图所示:

图3  dpdkvhostuser 方案

该方案理论性能优秀,且功能性较好,同样支持热迁移和部分网络服务。

1.2.2 software vDPA 方案:借助智能网卡中特定vDPA 模块实现高性能

在标准的 OVS-DPDK 方案的基础上,借助智能网卡中特定的 vDPA 模块,减少 CPU 资源消耗;目前仅支持 mellanox cx-5/cx6 网卡。

图4  software vDPA 方案

该方案理论性能优秀,功能性一般,支持热迁移,但是同样受限于 VFs 数量。

02 测试目标与方法

通过在相同的两台物理机上切换 ZStack 网络方案进行压力测试,验证不同网络方案下的性能表现。

2 .1 测试模型

图5  测试模型

2 .2 DUT 配置

服务器硬件配置

ZStack 平台配置

vm 配置

vpp 配置

2.3 TRex 配置

硬件配置同 DUT 硬件配置

测试软件版本及测试参数

2.4 测试方法

使用相同的服务器硬件和虚拟机配置,改变虚拟网络方案,通过 TRex 进行 UDP 小包测试,DUT 中使用 vpp 做路由转发避免 kernel 瓶颈;逐渐增加测试压力,直至开始出现丢包,记录测试数据及当前环境配置,并进行分析。

CPU 资源消耗情况;

零丢包 pps。

2.5 测试数据

可以看出高性能网络方案,即 dpdkvhostuser 和 vDPA 方案,以及 SR-IOV 方案相比默认的 Linux Bridge 方案性能提升显著;在不进行额外调优的情况下,SR-IOV 方案性能最佳。

2.6 结论

1.功能性及灵活性上 Linux Bridge >= dpdkvhostuser > software vDPA > SR-IOV;

2.网络性能上 SR-IOV > software vDPA > dpdkvhostuser > Linux Bridge;

3.高性能网络方案带来的性能提升以消耗 CPU 作为代价,而 vDPA 方案得益于智能网卡加速模块相比 dpdkvhostuser 方案可节约部分 CPU 资源;

4.SR-IOV 性能最佳,但是其局限性较大,例如,无法热迁移、要求虚拟机安装对应的网卡驱动等。

03 延伸思考

1.该测试使用的是 10Gb 光模块,因此光模块限制了性能的上限;测试环境(除 pmd-CPU 数外)均由 ZStack 平台默认配置,若增加 CPU 隔离,vNUMA 配置等优化手段,可以进一步提升;

2.虽然 Linux Bridge 和 SR-IOV 方案不需要使用单独的 pmd-CPU 资源,但并不意味着宿主机接收网络包时不用消耗 CPU 资源,事实上宿主机内核收包 CPU 将收到大量软中断;

3.ZStack 高性能网络方案,在设计上考虑到了以往的用户使用习惯,使用逻辑与以往相似,降低学习成本,快速上手;

4.dpdkvhostuser 和 software vDPA 方案各有优劣,dpdkvhouser 虽然消耗更多 CPU,但是使用条件更宽松;software vDPA 使用条件则更为苛刻,使用时可酌情选择。

您觉得本篇内容如何
评分

评论

您需要登录才可以回复|注册

提交评论

科技快报网

这家伙很懒,什么描述也没留下

关注

点击进入下一篇

抖音功耗优化实践 原创

提取码
复制提取码
点击跳转至百度网盘