一文解读 SmartX 超融合虚拟化下的网络 I/O 虚拟化技术

2023-10-24 14:44

本文主要是介绍一文解读 SmartX 超融合虚拟化下的网络 I/O 虚拟化技术,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

随着技术的不断发展,不少行业应用都对网络性能和隔离性有着越来越高的要求。例如:

  • 低延迟:一些期货行业用户选择在期货公司机房托管服务器并自行编写交易程序,以实现对市场波动的快速(微秒级)反应。尤其是在高频交易场景下,毫秒级甚至微秒级的延迟都可能对交易的最终受益带来较大影响。对于这些应用,降低网络延迟能够为业务价值带来显著提升。

  • 高带宽:科学计算、模拟和仿真等高性能计算工作负载通常涉及大规模数据的传输和处理。在科学研究、工程模拟、气象预测等领域,需要传输大量的数据;同时,高性能计算通常利用大规模的并行计算集群,其中包括数百甚至数千台计算节点。这些节点需要频繁地互相通信以同步计算结果、传递数据和协调计算任务。这些业务场景都需要高网络带宽来提升数据传输和整体计算效率。

针对这些需求,网络 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 网络 I/O 虚拟化

功能特性

为了满足不同用户和应用场景需求,SMTX OS 5.1 新增了 PCI 网卡直通的功能。目前,对于 ELF 虚拟机,SMTX OS 支持虚拟网卡、SR-IOV 直通网卡、PCI 直通网卡三种网络设备。

  • 虚拟网卡:通过软件模拟物理网卡的功能,使得虚拟机可以与外部网络互联。

  • PCI 网卡直通:将主机上的网卡作为 PCI 直通网卡透传给虚拟机使用,该网卡由这台虚拟机独占。

  • SR-IOV 直通:将一个支持 SR-IOV 的物理网卡虚拟化出多个 VF (Virtual Function),作为 SR-IOV 直通网卡直接挂载给虚拟机使用,可实现多个虚拟机共享同一个物理网卡的通信能力。

每个主机上可以使用不同型号的网卡*,每个虚拟机可挂载多种网络设备。

*兼容列表见文末附录。

图片

虚拟网卡

虚拟网卡是虚拟化环境中使用最广泛的网络适配器,除了帮助虚拟机与网络通信之外,虚拟网卡还通过网络隔离策略确保了不同虚拟机之间的网络流量隔离,并可结合虚拟交换机(VDS)和虚拟机网络创建复杂的虚拟网络拓扑。

虚拟网卡具备相当优秀的灵活性和弹性:为虚拟机配置虚拟网卡后,可以根据需要再次修改配置,也可以通过克隆已有配置来加快新服务的部署速度;同时,由于消除了对硬件的依赖,虚拟机在快照和迁移时都可保留虚拟网卡的配置,可轻松将虚拟机迁移或重建至其他物理主机。

尽管在大部分场景下,虚拟网卡的性能已经可以满足需要,但通过仿真(E1000 类型的虚拟网卡使用此技术)或者半虚拟化(例如 VIRTIO 类型的虚拟网卡)来模拟物理网卡都会带来额外的性能开销。另外,如果某些业务虚拟机对网络要求较高,在共享 VDS 或虚拟机网络时,这些比较大的流量都会挤占其他虚拟机的正常流量,造成网络性能分配的失衡。

PCI 直通网卡

网卡直通利用了 PCIe Pass-through 的技术,允许虚拟机直接访问并使用 SMTX OS 主机上的网卡。直通网卡具有良好的兼容性,可以支持大部分 Guest OS 和符合 PCIe 总线标准的网卡。同时,由于虚拟机操作系统绕过了虚拟化层,直接使用物理网卡,缩短了数据传输的路径,使得虚拟机可以获得接近物理机使用物理网卡的性能与完整的硬件特性。此外,虚拟机独享物理网卡也提供了更高级别的隔离性。

然而,PCI 直通模式下,一张物理网卡不能同时直通给多个虚拟机使用,因此如果有多个虚拟机有通过直通网卡提升性能的需要时,需要保证主机上有多张物理网卡。另外,挂载了 PCI 直通网卡的虚拟机不支持 HA、热迁移等操作。

