遇到了一些麻烦...在安装更多计算节点时,我无意中将位于 /etc/neutron/plugins/ml2/linuxbridge_agent.ini 中的 local_ip 与附加计算节点的 local_ip 保留相同。现在
openstack hypervisor list
显示:
+----+---------------------+-----------------+--------------+-------+
| ID | Hypervisor Hostname | Hypervisor Type | Host IP | State |
+----+---------------------+-----------------+--------------+-------+
| 1 | ccloud1 | QEMU | 10.131.39.41 | up |
| 2 | ccloud2 | QEMU | 10.131.39.40 | up |
| 3 | ccloud3 | QEMU | 10.131.39.40 | up |
| 5 | ccloud4 | QEMU | 10.131.39.40 | up |
+----+---------------------+-----------------+--------------+-------+
我已采取以下措施尝试修复此问题,但没有效果,以 ccloud4 为例:
在控制器上:
openstack compute service set --disable ccloud4 nova-compute
在 ccloud4 上:
systemctl stop nova-compute
systemctl stop neutron-linuxbridge-agent
在控制器上:
openstack compute service list
# above is to get ID, it was 11
openstack compute service delete 11
openstack network agent list
# it still shows up there, lets delete it by UUID
openstack network agent delete 433153bd-896d-45c3-b6ae-1ac5cf9cf6b3
此时,openstack 虚拟机管理程序列表和 openstack 网络代理列表显示它已消失,到目前为止一切顺利,让我们将其重新添加:
在 ccloud4 上:
systemctl start nova-compute
systemctl start neutron-linuxbridge-agent
在控制器上:
su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
openstack compute service list
openstack network agent list
openstack hypervisor list
而且,它仍然列在 IP 地址 10.131.39.40 上。不知道如何删除然后重新添加 ccloud2、3、4,并将它们置于新的 IP 地址上。
需要明确的是,ccloud2,3,4 的实际 IP 地址始终是正确的(分别为 10.131.39.42,43,44),只有在 /etc/neutron/plugins/ml2/linuxbridge_agent.ini 文件中才有错误。
我也有执行了这些步骤没有运气。
任何指点都将不胜感激。
答案1
所以,事实证明,我已经将 nova.conf 从 ccloud1 复制到了其他云中。
我编辑了它,但忘记了一行 my_ip=10.131.39.40,因此控制器节点总是将它们选为 10.131.39.40,而不是它们的 IP 地址。有趣的是,这是一个快速修复:
在控制器上:
openstack compute service list
openstack compute service delete ID
然后修改计算节点上的 /etc/nova/nova.conf 文件并执行以下操作:
systemctl restart nova-compute
systemctl restart neutron-linuxbridge-agent
回到控制器,执行以下操作:
su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
核实:
openstack hypervisor list
完毕。