发生故障转移时,Redis + Sentinel无法执行client-reconfig-script(VIP漂移)

时间:2018-04-02 03:24:17

标签: redis redis-sentinel

我已经在linux CentOS7.0(redis v4.0.2)上设置了一个redis主从集群,并对HA进行了哨兵监控。

Sentinel工作正常,当我关闭三个节点中的一个节点时,另一个节点被选为新主节点。

现在我尝试设置重新配置脚本以通知客户端新主服务器。

我在/usr/opt/notify_master.sh中创建了一个可读且可执行的(chmod a + rx)脚本,然后我在/etc/sentinel.conf中的3个sentinel节点中添加了这样一行:

sentinel client-reconfig-script mymaster /usr/opt/notify_master.sh

使用sentinel master mymaster命令查看sentinel配置,我可以确认client-reconfig-script配置得很好:

10.0.0.41:26379> sentinel master mymaster
...

41) "client-reconfig-script"

42) "/usr/opt/notify_master.sh"

但是,发生故障转移时,不会触发我的重新配置脚本。我想知道为什么。这是哨兵日志:

3314:X 02 Apr 10:14:07.069 # +sdown master mymaster 10.0.0.41 6379
3314:X 02 Apr 10:14:07.159 # +new-epoch 254
3314:X 02 Apr 10:14:07.161 # +vote-for-leader 8ed286e02e81d6946e0d007f569e164a9404c03f 254
3314:X 02 Apr 10:14:07.679 # +config-update-from sentinel 8ed286e02e81d6946e0d007f569e164a9404c03f 10.0.0.40 26379 @ mymaster 10.0.0.41 6379
3314:X 02 Apr 10:14:07.679 # +switch-master mymaster 10.0.0.41 6379 10.0.0.42 6379
3314:X 02 Apr 10:14:07.680 * +slave slave 10.0.0.40:6379 10.0.0.40 6379 @ mymaster 10.0.0.42 6379
3314:X 02 Apr 10:14:07.680 * +slave slave 10.0.0.41:6379 10.0.0.41 6379 @ mymaster 10.0.0.42 6379
3314:X 02 Apr 10:14:37.742 # +sdown slave 10.0.0.41:6379 10.0.0.41 6379 @ mymaster 10.0.0.42 6379
3314:X 02 Apr 10:48:36.099 # -sdown slave 10.0.0.41:6379 10.0.0.41 6379 @ mymaster 10.0.0.42 6379
3314:X 02 Apr 10:48:46.056 * +convert-to-slave slave 10.0.0.41:6379 10.0.0.41 6379 @ mymaster 10.0.0.42 6379

这是notify_master.sh脚本(执行VIP漂移)

#!/bin/bash

MASTER_IP=$6  

LOCAL_IP=`ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"​` 

VIP='10.0.0.31'

NETMASK='24'

INTERFACE='eno16777736'  

if [ ${MASTER_IP} = ${LOCAL_IP} ];then  



 sudo /usr/sbin/ip  addr  add ${VIP}/${NETMASK}  dev ${INTERFACE} 



   sudo /usr/sbin/arping -q -c 3 -A ${VIP} -I ${INTERFACE}



  exit 0

else



 sudo /usr/sbin/ip  addr del  ${VIP}/${NETMASK}  dev ${INTERFACE}  



  exit 0

fi

exit 1

这个脚本是mannauly。

0 个答案:

没有答案
相关问题