CPU profiles and migration compatibility

CPU profiles and migration compatibility

Choose a guest CPU contract and manage compatibility across heterogeneous hosts.

A CPU profile defines the processor features visible to a droplet. Infra checks that contract when starting the guest and when selecting a migration destination. The profile belongs to the droplet configuration, not to whichever node runs it.

Select a pool baseline

Open Fleet → Node pools → CPU profiles to inspect the feature intersection for a pool. A baseline exposes only features supported by every admitted CPU in that compatibility set. A host profile exposes the selected host's supported features and can restrict future migration destinations.

Use a baseline for workloads that must move between CPU generations. Use a host profile when an application requires a specific instruction set and the reduced destination set is acceptable. Selecting a newer baseline does not install support on older hardware.

The profile revision records architecture, required features, disabled features, and hypervisor machine compatibility. An x86_64 profile cannot run on an ARM node. Features required by the image or application must also exist in the selected guest contract.

Preview a change

On a stopped droplet, choose Placement → CPU profile → Change. The preview shows eligible nodes before and after the change and any affected placement group. It also checks whether the current pool permits that profile.

Changing the profile requires a stopped guest. Memory created under the previous profile cannot be carried into a guest with a different CPU contract. Infra rejects a profile edit while a migration or snapshot-assisted memory operation holds the droplet lock.

Saving changes the requested profile revision; the next successful start confirms its application. If the start fails because the new profile is unsuitable, keep the droplet stopped, open Placement → CPU profile → Change, and select the previous profile. Review its eligible-node preview before starting the droplet again. A failed start does not restore that profile automatically.

Admit replacement hardware

An enrolled node reports both physical CPU capabilities and the profiles it can provide. Keep it cordoned until the pool baseline check succeeds. A node missing one required feature remains visible in inventory but cannot receive droplets that require it.

Do not update a baseline by editing its required feature list in place. Publish a new profile revision, test a representative guest, and migrate eligible workloads through a reviewed rollout. Existing droplets keep their pinned revision until explicitly changed.

Diagnose a rejected destination

A migration error includes cpu_profile_incompatible and the destination's missing feature set. Compare that result with the droplet's pinned profile, not just the host CPU model name. Microcode, firmware settings, and hypervisor versions can change the available feature set on otherwise similar servers.

If the destination cannot implement the contract, add compatible capacity or schedule a stop, profile change, and restart. Disabling a required instruction during a running migration is unsupported.

Use placement groups for location constraints, Node API to inspect advertised profiles, and Droplet actions to request a migration.

Instruction-set compatibility is separate from NUMA and memory backing. A destination can support the CPU profile and still lack the pinned cores or huge pages required for admission.