返回
2025/03/25
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 執行緒數量
- 如 Intel VT 和 AMD-V(AMD SVM)等 CPU 虛擬化支援技術
- 數百 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 仍在使用中,但首要支援已結束,且已宣布延伸支援將於 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 System 由使用專用 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 的比較文件,我想在此介紹。