No exact match of nodes with flavors

Bug #1291396 reported by Ladislav Smola
18
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Ironic
Fix Released
High
Rohan
OpenStack Compute (nova)
Fix Released
Low
Unassigned
tripleo
Fix Released
High
Unassigned

Bug Description

Seems like we are not doing exact match and we never did.

http://paste.openstack.org/show/73250/

Confirmed with Lucas Gomes that it's not in Ironic nor Nova BM.

Right now we are using default nova filters that takes => resources with RamWeight=1.

We probably need to write new filters that will implement exact match and list them in nova.conf of nova image-element.

filters docs http://docs.openstack.org/developer/nova/devref/filter_scheduler.html

Tags: scheduler
Ladislav Smola (lsmola)
Changed in tripleo:
importance: Undecided → High
status: New → Triaged
description: updated
Revision history for this message
Lucas Alvares Gomes (lucasagomes) wrote :
aeva black (tenbrae)
Changed in ironic:
status: New → Triaged
importance: Undecided → High
Revision history for this message
Ladislav Smola (lsmola) wrote :

Seems to me quite a lot of work and probably pushing some code to Nova, so this probably won't land in Icehouse.

I will make a quick fix, just to make RamWeight=-1 (and possibly weights for all metrics), so it will try to pick machines that are closest to the wanted specs. This is just nova.conf change

Changed in tripleo:
assignee: nobody → Ladislav Smola (lsmola)
Rohan (kanaderohan)
Changed in ironic:
assignee: nobody → Rohan (kanaderohan)
Changed in tripleo:
status: Triaged → In Progress
Revision history for this message
melanie witt (melwitt) wrote :

@Rohan, are you working on the nova side of this or are you implementing something only in ironic?

Just wondering, since this bug isn't set to affects nova yet and I'm interested in working on the nova filters if needed.

Revision history for this message
Rohan (kanaderohan) wrote :

Actually, i was about to add the Nova project to this.

I was already working on adding filters to Nova itself, nothing in Ironic

Changed in nova:
assignee: nobody → Rohan (kanaderohan)
Revision history for this message
melanie witt (melwitt) wrote :

@Rohan, okay, thanks!

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to tripleo-image-elements (master)

Reviewed: https://review.openstack.org/81200
Committed: https://git.openstack.org/cgit/openstack/tripleo-image-elements/commit/?id=9afb1096543f477c4c39c38d99a6dd957d5c35e2
Submitter: Jenkins
Branch: master

commit 9afb1096543f477c4c39c38d99a6dd957d5c35e2
Author: Ladislav Smola <email address hidden>
Date: Tue Mar 18 09:06:53 2014 +0100

    Setting negative RamWeigher

    Since we will not have exact match in Icehouse, this is what gets
    it closer to exact match. Negative RamWeigher causes scheduler
    to pick nodes with less RAM first, so in our case it will pick
    what is closest to flavors we use.

    Partial-Bug: #1291396
    Change-Id: I9e910bbb82b2ab456ed15af4dee2b67491d6e24b

aeva black (tenbrae)
Changed in ironic:
milestone: none → next
Tracy Jones (tjones-i)
tags: added: scheduler
Revision history for this message
Robert Collins (lifeless) wrote :

This is pretty important - critical even - for correct operation of the baremetal layer.

Revision history for this message
aeva black (tenbrae) wrote :

Bumping priority and targeting to RC1, after talking with Robert.

Changed in ironic:
milestone: next → icehouse-rc1
Revision history for this message
aeva black (tenbrae) wrote :

Er.. it was already "High". Just targeting to RC1.

@Rohan, I haven't seen any patches from you w.r.t. this yet. Are you working on it?

Revision history for this message
Rohan (kanaderohan) wrote :

@Deva, I am still working on this, will push fix till end of weekend.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova (master)

Fix proposed to branch: master
Review: https://review.openstack.org/83728

Changed in nova:
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to ironic (master)

