openstack havana neutron安装

2014/04/18 17:59
阅读数 118

Neutron dhcp agent 主要负责在openstack中提供dhcp服务。在openstack的H版本中,neutron dhcp agent是支持multi host部署的。

016.jpg (93.66 KB, 下载次数: 0)

下载附件  保存到相册

2014-4-6 17:37 上传




dhcp agent 通过Message Queue与Neutron-Server通信。主要用到3个消息队列,q-plugin是从agent发送消息到neutron-server所用的队列。
dhcp agent启动时,会将自己的信息上报给neutron-server, neutron-server将这些信息存储在DB中,以便之后创建网络将网络绑定到agent做决策时使用。
dhcp agent信息会存放在neutron数据库的agents表中,如下例:
| c341d3c4-15a8-45bf-bffe-36cef5488928 | DHCP agent | neutron-dhcp-agent | dhcp_agent | ci91szcmp001.webex.com | 1 | 2014-02-11 08:30:03 | 2014-02-11 09:32:03 | 2014-02-20 05:44:42 | NULL | {"subnets": 2, "use_namespaces": true, "dhcp_lease_duration": 86400, "dhcp_driver": "neutron.agent.linux.dhcp.Dnsmasq", "networks": 2, "ports": 26} |
| 9bdcbaf8-43fa-44b1-a7df-ea1c86bd6cd1 | DHCP agent | neutron-dhcp-agent | dhcp_agent | ci91szcmp002.webex.com | 1 | 2014-02-11 08:26:34 | 2014-02-11 09:32:28 | 2014-02-20 05:44:39 | NULL | {"subnets": 2, "use_namespaces": true, "dhcp_lease_duration": 86400, "dhcp_driver": "neutron.agent.linux.dhcp.Dnsmasq", "networks": 2, "ports": 26} |


dhcp agent启动时还会主动sync状态,会通过q-plugin队列发送消息给neutron-server获取所有的绑定到本agent的 network/subnet/port信息,并根据这些信息配置正确的namespace,dhcp server接口和dnsmasq 。


agent和network绑定关系被存储在networkdhcpagentbindings中:
mysql> select * from networkdhcpagentbindings;
+--------------------------------------+--------------------------------------+
| network_id                           | dhcp_agent_id                        |
+--------------------------------------+--------------------------------------+
| 218203a4-bc92-4c0e-a245-654e0e3ccefe | 9bdcbaf8-43fa-44b1-a7df-ea1c86bd6cd1 |
| 52aba766-fdba-4776-ac09-462bf6da40d5 | 9bdcbaf8-43fa-44b1-a7df-ea1c86bd6cd1 |
| 218203a4-bc92-4c0e-a245-654e0e3ccefe | c341d3c4-15a8-45bf-bffe-36cef5488928 |
| 52aba766-fdba-4776-ac09-462bf6da40d5 | c341d3c4-15a8-45bf-bffe-36cef5488928 |
+--------------------------------------+--------------------------------------+
4 rows in set (0.00 sec)


网络,子网和端口信息分别存储在数据库的networks,subnets和ports表中。dhcp agent需要获取这些信息生成dnsmasq的配置信息,并将这些信息存储在/var/lib/neutron/dhcp/目录下。

当neutron-server有需要添加/修改/删除dhcp相关配置时,会将消息发送到队列dhcp_agent.hostname或dhcp_agent_fanout_id,dhcp agent收到消息后进行相应dhcp的配置。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部