Hyper-V 嵌套虛擬化解析

Hyper-V 嵌套虛擬化是一項首次隨 Windows Server 2016 和 Windows 10 發布的特點,適用於工作站及伺服器。隨著此特點的發布,Microsoft Hyper-V 虛擬化平台(hypervisor)的應用範圍得以擴展。本文將說明何謂嵌套虛擬化,並闡述 Microsoft Hyper-V 中嵌套虛擬化的使用情境、需求及限制。

NAKIVO Hyper-V 備份解決方案

NAKIVO Hyper-V 備份解決方案

適用於 Hyper-V 的無代理程式、應用程式感知的備份解決方案。具備防勒索軟體防護功能、可從備份立即啟動虛擬機器,並支援其他虛擬/實體平台等更多功能。

什麼是嵌套虛擬化?

Microsoft Hyper-V 中的嵌套虛擬化是一項特點,可讓您在 Hyper-V 主機上運行的其他 Hyper-V 虛擬機器 (VM) 內建立虛擬機器。這些在虛擬機器內運行的虛擬機器稱為嵌套虛擬機器。請注意, 在 VMware 中亦可設定嵌套虛擬化 環境。

A schema of nested virtualization in Hyper-V

使用情境

以下是虛擬環境中嵌套虛擬化的一些使用情境:

  • Creating isolated environments. 您可以利用此特點建立透過隔離虛擬網路相互連線的嵌套虛擬機器。如此一來,您便能建立一個完全隔離的環境,且不會對您的常規虛擬機器和網路造成任何影響。
  • Training/testing/development. 培訓對於讓新使用者或管理員熟悉軟體(或讓現有使用者或管理員熟悉新軟體)非常有用。然而,在生產環境中進行培訓可能會導致系統不穩定,甚至造成故障。透過嵌套虛擬化,您可以在嵌套虛擬機器上模擬生產環境,而不會對實際的生產環境造成任何影響。

    除了管理員的培訓外,品質保證專員(測試人員)和開發人員也可能需要此類環境來進行測試或開發。其優勢在於,您可以在現有的虛擬環境中使用嵌套虛擬機器來達成這些目的,而無需購買額外的專用硬體。

  • Building a private cloud. 部署一個配備使用者自助服務入口網站的真正私有雲,成本高昂且耗費大量人力。透過嵌套虛擬化,您可以部署一個功能性與此類雲端完全相同的擬似私有雲。例如,您可以建立一台已安裝 Hyper-V Server 的虛擬機器,並配置 256 GB 的記憶體。

    使用者可在安裝了 Hyper-V 的虛擬機器內部,根據需求建立並配置嵌套虛擬機器,但其記憶體使用量不得超過 256 GB。您可利用熱擴充特點,在不造成任何停機的情況下,為安裝了 Hyper-V 的虛擬機器新增記憶體及虛擬網路介面卡。

需求與限制

若要在 Hyper-V 中實作嵌套虛擬化,您應符合以下需求:

  • 主機作業系統必須是 Windows Server 2016 或 Windows 10(週年更新)或更新版本。
  • Hyper-V 虛擬機器必須為第 8 版或更高版本。
  • 實體伺服器必須配備相容的 CPU,且該 CPU 須支援適當的虛擬化特點。
    • 僅具備 VT-x 和 EPT 技術的 Intel 處理器,才支援 Windows Server 2016、Windows Server 2019 及 Windows 10 中的嵌套虛擬化功能。
    • 如果您使用的是具備 AMD-V 虛擬化特點的 AMD 處理器,則必須使用 Windows Server 2022 或 Windows 11,才能支援 Hyper-V 嵌套虛擬化。
    • 最新的 Windows 版本同時支援 AMD 和 Intel 處理器。
  • 必須有足夠的實體記憶體來執行虛擬機器。
  • 虛擬機器不應 使用動態記憶體.
  • 雖然並非需求,但建議您使用 SSD 硬碟來 提升虛擬機器效能,因為磁碟速度過低會顯著降低系統效能。

對於託管嵌套虛擬機的虛擬機(嵌套虛擬機可稱為"最內層的客機"),存在以下限制:

  • 檢查點 無法套用至正在運行的虛擬機器。
  • 該虛擬機的即時遷移失敗。
  • 執行階段記憶體調整大小功能性無法運作。

