[Openstack] High Available queues in rabbitmq

Eugene Kirpichov ekirpichov at gmail.com
Tue Jul 24 15:49:38 UTC 2012


Hi Alessandro,

My patch is about removing the need for pacemaker (and it's pacemaker
that I denoted with the term "TCP load balancer").

I didn't submit the patch yesterday because I underestimated the
effort to write unit tests for it and found a few issues on the way. I
hope I'll finish today.

On Tue, Jul 24, 2012 at 12:00 AM, Alessandro Tagliapietra
<tagliapietra.alessandro at gmail.com> wrote:
> Sorry for the delay, i was out from work.
> Awesome work Eugene, I don't need the patch instantly as i'm still building the infrastructure.
> Will it will take alot of time to go in Ubuntu repositories?
>
> Why you said you need load balancing? You can use only the master node and in case the rabbitmq-server dies, switch the ip to the new master with pacemaker, that's how I would do.
>
> Best Regards
>
> Alessadro
>
>
> Il giorno 23/lug/2012, alle ore 21:49, Eugene Kirpichov ha scritto:
>
>> +openstack-dev@
>>
>> To openstack-dev: this is a discussion of an upcoming patch about
>> native RabbitMQ H/A support in nova. I'll post the patch for
>> codereview today.
>>
>> On Mon, Jul 23, 2012 at 12:46 PM, Eugene Kirpichov <ekirpichov at gmail.com> wrote:
>>> Yup, that's basically the same thing that Jay suggested :) Obvious in
>>> retrospect...
>>>
>>> On Mon, Jul 23, 2012 at 12:42 PM, Oleg Gelbukh <ogelbukh at mirantis.com> wrote:
>>>> Eugene,
>>>>
>>>> I suggest just add option 'rabbit_servers' that will override
>>>> 'rabbit_host'/'rabbit_port' pair, if present. This won't break anything, in
>>>> my understanding.
>>>>
>>>> --
>>>> Best regards,
>>>> Oleg Gelbukh
>>>> Mirantis, Inc.
>>>>
>>>>
>>>> On Mon, Jul 23, 2012 at 10:58 PM, Eugene Kirpichov <ekirpichov at gmail.com>
>>>> wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> I'm working on a RabbitMQ H/A patch right now.
>>>>>
>>>>> It actually involves more than just using H/A queues (unless you're
>>>>> willing to add a TCP load balancer on top of your RMQ cluster).
>>>>> You also need to add support for multiple RabbitMQ's directly to nova.
>>>>> This is not hard at all, and I have the patch ready and tested in
>>>>> production.
>>>>>
>>>>> Alessandro, if you need this urgently, I can send you the patch right
>>>>> now before the discussion codereview for inclusion in core nova.
>>>>>
>>>>> The only problem is, it breaks backward compatibility a bit: my patch
>>>>> assumes you have a flag "rabbit_addresses" which should look like
>>>>> "rmq-host1:5672,rmq-host2:5672" instead of the prior rabbit_host and
>>>>> rabbit_port flags.
>>>>>
>>>>> Guys, can you advise on a way to do this without being ugly and
>>>>> without breaking compatibility?
>>>>> Maybe have "rabbit_host", "rabbit_port" be ListOpt's? But that sounds
>>>>> weird, as their names are in singular.
>>>>> Maybe have "rabbit_host", "rabbit_port" and also "rabbit_host2",
>>>>> "rabbit_port2" (assuming we only have clusters of 2 nodes)?
>>>>> Something else?
>>>>>
>>>>> On Mon, Jul 23, 2012 at 11:27 AM, Jay Pipes <jaypipes at gmail.com> wrote:
>>>>>> On 07/23/2012 09:02 AM, Alessandro Tagliapietra wrote:
>>>>>>> Hi guys,
>>>>>>>
>>>>>>> just an idea, i'm deploying Openstack trying to make it HA.
>>>>>>> The missing thing is rabbitmq, which can be easily started in
>>>>>>> active/active mode, but it needs to declare the queues adding an
>>>>>>> x-ha-policy entry.
>>>>>>> http://www.rabbitmq.com/ha.html
>>>>>>> It would be nice to add a config entry to be able to declare the queues
>>>>>>> in that way.
>>>>>>> If someone know where to edit the openstack code, else i'll try to do
>>>>>>> that in the next weeks maybe.
>>>>>>
>>>>>>
>>>>>> https://github.com/openstack/openstack-common/blob/master/openstack/common/rpc/impl_kombu.py
>>>>>>
>>>>>> You'll need to add the config options there and the queue is declared
>>>>>> here with the options supplied to the ConsumerBase constructor:
>>>>>>
>>>>>>
>>>>>> https://github.com/openstack/openstack-common/blob/master/openstack/common/rpc/impl_kombu.py#L114
>>>>>>
>>>>>> Best,
>>>>>> -jay
>>>>>>
>>>>>> _______________________________________________
>>>>>> Mailing list: https://launchpad.net/~openstack
>>>>>> Post to     : openstack at lists.launchpad.net
>>>>>> Unsubscribe : https://launchpad.net/~openstack
>>>>>> More help   : https://help.launchpad.net/ListHelp
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Eugene Kirpichov
>>>>> http://www.linkedin.com/in/eugenekirpichov
>>>>>
>>>>> _______________________________________________
>>>>> Mailing list: https://launchpad.net/~openstack
>>>>> Post to     : openstack at lists.launchpad.net
>>>>> Unsubscribe : https://launchpad.net/~openstack
>>>>> More help   : https://help.launchpad.net/ListHelp
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Eugene Kirpichov
>>> http://www.linkedin.com/in/eugenekirpichov
>>
>>
>>
>> --
>> Eugene Kirpichov
>> http://www.linkedin.com/in/eugenekirpichov
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~openstack
>> Post to     : openstack at lists.launchpad.net
>> Unsubscribe : https://launchpad.net/~openstack
>> More help   : https://help.launchpad.net/ListHelp
>



-- 
Eugene Kirpichov
http://www.linkedin.com/in/eugenekirpichov




More information about the Openstack mailing list