[openstack-dev] Host CPU feature exposure

Russell Bryant rbryant at redhat.com
Fri Jan 11 20:16:57 UTC 2013


On 01/11/2013 02:42 PM, Dugger, Donald D wrote:
> I'm trying carefully not to specify CPUID feature bits since, as you say, that would be x86 specific.  What I'm looking for is the ability to define platform capabilities and then be able to schedule an instance on a platform that supports specific capabilities.  Currently the compute nodes are only exposing CPU feature bits but I would definitely like to extend this to report other capabilities (things like the ability to directly assign SR/IOV devices come to mind although there are a lot of issues that would need to be addressed before we can truly support that).  I'm assuming that other architectures, like PPC or ARM, also have different capabilities and these capabilities should be reported to the scheduler just like in the x86 case.

Dan has mentioned a few times that non-x86 CPUs do *not* have feature flags.

If all you're trying to do is have a way to define that a set of hosts
has some capability and then be able to schedule to that set of hosts,
you can do this manually using host aggregates.

Create a host aggregate called 'foo' that contains all of the hosts that
have some set of features you care about.  Use metadata on the host
aggregate to define the features that are supported.

Define an instance type with extra_specs.  The extra_specs should
contain key/value pairs that match up with the host aggregate metadata
defined above.  This is a list of features that must be provided for an
aggregate of hosts to be considered during scheduling.

There is a scheduler filter that mashes these together:

nova/scheduler/filters/aggregate_instance_extra_specs.py

-- 
Russell Bryant



More information about the OpenStack-dev mailing list