[Openstack] How to achieve HA and Scalability for Neutron

Jay Pipes jaypipes at gmail.com
Thu Dec 26 16:58:10 UTC 2013


On 12/26/2013 07:43 AM, skywalker.nick at gmail.com wrote:
> Hi stackers,
> I'm preparing for an OpenStack cloud in the production system. I've
> achieved HA and load balancing for most of the components to a certain
> degree.
> Finally I find it hard for Neutron to do such configuration. Are there
> any ways to run multiple l3-agents and dhcp-agents and cluster them
> together?

Right, the Neutron L3 agent is the only OpenStack service that is not 
stateless, and therefore you cannot use traditional load-balancing 
across a set of identical nodes.

That said, there's nothing wrong with running multiple L3 nodes, with 
routers for different tenants hosted on different L3 agents. We do this 
successfully in our deployment using a custom Neutron scheduler that my 
colleague Alan Meadows wrote [1] and a Python script (also written by 
Alan) that runs in cron looking for failures on an L3 agent and if 
found, moves the routers from the failed node to a working one. [2]

The advantage to this vs. something like pacemaker is that you spread 
the L3 agent workload across many nodes -- accomplishing a sort of 
poor-man's load balancing/sharding for L3 agent requests.

Best,
-jay

[1] https://gist.github.com/jaypipes/8135839
[2] 
https://github.com/stackforge/cookbook-openstack-network/blob/master/files/default/neutron-ha-tool.py




More information about the Openstack mailing list