SR-IOV 直通网卡

SR-IOV (Single Root - I/O Virtualization) 是一种基于硬件的虚拟化解决方案,启用了 SR-IOV 能力的物理网卡*可被切分为多个 VF (Virtual Function) 并作为 SR-IOV 直通网卡被挂载给虚拟机使用,这允许了多台虚拟机共享一个物理网卡,在提升性能的同时兼顾性价比。用户可以按照实际的业务需求,为同一台虚拟机分配多个 SR-IOV 直通网卡。

* 该功能要求物理网卡本身具备 SR-IOV 特性,且对于特定网卡需要在操作系统中安装驱动。

适用场景

图片

配置方式

PCI 直通

图片

1. 配置主机

首先确保主机上要用于 PCI 直通的物理网卡符合 SMTX OS 兼容要求,详细型号可参考文末附录。

登录 CloudTower,为要直通的物理网卡所在主机开启 IOMMU 支持,并需确保主机 BIOS 中也已启用 IOMMU,完成后重启 SMTX OS 主机。

2. 配置网卡用途

登录 CloudTower,将网卡用途置为 PCI 直通。

3. 添加 PCI 直通网卡

编辑指定虚拟机,选择对应的物理网卡作为 PCI 直通网卡添加到虚拟机上。

SR-IOV 直通

图片

1. 配置主机
首先确保主机上的要用于 SR-IOV 直通的物理网卡符合 SMTX OS 兼容要求,详细型号可参考文末附录。

登录 CloudTower,为要直通的物理网卡所在主机开启 IOMMU 支持,并需确保主机 BIOS 中也已启用 IOMMU 和 SR-IOV,完成后重启 SMTX OS 主机。

2. 配置网卡用途并切分 VF
登录 CloudTower,将网卡用途置为 SR-IOV 直通;并根据实际需要和网卡的支持情况配置指定数量的 VF。

3. 添加 SR-IOV 直通网卡
编辑指定虚拟机,选择对应的物理网卡作为 SR-IOV 直通网卡添加到虚拟机上。

4. 配置虚拟机

根据物理网卡的型号与虚拟机的客户端操作系统,按需为虚拟机安装 VF 驱动。

性能测试

为了让读者直观感受 SMTX OS PCI 直通与 SR-IOV 直通能力,我们使用不同型号的网卡进行了性能测试。

PCI 直通

性能测试借助 netperf 和 iperf3 工具进行,对两种不同型号的网卡(Solarflare、Mellanox)展开 3 个场景的测试。测试结果以物理机到物理机(Host to Host)作为基准,通过对比挂载 PCI 直通网卡的虚拟机到虚拟机(VM to VM)、虚拟机到物理机(VM to Host)在不同测试场景下的吞吐量和延迟数据,分析得出使用 SMTX OS  PCI 直通的效果。

*硬件配置及测试工具见附录。

测试数据

图片

将 PCI 物理网卡直通给虚拟机后,网卡在 TCP 协议下的吞吐量会有小幅度的降低;这是因为虚拟机需要与物理主机上的其他虚拟机和应用程序共享物理资源,而 KVM 虚拟化通常需要额外的计算能力来处理这些管理和调度资源的任务,从而增加了处理开销和网络延迟。

图片

将 PCI 物理网卡直通给虚拟机后,网卡在 UDP 协议下的吞吐量同样会有小幅度的降低;降低是因为虚拟机的网络栈必须绕过虚拟化层直接与物理网络适配器通信,使用 PCI 直通网络设备可能会引入额外的开销,例如中断处理和内存访问。

图片


将 PCI 物理网卡直通给虚拟机后,网卡的延迟会有小幅提升;提升是因为虚拟机的网络栈必须绕过虚拟化层直接与物理网络适配器通信,使用 PCI 直通网络设备可能会引入额外的开销,例如中断处理和内存访问。这种开销的影响在 TCP 流量中更加明显,因为相对于 UDP 流量,TCP 流量往往涉及更频繁和更小的数据包。

