记录openstack增加删除节点 “找不到有效主机”的 一次排错
昨天在给中石油讲openstack课程的时候,在删除了一台节点vms34之后,然后把vms34节点再次加入到openstack集群时,vms34不能正常工作,显示"找不到有效主机",就有了如下排查过程:
实验拓扑图
在环境里有2个计算节点,分别是:
vms33.rhce.cc 192.168.26.33 在zone1里
vms34.rhce.cc 192.168.26.34 在zone2里
查询结果如下:
删除一个节点的步骤如下
在vms34.rhce.cc上关闭
openstack-nova-compute.service和neutron-openvswitch-agent.service
到mysql所在机器上删除vms34这台计算节点
删除nova.compute_nodes里hypervisor_hostname=vms34.rhce.c的条目
删除nova.services里host=vms34.rhce.cc的条目:
此时vms34这台计算节点已经删除了:
因为计算节点上的配置文件没有动,所以此时如果在计算节点vms34上重启openstack-nova-compute.service和neutron-openvswitch-agent.service的话,此计算节点会自动的注册到数据库:
到控制节点查看:
这里显示一切正常,但是如果此时在vms34上安装实例的时候会报错:
计算节点显示都正常,且vms34上每个服务都运行正常,为何创建实例时显示找不到有效主机?
经过一番日志查询,在看到控制节点上nova-placement-api.log时看到如下内容:
placement通过resource_providers里uuid=87d73e91-bd18-4130-8f0a-1cc6cfc339b2访问主机vms33,状态是200
通过resource_providers里uuid=6a1d4981-2372-4191-bc69-bccfb7991fc0访问主机vms34,状态是404。
通过查询表nova_api.resource_provides里的值:
vms33里对应的uuid=87d73e91-bd18-4130-8f0a-1cc6cfc339b2
vms34里对应的uuid是fa84f276-5d1f-441e-a31e-06c6fcf53d8c 和实际要访问的6a1d4981-2372-4191-bc69-bccfb7991fc0不一致,所以访问不到。
找到原因之后,把nova_api.resource_provides里name=vms34.rhce.cc那行的uuid改成6a1d4981-2372-4191-bc69-bccfb7991fc0:
然后再次尝试在vms34上安装实例:
成功解决。