keepalived+redis HA方案

高可用redis主备方案基于keepalived保证在master宕机时,slaver可以自动切换为master提供服务。待之前的master机器上线了,可以选择是重新取回master权利还是作为slaver。当两者都正常时两者数据一致,都可提供服务

参考文档http://heylinux.com/archives/1942.html

安装包下载:keepalived包:http://www.keepalived.org/software/keepalived-1.2.19.tar.gz

                        redis包:https://codeload.github.com/antirez/redis/tar.gz/2.8.21

安装目录(以/tmp为例 ):

keepalived

cd /tmp

wget  http://www.keepalived.org/software/keepalived-1.2.19.tar.gz

tar -xzvf  keepalived-1.2.19.tar.gz

cd keepalived-1.2.19

./configure &&make &&make install

cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/keepalived

cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/

cp /tmp/keepalived-1.2.19/bin/keepalived /usr/sbin/

redis:

cd /tmp

wget  https://codeload.github.com/antirez/redis/tar.gz/2.8.21

tar -xzvf  2.8.21

cd redis-2.8.21

make

cp src/redis-cli /usr/local/sbin/

cp src/redis-server /usr/local/sbin/


配置基于开头的参考文档

这里有几个点需要注意:

1.主备redis.conf 中daemonize yes 备机redis.conf中开启slaveof  master_ip master_port 

2.如果不想让master宕机后重新上线后发生主从切换,需要加上nopreempt


3.keepalived脑裂问题,当开启iptables服务时,会出现主备都是MASTER状态的情况,这是由于双方收不到彼此的心跳包,都认为对方

已下线,于是将自己置为master状态。

需要在/etc/sysconfig/iptables中添加:

-A INPUT -p vrrp -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT

其中6379是默认的redis端口号,自定的话自行修改之

改好后执行service iptables restart

然后按照参考文档的测就可以了, 用第三台机器测,中途在master机器上执行killall -9 redis-server

可以看到slaver机器上的日志里会打印切换为master状态的信息。第三台机器用虚拟ip访问仍然正常使用




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值