Ausführen von Hyper-V auf einem virtuellen Computer mit geschachtelter Virtualisierung
Geschachtelte Virtualisierung ist ein Feature, mit dem Sie Hyper-V innerhalb eines Hyper-V virtuellen Computers (VM) ausführen können. Geschachtelte Virtualisierung ist hilfreich zum Ausführen eines Visual Studio-Telefonemulators auf einem virtuellen Computer oder zum Testen von Konfigurationen, die normalerweise mehrere Hosts erfordern.
Weitere Informationen zu geschachtelter Virtualisierung und unterstützten Szenarien finden Sie unter Was ist geschachtelte Virtualisierung für Hyper-V?.
Voraussetzungen
Intel-Prozessor mit VT-x- und EPT-Technologie
- Der Hyper-V-Host muss entweder Windows Server 2016 oder höher oder Windows 10 oder höher sein.
- VM-Konfiguration, Version 8.0 oder höher.
AMD EPYC / Ryzen Prozessor oder höher
- Der Hyper-V-Host muss entweder Windows Server 2022 oder höher oder Windows 11 oder höher sein.
- VM-Konfiguration Version 9.3 oder höher.
Anmerkung
Der Gast kann ein beliebiges Windows-unterstütztes Gastbetriebssystem sein. Neuere Windows-Betriebssysteme unterstützen möglicherweise Optimierungen, die die Leistung verbessern. Um die geschachtelte Virtualisierung in einer Azure-VM zu aktivieren, stellen Sie sicher, dass der Sicherheitstyp als "Standard"festgelegt wird.
Konfigurieren der geschachtelten Virtualisierung
Erstellen Sie einen virtuellen Computer. Lesen Sie die Voraussetzungen für die erforderlichen Betriebssystem- und VM-Versionen.
Während sich der virtuelle Computer im OFF-Zustand befindet, führen Sie den folgenden Befehl auf dem physischen Hyper-V Host aus, um die geschachtelte Virtualisierung für den virtuellen Computer zu aktivieren.
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
Starten Sie den virtuellen Computer.
Installieren Sie Hyper-V auf dem virtuellen Computer, genau wie für einen physischen Server. Weitere Informationen zum Installieren von Hyper-V finden Sie unter Installieren von Hyper-V-.
Anmerkung
Bei Verwendung von Windows Server 2019 als VM der ersten Ebene sollte die Anzahl der vCPUs 225 oder kleiner sein.
Geschachtelte Virtualisierung deaktivieren
Sie können die geschachtelte Virtualisierung für einen angehaltenen virtuellen Computer mithilfe des folgenden PowerShell-Befehls deaktivieren:
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $false
Netzwerkoptionen
Es gibt zwei Optionen für Netzwerke mit geschachtelten virtuellen Computern:
- Spoofing von MAC-Adressen
- NAT-Netzwerk
Spoofing von MAC-Adressen
Damit Netzwerkpakete über zwei virtuelle Switches weitergeleitet werden können, muss das Spoofing für MAC-Adressen auf der ersten Ebene (L1) des virtuellen Switches aktiviert sein. Um MAC-Adressspoofing zu aktivieren, führen Sie den folgenden PowerShell-Befehl aus.
Get-VMNetworkAdapter -VMName <VMName> | Set-VMNetworkAdapter -MacAddressSpoofing On
Netzwerkadressübersetzung (NETWORK Address Translation, NAT)
Die zweite Option basiert auf der Netzwerkadressenübersetzung (NETWORK Address Translation, NAT). Dieser Ansatz eignet sich am besten für Fälle, in denen MAC-Adressspoofing nicht möglich ist, z. B. in einer öffentlichen Cloudumgebung.
Zunächst muss ein virtueller NAT-Switch auf dem virtuellen Hostcomputer (der "mittleren" VM) erstellt werden. Im folgenden Beispiel wird ein neuer interner Switch namens VmNAT
erstellt und ein NAT-Objekt für alle IP-Adressen im 192.168.100.0/24
Subnetz erstellt.
New-VMSwitch -Name VmNAT -SwitchType Internal
New-NetNat –Name LocalNAT –InternalIPInterfaceAddressPrefix “192.168.100.0/24”
Weisen Sie als Nächstes dem Netzadapter eine IP-Adresse zu:
Get-NetAdapter "vEthernet (VmNat)" | New-NetIPAddress -IPAddress 192.168.100.1 -AddressFamily IPv4 -PrefixLength 24
Jedem geschachtelten virtuellen Computer muss eine IP-Adresse und ein Gateway zugewiesen sein. Die Gateway-IP muss auf den NAT-Adapter aus dem vorherigen Schritt zeigen. Vielleicht möchten Sie auch einen DNS-Server festlegen.
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>