Resolving vMotion failures from CPU feature mismatches in vSphere
Live migration sits at the heart of every well-run VMware environment, and Australian sysadmins juggling workloads between Sydney, Melbourne, and regional colocation sites rely on vMotion more than most. When a vMotion task suddenly halts halfway through, the immediate suspicion often lands on networking or storage, yet a quietly common culprit is the CPU feature set exposed by the source and destination hosts. A mismatch between Intel FlexMigration, AMD-V, or instruction set extensions can stop a migration cold and leave the VM paused in a fragile limbo.
The challenge is that modern processors ship with dozens of hidden flags, including AVX-512, AES-NI, SHA-NI, and various microcode mitigations, and vCenter compares these aggressively when negotiating a transfer. Two otherwise identical-looking servers can refuse to talk to each other simply because one was flashed with a newer BIOS exposing an additional bit. Without the right diagnostic mindset, this becomes a guessing game.
This walkthrough lays out how to read the symptoms, isolate the offending CPU flag, and apply the right compatibility controls. Whether you are running a stretched cluster across Brisbane and Perth or a single site in Adelaide, the same logic applies.
Why CPU compatibility matters for live migration
vMotion performs a full register and feature-state handoff between source and destination hosts. The receiving CPU must support every instruction that the guest could legally execute on the source. When a feature is exposed on the source but not the destination, the migration either aborts outright or, worse, completes and later causes the VM to crash with a fault inside an unmasked instruction. Both outcomes erode the confidence that administrators place in live migration.
For Australian IT shops that run clusters spanning two or more states, this becomes a procurement headache as much as a technical one. Hardware refresh cycles frequently produce mixed-generation fleets, perhaps a pair of newer HPE ProLiant Gen11 boxes in the Sydney CBD alongside older Gen10 nodes left running for branch office workloads. Each BIOS revision can change the CPUID bitmap that ESXi advertises, which is why a cluster that was happily migrating one quarter can refuse the next.
Enhanced vMotion Compatibility (EVC) was designed precisely for this scenario, but it requires deliberate setup. If EVC has never been enabled on the cluster, every vMotion attempt negotiates against the highest common denominator between the two participating hosts, which silently excludes newer flags on the source whenever an older node is in the pool. That hidden behaviour alone resolves many puzzling intermittent failures.
Identifying the specific feature blocking migration
The first place to look is the vCenter task pane. A failed vMotion typically surfaces an error string along the lines of "The destination host does not support the CPU feature set of the source host" or, in older builds, a cryptic "A general system error occurred: Fault Tolerance compatibility check failed". Drilling into the hostd logs on the source ESXi box, typically /var/log/hostd.log, reveals the exact CPUID flag that tripped the check. Sysadmins comfortable triaging this from a Melbourne coffee shop on a remote shell will appreciate the clarity once they know where to look.
Once the offending flag is named, the next move is to verify the actual CPUID dump from both hosts. The esxcli hardware cpu cpuid query command on each ESXi host lists every exposed feature bit, and tools like cpuinfo from a Linux live image confirm what the underlying silicon reports. It is not unusual to discover that one host in Canberra exposes an extra set of speculative-execution mitigations because of a vendor microcode patch that the other has not yet received.
Audit logs grow quickly when chasing intermittent problems, and a tidy Linux helper that handles log rotation and compression keeps the troubleshooting trail intact without filling the datastore. Rotate aggressively during an active investigation, but keep enough history to walk back through what changed.
Configuring enhanced vMotion compatibility
EVC masks the CPU feature set that vCenter advertises, forcing every host in the cluster to present a uniform baseline. The configuration lives under the cluster's Manage tab, in the VMware EVC section. Admins select the earliest-generation processor family that the hardware can honour, typically a Broadwell-generation baseline for mixed Intel fleets, or an equivalent for AMD EPYC clusters. Once enabled, all subsequent vMotion negotiations use that baseline, and the newer flags effectively disappear from the comparison.
This setting cannot be raised while VMs are running, so planning a short maintenance window matters. Many Australian shops schedule EVC changes after-hours AEST or AEDT to avoid disrupting trading desks and contact centres in financial services hubs. After flipping EVC on, a quick re-baseline of each VM's CPUID mask is required through a power-off and power-on cycle, which is the part of the process most often overlooked.
There is a trade-off worth stating plainly. By dropping to a lower baseline, you forfeit some newer CPU performance features, including AVX-512 throughput and advanced crypto acceleration, until the entire cluster is upgraded to a generation that supports the desired level. That trade is usually acceptable for general workloads, but it stings for data analytics teams running compute-heavy jobs in Perth or Adelaide.
Working around mixed vendors and hardware generations
Intel-to-AMD live migration has been supported since vSphere 7.0u2, but only when EVC is configured to use the AMD 3rd-generation baseline or higher, and only on compatible CPUs. Older Opteron-based clusters cannot mix with newer EPYC nodes, and any attempt throws an immediate compatibility error during the pre-flight check. Audit the cluster inventory carefully before assuming a cross-vendor migration will work.
When EVC cannot bridge the gap, for instance because one site is still running Haswell-era hardware while the other has moved to Sapphire Rapids, the realistic options narrow. Replace the older nodes, retire the stubborn workload to a dedicated cluster, or accept scheduled downtime for those workloads and stop relying on vMotion for them. Many Australian integrators, including long-standing partners like Data#3 and Logicalis, will help design a phased replacement that lines up with the local financial year ending in June.
For sites under regulatory obligations, including banking workloads covered by APRA CPS 234 or government tenants bound by the Australian Government Information Security Manual, keeping the CPU baseline documented matters for audit evidence. A clear record of the EVC mode, the BIOS versions in play, and the CPUID dump from each host turns an otherwise subjective decision into something the auditor can verify.
Preventing recurrences in hybrid environments
Long-term, the cleanest defence is a strict cluster boundary. Group hosts with identical CPU families and BIOS revisions into the same cluster, and refuse to stretch clusters across hardware generations. When you add a new host, capture its CPUID output on day one and store it in a config management database, whether that is Ansible, ConfigMgr, or even a spreadsheet for smaller shops, so future investigations start with a known good baseline.
Pair this discipline with subscription licensing on VMware vSphere, which the local market has had to absorb in AUD with increasingly aggressive pricing tiers. Treating vMotion as a first-class operational dependency, rather than a free bonus, justifies the spend when budgets are reviewed in July after the end of the financial year.
Finally, document the EVC mode and BIOS revision alongside every cluster in the runbook. Combined with a tested rollback plan and a properly maintained log archive, this turns a frustrating vMotion outage into a fifteen-minute fix rather than an all-nighter.
| Approach | Speed of resolution | Impact on CPU features | Suitability |
|---|---|---|---|
| Enable EVC on cluster | Fast, no VM downtime to configure | Newer flags masked until uniform hardware | Mixed-generation Intel or AMD clusters |
| Power-cycle VMs after EVC change | Required follow-up step | Re-applies masked baseline | All VMs in the cluster |
| Replace non-conforming host | Slow, capital cost involved | Restores full feature set | Small clusters with one outlier |
| Use cold migration instead | Immediate, but downtime required | No feature masking needed | Legacy workloads or strict isolation |
| Retire workload to a dedicated cluster | Medium, planning required | Full baseline available | Cross-vendor or cross-generation gaps |