测试结论

在 PCI 直通模式下,虚拟机可以直接访问物理网卡,但是这也会带来额外的开销,例如 DMA 编程、中断处理等,这些操作会消耗一定的 CPU 和内存资源。同时,虚拟化技术中多重层次的处理和转发也可能会导致网络吞吐量的降低。

但是,这样的额外开销占比非常小。因此,排除部分干扰因素,物理网卡使用 PCI 直通可以获得与物理网卡极接近的性能,完全能够满足虚拟机网络环境低延迟的需求。

SR-IOV 直通

为验证使用 SR-IOV 直通网卡能否获得与物理机接近的性能,我们使用 sfnettest 工具对不同型号网卡进行了性能测试。以物理机到物理机(Host to Host)、挂载 VIRTIO 网卡的虚拟机到虚拟机(VM to VM)的测试数据作为基准,通过对比挂载 SR-IOV 直通网卡的虚拟机到虚拟机(VM to VM)、虚拟机到物理机(VM to Host)在不同测试场景下的延迟数据,分析 SR-IOV 直通网卡的性能水平。

对于 Solarflare 和 Mellanox 网卡,结合了各自的加速方案,对比启用加速前后的数据。

*硬件配置及测试工具见附录。

测试数据

图片

跨交换机的连接方式下,与基准测试中 Host to Host 的平均延迟 14.4 us 相比,使用 SR-IOV 直通网卡在不使用加速方案的情况下,在 VM to VM、VM to Host 场景下均可提供与物理机接近的性能。Mellanox 网卡结合加速方案,在各场景下均可进一步降低延迟至 2-3 us。

图片

直连方式下,与基准测试中 VM to VM 使用 VIRTIO 网卡的平均延迟 63 us 相比,使用 SR-IOV 直通网卡在不使用加速方案的情况下,在 VM to VM 和 VM to Host 场景下均可大幅降低延迟。Solarflare 网卡结合加速方案,在各场景下还可进一步降低延迟至 2-3 us。

*期货公司一个交易订单的数据量大小通常为 64~128 个字节,本次测试均采用发包大小为 64 字节(size=64)的延迟平均值(mean)进行对比。

测试结论

在 SR-IOV 直通模式下,虚拟机可以直接访问物理网卡虚拟化出的 VF。排除部分额外开销带来的影响,虚拟机使用 SR-IOV 直通网卡相比于使用 VIRTIO 网卡可以大幅降低延迟,并获得与物理机极接近的延迟性能。结合加速方案, Solarflare 网卡和 Mellanox 网卡平均延迟还可以得到进一步降低。


作为 SmartX HCI 的核心软件,SMTX OS 5.1 以自主研发的分布式存储 ZBS 与原生虚拟化 ELF 为企业 IT 提供强大的虚拟化与存储支持。欲了解更多新增功能与特性,请阅读:

  • SmartX HCI 5.1 发布:是超融合,更是虚拟化与容器生产级统一架构

  • GPU 直通 & vGPU:超融合为 GPU 应用场景提供高性能支持

  • 动态资源平衡:主流虚拟化 DRS 机制分析与 SmartX 超融合的实现优化

  • 照亮虚拟网络流量“盲区”:超融合网络流量可视化功能解读

  • 从物理机/云平台迁移至超融合?SMTX CloudMove 帮你实现

您还可扫描下方二维码,获取两册《SmartX 超融合技术原理与特性解析合集》,了解 SMTX OS 更多技术特性和测试数据。

《(一)虚拟化与存储》

《(二)管理与运维》

附录

SMTX OS 5.1 网卡兼容性列表

图片

*对于 PCI 直通,此处仅列出了经过测试的网卡。

PCI 直通性能测试

硬件配置

图片

图片

测试工具

图片

SR-IOV 直通性能测试

硬件配置

图片

设备 1:Solarflare 测试物理机

图片

设备 2:Mellanox 网卡测试物理机

图片

测试工具

图片

