Openstack Compute无法根据实例的种类和数量运行实例

问题描述

我正在尝试创建各种实例,而Compute无法生成其中的一些实例。

我的实例具有以下特征:

名称:ThirdInstance 从映像创建:CentOS-7-x86_64 味道:m1.medium(2个Vcpu,4GB RAM,40GB磁盘)

我还有两个其他实例正在运行。除非使用了m1.small(1Vcpu,2GB RAM,20GB磁盘),否则无法生成这些实例。偏离该风格和实例生成失败。

不幸的是,无论使用哪种口味,我的ThirdInstance都无法生成。我尝试用m1.small创建它,但始终失败。

我查看了Nova日志,并注意到当我尝试创建该实例时,始终在nova-conductor.log文件中收到以下消息:

2020-08-29 13:21:09.637 98391 ERROR nova.conductor.manager
2020-08-29 13:21:09.637 98391 ERROR nova.conductor.manager
2020-08-29 13:21:09.890 98391 WARNING nova.scheduler.utils [req-30539015-22f1-4d46-b8b7-63f9c679eed1 4c4c7de6dd134250972958ce260530f2 166dc91ccec24f21963c71a437380ee9 - default default] Failed to compute_task_build_instances: No valid host was found.
Traceback (most recent call last):

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

  File "/usr/lib/python3.6/site-packages/nova/scheduler/manager.py",line 200,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.
2020-08-29 13:21:09.891 98391 WARNING nova.scheduler.utils [req-30539015-22f1-4d46-b8b7-63f9c679eed1 4c4c7de6dd134250972958ce260530f2 166dc91ccec24f21963c71a437380ee9 - default default] [instance: fe54feaf-ecb6-4725-97e9-7d208066ddb0] Setting instance to ERROR state.: nova.exception_Remote.NovalidHost_Remote: No valid host was found.

在这里想念什么?是什么原因导致当我尝试使用m1.small以外的风味时导致这些No Host Found故障,以及为什么无论使用哪种风味,第三个实例都无法生成?如何(如果可能)使这些实例正常运行?

注意:我正在使用从CentOS 8上的Packstack创建的安装。我的机器是2核,具有32G的RAM和3 TB的磁盘空间。 Openstack版本是Ussuri。

解决方法

在我看来,您没有足够的资源,尤其是CPU内核。您已经写到,您的节点只有两个核心,并且已经生成了2个具有较小风味的VM,每个虚拟机需要1个核心。当找不到具有足够资源以供所选风味使用的计算主机时,也会出现此No valid host was found错误。

您可以自己检查:

运行openstack hypervisor list列出您的虚拟机监控程序,然后openstack hypervisor show <ID>列出您的虚拟机监控程序ID。在输出中,找到vcpusvcpus_usedvcpus是所选计算主机上cpu内核的最大可用数量。根据问题的信息,我认为这两个值都是2,这将向您表明,您没有足够的资源用于第三个VM。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...