[Openstack] How to achieve HA and Scalability for Neutron
Jay Pipes
jaypipes at gmail.com
Thu Dec 26 19:36:16 UTC 2013
On 12/26/2013 02:22 PM, Diego Parrilla SantamarĂa wrote:
> That's really a nice stuff...
So, to wrap up this particular mini-thread... here is the solution:
If on Grizzly or Havana and you don't want use Pacemaker (so that you
can spread L3 agent load across multiple nodes):
1) Apply this patch to Neutron:
https://gist.github.com/jaypipes/8135839
2) Set the router_scheduler_driver in nova.conf to
neutron.scheduler.l3_agent_scheduler.LeastUtilizedScheduler
Reference:
https://github.com/stackforge/cookbook-openstack-network/blob/master/templates/default/neutron.conf.erb#L232
3) Put this script into a cron job:
https://github.com/stackforge/cookbook-openstack-network/blob/master/files/default/neutron-ha-tool.py
If you're on Icehouse, simply do:
1) Set the router_scheduler_driver in nova.conf to
neutron.scheduler.l3_agent_scheduler.LeastRoutersScheduler
Reference:
https://github.com/openstack/neutron/blob/master/etc/neutron.conf#L223
2) Put this script into a cron job:
https://github.com/stackforge/cookbook-openstack-network/blob/master/files/default/neutron-ha-tool.py
Best,
-jay
> On Thu, Dec 26, 2013 at 5:58 PM, Jay Pipes <jaypipes at gmail.com
> <mailto:jaypipes at gmail.com>> wrote:
>
> On 12/26/2013 07:43 AM, skywalker.nick at gmail.com
> <mailto: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
> <https://gist.github.com/jaypipes/8135839>
> [2]
> https://github.com/stackforge/__cookbook-openstack-network/__blob/master/files/default/__neutron-ha-tool.py
> <https://github.com/stackforge/cookbook-openstack-network/blob/master/files/default/neutron-ha-tool.py>
>
>
> _________________________________________________
> Mailing list:
> http://lists.openstack.org/__cgi-bin/mailman/listinfo/__openstack
> <http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack>
> Post to : openstack at lists.openstack.org
> <mailto:openstack at lists.openstack.org>
> Unsubscribe :
> http://lists.openstack.org/__cgi-bin/mailman/listinfo/__openstack
> <http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack>
>
>
More information about the Openstack
mailing list