1. 程式人生 > >Memcached主主復制+Keepalived高可用架構

Memcached主主復制+Keepalived高可用架構

Memcached+Keepalived

實驗報告

第一、實驗環境:

技術分享圖片

第二、實驗步驟:
配置memcached主緩存節點和從緩存節點-----兩臺配置相同
解包:
tar xf memcached-1.5.6.tar.gz -C /opt/
tar xf libevent-2.1.8-stable.tar.gz -C /opt/

cd /opt/libevent-2.1.8-stable --- 安裝lib插件
./configure --prefix=/usr/

make && make install ---編譯安裝

cd ../memcached-1.5.6 ---安裝memcached

./configure \
--with-libevent=/usr

make && make install ---編譯安裝

下面在主上安裝magent:
mkdir /opt/magent
tar xf magent-0.5.tar.gz -C /opt/magent
cd /opt/magent/
vi ketama.h
技術分享圖片
vi Makefile
LIBS = -levent -lm //第一行末尾加-lm (不是數字1)
技術分享圖片

make //修改完成後可以編譯了
技術分享圖片
完成,無任何報錯

ls一下可看到magent可執行程序

技術分享圖片
cp magent /usr/bin/ //將編譯好的magent程序復制到PATH路徑中

scp magent [email protected]:/usr/bin/ //把產生的magent文件直接復制到從服務器。

下面安裝keepalived:
yum install keepalived –y
vi /etc/keepalived/keepalived.conf //修改默認配置文件
-------------------參考腳本------------
! Configuration File for keepalived

global_defs {
notification_email {[email protected]
br/>[email protected]
br/>[email protected]
notification_email_from [email protected]
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id MAGENT_HB
}
vrrp_script magent {
script "/opt/shell/magent.sh"
interval 2
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 99
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
magent
}
virtual_ipaddress {
192.168.80.188
}
}

從服務器上安裝keepalived,拷貝上面的配置文件進行修改:
yum install -y keepalived
cd /etc/keepalived/
mv keepalived.conf keepalived.conf.bak
scp [email protected]:/etc/keepalived/keepalived.conf ./ //把主服務器的配置文件復制過來
vi keepalived.conf
從服務器的名稱要修改;router_id MAGENT_HB
從服務器的熱備狀態要修改成BACKUP;state BACKUP
從調度器的優先級要小於主的;priority 90

下面設置magent管理腳本
--在主服務器上設置:
mkdir /opt/shell 創建目錄
cd /opt/shell

vi magent.sh
腳本內容如下:
#!/bin/bash
K=ps -ef | grep keepalived | grep -v grep | wc -l
if [ $K -gt 0 ]; then
magent -u root -n 51200 -l 192.168.80.188 -p 12000 -s 192.168.80.181:11211 -b 192.168.80.182:11211
else
pkill -9 magent
fi

參數註解:
-n 51200 //定義用戶最大連接數
-l 192.168.80.188 //指定虛擬IP
-p 12000 //指定端口號
-s //指定主緩存服務器
-b //指定從緩存服務器

chmod +x magent.sh 增加執行權限

--在從服務器上操作:
mkdir /opt/shell
cd /opt/shell

vi magent.sh
腳本內容如下,與主服務器腳本有區別!
#!/bin/bash
K=ip addr | grep 192.168.80.188 | grep -v grep | wc -l
if [ $K -gt 0 ]; then
magent -u root -n 51200 -l 192.168.80.188 -p 12000 -s 192.168.80.181:11211 -b 192.168.80.182:11211
else
pkill -9 magent
fi

chmod +x magent.sh 加執行權限

第三步:開始驗證工作
---啟動主服務器
service keepalived start
netstat -anpt | grep 12000 //確認magent運行
技術分享圖片
cat /var/log/messages 看日誌,驗證主從
技術分享圖片
ip addr //確認漂移地址生效
技術分享圖片
驗證了漂移地址在主服務器上

從服務器開啟keepalived
service keepalived start
cat /var/log/messages 看日誌,驗證主從
技術分享圖片
下面啟動memcached
memcached -m 512k -u root -d -l 192.168.80.181 -p 11211 //啟動主

memcached -m 512k -u root -d -l 192.168.80.182 -p 11211 //啟動從
技術分享圖片
啟動成功

下面在客戶端測試:192.168.80.138
-----關閉幹擾------------
service firewalld stop
setenforce 0

telnet 192.168.80.188 12000 用漂移地址登陸服務:
技術分享圖片
以上界面表示登陸成功

技術分享圖片
再次用漂移地址登陸查看內容:
技術分享圖片
內容存在,寫入成功

從181與182服務器本地登陸查看內容:
telnet 192.168.80.181 11211
技術分享圖片
telnet 192.168.80.182 11211
技術分享圖片

下面進行倒換測試:
service keepalived stop //把主服務器停了業務不影響
技術分享圖片
可以看到漂移地址已經轉移到從服務器上了,說明從已接受工作!

再次通過漂移地址訪問時,業務不受影響,內容依然可以查看!
技術分享圖片
證明倒換測試成功,主備工作正常

service keepalived start 將主服務器再次啟動後
技術分享圖片
漂移地址再次轉移到主服務器上,接手地址,服務依然不受影響。

至此,實驗成功!

Memcached主主復制+Keepalived高可用架構