Nova调度过滤器完整介绍:CoreFilter、RamFilter(MemoryFilter)资源过滤机制 Nova默认调度器FilterScheduler依靠多层过滤器层层剔除不满足条件的计算节点核心资源过滤器为CoreFilterCPU核数校验、RamFilter即MemoryFilter内存校验同时配套磁盘、可用域、服务状态、主机聚合、亲和性、硬件特性等多类过滤器只有全部过滤器校验通过的节点才会进入权重打分阶段最终选出最优宿主机。核心结论Nova调度核心资源过滤器为CoreFilter、RamFilter(MemoryFilter)CoreFilter校验节点剩余vCPU是否满足虚拟机规格RamFilter校验可用内存二者配合DiskFilter完成基础资源门槛过滤同时系统提供可用域、服务状态、镜像属性、主机聚合、亲和反亲和等配套过滤器可在nova.conf自定义启用过滤规则。一、核心资源类过滤器CoreFilter/RamFilter/DiskFilter1. CoreFilter CPU过滤器校验计算节点剩余可分配vCPU剔除vCPU资源不足的主机支持CPU超配由cpu_allocation_ratio控制超配比默认16.0默认调度链未启用需手动加入scheduler_default_filters配置项。2. RamFilterMemoryFilter内存过滤器校验节点剩余可用内存是默认启用过滤器内存超配参数ram_allocation_ratio默认1.5过滤逻辑不允许节点内存分配超限无法满足flavor内存需求的节点直接淘汰。3. DiskFilter磁盘过滤器校验本地存储可用空间满足虚拟机系统盘需求磁盘默认不开启超配disk_allocation_ratio1.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.confscheduler_default_filters定义启用过滤器列表默认不含CoreFilter需手动追加3. 过滤完成后进入权重Weight打分环节在剩余可用节点中选出负载最优宿主机4. 支持自定义开发过滤器注册至scheduler_available_filters扩展调度规则。六、运维高频误区避坑1.误区Nova默认调度自带CoreFilter CPU过滤纠正默认过滤器列表仅含RamFilterCoreFilter需手动添加至配置才能生效易出现CPU超配过载问题。2.误区RamFilter内存校验完全基于物理真实内存纠正计算时乘以ram_allocation_ratio超配系数内存超配过高会引发主机内存swap卡顿。3.误区DiskFilter对Cinder云硬盘生效纠正DiskFilter仅校验宿主机本地磁盘挂载外部块存储时该过滤器不做资源限制。4.误区亲和/反亲和过滤器和Core/Ram资源过滤器互斥纠正多层过滤器串行执行先校验资源门槛再校验分组亲和规则双重约束。5.误区主机聚合过滤器会覆盖全局资源超配参数纠正聚合配置优先级高于全局同一主机归属多个聚合时取最小超配比保障稳定。全文总结Nova调度过滤器体系中CoreFilter负责vCPU资源校验RamFilterMemoryFilter负责内存资源校验二者是虚拟机资源准入的核心过滤组件搭配Disk磁盘过滤、可用域、服务状态、镜像属性、主机聚合、亲和反亲和、硬件直通等各类过滤器分层筛选符合条件的计算节点可通过nova.conf配置自定义过滤规则是OpenStack云平台虚拟机资源均衡调度的底层基础。