使用巢狀虛擬化在虛擬機器中執行 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 中啟用巢狀虛擬化,請務必將安全性類型設定為 「標準」。
設定巢狀虛擬化
建立虛擬機器。 請參閱必要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>