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. 的相关文章

  • idea配置tomcat启动服务器时控制台乱码

    项目场景 在idea中配置tomcat启动时候控制台乱码问题 问题描述 idea中以tomcat启动控制台出现乱码问题 原因分析 由于tomcat8以后默认编码格式是utf 8 tomcat7之前的都是iso8859 1 与idea中的编码
  • MySQL之2003错误的解决方法

    今天装了MySQL 结果发现到了晚上打开Command Line Client是已输入密码就错误 然后出现一个error2003瞬间窗口关闭 后来找了一下发现是没有开启MySQL server的原因 解决方法 在命令行输入net start
  • was配置mysql数据源另一种方式

    1 添加JDBC驱动程序 打开was控制台 资源 JDBC提供程序 新建 2 配置JDBC参数 选择数据库类型为 用户自定义 数据库类型 com mysql jdbc jdbc2 optional MysqlXADataSource 名称
  • TypeError: Invalid attempt to spread non-iterable instance.

    这种错误一般是延展运算符使用出了错误 例如在一个对象前面用了延展运算符 let obj 因为obj 是一个对象 所以就会报上图的错误 let arr obj name 1
  • ubuntu 16.04安装提示end Kernel panic

    问题描述 ubuntu 最新版本VM虚拟机安装时出现错误end kernel panic not syncing corrupted stack end detected inside scheduler的解决方式 解决办法 选择自定义安装
  • Multiple representations of the same entity are being merged解决方法

    最近在写网站过程中发现自己hibernate学的还不到家 好多错误 特地来记录一下这个错误 java lang IllegalStateException Multiple representations of the same entit
  • MySQL8.0.12 EXPLAIN EXTENDED 报错问题

    今天测试时发现有一条命令报错 explain EXTENDED SELECT count from OORDER where O CARRIER ID lt 10000 网上的教程都是explain EXTENDED 后来查看官方文档发现e
  • 项目启动卡在了Started Application in 10.266 seconds (JVM running for 13.033)

    好端端的项目启动后卡在这一行Started Application in 10 266 seconds JVM running for 13 033 日志中原本打印的执行的banner和程序都没有执行 访问那页面是404 很奇怪 因为啥东西
  • Go_异常处理

    Error 异常就是程序出现了不正常的情况 会导致程序非正常停止 而异常处理就是针对非正常停止的情况 给出异常时的处理方式 语法错误不算异常体系中 error是一个接口 作用是返回程序异常的信息 errors实现了error type er
  • 提示 需要 Oracle 客户端软件 8.1.7 或更高版本 解决方案

    一 问题 1 使用第三方接口连接Oracle数据库 程序内调用接口提示 需要 Oracle 客户端软件 8 1 7 或更高版本 网上看了很多答案 依然不起效果 在公司前辈指点下 终得以找到解决办法 2 数据库 Oracle 11g 二 解决
  • pytorch----Target 2 is out of bounds

    问题 多分类网络加了两层全连接后最后输出1类 计算loss时报错Target N is out of bounds 其中的N是正在处理的数据输入的标签 即第几类 是一个 0 类数 1 的整数 最后输出1类与输入的target不符就会报错 解
  • Tomcat中404/500 错误,自定义错误页面

    Tomcat中404 500 错误 自定义错误页面 当服务器出现404 500错误时候希望能够给用户友好的现实界面 只需要在项目的web xml中添加一些配置
  • 在远程Linux主机上执行本地脚本

    我有一个本地脚本 如果没有远程主机上的 root 权限 该脚本将无法运行 我已编辑并允许 sudoers 文件从主目录 home username script 运行脚本 该脚本使用结果创建一个 txt 文件 但我将输出重定向到终端 并将输
  • 如何更改多个轴标签的字体大小(使用 host_subplot API 创建)

    我在互联网上查看 绝对所有具有多个轴的示例都具有默认值的 xlabel 和 ylabel 并且非常小 我使用以下代码来创建轴 from mpl toolkits axes grid1 import host subplot import m
  • URL 主机中可以显示哪些有效字符?

    我正在编写一些处理 URL 的代码 并且我想确保我不会遗漏一些奇怪的情况 除 A Z 0 9 和 之外 主机是否还有其他有效字符 这包括子域中的任何内容等 本质上是 和第一个 之间的任何内容 Thanks 请参见对有效主机名的限制 http
  • Java - 带重音符号的 InetSocketAddress 主机名

    我在与主机名中包含一些重音符号 的服务器建立连接时遇到问题 例如 String oUrl www h tel fr System out println oUrl InetSocketAddress isa new InetSocketAd
  • IIS 7 中托管的 WCF 服务 - 绑定配置设置被忽略

    我有一个 WCF 服务操作 它接受字节数组作为其数据协定的一部分 该服务仅在内部公开 不公开到互联网 我想增加配额以允许 10MB 字节数组 该服务托管在 IIS7 中 当我尝试发送超过默认长度的字节数组时 我收到以下异常消息 反序列化类型
  • 批量传输和 Android USB API

    我有一个程序 我尝试通过 USB 将我的 Android 设备连接到网络摄像头 我在一些事情上遇到了麻烦 即正确传输数据 我尝试过使用bulkTransfer 但似乎无法识别它的使用情况 我一直在尝试寻找可能对我有帮助的例子 例如here
  • Request.Url.Host 是否包含子域?

    例如对于mail google com 它会返回google com还是mail google com 我自己实际上无法测试 它确实包含子域 例如mail google com
  • PHP 通过 FTP 下载整个文件夹(递归)

    我目前有一个非常大的网站 大小约为 5GB 包含 60 000 个文件 当前主机并没有做太多事情来帮助我将网站转移到新主机 我的想法是在新主机上制作一个简单的脚本 通过 FTP 传输到旧主机并下载整个 public html 文件夹 递归地

随机推荐

  • 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的资