Merge "Config Ref: Improve Compute scheduler description"
This commit is contained in:
commit
526c73ef5b
@ -163,7 +163,7 @@
|
||||
>nova-scheduler</systemitem> service to enable host
|
||||
aggregates filtering, as well as the other filters that
|
||||
are typically
|
||||
enabled:<programlisting language="ini">scheduler_default_filters=AggregateInstanceExtraSpecsFilter,AvailabilityZoneFilter,RamFilter,ComputeFilter</programlisting></para>
|
||||
enabled:<programlisting language="ini">scheduler_default_filters=AggregateInstanceExtraSpecsFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter</programlisting></para>
|
||||
</simplesect>
|
||||
<simplesect>
|
||||
<title>Example: Specify compute hosts with SSDs</title>
|
||||
|
@ -23,10 +23,10 @@
|
||||
options in the <filename>/etc/nova/nova.conf</filename>
|
||||
file:</para>
|
||||
<programlisting language="ini">scheduler_driver=nova.scheduler.multi.MultiScheduler
|
||||
scheduler_driver_task_period=60
|
||||
compute_scheduler_driver=nova.scheduler.filter_scheduler.FilterScheduler
|
||||
scheduler_available_filters=nova.scheduler.filters.all_filters
|
||||
scheduler_default_filters=RetryFilter,AvailabilityZoneFilter,RamFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter</programlisting>
|
||||
scheduler_driver_task_period = 60
|
||||
scheduler_driver = nova.scheduler.filter_scheduler.FilterScheduler
|
||||
scheduler_available_filters = nova.scheduler.filters.all_filters
|
||||
scheduler_default_filters = RetryFilter, AvailabilityZoneFilter, RamFilter, ComputeFilter, ComputeCapabilitiesFilter, ImagePropertiesFilter, ServerGroupAntiAffinityFilter, ServerGroupAffinityFilter</programlisting>
|
||||
<para>By default, the <parameter>scheduler_driver</parameter> is
|
||||
configured as a filter scheduler, as described in the next
|
||||
section. In the default configuration, this scheduler
|
||||
@ -56,9 +56,20 @@ scheduler_default_filters=RetryFilter,AvailabilityZoneFilter,RamFilter,ComputeFi
|
||||
<listitem>
|
||||
<para>Satisfy any architecture, hypervisor type, or
|
||||
virtual machine mode properties specified on the
|
||||
instance's image properties.
|
||||
instance's image properties
|
||||
(<literal>ImagePropertiesFilter</literal>).</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
Are on a different host than other instances of a group
|
||||
(if requested)
|
||||
(<literal>ServerGroupAntiAffinityFilter</literal>).</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
Are in a set of group hosts (if requested)
|
||||
(<literal>ServerGroupAffinityFilter</literal>).</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>The scheduler caches its list of available hosts; use the
|
||||
<option>scheduler_driver_task_period</option> option to
|
||||
@ -129,26 +140,44 @@ scheduler_default_filters=RetryFilter,AvailabilityZoneFilter,RamFilter,ComputeFi
|
||||
use both the built-in filters and your custom filter, your
|
||||
<filename>nova.conf</filename> file would
|
||||
contain:</para>
|
||||
<programlisting language="ini">scheduler_available_filters=nova.scheduler.filters.all_filters
|
||||
scheduler_available_filters=myfilter.MyFilter</programlisting>
|
||||
<programlisting language="ini">scheduler_available_filters = nova.scheduler.filters.all_filters
|
||||
scheduler_available_filters = myfilter.MyFilter</programlisting>
|
||||
<para>The <literal>scheduler_default_filters</literal>
|
||||
configuration option in <filename>nova.conf</filename>
|
||||
defines the list of filters that are applied by the
|
||||
<systemitem class="service"
|
||||
>nova-scheduler</systemitem> service. The default
|
||||
filters are:</para>
|
||||
<programlisting language="ini">scheduler_default_filters=RetryFilter,AvailabilityZoneFilter,RamFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter</programlisting>
|
||||
<programlisting language="ini">scheduler_default_filters = RetryFilter, AvailabilityZoneFilter, RamFilter, ComputeFilter, ComputeCapabilitiesFilter, ImagePropertiesFilter, ServerGroupAntiAffinityFilter, ServerGroupAffinityFilter</programlisting>
|
||||
<para>The following sections describe the available
|
||||
filters.</para>
|
||||
<section xml:id="aggregatecorefilter">
|
||||
<section xml:id="aggregate-corefilter">
|
||||
<title>AggregateCoreFilter</title>
|
||||
<para>Implements blueprint per-aggregate-resource-ratio.
|
||||
AggregateCoreFilter supports per-aggregate
|
||||
<literal>cpu_allocation_ratio</literal>. If the
|
||||
per-aggregate value is not found, the value falls back
|
||||
to the global setting.</para>
|
||||
<para>
|
||||
Filters host by CPU core numbers with a per-aggregate
|
||||
<literal>cpu_allocation_ratio</literal> value. If the
|
||||
per-aggregate value is not found, the value falls back
|
||||
to the global setting. If the host is in more than one
|
||||
aggregate and more than one value is found, the minimum
|
||||
value will be used. For information about how to use
|
||||
this filter, see <xref linkend="host-aggregates"/>. See
|
||||
also <xref linkend="corefilter"/>.
|
||||
</para>
|
||||
</section>
|
||||
<section xml:id="aggregateimagepropertiesisolationfilter">
|
||||
<section xml:id="aggregate-diskfilter">
|
||||
<title>AggregateDiskFilter</title>
|
||||
<para>
|
||||
Filters host by disk allocation with a per-aggregate
|
||||
<literal>disk_allocation_ratio</literal> value. If the
|
||||
per-aggregate value is not found, the value falls back to
|
||||
the global setting. If the host is in more than one
|
||||
aggregate and more than one value is found, the minimum
|
||||
value will be used. For information about how to use this
|
||||
filter, see <xref linkend="host-aggregates"/>. See also
|
||||
<xref linkend="diskfilter"/>.
|
||||
</para>
|
||||
</section>
|
||||
<section xml:id="aggregate-imagepropertiesisolationfilter">
|
||||
<title>AggregateImagePropertiesIsolation</title>
|
||||
<para>Matches properties defined in an image's metadata
|
||||
against those of aggregates to determine host
|
||||
@ -192,26 +221,38 @@ scheduler_available_filters=myfilter.MyFilter</programlisting>
|
||||
filter by using the following options in the
|
||||
<filename>nova.conf</filename> file:</para>
|
||||
<programlisting language="ini"># Considers only keys matching the given namespace (string).
|
||||
aggregate_image_properties_isolation_namespace=<None>
|
||||
aggregate_image_properties_isolation_namespace = <None>
|
||||
|
||||
# Separator used between the namespace and keys (string).
|
||||
aggregate_image_properties_isolation_separator=.</programlisting>
|
||||
aggregate_image_properties_isolation_separator = .</programlisting>
|
||||
</section>
|
||||
<section xml:id="aggregateinstanceextraspecsfilter">
|
||||
<section xml:id="aggregate-instanceextraspecsfilter">
|
||||
<title>AggregateInstanceExtraSpecsFilter</title>
|
||||
<para>Matches properties defined in extra specs for an
|
||||
instance type against admin-defined properties on a
|
||||
host aggregate. Works with specifications that are
|
||||
scoped with
|
||||
<literal>aggregate_instance_extra_specs</literal>.
|
||||
For backward compatibility, also works with non-scoped
|
||||
specifications; this action is highly discouraged
|
||||
because it conflicts with <link
|
||||
linkend="computecapabilitiesfilter">
|
||||
ComputeCapabilitiesFilter</link> filter when you
|
||||
enable both filters. For information about how to use
|
||||
this filter, see the <link linkend="host-aggregates"
|
||||
>host aggregates</link> section.</para>
|
||||
instance type against admin-defined properties on a host
|
||||
aggregate. Works with specifications that are scoped with
|
||||
<literal>aggregate_instance_extra_specs</literal>. For
|
||||
backward compatibility, also works with non-scoped
|
||||
specifications; this action is highly discouraged because
|
||||
it conflicts with <link
|
||||
linkend="computecapabilitiesfilter">
|
||||
ComputeCapabilitiesFilter</link> filter when you enable
|
||||
both filters. For information about how to use this
|
||||
filter, see the <link linkend="host-aggregates">host
|
||||
aggregates</link> section.</para>
|
||||
</section>
|
||||
<section xml:id="aggregate-ioopsfilter">
|
||||
<title>AggregateIoOpsFilter</title>
|
||||
<para>
|
||||
Filters host by disk allocation with a per-aggregate
|
||||
<literal>max_io_ops_per_host</literal> value. If the
|
||||
per-aggregate value is not found, the value falls back to
|
||||
the global setting. If the host is in more than one
|
||||
aggregate and more than one value is found, the minimum
|
||||
value will be used. For information about how to use this
|
||||
filter, see <xref linkend="host-aggregates"/>. See
|
||||
also <xref linkend="ioopsfilter"/>.
|
||||
</para>
|
||||
</section>
|
||||
<section xml:id="aggregate-multi-tenancy-isolation">
|
||||
<title>AggregateMultiTenancyIsolation</title>
|
||||
@ -225,14 +266,43 @@ aggregate_image_properties_isolation_separator=.</programlisting>
|
||||
with the metadata key, the host can create instances
|
||||
from all tenants.</para>
|
||||
</section>
|
||||
<section xml:id="aggregate-numinstances-filter">
|
||||
<title>AggregateNumInstancesFilter</title>
|
||||
<para>
|
||||
Filters host by number of instances with a per-aggregate
|
||||
<literal>max_instances_per_host</literal> value. If the
|
||||
per-aggregate value is not found, the value falls back to
|
||||
the global setting. If the host is in more than one
|
||||
aggregate and thus more than one value is found, the
|
||||
minimum value will be used. For information about how to
|
||||
use this filter, see <xref
|
||||
linkend="host-aggregates"/>. See also <xref
|
||||
linkend="numinstancesfilter"/>.
|
||||
</para>
|
||||
</section>
|
||||
<section xml:id="aggregate-ram-filter">
|
||||
<title>AggregateRamFilter</title>
|
||||
<para>Implements blueprint
|
||||
<literal>per-aggregate-resource-ratio</literal>.
|
||||
Supports per-aggregate
|
||||
<literal>ram_allocation_ratio</literal>. If
|
||||
per-aggregate value is not found, it falls back to the
|
||||
default setting.</para>
|
||||
<title>AggregateRamFilter</title>
|
||||
<para>
|
||||
Filters host by RAM allocation of instances with a per-aggregate
|
||||
<literal>ram_allocation_ratio</literal> value. If the
|
||||
per-aggregate value is not found, the value falls back to
|
||||
the global setting. If the host is in more than one
|
||||
aggregate and thus more than one value is found, the
|
||||
minimum value will be used. For information about how to
|
||||
use this filter, see <xref
|
||||
linkend="host-aggregates"/>. See also <xref
|
||||
linkend="ramfilter"/>.
|
||||
</para>
|
||||
</section>
|
||||
<section xml:id="aggregate-typeaffinityfilter">
|
||||
<title>AggregateTypeAffinityFilter</title>
|
||||
<para>
|
||||
Filters host by per-aggregate
|
||||
<literal>instance_type</literal> value. For information
|
||||
about how to use this filter, see <xref
|
||||
linkend="host-aggregates"/>. See also <xref
|
||||
linkend="typeaffinityfilter"/>.
|
||||
</para>
|
||||
</section>
|
||||
<section xml:id="allhostsfilter">
|
||||
<title>AllHostsFilter</title>
|
||||
@ -258,7 +328,7 @@ aggregate_image_properties_isolation_separator=.</programlisting>
|
||||
compatibility, also treats the extra specs key as the
|
||||
key to be matched if no namespace is present; this
|
||||
action is highly discouraged because it conflicts with
|
||||
<link linkend="aggregateinstanceextraspecsfilter">
|
||||
<link linkend="aggregate-instanceextraspecsfilter">
|
||||
AggregateInstanceExtraSpecsFilter</link> filter
|
||||
when you enable both filters.</para>
|
||||
</section>
|
||||
@ -278,15 +348,15 @@ aggregate_image_properties_isolation_separator=.</programlisting>
|
||||
<para>You can configure this filter to enable a fixed
|
||||
amount of vCPU overcommitment by using the
|
||||
<option>cpu_allocation_ratio</option>
|
||||
Configuration option in
|
||||
configuration option in
|
||||
<filename>nova.conf</filename>. The default setting
|
||||
is:</para>
|
||||
<programlisting language="ini">cpu_allocation_ratio=16.0</programlisting>
|
||||
<programlisting language="ini">cpu_allocation_ratio = 16.0</programlisting>
|
||||
<para>With this setting, if 8 vCPUs are on a node, the
|
||||
scheduler allows instances up to 128 vCPU to be run on
|
||||
that node.</para>
|
||||
<para>To disallow vCPU overcommitment set:</para>
|
||||
<programlisting language="ini">cpu_allocation_ratio=1.0</programlisting>
|
||||
<programlisting language="ini">cpu_allocation_ratio = 1.0</programlisting>
|
||||
<note>
|
||||
<para>The Compute API always returns the actual
|
||||
number of CPU cores available on a compute node
|
||||
@ -327,10 +397,10 @@ aggregate_image_properties_isolation_separator=.</programlisting>
|
||||
<para>You can configure this filter to enable a fixed
|
||||
amount of disk overcommitment by using the
|
||||
<literal>disk_allocation_ratio</literal>
|
||||
Configuration option in
|
||||
configuration option in
|
||||
<filename>nova.conf</filename>. The default setting
|
||||
is:</para>
|
||||
<programlisting language="ini">disk_allocation_ratio=1.0</programlisting>
|
||||
<programlisting language="ini">disk_allocation_ratio = 1.0</programlisting>
|
||||
<para>Adjusting this value to greater than 1.0 enables
|
||||
scheduling instances while over committing disk
|
||||
resources on the node. This might be desirable if you
|
||||
@ -432,8 +502,8 @@ aggregate_image_properties_isolation_separator=.</programlisting>
|
||||
using the <literal>isolated_hosts</literal> and
|
||||
<literal>isolated_images</literal> configuration
|
||||
options. For example:</para>
|
||||
<programlisting language="ini">isolated_hosts=server1,server2
|
||||
isolated_images=342b492c-128f-4a42-8d3a-c5088cf27d13,ebd267a6-ca86-4d6c-9a0e-bd132d6b7d09</programlisting>
|
||||
<programlisting language="ini">isolated_hosts = server1, server2
|
||||
isolated_images = 342b492c-128f-4a42-8d3a-c5088cf27d13, ebd267a6-ca86-4d6c-9a0e-bd132d6b7d09</programlisting>
|
||||
</section>
|
||||
<section xml:id="ioopsfilter">
|
||||
<title>IoOpsFilter</title>
|
||||
@ -483,19 +553,19 @@ isolated_images=342b492c-128f-4a42-8d3a-c5088cf27d13,ebd267a6-ca86-4d6c-9a0e-bd1
|
||||
</listitem>
|
||||
</itemizedlist>The filter supports the following variables:<itemizedlist>
|
||||
<listitem>
|
||||
<para>$free_ram_mb</para>
|
||||
<para><code>$free_ram_mb</code></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>$free_disk_mb</para>
|
||||
<para><code>$free_disk_mb</code></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>$total_usable_ram_mb</para>
|
||||
<para><code>$total_usable_ram_mb</code></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>$vcpus_total</para>
|
||||
<para><code>$vcpus_total</code></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>$vcpus_used</para>
|
||||
<para><code>$vcpus_used</code></para>
|
||||
</listitem>
|
||||
</itemizedlist>Using the <command>nova</command>
|
||||
command-line tool, use the <literal>--hint</literal>
|
||||
@ -506,6 +576,14 @@ isolated_images=342b492c-128f-4a42-8d3a-c5088cf27d13,ebd267a6-ca86-4d6c-9a0e-bd1
|
||||
<literal>os:scheduler_hints</literal> key:</para>
|
||||
<programlisting language="json"><xi:include href="../../common/samples/server-scheduler-hints2.json" parse="text"/></programlisting>
|
||||
</section>
|
||||
<section xml:id="metricsfilter">
|
||||
<title>MetricsFilter</title>
|
||||
<para>Filters hosts based on metrics
|
||||
<literal>weight_setting</literal>. Only hosts with the
|
||||
available metrics are passed so that the metrics weigher
|
||||
will not fail due to these hosts.
|
||||
</para>
|
||||
</section>
|
||||
<section xml:id="numinstancesfilter">
|
||||
<title>NumInstancesFilter</title>
|
||||
<para>
|
||||
@ -535,7 +613,7 @@ isolated_images=342b492c-128f-4a42-8d3a-c5088cf27d13,ebd267a6-ca86-4d6c-9a0e-bd1
|
||||
configuration option in
|
||||
<filename>nova.conf</filename>. The default setting
|
||||
is:</para>
|
||||
<programlisting language="ini">ram_allocation_ratio=1.5</programlisting>
|
||||
<programlisting language="ini">ram_allocation_ratio = 1.5</programlisting>
|
||||
<para>This setting enables 1.5 GB instances to run on
|
||||
any compute node with 1 GB of free RAM.</para>
|
||||
</section>
|
||||
@ -634,6 +712,23 @@ isolated_images=342b492c-128f-4a42-8d3a-c5088cf27d13,ebd267a6-ca86-4d6c-9a0e-bd1
|
||||
<literal>os:scheduler_hints</literal> key:</para>
|
||||
<programlisting language="json"><xi:include href="../../common/samples/server-scheduler-hints4.json" parse="text"/></programlisting>
|
||||
</section>
|
||||
<section xml:id="trustedfilter">
|
||||
<title>TrustedFilter</title>
|
||||
<para>
|
||||
Filters hosts based on their trust. Only passes hosts that
|
||||
meet the trust requirements specified in the instance
|
||||
properties.
|
||||
</para>
|
||||
</section>
|
||||
<section xml:id="typeaffinityfilter">
|
||||
<title>TypeAffinityFilter</title>
|
||||
<para>
|
||||
Dynamically limits hosts to one instance type. An instance
|
||||
can only be launched on a host, if no instance with
|
||||
different instances types are running on it, or if the
|
||||
host has no running instances at all.
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
<section xml:id="weights">
|
||||
<title>Weights</title>
|
||||
@ -759,14 +854,14 @@ isolated_images=342b492c-128f-4a42-8d3a-c5088cf27d13,ebd267a6-ca86-4d6c-9a0e-bd1
|
||||
</table>
|
||||
<para>For example:</para>
|
||||
<programlisting language="ini">[DEFAULT]
|
||||
scheduler_host_subset_size=1
|
||||
scheduler_weight_classes=nova.scheduler.weights.all_weighers
|
||||
ram_weight_multiplier=1.0
|
||||
scheduler_host_subset_size = 1
|
||||
scheduler_weight_classes = nova.scheduler.weights.all_weighers
|
||||
ram_weight_multiplier = 1.0
|
||||
[metrics]
|
||||
weight_multiplier=1.0
|
||||
weight_setting=name1=1.0, name2=-1.0
|
||||
required=false
|
||||
weight_of_unavailable=-10000.0</programlisting>
|
||||
weight_multiplier = 1.0
|
||||
weight_setting = name1=1.0, name2=-1.0
|
||||
required = false
|
||||
weight_of_unavailable = -10000.0</programlisting>
|
||||
<table rules="all" xml:id="table_cell-weighting-options">
|
||||
<caption>Cell weighting options</caption>
|
||||
<col width="10%" title="Section"/>
|
||||
@ -825,11 +920,11 @@ weight_of_unavailable=-10000.0</programlisting>
|
||||
</table>
|
||||
<para>For example:</para>
|
||||
<programlisting language="ini">[cells]
|
||||
scheduler_weight_classes=nova.cells.weights.all_weighers
|
||||
mute_weight_multiplier=-10.0
|
||||
mute_weight_value=1000.0
|
||||
ram_weight_multiplier=1.0
|
||||
offset_weight_multiplier=1.0</programlisting>
|
||||
scheduler_weight_classes = nova.cells.weights.all_weighers
|
||||
mute_weight_multiplier = -10.0
|
||||
mute_weight_value = 1000.0
|
||||
ram_weight_multiplier = 1.0
|
||||
offset_weight_multiplier = 1.0</programlisting>
|
||||
</section>
|
||||
<section xml:id="chance-scheduler">
|
||||
<title>Chance scheduler</title>
|
||||
|
Loading…
Reference in New Issue
Block a user