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

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

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2021-6-17 16:23:02 | 显示全部楼层 |阅读模式
目录
7 B, Y. b' V& q' ]8 l5 hNo valid host was found. There are not enough hosts available-----openstack建虚拟机直接报错2 h2 S! r. t+ w
一、问题现象:/ ~5 ~$ [# J) s8 K  ?
二、解决思路:
" X3 z# Z6 Z4 N% \' L1、查看计算节点的nova-compute 日志,发现如下日志:1 C' a  k% U7 \3 C( A! `0 N
2、查看nova-scheduler.log
/ f, b6 P3 A2 \+ N% F$ `& z3、进数据查看数据库表
, U" g' A- s. v$ O8 q( \2 F6 P4、尝试将compute节点从nova service-list中删除,并重新加入到集群中3 s* S# Y. ?- \
5、再次进入数据库,执行 select * from resource_providers;) H: B& |3 [2 ]" @" X5 G
6、查找官网,找到了操作 resource_providers的openstack命令,执行如下操作。
8 o. m* F) Y% K% Q; r一、问题现象:
( v% R( i# Z  ]本次环境中只有一个计算节点,创建虚拟机直接报错,使用nova show 看到报错如下图:1 N  r& _. o$ O* j) d; A! M$ s  }
"message": "No valid host was found. There are not enough hosts available.", "code": 500
. k! K% `8 x5 X) _
4 u- v8 t, F. K) T二、解决思路:
7 v) ^# L% w1 V( l5 f, Q, q1、查看计算节点的nova-compute 日志,发现如下日志:
' n6 U$ D  @9 X1 S  X1 m$ ^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": [
4 j6 ~/ v8 n" I2 ]! V& u{"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"}9 ~. b' U5 @# W. t
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. G% ~! r4 l* s. G
发现ResourceProviderCreationFailed: Failed to create resource provider compute1 ,发现resource Provider 创建失败。怀疑数据库resource provider 表没有建出来,继续查看nova-nova-scheduler.log。& ^0 d4 \7 G  l4 a5 o
2、查看nova-scheduler.log
( W9 N" E* B# A: U2019-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
/ V9 [" i7 Q  y) X/ ?7 {  A2019-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)']$ F3 o( h4 x4 I, w8 R; E" n( `
3、进数据查看数据库表
1 D' l, j! W* [mysql> use nova_api;
) w: r! j/ D: G- H- `mysql[nova_api] >  select * from resource_providers;
; s% z+ B8 h( Q% h; m( ^: {0 ]+---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+
" O! N# ]' d$ O1 d% l| created_at          | updated_at          | id | uuid                                 | name     | generation | can_host | root_provider_id | parent_provider_id |
5 x! Y+ p- d5 Q+---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+: S$ l1 J" _' U, {
| 2019-11-21 06:17:39 | 2019-11-21 06:17:41 |  3 | 16d1bd53-7919-4fef-9a11-a0e98c149823 | compute1 |          1 |     NULL |                3 |               NULL |
" P7 r" a  c. P0 w: k0 f/ {0 T2 E" B+---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+5 V; Z! e" V7 U" H: X8 }" Q
1 row in set (0.00 sec)
& I  o5 s0 }+ q5 {$ [发现有数据。重新创建虚拟机,依然会发生报错,
" W4 p8 g5 ~& f. e: @$ U+ H9 r  W4、尝试将compute节点从nova service-list中删除,并重新加入到集群中  E9 w; P; O1 l0 D( m* W# a
# 停掉compute节点的nova-compute 服务
% k  i$ A8 x0 g! O& G; b8 dnova service-delete <计算节点的uuid>3 ~* N5 X  e7 Z% r
# 开启计算节点的nova-compute服务,让计算节点重新注册; r2 A7 j+ I6 n# j( W
尝试创建虚拟机,发现还是报错。返回去,查看nova-compute的日志发现 There was a conflict when trying to complete your request.\n\n Conflicting resource provider name: compute1 already exists. 。提示矛盾。
- k, ~3 Z7 s9 M: V4 m1 |4 S+ g5、再次进入数据库,执行 select * from resource_providers;  H! }( a3 @5 z3 b% h$ g# z' _8 ^5 H+ b
mysql> use nova_api;1 ]  q/ L( i  R
mysql[nova_api] >  select * from resource_providers;4 ]. T2 y. U# ?0 X9 H4 b+ T5 O# J
+---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+5 h, d! H5 r" _, r) U
| created_at          | updated_at          | id | uuid                                 | name     | generation | can_host | root_provider_id | parent_provider_id |- g9 l, u' I( Z: s
+---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+
, X6 z: z5 m" }1 c9 C| 2019-11-21 06:17:39 | 2019-11-21 06:17:41 |  3 | 16d1bd53-7919-4fef-9a11-a0e98c149823 | compute1 |          1 |     NULL |                3 |               NULL |
' n5 O" _3 L1 @" c8 `+---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+; h( u  }) E4 s
1 row in set (0.00 sec)
: g, V0 `( \9 ^# U发现新注册的计算节点,但是resource_providers的uuid 没有发生变化,怀疑是注册compute节点的时候,并没有更新resource_providers,尝试删除resource_providers;/ n. O/ \2 R! V, W

& Z% W8 x" j" X7 I# [0 L8 i4 z; V( C4 |( X

/ Y! t0 M( n, B7 S" g: a# Y查找官网,找到了操作 resource_providers的openstack命令,执行如下操作。  R( U6 _8 f! X+ I
相关文档:https://docs.openstack.org/osc-placement/latest/cli/index.html
# n2 |9 `! o# Z6 {, n8 X" w相关软件包: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( y- L( Z: E, m* S5 S
# 安装osc-placement 软件包,生成命令行工具2 X! {  W' t: M( G
# 执行如下命令:0 q3 I6 L" B- j0 r* m
export OS_PLACEMENT_API_VERSION=1.10/ B. R7 z2 K( Q7 Y& t' S, ^# r3 t$ {
openstack allocation candidate list --resource VCPU=1# @( h6 |4 s3 j' k- K2 k/ X, i
# 查看当前resource provider* X' b8 b) ]2 X8 m- u
[root@control1 ~]# openstack resource provider  list
' m$ y7 v+ d# Y  ~4 \+--------------------------------------+----------+------------++ Z9 P" y' v" v$ D
| uuid                                 | name     | generation |
7 i5 h0 _4 g$ a- _4 j; Y. b  S& Q' n) b+--------------------------------------+----------+------------+$ w+ Y5 c  r2 t& Q$ j( [4 `
| 16d1bd53-7919-4fef-9a11-a0e98c149823 | compute1 |          2 |
4 e: |- W8 A. C: }; i+--------------------------------------+----------+------------+) O& n1 {1 N/ U- U# O( d7 w
# 停止计算节点nova-compute服务* @  F- R8 R% G8 H5 O! a
# 从service 中删除compute1
! z. Y# z9 Q- S  Gnova service-delete  <uuid>( R& U4 \. W/ g( W
# 删除当前resource provider$ [1 p  V, u* M! V( s
openstack resource provider  delete 16d1bd53-7919-4fef-9a11-a0e98c149823, @$ q% ~; z$ B# b
# 重启nova-compute服务,让其自动注册
) C. u/ e1 l" Y  E' `0 ]1 a# 查看当前resource provider
. H1 f$ ~! ^& |/ L- H[root@control1 ~]# openstack resource provider  list
" [2 h3 e" ^/ S1 R# F1 R+--------------------------------------+----------+------------+7 R0 k  ~7 s+ b/ |. O
| uuid                                 | name     | generation |8 [# @  S6 t( p. Y
+--------------------------------------+----------+------------+) {# G- t9 B  O7 @
| b32cd7b5-26c6-4998-97f1-79fa2315871b | compute1 |          2 |9 l, l/ g4 G0 j- {4 [- T
+--------------------------------------+----------+------------+
3 }" {8 s* v. e2 W" T# # 执行如下命令,验证是否更新了数据
6 V" B- i; z3 c0 jexport OS_PLACEMENT_API_VERSION=1.10) w' x" O9 a, D" [- d
openstack allocation candidate list --resource VCPU=1
+ p3 n9 z# P) |( U执行创建云主机,云主机成功创建。; D' E9 ~: W' \2 X: K
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 02:27 , Processed in 0.016529 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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