巢狀虛擬化可讓您在虛擬機內執行 Hyper-V,讓您模擬複雜的環境,而不需要多個實體主機。 本文說明如何在支援的 Windows 平台上設定和使用巢狀虛擬化,包括必要條件、設定步驟和網路選項。 使用本文來測試案例、執行模擬器,或開發需要多層虛擬化的解決方案。
若要深入瞭解巢狀虛擬化和支援的案例,請參閱 什麼是 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 可以使用可改善效能的額外 CPU 功能。 若要在 Azure VM 中啟用巢狀虛擬化,請務必將 [安全性類型] 設定為 “Standard”。
啟用巢狀虛擬化
若要啟用巢狀虛擬化,請遵循下列步驟:
建立虛擬機。 請參閱必要OS和VM版本的必要條件。
當虛擬機處於 OFF 狀態時,請在實體 Hyper-V 主機上執行下列命令,以啟用虛擬機的巢狀虛擬化。
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
啟動虛擬機。
在虛擬機內安裝 Hyper-V,就像對實體伺服器一樣。 如需安裝 Hyper-V 的詳細資訊,請參閱 安裝 Hyper-V。
注意
使用 Windows Server 2019 和更早版本作為第一層 VM,vCPU 數目應為 225 或更少。 若要深入瞭解虛擬機限制,請參閱 虛擬機的最大值。
停用巢狀虛擬化
您可以使用下列 PowerShell 命令,停用已停止虛擬機的巢狀虛擬化:
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $false
網路選項
使用巢狀虛擬機的網路功能有兩個選項:
- MAC 地址欺騙
- 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>
後續步驟
- 使用 Hyper-V Manager 遠端管理 Hyper-V 主機