~ubuntu-branches/ubuntu/raring/nova/raring-proposed

« back to all changes in this revision

Viewing changes to doc/source/devref/filter_scheduler.rst

  • Committer: Package Import Robot
  • Author(s): Chuck Short, Adam Gandelman, Chuck Short
  • Date: 2012-11-23 09:04:58 UTC
  • mfrom: (1.1.66)
  • Revision ID: package-import@ubuntu.com-20121123090458-91565o7aev1i1h71
Tags: 2013.1~g1-0ubuntu1
[ Adam Gandelman ]
* debian/control: Ensure novaclient is upgraded with nova,
  require python-keystoneclient >= 1:2.9.0. (LP: #1073289)
* debian/patches/{ubuntu/*, rbd-security.patch}: Dropped, applied
  upstream.
* debian/control: Add python-testtools to Build-Depends.

[ Chuck Short ]
* New upstream version.
* Refreshed debian/patches/avoid_setuptools_git_dependency.patch.
* debian/rules: FTBFS if missing binaries.
* debian/nova-scheudler.install: Add missing rabbit-queues and
  nova-rpc-zmq-receiver.
* Remove nova-volume since it doesnt exist anymore, transition to cinder-*.
* debian/rules: install apport hook in the right place.
* debian/patches/ubuntu-show-tests.patch: Display test failures.
* debian/control: Add depends on genisoimage
* debian/control: Suggest guestmount.
* debian/control: Suggest websockify. (LP: #1076442)
* debian/nova.conf: Disable nova-volume service.
* debian/control: Depend on xen-system-* rather than the hypervisor.
* debian/control, debian/mans/nova-conductor.8, debian/nova-conductor.init,
  debian/nova-conductor.install, debian/nova-conductor.logrotate
  debian/nova-conductor.manpages, debian/nova-conductor.postrm
  debian/nova-conductor.upstart.in: Add nova-conductor service.
* debian/control: Add python-fixtures as a build deps.

Show diffs side-by-side

added added

removed removed

Lines of Context:
32
32
  image properties contained in the instance.
33
33
* |AvailabilityZoneFilter| - filters hosts by availability zone. It passes
34
34
  hosts matching the availability zone specified in the instance properties.
35
 
* |ComputeCapabilityFilter| - checks that the capabilities provided by the
 
35
* |ComputeCapabilitiesFilter| - checks that the capabilities provided by the
36
36
  host compute service satisfy any extra specifications associated with the
37
 
  instance type (that have no scope, see |TrustedFilter| for details).  It
38
 
  passes hosts that can create the specified instance type.
 
37
  instance type.  It passes hosts that can create the specified instance type.
 
38
 
 
39
  The extra specifications can have a scope at the beginning of the key string
 
40
  of a key/value pair. The scope format is "scope:key" and can be nested,
 
41
  i.e. key_string := scope:key_string. Example like "capabilities:cpu_info:
 
42
  features" is valid scope format. A key string without any ':' is non-scope
 
43
  format. Each filter defines it's valid scope, and not all filters accept
 
44
  non-scope format.
39
45
 
40
46
  The extra specifications can have an operator at the beginning of the value
41
47
  string of a key/value pair. If there is no operator specified, then a
63
69
  satisfies any extra specifications associated with the instance type (that
64
70
  have no scope).  It passes hosts that can create the specified instance type.
65
71
  The extra specifications can have the same operators as
66
 
  |ComputeCapabilityFilter|.
 
72
  |ComputeCapabilitiesFilter|.
67
73
* |ComputeFilter| - passes all hosts that are operational and enabled.
68
74
* |CoreFilter| - filters based on CPU core utilization. It passes hosts with
69
75
  sufficient number of CPU cores.
128
134
Only hosts that satisfy these requirements will pass the
129
135
|ImagePropertiesFilter|.
130
136
 
131
 
|ComputeCapabilitesFilter| checks if the host satisfies any 'extra specs'
132
 
specified on the instance type.  The 'extra specs' can contain key/value pairs,
133
 
and the |ComputeCapabilitiesFilter| will only pass hosts whose capabilities
134
 
satisfy the requested specifications.  All hosts are passed if no 'extra specs'
135
 
are specified.
 
137
|ComputeCapabilitiesFilter| checks if the host satisfies any 'extra specs'
 
138
specified on the instance type.  The 'extra specs' can contain key/value pairs.
 
139
The key for the filter is either non-scope format (i.e. no ':' contained), or
 
140
scope format in capabilities scope (i.e. 'capabilities:xxx:yyy'). One example
 
141
of capabilities scope is "capabilities:cpu_info:features", which will match
 
142
host's cpu features capabilities. The |ComputeCapabilitiesFilter| will only
 
143
pass hosts whose capabilities satisfy the requested specifications.  All hosts
 
144
are passed if no 'extra specs' are specified.
136
145
 
137
146
|ComputeFilter| is quite simple and passes any host whose compute service is
138
147
enabled and operational.
179
188
It only passes hosts that have not been previously attempted.
180
189
 
181
190
The |TrustedFilter| filters hosts based on their trust.  Only passes hosts
182
 
that match the trust requested in the `extra_specs' for the flavor.  The key
183
 
for this filter is `trust:trusted_host', where `trust' is the scope of the
184
 
key and `trusted_host' is the actual key value'.
 
191
that match the trust requested in the `extra_specs' for the flavor. The key
 
192
for this filter must be scope format as `trust:trusted_host', where `trust'
 
193
is the scope of the key and `trusted_host' is the actual key value.
185
194
The value of this pair (`trusted'/`untrusted') must match the
186
195
integrity of a host (obtained from the Attestation service) before it is
187
196
passed by the |TrustedFilter|.
198
207
::
199
208
 
200
209
    --scheduler_available_filters=nova.scheduler.filters.standard_filters
201
 
    --scheduler_default_filters=RamFilter,ComputeFilter,AvailabilityZoneFilter,ComputeCapabilityFilter,ImagePropertiesFilter
 
210
    --scheduler_default_filters=RamFilter,ComputeFilter,AvailabilityZoneFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter
202
211
 
203
212
With this configuration, all filters in `nova.scheduler.filters`
204
213
would be available, and by default the |RamFilter|, |ComputeFilter|,
205
 
|AvailabilityZoneFilter|, |ComputeCapabilityFilter|, and
 
214
|AvailabilityZoneFilter|, |ComputeCapabilitiesFilter|, and
206
215
|ImagePropertiesFilter| would be used.
207
216
 
208
217
If you want to create **your own filter** you just need to inherit from