Error: No valid host was found.

2023-05-16

使用openstack创建虚拟机经常会遇到以下的这个错误
Error: No valid host was found. There are not enough hosts available.
从字面意思就可以看出是无法找到可用的host的资源来创建虚拟机。

再深一层的分析就是为什么会无法找到host主机呢?
原因有多种,有可能是计算节点down了,但这个原因相信大家都能轻易的分析出来。
下面就从个人遇到的这个问题时来简单的梳理下找问题流程。
问题:
创建虚拟机时出现No valid host was found. There are not enough hosts available错误

似乎看不出什么实质性的东西。于是去后台/var/log/nova/目录下查看几个日志文件,发现了nova-conductor.log的下面这一段

上面提示Failed to schedule instances,于是就查看了nova-schedule.log文件,发现没什么有用信息
于是,打开了nova的debug,将nova.conf文件的debug=true
default_level=DEBUG
重启openstack-nova-*所有服务,再次新建虚拟机

再次查看nova-schedule.log文件
发现下面这个东西

There are 0 hosts available but 1 instances requested to build

让我十分不解
于是我查看了

nova-status upgrade check

显示没有任何问题

根据nova-schedule.log文件的debug信息查看了

/usr/lib/python2.7/site-packages/nova/scheduler/filter_scheduler.py:
/usr/lib/python2.7/site-packages/nova/filters.py

得出了一个似乎没什么帮助的结果:
在虚拟机创建过程中,nova-schedule进行host资源调度,将我这台唯一的计算节点给过滤掉了(all in one),
调度的流程大概是这样

注:图片来自于这里

然后我就陷入了沉思,究竟是什么原因让nova-scheduler将唯一的host过滤掉。
于是想到了几个,内存,磁盘不足?这个在之前已经验证排除。
网络存在问题?查看systemcl status neutron-*发现所有组件都正常运行
于是又再次使用neutron agent-list命令看
发现了有些异常!!!
这里写图片描述
居然没有openvswitch这个agent

这里说明下:我使用的是ocata的版本,官方默认的是使用Linuxbridge,因为需要测试下路由的dvr功能,所以使用openvswitch。

systemctl查看状态明明是运行着

认真一看,发现最后有一个错误的提示。
然后打开日志查看,发现了这个错误

提示我的provider网络的网桥没有找到
然后用ovs-vsctl show查看了网桥

对比一看,确实没有enp0s31f6这个网桥,于是打开openvswitch.ini查看配置,发现

bridge_mappings = provider:enp0s31f
居然写成了网卡名了,都怪之前配过Linuxbridge,很自然的配成了网卡名
改成bridge_mappings = br-provider后,重启网络,果然
neutron agent-list 上面就有了openvswitch,openvswitch也不再报错,创建虚拟机也没问题
就是因为网络的问题,nova-scheduler把唯一的计算资源也filter掉了。就没有后面的事了。

整体总结下:
竟然因为这个配置错误花了一个早上的时间,中间还经历错误地方源码查看的弯路,还在有些懊悔之时,突然意识到了严重的问题,对neutron的原理还很表面,对于配置选项也不明所以,对openvswitch和Linuxbridge的区别又说不出具体等等,于是要赶紧填坑,留下此博客告诫自己,说不定也可以帮助其他人。。。。

参考:
源码分析虚拟机创建过程:
https://blog.csdn.net/u014022631/article/details/52530212
官网对每个agent配置详解:
https://docs.openstack.org/ocata/config-reference/networking/networking_options_reference.html#open-vswitch-agent-configuration-options

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Error: No valid host was found. 的相关文章

