Openstack-Devstack:无法创建实例,没有足够的主机可用

jsi*_*h13 2 openstack devstack ubuntu-14.04

我在Ubuntu 14.04上通过devstack安装了openstack.我的计算机上有8 GB的ram,我已经创建了大约8个VM,我没有同时使用,因为我使用不同的VM.现在我无法再创建VM了.我收到一条错误消息

找不到有效主机.没有足够的主机可用.

有人可以建议我该怎么办?

Ans*_*was 8

既然你说这是一个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
Run Code Online (Sandbox Code Playgroud)

这些值只是粗略估计.更改周围的值以使它们适合您的环境.重启Devstack.

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

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)
Run Code Online (Sandbox Code Playgroud)

调度程序查看free_ram_mb.如果free_ram_mb为3175,并且如果要运行具有4096M内存的新m1.medium实例,则调度程序将在日志中结束此消息:

WARNING nova.scheduler.manager Failed to schedule_run_instance: No valid host was found.
Run Code Online (Sandbox Code Playgroud)

因此,确保在进行这些更改后启动新VM时要留意这些.