If you use your cluster primarily to spin up and spin down VM you need often some level of control where the VM are going to be built. In the latest Openstack release there are two options that can help: availability zones and host aggregate filter.
Host aggregates filter
It was introduced in Essex (Release Note, all Essex blueprints)
- Host aggregates (direct link to blueprint)
- General Host Aggregates were implemented, allowing metadata to be set dynamically for hosts and pased to the scheduler general-host-aggregates
- Lots of improvements were made to the scheduler, Including filters for image architecture and scheduling based on capabilities from aggregates. See doc.
- host aggregate based availability zones
- show all availibility_zone in a region and show availability_zone field in instance detail information
I didn't have a chance to investigate where this feature was introduced and how it was implemented fully. For these who are interested in more details this link should give a good starting point: Nova release notes and blueprints
Below are some links to examples with nova commands to show how the two features work.
Controlling volume and instance placement in OpenStack (take 1)
Controlling volume and instance placement in OpenStack (take 2)
Controlling where instances run (Openstack compute administration guide - grizzly)
How do I group compute nodes to control workload placement? (ask openstack forum)