26.7. “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 需要一段时间。但是,如果您手工进行了一些操作,节点可能会短时间内对 nova 不可用。使用以下命令检查系统中的总体资源:
(undercloud) $ openstack hypervisor stats show