You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenStack实例启用HugePages配置报错:NUMA拓扑不匹配求助

OpenStack + Libvirt HugePages配置报错排查

问题概述

已完成以下OpenStack云实例HugePages配置步骤,但创建实例时触发报错:Requested instance NUMA topology cannot fit the given host NUMA topology.

配置步骤:

  • GRUB配置:修改/etc/default/grub添加HugePages内核参数并更新GRUB
  • 禁用透明大页:完成临时及永久禁用transparent_hugepage操作
  • 检查NUMA CPU信息:通过numactl --hardware确认主机NUMA节点情况
  • 设置并检查HugePages:配置全局大页数量,通过meminfo验证
  • 按NUMA节点配置大页:分别设置node0和node1的2MB大页数量
  • 挂载hugetlbfs:挂载至/dev/hugepages2M/
  • 计算节点qemu.conf配置:指定hugetlbfs挂载点并重启libvirtd
  • 控制节点nova.conf配置:启用NUMATopologyFilter等调度过滤器并重启nova-scheduler
  • 计算节点nova.conf配置:启用NUMATopologyFilter并重启nova-compute
  • 创建OpenStack规格(flavor):定义含2MB大页、NUMA节点属性的flavor,后调整为1个NUMA节点
  • 创建云服务器:尝试两种方式创建实例均报错

排查方向与修正建议

1. 验证NUMA节点大页资源与实例规格匹配性

  • 查看各NUMA节点的空闲2MB大页数量:
    grep HugePages_Free /sys/devices/system/node/node*/meminfo
    
  • 确保实例flavor所需的大页总量(如1GB内存对应512个2MB大页)不超过单个NUMA节点的空闲大页数。若flavor指定1个NUMA节点,必须存在至少一个NUMA节点的空闲大页满足实例需求。

2. 检查Flavor的NUMA属性配置正确性

  • 查看flavor的扩展属性:
    openstack flavor show <flavor-id> -c extra_specs
    
  • 确认以下属性配置正确:
    • hw:numa_nodes=1:明确指定实例使用1个NUMA节点
    • hw:mem_page_size=2048(或large):绑定2MB大页
    • 若实例配置多vCPU,需确保hw:numa_cpus.0指定的CPU数量不超过对应NUMA节点的空闲CPU核心数

3. 核对计算节点Nova配置的资源预留与绑定

  • 检查计算节点nova.conf的reserved_host_memory_mb配置,确保预留内存未占用NUMA节点的大页内存区域
  • 确认cpu_dedicated_set或cpu_shared_set的CPU范围与对应NUMA节点的CPU核心一致,避免实例请求的CPU无法落在指定NUMA节点内

4. 验证Hugetlbfs挂载与Libvirt配置一致性

  • 检查hugetlbfs挂载状态:
    mount | grep hugetlbfs
    
    确认/dev/hugepages2M/的挂载大小与该节点配置的2MB大页总量匹配(总大小=大页数×2MB)
  • 检查qemu.conf配置:
    grep hugetlbfs_mount /etc/libvirt/qemu.conf
    
    确保hugetlbfs_mount = "/dev/hugepages2M/"配置正确,且libvirtd服务已重启生效

5. 完善Nova调度器过滤器配置

  • 控制节点nova.conf的enabled_filters需包含必要过滤器,除NUMATopologyFilter外,还需确保CoreFilter、RamFilter、AggregateInstanceExtraSpecsFilter(若使用主机聚合)等已启用
  • 确认scheduler_default_filters参数包含上述过滤器,保证调度逻辑完整

6. 确认大页配置持久化生效

  • 重启主机后验证大页配置:
    cat /proc/meminfo | grep HugePages
    cat /sys/devices/system/node/node*/hugepages/hugepages-2048kB/nr_hugepages
    
  • 检查透明大页禁用状态:
    cat /sys/kernel/mm/transparent_hugepage/enabled
    
    输出应为always madvise [never],确保永久禁用生效

内容的提问来源于stack exchange,提问作者Jim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 09:05:14