openstack新建实例各种报错解决
Posted laolieren
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了openstack新建实例各种报错解决相关的知识,希望对你有一定的参考价值。
最近自己装了下Openstack,零基础安装,参照了网上不少教程。
吃了百家饭的后果,就是出现了一堆不明问题...openstack安装比较复杂,很多配置文件,一个地方配置不正确,可能会导致后面的功能不可用。
仅以此文记录安装结束后,启动实例时候遇到的一系列错误及排查过程。
BUG 1: No valid host
报错
No valid host was found. There are not enough hosts available.
解决方法
网络节点执行
[root@openstack-controller-dev ~]# vim /etc/sysctl.conf
增加下面内容:
net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
验证是否生效
[root@openstack-controller-dev ~]# sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
BUG 2: Unable to convert image to raw
报错
69ad3af8-3253-4a35-a6f1-ee5bcd1e37f2 aborted: Image 8f9cf451-764e-4219-ba0b-2edb93a9e63e is unacceptable: Unable to convert image to raw: Image /var/lib/nova/instances/_base/9b2bd71aef84e92d7147d0eb3697710afd403a4a.part is unacceptable: Unable to convert image to raw: Unexpected error while running command.
2019-11-15 01:12:18.776 162849 ERROR nova.compute.manager [instance: 69ad3af8-3253-4a35-a6f1-ee5bcd1e37f2] Command: qemu-img convert -O raw -f qcow2 /var/lib/nova/instances/_base/9b2bd71aef84e92d7147d0eb3697710afd403a4a.part /var/lib/nova/instances/_base/9b2bd71aef84e92d7147d0eb3697710afd403a4a.converted
2019-11-15 01:12:18.776 162849 ERROR nova.compute.manager [instance: 69ad3af8-3253-4a35-a6f1-ee5bcd1e37f2] Exit code: 1
2019-11-15 01:12:18.776 162849 ERROR nova.compute.manager [instance: 69ad3af8-3253-4a35-a6f1-ee5bcd1e37f2] Stdout: u''
2019-11-15 01:12:18.776 162849 ERROR nova.compute.manager [instance: 69ad3af8-3253-4a35-a6f1-ee5bcd1e37f2] Stderr: u'qemu-img: error while reading sector 17280: Input/output error
'
排查过程
面向百度进行开发后,在openstack的官网QA上找到了答案:镜像上传不完整.
参考链接: Image is unacceptable: Unable to convert image to raw.
于是重新上传,上传后发现新的问题...
BUG 3: CPU feature spec-ctrl not found
报错
internal error: process exited while connecting to monitor: 2019-11-15T09:42:49.789389Z qemu-kvm: CPU feature spec-ctrl not found
分析及排查
经过百度查看多篇文章后,发现下面这篇说的很在理。
排查相应计算节点的nova-compute日志时发现,日志中有错误信息
qemu-kvm: CPU feature spec-ctrl not found
该日志传达了几点信息:
- Libvirt的获取宿主机的CPU指令集列表中包含该特性
- qemu-kvm不支持CPU特性spec-ctrl
解决方案
- 升级libvirt和qemu来适配新款CPU
- 修改计算节点libvirt获取到的指令集列表cpu_map.xml,屏蔽虚拟化组件不支持的CPU特性。备份cpu_map.xml文件,然后修改/usr/share/libvirt/cpu_map.xml,将和spec-ctrl相关的特性删除
最后把libvirt服务重启生效。
因考虑到升级libvirt和qemu影响较大,升级过后可能会影响部分逻辑和功能,故推荐第二种解决方法。
像这样的配置
<model name='Haswell-noTSX-IBRS'>
<model name='Haswell-noTSX'/>
<feature name='spec-ctrl'/>
</model>
改为
<model name='Haswell-noTSX-IBRS'>
<model name='Haswell-noTSX'/>
</model>
这样的直接删掉
<feature name='spec-ctrl'>
<cpuid eax_in='0x07' ecx_in='0x00' edx='0x04000000'/>
</feature>
重启libvirt
[root@openstack-compute-dev ~]# systemctl restart libvirtd.service
上面的操作执行完后,再次新建实例,有可能还会报下面的错误:
internal error: process exited while connecting to monitor: 2019-11-15T11:02:14.259953Z qemu-kvm: CPU feature stibp not found
执行和上面针对spec-ctrl
一样的操作就可以了。
以上是关于openstack新建实例各种报错解决的主要内容,如果未能解决你的问题,请参考以下文章
openstack安装创建虚拟机实例时候报错: u"libvirtError: internal error no supported architecture for