7.3. 计算调度程序过滤器
您可以在 Compute 环境文件中配置 NovaSchedulerDefaultFilters
参数,以指定在选择适当的 Compute 节点托管实例时必须应用计算调度程序的过滤器。默认配置应用以下过滤器:
-
AvailabilityZoneFilter
: Compute 节点必须位于请求的可用区中。 -
ComputeFilter
: Compute 节点可以服务请求。 -
ComputeCapabilitiesFilter
: Compute 节点满足类别额外规格。 -
ImagePropertiesFilter
: Compute 节点满足请求的镜像属性。 -
ServerGroupAntiAffinityFilter
: Compute 节点还没有在指定组中托管实例。 -
ServerGroupAffinityFilter
: Compute 节点已经托管指定组中的实例。
您可以添加和删除过滤器。下表描述了所有可用的过滤器。
Filter | 描述 |
---|---|
| 使用此过滤器将实例的镜像元数据与主机聚合元数据匹配。如果有任何主机聚合元数据与镜像的元数据匹配,则应候选属于该主机聚合的 Compute 节点,以便从该镜像启动实例。调度程序仅识别有效的镜像元数据属性。有关有效镜像元数据属性的详情,请参阅 镜像元数据属性。 |
| 使用此过滤器与带有主机聚合元数据的实例类别额外规格中定义的命名空间属性匹配。
您需要限制类型 如果有任何主机聚合元数据与类别额外规格的元数据匹配,则应候选属于该主机聚合的 Compute 节点,以便从该镜像启动实例。 |
|
使用此过滤器根据每个聚合 |
|
使用此过滤器将项目隔离主机聚合中的 Compute 节点可用性限制为指定的项目集合。只有使用 注意
该项目仍然可以将实例放在其他主机上。要限制这一点,请使用 |
|
使用此过滤器限制聚合中每个 Compute 节点的实例数量可以托管。您可以使用 |
|
如果没有设置类别元数据键,则使用此过滤器传递主机,或者类别聚合元数据值包含请求的类别的名称。类别元数据条目的值是一个字符串,可能包含单个类别名称或以逗号分隔的类别名称列表,如 |
| 使用此过滤器考虑所有可用的 Compute 节点进行实例调度。 注意 使用此过滤器不会禁用其他过滤器。 |
| 使用此过滤器在实例指定的可用区中的 Compute 节点上启动实例。 |
|
使用此过滤器匹配实例的类别额外规格中定义的命名空间属性,具体取决于 Compute 节点功能。您必须使用
使用 |
| 使用此过滤器传递所有运行并启用的 Compute 节点。此过滤器应始终存在。 |
|
使用此过滤器从一组特定实例启用在不同 Compute 节点上调度实例。要在启动实例时指定这些实例,请使用带有 $ openstack server create --image cedef40a-ed67-4d10-800e-17455edce175 \ --flavor 1 --hint different_host=a0cf03a5-d921-4877-bb5c-86d26cf818e1 \ --hint different_host=8c19174f-4220-44f0-824a-cd1eeef10287 server-1 |
| 使用此过滤器根据实例镜像中定义的以下属性过滤 Compute 节点:
支持实例中包含的指定镜像属性的计算节点将传递到调度程序。有关镜像属性的更多信息,请参阅 镜像元数据属性。 |
|
使用此过滤器仅调度隔离 Compute 节点上的实例。您还可以通过配置
要指定隔离的镜像和主机集合,请使用 parameter_defaults: ComputeExtraConfig: nova::config::nova_config: filter_scheduler/isolated_hosts: value: server1, server2 filter_scheduler/isolated_images: value: 342b492c-128f-4a42-8d3a-c5088cf27d13, ebd267a6-ca86-4d6c-9a0e-bd132d6b7d09 |
|
使用此过滤器过滤掉具有并发 I/O 操作的主机,其超过配置的 |
|
使用此过滤器将调度限制为使用 要使用此过滤器,请在 Compute 环境文件中添加以下配置: parameter_defaults: ComputeExtraConfig: nova::config::nova_config: DEFAULT/compute_monitors: value: 'cpu.virt_driver'
默认情况下,计算调度程序服务每 60 秒更新指标。为确保指标为最新版本,您可以增加使用 parameter_defaults: ComputeExtraConfig: nova::config::nova_config: DEFAULT/update_resources_interval: value: '2' |
|
使用此过滤器将具有 NUMA 拓扑的实例调度到支持 NUMA 的 Compute 节点上。使用类别 |
|
使用此过滤器过滤运行的实例超过 |
|
使用此过滤器将实例调度到具有实例请求的设备的 Compute 节点上,使用类别 如果要为请求它们的实例保留 PCI 设备(通常比较高且有限)的节点,请使用此过滤器。 |
|
使用此过滤器在与一组特定实例相同的 Compute 节点上启用实例调度。要在启动实例时指定这些实例,请使用 $ openstack server create --image cedef40a-ed67-4d10-800e-17455edce175 \ --flavor 1 --hint same_host=a0cf03a5-d921-4877-bb5c-86d26cf818e1 \ --hint same_host=8c19174f-4220-44f0-824a-cd1eeef10287 server-1 |
| 使用此过滤器将关联性组中的实例调度到同一 Compute 节点上。运行以下命令来创建服务器组: $ openstack server group create --policy affinity <group_name>
要在此组中启动实例,请使用带有 $ openstack server create --image <image> \ --flavor <flavor> \ --hint group=<group_uuid> <instance_name> |
| 使用此过滤器调度属于不同 Compute 节点上的反关联性服务器组的实例。运行以下命令来创建服务器组: $ openstack server group create --policy anti-affinity <group_name>
要在此组中启动实例,请使用带有 $ openstack server create --image <image> \ --flavor <flavor> \ --hint group=<group_uuid> <instance_name> |
|
使用此过滤器将实例调度到具有特定 IP 子网范围的 Compute 节点上。要指定所需的范围,在启动实例时使用 $ openstack server create --image <image> \ --flavor <flavor> \ --hint build_near_host_ip=<ip_address> \ --hint cidr=<subnet_mask> <instance_name> |