1
0
mirror of https://github.com/gryf/openstack.git synced 2025-12-17 11:30:24 +01:00

Merge pull request #1 from gryf/affinity

Added doc for a affinity/anti-affinity
This commit is contained in:
Jim Rollenhagen
2018-04-02 09:51:08 -04:00
committed by GitHub

View File

@@ -0,0 +1,161 @@
..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
===============================================
Affinity/Anti Affinity of instances in a groups
===============================================
https://blueprints.launchpad.net/nova/+spec/tbd
This BP proposes a way for creating affinity and anti-affinity for ironic nodes.
Problem description
===================
Currently there is no way to create host-aggregates for Ironic nodes, instead
aggregates works only for compute nodes, so it is impossible for creating
affinity/anti-affinity rules for such nodes
Use Cases
---------
As a system administrator I want to be able to define aggregates of the Ironic
nodes in Nova, so that I can apply affinity or anti-affinity policy to the
server group.
As a system administrator I want to be able to define aggregates of the Ironic
nodes in Nova, so that I can define logical division of my data center.
Proposed change
===============
This task can be divided into two separate parts. First is a change of behavior
of host aggregates, to be able to include ironic nodes.
Second, involves changes to the scheduler to support spreading instances across
various groups.
Example session, which present the change, could be as follows:
.. code:: shell-session
openstack aggregate create rack1
openstack aggregate create rack2
openstack aggregate set --property rack=1 rack1
openstack aggregate set --property rack=1 rack2
openstack aggregate add host rack1 <UUID of Ironic node A>
openstack aggregate add host rack2 <UUID of Ironic node B>
openstack server group create --policy rack-anti-affinity not-same-rack
openstack server create --image=IMAGE_ID --flavor=1 \
--hint group=not-same-rack server1
First, we create two aggregates which would represent the rack, next we append
a rack metadata set to 1, so it indicate that this aggregate is ``rack`` based,
next we add ironic nodes by their UUID. Next, we create server group, with
desired policy, and finally spin the instance.
Alternatives
------------
None
Data model impact
-----------------
None
REST API impact
---------------
Introduce new microversion for adding new policies for node
(soft)(anti)affinity
Security impact
---------------
None
Notifications impact
--------------------
None
Other end user impact
---------------------
None
Performance Impact
------------------
Potentially, there could be performance impact on accessing aggregates
information.
Other deployer impact
---------------------
None
Developer impact
----------------
None
Upgrade impact
--------------
None
Implementation
==============
Assignee(s)
-----------
Primary assignee:
<launchpad-id or None>
Other contributors:
<launchpad-id or None>
Work Items
----------
* Allow ironic nodes to be associated with host aggregates
* Add policy for affinity/anti-affinity/soft-affinity/soft-anti-affinity for
host-aggregates, instead of hypervisors
* Implement scheduler filter to be able to use those policies
Dependencies
============
None
Testing
=======
TBD
Documentation Impact
====================
Documentation of behaviour of creating/removing aggregation should be amended.
References
==========
None
History
=======
.. list-table:: Revisions
:header-rows: 1
* - Release Name
- Description
* - Rocky
- Introduced