Fix proposed to branch: master
Review: https://review.openstack.org/83734

Changed in ironic:
status: Triaged → In Progress
Revision history for this message
Ladislav Smola (lsmola) wrote :

Exact filters looks great . Will test it soon.

Do you think, you could also add some filter to match Flavor extra specs to Ironic node metadata? I am not sure how this should be done yet. :-) But we could use it for matching architecture and e.g. tags we will put to Ironic nodes.
This is probably worth a bp, if there is not already filter, that can do this.

Revision history for this message
aeva black (tenbrae) wrote :

Ladislav, I think the extra specs is already done by compute_capabilities_filter... but IMBW. It's worth confirming.

Revision history for this message
Ladislav Smola (lsmola) wrote :

Devananda, seems like this could be usable. Will check if the host capabilities are filled with the data we need.

Revision history for this message
aeva black (tenbrae) wrote :

Once https://review.openstack.org/#/c/83734/ lands in Ironic, it will be possible to use exact match filters. However, Nova does not load scheduler filters via any plugin method, so out of tree filters are awkward and will require two things:

* copy ironic/nova/scheduler/filters/exact*.py into nova/scheduler/filters/
* add "baremetal_scheduler_default_filters=True" to /etc/nova/nova.conf

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to ironic (master)

Reviewed: https://review.openstack.org/83734
Committed: https://git.openstack.org/cgit/openstack/ironic/commit/?id=a7a16dc44efcabd8f9ac042c432f6594cffabe20
Submitter: Jenkins
Branch: master

commit a7a16dc44efcabd8f9ac042c432f6594cffabe20
Author: Rohan Kanade <email address hidden>
Date: Fri Mar 28 13:46:55 2014 +0100

    Adds exact match filters to nova scheduler

    Add exact match ram, disk, core filters which will match exact values
    of requested metrics, this is required for Baremetal/Ironic instance
    filtering.

    Unit tests have been proposed to nova at
    https://review.openstack.org/#/c/83728

    Change-Id: I20faa1c17f4121429bbbea80e59b168095909b48
    Closes-Bug: #1291396

Changed in ironic:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in ironic:
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in ironic:
milestone: icehouse-rc1 → 2014.1
Revision history for this message
aeva black (tenbrae) wrote :

assigning this bug to myself as the related exact-match schedulers were approved as part of the Ironic driver spec (which is assigned to me)

Changed in nova:
assignee: Rohan (kanaderohan) → Devananda van der Veen (devananda)
Changed in tripleo:
assignee: Ladislav Smola (lsmola) → Devananda van der Veen (devananda)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on nova (master)

Change abandoned by Rohan Kanade (<email address hidden>) on branch: master
Review: https://review.openstack.org/83728
Reason: Superceded by the work to land the entire Ironic driver:

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

Sean Dague (sdague)
Changed in nova:
status: In Progress → Confirmed
assignee: Devananda van der Veen (devananda) → nobody
importance: Undecided → Low
Revision history for this message
Ladislav Smola (lsmola) wrote :

I see, the exact match filters are implemented here https://review.openstack.org/#/c/103165/

Now we just need to make them default in tripleo-image-elements

Changed in nova:
status: Confirmed → Fix Released
Revision history for this message
Brent Eagles (beagles) wrote :

What - if anything - remains to be done here for tripleo? FWICT - we've configured a substantial list of filters in the undercloud, including RamFilter, DiskFilter, ComputeFilter, etc.. so this seems like this has been addressed already. Please reopen or refile a target bug if warranted.

Changed in tripleo:
status: In Progress → Incomplete
Revision history for this message
Steven Hardy (shardy) wrote :

We ended up fixing this with node tagging in ironic and a special version of the ComputeCapabilities filter, so marking this fix released

https://github.com/openstack/tripleo-common/blob/master/tripleo_common/filters/capabilities_filter.py

Changed in tripleo:
assignee: Devananda van der Veen (devananda) → nobody
status: Incomplete → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.