[openstack-dev] [nova] allow image/flavor to specify CPU model or CPU feature(s)

Chris Friesen chris.friesen at windriver.com
Thu Jun 4 19:05:55 UTC 2015


Alex Xu and I had similar specs proposed for Liberty, so we joined forces to try 
to come up with something that would meet both of our goals while still being as 
simple as possible.

The spec is up for review at https://review.openstack.org/#/c/168982/

The basic goal is to allow end-user applications to ensure they get a virtual 
CPU model that is advanced enough for high-performance software (which may want 
particular CPU feature combinations) while still being able to live-migrate 
within the cluster with as much flexibility as possible.

The general idea is that operators would specify in nova.conf a list of 
available CPU models.  For maximum performance and flexibility in live-migration 
this would correspond to the CPU models of the various compute nodes in the 
cloud.  These would be documented by the operator like Amazon does for their EC2 

The admin creating the flavors would be able to specify either a specific CPU 
model (or a set of CPU features, though I would expect this to be less common) 
provided by that flavor.

The user creating an image would be able to specify a minimum set of CPU 
features or a minimum CPU model required by the image.  The specified flavor 
must be "good enough" to satisfy the minimums, but may be better.

For a concrete example, the cloud operator might specify that they support 
SandyBridge and Haswell models, the flavor might specify "Haswell", and the 
image might specify "avx".  In this case the instance would be booted up with a 
Haswell CPU.  If the flavor specified "SandyBridge" (which still provides the 
"avx" feature), then the instance would be booted with a SandyBridge CPU and 
could therefore run on either SandyBridge or Haswell hosts.

If this sounds interesting, please take a look at the spec.


More information about the OpenStack-dev mailing list