Prozessorkompatibilitätsmodus in Hyper-V

Gilt für: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2, Hyper-V Server 2019, Hyper-V Server 2016, Hyper-V Server 2012 R2

Hyper-V bietet den Prozessorkompatibilitätsmodus, ein erstmals in Windows Server 2008 R2 eingeführtes Feature. Mit dem Prozessorkompatibilitätsmodus können Sie eine VM während des Ausführens verschieben oder einen Zustand zwischen Virtualisierungshosts speichern, die über verschiedene Prozessorgenerationen verfügen. Dieses Feature deaktiviert viele moderne Prozessorfeatures, die sich auf die VM-Leistung auswirken können. In diesem Artikel finden Sie Details zum Prozessorkompatibilitätsmodus für Hyper-V.

Verwendung des Prozessorkompatibilitätsmodus

Der Prozessorkompatibilitätsmodus gilt für jedes VM-Mobilitätsszenario, bei dem kein Neustart des virtuellen Computers erforderlich ist. Dazu gehören VM-Livemigration, Speichern und Wiederherstellen sowie Produktionsprüfpunkte.

VMs können nicht live migriert oder gespeichert und auf mehreren Virtualisierungshosts wiederhergestellt werden, die Prozessoren verschiedener CPU-Hersteller verwenden. Beispielsweise können Sie ausgeführte VMs oder VMs mit gespeichertem Zustand nicht von einem Host mit Intel-Prozessoren auf einen Host mit AMD-Prozessoren verschieben. Wenn Sie eine VM in so einem Fall verschieben müssen, fahren Sie die VM zuerst herunter, und starten Sie sie dann auf dem neuen Host neu.

Wenn Sie VMs ohne Neustart zwischen Virtualisierungshosts verschieben möchten, die eventuell über verschiedene Prozessorgenerationen verfügen, sollten Sie den Prozessorkompatibilitätsmodus aktivieren. Aktivieren Sie den Prozessorkompatibilitätsmodus zum Beispiel, um sicherzustellen, dass Sie Ihre VMs zwischen Clusterknoten mit unterschiedlichen Prozessorfeatures live migrieren können. Außerdem können Sie den Prozessorkompatibilitätsmodus verwenden, um einen virtuellen Computer zu speichern und auf einem Hostcomputer wiederherzustellen, der über andere Prozessorfeatures verfügt als der Quellhost.

Warum der Prozessorkompatibilitätsmodus erforderlich ist

Bei Erweiterungen der Befehlssatzarchitektur (Instruction Set Architecture, ISA) handelt es sich um Optimierungen und Features von Prozessorherstellern. Diese Features verbessern häufig die Leistung oder Sicherheit, indem spezielle Hardware für eine bestimmte Aufgabe verwendet wird. Beispielsweise verwenden viele Medienanwendungen Prozessorfeatures zum Beschleunigen von Vektorberechnungen. Diese Features sind selten erforderlich, damit Anwendungen ausgeführt werden können. Sie steigern einfach die Leistung.

Der für einen Prozessor verfügbare Featuresatz variiert je nach Hersteller, Modell und Alter. Betriebssysteme und Anwendungssoftware zählen in der Regel die Prozessorfeatures und -funktionen des Systems auf, wenn sie zum ersten Mal gestartet werden. Software ist nicht darauf vorbereitet, dass sich die verfügbaren Prozessorfeatures während ihrer Lebensdauer ändern. Dies kann auch nicht passieren, wenn sie auf einem physischen Computer ausgeführt wird, da die Prozessorfeatures dort statisch sind.

VM-Mobilitätsfeatures ermöglichen jedoch die Migration einer ausgeführten VM zu einem neuen Virtualisierungshost. Wenn Software auf der VM ein bestimmtes Prozessorfeature erkannt und gestartet hat und die VM auf einen neuen Virtualisierungshost verschoben wird, auf dem diese Funktion fehlt, tritt bei der Software wahrscheinlich ein Fehler auf. Dies kann dazu führen, dass die VM abstürzt.

