yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #30985
[Bug 1279719] Re: Fail to createVM with extra_spec using ComputeCapabilitiesFilter
This bug is still valid, please reopen.
** Changed in: nova
Status: Expired => Confirmed
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1279719
Title:
Fail to createVM with extra_spec using ComputeCapabilitiesFilter
Status in OpenStack Compute (Nova):
Confirmed
Bug description:
Fails to createVM with extra_spec using ComputeCapabilitiesFilter, the
scheduler will always fail to find a suitable host.
------------
Here's the test steps:
1. Create an aggregate, and set its metadata, like ssd=True.
2. Add one host to this aggregate.
3. Create a new flavor, set extra_spcs like ssd=True.
4. Create a new VM using this flavor.
5. Creation failed due to no valid hosts.
-------------
Let's look at the codes:
In ComputeCapabilitiesFilter, it'll match hosts' capacities with extra_spec.
Before in Grizzly, there's a periodic_task named '_report_driver_status()' to report hosts' capacities.
But in Havana, the task is canceled. So the capacities won't be updated, the value is always 'None'.
So, if you boot a VM with extra_spec, those hosts will be filtered out.
And the exception will be raised.
-----------------
Some observations with this filter:
1- only first level properties can be used without 'capabilities' scope
This will be correct:
hypervisor_type = QEMU
This will fail:
cpu_info:features <in> aes
cpu_info:vendor = Intel
From the docs:
ComputeCapabilitiesFilter
Matches properties defined in an instance type's extra specs against
compute capabilities.
If an extra specs key contains a colon ":", anything before the colon
is treated as a namespace, and anything after the colon is treated as
the key to be matched. If a namespace is present and is not
'capabilities', it is ignored by this filter.
2- If you use both filters, ComputeCapabilitiesFilter and AggregateInstanceExtraSpecFilter, you can't use non-scoped extra_specs. That decisions were made here:
https://bugs.launchpad.net/nova/+bug/1037503
https://bugs.launchpad.net/nova/+bug/1039386
http://www.gossamer-threads.com/lists/openstack/dev/18355
3- cpu_info data is loaded as unicode in HostState. ComputeCapabilitiesFilter fails to get attributes from this property.
This will fail:
capabilities:cpu_info:features <in> aes
This last one is addressed here:
https://bugs.launchpad.net/nova/+bug/1331176
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1279719/+subscriptions
References