修复Openstack Nova错误NoValidHost:找不到有效的主机。没有足够的主机。

时间:2020-02-23 14:30:32  来源:igfitidea点击:

我试图部署Openstack在VirtualBox中进行测试,但出现错误NoValidHost:未找到有效的主机。没有足够的主机。
尝试使用nova boot命令运行实例时: NoValidHost: No valid host was found.

我在将VDI转换为Qcow2并尝试在Nova上启动它之后完成了

如何将VirtualBox磁盘镜像(VDI)和img转换为Qcow2格式

当我们在VirtualBox中使用qemu作为虚拟机监控程序而不是KVM加速来运行Openstack Compute服务(Nova)时,通常会发生这种情况。

QEMU

从Compute服务的角度来看,QEMU管理程序与KVM管理程序非常相似。两者均通过libvirt控制,均支持相同的功能集,并且所有与KVM兼容的虚拟机镜像也与QEMU兼容。

主要区别在于QEMU不支持本地虚拟化。因此,QEMU的性能比KVM差,对于生产部署而言,它不是一个好的选择。

当我们尝试使用nova boot命令启动实例并获取状态错误时,日志文件/var/log/nova/nova-conductor.log可能会输出错误NoValidHost:找不到有效的主机。没有足够的主机。 。我们可以通过运行以下命令进行检查:

tail -f /var/log/nova/nova-conductor.log

要解决此问题,请打开nova.conf文件并添加以下行。

openstack-config --set /etc/nova/nova.conf DEFAULT compute_driver libvirt.LibvirtDriver
openstack-config --set /etc/nova/nova.conf libvirt virt_type qemu

我们使用上述命令启用了QEMU,并将计算驱动程序设为libvirt.LibvirtDriver。
如果我们在Bare Metal服务器上运行Openstck,则必须将virt_type设置为kvm。配置将如下所示:

openstack-config --set /etc/nova/nova.conf DEFAULT compute_driver libvirt.LibvirtDriver
openstack-config --set /etc/nova/nova.conf libvirt virt_type kvm

可以根据我们使用的管理程序为virt_type设置的所有值是:kvmlxcqemuumlxenparallels

对于某些操作,我们可能还必须安装guestmount实用程序:
在Ubuntu/Debian上

sudo apt-get install guestmount

在CentOS和RHEL上

sudo yum install libguestfs-tools

在openSUSE上:

sudo zypper install guestfs-tools

QEMU和KVM虚拟机管理程序均支持以下虚拟机镜像格式:RawQEMU写入时复制(qcow2)VMware虚拟机磁盘格式(vmdk)

现在,我们应该能够使用QEMU虚拟机管理程序通过Openstack Nova启动实例。