Um diese Fehler zu vermeiden, führt Hyper-V „Vorabüberprüfungen“ durch, wenn eine VM-Livemigration oder ein Speicher-/Wiederherstellungsvorgang initiiert wird. Diese Überprüfungen vergleichen die Prozessorfeatures, die für die VM auf dem Quellhost verfügbar sind, mit dem Satz von Funktionen, die auf dem Zielhost verfügbar sind. Wenn diese Features nicht übereinstimmen, wird der Migrations- oder Wiederherstellungsvorgang abgebrochen.

Funktionsweise des Prozessorkompatibilitätsmodus

Der Prozessorkompatibilitätsmodus stellt sicher, dass die für VMs auf verschiedenen Virtualisierungshosts verfügbaren Prozessorfeatures übereinstimmen, indem nur eine begrenzte Anzahl von Prozessorfeatures für den virtuellen Computer bereitgestellt wird. Der Prozessorkompatibilitätsmodus blendet neuere Prozessoranweisungen aus – in der Regel die, die in den letzten 10 Jahren eingeführt wurden. Das Ausblenden dieser Features bedeutet jedoch, dass das Gastbetriebssystem und die Anwendungssoftware diese Verbesserungen des Prozessorbefehlssatzes nicht nutzen können.

Eine vollständige Liste der Features, die für den Prozessorkompatibilitätsmodus ausgeblendet sind, finden Sie in Abschnitt 5.2.11 der Funktionsspezifikation der obersten Ebene für Hypervisor.

Processor compatibility mode hides newer processor instructions sets for smooth VM migrations between host servers

Auswirkungen des Verwendens des Prozessorkompatibilitätsmodus

Es ist schwierig, die gesamten Leistungseffekte des Prozessorkompatibilitätsmodus zu quantifizieren. Der Leistungsverlust hängt in erster Linie von der Workload ab, die auf dem virtuellen Computer ausgeführt wird. Einige Workloads sind nicht betroffen, während bei anderen ein deutlicher Unterschied sichtbar ist. Software, die stark von Hardwareoptimierungen wie Verschlüsselung, Komprimierung oder intensiven Gleitkommaberechnungen abhängig ist, ist am stärksten beeinträchtigt.

Im Folgenden wird als eins von vielen Beispielen beschrieben, wie sich der Prozessorkompatibilitätsmodus auf die AES-Verschlüsselung auswirkt. Wenn Sie sich Gedanken über die Auswirkungen des Prozessorkompatibilitätsmodus auf die Leistung machen, sollten Sie die Leistung der VM-Workload mit dem aktivierten und deaktivierten Prozessorkompatibilitätsmodus vergleichen.

Beispiel: AES-Verschlüsselung

Ein Beispiel für einen vom Prozessorkompatibilitätsmodus Vorgang die AES-Verschlüsselung, eine gängige Verschlüsselungsform. Viele neue Intel- und AMD-Prozessoren enthalten eine ISA-Erweiterung, die AES mithilfe von Hardware beschleunigt. Laut Intel bietet diese Optimierung eine 2- bis 3-fache Leistungssteigerung, wobei einige Implementierungen eine 10-fache Verstärkung bieten. Weitere Informationen finden Sie unter Anweisungen zu Intel Advanced Encryption Standard.

Anwendungen, die eine große Menge an Daten verschlüsseln oder entschlüsseln, profitieren von diesem Prozessorfeature. Das Deaktivieren durch Aktivieren des Prozessorkompatibilitätsmodus wirkt sich daher auf die Leistung dieser spezifischen Vorgänge aus.

Nutzen des Prozessorkompatibilitätsmodus

Im Folgenden finden Sie wichtige Konzepte zum Verwenden des Prozessorkompatibilitätsmodus in Hyper-V:

  • Ausgeführte VMs können nur zwischen Virtualisierungshosts migriert werden, die Prozessoren desselben Herstellers verwenden.

  • Sie müssen die VM herunterfahren, bevor Sie den Prozessorkompatibilitätsmodus aktivieren oder deaktivieren können.

  • Der Prozessorkompatibilitätsmodus ist nicht zum Verschieben von VMs erforderlich, das ein Beenden und Neustarten des virtuellen Computers beinhaltet.

  • Jedes Mal, wenn eine VM neu gestartet wird, werden die auf dem neuen Hostcomputer verfügbaren Prozessorfeatures vom Gastbetriebssystem gezählt.

