- 积分
- 16843
在线时间 小时
最后登录1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?开始注册
x
目录3 ?: j3 S6 w% J/ R2 X
No valid host was found. There are not enough hosts available-----openstack建虚拟机直接报错
7 x$ Z2 p! P5 g! }0 H5 f2 P" Y一、问题现象:% h1 |% H- @) A' O/ {+ S
二、解决思路:
. Y% S0 G D: ^% P/ @7 E* {8 \9 x1、查看计算节点的nova-compute 日志,发现如下日志:+ o' B- o& Y% B
2、查看nova-scheduler.log3 N$ u9 W% O! R! ], o7 N
3、进数据查看数据库表
# v( \: n. S! z( I: j, |0 M+ @4、尝试将compute节点从nova service-list中删除,并重新加入到集群中
' n7 u, m P" @" O- `* f& P5、再次进入数据库,执行 select * from resource_providers;
' z( ~: w' O5 n/ N7 {5 x6、查找官网,找到了操作 resource_providers的openstack命令,执行如下操作。( z T) v _' V& C& A8 e- w: B
一、问题现象:
, h- o% M; N- L. T本次环境中只有一个计算节点,创建虚拟机直接报错,使用nova show 看到报错如下图:
) N% C3 \5 Z* ?5 s) C"message": "No valid host was found. There are not enough hosts available.", "code": 500
; a1 h, T& F1 F- _$ I5 o* X
{: }1 L5 }# F+ [' t二、解决思路:
9 O0 a7 r/ E1 ^1、查看计算节点的nova-compute 日志,发现如下日志:, z! f+ {$ A$ k6 M- L
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": [5 v5 Z" u4 U- H% r5 `
{"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"}
+ V8 s" z6 n. ^" 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
. n6 T& O6 T" J7 I发现ResourceProviderCreationFailed: Failed to create resource provider compute1 ,发现resource Provider 创建失败。怀疑数据库resource provider 表没有建出来,继续查看nova-nova-scheduler.log。
" [9 y4 T* i& I: R5 l% m2、查看nova-scheduler.log" ` m/ O: U2 B3 o9 O" {+ V# L
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! f0 E$ O7 [, L; {8 A
2019-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)']
: g: h9 v5 S$ t. A. k) [3、进数据查看数据库表
3 u" a5 q# I2 w8 K/ D. H* B5 Z9 Kmysql> use nova_api;
2 o; O( t7 Z! u% Q5 zmysql[nova_api] > select * from resource_providers;
' E6 L# V& g* @% v- ^6 i; y) k+---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+( X$ P, X# p: D( j3 }
| created_at | updated_at | id | uuid | name | generation | can_host | root_provider_id | parent_provider_id |
& s, D3 a2 v0 [0 U; H+---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+; [ X' t# P/ R
| 2019-11-21 06:17:39 | 2019-11-21 06:17:41 | 3 | 16d1bd53-7919-4fef-9a11-a0e98c149823 | compute1 | 1 | NULL | 3 | NULL |
( o, c2 D; C, {* b+---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+
: K" L' m1 r; J! I0 j9 \1 row in set (0.00 sec)7 R( `% ?% J4 ]$ i* i! o) j7 d
发现有数据。重新创建虚拟机,依然会发生报错,
# X8 z `+ m. X, k! _' ~* O4、尝试将compute节点从nova service-list中删除,并重新加入到集群中
0 |+ K/ a5 x3 T5 k+ k% d# 停掉compute节点的nova-compute 服务/ W0 W4 O4 z; r
nova service-delete <计算节点的uuid>2 P( S/ i0 i7 c; g% L6 V. r3 K
# 开启计算节点的nova-compute服务,让计算节点重新注册% d" C0 z- ^4 ~/ s4 h$ q
尝试创建虚拟机,发现还是报错。返回去,查看nova-compute的日志发现 There was a conflict when trying to complete your request.\n\n Conflicting resource provider name: compute1 already exists. 。提示矛盾。# J; f' D2 ]* E' g7 w
5、再次进入数据库,执行 select * from resource_providers;0 b# y+ l: y. ?
mysql> use nova_api;& W9 k5 c1 w- l% x
mysql[nova_api] > select * from resource_providers;
- c6 R$ q% t) i- f0 `$ {+---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+
( ?& }: Y F4 I2 T/ U' b| created_at | updated_at | id | uuid | name | generation | can_host | root_provider_id | parent_provider_id |4 T- E2 c+ W6 R
+---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+' \7 b/ e. \( z9 U7 q% c
| 2019-11-21 06:17:39 | 2019-11-21 06:17:41 | 3 | 16d1bd53-7919-4fef-9a11-a0e98c149823 | compute1 | 1 | NULL | 3 | NULL |! w( ]: ?: c0 y; h. W: o: ]
+---------------------+---------------------+----+--------------------------------------+----------+------------+----------+------------------+--------------------+
* T# X2 m- Q0 W1 S) P1 row in set (0.00 sec)$ E* c, `3 |' c( v. Q% o% i
发现新注册的计算节点,但是resource_providers的uuid 没有发生变化,怀疑是注册compute节点的时候,并没有更新resource_providers,尝试删除resource_providers;
7 X& T4 q8 d# e6 u) a! Y+ \
+ P+ T1 Q! `( `+ h Y7 I) L0 I6 ^! M' K: ?$ Z% } L' s+ c$ V
+ q4 B. n( P7 z' P" Z
查找官网,找到了操作 resource_providers的openstack命令,执行如下操作。9 m9 L( K% ]# z7 W0 j7 S
相关文档:https://docs.openstack.org/osc-placement/latest/cli/index.html% |: r7 z9 S1 Q- s1 E
相关软件包: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
9 I8 F$ t. g" O6 O! p; X6 R4 o# q# 安装osc-placement 软件包,生成命令行工具. k9 D+ c% b+ ~
# 执行如下命令:
% r6 D* K4 y9 J) M6 Iexport OS_PLACEMENT_API_VERSION=1.10, a h0 J1 I& a( j, k/ [ o! |- D
openstack allocation candidate list --resource VCPU=1
2 n& e/ \' F) ^- s" O4 V6 f# 查看当前resource provider! g* O% A9 k4 m
[root@control1 ~]# openstack resource provider list
; X( h0 D% i I2 a/ a' g, n D) W* |+--------------------------------------+----------+------------+
% @) h* w% n* C9 s* O1 w| uuid | name | generation |( h* o$ K0 R; m% u! j
+--------------------------------------+----------+------------+7 t; q- q( [( E8 c- i
| 16d1bd53-7919-4fef-9a11-a0e98c149823 | compute1 | 2 |
6 \/ ^) F; D, g: n& w3 J+--------------------------------------+----------+------------+ p$ f7 ?+ V s6 Q9 ^, ^( H
# 停止计算节点nova-compute服务
) x$ W1 w' M; H# 从service 中删除compute1
% Z* w0 I: X; n( s" W: b u5 Dnova service-delete <uuid>
) f P% O% F9 V# 删除当前resource provider' ?2 `# ~, W+ w3 m4 W$ J
openstack resource provider delete 16d1bd53-7919-4fef-9a11-a0e98c149823
" k0 c' X9 A+ l1 ^/ q/ o# 重启nova-compute服务,让其自动注册
2 }+ o/ c5 K, `7 _; E8 U1 ~0 E7 _# 查看当前resource provider
) D" H, u; w. m[root@control1 ~]# openstack resource provider list
# ]4 U6 k# E5 |, H1 U O5 K+--------------------------------------+----------+------------+* F; @, a* {0 x& m5 }, |6 D7 m
| uuid | name | generation |
" X" R& ^) y- E- C9 g+ l) V+--------------------------------------+----------+------------+, y$ k+ o6 r v# e4 D. H& ?
| b32cd7b5-26c6-4998-97f1-79fa2315871b | compute1 | 2 |2 R2 Z; ]7 }) L. \/ d+ x
+--------------------------------------+----------+------------++ U% Q! p, R! ^' n$ E
# # 执行如下命令,验证是否更新了数据
0 k8 ]0 d1 p$ n; }export OS_PLACEMENT_API_VERSION=1.103 S$ O" m2 y7 l. w
openstack allocation candidate list --resource VCPU=1
, \8 [; U, ]" N1 ~执行创建云主机,云主机成功创建。; L: e- \, J2 |' {' P8 l! h8 T) K
|
|