随着技术的不断发展,不少行业应用都对网络性能和隔离性有着越来越高的要求。例如:
高带宽:科学计算、模拟和仿真等高性能计算工作负载通常涉及大规模数据的传输和处理。在科学研究、工程模拟、气象预测等领域,需要传输大量的数据;同时,高性能计算通常利用大规模的并行计算集群,其中包括数百甚至数千台计算节点。这些节点需要频繁地互相通信以同步计算结果、传递数据和协调计算任务。这些业务场景都需要高网络带宽来提升数据传输和整体计算效率。
针对这些需求,网络 I/O 虚拟化技术可以优化网络资源、提升 I/O 性能,目前有三种主流实现方式:仿真(Emulation)、半虚拟化(Para-virtualiztion)和直通(Pass-through)。为了帮助用户更好地实现网络优化,SmartX 在全新发布的超融合软件 SMTX OS 5.1 版本中新增了 PCI 网卡直通的能力。结合之前版本已经支持的 SR-IOV 直通功能和虚拟网卡,SmartX 超融合可为原生虚拟化 ELF 集群提供完整的网络 I/O 虚拟化技术支持能力。用户可根据自己在网络性能、隔离性和成本投入上的实际需求选择最合适的方案,实现期货交易、高性能计算等多种高网络要求场景的生产级使用。
在本文中,我们将详细介绍 SmartX 超融合网络 I/O 虚拟化支持能力,并针对网卡在 PCI 直通和 SR-IOV 直通模式下的性能表现开展测试。
为了满足不同用户和应用场景需求,SMTX OS 5.1 新增了 PCI 网卡直通的功能。目前,对于 ELF 虚拟机,SMTX OS 支持虚拟网卡、SR-IOV 直通网卡、PCI 直通网卡三种网络设备。
SR-IOV 直通:将一个支持 SR-IOV 的物理网卡虚拟化出多个 VF (Virtual Function),作为 SR-IOV 直通网卡直接挂载给虚拟机使用,可实现多个虚拟机共享同一个物理网卡的通信能力。
每个主机上可以使用不同型号的网卡*,每个虚拟机可挂载多种网络设备。
*兼容列表见文末附录。
虚拟网卡是虚拟化环境中使用最广泛的网络适配器,除了帮助虚拟机与网络通信之外,虚拟网卡还通过网络隔离策略确保了不同虚拟机之间的网络流量隔离,并可结合虚拟交换机(VDS)和虚拟机网络创建复杂的虚拟网络拓扑。
虚拟网卡具备相当优秀的灵活性和弹性:为虚拟机配置虚拟网卡后,可以根据需要再次修改配置,也可以通过克隆已有配置来加快新服务的部署速度;同时,由于消除了对硬件的依赖,虚拟机在快照和迁移时都可保留虚拟网卡的配置,可轻松将虚拟机迁移或重建至其他物理主机。
尽管在大部分场景下,虚拟网卡的性能已经可以满足需要,但通过仿真(E1000 类型的虚拟网卡使用此技术)或者半虚拟化(例如 VIRTIO 类型的虚拟网卡)来模拟物理网卡都会带来额外的性能开销。另外,如果某些业务虚拟机对网络要求较高,在共享 VDS 或虚拟机网络时,这些比较大的流量都会挤占其他虚拟机的正常流量,造成网络性能分配的失衡。
网卡直通利用了 PCIe Pass-through 的技术,允许虚拟机直接访问并使用 SMTX OS 主机上的网卡。直通网卡具有良好的兼容性,可以支持大部分 Guest OS 和符合 PCIe 总线标准的网卡。同时,由于虚拟机操作系统绕过了虚拟化层,直接使用物理网卡,缩短了数据传输的路径,使得虚拟机可以获得接近物理机使用物理网卡的性能与完整的硬件特性。此外,虚拟机独享物理网卡也提供了更高级别的隔离性。
然而,PCI 直通模式下,一张物理网卡不能同时直通给多个虚拟机使用,因此如果有多个虚拟机有通过直通网卡提升性能的需要时,需要保证主机上有多张物理网卡。另外,挂载了 PCI 直通网卡的虚拟机不支持 HA、热迁移等操作。
SR-IOV (Single Root – I/O Virtualization) 是一种基于硬件的虚拟化解决方案,启用了 SR-IOV 能力的物理网卡*可被切分为多个 VF (Virtual Function) 并作为 SR-IOV 直通网卡被挂载给虚拟机使用,这允许了多台虚拟机共享一个物理网卡,在提升性能的同时兼顾性价比。用户可以按照实际的业务需求,为同一台虚拟机分配多个 SR-IOV 直通网卡。
该功能要求物理网卡本身具备 SR-IOV 特性,且对于特定网卡需要在操作系统中安装驱动。
为了让读者直观感受 SMTX OS PCI 直通与 SR-IOV 直通能力,我们使用不同型号的网卡进行了性能测试。
性能测试借助 netperf 和 iperf3 工具进行,对两种不同型号的网卡(Solarflare、Mellanox)展开 3 个场景的测试。测试结果以物理机到物理机(Host to Host)作为基准,通过对比挂载 PCI 直通网卡的虚拟机到虚拟机(VM to VM)、虚拟机到物理机(VM to Host)在不同测试场景下的吞吐量和延迟数据,分析得出使用 SMTX OS PCI 直通的效果。
*硬件配置及测试工具见附录。
将 PCI 物理网卡直通给虚拟机后,网卡的延迟会有小幅提升;提升是因为虚拟机的网络栈必须绕过虚拟化层直接与物理网络适配器通信,使用 PCI 直通网络设备可能会引入额外的开销,例如中断处理和内存访问。这种开销的影响在 TCP 流量中更加明显,因为相对于 UDP 流量,TCP 流量往往涉及更频繁和更小的数据包。
在 PCI 直通模式下,虚拟机可以直接访问物理网卡,但是这也会带来额外的开销,例如 DMA 编程、中断处理等,这些操作会消耗一定的 CPU 和内存资源。同时,虚拟化技术中多重层次的处理和转发也可能会导致网络吞吐量的降低。
但是,这样的额外开销占比非常小。因此,排除部分干扰因素,物理网卡使用 PCI 直通可以获得与物理网卡极接近的性能,完全能够满足虚拟机网络环境低延迟的需求。
为验证使用 SR-IOV 直通网卡能否获得与物理机接近的性能,我们使用 sfnettest 工具对不同型号网卡进行了性能测试。以物理机到物理机(Host to Host)、挂载 VIRTIO 网卡的虚拟机到虚拟机(VM to VM)的测试数据作为基准,通过对比挂载 SR-IOV 直通网卡的虚拟机到虚拟机(VM to VM)、虚拟机到物理机(VM to Host)在不同测试场景下的延迟数据,分析 SR-IOV 直通网卡的性能水平。
对于 Solarflare 和 Mellanox 网卡,结合了各自的加速方案,对比启用加速前后的数据。
*硬件配置及测试工具见附录。
在 SR-IOV 直通模式下,虚拟机可以直接访问物理网卡虚拟化出的 VF。排除部分额外开销带来的影响,虚拟机使用 SR-IOV 直通网卡相比于使用 VIRTIO 网卡可以大幅降低延迟,并获得与物理机极接近的延迟性能。结合加速方案, Solarflare 网卡和 Mellanox 网卡平均延迟还可以得到进一步降低。
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞0
添加新评论0 条评论