继我们最近的虚拟机管理程序文章之后,我们深入研究并分析了顶级虚拟机管理程序的功能、Web 界面和性能能力。具体来说,我们正在比较 RHEL、Proxmox、VMWare ESXI 8 和 Microsoft HyperV 上的 KVM。
在 VMWare 最近被 Broadcom 收购后,科技界一直在热议这些变化,最引人注目的是转向基于订阅的许可。这促使许多公司和 MSP 寻找更具成本效益的虚拟机管理程序选项。为了响应这种日益增长的兴趣,我们对领先的虚拟机管理程序进行了比较,并将它们作为那些考虑转换或探索市场选项的人的可行替代方案。
我们的目标是分析这些虚拟机管理程序的功能、Web 界面和性能。具体来说,我们将比较 RHEL、Proxmox、VMWare ESXI 8 和 Microsoft HyperV 上的 KVM。
RHEL(RedHat Enterprise Linux)上的 KVM
KVM(基于内核的虚拟机)是一种基于 Linux 的开源虚拟机管理程序,它通过将核心虚拟化功能嵌入 Linux 内核,将 Linux 转变为 1 型虚拟机管理程序。虽然 KVM 可以托管在任何 Linux 发行版上,但 Red Hat Enterprise Linux (RHEL) 因其强大的支持和企业级功能而广受欢迎。
RHEL 是一个多功能 Linux 发行版,可以安装或不安装桌面环境。管理界面 Cockpit 是一项可选服务,可以在安装过程中添加。Cockpit 是一个开源项目,并非 RHEL 独有,它有助于实现基本的 Linux 实例和服务管理。但是,它主要不是设计为虚拟机管理程序管理工具,并且缺少某些功能,例如内存膨胀。这种限制不是由于虚拟机管理程序,而是由于管理界面。
对于更高级的虚拟化和容器编排,Red Hat 提供了 OpenShift,这是一个采用云优先方法的综合平台,也可以在本地托管。OpenShift 提供了用于管理容器化应用程序和基础设施的强大工具,包括高级网络、存储和安全功能。但是,OpenShift 的最低生产要求至少为三个节点,因此不太适合较小的部署。
近视
Proxmox 基于 Debian,是另一种在家庭实验室和企业中越来越受欢迎的 KVM 实现,尽管其规模还不及 ESXi 或 HyperV。它是免费的开源软件,提供基于订阅的支持和更新。
它的 Web UI 在虚拟化任务方面优于 Cockpit,简化了资源管理,并包含高级功能和可调参数。Proxmox 还提供高级备份、快照和防火墙管理。但是,它的功能并不完全与 VMWare 相媲美,尤其是对于需要命令行干预的 vGPU 设置等任务。就功能而言,Proxmox 镜像了 RHEL 上的 KVM,与领先的虚拟机管理程序保持同等水平。
虚拟机ESXi
VMWare 的 ESXi 以其全面的功能集而闻名。虽然它作为虚拟机管理程序独立存在,但其全部功能可通过集中管理的 vCenter 解锁。
首先,它是一个从头开始构建的虚拟机管理程序。ESXi 的 Web UI 是其竞争对手中最精致的。它将几乎所有功能(包括 vGPU 管理等功能)都带入了基于 Web 的界面,很少需要控制台访问。与 VMWare Horizon 等解决方案相结合,ESXi 提供了集成的 VDI 解决方案。其独立和集群功能通过 vCenter、VSAN 和 Horizon 等服务得到进一步增强,使其成为一个强大的一站式选择。
Hyper-V
微软的 Hyper-V 已经确立了自己的地位,尤其是在以 Windows 为中心的环境中。Hyper-V 中的管理通过 Hyper-V Manager(适用于较小的设置)或 SCVMM(适用于较大的环境)进行。用户界面非常友好,特别是对于那些习惯使用 Windows 的人来说,它还提供直接从用户界面进行 vGPU 管理等功能。Hyper-V 在基于 Windows 的虚拟化方面表现出色,并且可以与其他 Microsoft 解决方案(如 Azure)很好地集成,从而方便升级和云迁移。虽然它是以 Windows 为中心的环境的明显选择,但它可能不太适合其他用例。
他们的表现如何?
让我们比较一下这些虚拟机管理程序的性能并看看它们如何相互叠加。
测试方法
我们的主要目标是评估与每个虚拟机管理程序相关的性能开销,并将其作为比较的关键指标。我们的测试重点是比较多线程性能、内存带宽和存储 I/O 性能。
我们的基准测试包括 Linux 内核编译、Apache、OpenSSL、SQLite、Stream 和 FIO。使用 Phoronix 测试套件至少执行三次,并重复执行,直到结果差异很小。在测试期间,Web 界面或桌面环境等功能会关闭,以确保最佳条件。
我们的基准是裸机性能,所有数字均以百分比形式相对于它进行缩放。然后为每个虚拟机管理程序复制相同的测试;我们配置运行 Ubuntu 的虚拟机。至关重要的是,每个虚拟机都分配了主机的全部资源。虚拟机使用默认设置进行配置,没有进行任何额外的优化。
由于对结果存在一些担忧,我们希望提供更多有关我们测试方法的背景信息。测试旨在模拟新用户进入环境的体验,例如从 ESXi 或 Hyper-V 为主的设置迁移的用户。我们提到的“默认”是指创建虚拟机时预先选择的选项,唯一配置的设置是资源分配(vCPU、RAM 和存储)的设置。
人们还对为何要为这些测试分配所有资源表示担忧。采用这种方法主要有两个原因。将这些结果与裸机进行比较作为基准,为我们测量的性能提供了更多背景信息。其次,它使我们能够判断跨 NUMA 节点的性能。在生产环境中,避免 NUMA 节点跳转是一项挑战,因此将这一方面纳入我们的测试中至关重要。
我们觉得有必要进行进一步澄清。为了解决这些问题,我们重新运行了所有测试,包括优化的 Proxmox 配置以及使用更现实的 VM 资源分配进行的进一步测试。
在我们的新测试中,优化的 Proxmox 使用主机作为 CPU 类型、NUMA 已启用、q35 作为机器,以及 OVMF (UEFI) 作为 BIOS。由于我们使用 Raid 控制器,因此缓存设置为回写存储,并且已打开 SSD 模拟。在所有其他虚拟机管理程序的所有其他情况下,仅使用各自的 UI 将资源分配给 VM,并且未更改其他设置。
测试设置
在我们的测试中,我们使用的是戴尔 R760。
产品规格:
- 英特尔至强蓝宝石 Rapids 6430
- 256GB DDR5
- 8个7.68TB 固体P5520 在 Dell PERC5 上的 RAID12 中
(注意: 原始测试所用的服务器已升级以适应新的 Emerald Rapids 处理器。因此,原始结果无法与新结果直接比较。因此,所有测试都重新运行以确保一致性和准确性。)
这些新测试将在采用直接液冷的 Dell R760 上运行。
产品规格:
- 英特尔至强 Emerald Rapids 8580
- 256GB DDR5
- 8个7.68TB 固体P5520 在 Dell PERC5 上的 RAID12 中
测试结果
让我们更深入地了解各个测试结果。
Linux 内核编译测试占用大量 CPU 资源,用于测量编译 Linux 内核所需的时间。测试显示,ESXi 和 Hyper-V 表现优异,分别实现了 96.79% 和 96.70% 的裸机性能。RHEL 上的 KVM 实现了 66.61% 的裸机性能,而原版 Proxmox 则落后,为 63.28%。不过,优化版 Proxmox 获得了可观的 89.71% 的裸机性能。
在 Apache 基准测试中,该基准测试评估了 Apache Web 服务器在高并发连接和请求下的性能,ESXi 和 Hyper-V 表现出色,裸机性能分别达到 113.64% 和 129.62%。RHEL 上的 KVM 达到 85.72%,原版 Proxmox 得分为 75.90%,优化版 Proxmox 得分为 75.31%。值得注意的是,ESXi 和 Hyper-V 超过了裸机性能,这可能是由于较新芯片中的硬件加速器,这表明这些虚拟机管理程序无需手动配置和调整即可使用这些加速器。
OpenSSL 测试用于测量 CPU 的加密性能,结果表明 RHEL 上的 ESXi、Hyper-V 和 KVM 表现非常出色,裸机性能分别达到 101.35%、101.27% 和 101.15%。原版 Proxmox 仅达到 5.33%,而优化版 Proxmox 得分为 98.91%。
在评估压缩和解压缩性能的 7-Zip 压缩测试中,ESXi 和 Hyper-V 表现出色,裸机性能分别达到 95.98% 和 97.56%。RHEL 上的 KVM、原版 Proxmox 和优化版 Proxmox 分别接近 85.81%、87.17% 和 87.43%。
FIO 测试测量了存储子系统在 4k 块大小随机读写情况下的性能,结果表明 ESXi 的随机读取率为 57.41%,随机写入率为 55.27%,而 Hyper-V 的随机读取率为 72.95%,随机写入率为 85.71%。RHEL 上的 KVM 的随机读取率为 74.60%,随机写入率为 85.37%。Stock Proxmox 的随机读取率为 54.71%,随机写入率为 44.71%,而 Optimized Proxmox 在本次测试中表现最佳,随机读取率为 98.57%,随机写入率为 91.49%。
SQLite 测试衡量了 SQLite 数据库的性能,结果表明 ESXi 实现了 96.44% 的裸机性能。Hyper-V 得分为 55.94%,而 RHEL 上的 KVM 得分为 62.52%。有趣的是,原版 Proxmox 得分为 85.27%,高于优化版 Proxmox,后者得分为 68.86%。具体原因尚不明确,但测试在全新安装的虚拟机管理程序和虚拟机上进行了两次,以确保可重复性。
Stream 基准测试评估了内存带宽性能,结果表明 ESXi 和 Hyper-V 表现出色,裸机性能分别达到 98.30% 和 99.01%。RHEL 上的 KVM、原版 Proxmox 和优化版 Proxmox 得分接近,分别为 74.60%、76.24% 和 71.04%。
总体而言,Hyper-V 表现最佳,平均裸机性能为 92%。ESXi 稍逊一筹,平均性能为 89%,优化版 Proxmox 紧随其后,为 85%,位居第三,RHEL 上的 KVM 排名第四,为 79%,原版 Proxmox 落后,为 61%。
在更现实的虚拟机资源分配场景中,这些数字被标准化为每个类别中表现最好的。对于 Linux 内核编译基准测试,ESXi 得分最高,RHEL 上的 KVM 以 97.90% 排名第二,优化的 Proxmox 以 97.88% 紧随其后。Stock Proxmox 以 88.90% 排名第四,Hyper-V 落后 66.05%。
对于 Apache 基准测试,ESXi 再次获得最高分,RHEL 上的 KVM 以 76.25% 排名第二,Hyper-V 以 76.14% 紧随其后。优化版 Proxmox 也非常接近,得分为 75.36%,而原版 Proxmox 得分最低,得分为 61.11%。
在 OpenSSL 基准测试中,ESXi 以最高得分保持了其地位,RHEL 上的 KVM 以 96.25% 的成绩位居第二,优化的 Proxmox 以 94.48% 的成绩位居第三,Hyper-V 仅获得 48.96%,而原始 Proxmox 以 3.42% 的成绩排名最后。
对于 7-Zip 压缩测试,ESXi 继续获得最高分,RHEL 上的 KVM、优化的 Proxmox 和原始 Proxmox 的得分非常接近,分别为 96.84%、96.59% 和 95.40%,而 Hyper-V 仍然落后,得分为 64.48%。
在 FIO 测试中,ESXi 在随机读取和随机写入方面均获得最高分。对于随机读取,优化版 Proxmox 以 86.81% 排名第二,Hyper-V 以 71.02% 排名第三,RHEL 上的 KVM 以 68.44% 排名第四,原版 Proxmox 以 45.05% 排名最后。随机写入测试也呈现出类似的情况,Hyper-V 以 73.43% 排名第二,RHEL 上的 KVM 以 70.92% 排名第三,优化版 Proxmox 以 59.91% 排名第四,原版 Proxmox 以 38.79% 排名最后。
SQLite 测试更有趣,ESXi 仍然得分最高,原始 Proxmox 位居第二,RHEL、Hyper-V 和优化 Proxmox 上的 KVM 分别以 49.23%、43.06% 和 42.61% 排名最后。
在 Stream 测试中,优化后的 Proxmox 得分最高,原始 Proxmox 以 83.56% 位居第二,RHEL 上的 KVM 以 82.47% 位居第三,ESXi 以 71.21% 排名第四,Hyper-V 以 63.02% 排名最后。
结论
总体而言,在最坏情况下的全资源测试中,Hyper-V 以平均得分 92.34% 获胜,其次是 ESXi 89.36%,优化的 Proxmox 85.16%,RHEL 上的 KVM 79.55%,最后是与裸机相比的 61.58% 的普通 Proxmox。在更现实的资源分配下,ESXi 在除 Stream 之外的所有测试中得分最高,平均得分为 96.4%,其次是优化的 Proxmox 81.7%,RHEL 上的 KVM 79.79%,Hyper-V 仅以 63.27% 落后,普通 Proxmox 以 59.69% 排在最后。
在我们的测试中,ESXi 的平均表现最佳。在开源替代方案中,优化的 Proxmox 表现出了值得称赞的性能,但如果没有优化,性能就不太理想。RHEL 上的 KVM 在我们的最坏情况测试中落后,但在更现实的测试中非常接近优化的 Proxmox。Hyper-V 在现实资源分配下的结果令人惊讶;更深入的分析将解释为什么结果如此,但这超出了本文的范围。
参与 StorageReview
电子报 | YouTube | 播客 iTunes/Spotify | Instagram | Twitter | TikTok | RSS订阅