在一些情况下,/var/log/nova/nova-conductor.log 包括了以下错误:
[mw_shl_code=bash,true]NoValidHost: No valid host was found. There are not enough hosts available.
[/mw_shl_code]
这意味着 Nova Scheduler 无法找到合适的裸机节点来引导新的实例。造成这个问题的原因通常是 Nova 所期望的资源和 Ironic 通知给 Nova 的资源不匹配。检查以下内容:
确保內省可以成功完成。否则,检查每个节点都包括了需要的 Ironic 节点属性。对于每个节点:
[mw_shl_code=bash,true]$ ironic node-show [NODE UUID]
[/mw_shl_code]
检查 properties JSON 项中的 cpus、cpu_arch、memory_mb 和 local_gb 都有有效的值。
根据 Ironic 节点属性检查使用的 Nova flavor 没有超过特定数量:
[mw_shl_code=bash,true]$ nova flavor-show [FLAVOR NAME]
[/mw_shl_code]
根据 ironic node-list 检查有足够状态为 available 的节点。节点的状态为 manageable 通常意味着內省操作失败。
使用 ironic node-list 检查没有处于维护模式的节点。当一个节点被自动变为维护模式时,通常意味着不正确的电源管理凭证。检查它们并删除维护模式:
[mw_shl_code=bash,true]$ ironic node-set-maintenance [NODE UUID] off
[/mw_shl_code]
如果您使用 AHC 工具程序来自动标记节点,请根据每个 flavor 和档案来检查是否有足够的相关节点。检查 ironic node-show 输出中的 properties 项的 capabilities 值。例如,一个标记为 Compute 角色的节点应该包括 profile:compute。
在进行完內省操作后,从 Ironic 为 Nova 生成节点信息可能会需要一些时间来完成。director 的工具程序通常会把这个时间考虑进去。但是,如果您手工进行了一些操作,节点可能会在一个短时间内对 Nova 无效。使用以下命令检查您的系统中的总资源:
[mw_shl_code=bash,true]$ nova hypervisor-stats
[/mw_shl_code]
|
|