不同中子节点上的多个提供商网络管理

时间:2017-11-22 10:35:28

标签: openstack high-availability provider openstack-neutron

我想在不同的节点上安装中子服务器。在我的环境中,将分别有3个提供商网络名称provider1,provider2和provider3。所有这些都将是扁平的网络。在我的系统中,我希望每个中子服务器管理不同的提供商网络(neutron1仅控制provider1,neutron2控制provider2和neutron3控制provider3)。 VM将具有内部网络(覆盖网络)并使用虚拟路由器来访问提供商网络。中子服务器上的接口映射如下:

中子1

Bond 0 : Management + overlay
Bond 1 : use for provider1

中子2

Bond 0 : Management + overlay
Bond 1 : use for provider2

中子3

Bond 0 : Management + overlay
Bond 1 : use for provider3

虚拟路由器(VR)跨多个OpenStack Networking节点随机调度。我的问题是我如何在特定的中子节点上部署VR(比如具有来自provider1的GW地址的VR将部署在neutron1上)?或者我将创建高可用VR,在这种情况下VR将部署所有中子服务器。在这种情况下,如何选择活动虚拟路由器?

1 个答案:

答案 0 :(得分:0)

我认为DVR(分布式虚拟路由器)对您的情况很有帮助。

我描述了基于VM访问路由的DVR和非DVR之间的一些差异。 DVR在每个具有VM的计算节点上生成虚拟路由器,以减少网络节点和SPOF的过载。

基于如何路线的差异。

VMs running node          | subnet    | using router at DVR                       | non-DVR
---------------------------------------------------------------------------------------------------------------------------------
all on the same node      | different | Routing from each VM running compute node | Specified Network node (running L3agent node)
all across multiple nodes | different | Routing from each VM running compute node | Specified Network node (running L3agent node)

使用浮动IP时的差异。 (但是从外部到内部(SNAT)的访问不是HA,只有一个节点可以从Ocata开始路由它。)

DVR                           | non-DVR
-------------------------------------------------------
each DVR has each Floating IP | Just Network node only

由于以下配置步骤仅基于一个简单模式,因此您需要参考official tutorials来采用您的系统。

先决条件:所有计算节点都安装了l3,dhcp,元数据,openvswitch代理。

在所有计算节点上启用DVR。

# vim /etc/neutron/neutron.conf

[DEFAULT]
...snip...
router_distributed = True
...snip...

在控制器节点添加l2population驱动程序。

# /vim/etc/neutron/plugins/ml2/ml2_conf.ini

[ml2]
...snip...
mechanism_drivers = openvswitch,l2population
...snip...

在指定的计算节点上配置SNAT路由器。

# vim /etc/neutron/l3_agent.ini

[DEFAULT]
...snip...
agent_mode = dvr_snat
...snip...

在其余计算节点上将代理模式配置为DVR。

# vim /etc/neutron/l3_agent.ini

[DEFAULT]
...snip...
agent_mode = dvr
...snip..

在所有计算节点上编辑openvswitch配置。

# vim /etc/neutron/plugins/ml2/openvswitch_agent.ini

[agent]
...snip...
l2_population = True
enable_distributed_routing = True
...snip...

重新启动chages才能生效。

在控制器节点上。

# systemctl restart neutron-server

在所有计算节点上。

# systemctl restart neutron-l3-agent neutron-openvswitch-agent

我希望这会对你有所帮助。