返回
2025/03/19
12. 服务器虚拟化软件比较
自从服务器虚拟化软件首次出现在 x86 系统上以来,已有大约 25 年时间。最初,VMware 在市场上占据压倒性份额,但现在 Linux KVM 也被广泛使用。基于 Linux KVM 的服务在公共云供应商提供的虚拟机服务(例如 Amazon EC2 和 OCI Compute)中尤为流行。
在本专栏中,我们已多次介绍 Oracle Linux KVM 作为服务器虚拟化软件。我们将回顾服务器虚拟化软件的历史,并解释当前的选择和选择时的注意事项。
服务器虚拟化软件的出现与演变
用于 x86 系统的首个服务器虚拟化软件 VMware Workstation 于 1999 年发布。2001 年,VMware ESX Server,即当前 VMware vSphere ESXi 的初始版本,也随之发布。
在 VMware 出现之前,虚拟化技术已存在于通用计算机和高端 UNIX 服务器上,用于将一台服务器分割成多台服务器,但当它在价格低廉的 x86 系统上可用时,引起了轰动。
此后,由于硬件性能的显著提升和服务器虚拟化软件的演变,服务器虚拟化已成为常态。在此,我们将简要提及硬件性能的改进,并回顾服务器虚拟化软件的历史。
硬件性能改进
硬件性能的提升是服务器虚拟化普及的最大影响因素。目前,即使是低端服务器也配备了大约四核的 CPU,拥有超过 50 个核心的 CPU 也并不少见。服务器虚拟化已成为高效使用这些服务器的不可或缺技术。
此外,20 年前与现在的硬件性能已有了显著改进。
- 多核和多核心 CPU
- 通过超线程(Hyper-Threading)和同时多线程(SMT)增加 CPU 线程数量
- 支持 CPU 虚拟化的技术,如 Intel VT 和 AMD-V(AMD SVM)
- 大容量内存的普及,范围从数百 GB 到 TB
- 通过 SSD/NVMe 加速磁盘访问
服务器虚拟化软件的演变
迄今为止,有许多服务器虚拟化软件可用。这里我们将介绍迄今为止发布的主要软件。
自 VMware 出现以来
VMware ESX(现为 VMware ESXi)使得使用虚拟机管理程序的高效虚拟化成为可能。此外,它现在拥有许多功能,例如使用 vMotion 的实时迁移以及强大的管理工具 vCenter Server 的出现。
如果您查看 VMware 网站,可以看到仅 VMware vSphere 就有许多版本,功能范围广泛。此外,还发布了诸如 vSAN 和 NSX 等许多相关产品。
Xen
Xen 是 Linux 中出现的首个虚拟机管理程序。第一个版本于 2003 年发布,此后,Citrix Systems、Oracle 等公司也发布了基于 Xen 的虚拟机管理程序。
Oracle 在此时发布的产品是 Oracle VM Server for x86。Oracle VM Server 实现了硬分区,这在 VMware 等虚拟化环境中之前是不允许的。
Oracle VM Server 仍在使用中,但 Premier 支持已结束,并已宣布扩展支持将于 2024 年 6 月结束。其后续产品是稍后将描述的 Oracle Linux KVM。
Linux KVM
KVM(基于内核的虚拟机)于 2007 年被合并到 Linux 主线内核中。最初,由于 Xen 的优越性(Amazon EC2 最初也基于 Xen),它表现较差。然而,自从被整合到主线内核后,它逐渐占据上风,现在 KVM 是 Linux 的主流虚拟机管理程序。
此外,许多公共云,例如 Amazon Web Services、Oracle Cloud Infrastructure 和 Google Cloud,都使用基于 Linux KVM 的系统。
KVM 包含在 Linux 内核中,因此在当前发布的大多数 Linux 发行版中都可用。
Oracle Linux 是其中之一,没有名为 Oracle Linux KVM 的产品。您可以使用常规 Oracle Linux 搭配 KVM。此外,通过结合 2019 年发布的 Oracle Linux Virtualization Manager,您不仅可以实现集成管理,还可以实现类似于 Oracle VM Server 的硬分区。
专为虚拟化设计的产品示例是 Red Hat 于 2009 年发布的 Red Hat Virtualization(原名 Red Hat Enterprise Virtualization)。
该产品针对虚拟环境进行了优化并捆绑了管理工具,但已宣布维护支持期将于 2022 年结束,最长的扩展生命周期支持将于 2026 年 8 月结束。
Red Hat Virtualization 目前已被整合到容器平台 Red Hat OpenShift 中,作为一项名为 Red Hat OpenShift Virtualization 的功能存在。
Microsoft Hyper-V
Hyper-V 于 2008 年作为 Windows Server 的一项功能引入。最初,它的性能不足,支持的客户操作系统数量较少,但现在已被用作 Azure 的基础。Windows 8 及更高版本的某些版本也具有客户端 Hyper-V,但本文重点讨论 Windows Server Hyper-V。
其他选择
到目前为止,我们介绍了主要的虚拟机管理程序,但近年来,其他服务器虚拟化技术也被使用。我们将在这里介绍其中的一些。然而,由于它们的定位与我们之前解释的虚拟机管理程序不同,因此不会包含在下一章节的比较中。
该产品被归类为 Nutanix
超融合基础设施(HCI)。它是一个将服务器虚拟化所需功能集于一身的产品,包括服务器、存储、网络和软件的所有组件。它是预先设置好的,因此可以在短时间内构建,并且由单一供应商提供所有内容,从而降低了复杂性和运营成本。
作为虚拟机管理程序,默认可以使用基于 Linux KVM 的 Nutanix AVH,也可以使用外部虚拟机管理程序,如 ESXi。
缺点是由于服务器配置有限,很难按照所需的 CPU 核心数量构建,并且由于是基于软件的存储,I/O 性能存在限制。然而,Nutanix 也可以使用外部存储。
OpenStack
OpenStack 是用于构建云计算环境的软件。它主要用于私有云环境,包括虚拟机、存储、网络、管理工具等。它支持 KVM、ESXi 和 Hyper-V 等虚拟机管理程序。
最初,人们期望它是一个廉价的虚拟环境,但由于其结构复杂、构建和运营困难、六个月的短发布周期以及有限的维护期,现在它被用作一些科技公司和公共云供应商的基础设施。
OpenStack 也以发行版的形式发布,例如 Red Hat OpenStack Platform。
表 01:OpenStack 与公共云组件兼容性表
OpenStack | AWS | OCI | |
---|---|---|---|
计算 | Nova | EC2 | Compute |
网络 | Neutron | VPC | VCN |
块存储 | Cinder | EBS | Block Volume |
对象存储 | Swift | S3 | Object Storage |
运营管理工具 | Horizon | Management Console | OCI Console |
容器
从 2013 年出现的 Docker 开始,到 2018 年左右,Kubernetes 成为容器基础设施编排的标准。使用容器的服务器虚拟化具有比虚拟机管理程序更高的整合能力、更快的速度和更轻量。它还与 DevOps 兼容,因此受到高级应用工程师的欢迎。
然而,由于以下原因,尤其是在存在现有应用程序的情况下,其在本地生产环境中的使用受到限制。
- Kubernetes 的发布周期很快(一个版本支持九个月),Kubernetes 本身及其生态系统以惊人的速度发展,难以跟上。
- 与虚拟机相比,故障排除更加困难
- 由于机制与虚拟机不同,现有应用程序需要修改。
问题 1 可以通过在公共云中使用托管服务来缓解,但在本地环境中不可用。
服务器虚拟化软件比较
到目前为止,我们介绍了多种服务器虚拟化方法。这次,我们将比较以下三种产品作为本地虚拟机管理程序。
- VMware vSphere
- Microsoft Hyper-V
- Oracle Linux KVM
事实上,十年前,VMware 具有压倒性优势。然而,此后,公共云的普及以及许多公共云供应商使用 Linux KVM 有了显著改进,现在在功能、性能和稳定性等基本功能上没有差异(Azure 使用 Hyper-V)。一些调查结果甚至显示 KVM 在可扩展性方面更优越。
例如,构成 Amazon EC2 基础的 AWS Nitro 系统由使用专用 SoC(片上系统)的硬件和基于 KVM 的虚拟机管理程序组成。
在这次软件比较中,我们将回顾并比较概览以及成本和运营方面的差异。
概览比较
下表显示了每个虚拟机管理程序的基本概览和主要功能。有更详细的比较表,但它们之间差别不大,所以我们将其保持在这个水平。请仅查看此表以了解每个的概况。
表 02:虚拟机管理程序比较(基础)
*1:这仅表示虚拟机管理程序具有该功能,但根据主机和客户设置的不同,可能无法工作。
成本比较
最大的区别在于许可和支持的成本。VMware 和 Hyper-V 的定价复杂,有些部分未公开,因此我不会提供具体价格,但如果您曾经为每个产品获取报价,您会知道 Oracle Linux KVM 的价格明显更低。此外,如果您使用 Oracle 产品,它被认证为硬分区,因此可以显著降低 Oracle 许可成本。
表 03:虚拟机管理程序比较(成本)
运营方面的比较
与成本方面相反,Oracle Linux KVM 在运营方面处于劣势。即使您喜爱的供应商服务器未获得官方支持,您也可以通过使用 Oracle 的 Oracle x86 Server 解决支持问题。问题在于缺乏第三方工具(如备份)和具备专业知识的工程师。
表 04:虚拟机管理程序比较(运营)
总结
现在基本功能、性能和稳定性的差异已经缩小,比较的重要点在于“成本”和“运营”。如果您有充足的预算并希望安全运营,VMware 是一个强有力的选择。此外,如果您大量使用 Windows Server,Hyper-V 应该具有较高的亲和性。
对于关注成本的人来说,Oracle Linux KVM 很有吸引力。它无需许可费用,支持成本低廉。特别是使用 Oracle 产品时,由于可以使用硬分区,与其他公司的价格差异更加明显。剩下的问题是运营方面。这是否通过培训内部工程师或通过一个好的合作伙伴来解决,可能取决于每家公司的政策和机遇。
供参考,Oracle 已发布了一份 KVM 与 VMware vSphere 的比较文档,我想在此介绍。