- 积分
- 16840
在线时间 小时
最后登录1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?开始注册
x
目录
0 C+ e/ D& E; l9 V& y0 N3 zNo valid host was found. There are not enough hosts available-----openstack建虚拟机直接报错
" h, u0 @' v+ p5 S一、问题现象:
! W3 Z% C) w" A4 D8 w; C Z" d二、解决思路:
- L4 {; K5 R& i/ |2 \1、查看计算节点的nova-compute 日志,发现如下日志:
4 E* u: F' m' b2、查看nova-scheduler.log' ^: s5 ]! @8 N2 Z# M
3、进数据查看数据库表
0 Z! f3 s- k5 H* u! }0 C" [4、尝试将compute节点从nova service-list中删除,并重新加入到集群中
6 L, ~4 }# U( r6 u6 S; X5、再次进入数据库,执行 select * from resource_providers;
, \8 y( r$ F4 y) `# a- {2 t6、查找官网,找到了操作 resource_providers的openstack命令,执行如下操作。
* E( Y4 J2 d9 b L! o一、问题现象:
( u2 R& Z% A, y( w8 u; \本次环境中只有一个计算节点,创建虚拟机直接报错,使用nova show 看到报错如下图:
* E5 K; e: ~4 e5 G* W" x/ |9 s"message": "No valid host was found. There are not enough hosts available.", "code": 500; e' W( U/ Q# d v
: r3 W+ G9 `. b+ F: U3 L* S二、解决思路:3 Y2 k1 o6 T- {7 t( _) O& z5 [, Q+ ~& E
1、查看计算节点的nova-compute 日志,发现如下日志:
4 k7 l& O; W8 C% L8 [; [$ b2019-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": [
' _) a9 M/ l( ^. f! C8 @' S{"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"}. X$ F: V( C) d3 d+ n
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* }: E" v0 }. `7 V+ G
发现ResourceProviderCreationFailed: Failed to create resource provider compute1 ,发现resource Provider 创建失败。怀疑数据库resource provider 表没有建出来,继续查看nova-nova-scheduler.log。% c% a5 z7 ~/ O; E" M/ q9 U
2、查看nova-scheduler.log3 f; |- ?1 p1 V0 }! N J4 y0 ^
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
) a6 F) y' L: ^8 y, A0 v, X- y2019-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)']7 n5 e) Y( B# q) v
3、进数据查看数据库表9 P5 c4 c c. X: H8 J
mysql> use nova_api;
# I3 a% I: s5 o( Rmysql[nova_api] > select * from resource_providers;4 G( ~2 @" @ K* x/ I
+---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+3 a/ A- {: ?! h& b4 _
| created_at | updated_at | id | uuid | name | generation | can_host | root_provider_id | parent_provider_id |
& Y: g9 M0 d8 ~! _1 L" D& s+---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+
. d' s; r% U- u* n| 2019-11-21 06:17:39 | 2019-11-21 06:17:41 | 3 | 16d1bd53-7919-4fef-9a11-a0e98c149823 | compute1 | 1 | NULL | 3 | NULL |
6 W. b: q# k* U O0 L+---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+ h: T% Z7 Q5 W& W$ h0 v% c$ D0 P
1 row in set (0.00 sec)
2 c: Y) z1 x$ e) J' c3 x发现有数据。重新创建虚拟机,依然会发生报错,
0 C: i, J. q2 H5 i, q u4、尝试将compute节点从nova service-list中删除,并重新加入到集群中! U8 V( N( [$ [( u4 t- d
# 停掉compute节点的nova-compute 服务, X- x7 s$ u g9 h# N1 W& b; q
nova service-delete <计算节点的uuid>
9 {( o P/ l/ L4 P+ B0 v# 开启计算节点的nova-compute服务,让计算节点重新注册
/ m- u5 m# I8 O尝试创建虚拟机,发现还是报错。返回去,查看nova-compute的日志发现 There was a conflict when trying to complete your request.\n\n Conflicting resource provider name: compute1 already exists. 。提示矛盾。8 I" j8 D4 h Q$ t9 x! ~
5、再次进入数据库,执行 select * from resource_providers;
, w2 X( D. c: I! v7 G1 ymysql> use nova_api;
5 { x% A8 ^7 L3 P% I3 L) T! imysql[nova_api] > select * from resource_providers;$ T c) M; m8 ?, F z1 ]* d5 q$ g4 X
+---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+
% j- R, O2 d7 i, a' T. Y| created_at | updated_at | id | uuid | name | generation | can_host | root_provider_id | parent_provider_id |
, Z3 X# K- Q U& {) G4 X+---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+: N7 |( ~1 g4 Y9 K# ^) d
| 2019-11-21 06:17:39 | 2019-11-21 06:17:41 | 3 | 16d1bd53-7919-4fef-9a11-a0e98c149823 | compute1 | 1 | NULL | 3 | NULL |$ @* `5 }+ x* Y' `4 K: h2 [* L4 w5 m* i
+---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+
I G# l8 ~/ k7 }2 o1 row in set (0.00 sec)
{, M- y- n. r发现新注册的计算节点,但是resource_providers的uuid 没有发生变化,怀疑是注册compute节点的时候,并没有更新resource_providers,尝试删除resource_providers;. m2 F) @+ y& D d8 U2 Z' P
( Z! B, {; G! G
, U2 h& }. Z6 H: y) V- f% u/ t. R) [4 O }/ O1 m) x5 p( I
查找官网,找到了操作 resource_providers的openstack命令,执行如下操作。' _$ m; a. N) p5 h& s/ k
相关文档:https://docs.openstack.org/osc-placement/latest/cli/index.html
. f5 v6 Y! f1 w6 ^相关软件包: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
- v$ L ?+ I. C- C# 安装osc-placement 软件包,生成命令行工具
2 J: j H9 P, E, b( U# 执行如下命令:4 ~8 c5 X/ ^; D: U
export OS_PLACEMENT_API_VERSION=1.10. z `1 z8 Q4 n1 N2 v+ M: a2 Z
openstack allocation candidate list --resource VCPU=1
+ r! u5 S) A8 W" ^# 查看当前resource provider
, w7 | Z0 P: c/ g, j) u2 f[root@control1 ~]# openstack resource provider list% M+ X3 e, y. |' S9 C2 f$ z
+--------------------------------------+----------+------------+
6 f+ c2 Q6 F& r" b/ \0 L! C, x& ?| uuid | name | generation |
6 Y1 A* Q0 W; o6 p: [+--------------------------------------+----------+------------+3 P; v( x0 C8 R8 i- l# {
| 16d1bd53-7919-4fef-9a11-a0e98c149823 | compute1 | 2 |+ i1 V$ _- I- k) I" U5 }
+--------------------------------------+----------+------------+( ^, ^) ?7 h; ~9 e5 C$ o* H0 K
# 停止计算节点nova-compute服务5 U# [9 P+ S, c$ U( K
# 从service 中删除compute1; R" d1 D* Q/ U2 f% r
nova service-delete <uuid>
0 s- i. U7 I7 g5 S# 删除当前resource provider
& Q( q/ Y6 H2 a5 Eopenstack resource provider delete 16d1bd53-7919-4fef-9a11-a0e98c149823
5 U1 o5 _) [- [" u. [2 j5 P# 重启nova-compute服务,让其自动注册
2 Q$ \+ r& T5 I" N7 E+ w9 K# 查看当前resource provider9 f1 K- S4 p3 y! T) m
[root@control1 ~]# openstack resource provider list, D# k# i0 k' ^( g w# ]) U1 |# c
+--------------------------------------+----------+------------+
8 B, L# l) h0 Z6 S9 F| uuid | name | generation |
' [' j" i. I# ~ ~+--------------------------------------+----------+------------+
' g" N' s4 u B/ w, [| b32cd7b5-26c6-4998-97f1-79fa2315871b | compute1 | 2 |2 c! b3 J, k, u& L+ U
+--------------------------------------+----------+------------+
P( p, @/ s. I v8 W# # 执行如下命令,验证是否更新了数据
, V, X4 X) M8 |$ |. J/ _5 hexport OS_PLACEMENT_API_VERSION=1.102 I3 M/ o, S) p
openstack allocation candidate list --resource VCPU=1
. Z1 V. B% y4 n1 \执行创建云主机,云主机成功创建。; f; f+ M& o; `, ^, V
|
|