Fail over cluster configuration on windows servers

130 views
Skip to first unread message

Derek Sylvester

unread,
Jul 25, 2016, 10:26:15 AM7/25/16
to rabbitmq-users
Hi,

Trying to get a fail over cluster configuration up and running on windows server 2012 R2 (not a mirrored cluster but a fail over cluster as described in https://www.rabbitmq.com/pacemaker.html). Has anyone done this? If so, do you have any detailed steps of how?

Thanks.

Derek Sylvester

unread,
Jul 25, 2016, 10:27:41 AM7/25/16
to rabbitmq-users
Obviously I'm not asking how to use pacemaker etc on windows. Just trying to get the rabbitmq nodes configured correctly (i.e. to use the same shared storage location and the same node name).

Derek Sylvester

unread,
Jul 25, 2016, 11:11:55 AM7/25/16
to rabbitmq-users
Or is there a windows version of the instruction anywhere?


On Monday, July 25, 2016 at 3:26:15 PM UTC+1, Derek Sylvester wrote:

Michael Klishin

unread,
Jul 25, 2016, 8:04:27 PM7/25/16
to rabbitm...@googlegroups.com
Derek,

There is no Windows version for our Pacemaker guide that I know of. I personally don't have
any experience with Pacemaker on Windows to comment on how significant the differences
can be.

--
You received this message because you are subscribed to the Google Groups "rabbitmq-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rabbitmq-user...@googlegroups.com.
To post to this group, send email to rabbitm...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
MK

Staff Software Engineer, Pivotal/RabbitMQ

Derek Sylvester

unread,
Jul 26, 2016, 4:19:43 AM7/26/16
to rabbitmq-users
Hi Michael,

As I mentioned, it's not really pacemaker on windows I was looking for. I guess I made a hash of explaining the question. I'm trying to understand how, on windows servers, to achieve the same thing that is described in that article on Linux. Specifically the sections about configuring RabbitMQ to use a shared storage location (a simple network share) and how to set up the nodes such that they have are a hot standby for each other (I can configure MS failover cluster and network storage with no issues, I just can't get two nodes to be happy using the same storage location or configure them with the same node name etc).

Thanks.

Michael Klishin

unread,
Jul 26, 2016, 7:33:52 AM7/26/16
to rabbitm...@googlegroups.com
Pacemaker does not have two live nodes with the same node name, that's not supported
by the Erlang runtime for fairly obvious reasons.

Shared storage is also something to approach very carefully because concurrent writes from
2 nodes will step over each others feet.

Most of what Pacemaker does is to ensure only one node uses the shared resource (e.g. IP address or
node name).

Search list archives for "hot stand-by", there are earlier discussions about how to maintain a stand-by with
exchange federation and TTL for messages.

Joseph L. Casale

unread,
Jul 26, 2016, 7:35:22 AM7/26/16
to rabbitmq-users
On Tuesday, July 26, 2016 at 2:19:43 AM UTC-6, Derek Sylvester wrote:
> I just can't get two nodes to be happy using the same storage location or configure them with the same node name etc).

What does this provide over and above the existing facilities which are native to the broker?
Mirrored queues and consumers with either multiple host connection strategies or indirection
with a load balancer?

The two concepts are not interchangeable, when the application is itself not fault tolerant
you then need some level of platform availability with a virtual ip (nfs etc) however RabbitMQ
natively implements this and its known to work so you don't have to re-invent the wheel.

jlc

Derek Sylvester

unread,
Jul 26, 2016, 2:02:50 PM7/26/16
to rabbitmq-users
Ok, so the example on your web site that I linked to suggests that, for high availability with a two node configuration, only a single node runs at a time, with the other being an identically configured standby but with the broker not running. Some higher level service determines when the current live node is down and starts up the other.

"With the high availability setup described in this guide, when a node fails, the durable queues and the persistent messages within them can be recovered by a different node...
The main trick to HA Rabbit is to ensure that when the passive node becomes the active node, it must have the same node-name as the failed node. It must also have read and write access to the files in the shared storage."

So, the two nodes use the same mnesia persistent storage, with only on node active at a time. And both nodes must have the same node name. The example goes on to describe how this is done on linux using pacemaker and drbd. What I'm trying to do is configure node1 to use a network share, and node2 to use the same network share. And for node2 to have the same node name as node1 so that when it comes only it can pickup where node1 left off and read the same mnesia database. This is what the suggested HA configuration is, is it not?

So the question is how to configure RabbitMQ on windows servers to achieve this. I can find no examples of how this has been done. Surely this is possible on windows, or am I completely missing something here?

Thanks.

Derek Sylvester

unread,
Jul 26, 2016, 2:05:52 PM7/26/16
to rabbitmq-users
Hi Joseph, I'm not trying to reinvent the wheel here (at least I hope not). Is configure a similar windows server based setup as the example on the RabbitMQ web site for HA (not a cluster with mirrored queues)

Thanks.

Joseph L. Casale

unread,
Jul 26, 2016, 8:06:15 PM7/26/16
to rabbitmq-users
On Tuesday, July 26, 2016 at 12:05:52 PM UTC-6, Derek Sylvester wrote:
> Hi Joseph, I'm not trying to reinvent the wheel here (at least I hope not). Is configure
> a similar windows server based setup as the example on the RabbitMQ web site for
> HA (not a cluster with mirrored queues)

I can not account for the article however, pacemaker, corosync and the likes are used
when the applications themselves can not account for high availability.

RabbitMQ can and client software exists for many platforms that can take advantage
of it.

Cut out all of those moving parts, even if you get it working, I assure you it will be far
more fragile than letting RabbitMQ handle HA and using good client software.

jlc
Reply all
Reply to author
Forward
0 new messages