No valid host was found. There are not enough hosts available-----openstack建虚拟机直接报错

一、问题现象:

本次环境中只有一个计算节点,创建虚拟机直接报错,使用nova show 看到报错如下图:

"message": "No valid host was found. There are not enough hosts available.", "code": 500

二、解决思路:

1、查看计算节点的nova-compute 日志,发现如下日志:

  1. 2019-11-21 19:47:09.484 8 ERROR nova.scheduler.client.report [req-cbc37e88-16be-4b5b-be98-d889cd1b01dc - - - - -] [req-a5a6d438-3f63-49aa-9dd2-98d061b122b4] Failed to create resource provider record in placement API for UUID d878a164-6499-43d4-9772-b77107a1bb8c. Got 409: {"errors": [
  2. {"status": 409, "request_id": "req-a5a6d438-3f63-49aa-9dd2-98d061b122b4", "detail": "There was a conflict when trying to complete your request.\n\n Conflicting resource provider name: compute1 already exists. ", "title": "Conflict"}
  3. 2019-11-21 19:47:09.485 8 ERROR nova.compute.manager [req-cbc37e88-16be-4b5b-be98-d889cd1b01dc - - - - -] Error updating resources for node compute1.: ResourceProviderCreationFailed: Failed to create resource provider compute1

发现ResourceProviderCreationFailed: Failed to create resource provider compute1 ,发现resource Provider 创建失败。怀疑数据库resource provider 表没有建出来,继续查看nova-nova-scheduler.log。

2、查看nova-scheduler.log

  1. 2019-11-21 20:18:43.360 29 INFO nova.filters [req-448bd5fa-ddc8-45d9-9b8b-a63bdb691335 e0111848d3904a7288df61cac5163f4f 9be97009f556459cb1814232dbedb4a3 - default default] Filter RetryFilter returned 0 hosts
  2. 2019-11-21 20:18:43.362 29 INFO nova.filters [req-448bd5fa-ddc8-45d9-9b8b-a63bdb691335 e0111848d3904a7288df61cac5163f4f 9be97009f556459cb1814232dbedb4a3 - default default] Filtering removed all hosts for the request with instance ID 'c9542c1c-191e-49f2-815a-fdcacc081af6'. Filter results: ['RetryFilter: (start: 0, end: 0)']

3、进数据查看数据库表

  1. mysql> use nova_api;
  2. mysql[nova_api] > select * from resource_providers;
  3. +---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+
  4. | created_at | updated_at | id | uuid | name | generation | can_host | root_provider_id | parent_provider_id |
  5. +---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+
  6. | 2019-11-21 06:17:39 | 2019-11-21 06:17:41 | 3 | 16d1bd53-7919-4fef-9a11-a0e98c149823 | compute1 | 1 | NULL | 3 | NULL |
  7. +---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+
  8. 1 row in set (0.00 sec)

发现有数据。重新创建虚拟机,依然会发生报错,

4、尝试将compute节点从nova service-list中删除,并重新加入到集群中

  1. # 停掉compute节点的nova-compute 服务
  2. nova service-delete <计算节点的uuid>
  3. # 开启计算节点的nova-compute服务,让计算节点重新注册

尝试创建虚拟机,发现还是报错。返回去,查看nova-compute的日志发现 There was a conflict when trying to complete your request.\n\n Conflicting resource provider name: compute1 already exists. 。提示矛盾。

5、再次进入数据库,执行 select * from resource_providers;

  1. mysql> use nova_api;
  2. mysql[nova_api] > select * from resource_providers;
  3. +---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+
  4. | created_at | updated_at | id | uuid | name | generation | can_host | root_provider_id | parent_provider_id |
  5. +---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+
  6. | 2019-11-21 06:17:39 | 2019-11-21 06:17:41 | 3 | 16d1bd53-7919-4fef-9a11-a0e98c149823 | compute1 | 1 | NULL | 3 | NULL |
  7. +---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+
  8. 1 row in set (0.00 sec)

发现新注册的计算节点,但是resource_providers的uuid 没有发生变化,怀疑是注册compute节点的时候,并没有更新resource_providers,尝试删除resource_providers;

6、查找官网,找到了操作 resource_providers的openstack命令,执行如下操作。

相关文档:https://docs.openstack.org/osc-placement/latest/cli/index.html

相关软件包:https://cbs.centos.org/kojifiles/packages/python-osc-placement/1.3.0/1.el7/noarch/python2-osc-placement-1.3.0-1.el7.noarch.rpm

  1. # 安装osc-placement 软件包,生成命令行工具
  2. # 执行如下命令:
  3. export OS_PLACEMENT_API_VERSION=1.10
  4. openstack allocation candidate list --resource VCPU=1
  5. # 查看当前resource provider
  6. [root@control1 ~]# openstack resource provider list
  7. +--------------------------------------+----------+------------+
  8. | uuid | name | generation |
  9. +--------------------------------------+----------+------------+
  10. | 16d1bd53-7919-4fef-9a11-a0e98c149823 | compute1 | 2 |
  11. +--------------------------------------+----------+------------+
  12. # 停止计算节点nova-compute服务
  13. # 从service 中删除compute1
  14. nova service-delete <uuid>
  15. # 删除当前resource provider
  16. openstack resource provider delete 16d1bd53-7919-4fef-9a11-a0e98c149823
  17. # 重启nova-compute服务,让其自动注册
  18. # 查看当前resource provider
  19. [root@control1 ~]# openstack resource provider list
  20. +--------------------------------------+----------+------------+
  21. | uuid | name | generation |
  22. +--------------------------------------+----------+------------+
  23. | b32cd7b5-26c6-4998-97f1-79fa2315871b | compute1 | 2 |
  24. +--------------------------------------+----------+------------+
  25. # # 执行如下命令,验证是否更新了数据
  26. export OS_PLACEMENT_API_VERSION=1.10
  27. openstack allocation candidate list --resource VCPU=1

执行创建云主机,云主机成功创建。

No valid host was found. There are not enough hosts available-----openstack建虚拟机直接报错的更多相关文章

  1. RDO Stack: No valid host was found. There are not enough hosts available.

    Issue: When you launch an instance in Newton, you may find that the instance cannot be started due t ...

  2. openstack No valid host was found. There are not enough hosts available.

    root@dell-PowerEdge-T30:~# gedit /var/log/nova/nova-conductor.logroot@dell-PowerEdge-T30:~# gedit /v ...

  3. No valid host was found. There are not enough hosts available

  4. Does not contain a valid host:port authority: Master:8031 (configuration property 'yarn.resourcemanager.resource-tracker.address')

    问题解决: 这个错误是:yarn里面的配置的格式有错误:如: <property> <name>yarn.resourcemanager.address</name> ...

  5. Does not contain a valid host;port authority解决方法

    ERRORorg.apache.hadoop.hdfs.server.namenode.NameNode: java.lang.IllegalArgumentException: Does not c ...

  6. IllegalArgumentException: Does not contain a valid host:port authority: master:8031

    java.lang.IllegalArgumentException: Does not contain a valid host:port authority: master:8031 (confi ...

  7. kettle添加hadoop cluster时报错Caused by: java.lang.IllegalArgumentException: Does not contain a valid host:port authority: hadoop:password@node56:9000

    完整报错是: Caused by: java.lang.IllegalArgumentException: Does not contain a valid host:port authority: ...

  8. hadoop错误:Does not contain a valid host:port authority

    hadoop环境部署完,执行hdfs zkfc -formatZK命令时,提示如上图所示错误 错误内容: [root@study_1_1 hadoop]# hdfs zkfc -formatZK Ex ...

  9. 启动hadoop报does not contain a valid host:port authority:node2_1:9000

    报错:启动hadoop报does not contain a valid host:port authority:node2_1:9000 原因:主机的hostname不合法,修改为不包含着‘.’ ' ...

随机推荐

  1. Java-WebSocket调用报错:WebSocketClient objects are not reuseable

    我的代码 import com.google.common.collect.ImmutableMap; import com.google.common.io.ByteArrayDataOutput; ...

  2. 获取网卡名称及其IP地址的方法

    代码 # -*- coding: utf-8 -*- import psutil #获取网卡名称和其ip地址,不包括回环 def get_netcard(): netcard_info = [] in ...

  3. 查看某个进程PID对应的文件句柄数量,查看某个进程当前使用的文件句柄数量

    ================================ 1.linux所有句柄查询 lsof -n|awk '{print $2}'|sort|uniq -c |sort -nr|more ...

  4. leetcode1130 Minimum Cost Tree From Leaf Values

    思路: 区间dp. 实现: class Solution { public: int mctFromLeafValues(vector<int>& arr) { int n = a ...

  5. sas(Serial Attached SCSI)技术详解

    1.什么是SAS 即串行SCSI技术,是一种磁盘连接技术,它综合了并行SCSI和串行连接技术(FC,SSA,IEEE1394)的优势,以串行通讯协议为协议基础架构,采用SCSI-3扩展指令集,并兼容S ...

  6. php控制访问人数的方法

    php控制访问人数的方法 <pre>//添加访问人数 public function addfangwen() { header("Content-type:text/html; ...

  7. Hbuider APP打包流程

      1,下载HBuilder,注册并登陆.首先打开“文件”-“新建”-“移动APP”,输入“应用名称”,“位置”可以根据需要自己选择即可,“选择模板”建议选择空模板: 2,新建完成后, 在项目管理器会 ...

  8. [转帖]Nginx为什么高效?一文搞明白Nginx核心原理

    Nginx为什么高效?一文搞明白Nginx核心原理 咔咔侃技术 2019-09-06 15:37:00 https://www.toutiao.com/a6733057587622707724/ Ng ...

  9. Java基础---Java方法的重载Overload

    对于功能类似的方法来说,因为参数列表不一样,却需要记住那么多不同的方法名称,太麻烦. 方法的重载(Overload):多个方法的名称一样,但是参数列表不一样.好处:只需要记住唯一一个方法名称,就可以实 ...

  10. 使用 IDEA 创建 maven 项目

    文章目录 第一步 第二步 第三步 目录结构的设置 看下 web.xml 配置文件 第一步 点击 maven : 勾选从模板创建 : 选择 webapp : 第二步 第三步 如果你自己对 maven 进 ...