我想在不同的节点上安装中子服务器。在我的环境中,将分别有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将部署所有中子服务器。在这种情况下,如何选择活动虚拟路由器?
答案 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
我希望这会对你有所帮助。