配置了两台redis主从failover

使用keepalived+lvs配置了两台redis,

用作主从failover,

192.168.56.101:6380工作机器1 ;部署redis1 keepalived 1

192.168.56.102:6380工作机器2;部署redis1 keepalived 1

192.168.56.103对外开放的访问VIP

效果:两台机器中有任何一台keepalived挂掉后,另外一台keepalived会争抢VIP,同时运行切换脚本,保证了VIP服务的可用性

客户端只要连接VIP就可以透明使用redis.

缺点:如果只是redis挂掉,keepalived没挂掉,则切换不成功 


-----------------------------------keepalived配置-----------------------------------------

文件/etc/keepalived/keepalived.conf

vrrp_script chk_redis {
                script "/home/proxy/keep2machine2redis/scripts/redis_check.sh" 2
                interval 2
}
vrrp_instance VI_1 {
        state SLAVE                             
        interface eth3                             
        virtual_router_id 51
        priority 150
	 nopreempt                                
        authentication {
                     auth_type PASS
                    auth_pass redis 
        track_script {
                chk_redis 
        }
        virtual_ipaddress {
             192.168.56.103                        
        }
        notify_master /home/proxy/keep2machine2redis/scripts/redis_master.sh
        notify_backup /home/proxy/keep2machine2redis/scripts/redis_backup.sh
        notify_fault  /home/proxy/keep2machine2redis/scripts/redis_fault.sh
        notify_stop   /home/proxy/keep2machine2redis/scripts/redis_stop.sh
}


  
 

redis状态与主从切换脚本

/home/proxy/keep2machine2redis/scripts

检测存活脚本

#!/bin/bash
echo "going PING 6380" >>/home/proxy/keep2machine2redis/log.txt
ALIVE=`/home/cache/redis6380/src/redis-cli -p 6380 PING`
echo  "6380" $ALIVE  >>/home/proxy/keep2machine2redis/log.txt

if [ "$ALIVE" == "PONG" ]; then
  
  echo $ALIVE
  exit 0
else
  echo $ALIVE
  exit 1
fi

切换本机redis为主机脚本

#!/bin/bash

REDISCLI="/home/cache/redis6380/src/redis-cli -p 6380"
LOGFILE="/home/proxy/keep2machine2redis/log.txt"

echo "[master]" >> $LOGFILE
date >> $LOGFILE
echo "Being master...." >> $LOGFILE 2>&1

echo "Run SLAVEOF cmd ..." >> $LOGFILE
$REDISCLI SLAVEOF 192.168.56.102 6380 >> $LOGFILE  2>&1
sleep 10 #延迟10秒以后待数据同步完成后再取消同步状态

echo "Run SLAVEOF NO ONE cmd ..." >> $LOGFILE
$REDISCLI SLAVEOF NO ONE >> $LOGFILE 2>&1

切换本机为从 脚本

#!/bin/bash

REDISCLI="/home/cache/redis6380/src/redis-cli -p 6380 "
LOGFILE="/home/proxy/keep2machine2redis/log.txt"

echo "[backup]" >> $LOGFILE
date >> $LOGFILE
echo "Being slave....wait" >> $LOGFILE 2>&1

sleep 5 
echo "Run SLAVEOF cmd ..." >> $LOGFILE
$REDISCLI SLAVEOF 192.168.56.102 6380 >> $LOGFILE  2>&1


需要解决的问题:

1.keepalived是多久检测一次redis状态,是否可以心跳?

2.我试图在同一个keepalived配置中配置两个vrrp实例,但是这样启动有问题,查看ip addr发现vip没绑定上

3.我本来是用keepalived -f configFile.conf 的启动方式,但是查看/etc/log/message  发现三个进程中有一个child process faild,启动失败,

后来是用默认的配置文件位置就好了。。。。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值