Bei vSphere lassen sich laufende virtuelle Maschinen auf andere Hosts oder Cluster verschieben. Das klappt aber nur dann, wenn die CPUs der Quell- und Zielrechner miteinander kompatibel sind. Andernfalls bleibt noch die Option, den Enhanced vMotion Compatibility Mode (EVC) zu konfigurieren.
Neben den mehreren Bedingungen wie ein Shared Storage oder eine bestimmte Netzwerkkonfiguration besteht eine zwingende Voraussetzung für vMotion in kompatiblen CPUs am Quell- und Ziel-Host (ausgenommen davon sind Cold Migrations oder Storage vMotion).
Keine Migration zwischen AMD und Intel
Es ist daher keinesfalls möglich, laufende VMs von einem Host mit Intel- auf einen Host mit AMD-CPUs zu migrieren. Die erforderliche CPU-Kompatibilität verlangt aber mehr, als dass die Prozessoren vom gleichen Hersteller stammen. Keine Rolle spielen indes Taktraten, Cache-Größen, Hyperthreading und Anzahl der Kerne. Übereinstimmen müssen aber Familie und Generation (AMD Opteron4/Epyc, Intel Haswell/Broadwell etc.). Auch die Ausstattung mit SSE3-, SSSE3- oder SSE4.1-Anweisungen muss auf beiden CPUs übereinstimmen, weil diese von Multimedia-Anwendungen direkt verwendet werden können.
Ferner kommt es auch darauf an, dass Quell- und Ziel-CPUs zumindest bei 64-Bit-VMs über eine Virtualisierungserweiterung (Intel VT bzw. AMD-V) verfügen. Bei 32-Bit VMs wird die eigentliche CPU-Virtualisierung (Deprivilegierung, Ring Aliasing) von Hypervisor selbst übernommen (Software-basierte Virtualisierung alias „Binary Translation“). Sind Quell- und Ziel-CPU zwar vom gleichen Hersteller, hinsichtlich Chipsatz und/oder Stepping doch nicht ganz identisch, ist es mit Hilfe von CPUID im Prinzip möglich, den neueren oder leistungsfähigeren Prozessor auf einen niedrigeren Chipsatz-Level zu reduzieren, also eine Art gemeinsame kompatible Baseline für beide CPUs zu definieren.
RELEASE | MEROM | PENRYN | NEHALEM | WESTMERE | SANDY BRIDGE |
---|---|---|---|---|---|
vCenter 5.5 | Yes | Yes | Yes | Yes | Yes |
vCenter 6.0 | Yes | Yes | Yes | Yes | Yes |
vCenter 6.5 | Yes | Yes | Yes | Yes | Yes |
vCenter 6.7 | Yes | Yes | Yes | Yes | Yes |
RELEASE | IVY BRIDGE | HASWELL | BROADWELL | SKYLAKE |
---|---|---|---|---|
vCenter 5.5 | Yes | No | No | No |
vCenter 6.0 | Yes | Yes | No | No |
vCenter 6.5 | Yes | Yes | Yes | No |
vCenter 6.7 | Yes | Yes | Yes | Yes |
Dazu ist es allerdings erforderlich, einen Cluster zu erstellen, beide Hosts in den Cluster aufzunehmen und dann im Cluster den Enhanced vMotion Compatibility Mode (EVC) zu aktivieren.
Was ist EVC?
Der VMware EVC Mode erzwingt einen bestimmten CPUID-Befehlssatz zwischen den verschiedenen ESXi-Hosts, so dass der virtuellen Maschine nur eine Familie von Prozessoren oder Befehlssätzen angezeigt wird. Er kann den CPU-Befehlssatz so weit maskieren, dass er im gesamten vSphere-Cluster mit mehreren unterschiedlichen CPU-Architekturen exakt gleich zu sein scheint.
EVC aktivieren
Ab vSphere 6.7 kann man den EVC-Modus auf zwei verschiedenen Ebenen aktivieren: entweder auf der eines Clusters oder jener der virtuellen Maschine. Folgende Abbildung zeigt die herkömmliche Cluster-weite Aktivierung von EVC.
EVC-Modus für Intel-CPUs auf Basis einer Prozessorgeneration konfigurieren.
Wählt man EVC für einen Cluster, dann werden alle seine Hosts so konfiguriert, dass sie sämtlichen dort ausgeführten virtuellen Maschinen die CPU-Funktionen eines benutzerdefinierten Prozessortyps präsentieren. Dies bietet den Vorteil, dass die Kompatibilität für vMotion zwischen ESXi-Hosts sichergestellt ist. Natürlich müssen die auf der VM selbst ausgeführten Anwendungen CPUID-kompatibel sein.
EVC auf VM-Ebene
Laufen Quell- und Ziel-Hosts unter vSphere 6.7 und sind die zu migrierenden VMs auf Hardware-Version von 14 oder höher, dann kann man alternativ auch den „Pro-VM-EVC-Modus“ aktivieren. Virtual Machine EVC erleichtert die Migration virtueller Maschinen über den Cluster hinaus und zwischen vCenter-Server oder Rechenzentren. Dieser Modus ermöglicht eine detailliertere Definition von EVC für bestimmte VMs und ist unabhängig vom EVC-Modus, der auf Cluster-Ebene definiert wurde.
Hierzu markiert man die VM im Navigator und klickt dann im rechten Fenster auf Configure. Nur bei VMs mit einer Hardware-Version größer 14 taucht dann unter More der Eintrag VMware EVC auf.