I've managed to get a test Redis configuration up and running... however this is the first time I've played with a master/slave resource, and I'm noticing some odd behavior in the monitoring actions.  Setting in a super quick monitoring interval of 1 second, I noticed at first only the slave was being monitored, 2x in each second.  Then after changing a bunch of config options and several cluster restarts, I noticed the monitoring action had moved to the master, again 2x events in each second.<br>

<br><span style="font-family:courier new,monospace">redis(redis:1)[2203]:   2012/11/12_15:17:52 INFO: redis-server is running (PID 30759)</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">redis(redis:1)[2203]:   2012/11/12_15:17:52 INFO: redis-server is running (PID 30759)</span><br style="font-family:courier new,monospace">

<span style="font-family:courier new,monospace">redis(redis:1)[2203]:   2012/11/12_15:17:52 INFO: redis-server is running (as master)</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">redis(redis:1)[2203]:   2012/11/12_15:17:52 INFO: redis-server is running (as master)</span><br style="font-family:courier new,monospace">

<br>Here is my primitive and master/slave definition:<br><br><span style="font-family:courier new,monospace">primitive redis ocf:heartbeat:redis \</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">        meta target-role="Master" is-managed="true" \</span><br style="font-family:courier new,monospace">

<span style="font-family:courier new,monospace">        op monitor interval="1s" role="Master" timeout="5s" on-fail="restart"</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">ms redis_clone redis \</span><br style="font-family:courier new,monospace">

<span style="font-family:courier new,monospace">        meta notify="true" is-managed="true" ordered="false" interleave="false" globally-unique="false" target-role="Master" migration-threshold="1"</span><br style="font-family:courier new,monospace">

<br clear="all">I'd like to figure out how to make sure both master and slave are actively monitored.  Let me know if you need any more info on my config!<br><br>Thank you,<br><br>--Cal<br>
<br><br><div class="gmail_quote">On Fri, Nov 9, 2012 at 4:52 PM, David Vossel <span dir="ltr"><<a href="mailto:dvossel@redhat.com" target="_blank">dvossel@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="im"><br>
<br>
----- Original Message -----<br>
> From: "Cal Heldenbrand" <<a href="mailto:cal@fbsdata.com">cal@fbsdata.com</a>><br>
> To: "The Pacemaker cluster resource manager" <<a href="mailto:pacemaker@oss.clusterlabs.org">pacemaker@oss.clusterlabs.org</a>><br>
> Sent: Friday, November 9, 2012 4:29:05 PM<br>
> Subject: [Pacemaker] Custom event script during master/slave failover?<br>
><br>
><br>
> Hi everyone,<br>
><br>
> I'm playing around with the possibility of using Pacemaker in a Redis<br>
> master/slave cluster. The difficult part of this, is that Redis will<br>
> not automatically flip itself from read-only slave mode into master<br>
> mode. A client needs to connect to the slave server and run this<br>
> SLAVEOF NO ONE command to turn it into a master.<br>
<br>
</div>The resource agent should be able to do this. Pacemaker will tell the resource agent to promote/demote a resource.  Your Redis agent can then go off and do whatever logic is necessary to actually transition the process a master/slave process.<br>


<div class="im"><br>
><br>
> If I set up a master/slave primitive, is it possible to fire an event<br>
> script during a failover event that would allow me to do this?<br>
><br>
> After the stonith event fires and the broken master reboots,<br>
> I would<br>
> write in something special in the Redis init.d script to detect if<br>
> my peer is already a master, and start up in slave mode.<br>
<br>
</div>If you are using Pacemaker, it should be controlling what node has the master resource and what node has the slave resource.  Take a look at what OCF scripts are and how pacemaker uses them.<br>
<div class="im"><br>
><br>
> Has anyone else worked up a cluster config with Redis?<br>
<br>
</div>Using google, found some work someone did on a redis resource agent.<br>
<a href="https://github.com/martinwalter/resource-agents/blob/master/heartbeat/redis" target="_blank">https://github.com/martinwalter/resource-agents/blob/master/heartbeat/redis</a><br>
<br>
-- Vossel<br>
> Thank you,<br>
><br>
> --Cal<br>
><br>
> _______________________________________________<br>
> Pacemaker mailing list: <a href="mailto:Pacemaker@oss.clusterlabs.org">Pacemaker@oss.clusterlabs.org</a><br>
> <a href="http://oss.clusterlabs.org/mailman/listinfo/pacemaker" target="_blank">http://oss.clusterlabs.org/mailman/listinfo/pacemaker</a><br>
><br>
> Project Home: <a href="http://www.clusterlabs.org" target="_blank">http://www.clusterlabs.org</a><br>
> Getting started:<br>
> <a href="http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf" target="_blank">http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf</a><br>
> Bugs: <a href="http://bugs.clusterlabs.org" target="_blank">http://bugs.clusterlabs.org</a><br>
><br>
<br>
_______________________________________________<br>
Pacemaker mailing list: <a href="mailto:Pacemaker@oss.clusterlabs.org">Pacemaker@oss.clusterlabs.org</a><br>
<a href="http://oss.clusterlabs.org/mailman/listinfo/pacemaker" target="_blank">http://oss.clusterlabs.org/mailman/listinfo/pacemaker</a><br>
<br>
Project Home: <a href="http://www.clusterlabs.org" target="_blank">http://www.clusterlabs.org</a><br>
Getting started: <a href="http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf" target="_blank">http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf</a><br>
Bugs: <a href="http://bugs.clusterlabs.org" target="_blank">http://bugs.clusterlabs.org</a><br>
</blockquote></div><br>