OpenStack Kolla多节点环境创建实例时网络分配失败求助
你好,针对你在OpenStack Kolla多节点环境中遇到的实例创建时网络分配失败问题,结合你描述的场景(VMware ESXi节点使用vmxnet3网卡、Kolla Ansible部署)和给出的错误信息,我整理了几个实用的排查方向,你可以逐一尝试:
检查计算节点的网卡与Libvirt状态
- 首先确认VMware ESXi上的计算节点虚拟机已启用混杂模式:OpenStack虚拟网络需要物理网卡支持混杂模式才能转发实例的网络流量,你可以在ESXi控制台找到计算节点的网卡,开启混杂模式选项。
- 登录到计算节点的
nova_compute容器,检查Libvirt服务是否正常运行:
如果命令能正常返回结果,说明Libvirt与Hypervisor连接正常;若报错,需要排查Libvirt的配置或Hypervisor的连接权限。docker exec -it nova_compute virsh list --all
排查Neutron网络组件状态
- 确认所有节点上的Neutron相关容器(如
neutron_server、neutron_openvswitch_agent)都处于运行状态:
若有容器异常,查看对应日志定位问题:docker ps | grep neutrondocker logs neutron_openvswitch_agent - 检查实例关联的Neutron端口状态,用实例ID查询:
若端口状态不是openstack port list --server 96447a00-8068-4f8d-86a2-d844775666d7ACTIVE,说明端口未正确绑定到计算节点的OVS网桥,需检查网桥配置或隧道连通性(如果是VXLAN网络)。 - 对于VXLAN类型的网络,确认计算节点之间的隧道端点能正常通信,比如用
ping测试其他节点的VXLAN本地IP,或通过OVS命令查看隧道端口状态:ovs-vsctl show
- 确认所有节点上的Neutron相关容器(如
查看完整的Nova与Libvirt日志
你提供的错误信息只显示了部分Traceback,建议查看nova_compute容器的完整日志,获取更详细的错误细节:docker logs nova_compute同时可以查看容器内Libvirt的QEMU日志,路径通常为
/var/log/libvirt/qemu/,这里会记录实例创建时网络接口的具体报错(比如网桥不存在、权限不足等)。验证Kolla Ansible的部署配置
- 检查部署时的
globals.yml文件,确认network_interface参数是否指向计算节点的正确物理网卡,neutron_plugin_agent是否设置为openvswitch。 - 确认计算节点的内核网络参数配置正确,比如IP转发是否开启:
若返回值为sysctl net.ipv4.ip_forward0,需要开启该参数(Kolla通常会自动配置,但若异常可手动设置)。
- 检查部署时的
你提供的错误信息如下:
fault | {'code': 500, 'created': '2024-05-14T12:31:44Z', 'message': 'Build of instance 96447a00-8068-4f8d-86a2-d844775666d7 aborted:
Failed to allocate the network(s), not rescheduling.', 'details': 'Traceback (most recent call last):\n File "/var/lib/kolla/venv/lib/python3.10/site-packages/nova/virt/libvirt/driver.py", line 8006, in _create_guest_with_network\n with self.virtapi.wait_for_instance_event(\n File "/usr/lib/python3.10/contextlib.py", line 142, in exit\n next(self.gen)\n File "/var/lib/kolla/venv/lib/python3.10/site-packages/nova/compute/manager.py", line 559, in wait_for...
备注:内容来源于stack exchange,提问作者sajad mazaheri




