28.6. “No Valid Host Found”错误故障排除
在一些情况下,/var/log/nova/nova-conductor.log
包括了以下错误:
NoValidHost: No valid host was found. There are not enough hosts available.
当计算调度程序找不到适合启动新实例的裸机节点时,会发生此错误。这通常意味着,Compute 服务期望找到的资源与裸机恢复服务向 Compute 建议的资源之间存在不匹配。要检查是否存在不匹配的错误,请完成以下步骤:
步骤
Source
stackrc
文件:$ source ~/stackrc
检查是否在节点上成功执行内省。如果内省失败,则检查每个节点是否包含所需的 ironic 节点属性:
(undercloud) $ openstack baremetal node show [NODE UUID]
检查
properties
JSON 项中的cpus
、cpu_arch
、memory_mb
和local_gb
都有有效的值。确保映射到节点的 Compute 类型不超过所需节点数的节点属性:
(undercloud) $ openstack flavor show [FLAVOR NAME]
-
运行
openstack baremetal node list
命令以确保有足够的节点处于可用状态。处于manageable
状态的节点通常表示内省失败。 运行
openstack baremetal node list
命令并确保节点不处于维护模式。如果节点自动更改为维护模式,则可能的原因是电源管理凭据不正确。检查电源管理凭据,然后移除维护模式:(undercloud) $ openstack baremetal node maintenance unset [NODE UUID]
-
如果您使用的是自动配置集标记,则检查是否有足够的节点对应于每个类别和配置集。在节点上运行
openstack baremetal node show
命令并检查properties
字段中的capabilities
密钥。例如,标记为 Compute 角色的节点包含profile:compute
值这样的信息。 内省后,必须等待节点信息从 Bare Metal 传播到 Compute。但是,如果您手工进行了一些操作,节点可能会短时间内对 Compute service (nova) 不可用。使用以下命令检查系统中的总体资源:
(undercloud) $ openstack hypervisor stats show