From 4cbf1f379c66397e48d3299281c691b405f97965 Mon Sep 17 00:00:00 2001 From: Gary Kotton Date: Sun, 3 Feb 2013 11:01:44 +0000 Subject: 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 : 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 --- doc/source/devref/filter_scheduler.rst | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'doc/source') 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 ` .. |RamFilter| replace:: :class:`RamFilter ` .. |SimpleCIDRAffinityFilter| replace:: :class:`SimpleCIDRAffinityFilter ` +.. |GroupAntiAffinityFilter| replace:: :class:`GroupAntiAffinityFilter ` .. |DifferentHostFilter| replace:: :class:`DifferentHostFilter ` .. |SameHostFilter| replace:: :class:`SameHostFilter ` .. |RetryFilter| replace:: :class:`RetryFilter ` -- cgit