版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、r edi s 主 備 部 署 方 案 -20131126精品文檔redis主備自動(dòng)切換部署方案文檔修改記錄修改日期修改人修改說明版本號(hào)修改頁主實(shí)例 A: 0備實(shí)例 B: 32虛 IP : 10方案說明:redis部署方式采用主備的方式,通過keepalived來對外提供虛IP,備服務(wù)器實(shí)時(shí)同步主服務(wù)器的數(shù)據(jù),當(dāng)主服務(wù)器掛掉時(shí),能在5秒內(nèi)完成主備切換,實(shí)現(xiàn)融災(zāi)備份,并采用redis數(shù)據(jù)持久化,確保數(shù)據(jù)的安全。正常工作時(shí),虛IP在主實(shí)例A上,備實(shí)例B自動(dòng)從A上同步數(shù)據(jù),當(dāng)檢測 到主實(shí)例A掛掉之后(檢測機(jī)制為每3秒自動(dòng)檢測re
2、dis的所有端口是否能正常 連接,當(dāng)連續(xù)兩次檢測到其中任意端口無法連接時(shí),將自動(dòng)停止keepalived程序,使虛IP進(jìn)行漂移),備實(shí)例B將自動(dòng)接管虛IP,待原主實(shí)例A恢復(fù)后,A 將自動(dòng)切換成備模式,從B上實(shí)時(shí)同步數(shù)據(jù),主備角色互換,實(shí)現(xiàn)融災(zāi)備份。 安裝部署步驟如下:1. 安裝 keepalivedwget http:/www.keepalived.Org/software/keepalived-1.2.6.tar.gztar zxvf keepalived-1.2.6.tar.gzcd keepalived-1.2.6./con figure如果報(bào)錯(cuò)con figure: error:! O
3、pen SSL is not properly in stalled on your system. ! Can not in elude Open SSL headers files.解決辦法:yum -y install openssl-develyum -y install popt-develln -s /usr/src/kernels/2.6.32-220.el6.x86_64/ /usr/src/linux./configuremakemake installcp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/cp /
4、usr/local/etc/sysconfig/keepalived /etc/sysconfig/cp /usr/local/sbin/keepalived /usr/sbin/mkdir /etc/keepalived添加keepalived的配置項(xiàng):vi /etc/keepalived/keepalived.conf global_defs router_id LVS_DEVEL vrrp_script Monitor_Redis script /home/bbcv/redis/redis_keepalive.sh interval 3 # 每3秒執(zhí)行一次weight 2# VIP1 v
5、rrp_instance VI_1 interfaceeth0主備服務(wù)器都設(shè)置成 BACKUPvirtual_router_id priority 100 advert_int 1#nopreempt #110#備份服務(wù)上將100改為90檢查間隔設(shè)置為不搶占,注意這個(gè)配置只能設(shè)置在state為BACKU啲主機(jī)上,而且這個(gè)主機(jī)的priority必須比另外一臺(tái)高authentication auth_type PASS auth_pass 1111notify_master/home/bbcv/redis/redis_master.shnotify_backup/home/bbcv/redis/r
6、edis_backup.shtrack_script Monitor_Redis #(調(diào)用redis進(jìn)程檢測腳本) virtual_ipaddress state BACKUP #10#(如果有多個(gè)VIP,繼續(xù)換行填寫.)啟動(dòng) keepalivedservice keepalived start2. redis_keepalive.sh 腳本進(jìn)程,該腳本主要實(shí)現(xiàn)對redis進(jìn)程進(jìn)行監(jiān)控,當(dāng)檢測到 redis進(jìn)程掛掉時(shí),自動(dòng)停止keepalived使虛IP進(jìn)行漂移注意添加該腳本的可執(zhí)行權(quán)限!chmod +x redis_keepalive.sh#!/bin/bashtim
7、e=$(date +%Y-%m-%d %H:%M:%S)#redis部署路徑redispath= /home/bbcv/redis#redis-cli部署路徑rediscli= /usr/local/bin/redis-cliif ! -d $redispath/logs ; thenmkdir $redispath/logsfilogfile=$redispath/logs/redis-state.logoldfile=$logfile.$(date +%Y-%m-%d -date=30 days ago)yesterdayfile=$logfile.$(date +%Y-%m-%d -da
8、te=1 days ago)#把昨天的日志重命名if -f $yesterdayfile thenecho OKelsemv $logfile $yesterdayfile $logfile 2&1echo $time $yesterdayfile Move yesterdayfile Success! $logfilefi#刪除老的日志文件if -f $oldfile thenrm -f $oldfile $logfile 2&1echo $time $oldfile Delete Old File Success! $logfileelseecho no old filefi#檢測redi
9、s端口是否正常for line in cat $redispath/config.inidoport=echo $line|awk -F | print $1、passwd=echo $line|awk -F | print $2、$rediscli -h -p $port -a $passwd info /dev/nullif $? -eq 0 ; thenstatus=$rediscli -h -p $port -a $passwd info|grep role|awk -F :print $2、echo $time redis 端口 $port 正
10、常,目前狀態(tài)為:$status $logfileelseecho $time ERROR redis 端口 $port 異常$logfilesleep 2# try to found it again$rediscli -h -p $port -a $passwd info /dev/nullif $? -eq 0 ; thenstatus=$rediscli -h -p $port -a $passwd info|grep role|awk -F :print $2、echo $time redis 端口 $port 正常,目前狀態(tài)為:$status
11、$logfile#exit 0elseecho $time ERROR redis端口 $port 異常,開始停 keepalived $logfile#stop keepalived/etc/init.d/keepalived stopecho $time stop keepalived $logfilefifidone3. redis_master.sh 腳本該腳本主要實(shí)現(xiàn)當(dāng)keepalived 切換到 master時(shí),執(zhí)行slaveof no one 語句把redis 的端口轉(zhuǎn)換為主模式注意添加該腳本的可執(zhí)行權(quán)限!chmod +x redis_master.sh#!/bin/sh#本機(jī)I
12、P地址localip=#另一臺(tái)服務(wù)器的地址backip= 32time=$(date +%Y-%m-%d %H:%M:%S)#redis部署路徑redispath= /home/bbcv/redis#redis-cli 部署路徑rediscli= /usr/local/bin/redis-cli#日志文件目錄logfile=$redispath/logs/redis-state.logfor line in cat $redispath/config.inidoport=echo $line|awk -F | print $1、passwd=echo
13、$line|awk -F | print $2、echo $time redis 端口 $port 切換成主端口 $logfile$rediscli -h $localip -p $port -a $passwd slaveof no one $logfile 2&1sleep 1done4. redis_backup.sh該腳本主要實(shí)現(xiàn)當(dāng) keepalived 切換到master時(shí),執(zhí)行slaveof 主redisIP 端口 語句,把redis的端口轉(zhuǎn)換為備模式,并同步主 redis的數(shù)據(jù)注意添加該腳本的可執(zhí)行權(quán)限!chmod +x redis_backup.sh#!/bin/sh#本機(jī)IP
14、地址localip=#另一臺(tái)服務(wù)器的地址backip= 32time=$(date +%Y-%m-%d %H:%M:%S)#redis部署路徑redispath= /home/bbcv/redis#redis-cli部署路徑rediscli= /usr/local/bin/redis-cli#日志文件目錄logfile=$redispath/logs/redis-state.log#檢測主redis服務(wù)是否啟動(dòng)port=cat $redispath/config.ini |sed -n 1p| awk -F | print $1、passwd=cat
15、$redispath/config.ini |sed -n 1p| awk -F | print $2、$rediscli -h $backip -p $port -a $passwd info /dev/nullif $? -eq 0 ; thenecho $time主 redis 服務(wù) $backip正常在用$logfileecho $time 30秒后將從主 redis 服務(wù) $backip同步數(shù)據(jù)$logfilesleep 30time=$(date +%Y-%m-%d %H:%M:%S)echo $time開始從 redis 主服務(wù) $backip同步數(shù)據(jù)$logfilefor li
16、ne in cat $redispath/config.inidoport=echo $line|awk -F | print $1、passwd=echo $line|awk -F | print $2、time=$(date +%Y-%m-%d %H:%M:%S)echo $time redis $port端口切換成 $backip 的備端口 $logfile$rediscli -h $localip -p $port -a $passwd slaveof $backip $port $logfile2&1sleep 1doneelseecho $time啟用本機(jī)為主 redis! $lo
17、gfilefi5. con fig.i ni該配置文件為每個(gè)redis端口對應(yīng)的密碼14948|kuanyun00111172|kuanyun00112172|kuanyun00113172|kuanyun00116172|kuanyun00118000|kuanyun00118001|kuanyun00121172|kuanyun00122172|kuanyun00123172|kuanyun0016. 安裝 redis1.新建文件夾,如mkdir redis2. 將 redis-2.2.13.tar.gz拷入其中3. 解壓并進(jìn)入主目錄4. make5. make in stall( Ubu
18、 ntu 上需要 sudo 執(zhí)行)6. 修改配置文件 redis.conf修改如下:daemonize no 改為 daemonize yes取消注釋:syslog-enabled no(改為 syslog-enabled yes)syslog-facility local0修改port:port 14948 (改為具體的redis 端口 )設(shè)置redis端口密碼:requirepass mypasswd (取消注釋,并改為想要設(shè)置的密碼 )設(shè)置master的密碼:收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系管理員刪除masterauth master-password(該配置為主 redis 設(shè)置的密碼)修改
19、dump文件名稱:dbfile name aim_dump.rdb(修改成具體模塊的 dump名稱)已將修改后的aim.redis.conf文件放到redis部署目錄下,不同需求還需再修改配置文件(如 修改端口、增加密碼、修改dump文件名稱 等),可參考如下aim.redis.conf件aim.redis.conf啟動(dòng)時(shí),可能會(huì)報(bào)如下錯(cuò)誤:No such file or directory7. 在執(zhí)行 redis-server redis.confCant chdir to7var/db/redis需要手動(dòng)創(chuàng)建/var/db/redis 文件夾# WARNING overcommit_mem
20、ory is set to 0! Backgrou nd save may fail un der low memory con diti on需要執(zhí)行sysctl vm.overcommit_memory=1 修改內(nèi)核參數(shù)8. 再次執(zhí)行 redis-server redis.conf可成功啟動(dòng) redis7. redis啟停腳本啟動(dòng)腳本:start.sh#!/bin/shredis-server urm.redis.confredis-server cscs.redis.confredis-server cums.redis.confredis-server aim.redis.confre
21、dis-server bgw.redis.confredis-server ggw.redis.confredis-server mgw.redis.confredis-server vgw.redis.confredis-server ordergw.redis.confredis-server keygw.redis.confPID=、ps -ef |grep keepalived|grep -v grep|awk print $2、if ! -z $PID ; thenecho keepalived is alivedelseecho start keepalived ./etc/ini
22、t.d/keepalived startfi停止腳本:stop.sh#!/bin/shpidlist=ps -ef |egrep redis|sed /.*grep/d|awk print $2、for pid in $pidlist; doecho kill pid $pid startkill -9 $pidecho kill pid $pid enddone8. 測試1. 查看當(dāng)前redis是主還是備/usr/local/bin/redis-cli -h -p 6379 infoIro (e:5 lavenasrer_ho5T92*168.232master_port:6379ntaster_l 1 rk_st at us : upmaster_l ast_i o_seconds_ago: 1dbO:kcys-71 e
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商品材料購買合同范例
- 安放家政服務(wù)合同范例
- 封閉板車出售合同模板
- 土方供油合同范例
- 城管部門采購合同范例
- 工裝清工合同范例
- 單位廚師解聘合同模板
- 2024年房產(chǎn)共有權(quán)分配協(xié)議
- 寬帶安裝勞務(wù)合同模板
- 錄音行業(yè)的就業(yè)生涯發(fā)展報(bào)告
- 報(bào)廢汽車拆解工藝流程
- 生化報(bào)告解讀
- 胃癌科普講座課件
- 熔煉車間工安全培訓(xùn)
- 《多彩的職業(yè)》參考課件
- 《綠色制造技術(shù)》課件
- 醫(yī)用放射儀器的工作原理
- 抖音傳媒管理制度
- 家畜繁殖學(xué)課件
- 浙江森馬服飾股份有限公司營運(yùn)能力分析及提升策略研究
評論
0/150
提交評論