diff --git a/doc/common/section_cli_nova_host_aggregates.xml b/doc/common/section_cli_nova_host_aggregates.xml index 4d78398d1b..1d466989eb 100644 --- a/doc/common/section_cli_nova_host_aggregates.xml +++ b/doc/common/section_cli_nova_host_aggregates.xml @@ -163,7 +163,7 @@ >nova-scheduler service to enable host aggregates filtering, as well as the other filters that are typically - enabled:scheduler_default_filters=AggregateInstanceExtraSpecsFilter,AvailabilityZoneFilter,RamFilter,ComputeFilter + enabled:scheduler_default_filters=AggregateInstanceExtraSpecsFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter Example: Specify compute hosts with SSDs diff --git a/doc/config-reference/compute/section_compute-scheduler.xml b/doc/config-reference/compute/section_compute-scheduler.xml index bab7ace354..9e0cae9887 100644 --- a/doc/config-reference/compute/section_compute-scheduler.xml +++ b/doc/config-reference/compute/section_compute-scheduler.xml @@ -23,10 +23,10 @@ options in the /etc/nova/nova.conf file: 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 +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 By default, the scheduler_driver 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 Satisfy any architecture, hypervisor type, or virtual machine mode properties specified on the - instance's image properties. + instance's image properties (ImagePropertiesFilter). + + + Are on a different host than other instances of a group + (if requested) + (ServerGroupAntiAffinityFilter). + + + + Are in a set of group hosts (if requested) + (ServerGroupAffinityFilter). + The scheduler caches its list of available hosts; use the option to @@ -129,26 +140,44 @@ scheduler_default_filters=RetryFilter,AvailabilityZoneFilter,RamFilter,ComputeFi use both the built-in filters and your custom filter, your nova.conf file would contain: - scheduler_available_filters=nova.scheduler.filters.all_filters -scheduler_available_filters=myfilter.MyFilter + scheduler_available_filters = nova.scheduler.filters.all_filters +scheduler_available_filters = myfilter.MyFilter The scheduler_default_filters configuration option in nova.conf defines the list of filters that are applied by the nova-scheduler service. The default filters are: - scheduler_default_filters=RetryFilter,AvailabilityZoneFilter,RamFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter + scheduler_default_filters = RetryFilter, AvailabilityZoneFilter, RamFilter, ComputeFilter, ComputeCapabilitiesFilter, ImagePropertiesFilter, ServerGroupAntiAffinityFilter, ServerGroupAffinityFilter The following sections describe the available filters. -
+
AggregateCoreFilter - Implements blueprint per-aggregate-resource-ratio. - AggregateCoreFilter supports per-aggregate - cpu_allocation_ratio. If the - per-aggregate value is not found, the value falls back - to the global setting. + + Filters host by CPU core numbers with a per-aggregate + cpu_allocation_ratio 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 . See + also . +
-
+
+ AggregateDiskFilter + + Filters host by disk allocation with a per-aggregate + disk_allocation_ratio 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 . See also + . + +
+
AggregateImagePropertiesIsolation Matches properties defined in an image's metadata against those of aggregates to determine host @@ -192,26 +221,38 @@ scheduler_available_filters=myfilter.MyFilter filter by using the following options in the nova.conf file: # 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=. +aggregate_image_properties_isolation_separator = .
-
+
AggregateInstanceExtraSpecsFilter 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 - aggregate_instance_extra_specs. - For backward compatibility, also works with non-scoped - specifications; this action is highly discouraged - because it conflicts with - ComputeCapabilitiesFilter filter when you - enable both filters. For information about how to use - this filter, see the host aggregates section. + instance type against admin-defined properties on a host + aggregate. Works with specifications that are scoped with + aggregate_instance_extra_specs. For + backward compatibility, also works with non-scoped + specifications; this action is highly discouraged because + it conflicts with + ComputeCapabilitiesFilter filter when you enable + both filters. For information about how to use this + filter, see the host + aggregates section. +
+
+ AggregateIoOpsFilter + + Filters host by disk allocation with a per-aggregate + max_io_ops_per_host 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 . See + also . +
AggregateMultiTenancyIsolation @@ -225,14 +266,43 @@ aggregate_image_properties_isolation_separator=. with the metadata key, the host can create instances from all tenants.
+
+ AggregateNumInstancesFilter + + Filters host by number of instances with a per-aggregate + max_instances_per_host 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 . See also . + +
- AggregateRamFilter - Implements blueprint - per-aggregate-resource-ratio. - Supports per-aggregate - ram_allocation_ratio. If - per-aggregate value is not found, it falls back to the - default setting. + AggregateRamFilter + + Filters host by RAM allocation of instances with a per-aggregate + ram_allocation_ratio 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 . See also . + +
+
+ AggregateTypeAffinityFilter + + Filters host by per-aggregate + instance_type value. For information + about how to use this filter, see . See also . +
AllHostsFilter @@ -258,7 +328,7 @@ aggregate_image_properties_isolation_separator=. 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 - + AggregateInstanceExtraSpecsFilter filter when you enable both filters.
@@ -278,15 +348,15 @@ aggregate_image_properties_isolation_separator=. You can configure this filter to enable a fixed amount of vCPU overcommitment by using the - Configuration option in + configuration option in nova.conf. The default setting is: - cpu_allocation_ratio=16.0 + cpu_allocation_ratio = 16.0 With this setting, if 8 vCPUs are on a node, the scheduler allows instances up to 128 vCPU to be run on that node. To disallow vCPU overcommitment set: - cpu_allocation_ratio=1.0 + cpu_allocation_ratio = 1.0 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=. You can configure this filter to enable a fixed amount of disk overcommitment by using the disk_allocation_ratio - Configuration option in + configuration option in nova.conf. The default setting is: - disk_allocation_ratio=1.0 + disk_allocation_ratio = 1.0 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=. using the isolated_hosts and isolated_images configuration options. For example: - isolated_hosts=server1,server2 -isolated_images=342b492c-128f-4a42-8d3a-c5088cf27d13,ebd267a6-ca86-4d6c-9a0e-bd132d6b7d09 + isolated_hosts = server1, server2 +isolated_images = 342b492c-128f-4a42-8d3a-c5088cf27d13, ebd267a6-ca86-4d6c-9a0e-bd132d6b7d09
IoOpsFilter @@ -483,19 +553,19 @@ isolated_images=342b492c-128f-4a42-8d3a-c5088cf27d13,ebd267a6-ca86-4d6c-9a0e-bd1 The filter supports the following variables: - $free_ram_mb + $free_ram_mb - $free_disk_mb + $free_disk_mb - $total_usable_ram_mb + $total_usable_ram_mb - $vcpus_total + $vcpus_total - $vcpus_used + $vcpus_used Using the nova command-line tool, use the --hint @@ -506,6 +576,14 @@ isolated_images=342b492c-128f-4a42-8d3a-c5088cf27d13,ebd267a6-ca86-4d6c-9a0e-bd1 os:scheduler_hints key:
+
+ MetricsFilter + Filters hosts based on metrics + weight_setting. Only hosts with the + available metrics are passed so that the metrics weigher + will not fail due to these hosts. + +
NumInstancesFilter @@ -535,7 +613,7 @@ isolated_images=342b492c-128f-4a42-8d3a-c5088cf27d13,ebd267a6-ca86-4d6c-9a0e-bd1 configuration option in nova.conf. The default setting is: - ram_allocation_ratio=1.5 + ram_allocation_ratio = 1.5 This setting enables 1.5 GB instances to run on any compute node with 1 GB of free RAM.
@@ -634,6 +712,23 @@ isolated_images=342b492c-128f-4a42-8d3a-c5088cf27d13,ebd267a6-ca86-4d6c-9a0e-bd1 os:scheduler_hints key:
+
+ TrustedFilter + + Filters hosts based on their trust. Only passes hosts that + meet the trust requirements specified in the instance + properties. + +
+
+ TypeAffinityFilter + + 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. + +
Weights @@ -759,14 +854,14 @@ isolated_images=342b492c-128f-4a42-8d3a-c5088cf27d13,ebd267a6-ca86-4d6c-9a0e-bd1 For example: [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 +weight_multiplier = 1.0 +weight_setting = name1=1.0, name2=-1.0 +required = false +weight_of_unavailable = -10000.0 @@ -825,11 +920,11 @@ weight_of_unavailable=-10000.0
Cell weighting options
For example: [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 +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
Chance scheduler