CPU Model
What is a CPU Model
In Private Cloud Director, a CPU model refers to the set of CPU features and flags exposed to a virtual machine. This is how Private Cloud Director compute service manages the CPU architecture presented to a virtual machine guest operating system, allowing for flexibility and control over performance, compatibility, and migration capabilities.
Use Cases for CPU Model
Performance: Exposing specific CPU features can maximize the performance of workloads running inside the virtual machines.
Compatibility: Ensuring consistent behavior across different hypervisor hosts in a virtualized cluster, regardless of the underlying host CPU, can be achieved by specifying a CPU model.
Migration: CPU models play an important role in Live Migration and Dynamic Resource Rebalancing (DRR). Matching CPU models on source and destination hosts is crucial for successful live migration and for Dynamic Resource Rebalancing (DRR) to operate with full efficiency.
Locating CPU Models Supported By Your Host
The libvirt KVM driver that comes built in as part of your Ubuntu installation on your hypervisor host provides a number of standard CPU model names.
These models are defined in /usr/share/libvirt/cpu_map/*.xml. You can inspect these files to determine which models are supported by your server.
Each file located under this directory contains information about the feature set provided by the CPU model.
For example, here the file x86_SandyBridge-IBRS.xmldescribes the CPU vendor, family, model and features supported by the SandyBridge-IBRS CPU Model.
$ cat /usr/share/libvirt/cpu_map/x86_SandyBridge-IBRS.xml
<cpus>
<model name='SandyBridge-IBRS'>
<decode host='on' guest='on'/>
<signature family='6' model='42'/> <!-- 0206a0 -->
<signature family='6' model='45'/> <!-- 0206d0 -->
<vendor name='Intel'/>
<feature name='aes'/>
<feature name='apic'/>
...
</model>
</cpus>You can also locate the supported CPU models by running virsh cpu-models <ARCH> command:
$ virsh cpu-models x86_64
...
SandyBridge
SandyBridge-IBRS
IvyBridge
IvyBridge-IBRS
Haswell-noTSX
Haswell-noTSX-IBRS
Haswell
Haswell-IBRSSupported CPU Models
Private Cloud Director currently supports following list of Supported CPU Models.
CPU Model Configuration Per Host
When you configure a host with 'hypervisor' role, here are the steps followed by the compute service to configure the CPU model on the host:
It starts by checking the list of approved models, beginning with the newest models based on the CPU vendor for your host.
For each model, it verifies compatibility by checking if the model is marked as usable in the
virsh -c qemu:///system domcapabilitiesoutput.The first approved model marked as usable is selected.
If no approved models are usable, the system falls back to a generic model.
CPU Model Pre-requisites for Hypervisor Hosts
Each host that you authorize in your Private Cloud Director setup with 'hypervisor' role must support at least one CPU Model that is part of the Supported CPU Models list.
Failing this requirement may result in unexpected errors such as the host going to offline state, or virtual machines failing to provision, etc.
CPU Model Pre-requisites for Migration
Following CPU model prerequisites must be met by all hosts within a virtualized cluster, so that operations like live migration, cold migration, VM evacuation can work smoothly, and services like Dynamic Resource Rebalancing (DRR), Virtual Machine High Availability (VM HA) can operate efficiently.
All hosts in the cluster must have the exact same value for the most recent CPU model supported. Read here for how system configures CPU model per host.
This value must be part of the list of Supported CPU Models.
If the hosts do not all report the same most-recent supported CPU model, or if a host’s CPU model is missing from the supported models list above, then you can set the CPU Mode and Model
Last updated
Was this helpful?
