1、2016-01-061概述本文档描述如何部署实现Redis双主备份。2系统方案2.1硬件设备常用的web服务器即可2.2操作系统CentOS 6.6,建议使用公司的PXE方式进行安装。2.3其他组件Keepalived可通过yum方式安装,也可对源码进行编译安装,本文以yum安装为例。Redis建议从官方网站下载源码包进行编译安装。下载链接:http:/download.redis.io/releases/redis-3.0.5.tar.gz3部署过程3.1环境准备实验环境介绍服务器名称IP组件主服务器192.168.3.185 (VIP:192.168.3.188)Redis、keepali
2、ved从服务器192.168.3.186 (VIP:Yum源修改yum源配置文件#rm rf /etc/yum.repos.d/*#vim /etc/yum.repos.d/server.repomirrorname=163baseurl=enabled=1gpgcheck=0程序包上传软件包redis-3.0.5.tar.gz至/usr/local/src目录下3.2软件安装3.2.1Redis#cd/usr/local/src#tar xvf redis-3.0.5.tar.gz#cd redis-3.0.5#make#make PREFIX=/usr/local/redis instal
3、l #安装到/usr/local/redis目录下3.2.2Keepalived#yum y install keepalived3.3配置文件3.3.1Redis#cp /usr/local/src/redis-3.0.5/redis.conf /usr/local/redis/#vim /usr/local/redis/redis.confdaemonize yes #启动时以后台模式运行requirepass 123456 /注意去掉#注释,并修改密码masterauth 123456 去掉#注释,并修改密码3.3.2Keepalived#/cp /etc/keepalived/keep
4、alived.conf /etc/keepalived/keepalived.conf.bak#vim /etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs notification_email admin notification_email_from keepalived smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_DEVEL4vrrp_script chk_redis script /etc/keepalived
5、/scripts/redis_check.sh #监控redis脚本 interval 2 vrrp_instance VI_1 state MASTER #主服务器(备服务器写BACKUP) interface em1 #监听网卡名称 virtual_router_id 51 priority 101 #优先级(备服务器写100) authentication auth_type PASS auth_pass redis track_script chk_redis virtual_ipaddress 192.168.3.188 #虚IPnotify_master /etc/keepaliv
6、ed/scripts/redis_master.sh #主模式时执行的脚本notify_backup /etc/keepalived/scripts/redis_backup.sh #备模式时执行的脚本notify_fault /etc/keepalived/scripts/redis_fault.sh #失效时执行的脚本notify_stop /etc/keepalived/scripts/redis_stop.sh #keepalived停止时的脚本说明:注意修改黄色部分3.4脚本创建脚本目录#mkdir /etc/keepalived/scripts3.4.1redis_check.sh
7、#!/bin/bashnetstat -ntlp |grep 6379RETVAL=$?if x$RETVAL = x0 ; then echo $RETVAL exit 0else exit 1fi3.4.2redis_master.shREDISCLI=/usr/local/bin/redis-cli -a 123456LOGFILE=/var/log/keepalived-redis-state.logecho master $LOGFILEdate Being master. $LOGFILE 2&1Run SLAVEOF cmd .$REDISCLI SLAVEOF 192.168.
8、3.186 6379 sleep 10 #延迟10秒以后待数据同步完成后再取消同步状态Run SLAVEOF NO ONE cmd .$REDISCLI SLAVEOF NO ONE 黄色部分是对方主机的IP,注意修改。3.4.3redis_backup.shbackupBeing slave.sleep 15 # 延迟15秒待数据被对方同步完成之后再切换主从角色3.4.4redis_fault.shLOGFILE=/var/log/keepalived-redis-state.logfault3.4.5redis_stop.shstop3.4.6redis服务脚本#vim /usr/loca
9、l/bin/redisBIN=/usr/local/redis/bin #注意路径CNF=/usr/local/redis/redis.conf #注意路径case $1 instart) $BIN/redis-server $CNF;stop) ps -ef |grep redis | grep -v grep |awk print $2 |xargs killstatus) if netstat -ntlp |grep 6379 & /dev/null;then echo Redis is running. elseRedis is not running. fi*) echo Usage
10、: redis Esac给以上脚本以执行权限#chmod +x /etc/keepalived/scripts/*.sh#chmod +x /usr/local/bin/redis4启动启动redis-server#redis start启动keepalived#service keepalived start添加开机自启动#echo “/usr/local/bin/redis start” etc/rc.d/rc.local#chkconfig keepalived on5验证redis服务状态redis从服务器状态:redis主服务器状态:rootAAA2 scripts# redis-c
11、li -a 123456 info | grep -A 8 Replication# Replicationrole:masterconnected_slaves:slave0:ip=192.168.107.13,port=6379,state=online,offset=3349,lag=1master_repl_offset:3349repl_backlog_active:repl_backlog_size:1048576repl_backlog_first_byte_offset:17repl_backlog_histlen:3333rootlauncher scripts# service keepalived statuskeepalived (pid 108386) is running.keepalived服务状态通过VIP写入数据从其他主机获取数据模拟主服务器down掉再次获取数据查看VIP所在主机通过VIP再次写入数据获取数据恢复主服务并查看VIP状态再次获取新数据,查看是否同步。数据同步成功
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1