summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorGary Kotton <gkotton@redhat.com>2013-02-03 11:01:44 +0000
committerGary Kotton <gkotton@redhat.com>2013-02-08 03:16:44 +0000
commit4cbf1f379c66397e48d3299281c691b405f97965 (patch)
tree77264d6ee12decbb1e122f0e94ca4018913156c7 /doc
parent64106c282f961d65ca469524016635c96596b77f (diff)
downloadnova-4cbf1f379c66397e48d3299281c691b405f97965.tar.gz
nova-4cbf1f379c66397e48d3299281c691b405f97965.tar.xz
nova-4cbf1f379c66397e48d3299281c691b405f97965.zip
Support for scheduler hints for VM groups
This is part of the blueprint vm-ensembles. The patch introduces the group as a scheduler hint. The patch set adds group support for multi-VM deployment. This is achieved as follows: 1. A new hint is added: group. This will contain the name and type for the group. At the moment only anti-affinity is supported. In the future we will add network proximity. It will be extended to <name>:<type> 2. In order to ensure that group policy will be honored for future VM deployments, the group is stored as system_metadata. 3. The anti affinity is implemented by a new filter called GroupAntiAffinityFilter. DocImpact Change-Id: I6ea2af5770b5ac4ff082b2a021d323ee38282205
Diffstat (limited to 'doc')
-rw-r--r--doc/source/devref/filter_scheduler.rst7
1 files changed, 7 insertions, 0 deletions
diff --git a/doc/source/devref/filter_scheduler.rst b/doc/source/devref/filter_scheduler.rst
index 63ed95c82..31dcfde77 100644
--- a/doc/source/devref/filter_scheduler.rst
+++ b/doc/source/devref/filter_scheduler.rst
@@ -91,6 +91,8 @@ There are some standard filter classes to use (:mod:`nova.scheduler.filters`):
* |TypeAffinityFilter| - Only passes hosts that are not already running an
instance of the requested type.
* |AggregateTypeAffinityFilter| - limits instance_type by aggregate.
+* |GroupAntiAffinityFilter| - ensures that each instance in group is on a
+ different host.
Now we can focus on these standard filter classes in details. I will pass the
simplest ones, such as |AllHostsFilter|, |CoreFilter| and |RamFilter| are,
@@ -163,6 +165,10 @@ of the set of instances uses.
the network address of the current host is in the same sub network as it was
defined in the request.
+|GroupAntiAffinityFilter| its method `host_passes` returns `True` if host to
+place the instance on is not in a group of hosts. The group of hosts is
+maintained by a group name. The scheduler hint contains the group name.
+
|JsonFilter| - this filter provides the opportunity to write complicated
queries for the hosts capabilities filtering, based on simple JSON-like syntax.
There can be used the following operations for the host states properties:
@@ -336,6 +342,7 @@ in :mod:`nova.tests.scheduler`.
.. |JsonFilter| replace:: :class:`JsonFilter <nova.scheduler.filters.json_filter.JsonFilter>`
.. |RamFilter| replace:: :class:`RamFilter <nova.scheduler.filters.ram_filter.RamFilter>`
.. |SimpleCIDRAffinityFilter| replace:: :class:`SimpleCIDRAffinityFilter <nova.scheduler.filters.affinity_filter.SimpleCIDRAffinityFilter>`
+.. |GroupAntiAffinityFilter| replace:: :class:`GroupAntiAffinityFilter <nova.scheduler.filters.affinity_filter.GroupAntiAffinityFilter>`
.. |DifferentHostFilter| replace:: :class:`DifferentHostFilter <nova.scheduler.filters.affinity_filter.DifferentHostFilter>`
.. |SameHostFilter| replace:: :class:`SameHostFilter <nova.scheduler.filters.affinity_filter.SameHostFilter>`
.. |RetryFilter| replace:: :class:`RetryFilter <nova.scheduler.filters.retry_filter.RetryFilter>`