在建立虛擬化環境時,了解KVM和Hyper-V之間的差異是至关重要的,這有助於組織最大化硬體資源的利用。在本文中,我們简要地解釋了KVM和Hyper-V是什麼,然後將二者進行比較。
這種比較評估的關鍵點如下:
- 可擴展性和性能
- 管理工具
- 記憶體供應選項
- 安全性特性
- 活體迁移功能
KVM虛擬化核心技术是什麼?
KVM這個縮寫代表Kernel-based Virtual Machine。它是一個在Linux核心中的開源全虚拟化解決方案。KVM運行於x86處理器上,為用戶提供虚拟化環境的虚拟化管理功能。
基於核心的虛擬機虚拟化管理器最初在2007年作為Linux版本2.6.20及更新版本的一部分發布。KVM支持各種操作系统,如Linux、Windows、macOS和Haiku,提供硬體助益的虛擬化功能。同一個解決方案還為Windows、OpenBSD、FreeBSD等系統提供拟虚拟化。
KVM可以在大多數支援硬體助益虚拟化的Linux電腦上使用。要在Linux上安装KVM,你需要從Linux軟體倉庫下載所需的包包,以及kvm-qemu和一個管理工具(可選)。
最常见的KVM基礎虛擬化管理工具是Oracle Linux虛擬化管理器、Proxmox VE和Red Hat虛擬化管理器。
Hyper-V是什麼?
Hyper-V 是一款原生 Microsoft 虚拟化平台,它讓您能夠創建和使用虛擬機 (VMs) 以及虛擬環境。Hyper-V 能在 Windows OS 下的 x86-64 系統上運行。
Microsoft Hyper-V 最初是在 Windows Server 2008 作為一部分发布的。虛擬化平台是 Windows Server 系統的可選下載元件。此外,Hyper-V 還有一個獨立的免费版,功能有限,只支持命令行界面 (CLI)。
使用 Hyper-V,您可以獲得一套相互隔離的虛擬機。這是由於特定的父 (根) 分区和子分区所實現的。一個可以直接訪問硬件的父分区運行虛擬化管理堆疊,然後,這個分區創建運行訪客操作系統的子分区。
KVM 對 Hyper-V:詳細比較
在我們對 KVM 和 Hyper-V 進行比較時,已經強調了general 差異,現在我們可以進一步詳細比较高矮。請查看以下信息,以便您可以选择最適合您需求的解決方案。
可擴展性和性能
在 KVM 對 Hyper-V 的比較中,可擴展性和性能可说是是最重要的兩個點。好消息是,這裡的競爭結果是一個平局 —— both Hyper-V 和 KVM 都具有高性能和出色的可擴展性。
KVM 虛擬化軟件基於 Linux 核心,是一個開源解決方案。這意味著 KVM 能在廣泛的硬體上正確運行。同樣的 Linux 核心實現了高效率和操作速度。
缺点方面,KVM的開源本性可能會導致一些情境問題,這些問題需要花費時間和努力來解決。不過,KVM在線知識庫非常豐富,意思著你多半可以快速找到你的解決方案。
另一方面,Hyper-V是Microsoft的專有虚拟化器,與Windows Server OS一同提供,優化以在大部分可用硬件上提供最大性能。Hyper-V的可擴展性也讓您能夠在最有效率地使用您的IT基礎設施,通過在主機上運行多個VM並根據需求擴展虛擬工作負荷。
Hyper-V的主要缺點是它對除Windows以外的操作系統的支持有限。加上某些管理複雜性與可能的兼容性问题,如果没有必要的技術經驗,Hyper-V也可能是一個挑戰。
管理工具
由於Hyper-V和KVM是为不同的基礎平台設計的,它們的管理工具也有所不同。
對於Hyper-V管理,你可以使用Windows PowerShell命令行界面(CLI)。如果你想要具有圖形用戶界面(GUI)的解決方案,你可能想要使用Windows管理中心或Hyper-V管理器。
此外,組織可以從Microsoft提供的原生企業級管理工具中獲得許多好處:System Center Virtual Machine Manager(VMM)for Hyper-V。管理員通常選擇VMM來管理Hyper-V環境,原因是方便且有信息的基礎設施視圖和可擴展性功能。不过,你需要購買专用許可才能使用虚拟機管理器。
您可以完全使用命令行界面(CLI)來執行 KVM 管理任務,就像使用 Microsoft Hyper-V 的 PowerShell 一樣。不過,偏好使用圖形介面來管理他們的 KVM 基礎設施的人可能想要嘗試像 Morpheus、virt-manager 或 Cloonix 這樣的其他解決方案。在這些之中
Hyper-V 和 KVM 共享一個重要特性:它們都有廣泛的硬體兼容性清單,這為您提供了极大的靈活性。
對於 KVM,您可以有效使用任何存儲(包括直接連接存儲和網絡連接存儲)。相對地,Hyper-V 則能與任何受 Windows 支持的光碟存儲协作。請注意,如果您打算將虛擬機文件存儲在 NAS 或網絡文件共享上,您需要設定服務消息块protocol 3.0。
記憶體配給選項
記憶體使用靈活性是 KVM 和 Hyper-V 共享的另一個優點。這兩種虛擬化軟體都能同樣有效地使用一般記憶體或 NUMA(非均勻記憶體訪問)。
然而,值得注意的是 KVM 和 Hyper-V 在記憶體分配上的差異。在 Hyper-V 中,动态记忆功能使虛擬機能夠根據當前 VM 的需求來调控記憶體使用。需求不會超過設定的記憶體限制。通過動態記憶體分配,管理員可以通過過 Provisioning 記憶體在單一主機上運行更多的 VMs。
KVM hypervisor 也支持記憶體過渡供应。然而,此功能的實現與 Hyper-V 不同。KVM 虛擬機是在 Linux 作業系統下的主機上運行的獨立进程。因此,虛擬機沒有預分配的記憶體卷。作業系統根據请求將記憶體在天氣虛擬機之間分配。簡單來說,KVM 虛擬化軟件根據需求為每個虛擬機分配記憶體區塊。
如果 KVM 主機面臨物理記憶體不足的問題,系統會將一些記憶體頁面傳送到交換區。空閒 RAM 的數量隨著需求增加而增加,從而使主機系統能夠進行記憶體過承。
安全性特點
在 KVM 和 Hyper-V 比較的安保功能方面,兩個解決方案都具有高效的安保特性,您可以使用它們來確保組織數據和環境的保護。
對於 KVM,虛擬機的孤立和安全性來自於兩個解決方案的特性。第一個,SELinux(安全性強化的 Linux)在虛擬機周圍設定一個安保範圍。sVirt(安全的虛擬化)為來賓 VM 启用強制訪問控制(MAC)安全性,為 SELinux 增加更多功能,並減少人類錯誤對虛擬安保的影響。
Hyper-V 也可以將虛擬機器的環境在單一節點被骇客攻陷前進行隔離。此外,與第 2 代 Hyper-V 虛擬機一同提供的 Secure Boot 功能有助於在開機時防止未經授權的作業系統、驅動程式及固件運行。Hyper-V 的其他安全性功能包括整個子网的通讯加密、Guarded Fabric(一個防恶意程式的安全模型)以及被封裝的虛擬機。
Live VM 迁移功能
Live VM 迁移是 KVM 和 Hyper-V 都提供的一项功能。通過這項功能,管理員可以在不中斷 VM 操作的情況下將 VM 遷移到不同的服務器。
Live VM 迁移有助於組織支持生產持續和服務可用性。例如,當您在主要虛擬化主機上進行計劃性的硬體維護時,您可以將您的关键 VM 遷移到次要服務器。維護將照預定計劃進行,而不會干擾您組織的工作流程和操作。
另外,有時您的主機资源和 VM 不匹配。例如,一個 VM 在使用過程中可能會變得“过大”,導致整個主機的性能問題。最有效的優化主機性能的方法是使用虛擬化主機的 live migration 功能,在不用關閉 VM 的情况下將虛擬機遷移到不同的主機。
KVM 和 Hyper-V 之間相互轉換
當需要時,您可以將 KVM 虛擬機轉換為在 Hyper-V 環境中使用,反之亦然。請查看下面的 KVM 和 Hyper-V 之間轉換指南。
從 KVM 轉換到 Hyper-V
將KVM虛擬機轉移至Hyper-V環境的三步驟為:
- 安装qemu-ing。
- 要用來將KVM虛擬機磁盤映像轉為Hyper-V格式,可以使用以下命令:
qemu-img.exe convert sourcefile.qcow2 -O vhdx -o subformat=dynamic destinationfile.vhdx
在此命令中,sourcefile 是源VM磁盤文件名,destinationfile 是轉換後你想要獲得的新磁盤文件名。
- 在Hyper-V中建立新的虛擬機,然後將轉換過的映像磁盤附加至該虛擬機。
從Hyper-V轉移至KVM
要将Hyper-V虛擬機轉移至KVM環境,請執行以下步驟:
- 關閉你需要轉移的Hyper-V虛擬機。然後選擇虛擬機,在Hyper-V管理員中按匯出。
- 為虛擬機文件提供目的地存儲庫。
- 留意匯出的虛擬機的處理器核心數、記憶體和MAC地址。
- 將目標虛擬機的VHDX文件複製到KVM環境。
- 在KVM主機上安裝virt-v2v。
- 使用 virt-v2v 將 VHDX 轉換為 QCOW2,可以使用以下命令:
sudo virt-v2v -i disk sourcefile.vhdx -o local -of qcow2 -os targetfile
- 轉檔完成後,請留意虛擬 guests OS。
- 在 KVM 環境中使用 VMM 建立新的虛擬機器。
- 選擇 匯入現有的磁碟映像,然後點選 繼續。
- 尋找 vhdx-sda 文件,然後指定您需要安裝的 OS。然後,按下 繼續。
- 完成初始新 VM 設定:設定記憶體、CPU、VM 名稱並指定 KVM 網路設定。然後,點選 套用。
- 在此處設定像是 MAC 等的特定選項。然後,在視窗頂部,選擇 開始安裝。
成本考量
組織的預算是任何 IT 環境選擇的基石,KVM 對 Hyper-V 的決定也不例外。在價格方面,KVM clearly has an advantage: 作為一個開源解決方案,它是免费的。此外,您还可以免费下载并安装管理工具和功能模块。Microsoft Hyper-V 模块也是免费的。但是,细微之处在于,Microsoft 建议升级到 Windows Server 以運行 Hyper-V 虛擬化環境。
結論
選擇 KVM 還是 Hyper-V 取決於您的組織的具體需求和預算。如果您需要在熟悉的生態系統中運行 Windows 虛擬機,並且準備好分配資金以獲得專有支持的解決方案,那麼 Hyper-V 是正確的選擇。另一方面,如果您準備好投入額外的努力來配置和調整開源解決方案,那麼 KVM 可以在管理、安全性、可伸縮性和功能等方面提供幾乎同等的能力和體驗,且完全免費。