[openstack-dev] [nova] Latest and greatest on trying to get n-sch to require placement

Matt Riedemann mriedemos at gmail.com
Thu Jan 26 04:42:20 UTC 2017


This is my public hand off to Sylvain for the work done tonight.

Starting with the multinode grenade failure in the nova patch to 
integrate placement with the filter scheduler:

https://review.openstack.org/#/c/417961/

The test_schedule_to_all_nodes tempest test was failing in there because 
that test explicitly forces hosts using AZs to build two instances. 
Because we didn't have nova.conf on the Newton subnode in the multinode 
grenade job configured to talk to placement, there was no resource 
provider for that Newton subnode when we started running smoke tests 
after the upgrade to Ocata, so that test failed since the request to the 
subnode had a NoValidHost (because no resource provider was checking in 
from the Newton node).

Grenade is not topology aware so it doesn't know anything about the 
subnode. When the subnode is stacked, it does so via a post-stack hook 
script that devstack-gate writes into the grenade run, so after stacking 
the primary Newton node, it then uses Ansible to ssh into the subnode 
and stack Newton there too:

https://github.com/openstack-infra/devstack-gate/blob/master/devstack-vm-gate.sh#L629

logs.openstack.org/61/417961/26/check/gate-grenade-dsvm-neutron-multinode-ubuntu-xenial/15545e4/logs/grenade.sh.txt.gz#_2017-01-26_00_26_59_296

And placement was optional in Newton so, you know, problems.

Some options came to mind:

1. Change the test to not be a smoke test which would exclude it from 
running during grenade. QA would barf on this.

2. Hack some kind of pre-upgrade callback from d-g into grenade just for 
configuring placement on the compute subnode. This would probably 
require adding a script to devstack just so d-g has something to call so 
we could keep branch logic out of d-g, like what we did for the 
discover_hosts stuff for cells v2. This is more complicated than what I 
wanted to deal with tonight with limited time on my hands.

3. Change the nova filter scheduler patch to fallback to get all compute 
nodes if there are no resource providers. We've already talked about 
this a few times already in other threads and I consider it a safety net 
we'd like to avoid if all else fails. If we did this, we could 
potentially restrict it to just the forced-host case...

4. Setup the Newton subnode in the grenade run to configure placement, 
which I think we can do from d-g using the features yaml file. That's 
what I opted to go with and the patch is here:

https://review.openstack.org/#/c/425524/

I've made the nova patch dependent on that *and* the other grenade patch 
to install and configure placement on the primary node when upgrading 
from Newton to Ocata.

--

That's where we're at right now. If #4 fails, I think we are stuck with 
adding a workaround for #3 into Ocata and then remove that in Pike when 
we know/expect computes to be running placement (they would be in our 
grenade runs from ocata->pike at least).

-- 

Thanks,

Matt Riedemann



More information about the OpenStack-dev mailing list