




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Redis+keepalived配置文档一 环境部署介绍介绍:为了其保证redis缓存服务的稳定,将做一个redis+keepalived双机主备,并具备高可用性(HA)环境:现在已有一台服务器上搭建有redis服务,做为redis主,将准备另一台服务器部署redis,作为从,在通过keepalived软件实现在主机redis服务宕掉后,自动切换到从机redis,并且redis角色成为主,可以存入和读取数据。而当主机恢复后,主机redis会马上抢夺回redis主的角色,而从机又会还原,并且主机会同步回从机存入的数据,达到数据同步,实现其高可用性二 使用相关环境及软件系统:redhat Enterprise Linux 6.3主机:10.224.70.33从机:10.224.70.18虚拟IP:10.224.70.100keepalived-1.2.7 redis-2.6.17三 安装软件1、以root用户登录,cd /usr/local2、命令:mkdir ms40新建ms40目录3、cd ms404、mkdir redis & cd redis & mkdir log & mkdir data然后切回ms40目录5、mkdir keepalived6、上传文件redis-2.6.17.tar.gz至redis目录上传文件keepalived-1.2.7.tar.gz至keepalived目录7、安装redis1)cd redis2)tar zxvf redis-2.6.17.tar.gz3)cdredis-2.6.174)make5)cd src6)cp redis-benchmark redis-cli redis-server /usr/bin/7)切回至ms40目录8、安装keepalived1)cd keepalived2)tar zxvf keepalived-1.2.7.tar.gz #解压安装包3)yum install popt-devel4)yum -y install openssl-devel5)cd keepalived-1.2.76)./configure7)make & make install9转移keepalived的配置文件1) cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/#用于keepalived服务点的启动2) cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/#这个是用于查看keepalived相关的帮助文档,如keepalived help或者man keepalived3)mkdir /etc/keepalived4)cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/#将keepalived配置文件做备份5)cp /usr/local/sbin/keepalived /usr/sbin/四 配置过程主机:1. 配置redismkdir /etc/rediscp /usr/local/ms40/redis/redis-2.6.17/redis.conf /etc/redis #复制一份配置文档做为主配置文档vim /etc/redis.conf #编辑redis配置文档需要修改的配置如下daemonize yes#开启redis守护进程pidfile /var/run/redis.pid#redis守护进程的pid存放位置logfile /var/log/ keepalived-redis-state.log #指定日志路径dbfilename dump.rdb #指定快照文件名dir /var/lib/redis #指定快照文件存储路径masterauth 123456 #主库认证密码requirepass 123456 #客户端连接密码2. 配置keepalivedmkdir /etc/keepalivedcp /usr/local/ms40/keepalived/ keepalived-2.6.17/ keepalived.conf /etc/keepalived #复制一份配置文档做为主配置文档vim /etc/keepalived/keepalived.conf #配置keepalived配置文件配置内容如下:vrrp_script chk_redis script /etc/keepalived/scripts/redis_check.sh #执行检查脚本 interval 2 #监控时间间隔vrrp_instance VI_1 state MASTER #keepalived主机角色 interface eth0 #监听网卡端口 virtual_router_id 52 #keepalived内的虚拟路由id priority 100 #优先级(masterslave) advert_int 1 #检查时间间隔 authentication auth_type PASS #加密 auth_pass 1111 #密码 virtual_ipaddress 10.224.70.100 #虚拟IP track_script chk_redis #执行上面的监控脚本 #当为主机时触发此脚本 notify_master /etc/keepalived/scripts/redis_master.sh #当出现脚本中的命令出现异常时触发 notify_fault /etc/keepalived/scripts/redis_fault.sh #keepalived服务停止后触发 notify_stop /etc/keepalived/scripts/redis_stop.sh3. 做一个redis服务启动脚本vim /etc/init.d/redis-server脚本内容如下:#!/bin/bash# Init file for redis# chkconfig: - 80 12# description: redis daemon# processname: redis# config: /etc/redis.conf# pidfile: /var/run/redis.pidsource /etc/init.d/functions#BIN=/usr/local/bin BIN=/usr/binCONFIG=/etc/redis_slave.confPIDFILE=/var/run/redis.pid# Read configuration -r $SYSCONFIG & source $SYSCONFIGRETVAL=0prog=redis-serverdesc=Redis Serverstart() if -e $PIDFILE ;then echo $desc already running. exit 1 fi echo -n $Starting $desc: daemon $BIN/$prog $CONFIG RETVAL=$? echo $RETVAL -eq 0 & touch /var/lock/subsys/$prog return $RETVALstop() echo -n $Stop $desc: killproc $prog RETVAL=$? echo $RETVAL -eq 0 & rm -f /var/lock/subsys/$prog $PIDFILE return $RETVALrestart() stop startcase $1 in start) start ; stop) stop ; restart) restart ; condrestart) -e /var/lock/subsys/$prog & restart RETVAL=$? ; status) status $prog RETVAL=$? ; *) echo $Usage: $0 start|stop|restart|condrestart|status RETVAL=1esacexit $RETVAL 备机:1. 配置redismkdir /etc/rediscp /usr/local/ms40/redis/redis-2.6.17/redis.conf /etc/redis/redis_slave.conf #复制一份配置文档做为主配置文档vim /etc/redis_slave.conf #编辑redis配置文档需要修改的配置如下daemonize yes#开启redis守护进程pidfile /var/run/redis.pid#redis守护进程的pid存放位置logfile /var/log/ keepalived-redis-state.log #指定日志路径dbfilename dump.rdb #指定快照文件名dir /var/lib/redis #指定快照文件存储路径masterauth 123456 #主库认证密码requirepass 123456 #客户端连接密码slaveof 10.224.70.33 6379 #设置redis主从2. 配置keepalivedmkdir /etc/keepalivedcp /usr/local/ms40/keepalived/ keepalived-2.6.17/ keepalived.conf /etc/keepalived #复制一份配置文档做为主配置文档vim /etc/keepalived/keepalived.conf #配置keepalived配置文件配置内容如下:! Configuration File for keepalivedvrrp_script chk_redis script /etc/keepalived/scripts/redis_check.sh interval 2vrrp_instance VI_1 state BACKUP interface eth0 virtual_router_id 52 priority 50 advert_int 1 authentication auth_type PASS auth_pass 1111 virtual_ipaddress 10.224.70.100 track_script chk_redis notify_master /etc/keepalived/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 3. 做一个redis服务启动脚本vim /etc/init.d/redis-server脚本内容如下:#!/bin/bash# Init file for redis# chkconfig: - 80 12# description: redis daemon# processname: redis# config: /etc/redis.conf# pidfile: /var/run/redis.pidsource /etc/init.d/functions#BIN=/usr/local/bin BIN=/usr/binCONFIG=/etc/redis_slave.confPIDFILE=/var/run/redis.pid# Read configuration -r $SYSCONFIG & source $SYSCONFIGRETVAL=0prog=redis-serverdesc=Redis Serverstart() if -e $PIDFILE ;then echo $desc already running. exit 1 fi echo -n $Starting $desc: daemon $BIN/$prog $CONFIG RETVAL=$? echo $RETVAL -eq 0 & touch /var/lock/subsys/$prog return $RETVALstop() echo -n $Stop $desc: killproc $prog RETVAL=$? echo $RETVAL -eq 0 & rm -f /var/lock/subsys/$prog $PIDFILE return $RETVALrestart() stop startcase $1 in start) start ; stop) stop ; restart) restart ; condrestart) -e /var/lock/subsys/$prog & restart RETVAL=$? ; status) status $prog RETVAL=$? ; *) echo $Usage: $0 start|stop|restart|condrestart|status RETVAL=1esacexit $RETVAL 五 监控脚本主机:mkdir /etc/keepalived/script #用于存放redis脚本路径cd /etc/keepalived/scriptvim redis_check.sh #用于检查redis的监控脚本脚本内容如下#!/bin/bashALIVE=redis-cli -a 123456 PING #这里客户端连接直接把密码写入if $ALIVE = PONG ; then echo $ALIVE exit 0else echo $ALIVE exit 1fivim redis_master.sh #用于切换redis主机的脚本脚本内容如下#!/bin/bashREDISCLI=/usr/bin/redis-cli #据对路径命令LOGFILE=/var/log/keepalived-redis-state.log #日志存放位置MASTER=10.224.70.18 #同步数据对端IPPASSWD=123456 #客户端连接密码echo master $LOGFILEdate $LOGFILEecho Being master. $LOGFILE 2&1#用于当主机redis挂掉又恢复后,对从机存入数据同步#而这时主机是在从机的身份下同步数据echo Run SLAVEOF cmd. $LOGFILE$REDISCLI -a $PASSWD SLAVEOF $MASTER 6379 $LOGFILE 2&1sleep 10#在同步完数据后夺回主机身份echo Run SLAVEOF NO ONE cmd. $LOGFILE$REDISCLI -a $PASSWD SLAVEOF NO ONE $LOGFILE 2&1 vim redis_stop.sh #当keepalived服务停止后触发#!/bin/bashLOGFILE=/var/log/keepalived-redis-state.logecho stop $LOGFILEdate $LOGFILE vim redis_fault.sh #其他脚本出现错误时触发#!/bin/bashLOGFILE=/var/log/keepalived-redis-state.logecho fault $LOGFILEdate $LOGFILE 备机:mkdir /etc/keepalived/script #用于存放redis脚本路径cd /etc/keepalived/scriptvim redis_check.sh #用于检查redis的监控脚本#!/bin/bashALIVE=redis-cli -a 123456 PINGif $ALIVE = PONG ; then echo $ALIVE exit 0else echo $ALIVE exit 1fi vim redis_master.sh #用于切换redis主机的脚本#!/bin/bashREDISCLI=/usr/bin/redis-cliLOGFILE=/var/log/keepalived-redis-state.logMASTER=10.224.70.33PASSWD=123456echo master $LOGFILEdate $LOGFILEecho Being master. $LOGFILE 2&1echo Run SLAVEOF cmd. $LOGFILE$REDISCLI -a $PASSWD SLAVEOF $MASTER 6379 $LOGFILE 2&1sleep 10echo Run SLAVEOF NO ONE cmd. $LOGFILE$REDISCLI -a $PASSWD SLAVEOF NO ONE $LOGFILE 2&1 vim redis_backup.sh #用于切换redis从机的脚本#!/bin/bashREDISCLI=/usr/bin/redis-cliLOGFILE=/var/log/keepalived-redis-state.logMASTER=10.224.70.33PASSWD=123456echo backup $LOGFILEdate $LOGFILEecho Being slave. $LOGFILE 2&1sleep 15echo Run SLAVEOF cmd. $LOGFILE$REDISCLI -a $PASSWD SLAVEOF $MASTER 6379 $LOGFILE 2&1vim redis_stop.sh #当keepalived服务停止后触发#!/bin/bashLOGFILE=/var/log/keepalived-redis-state.logecho stop $LOGFILEdate $LOGFILE vim redis_fault.sh #其他脚本出现错误时触发#!/bin/bashLOGFILE=/var/log/keepalived-redis-state.logecho fault $LOGFILEdate $LOGFILE给以上所有脚本加上执行权限Chmod a+x /etc/keepalived/script/*.sh 六 测试情况1,主机redis服务宕掉启动主机和从机上的redis,之后分别启动keepalived这是主机触发redis_master脚本,从机触发redis_backup脚本下面分别是主机和从机的日志这时主机上出现了虚拟IP分别查看主机和从机的角色用虚拟IP set一个值,并分别用主机,从机,虚拟IP get出来现在宕掉主机的redis,从机会触发redis_master脚本,自己成为master现在从机会成为master角色而这时虚拟IP会漂移到从机用虚IP再次存入值切回主redis,并在主机上查看是否同步数据而这时将角色会还原成功IP也恢复情况2,从机的redis宕掉关闭掉从机redis服务,这里是不会触发keepalived中的脚本用虚IP set 进入值恢复从机的redis服务用从机IP get 出之前存
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025园林绿化设计合同范本
- 2025劳动合同协议书范本模板
- 2025企业合同终止的情形分析:合规解除劳动合同的途径与条件
- 江苏省镇江市2024-2025学年高一上学期期中检测生物试卷 含解析
- 腰椎疼痛康复护理
- 脊柱外科术后护理
- 静脉留置消毒护理
- 心脏支架术后护理规范
- 【方案】2024咪咕全域营销媒体手册6928mb
- 三晋卓越联盟·2024-2025学年高三5月质量检测卷(25-X-635C)生物(B)
- (完整)北京版小学英语1至6年级词汇(带音标)
- 中西文化鉴赏智慧树知到答案2024年郑州大学
- 职业技术学院《新能源汽车结构原理与维修》课程标准
- DL∕T 1901-2018 水电站大坝运行安全应急预案编制导则
- 实验室可靠性测试计划表
- 大型活动交通保障方案
- 2024年济南先投人才发展集团招聘笔试冲刺题(带答案解析)
- 居间费用协议合同范本
- 云南省昆明市2023-2024学年高二下学期期末质量检测化学试题
- CJ343-2010 污水排入城市下水道水质标准
- 铁路盖板涵、框架涵施工方案培训资料
评论
0/150
提交评论