对于一些刚接触OpenStack的新人,辛苦两天终于把OpenStack部署好了,建立实例时却失败了。这是一件很郁闷的事情。
大家试想一下,如果你准备启动一台物理服务器,如果服务器的CPU,内存,存储发生错误,在开机自检阶段就过不了,即意味着服务器挂掉,无法启动了。
同样,生成VM时常见的报错“ Novalid host was found. There are not enough hostsavailable ”也基本是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参数设置得不对
处理:
修改compute节点的配置文件/etc/nova/nova.conf
如果compute节点是物理机或开启嵌套虚拟化(CPU硬件加速)的虚拟机: virt_type=kvm
如果compute节点未开启嵌套虚拟化的虚拟机:virt_type=qemu
2. 内存不足导致报错用一个规格比较高的flavor创建实例
nova-conductor.log 报错:
qemu-kvm:cannotset up guest memory 'pc.ram': Cannot allocate memory\n"]
处理:增加计算节点内存后
3. 存储相关的原因导致报错1用自制的Ubuntu镜像创建实例时,没有配置合适的volume大小
nova日志报错:Image1c63d80b-dc44-4785-bf20-4cdb47d7b2c6 is unacceptable: Imagevirtualsize is 18GB and doesn't fit in a volume of size 1GB.
分析:
镜像中的文件系统是18GB,上图红圈中的参数必须大于等于18GB
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没有权限使用启动这个虚拟机(即没有可用的存储)。
处理:
在hostos 上,卸载virt-manager