RabbitMQ cluster in HA

Bug #1434474 reported by Hugo Rosnet
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
puppet-openstack-cloud
Fix Released
Medium
Emilien Macchi

Bug Description

Hi,

I recently installed J.1.0.0 and was wondering about the rabbitMQ cluster configuration.

So apparently we have a cluster:
 rabbitmqctl cluster_status
Cluster status of node rabbit@node1 ...
[{nodes,[{disc,[rabbit@node1,rabbit@node2,rabbit@node3]}]},
 {running_nodes,[rabbit@node2,rabbit@node3,rabbit@node1]},
 {cluster_name,<<"<email address hidden>">>},
 {partitions,[]}]
...done.

However no policies are applied to it, so no mirroring what so ever:
rabbitmqctl list_policies
Listing policies ...
...done.

It could be nice to integrate mirrored queues as true/false to have it mirrored every where or, at best have the 'exactly' policy to chose how many times we want to replicate this information - which could be more interesting on big infrastructure.

More information here: https://www.rabbitmq.com/ha.html

Revision history for this message
Emilien Macchi (emilienm) wrote :

Thanks, I'm adding it in our backlog.

Changed in puppet-openstack-cloud:
importance: Undecided → Medium
status: New → Confirmed
Changed in puppet-openstack-cloud:
assignee: nobody → Emilien Macchi (emilienm)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to puppet-openstack-cloud (master)

Fix proposed to branch: master
Review: https://review.openstack.org/168989

Changed in puppet-openstack-cloud:
status: Confirmed → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to puppet-openstack-cloud (master)

Reviewed: https://review.openstack.org/168989
Committed: https://git.openstack.org/cgit/stackforge/puppet-openstack-cloud/commit/?id=7f2ae4f10560d77040f559046b1571ec508c9c1d
Submitter: Jenkins
Branch: master

commit 7f2ae4f10560d77040f559046b1571ec508c9c1d
Author: Emilien Macchi <email address hidden>
Date: Mon Mar 30 12:08:11 2015 -0400

    messaging: enable HA queues when HAproxy binding is enabled

    If HAproxy binding is enabled for RabbitMQ service, we need to ensure
    queres are replicated and this is done by a specific policy.

    Since OpenStack is already tagging queues with rabbit_ha_queues=True
    parameter everywhere, we just create the policy and the queues by
    themselves.

    This is enabled only if HAproxy binding is enabled for now, because the
    feature seems required when using RabbitMQ load-balancing. The other
    use-case (when using Oslo messaging to failover to another RabbitMQ node)
    does not require this policy. If a node is down, OpenStack will fallback
    to another RabbitMQ node in the list from parameters.

    This patch allows you to configure 'exactly' or 'all' RabbitMQ HA policy modes.

    Why using 'exactly' mode ?
    To let operators scale up/down the replication accross an exact number
    of nodes.

    How it works ?
    Queue is mirrored to count nodes in the cluster. If there are less than
    count nodes in the cluster, the queue is mirrored to all nodes. If there
    are more than count nodes in the cluster, and a node containing a mirror
    goes down, then a new mirror will be created on another node.

    Also change the Puppetfile to have latest commits in puppetlabs-rabbitmq
    to have some fix related to rabbitmq_policy provider.
    Without this fix, some parameters are not integers but string, and we
    need integer.

    Closes-bug #1434474

    Change-Id: I3f732360f83e10e0ae525573f9afdb7f68475149

Changed in puppet-openstack-cloud:
status: In Progress → Fix Committed
Changed in puppet-openstack-cloud:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.