Openstack. 除了cirrOS,找不到有效主机
我在使用Openstack(DevStack)时,每次尝试启动除了cirrOS以外的镜像时,都会遇到以下错误。网上查了一下,发现了以下几点:
Openstack无法分配RAM和CPU资源。
这不是真的,因为我有很多可用的RAM、磁盘空间和CPU。在nova.conf中设置 -> scheduler_default_filters=AllHostsFilter
尝试过这个,但没有成功。
这个问题发生在任何格式的镜像上,只要不是cirrOS。
更新:现在很明显,这个问题没有直接的答案。希望Openstack的开发者能在这个错误信息中提供更具体的信息。
5 个回答
这个错误可能有很多原因。你提到在使用cirros的时候没有问题,那你可以试试这个方法。 运行命令“glance index”。 这样你就能看到你在glance里存储的所有镜像。 接下来,执行“glance show (你的-glance-id)”。 然后把cirros镜像和其他镜像进行对比。
我不知道为什么,但过了一段时间我可以启动 Ubuntu
saucy-server-cloudimg-i386-disk1.img
— Ubuntu 13.10 32位
但是我不能启动
saucy-server-cloudimg-amd64-disk1.img
— Ubuntu 13.10 64位
反过来,我可以启动
precise-server-cloudimg-amd64-disk1.img
— Ubuntu 13.04 64位
但不能启动
precise-server-cloudimg-i386-disk1.img
— Ubuntu 13.04 32位
- 首先,检查核心服务是否在运行。你可以输入命令“netstat -an | grep LISTENING”。在控制节点上,应该能看到至少有以下几个监听端口:8778(placement_api 服务)、8774(计算服务)、9292(镜像服务)、9696(网络服务)、5000(身份服务)、5672(rabbitmq 服务器)、11211(memcache 服务器)、35357(身份服务)。如果你没有修改默认配置,应该能看到这些端口。如果你是按照官方指南逐步安装 Ocata 的话,你需要手动启动 placement-api 服务。
- 在计算节点上,你可以运行命令“virt-host-validate”来检查你的主机是否支持硬件虚拟化。如果检查失败,编辑文件“/etc/nova/nova.conf”,把 virt_type 设置为 qemu。
- 确保你的主机有足够的 CPU、内存和磁盘资源。
- 如果以上步骤都没问题,可以通过在“/etc/nova/nova.conf”中设置 debug=true 来打开调试日志。你可以在目录“/var/log/nova/”中找到更多信息。
我遇到过同样的错误,因为我不小心添加了一个ubuntu镜像,并把元数据中的“hypervisor”标签设置成了“KVM”,而不是“QEMU”。我的主机其实只支持QEMU。当我尝试启动它的时候,就出现了“No Valid Host was found”的错误。我建议你检查一下镜像上的标签,确保它们没有让主机觉得“我无法运行这个”。我只需把镜像标签改回QEMU,就解决了这个问题。
确保你选择的镜像大小是“小”或者更大,因为默认情况下,cirros使用的是“超小”这种尺寸,其他镜像如果没有改动的话也是这样。