首页 > 代码库 > OpenStack虚机相关错误
OpenStack虚机相关错误
OpenStack配置起来还是挺麻烦的,特别是网络那块。虽然官方文档越来越清晰,但有时还是会出各种错。排错主要是看日志、看官方文档和google
以下就一些虚机相关常见的错误做一下总结(基于Icehouse版):
1.起虚机时报 ‘No valid host‘ 错误
个人觉得 No valid host 是比较简单的错,那几个单词的意思就已经告诉我们很多信息了,No valid host 原因有很多种
(1)nova compute服务异常,用openstack-status查看各个服务是否是active,若服务未正常启动,查看相应日志,比如查看/var/log/nova/compute.log
(2)nova compute启动ok,但是没有跟controller连上,在controller节点上运行nova-manage service list看看,如下:
上图有两个compute,状态都是笑脸。如果有多个compute,而有的compute不能和controller相连的话,就会显示不出来。如果确实没能和controller连上,把controller的iptables关了试试,如果有用就说明需要在iptables中开放端口,比如qpid端口5672等
(3)计算节点确实没有flavor中定义的那么多资源了,具体可以查看/var/log/nova/scheduler.log
(4)计算节点不支持kvm,修改nova.conf中的virt_type为qemu。查看是否支持kvm,执行 egrep -c ‘(vmx|svm)‘ /proc/cpuinfo 如果输出结果大于0,那么就表示支持kvm。
(5)其他,自行查看日志
2.启动虚机时,一直spawning,拿不到fixed IP
拿不到IP肯定是网络的问题,首先检查计算节点上neutron组件是否安装配置正确,然后检查nova.conf是否有如下配置:
network_api_class = nova.network.neutronv2.api.APIneutron_url = http://controller:9696neutron_auth_strategy = keystoneneutron_admin_tenant_name = serviceneutron_admin_username = neutronneutron_admin_password = neutron_passneutron_admin_auth_url = http://controller:35357/v2.0
3.虚机正常启动,但fixed ip ping不通
(1)查看安全组是否开放ICMP,需要开放ICMP
(2)直接ping fixed ip肯定ping不通,需要路由。具体如下:
执行 ip netns,然后找到虚机所在子网的路由,然后再ping。
4. 虚机看似启动没问题,也显示有fixed ip,但是nova console-log显示如下:
Starting network...udhcpc (v1.20.1) startedSending discover...Sending discover...Sending discover...No lease, failingWARN: /etc/rc3.d/S40-network failedcirros-ds ‘net‘ up at 181.07checking http://169.254.169.254/2009-04-04/instance-id
...
具体往下看虚机信息,就能看到虚机没有真正拿到fixed ip。解决办法:
(1)在网上看到有人说执行一条命令,如下:
iptables -A POSTROUTING -t mangle -p udp --dport 68 -j CHECKSUM --checksum-fill--checksum-fill Compute and fill in the checksum in a packet that lacks a checksum. This is particularly useful, if you need to work around old applications such as dhcpclients, that do not work well with checksum offloads, but don‘t want to disable checksum offload in your device.
但是我执行了没用,大概错误不一样吧。
(2)neutron在controller节点少配置了一些东东。
由于跟网络相关,自然想到是否neutron没有配置正确,仔细查看了一下。发现controller节点没有配置如下东东:
service_neutron_metadata_proxy=trueneutron_metadata_proxy_shared_secret=METADATA_SECRET
因为这个配置在官方文档中写在 Add a Networking service->Configure network node小节,没想到其中还有关于controller节点的配置。
(3)其他neutron相关错误。比如计算节点ovs local_ip配置错误。
OpenStack虚机相关错误