我们在实践过程也遇到这样的问题,但是由于需求局限,必须使用类似“scheduler_use_baremetal_filters=False”配置以支持虚拟机调度的过滤问题。
我们使用aggregate对每一类的nova compute自定义一个filter,scheduler添加一个“aggregate_instance_extra_specs”filter,这样就要求每一种flavor的metadata都必须包含对应调度的filter(本质上虚机和裸金属的flavor是不能共用的,所以做明确标记是不影响的)。
收起注意:如下是官方给出的用于scheduler的配置,不适用于我们nova compute和ironic共存的环境。
# scheduler_host_manager=ironic_host_manager #继承自host_manager,为ironic compute维护了更简单的NodeState和instance_info。用host_manager也行,默认为host_manager。
# scheduler_use_baremetal_filters=True # 默认exact_*_filter不适用于nova compute。为了scheduler同时支持nova compute和ironic compute,需要nova scheduler禁用此配置,且ironic compute设置*_ratio=1.0。默认为False,已禁用。
# scheduler_host_subset_size=9999999 #用于scheduler更均匀调度出host,默认为1,已经可以满足需求
# scheduler_tracks_instance_changes=False #用于跟踪维护instance info。为了scheduler同时支持nova compute,需要开启此配置。默认为True,已开启。
收起