找回密码
 注册
查看: 3297|回复: 0

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

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2021-6-17 16:23:02 | 显示全部楼层 |阅读模式
目录
% P' f# p; v: kNo valid host was found. There are not enough hosts available-----openstack建虚拟机直接报错- [/ j3 ~  e+ o# E  h5 e
一、问题现象:9 [3 J% o9 X7 ^( q: D' U0 h
二、解决思路:
: u, K* h5 Q9 G  s5 x: @: O1、查看计算节点的nova-compute 日志,发现如下日志:
5 s. I" D/ }  N2、查看nova-scheduler.log
* m4 ?5 v, r1 w3、进数据查看数据库表) ?; A8 {& [; P0 y, m8 [
4、尝试将compute节点从nova service-list中删除,并重新加入到集群中3 h/ ^6 o* D8 \9 W& M
5、再次进入数据库,执行 select * from resource_providers;7 o. K/ t4 H* Q* R7 _% }+ `7 ]0 ?
6、查找官网,找到了操作 resource_providers的openstack命令,执行如下操作。
4 Q) |, M3 z$ ^; v8 a: F/ h9 o" }一、问题现象:/ L) v: z  m+ q5 {9 `( T, D. O
本次环境中只有一个计算节点,创建虚拟机直接报错,使用nova show 看到报错如下图:6 Q7 N, Z6 ], g5 c) Y
"message": "No valid host was found. There are not enough hosts available.", "code": 500
$ i9 M& X- ]3 G9 M" v' }
+ p5 q2 N9 N, s. \* K- L" M- l! O$ c二、解决思路:* o' |! I& y) X4 i+ Z( c
1、查看计算节点的nova-compute 日志,发现如下日志:7 }9 r9 d3 q& N, L9 F2 ?! Q
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": [
; M9 L1 h' z. _9 b$ ]- Q8 V/ I{"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"}
2 V) L: d$ b+ P* L% h2 B' j* E$ g2019-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/ F: d: a- G% d" Z
发现ResourceProviderCreationFailed: Failed to create resource provider compute1 ,发现resource Provider 创建失败。怀疑数据库resource provider 表没有建出来,继续查看nova-nova-scheduler.log。
+ V4 v  K, }; s: [" C9 o2、查看nova-scheduler.log+ X0 r# r+ _) }: u5 z
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
7 i: }% m/ g6 [, c4 w3 Y7 ^  i2019-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 X5 {: c+ V, K0 o4 S, ?- q
3、进数据查看数据库表
8 \* k& f" ~; ^+ ?/ Gmysql> use nova_api;
* X: r2 r5 _* Imysql[nova_api] >  select * from resource_providers;
2 H* a6 s% [5 j: t: i# g+---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+
6 w( n, o) ?3 x0 Y) Q| created_at          | updated_at          | id | uuid                                 | name     | generation | can_host | root_provider_id | parent_provider_id |: e, @) X' p* B/ g  M
+---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+0 V% @0 t" W- h( T( `$ J9 ]8 }: ]
| 2019-11-21 06:17:39 | 2019-11-21 06:17:41 |  3 | 16d1bd53-7919-4fef-9a11-a0e98c149823 | compute1 |          1 |     NULL |                3 |               NULL |* I5 ~( d9 R& d. ~
+---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+
% ^% \  e; y6 N+ Y, x1 row in set (0.00 sec)
' r! f# t6 d+ V8 R: l发现有数据。重新创建虚拟机,依然会发生报错,2 v& q2 m- h! R$ ^
4、尝试将compute节点从nova service-list中删除,并重新加入到集群中
- R* [+ C5 ^, b1 A. g7 X# 停掉compute节点的nova-compute 服务
' E" @0 J7 i% ?% cnova service-delete <计算节点的uuid>8 x/ q8 Y6 x3 y1 {2 W) y. s
# 开启计算节点的nova-compute服务,让计算节点重新注册# p( X0 x+ I7 S4 a! Z
尝试创建虚拟机,发现还是报错。返回去,查看nova-compute的日志发现 There was a conflict when trying to complete your request.\n\n Conflicting resource provider name: compute1 already exists. 。提示矛盾。' R+ k4 u' _; `7 X
5、再次进入数据库,执行 select * from resource_providers;
; x" R5 X- M8 \; y  R5 Gmysql> use nova_api;/ w' O2 w: ?( @8 H' y- D
mysql[nova_api] >  select * from resource_providers;( z% ~9 |2 D; K' T
+---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+! _& T: r' p7 y8 c2 I. n
| created_at          | updated_at          | id | uuid                                 | name     | generation | can_host | root_provider_id | parent_provider_id |$ d2 e6 A; J/ N. x( t- X
+---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+
$ R9 c6 [/ j1 p2 C2 G1 W| 2019-11-21 06:17:39 | 2019-11-21 06:17:41 |  3 | 16d1bd53-7919-4fef-9a11-a0e98c149823 | compute1 |          1 |     NULL |                3 |               NULL |$ ?4 C& c* {+ t) Q7 g/ S
+---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+
* i$ \8 n8 K; L" _0 @2 R: {3 w' f+ g4 A1 row in set (0.00 sec)& U: J4 a! O# e# o% ~
发现新注册的计算节点,但是resource_providers的uuid 没有发生变化,怀疑是注册compute节点的时候,并没有更新resource_providers,尝试删除resource_providers;7 s5 `$ n1 f/ f5 A0 c* \
* P. {( ]3 C+ y, d

; @' j/ ]5 }; B' Z9 ?4 ]" w3 R- E1 R( h: y! f; u( t$ U  z
查找官网,找到了操作 resource_providers的openstack命令,执行如下操作。
# l& B/ v( K( L4 X% Q相关文档:https://docs.openstack.org/osc-placement/latest/cli/index.html
* E) w3 D$ R  F+ f相关软件包:https://cbs.centos.org/kojifiles/packages/python-osc-placement/1.3.0/1.el7/noarch/python2-osc-placement-1.3.0-1.el7.noarch.rpm9 H/ d. j7 D, F2 {5 q0 a
# 安装osc-placement 软件包,生成命令行工具
7 G9 C4 |0 |6 q4 E. I( m% p7 Z' H9 \# 执行如下命令:2 X- [: e) V/ c# p/ I
export OS_PLACEMENT_API_VERSION=1.10$ ~3 {( h! z$ I9 i1 J5 z9 ]
openstack allocation candidate list --resource VCPU=1
- [  I' c' V. i2 T$ i# 查看当前resource provider
( H# N9 @5 ]5 J, D# D, u[root@control1 ~]# openstack resource provider  list
7 Y5 ?  Z; I. n9 j' c$ j: s9 |+--------------------------------------+----------+------------+( [; V& @$ p$ g9 x( O
| uuid                                 | name     | generation |* U9 r% s# }# R7 a
+--------------------------------------+----------+------------+' v" g6 y# P4 ^% P3 M
| 16d1bd53-7919-4fef-9a11-a0e98c149823 | compute1 |          2 |; S  f. k" |  j5 R1 T
+--------------------------------------+----------+------------+' }: r( x6 C9 o2 }8 t- o/ y
# 停止计算节点nova-compute服务+ ]% z, N4 T0 j, m+ o$ r
# 从service 中删除compute1
& L! r  t1 M5 _, i6 `0 |# A3 W4 vnova service-delete  <uuid>
* O$ d$ U$ _' w9 {# 删除当前resource provider, [2 w1 P% s/ q3 W
openstack resource provider  delete 16d1bd53-7919-4fef-9a11-a0e98c149823
0 a$ j3 {2 |+ w6 ^' X. U# 重启nova-compute服务,让其自动注册
9 ^; E8 r' T: u" W* g/ s# 查看当前resource provider
. A% }8 L4 c1 Q! |# [) _2 t5 c[root@control1 ~]# openstack resource provider  list+ [8 d4 a: t; \$ @9 z9 L* z
+--------------------------------------+----------+------------+
6 L1 k# p0 M+ C8 M| uuid                                 | name     | generation |2 [( [5 M( m) d% p+ F9 A
+--------------------------------------+----------+------------+- m; G% T  N+ c; d
| b32cd7b5-26c6-4998-97f1-79fa2315871b | compute1 |          2 |4 {/ f7 ~* N% ?+ M* E. L2 q) z
+--------------------------------------+----------+------------+
9 h. D7 t- a& T) p! }# # 执行如下命令,验证是否更新了数据
- [$ M7 w- Q8 u/ ]4 L) B" q7 mexport OS_PLACEMENT_API_VERSION=1.10
+ Z' b6 J" |, G" B$ |* [openstack allocation candidate list --resource VCPU=1+ z4 ^0 w3 y& k, l7 \
执行创建云主机,云主机成功创建。0 F/ H! a  R2 b+ Y! D2 d( o
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 03:37 , Processed in 0.017664 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表