创建VM,遇到No valid host was found 错误怎么办

对于一些刚接触OpenStack的新人,辛苦两天终于把OpenStack部署好了,建立实例时却失败了。这是一件很郁闷的事情。


大家试想一下,如果你准备启动一台物理服务器,如果服务器的CPU,内存,存储发生错误,在开机自检阶段就过不了,即意味着服务器挂掉,无法启动了。


同样,生成VM时常见的报错“ Novalid host was found. There are not enough hostsavailable ”也基本是CPU,内存,存储出错导致的。


创建VM,遇到No valid host was found 错误怎么办

创建VM,遇到No valid host was found 错误怎么办

1.     CPU虚拟化参数配置错误

查看nova-compute 日志:

couldn'tobtain the vcpu count fromdomain id:769f95ac-d8da-41be-8e29-f326f03a762f, exception: Requestedoperationis not valid: cpu affinity is not supported


分析:

日志出现绑定CPU失败的错误,立刻想到和CPU虚拟化相关。/etc/nova/nova.conf 中的virt_type参数设置得不对

创建VM,遇到No valid host was found 错误怎么办

处理:

修改compute节点的配置文件/etc/nova/nova.conf 

如果compute节点是物理机或开启嵌套虚拟化(CPU硬件加速)的虚拟机: virt_type=kvm

如果compute节点未开启嵌套虚拟化的虚拟机:virt_type=qemu

创建VM,遇到No valid host was found 错误怎么办

2.    内存不足导致报错

用一个规格比较高的flavor创建实例


创建VM,遇到No valid host was found 错误怎么办

nova-conductor.log 报错:

qemu-kvm:cannotset up guest memory 'pc.ram': Cannot allocate memory\n"]

处理:增加计算节点内存后

创建VM,遇到No valid host was found 错误怎么办

3.   存储相关的原因导致报错

1用自制的Ubuntu镜像创建实例时,没有配置合适的volume大小


创建VM,遇到No valid host was found 错误怎么办


nova日志报错:Image1c63d80b-dc44-4785-bf20-4cdb47d7b2c6 is unacceptable: Imagevirtualsize is 18GB and doesn't fit in a volume of size 1GB.


分析:

镜像中的文件系统是18GB,上图红圈中的参数必须大于等于18GB

创建VM,遇到No valid host was found 错误怎么办

2Block Device Mapping is Invalid 也是很常见错误

通常是由于cinder或ceph等backend配置错误引起的块存储设备报错。


这时就需要查看cinder和ceph的日志并进行分析和处理。


3权限不足(导致没有可用的存储)

查看nova-compute 日志:

InvalidDiskInfo:Diskinfo file is invalid: qemu-img failed to executeon/var/lib/libvirt/images/centos7.0.qcow2 : Unexpected error whilerunningcommand.

2017-01-1911:32:27.73625979 ERROR nova.compute.manager Command: /usr/bin/python2-moslo_concurrency.prlimit --as=1073741824 --cpu=2 -- env LC_ALL=Cinfo /var/lib/libvirt/images/centos7.0.qcow2

2017-01-1911:32:27.73625979 ERROR nova.compute.manager Exit code: 1

2017-01-1911:32:27.73625979 ERROR nova.compute.manager Stdout: u''

2017-01-1911:32:27.73625979 ERROR nova.compute.manager Stderr: u"qemu-img: Couldnotopen '/var/lib/libvirt/images/centos7.0.qcow2': Could not open'/var/lib/libvirt/images/centos7.0.qcow2':Permission denied\n"

分析:

/var/lib/libvirt/images/centos7.0.qcow2是我之前做实验用virt-manager在hostOS创建的虚拟机,也就是说这个虚拟机镜像被virt-manager所管理,导致openstack没有权限使用启动这个虚拟机(即没有可用的存储)。

创建VM,遇到No valid host was found 错误怎么办

处理:

在hostos 上,卸载virt-manager



上一篇:[AWS Design Cost-Optimized Architectures] 4.2 Identify cost-effective compute and database services


下一篇:Yolov3训练自己的数据集