随机推荐

  • Mavros控制无人机在gazebo环境下进行双目SLAM

    Mavros控制无人机在gazebo环境下进行双目SLAM 在这里先放参考 xff0c 键盘控制主要是从初接触ROS时的turtlesim功能包下的键盘控制节点得到的方法 参考 ROS tutorial turtle teleop key
  • ORB-SLAM2,ORB-SLAM3,ROS编译的Syntax check of ORB_SLAM2/manifest.xml failed解决

    OpenCV version 3 xEigen version 3 xUbuntu version 20 04ros version noeticpython V 2 7 18python3 V 3 8 10 build sh正常编译 xf
  • Hybrid A*论文,Practical Search Techniques in Path Planning for Autonomous Driving笔记

    Practical Search Techniques in Path Planning for Autonomous Driving Code reference here KTH GitHub repository based on R
  • 传统网格中心的A*算法回顾

    A 算法回顾
  • Hybrid A*示例代码KTH的path_planner分析

    Hybrid A star Algorithm Analysis updating 1 Data Flow in main cpp span class token comment init ros node span ros span c
  • 算法:如何对任务进行调度

    1 假设有一个中央调度机 xff0c 有n个相同的任务需要调度到m台服务器上去执行 xff0c 由于每台服务器配置不一样 xff0c 因此 xff0c 服务器执行一个任务所花费的时间也不同 xff0c 第i个服务器执行一个任务所花费的时间也
  • PELCO-D协议

    由于项目的需要 xff0c 近期对云台控制协议PELCO D进行了研究 xff0c 现对云台控制说明书中的信息进行笔记记录 PELCO D协议通过命令报文控制云台 xff0c 通过返回信息对云台位置进行实时监控 PELCO D控制命令格式如
  • URL读数据、Configuration类、HDFS 的API操作

    从Hadoop URL 读取数据 使用java net URL对象文件打开数据流 xff0c 从hadoop文件系统中读取文件 注意 xff1a 不支持通过URL方式进行写操作 让java程序能识别Hadoop中的hdfs URL方案还需要
  • iptables-ipset仅允许国内访问---端口白名单

    前言 xff1a 境外肉鸡攻击有点多 xff0c 并业务无境外访问需求 xff0c IDC机房网络防火墙无法实现8K多条的china大陆地址导入 xff1b 为实现仅china大陆地址访问 xff0c 在业务端口如这里的80 xff0c 使
  • 什么是任务栈?

    在一个裸机系统中 xff0c 如果有全局变量 xff0c 有子函数调用 xff0c 有中断发生 那么系统在运行的时候 xff0c 全局变量放在哪里 xff0c 子函数调用时 xff0c 局部变量放在哪里 xff0c 中断发生时 xff0c
  • Ubuntu vscode 配置c/c++环境 ---- 静态代码检查

    我曾一度因为vscode中c语言的静态代码检查问题而困扰 xff0c 想想还是太懒了 xff0c 不愿意折腾 xff0c 今天搞一下 首先在ubuntu中装vscode xff0c xff0c xff0c 然后装clang span cla
  • ubuntu22.04 运行qq音乐闪退

    修改 usr share applications中的qqmusic desktop xff0c 在Exec后加上 no sandbox 如下图所示 xff1a
  • PIXHawk用QGC刷Firmware

    1 准备版本 2 开始刷 确定后会出现弹窗 xff0c 再弹窗的文件名处粘贴
  • Xfce4快捷键个性化配置(个人向)

    将xfce4部分常用快捷键设置为Gnome下的快捷键 窗口操作 xff08 在 窗口管理器 gt 键盘 里 xff09 切换同一应用的窗口 xff1a Alt 43 96 最大化窗口 xff1a Super 43 上隐藏窗口 xff1a S
  • 树莓派安装Dronekit连接PIX读取基础数据

    本文主要参考于苍穹四轴DIY的公众号文章 xff1a http span class token operator span span class token operator span span class token operator
  • PX4调试起飞

    一 下载固件 在px4的git上找到相应对于硬件型号的固件 xff1b 二 烧录固件 在qgc上 xff0c 点击高级上的自定义 xff0c 即可烧录相应固件 xff1b 三 选择机架 校准传感器 设置遥控器 选择机架类型之后 xff0c
  • PX4编译——搭建你的第一个应用(Hello Shy)

    一 编译环境 1 ubuntu20 04 2 px4 V2 二 编写测试程序 下载好px4code之后 xff0c 在src examples px4 simple app里面有cmakelist txt和px4 sample app cp
  • PX4开发说明

    本栏文档主要参考PX4的用户指导 xff1b 记录在px4开发过程中的心得体会和备忘 xff1b PX4 User Guide https docs px4 io master en dev setup dev env html
  • prometheus学习

    记录一下在阿木实验室 学习开源项目prometheus的过程
  • Error: No valid host was found.

    使用openstack创建虚拟机经常会遇到以下的这个错误 Error No valid host was found There are not enough hosts available 从字面意思就可以看出是无法找到可用的host的资