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高可用架構