So arbeitet der VMware EVC-Modus: Vollständiger Überblick
Funktionsweise des VMware EVC-Modus
Jede neue Prozessorgeneration enthält zusätzlich zu den für die vorherige Prozessorgeneration verfügbaren Befehlssätzen neue Befehlssätze. Neue Funktionen verbessern in der Regel die Leistung oder Sicherheit der ausgeführten Anwendungen. Beispielsweise verfügen Prozessoren der SkyLake-Generation im Vergleich zu den Prozessoren der Haswell-Generation über einen neuen Befehlssatz (SGX). Sehen wir uns die Befehlssätze dieser beiden Prozessorgenerationen an und untersuchen wir ihre Details.
Befehlssätze von Haswell (2013):
x86-64, MMX, AES-NI, CLMUL, FMA3, SSE, SSE2, SSE3, SSSE3, SSE4, SSE4.1, SSE4.2, AVX, AVX2, TXT, VT-x, VT-d. TSX Befehle sind aufgrund eines Fehlers für Haswell-Prozessoren über den Mikrocode deaktiviert, mit Ausnahme von Haswell-EX.
SkyLake (2017) Befehlssätze:
x86-64, MMX, AES-NI, CLMUL, FMA3, SSE, SSE2, SSE3, SSSE3, SSE4, SSE4.1, SSE4.2, AVX, AVX2, TXT, TSX, SGX, VT-x, VT-d.
Das bedeutet, dass bei Auswahl der Haswell-Kompatibilitätsstufe in den EVC-Einstellungen der SGX-Befehlssatz auf Servern mit Skylake-Prozessoren deaktiviert (genauer gesagt maskiert) werden muss, sodass alle Prozessoren mit denselben Befehlssätzen arbeiten. Auf diese Weise erhalten Sie eine homogene Umgebung, die für die VM-Migration mit vMotion geeignet ist. Die einheitliche vMotion-Kompatibilität wird durch die Durchsetzung derselben CPUID-Befehlsbasis für alle VMs gewährleistet, die auf ESXi-Hosts ohne einheitliche Prozessoren ausgeführt werden. CPUID kann als API für die CPU betrachtet werden.
Einerseits gehen die Vorteile des SGX-Befehlssatzes verloren, wenn der Haswell-EVC-Modus aktiviert ist, andererseits wird die Leistung Ihres bestehenden Clusters nicht beeinträchtigt, wenn Sie dem Cluster Hosts mit neueren Prozessoren hinzufügen. Wenn Sie dem bestehenden Cluster ESXi-Hosts mit älteren Prozessoren hinzufügen, kann es in bestimmten Fällen zu Leistungseinbußen kommen.
Hinweis: Mit SGX (Software Guard Extensions) können Sie geschützte Code- und Datenfragmente (auch als Enklaven bezeichnet) organisieren, um einen hohen Grad an Datensicherheit für laufende Anwendungen vor Hackerangriffen zu gewährleisten. Entwickler, die SGX-Befehle für ihre Anwendungen verwenden, können die Anwendungen vor unbefugtem Zugriff oder unbefugten Änderungen schützen, selbst wenn die Angreiferanwendung über höhere Berechtigungen verfügt.
Hinweis: TSX (Transactional Synchronization Extensions) sorgt dafür, dass der Großteil der laufenden Aufgaben zur Verteilung der Ressourcen auf die Prozessorkerne auf die Hardwareebene (die CPU selbst) verlagert wird. Ohne Support für die TSX-Befehle durch einen Prozessor wird diese Verteilung auf Softwareebene durch ein Betriebssystem und Anwendungen durchgeführt. Wenn der TSX-Befehlssatz für Ihren Haswell-Prozessor über einen Mikrocode deaktiviert ist, müssen Sie möglicherweise die ältere Stufe (Ivy Bridge) für den EVC-Modus einstellen.
Im Allgemeinen müssen laufende VMs heruntergefahren und neu gestartet werden, um die geänderten EVC-Modus-Einstellungen anzuwenden. Wenn Sie vCenter 4.1 oder höher verwenden, müssen die auf dem ESXi-Host mit dem ältesten Prozessor ausgeführten VMs möglicherweise nicht heruntergefahren werden (Sie können sie im laufenden Zustand belassen). In diesem Fall muss der EVC-Modus der Generation dieses ältesten Prozessors gleich sein. VMs, die auf ESXi-Hosts mit Prozessoren mit neueren CPU-Funktionen ausgeführt werden, müssen ausgeschaltet werden, bevor der EVC-Modus im gesamten Clusteraktiviert werden kann. Wenn der ESXi-Host aus einem Cluster ausgeschlossen wird, wird er mit deaktiviertem EVC-Modus weiter betrieben.
VMware vSphere-Version/CPU-Kompatibilität für EVC
Der erforderliche EVC-Modus hängt von den Prozessormodellen und der Version von vCenter Serverab. Der EVC-Modus in der neuesten Version von vCenter Server unterstützt die neuesten Prozessoren. Verwenden Sie die neuesten Versionen von vCenter, wenn Sie Server mit Prozessoren der neuesten Generationen haben. In der folgenden Tabelle sehen Sie, welche Kombinationen aus Intel-Prozessorgenerationen und vCenter-Versionen für die Bestimmung der EVC-Cluster-Baseline für Ihre Umgebung unterstützt werden.
Der am besten geeignete EVC-Modus wird von dem Modell des ältesten Prozessors des ESXi-Servers innerhalb des Clusters bestimmt. Es ist technisch möglich, eine ältere (niedrigere) Stufe des EVC-Modus als die Generation des ältesten Prozessors auszuwählen, aber im Allgemeinen gibt es keinen Grund, solche Einstellungen vorzunehmen. Ältere Versionen von ESXi und vSphere unterstützen neue Prozessoren, aber die maximale EVC-Baseline bleibt auf dem Niveau der älteren Prozessoren erhalten, die zum Zeitpunkt der Veröffentlichung dieser vSphere-Version funktionsfähig waren und als die damals neuesten verfügbaren Prozessoren galten.
Wenn Sie die Stufe des EVC-Modus ändern, sollten Sie die laufenden VMs aus- und wieder einschalten, um die Einstellungen auf diese VMs anzuwenden. Ein Neustart der VM reicht nicht aus.
VMware-Kompatibilitätsleitfaden
Sie können die Kompatibilität Ihrer Prozessoren und den höchstmöglichen EVC-Modus für Ihren vCenter-Server auf der Website von VMware überprüfen. Um die Kompatibilität zu überprüfen, öffnen Sie die Seite VMware-Kompatibilitätsleitfaden, wählen Sie CPU-Serie im Dropdown-Menü (d. h. was Sie suchen) und wählen Sie in der Produktversionn Liste wählen Sie Ihre ESXi-Version aus, in der CPU-Serie Liste halten Sie die Strg-<-Taste > gedrückt und wählen Sie die auf Ihren ESXi-Hosts installierten Prozessoren aus (klicken Sie mit der linken Maustaste). Nachdem Sie die erforderlichen Parameter ausgewählt haben, klicken Sie auf die Schaltfläche CPU/EVC Matrix , um die Tabelle der verfügbaren EVC-Modi für Ihre ESXi-Server anzuzeigen. Im Beispiel auf dem Screenshot unten wurden ESXi 6.5 (verwaltet von vCenter 6.5), Intel Xeon E3-1500-v5, Xeon E5-4600-v3 und Xeon Platinum 8100 Prozessoren ausgewählt. Die höchste Stufe des EVC-Modus, die von allen ausgewählten Prozessoren unterstützt wird, ist Intel Haswell Generation.
Anforderungen
Damit vMotion nach der Aktivierung des EVC-Modus ordnungsgemäß arbeitet, müssen die folgenden Anforderungen erfüllt sein:
- Die Prozessoren aller ESXi-Hosts müssen ausschließlich von Intel oder AMD stammen.
- Prozessorvirtualisierungsfunktionen wie Intel VT-x oder AMD-V müssen im UEFI/BIOS der ESXi-Hosts aktiviert sein.
- ESXi-Hosts müssen vom selben vCenter Server verwaltet werden.
- ESXi-Hosts müssen für die Verwendung von vMotion konfiguriert sein.
So aktivieren und konfigurieren Sie EVC
Nach der Vertrautmachung mit der Theorie sehen wir uns nun die Konfiguration des EVC-Modus in der Praxis an. Möglicherweise müssen Sie Ihre VM auf dem ESXi-Host, dessen EVC-Level herabgestuft werden muss, ausschalten. Stellen Sie sicher, dass in UEFI/BIOS keine Prozessorfunktionen deaktiviert sind, um mögliche Probleme zu vermeiden.
Öffnen Sie den VMware vSphere Web Client in Ihrem Webbrowser, indem Sie die IP-Adresse Ihres vCenter Servers in die Adressleiste des Browsers eingeben. Gehen Sie zu vCenter > Hosts und Cluster und wählen Sie jeden ESXi-Host aus, um die CPU-Konfiguration (Zentraleinheit) zu überprüfen. Im aktuellen Beispiel betrachten wir zwei Hosts mit ESXi 5.5, die zum Cluster hinzugefügt und von vCenter Server 5.5 verwaltet werden. Wie Sie auf dem folgenden Screenshot sehen können, lautet das Prozessormodell des ersten ESXi-Hosts Intel Xeon E3110 und der auf dem zweiten ESXi-Host installierte Prozessor ist Intel Xeon X3430.
Wenn ESXi-Hosts bereits zum Cluster hinzugefügt wurden, wählen Sie Ihren Cluster aus (temp-cluster in unserem Beispiel), klicken Sie auf die Registerkarte Verwalten Registerkarte, öffnen Sie dann die Einstellungen Registerkarte, wählen Sie Konfiguration > VMware EVC und klicken Sie auf die Schaltfläche „Bearbeiten“ (<) >
Bevor Sie nun den EVC-Modus in vCenter auswählen, öffnen Sie eine neue Registerkarte in Ihrem Webbrowser und öffnen Sie VMware-Kompatibilitätsleitfaden wie oben in diesem Blogbeitrag gezeigt. Im aktuellen Beispiel sollten wir ESXi 5.5, Intel Xeon 31xx Series und Intel Xeon 34xx Series. Nach dem Klicken auf die Schaltfläche CPU/EVC Matrix können Sie auf dem Screenshot sehen, dass Intel Penryn Generation in den EVC-Modus-Einstellungen ausgewählt werden sollte.
Kehren Sie zur Registerkarte Ihres Webbrowsers mit vSphere Web Client zurück und öffnen Sie die EVC-Modus-Einstellungen für den Cluster. Klicken Sie auf EVC für Intel-Hosts aktivieren. Im Dropdown-Menü „VMware EVC-Modus“ sollten Sie Intel Penryn-Generationauswählen. Am unteren Rand des Fensters sollte nun Folgendes angezeigt werden: Gültigkeit erfolgreich im Abschnitt Kompatibilität . Jetzt können Sie auf OK klicken, um die EVC-Modus-Einstellungen zu speichern.
Danach erfolgt die Anzeige der Information im Abschnitt „VMware EVC“, dass VMware EVC aktiviert ist . Klicken Sie auf Aktuelle CPUID-Details , um den Abschnitt mit Details zu Registern und Maskenwerten zu erweitern.
Der EVC-Modus kann auch während der Erstellung eines neuen Clusters aktiviert werden. VMware empfiehlt diese Vorgehensweise als bewährte Methode. Durch die Aktivierung des EVC-Modus während der Erstellung eines neuen Clusters werden Probleme beim Herunterfahren und Migrieren von VMs vermieden, die im Cluster eingeschaltet sind (wie Sie sich erinnern, muss eine VM in der Regel heruntergefahren und neu gestartet werden, um die neuen EVC-Einstellungen anzuwenden).
CPUID-Maskierung
Zusätzlich zum globalen EVC-Modus, der auf alle VMs und ESXi-Hosts im gesamten Cluster angewendet wird, können Sie in vCenter Server CPUID-Flags für eine benutzerdefinierte VM manuell konfigurieren. vCenter vergleicht die für die VM festgelegten CPUID-Parameter mit den auf dem Ziel-ESXi-Host verfügbaren CPUID-Parametern. Wenn diese Parameter identisch sind, ist die VM-Migration mit vMotion zulässig. Die CPUID-Maskierungsfunktion ist älter als die EVC-Modus-Funktion.
Um CPUID-Masken für eine VM zu konfigurieren, führen Sie die folgenden Aktionen aus:
Wählen Sie die gewünschte VM aus, klicken Sie mit der rechten Maustaste auf die VM und wählen Sie „ <“ (Einstellungen bearbeiten)>. Wählen Sie „<“ (Einstellungen bearbeiten)>. Öffnen Sie im angezeigten Fenster „ <“ (Einstellungen bearbeiten)>die Registerkarte „<“ (CPU-Einstellungen)> . Wählen Sie „ <“ (CPU-Einstellungen bearbeiten)>und dann „Virtual Hardware“ (Virtuelle Hardware) > . Wählen Sie „CPU“ (CPU)>und dann „<“ (CPU-Einstellungen bearbeiten)> . CPUID-Maskeund klicken Sie auf Erweitert.
Wählen Sie im Fenster CPU-Identifikationsmaske die erforderliche Registerzeichenfolge aus und klicken Sie auf den Wert, um die Maske auf Bit-Ebene zu bearbeiten. Klicken Sie auf die Schaltfläche „ <“ (Legende) >, um die Bedeutung der einzelnen Zeichen anzusehen, die für die Einstellungen der Maske verwendet werden. , um die Bedeutung der einzelnen Zeichen anzusehen, die für die Einstellungen der Maske verwendet werden.
Achtung! Bitte bearbeiten Sie die Masken nicht, bevor Sie sich mit der VMware-Wissensdatenbank oder den VMware-Supportanweisungen vertraut gemacht haben. Das manuelle Bearbeiten der CPU-Kompatibilitätsmasken kann zu einer nicht unterstützten VM-Konfiguration führen. Beispielsweise können Windows-VMs mit BSOD ausfallen.
Überprüfen der Konfiguration des EVC-Modus in PowerCLI
Sie können die Konfiguration des EVC-Modus für den gesamten Cluster und für benutzerdefinierte VMs in VMware PowerCLI von dem folgenden Befehl überprüfen:
Get-VM | Select Name,HardwareVersion,
@{Name='VM_EVC_Mode';Expression={$_.ExtensionData.Runtime.MinRequiredEVCModeKey}},
@{Name='Cluster_Name';Expression={$_.VMHost.Parent}},
@{Name='Cluster_EVC_Mode';Expression={$_.VMHost.Parent.EVCMode}} | ft
Sie können auch die maximal unterstützte EVC-Stufe für alle Hosts Ihres Clusters überprüfen, nach der Ausführung des folgenden Befehls:
Get-VMHost | Select-Object Name,ProcessorType,MaxEVCMode
EVC-Modus pro VM
Der oben beschriebene EVC-Modus ist eine Option auf Cluster-Ebene. VMware vSphere 6.7 bietet die Möglichkeit, einen EVC-Modus pro VM festzulegen, der für die Migration von VMs zwischen verschiedenen Clustern oder vCenter-Servern nützlich sein kann und Ihnen mehr Granularität bietet. Ein EVC-Modus pro VM wird als Attribut der Einstellungen der virtuellen Maschine festgelegt und bietet mehr Flexibilität beim Management von VMs, die mit vMotion migriert werden müssen. Die VM-Hardwarekompatibilität muss mindestens Version 14 sein. Die Konfiguration des EVC-Modus pro VM wird in der VMX-Konfigurationsdatei der VM als Zeilen gespeichert, die folgende Zeichenfolgen enthalten: featMask.vm.cpuid . Wenn eine VM mit konfiguriertem EVC-Modus pro VM migriert wird, wird ihre in der VMX-Datei gespeicherte EVC-Konfiguration zusammen mit der VM migriert. Die Einstellungen für den VM-spezifischen EVC-Modus können geändert werden, wenn eine VM ausgeschaltet ist (schalten Sie die VM aus und wieder ein, um die geänderten Einstellungen für den VM-spezifischen EVC-Modus anzuwenden).
Wenn Sie einen VM-spezifischen EVC-Modus für eine VM aktivieren, die sich in einem Cluster befindet, für den bereits ein globaler EVC-Modus konfiguriert ist, kann der VM-spezifische EVC-Modus dem für den gesamten Cluster festgelegten EVC-Modus gleich sein oder darunter liegen. Somit ist es möglich, sowohl einen globalen als auch einen VM-spezifischen EVC-Modus gleichzeitig zu konfigurieren. Nach dem Klonen einer VM werden die VM-spezifischen EVC-Einstellungen mit der VM geklont.
Um den VM-spezifischen EVC-Modus zu konfigurieren, öffnen Sie den VMware vSphere HTML5-Client, gehen Sie zu Hosts und Clusterund wählen Sie dann die erforderliche VM aus. Öffnen Sie die Registerkarte „ <“ (Konfigurieren) unter >Configure , wählen Sie „ <“ (Weitere VMware EVC-Einstellungen) unter >More > VMware EVC und klicken Sie auf „Bearbeiten“ (Bearbeiten) unter Edit.
So aktivieren Sie den EVC-Modus im Cluster ohne Ausfallzeiten der VMs
In einigen Fällen können Sie den EVC-Modus im gesamten Cluster ohne Ausfallzeiten der VMs aktivieren (in der Regel müssen VMs heruntergefahren und neu gestartet werden, um die EVC-Modus-Einstellungen des Clusters anzuwenden). Dies ist möglich, wenn die folgenden Anforderungen erfüllt sind:
- Laufende VMs befinden sich auf dem ESXi-Host mit dem ältesten Prozessor
- Der EVC-Modus im Cluster ist so konfiguriert, dass er die CPU-Befehlssätze verwendet, die der Generation des ältesten Prozessors entsprechen
Aktivieren des EVC-Modus für die vCenter-VM
In VMware vSphere-Umgebungen kann folgende Situation auftreten:
vCenter Server wird als VM auf einem VMware ESXi-Host ausgeführt, der zu einem Cluster hinzugefügt werden muss, für den der EVC-Modus aktiviert ist.
Das Problem besteht darin, dass ein ESXi-Host mit laufenden VMs (einschließlich der VM, auf der vCenter ausgeführt wird) nach der Aktivierung von EVC erst dann zum Cluster hinzugefügt werden kann, wenn alle VMs heruntergefahren sind. Andererseits wird die VM, auf der vCenter ausgeführt wird, zur Verwaltung des Clusters benötigt, und wir können die vCenter-VM nicht herunterfahren, da sie gerade verwendet wird. Dieses Problem tritt besonders dann auf, wenn die vCenter-VM auf dem ESXi-Host mit einem neueren Prozessor ausgeführt wird.
Hinweis: Es wird empfohlen, in diesem Fall einen Standard-vSwitch (keinen verteilten vSwitch) zu verwenden, um die VM, auf der vCenter ausgeführt wird, mit dem Netzwerk zu verbinden.
Eine mögliche Lösung. Beachten Sie den Algorithmus, der Ihnen bei der Behebung des Problems für VMware vSphere 5.5 helfen kann:
- Verschieben Sie einen anderen ESXi-Server (auf dem keine vCenter-VM ausgeführt wird) in den Cluster, wenn noch keine ESXi-Server im Cluster vorhanden sind. Die VMs auf dem ESXi-Server, der in den Cluster verschoben wird, müssen ausgeschaltet sein.
- Fahren Sie die VM herunter, auf der vCenter Server ausgeführt wird. Verbinden Sie sich über VMware Host Client mit dem ESXi-Host, auf dem sich die vCenter-VM befindet, um die VM zu deregistrieren, oder verbinden Sie sich über einen SSH-Client mit den Dateien. Klicken Sie in VMware Host Client mit der rechten Maustaste auf die vCenter-VM und wählen Sie „ <“ „>“ Unregister „<“ „>“. Kopieren Sie alle Dateien der vCenter-VM manuell in den Datenspeicher, der mit dem ESXi-Server verbunden ist, den Sie bereits in Schritt 1 in den Cluster verschoben haben. Wenn ein NFS- oder iSCSI- < „>“ Shared Storage< „> “ von beiden ESXi-Hosts verwendet wird, müssen Sie die VM-Dateien nicht an einen anderen Standort kopieren.
Hinweis: Möglicherweise müssen Sie die MAC-Adresse für den virtuellen Netzwerkadapter der VM, auf der vCenter Server ausgeführt wird, manuell festlegen, bevor Sie die VM von einem ESXi-Host auf einen anderen verschieben.
- Registrieren Sie die vCenter-VM auf dem ESXi-Host, der in den Cluster verschoben wurde (verbinden Sie mit VMware Host Client eine Verbindung zum ESXi-Host, öffnen Sie den Datenspeicher, suchen Sie die Dateien der vCenter-VM, wählen Sie die VMX-Datei aus, klicken Sie mit der rechten Maustaste auf die Datei und klicken Sie auf VM registrieren). Führen Sie die vCenter-VM auf diesem VMware ESXi-Host im Cluster aus. Melden Sie sich mit VMware vSphere Client bei vCenter an, um sicherzustellen, dass Sie Ihre vSphere-Umgebung mit vCenter verwalten können. Möglicherweise müssen Sie die Zulassungssteuerung vorübergehend deaktivieren.
- Verschieben Sie den Quell-ESXi-Host, auf dem die vCenter-VM ursprünglich ausgeführt wurde, in den Cluster. Fahren Sie bei Bedarf andere VMs auf diesem ESXi-Host herunter, bevor Sie den Host verschieben.
Fazit
Enhanced vMotion Capability (EVC) ist eine nützliche VMware vSphere-Funktion, die die Skalierbarkeit Ihres Clusters gewährleistet und es Ihnen ermöglicht, Knoten mit Prozessoren verschiedener Generationen zum Cluster hinzuzufügen, um mit vMotion eine Live-Migration von VMs zwischen VMware ESXi-Hosts durchzuführen. Der EVC-Modus maskiert die Funktionen der Prozessoren der neuen Generation, um eine einheitliche Basis zu schaffen, die den Funktionen der ältesten Prozessorgeneration entspricht, die von den VMware ESXi-Hosts im Cluster verwendet wird. Das Ergebnis ist eine homogene Umgebung, in der alle Prozessoren die gleichen Befehlssätze verwenden und laufende VMs mit vMotion migriert werden können. Eine große Anzahl von VMware-Kunden, die Cluster verwenden, nutzt den EVC-Modus. Es wird empfohlen, den EVC-Modus bereits bei der Erstellung des Clusters zu aktivieren, um mögliche Probleme im Zusammenhang mit dem Hinzufügen von ESXi-Hosts und der Migration laufender VMs, einschließlich der VM, auf der vCenter Server ausgeführt wird, zu vermeiden.
Unabhängig davon, ob Sie einen Cluster verwenden oder nicht, vergessen Sie nicht, VMware-VMs zu sichern. NAKIVO Backup & Replication ist eine schnelle, zuverlässige und kostengünstige Lösung zur Datensicherheit, die Ihre VMware-VMs auch dann schützen kann, wenn diese VMs über ESXi-Hosts in Clustern migriert werden.











