一键登录 更安全快捷
邮箱登录
我已阅读并接受 用户协议 隐私政策

Nova调度过滤器完整介绍:CoreFilter、RamFilter(MemoryFilter)资源过滤机制

Nova默认调度器FilterScheduler依靠多层过滤器层层剔除不满足条件的计算节点,核心资源过滤器为CoreFilter(CPU核数校验)、RamFilter(即MemoryFilter内存校验),同时配套磁盘、可用域、服务状态、主机聚合、亲和性、硬件特性等多类过滤器,只有全部过滤器校验通过的节点才会进入权重打分阶段,最终选出最优宿主机。

核心结论

Nova调度核心资源过滤器为CoreFilter、RamFilter(MemoryFilter):CoreFilter校验节点剩余vCPU是否满足虚拟机规格,RamFilter校验可用内存;二者配合DiskFilter完成基础资源门槛过滤,同时系统提供可用域、服务状态、镜像属性、主机聚合、亲和反亲和等配套过滤器,可在nova.conf自定义启用过滤规则。

有VMware全系列产品官方资源和定制版资源需求的可以移步:

一、核心资源类过滤器(CoreFilter/RamFilter/DiskFilter)

1. CoreFilter CPU过滤器
校验计算节点剩余可分配vCPU,剔除vCPU资源不足的主机;支持CPU超配,由cpu_allocation_ratio控制超配比(默认16.0);默认调度链未启用,需手动加入scheduler_default_filters配置项。

2. RamFilter(MemoryFilter)内存过滤器
校验节点剩余可用内存,是默认启用过滤器;内存超配参数ram_allocation_ratio默认1.5,过滤逻辑不允许节点内存分配超限,无法满足flavor内存需求的节点直接淘汰。

3. DiskFilter磁盘过滤器
校验本地存储可用空间,满足虚拟机系统盘需求;磁盘默认不开启超配disk_allocation_ratio=1.0,多用于本地存储场景,Cinder共享存储场景过滤逻辑弱化。

配套聚合资源过滤器
AggregateCoreFilter/AggregateRamFilter/AggregateDiskFilter:基于主机聚合单独配置超配比,优先级高于全局nova.conf参数,用于分区资源隔离调度。

二、默认内置基础过滤器(nova默认调度链启用)

1. RetryFilter
过滤掉上一轮调度失败的节点,避免重复分配故障主机,规避调度死循环。

2. AvailabilityZoneFilter
按创建实例指定的可用域筛选,仅保留同AZ内计算节点,实现机房/机架物理隔离容灾。

3. ComputeFilter
校验目标节点nova-compute服务正常在线,离线、维护模式节点直接过滤。

4. ComputeCapabilitiesFilter
匹配flavor扩展规格extra_specs,筛选CPU架构、虚拟化类型、硬件加速、NUMA拓扑等特性匹配节点。

5. ImagePropertiesFilter
读取镜像元数据,过滤不兼容Hypervisor、CPU架构、UEFI/BIOS启动模式的主机。

6. ServerGroupAffinityFilter
亲和规则:同一服务器组虚拟机调度至相同计算节点,适合主备同机低延迟场景。

7. ServerGroupAntiAffinityFilter
反亲和规则:同一服务器组虚拟机分散到不同宿主机,规避单节点故障批量宕机风险。

三、主机聚合隔离类过滤器

1. AggregateInstanceExtraSpecsFilter:主机聚合元数据匹配flavor扩展属性,实现业务分区资源隔离;
2. AggregateNumInstancesFilter:限制单聚合内单节点最大虚拟机数量,避免单节点负载过高;
3. AggregateTypeAffinityFilter:限定特定规格flavor仅能部署到指定聚合分组,区分高低配资源池。

四、硬件与特殊场景过滤器

1. NUMATopologyFilter
匹配flavor NUMA拓扑配置,筛选CPU内存NUMA节点对齐的宿主机,提升高性能虚拟机IO性能。

2. PciPassthroughFilter
校验节点PCI直通硬件(GPU、网卡、FPGA)剩余资源,匹配虚拟机直通设备需求。

3. IsolatedHostsFilter
隔离专用镜像与专用宿主机,指定镜像仅允许调度到隔离节点,保障核心业务独占硬件资源。

4. ExactCore/ExactRam/ExactDiskFilter
精准资源匹配过滤器,仅剩余资源刚好等于虚拟机规格时放行,多用于资源独占裸金属虚拟机。

五、调度过滤器执行流程与配置说明

1. 调度顺序:过滤器按scheduler_default_filters列表顺序依次校验,任意一个过滤器不通过直接淘汰节点;
2. 配置文件/etc/nova/nova.conf:scheduler_default_filters定义启用过滤器列表,默认不含CoreFilter,需手动追加;
3. 过滤完成后进入权重Weight打分环节,在剩余可用节点中选出负载最优宿主机;
4. 支持自定义开发过滤器,注册至scheduler_available_filters扩展调度规则。

六、运维高频误区避坑

1. 误区:Nova默认调度自带CoreFilter CPU过滤
纠正:默认过滤器列表仅含RamFilter,CoreFilter需手动添加至配置才能生效,易出现CPU超配过载问题。

2. 误区:RamFilter内存校验完全基于物理真实内存
纠正:计算时乘以ram_allocation_ratio超配系数,内存超配过高会引发主机内存swap卡顿。

3. 误区:DiskFilter对Cinder云硬盘生效
纠正:DiskFilter仅校验宿主机本地磁盘,挂载外部块存储时该过滤器不做资源限制。

4. 误区:亲和/反亲和过滤器和Core/Ram资源过滤器互斥
纠正:多层过滤器串行执行,先校验资源门槛,再校验分组亲和规则,双重约束。

5. 误区:主机聚合过滤器会覆盖全局资源超配参数
纠正:聚合配置优先级高于全局,同一主机归属多个聚合时取最小超配比保障稳定。

全文总结

Nova调度过滤器体系中,CoreFilter负责vCPU资源校验,RamFilter(MemoryFilter)负责内存资源校验,二者是虚拟机资源准入的核心过滤组件;搭配Disk磁盘过滤、可用域、服务状态、镜像属性、主机聚合、亲和反亲和、硬件直通等各类过滤器,分层筛选符合条件的计算节点,可通过nova.conf配置自定义过滤规则,是OpenStack云平台虚拟机资源均衡调度的底层基础。

用户留言 User Comments