openstack nova 调整大小失败:nova.exception.NoValidHost:找不到有效的主机

openstack nova resize fail : nova.exception.NoValidHost: No valid host was found

我在 VMware 中有一个安装了 openstack 的虚拟机。 Openstack 有两个实例(2GB,1VCPU 和 4GB,4VCPU)。我使用 nova resize 将其中一个具有 4GB、4VCPU 的实例的大小更改为 8GB,并且它起作用了。现在我需要至少 16 GB 的 RAM 和 6 个 VCPU,但是调整大小命令完成得太早(几秒钟内)而没有产生错误并且 RAM 大小没有升级。

终于在nova中发现了如下错误-conductor.log

nova.exception.NoValidHost: No valid host was found. 
: nova.exception_Remote.NoValidHost_Remote: No valid host was found. 
2022-05-09 10:57:11.622 56 WARNING nova.scheduler.utils [req-31c98f42-d465-4773-9b4a-3474aef85a1c 10f23c55b2ce420aa1e757062f3874f8 c458f62c51d249ef9bf2b9f11c4ddb98 - default default] [instance: 7b0e27e4-8c78-4dc5-bf38-3cfc02d356d8] Setting instance to ACTIVE state.: nova.exception_Remote.NoValidHost_Remote: No valid host was found. 
2022-05-09 11:01:46.757 55 WARNING nova.scheduler.utils [req-cfa535cc-c19f-4b75-8fde-224d8f3610d5 10f23c55b2ce420aa1e757062f3874f8 c458f62c51d249ef9bf2b9f11c4ddb98 - default default] Failed to compute_task_migrate_server: No valid host was found. 
Traceback (most recent call last):

  File "/var/lib/kolla/venv/lib/python3.8/site-packages/oslo_messaging/rpc/server.py", line 241, in inner
return func(*args, **kwargs)

  File "/var/lib/kolla/venv/lib/python3.8/site-packages/nova/scheduler/manager.py", line 209, in select_destinations
raise exception.NoValidHost(reason="")

nova.exception.NoValidHost: No valid host was found. 
: nova.exception_Remote.NoValidHost_Remote: No valid host was found. 
2022-05-09 11:01:46.759 55 WARNING nova.scheduler.utils [req-cfa535cc-c19f-4b75-8fde-224d8f3610d5 10f23c55b2ce420aa1e757062f3874f8 c458f62c51d249ef9bf2b9f11c4ddb98 - default default] [instance: 7b0e27e4-8c78-4dc5-bf38-3cfc02d356d8] Setting instance to ACTIVE state.: nova.exception_Remote.NoValidHost_Remote: No valid host was found.

我在一些文章中读到更改 ram_allocation_ratiocpu_allocation_ratio 会起作用,但我不知道在我的情况下应该如何更改它。我部署 openstack 的 VM 有 25 GB Ram and 16 processor cores,而主机有 32 GB RAM and 32 logical processors (16 cores)。我怎样才能修改这些变量,或者我还遗漏了什么?

编辑: 我能够通过分析 openstack hypervisor stats show 的输出来解决问题。我用来扩展大小的方法是需要更多的磁盘 space (80G),然后是管理程序统计信息中显示的磁盘 (47G)。通过扩展 VM 和目录 /var/lib 的大小(因为我使用的是 docker 样式部署),问题得到解决。

你在nova.conf中设置了reserved_host_memory_mb了吗?

您部署的 openstack 的版本是什么?

default ram_allocation_ratio is 1.5, and you could set it to 2 or more, then check whether the error No valid host was found. fixed or not. This is the Sample Configuration File.

通过 openstack hypervisor stats show 获取您的管理程序统计信息详细信息。确保系统资源充足,可能你的环境有一些limit比如ports, disk或其他人。

更新供他人参考:

根本原因是创建实例的flavor有磁盘容量80G,但只得到free_disk_gb 47hypervisor stats。并且 OP 通过扩展主机(管理程序)的磁盘容量来修复它。