OpenStack中虚拟机获取不到IP地址的解决方法

时间:2023-03-09 16:42:15
OpenStack中虚拟机获取不到IP地址的解决方法

OpenStack源码交流群: 538850354

系统环境:

centos6.5 + icehouse多节点部署

问题描述:

使用测试镜像cirros,虚拟机实例可以正常启动,但是不能从IP池中获取IP地址,即DHCP功能不可用

1.首先要检查节点各项服务,以及agent是否启动正常

shell> nova-manage service list
Binary Host Zone Status State Updated_At
nova-consoleauth controller internal enabled :-) -- ::
nova-cert controller internal enabled :-) -- ::
nova-conductor controller internal enabled :-) -- ::
nova-scheduler controller internal enabled :-) -- ::
nova-compute network nova enabled XXX -- ::
nova-compute computer nova enabled :-) -- ::

2.检查agent

shell> neutron agent-list
+--------------------------------------+--------------------+------------+-------+----------------+
| id | agent_type | host | alive | admin_state_up |
+--------------------------------------+--------------------+------------+-------+----------------+
| 22f6a13a-55a1--a836-62fa9803fe71 | Metadata agent | controller | :-) | True |
| bb982be7-1e32--9c7a-d538ed4212a0 | Open vSwitch agent | network | :-) | True |
| d96fa846-ff1a-44d0-8e46-2388a2b62a3a | Metadata agent | network | :-) | True |
| e2fccee2-1e2e-4e15-b58e-d672da7007cc | L3 agent | network | :-) | True |
| e9dd9400-9d2f-4f91-b60e-fa2704cb35b3 | DHCP agent | network | :-) | True |
| fd110565-cbf6-4c6b--4c6e2108fc9f | Open vSwitch agent | computer | :-) | True |
+--------------------------------------+--------------------+------------+-------+----------------+

注:alive看到XXX说明服务不正常,一种可能原因是各节点时间不同步

3.上述两项服务都正常,实例还是分配不到IP地址,查看一下dhcp-agent日志

shell> tail -f dhcp-agent.log
-- ::47.831 TRACE neutron.agent.dhcp_agent raise RuntimeError(m)
-- ::47.831 TRACE neutron.agent.dhcp_agent RuntimeError:
-- ::47.831 TRACE neutron.agent.dhcp_agent Command: ['ip', '-o', 'netns', 'list']
-- ::47.831 TRACE neutron.agent.dhcp_agent Exit code:
-- ::47.831 TRACE neutron.agent.dhcp_agent Stdout: ''
-- ::47.831 TRACE neutron.agent.dhcp_agent Stderr: 'Object "netns" is unknown, try "ip help".\n'
-- ::47.831 TRACE neutron.agent.dhcp_agent
-- ::47.833 INFO neutron.agent.dhcp_agent [-] Synchronizing state complete #错误提示:Stderr: 'Object "netns" is unknown

4.解决办法:

网络节点中yum安装iproute软件包

shell> yum install iproute