Uruchamianie Hyper-V w środowisku maszynie wirtualnej z użyciem wirtualizacji zagnieżdżonej
Wirtualizacja zagnieżdżona to funkcja, która umożliwia uruchamianie Hyper-V wewnątrz maszyny wirtualnej Hyper-V. Wirtualizacja zagnieżdżona jest przydatna w przypadku uruchamiania emulatora telefonu programu Visual Studio na maszynie wirtualnej lub testowania konfiguracji, które zwykle wymagają kilku hostów.
Aby dowiedzieć się więcej na temat wirtualizacji zagnieżdżonej i obsługiwanych scenariuszy, zobacz Co to jest wirtualizacja zagnieżdżona dla funkcji Hyper-V?.
Warunki wstępne
Procesor Intel z technologią VT-x i EPT
- Host Hyper-V musi być systemem Windows Server 2016 lub nowszym albo Windows 10 lub nowszym.
- Konfiguracja maszyny wirtualnej w wersji 8.0 lub nowszej.
Procesor AMD EPYC/Ryzen lub nowszy
- Host Hyper-V musi być systemem Windows Server 2022 lub nowszym albo Windows 11 lub nowszym.
- Konfiguracja maszyny wirtualnej w wersji 9.3 lub nowszej.
Notatka
Gościem może być dowolny system operacyjny kompatybilny z Windows. Nowsze systemy operacyjne Windows mogą wspierać ulepszenia, które zwiększają wydajność. Aby włączyć wirtualizację zagnieżdżoną na maszynie wirtualnej platformy Azure, upewnij się, że ustawiono typ zabezpieczeń jako "Standardowy".
Konfigurowanie wirtualizacji zagnieżdżonej
Utwórz maszynę wirtualną. Zapoznaj się z wymaganiami wstępnymi dotyczącymi wymaganych wersji systemu operacyjnego i maszyny wirtualnej.
Gdy maszyna wirtualna jest w stanie wyłączonym, uruchom następujące polecenie na hoście fizycznym Hyper-V, aby włączyć wirtualizację zagnieżdżoną dla tej maszyny wirtualnej.
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
Uruchom maszynę wirtualną.
Zainstaluj Hyper-V na maszynie wirtualnej, tak jak w przypadku serwera fizycznego. Aby uzyskać więcej informacji na temat instalowania funkcji Hyper-V, zobacz Install Hyper-V.
Notatka
W przypadku korzystania z systemu Windows Server 2019 jako maszyny wirtualnej pierwszego poziomu liczba procesorów wirtualnych powinna być 225 lub mniejsza.
Wyłącz wirtualizację zagnieżdżoną
Aby wyłączyć wirtualizację zagnieżdżoną dla zatrzymanej maszyny wirtualnej, można użyć następującego polecenia programu PowerShell:
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $false
Opcje sieci
Istnieją dwie opcje sieciowania dla zagnieżdżonych maszyn wirtualnych.
- Fałszowanie adresów MAC
- Sieciowanie NAT
Fałszowanie adresów MAC
Aby pakiety sieciowe mogły być kierowane przez dwa przełączniki wirtualne, fałszowanie adresów MAC musi być włączone na pierwszym poziomie przełącznika wirtualnego (L1). Aby włączyć fałszowanie adresów MAC, uruchom następujące polecenie programu PowerShell.
Get-VMNetworkAdapter -VMName <VMName> | Set-VMNetworkAdapter -MacAddressSpoofing On
Translacja adresów sieciowych (NAT)
Druga opcja opiera się na translatorze adresów sieciowych (NAT). Takie podejście najlepiej nadaje się w przypadkach, w których fałszowanie adresów MAC nie jest możliwe, jak w środowisku chmury publicznej.
Najpierw należy utworzyć wirtualny przełącznik NAT na wirtualnej maszynie głównej (maszynie wirtualnej "środkowej"). Poniższy przykład tworzy nowy przełącznik wewnętrzny o nazwie VmNAT
i tworzy obiekt NAT dla wszystkich adresów IP w podsieci 192.168.100.0/24
.
New-VMSwitch -Name VmNAT -SwitchType Internal
New-NetNat –Name LocalNAT –InternalIPInterfaceAddressPrefix “192.168.100.0/24”
Następnie przypisz adres IP do karty sieciowej:
Get-NetAdapter "vEthernet (VmNat)" | New-NetIPAddress -IPAddress 192.168.100.1 -AddressFamily IPv4 -PrefixLength 24
Każda zagnieżdżona maszyna wirtualna musi mieć przypisany adres IP i bramę. Adres IP bramy musi wskazywać na adapter NAT z poprzedniego kroku. Możesz również przypisać serwer 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>