neutron的dvr

作者:【吴业亮】

博客:http://blog.csdn.net/wylfengyujiancheng

OpenStack 用户可能会发现,按照 Neutron 原先的设计,所有网络服务都在网络节点上进行,这意味着大量的流量和处理,给网络节点带来了很大的压力。这些处理的核心是路由器服务。任何需要跨子网的访问都需要路由器进行路由。很自然,能否让计算节点上也运行路由器服务?这个设计思路无疑是更为合理的,但具体实施起来需要诸多细节上的技术考量。

为了降低网络节点的负载,同时提高可扩展性,OpenStack 自 Juno 版本开始正式引入了分布式路由(Distributed Virtual Router,DVR)特性(用户可以选择使用与否),来让计算节点自己来处理原先的大量东西向流量和非 SNAT 南北流量(有 floating IP 的 vm 跟外面的通信)。

这样网络节点只需要处理占到一部分的 SNAT (无 floating IP 的 vm 跟外面的通信)流量,大大降低了负载和整个系统对网络节点的依赖。很自然的,FWaaS 也可以跟着放到计算节点上。
DHCP 服务、VPN 服务目前仍然需要集中在网络节点上进行。

控制节点:

openstack-config --set  /etc/neutron/neutron.conf DEFAULT router_distributed  True

网络节点:

openstack-config --set  /etc/neutron/plugins/ml2/openvswitch_agent.ini DEFAULT  enable_distributed_routing  True
openstack-config --set  /etc/neutron/l3_agent.ini DEFAULT agent_mode  dvr_snat

计算节点:
修改配置文件/etc/neutron/l3_agent.ini

# cp -a  /etc/neutron/l3_agent.ini /etc/neutron/l3_agent.ini_bak
[DEFAULT]
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
openstack-config --set  /etc/neutron/l3_agent.ini DEFAULT agent_mode  dvr 
openstack-config --set  /etc/neutron/plugins/ml2/openvswitch_agent.ini DEFAULT enable_distributed_routing  True
openstack-config --set  /etc/neutron/plugins/ml2/openvswitch_agent.ini  ovs bridge_mappings
physnet1:br-eth1
ovs-vsctl add-br br-eth1 
ovs-vsctl add-port br-eth1 ens33(业务网)

计算节点上重启 neutron-l3-agent服务(默认没开启)

猜你喜欢

转载自blog.csdn.net/wylfengyujiancheng/article/details/80033709