Openstack. 除了cirrOS,找不到有效主机

5 投票
5 回答
6474 浏览
提问于 2025-04-17 23:05

我在使用Openstack(DevStack)时,每次尝试启动除了cirrOS以外的镜像时,都会遇到以下错误。网上查了一下,发现了以下几点:

  1. Openstack无法分配RAM和CPU资源。 这不是真的,因为我有很多可用的RAM、磁盘空间和CPU。
  2. 在nova.conf中设置 -> scheduler_default_filters=AllHostsFilter 尝试过这个,但没有成功。

这个问题发生在任何格式的镜像上,只要不是cirrOS。

更新:现在很明显,这个问题没有直接的答案。希望Openstack的开发者能在这个错误信息中提供更具体的信息。

5 个回答

0

这个错误可能有很多原因。你提到在使用cirros的时候没有问题,那你可以试试这个方法。 运行命令“glance index”。 这样你就能看到你在glance里存储的所有镜像。 接下来,执行“glance show (你的-glance-id)”。 然后把cirros镜像和其他镜像进行对比。

0

我不知道为什么,但过了一段时间我可以启动 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位

1
  1. 首先,检查核心服务是否在运行。你可以输入命令“netstat -an | grep LISTENING”。在控制节点上,应该能看到至少有以下几个监听端口:8778(placement_api 服务)、8774(计算服务)、9292(镜像服务)、9696(网络服务)、5000(身份服务)、5672(rabbitmq 服务器)、11211(memcache 服务器)、35357(身份服务)。如果你没有修改默认配置,应该能看到这些端口。如果你是按照官方指南逐步安装 Ocata 的话,你需要手动启动 placement-api 服务。
  2. 在计算节点上,你可以运行命令“virt-host-validate”来检查你的主机是否支持硬件虚拟化。如果检查失败,编辑文件“/etc/nova/nova.conf”,把 virt_type 设置为 qemu。
  3. 确保你的主机有足够的 CPU、内存和磁盘资源。
  4. 如果以上步骤都没问题,可以通过在“/etc/nova/nova.conf”中设置 debug=true 来打开调试日志。你可以在目录“/var/log/nova/”中找到更多信息。
1

我遇到过同样的错误,因为我不小心添加了一个ubuntu镜像,并把元数据中的“hypervisor”标签设置成了“KVM”,而不是“QEMU”。我的主机其实只支持QEMU。当我尝试启动它的时候,就出现了“No Valid Host was found”的错误。我建议你检查一下镜像上的标签,确保它们没有让主机觉得“我无法运行这个”。我只需把镜像标签改回QEMU,就解决了这个问题。

4

确保你选择的镜像大小是“小”或者更大,因为默认情况下,cirros使用的是“超小”这种尺寸,其他镜像如果没有改动的话也是这样。

撰写回答