KVM 與 Hyper-V 的全面指南

在建立虛擬化環境時,了解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環境的三步驟為:

  1. 安装qemu-ing。
  2. 要用來將KVM虛擬機磁盤映像轉為Hyper-V格式,可以使用以下命令:

    qemu-img.exe convert sourcefile.qcow2 -O vhdx -o subformat=dynamic destinationfile.vhdx

    在此命令中,sourcefile 是源VM磁盤文件名,destinationfile 是轉換後你想要獲得的新磁盤文件名。

  3. 在Hyper-V中建立新的虛擬機,然後將轉換過的映像磁盤附加至該虛擬機。

從Hyper-V轉移至KVM

要将Hyper-V虛擬機轉移至KVM環境,請執行以下步驟:

  1. 關閉你需要轉移的Hyper-V虛擬機。然後選擇虛擬機,在Hyper-V管理員中按匯出
  2. 為虛擬機文件提供目的地存儲庫。
  3. 留意匯出的虛擬機的處理器核心數、記憶體和MAC地址。
  4. 將目標虛擬機的VHDX文件複製到KVM環境。
  5. 在KVM主機上安裝virt-v2v
  6. 使用 virt-v2v 將 VHDX 轉換為 QCOW2,可以使用以下命令:

    sudo virt-v2v -i disk sourcefile.vhdx -o local -of qcow2 -os targetfile

  7. 轉檔完成後,請留意虛擬 guests OS。
  8. 在 KVM 環境中使用 VMM 建立新的虛擬機器。
  9. 選擇 匯入現有的磁碟映像,然後點選 繼續
  10. 尋找 vhdx-sda 文件,然後指定您需要安裝的 OS。然後,按下 繼續
  11. 完成初始新 VM 設定:設定記憶體、CPU、VM 名稱並指定 KVM 網路設定。然後,點選 套用
  12. 在此處設定像是 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 可以在管理、安全性、可伸縮性和功能等方面提供幾乎同等的能力和體驗,且完全免費。

Source:
https://www.nakivo.com/blog/kvm-vs-hyper-v/