Hinweis

In Windows Server empfiehlt Microsoft, den Prozessorkompatibilitätsmodus nur vor VM-Migrationsszenarios zu aktivieren und nach Abschluss der Migration wieder zu deaktivieren.

Aktivieren des Prozessorkompatibilitätsmodus mithilfe von Hyper-VM Manager

So aktivieren Sie den Prozessorkompatibilitätsmodus für eine VM mithilfe von Hyper-V Manager:

  1. Fahren Sie die VM herunter.

  2. Klicken Sie auf Start, zeigen Sie auf Verwaltung, und klicken Sie dann auf Hyper-V-Manager.

  3. Wählen Sie den Server mit Hyper-V und den gewünschten virtuellen Computer aus.

  4. Wenn der virtuelle Computer ausgeführt wird, müssen Sie ihn herunterfahren, um den Prozessorkompatibilitätsmodus zu aktivieren.

  5. Klicken Sie im Bereich Aktion auf Einstellungen und dann auf Prozessor.

  6. Erweitern Sie Prozessor, und klicken Sie auf Kompatibilität.

  7. Wählen Sie Zu einem physischen Computer mit einem anderen Prozessor migrieren aus, und klicken Sie dann auf OK.

  8. Starten Sie den virtuellen Computer neu.

Deaktivieren des Prozessorkompatibilitätsmodus mithilfe von Hyper-VM Manager

So deaktivieren Sie den Prozessorkompatibilitätsmodus für eine VM mithilfe von Hyper-V Manager:

  1. Fahren Sie die VM herunter.

  2. Klicken Sie auf Start, zeigen Sie auf Verwaltung, und klicken Sie dann auf Hyper-V-Manager.

  3. Wählen Sie den Server mit Hyper-V und den gewünschten virtuellen Computer aus.

  4. Wenn der virtuelle Computer ausgeführt wird, müssen Sie ihn herunterfahren, um den Prozessorkompatibilitätsmodus zu deaktivieren.

  5. Klicken Sie im Bereich Aktion auf Einstellungen und dann auf Prozessor.

  6. Erweitern Sie Prozessor, und klicken Sie auf Kompatibilität.

  7. Deaktivieren Sie das Kontrollkästchen für Zu einem physischen Computer mit einem anderen Prozessor migrieren, und klicken Sie dann auf OK.

  8. Starten Sie den virtuellen Computer neu.

Aktivieren des Prozessorkompatibilitätsmodus mithilfe von PowerShell

Um den Prozessorkompatibilitätsmodus für einen virtuellen Computer mithilfe von PowerShell zu aktivieren, fahren Sie den virtuellen Computer herunter, führen Sie das Set-VMProcessor-Cmdlet aus, und legen Sie CompatibilityForMigrationEnabled auf $true fest:

get-vm -name <name of VM> -ComputerName <target cluster or host> | Set-VMProcessor -CompatibilityForMigrationEnabled $true

Starten Sie die VM anschließend neu.

Warnung

Möglicherweise werden zusätzliche Parameter für Set-VMProcessor angezeigt, die für die Verwendung mit Azure Stack HCI vorgesehen sind. Verwenden Sie diese nicht mit Windows Server, da sonst eine Fehlermeldung angezeigt wird. Der Standard-CompatibilityForMigrationMode und gleichzeitig einzige für Windows Server verfügbare CompatibilityForMigrationMode lautet MinimumFeatureSet. Hier erfahren Sie mehr über den dynamischen CPU-Kompatibilitätsmodus in Azure Stack HCI.

Deaktivieren des Prozessorkompatibilitätsmodus mithilfe von PowerShell

Um den Prozessorkompatibilitätsmodus für einen virtuellen Computer mithilfe von PowerShell zu deaktivieren, fahren Sie den virtuellen Computer herunter, führen Sie das Set-VMProcessor-Cmdlet aus, und legen Sie CompatibilityForMigrationEnabled auf $false fest:

get-vm -name <name of VM> -ComputerName <target cluster or host> | Set-VMProcessor -CompatibilityForMigrationEnabled $false

Starten Sie die VM anschließend neu.

Nächste Schritte

Weitere Informationen: