diff options
author | Gary Kotton <gkotton@redhat.com> | 2013-02-03 11:01:44 +0000 |
---|---|---|
committer | Gary Kotton <gkotton@redhat.com> | 2013-02-08 03:16:44 +0000 |
commit | 4cbf1f379c66397e48d3299281c691b405f97965 (patch) | |
tree | 77264d6ee12decbb1e122f0e94ca4018913156c7 /doc | |
parent | 64106c282f961d65ca469524016635c96596b77f (diff) | |
download | nova-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.rst | 7 |
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>` |