註: 與上述三項限制相關的特點 可以 供最尊貴的賓客使用。

何謂嵌套式 VT-x/AMD-V?

Intel VT-x 和 AMD-V 是處理器的指令集,可實現硬體虛擬化。當您使用嵌套虛擬化時,必須為用於嵌套的虛擬機器啟用其中一項特點。只有這樣,虛擬機器才能利用處理器的硬體虛擬化特點來執行嵌套的虛擬機器。

如何啟用 Hyper-V 嵌套虛擬化並建立嵌套虛擬機器

本節說明如何在 Windows Server 2019 中設定 Hyper-V 嵌套虛擬化。此設定流程與 Windows Server 2016 及 Windows Server 2022 相同。

設定 Hyper-V 主機

首先,您需要設定 Hyper-V 主機:

  1. 請準備一台配備相容 CPU、足夠記憶體及適當儲存容量的實體伺服器。
  2. 請確認 BIOS 中已啟用 CPU 虛擬化特點(例如 Intel VT-x)。
  3. 安裝 Hyper-V Server 2019、Windows Server 2019 或 Windows 10 作業系統。
  4. 新增 Hyper-V 伺服器角色 如果您使用的是功能齊全的 Windows 作業系統(或 在 Windows 10 中啟用 Hyper-V)。您也可以使用圖形使用者介面 (GUI) 和伺服器管理員。

部署來賓虛擬機器

接下來,您需要建立一台虛擬機器並安裝客體作業系統:

  1. 在 Windows Server 中建立 Hyper-V 虛擬機器在 Windows 10 中建立虛擬機器.
  2. 在客體虛擬機器上安裝支援 Hyper-V 嵌套虛擬化的作業系統,也就是安裝 Windows 10 週年更新版或更新版本,或是 Windows Server 2016 或更新版本。

本操作指南以 Windows Server 2016 為示範對象。您亦可使用較新版本的 Windows。

設定客體虛擬機器

預設情況下,客體虛擬機的硬體虛擬化支援已停用。若您嘗試為該虛擬機新增 Hyper-V 角色,作業系統將會顯示錯誤訊息。

This error message is displayed when hardware virtualization is disabled for a guest VM

您只能透過 PowerShell 為客體虛擬化程式啟用硬體虛擬化。請注意,必須先關閉客體虛擬機的電源,才能執行以下指令。

  1. 首先請確認客體虛擬機器是否已啟用硬體虛擬化。請在主機作業系統(即安裝於實體機器上的作業系統)上執行以下指令:

    Get-VMProcessor -VMName vm_name | fl *

    請將 vm_name 替換為您的虛擬機器名稱。在本範例中,虛擬機器的名稱是 Server2016。WIN2018 則是代表安裝了 Windows 及 Hyper-V 角色的實體機器的電腦名稱。

    Hyper-V nested virtualization - checking if hardware virtualization is enabled for a VM

  1. 若要在客體虛擬機器內啟用硬體虛擬化,請先停止該虛擬機器,然後執行以下指令:

    Set-VMProcessor -VMName vm_name -ExposeVirtualizationExtensions $true

    如果一切正常,輸入指令後不應顯示任何訊息。如果虛擬機器正在執行,則會顯示以下錯誤訊息:

    Hyper-V enable nested virtualization - enabling processor virtualization features for a VM

虛擬機器網路連線

現在,您需要為虛擬機器設定網路設定。將嵌套虛擬機器連接到網路有兩種方式: MAC spoofing 以及 NAT.

  • 如果透過提供對真實區域網路(LAN)的存取權限來配置嵌套虛擬機器的網路,則主機上的某個網路介面卡將會承載多個 MAC 位址——這可能會導致網路問題。這就是為什麼 MAC address spoofing 必須啟用此選項(此選項預設為停用狀態)。
  • 若部署了偽私有雲,則無法在虛擬機器網路中使用 MAC 位址偽造功能,您應設定 NAT 在此情況下。

註: 以下將介紹這兩種方法,但我們將採用 NAT 方法來設定虛擬機器,使其使用 Hyper-V 嵌套虛擬化。

設定 MAC 位址偽造

