[ClusterLabs] Is 20 seconds to complete redis switchover to be expected?

steven prothero steven at marimo-tech.com
Tue Mar 31 02:27:07 EDT 2020


I am new with Pacemaker (new to redis also) and appreciate the info shared here.

I believe with Redis sentinel  a switchover is about 2 seconds.
Reading a post about Pacemaker with Redis, the author said he was
doing it in 3 seconds.  For me, it takes about 20 seconds and I am
wondering what I am doing wrong.

Example timeline from looking at the logs:

:00 - node1 crash (redis-server killed)
:02 - Pacemaker knows there is a problem.
:02 - STONITH/fence starts.  (fence_ipmilan power off)
:09 - STONITH/fence finished.
:18 - Redis switched.
:19 - VIP switched.

During the time of the stonith/ fencing action nothing else is
happening. It is the fence_ipmilan which does a poweroff. Can the
fencing be started on node1 while node2 works in parallel to take care
of the redis & VIP?   Also, after the stonith/fence is finished for 9
seconds or so it is just pacemaker trying to invite the dead node1
back (I think).  Be great if I could skip that and go directly to
redis switch & vip switchovers.

I have been researching & testing with various configurations and
would appreciate any pointers and advice.

I am using pacemaker 1.1.10, with 2 nodes.

my (edited) crm configure show :

node $id="1" example1.com \
        attributes standby="off"
node $id="2" example2.com
primitive fence_example1 stonith:fence_ipmilan \
        params pcmk_host_list="example1.com" ipaddr="10.24.x.xxx"
login="user" passwd="password" pcmk_action_limit="-1"
concurrent-fencing="true" lanplus="true" action="off" \
        op monitor interval="20s" \
        meta target-role="Started"
primitive fence_example2 stonith:fence_ipmilan \
        params pcmk_host_list="example2.com" ipaddr="10.24.x.yyy"
login="user" passwd="password" concurrent-fencing="true"
pcmk_action_limit="-1" lanplus="true" action="off" delay="10" \
        op monitor interval="20s" \
        meta target-role="Started"
primitive redis ocf:heartbeat:redis \
        params bin="/usr/local/bin/redis-server"
client_bin="/usr/local/bin/redis-cli" port="6379"
config="/etc/redis/redis.conf" socket_name="redis.sock"
pidfile_name="redis.pid" \
        meta target-role="Started" is-managed="true" \
        op monitor interval="1s" role="Master" timeout="1s" on-fail="fence"
primitive res_vip ocf:heartbeat:IPaddr2 \
        params ip="10.24.x.zzz" nic="bond0.xx" cidr_netmask="22" \
        op monitor interval="10" \
        meta target-role="Started"
ms redis_clone redis \
        meta notify="true" is-managed="true" ordered="false"
interleave="true" globally-unique="false" target-role="Started"
colocation redis-first inf: redis_clone:Master res_vip
order redis-before-vip inf: redis_clone:promote res_vip:start
property $id="cib-bootstrap-options" \
        dc-version="1.1.10-42f2063" \
        cluster-infrastructure="corosync" \
        stonith-enabled="true" \
        no-quorum-policy="ignore" \
        default-resource-stickiness="200" \
        batch-limit="300" \
property $id="redis_replication" \
rsc_defaults $id="rsc-options" \

Thank you very much

More information about the Users mailing list