虚机创建异常,使用nova show 虚机ID提示fault报错信息:No valid host was found,There are not enough hosts available

检查所在宿主机上资源是否充足

nova hypervisor-list | grep 宿主机名称

nova hypervisor-show 宿主机ID

 MEM和VCPU都满足本次创建虚机规格要求

查询虚机请求的request-id

nova instance-action-list 虚机ID

用request-id 到控制平面上的nova-scheduler、nova-api接口日志、宿主机上日志(nova-compute)查询相关报错,经检查未出现相关报错

检查宿主机上资源使用情况,怀疑宿主机上有类似脏数据导致资源信息被占用

需要登录nova-api的数据库,检查resource_providers表中该宿主机上使用的资源信息

select * from resource_providers where name='宿主机名称'\G;

 查询到资源allocation里面虚机数量,与实际查询宿主机上虚机数量进行比对

nova list --all --host 宿主机名称

发现其实数据库里面查询出来有2个虚机,但实际宿主机上只有一个,说明前期数据库中有脏数据(理论上虚机删除后相关数据会同步删除,可能异常操作导致留有脏数据)

 因此需要将异常虚机信息进行删除

delete from allocations where resource_provider_id='313' and consumer_id='异常虚机的id';

删除完成后再次创建正常

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