[openstack-dev] [nova] allow image/flavor to specify CPU model or CPU feature(s)
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