若要使用 MAC 位址偽造功能,請在虛擬 Hyper-V 主機的網路介面卡上啟用此功能:

  • 在已安裝 Hyper-V Server 的實體機器上,輸入以下指令以啟用 MAC 位址偽造:

    Get-VMNetworkAdapter -VMname vm_name | Set-VMNetworkAdapter -MacAddressSpoofing On

    請將此處的""替換為您的虛擬機器名稱 vm_name. 在我們的情況下,它是 Server2016如上所述。

    Enabling MAC address spoofing for a VM in 
PowerShell for Hyper-V nested virtualization

  • 如果您偏好使用圖形化使用者介面,請前往 VM Settings > Network adapter > Advanced features 並選取 Enable MAC address spoofing 勾選方塊,然後按一下"確定"。

    Enabling MAC address spoofing for a VM to use the network with Hyper-V nested virtualization

設定 NAT

NAT 只能透過 PowerShell 啟用。雖然前面的指令是在主機作業系統上執行的,但以下指令必須在客體作業系統上執行。

若要為虛擬機器網路連線啟用 NAT:

  1. 首先, 建立一個新的虛擬交換器.

    New-VMSwitch -Name "SwitchName" -SwitchType Internal

    請使用您的開關名稱,而非 SwitchName. 我們正在使用 NAT-Switch 在本操作指南中。

    Creating a new virtual switch to connect VMs through NAT for using networking with Hyper-V nested virtualization

  1. 定義 NAT 後方的子網,並啟用 NAT。該網路位址不得與您現有網路中的 IP 位址重複。在此範例中,網路名稱是 NAT-net 而網路位址是 192.168.2.0/24

    New-NetNat -Name "network_name" -InternalIPInterfaceAddressPrefix 'ip-address/netmask'

    Defining a network address for the network used for NAT

  1. 接著為已啟用 NAT 的介面指派 IP 位址。

    執行以下指令,產生可用網卡清單以確認其名稱:

    Get-NetAdapter | ft -Autosize

    Displaying a list of virtual switches and checking the name of the recently created virtual switch

    在此範例中,連接至先前建立之虛擬交換器的虛擬網路介面卡名稱是 vEthernet (NAT-Switch).

  1. 現在您應為此虛擬網路介面卡設定 IP 位址,該位址必須屬於已建立的網路。嵌套虛擬機器將使用此網路介面的 IP 位址作為閘道。在本範例中,此 IP 位址為 192.168.2.1,它屬於 192.168.2.0/24 網路

    Get-NetAdapter "adapter_name" | New-NetIPAddress -IPAddress ip_address -AddressFamily IPv4 -PrefixLength mask_number

    Setting the IP address for the network interface used for NAT

設定嵌套虛擬機器

現在您可以建立並設定嵌套虛擬機器。在此操作指南中,將使用安裝了 Windows Server 2016 的虛擬機器作為嵌套虛擬機器。

  1. 在虛擬機的網路設定中,選取該虛擬交換器(即您剛建立的) Hyper-V 管理員.

Selecting the virtual switch created to connect the VMs through NAT

  1. 請在 TCP/IP 設定中進行設定 Network Adapter Properties 嵌套虛擬機的。如果虛擬網路中沒有 DHCP 伺服器,請手動指派 IP 位址、子網遮罩、預設閘道和 DNS 伺服器。

Hyper-V nested virtualization networking - setting the IP address for the nested VM

註: 請檢查您的防火牆設定,因為防火牆可能會阻擋網路連線。

您的嵌套虛擬機器現在已配置好網路,並已準備就緒。

Running a nested VM - Hyper-V nested virtualization networking works fine

使用 NAKIVO Backup & Replication

應備份所有虛擬機器(包括嵌套虛擬機器),以確保 Hyper-V 虛擬環境的可靠性。 NAKIVO Backup & Replication 提供 可靠的 Hyper-V 備份 透過基於影像的快速增量備份,該技術利用原生的 Hyper-V 彈性變更追蹤 (RCT) 技術。透過這些備份,您可以還原應用程式物件/檔案、立即啟動虛擬機器,或將 Hyper-V 虛擬機器還原為 VMware vSphere 虛擬機器,此外還有其他還原選項。

試試看 NAKIVO Backup & Replication

試試看 NAKIVO Backup & Replication

立即申請免費試用,全面體驗本解決方案的所有資料保護特點。15 天免費試用。無功能或容量限制。無需提供信用卡資訊。

People also read