推荐阅读:

  • 动态资源平衡:主流虚拟化 DRS 机制分析与 SmartX 超融合的实现优化

  • GPU 直通 & vGPU:超融合为 GPU 应用场景提供高性能支持

  • 新建集群 vs. 滚动升级:如何选择超融合服务器硬件平滑升级方案?

  • 照亮虚拟网络流量“盲区”:超融合网络流量可视化功能解读

  • 一文了解 SmartX 超融合硬盘健康检测机制与运维实践

  • 不止弹性,更加灵活。一文了解 SmartX 超融合如何扩容

  • 如何利用 SmartX 存储性能测试工具 OWL 优化性能管理?

  • 通过弹性副本恢复策略平衡数据恢复速度与业务 I/O 性能

这篇关于一文解读 SmartX 超融合虚拟化下的网络 I/O 虚拟化技术的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/275889

相关文章

一文详解Python中数据清洗与处理的常用方法

《一文详解Python中数据清洗与处理的常用方法》在数据处理与分析过程中,缺失值、重复值、异常值等问题是常见的挑战,本文总结了多种数据清洗与处理方法,文中的示例代码简洁易懂,有需要的小伙伴可以参考下... 目录缺失值处理重复值处理异常值处理数据类型转换文本清洗数据分组统计数据分箱数据标准化在数据处理与分析过

MySQL中时区参数time_zone解读

《MySQL中时区参数time_zone解读》MySQL时区参数time_zone用于控制系统函数和字段的DEFAULTCURRENT_TIMESTAMP属性,修改时区可能会影响timestamp类型... 目录前言1.时区参数影响2.如何设置3.字段类型选择总结前言mysql 时区参数 time_zon

一文带你理解Python中import机制与importlib的妙用

《一文带你理解Python中import机制与importlib的妙用》在Python编程的世界里,import语句是开发者最常用的工具之一,它就像一把钥匙,打开了通往各种功能和库的大门,下面就跟随小... 目录一、python import机制概述1.1 import语句的基本用法1.2 模块缓存机制1.

MySQL中的锁和MVCC机制解读

《MySQL中的锁和MVCC机制解读》MySQL事务、锁和MVCC机制是确保数据库操作原子性、一致性和隔离性的关键,事务必须遵循ACID原则,锁的类型包括表级锁、行级锁和意向锁,MVCC通过非锁定读和... 目录mysql的锁和MVCC机制事务的概念与ACID特性锁的类型及其工作机制锁的粒度与性能影响多版本

Redis过期键删除策略解读

《Redis过期键删除策略解读》Redis通过惰性删除策略和定期删除策略来管理过期键,惰性删除策略在键被访问时检查是否过期并删除,节省CPU开销但可能导致过期键滞留,定期删除策略定期扫描并删除过期键,... 目录1.Redis使用两种不同的策略来删除过期键,分别是惰性删除策略和定期删除策略1.1惰性删除策略

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

Redis与缓存解读

《Redis与缓存解读》文章介绍了Redis作为缓存层的优势和缺点,并分析了六种缓存更新策略,包括超时剔除、先删缓存再更新数据库、旁路缓存、先更新数据库再删缓存、先更新数据库再更新缓存、读写穿透和异步... 目录缓存缓存优缺点缓存更新策略超时剔除先删缓存再更新数据库旁路缓存(先更新数据库,再删缓存)先更新数

一文带你搞懂Nginx中的配置文件

《一文带你搞懂Nginx中的配置文件》Nginx(发音为“engine-x”)是一款高性能的Web服务器、反向代理服务器和负载均衡器,广泛应用于全球各类网站和应用中,下面就跟随小编一起来了解下如何... 目录摘要一、Nginx 配置文件结构概述二、全局配置(Global Configuration)1. w

C#反射编程之GetConstructor()方法解读

《C#反射编程之GetConstructor()方法解读》C#中Type类的GetConstructor()方法用于获取指定类型的构造函数,该方法有多个重载版本,可以根据不同的参数获取不同特性的构造函... 目录C# GetConstructor()方法有4个重载以GetConstructor(Type[]