[Openstack] How to achieve HA and Scalability for Neutron

Li Ma skywalker.nick at gmail.com
Fri Jan 3 10:33:35 UTC 2014


> 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.

Hi jay, how about dhcp-agent? I've went through the bps of neutron
for icehouse release. There's no related topics on dhcp-agent.

I wonder how to implement the same functionality of dhcp-agent.

Thanks very much,

Li Ma (Nick)
Email: skywalker.nick at gmail.com


2013/12/28 Li Ma <skywalker.nick at gmail.com>:
> That's awesome!! I'll try and test the patch for grizzly and also the
> new function of icehouse.
>
> Many thanks, jay.
>
>
> 2013/12/27 Jay Pipes <jaypipes at gmail.com>:
>> 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>
>>>
>>>
>>
>>
>> _______________________________________________
>> Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
>> Post to     : openstack at lists.openstack.org
>> Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
>
>
>
> --
> Li Ma (Nick)
>
> Architect of Stackinsider
>
> Email: skywalker.nick at gmail.com




More information about the Openstack mailing list