Openstack-Devstack:无法创建实例,可用主机不足

Openstack-Devstack: Can't create instance, There are not enough hosts available

我在 Ubuntu 14.04 上通过 devstack 安装了 openstack。我的计算机上有 8 GB 的内存,我创建了大约 8 个 VM,但我不会同时使用它们,因为我使用 VM 的方式不同。 现在我不能再创建任何虚拟机了。我收到一条错误消息

No Valid Host was found. there are not enough hosts available.

有人可以建议我该怎么做吗?

既然你说这是一个 devstack 安装,我假设你不会 运行 在生产环境中安装它。 Openstack 允许用户提高 RAM 的超额订阅率。默认情况下,它保持在机器可用物理 RAM 的 1.5 倍。因此,它应该是 12 Gb 的可用内存。要更改订阅比例:

sudo vim /etc/nova/nova.conf
#Add these two lines
ram_allocation_ratio=2
cpu_allocation_ratio=20 # Default value here is 16

这些值只是粗略估计。改变周围的价值观,使它们适合您的环境。重新启动 Devstack。

要检查是否进行了更改,请登录 mysql(或任何支持 devstack 的数据库)并检查:

mysql> use nova;
mysql> select * from compute_nodes \G;
*************************** 1. row ***************************
      created_at: 2015-09-25 13:52:55
      updated_at: 2016-02-03 18:32:49
      deleted_at: NULL
              id: 1
      service_id: 7
           vcpus: 8
       memory_mb: 12007
        local_gb: 446
      vcpus_used: 6
  memory_mb_used: 8832
   local_gb_used: 80
 hypervisor_type: QEMU
    disk_available_least: 240
     free_ram_mb: 3175
    free_disk_gb: 366
    current_workload: 0
     running_vms: 4
       pci_stats: NULL
         metrics: []
.....
1 row in set (0.00 sec)

调度程序查看 free_ram_mb。如果您的 free_ram_mb 为 3175,并且您想要 运行 一个具有 4096M 内存的新 m1.medium 实例,则调度程序将在日志中显示以下消息:

WARNING nova.scheduler.manager Failed to schedule_run_instance: No valid host was found.

因此,在进行这些更改后启动新 VM 时,请务必注意这些问题。