使用巢狀虛擬化在虛擬機器中執行 Hyper-V

巢狀虛擬化是一項功能,可讓您在 Hyper-V 虛擬機 (VM) 內執行 Hyper-V。 巢狀虛擬化有助於在虛擬機中執行 Visual Studio 手機模擬器,或測試通常需要數部主機的設定。

若要深入瞭解巢狀虛擬化和支援的案例,請參閱 什麼是 Hyper-V 的巢狀虛擬化?

必要條件

使用 VT-x 和 EPT 技術的 Intel 處理器

  • Hyper-V 主機必須是 Windows Server 2016 或更新版本,或 Windows 10 或更新版本。
  • VM 組態 8.0 版或更高版本。

AMD EPYC / Ryzen 處理器或更新版本

  • Hyper-V 主機必須是 Windows Server 2022 或更新版本,或 Windows 11 或更新版本。
  • VM 組態 9.3 版或更高版本。

注意

來賓可以是任何 Windows 支援的客體作業系統。 較新的 Windows 作業系統可能支援提升效能的啟發性。 若要在 Azure VM 中啟用巢狀虛擬化,請務必將安全性類型設定為 「標準」

設定巢狀虛擬化

  1. 建立虛擬機器。 請參閱必要OS和VM版本的必要條件。

  2. 當虛擬機處於 OFF 狀態時,請在實體 Hyper-V 主機上執行下列命令,以啟用虛擬機器的巢狀虛擬化。

    Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
    
  3. 啟動虛擬機器。

  4. 在虛擬機內安裝 Hyper-V,就像對實體伺服器一樣。 如需安裝 Hyper-V 的詳細資訊,請參閱 安裝 Hyper-V

注意

使用 Windows Server 2019 作為第一層 VM 時,vCPU 數目應為 225 或更少。

停用巢狀虛擬化

您可以使用下列 PowerShell 命令,停用已停止虛擬機的巢狀虛擬化:

Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $false

網路功能選項

使用巢狀虛擬機的網路功能有兩個選項:

  1. MAC 位址詐騙
  2. NAT 網路功能

MAC 位址詐騙

為使網路封包能由兩部虛擬交換器進行路由,必須在虛擬交換器的第一層 (L1) 啟用改變 MAC 位址。 若要啟用 MAC 地址詐騙,請執行下列 PowerShell 命令。

Get-VMNetworkAdapter -VMName <VMName> | Set-VMNetworkAdapter -MacAddressSpoofing On

網路位址轉譯 (NAT)

第二個選項依賴網路位址轉換(NAT)。 這種方法最適合無法進行 MAC 位址詐騙的情況,例如在公用雲端環境中。

首先,必須在主機虛擬機中建立虛擬 NAT 交換器(「中間」VM)。 下列範例會建立名為 VmNAT 的新內部交換器,併為子網中的所有 192.168.100.0/24 IP位址建立NAT物件。

New-VMSwitch -Name VmNAT -SwitchType Internal
New-NetNat –Name LocalNAT –InternalIPInterfaceAddressPrefix “192.168.100.0/24”

接下來,將IP位址指派給網路適配器:

Get-NetAdapter "vEthernet (VmNat)" | New-NetIPAddress -IPAddress 192.168.100.1 -AddressFamily IPv4 -PrefixLength 24

每個巢狀虛擬機都必須指派IP位址和閘道。 閘道 IP 必須指向上一個步驟中的 NAT 配接器。 您也可以指定 DNS 伺服器:

Get-NetAdapter "vEthernet (VmNat)" | New-NetIPAddress -IPAddress 192.168.100.2 -DefaultGateway 192.168.100.1 -AddressFamily IPv4 -PrefixLength 24
Netsh interface ip add dnsserver “vEthernet (VmNat)” address=<my DNS server>

下一步