Memcached主主復制+Keepalived高可用群集
阿新 • • 發佈:2018-07-29
rip emca 指定 def 群集 設置 內容 並且 連接 Memcached 主主案例 :
Memcached 主主復制是指在任意一臺 Memcached 服務器修改數據都會被同步到另外一臺,但是Memcached API 客戶端是無法判斷鏈接到那一臺服務器的,所以需要設置 VIP 地址,提供給 Memcached API 客戶端進行鏈接。可以使用keepalived 產生的 VIP 地址鏈接主 Memcached 服務器,並且提供高可用架構。
實驗環境 :
主機 | IP地址 | 操作系統 | 主要軟件包 |
---|---|---|---|
Memcached 1 | 192.18.217.128 | CentOS 7.3 x86_64 | memcached libevent magent |
Memcached 2 | 192.18.217.129 | CentOS 7.3 x86_64 | memcached libevent |
客戶端 | 192.18.217.130 | CentOS 7.3 x86_64 | Telnet |
案例實施 :
在兩臺服務器上安裝 :
systemctl stop firewalld.service setenforce 0 tar xf memcached-1.5.6.tar.gz -C /opt/ #緩存服務 tar xf libevent-2.1.8-stable.tar.gz -C /opt/ #事件通知庫 yum install gcc gcc-c++ make -y #安裝環境包 cd /opt/libevent-2.1.8-stable ./configure --prefix=/usr #指定工作目錄 make && make install cd /opt/memcached-1.5.6 ./configure --with-libevent=/usr #指定libevent的安裝路徑 make && make install ln -s /usr/local/memcached/bin/* /usr/local/bin/ #讓系統識別命令 memcached -d -m 32m -p 11211 -u root #啟動 memcached netstat -anpt | grep 11211 #查看 memcached 端口 yum install telnet -y [root@localhost memcached-1.5.6]# telnet 127.0.0.1 11211 #進入緩存數據庫 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is ‘^]‘.
在主緩存服務器配置 :
mkdir /opt/magent tar zxvf magent-0.5.tar.gz -C /opt/magent/ ketama.c magent.c ketama.h Makefile cd /opt/magent/ vim ketama.h #編輯配置文件 #ifndef SSIZE_MAX #define SSIZE_MAX 32767 #endif vim Makefile LIBS = -levent -lm make #生成的mgent程序讓系統識別 cp magent /usr/bin/ #將magent可執行文件加入usr可執行命令中 scp magent [email protected]:/usr/bin/ #發送到從緩存服務器上
在主緩存服務器配置 :
1.配置 keepalived :
yum install keepalived -y #兩臺服務器安裝 keepalived
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
vrrp_script magent { #添加腳本路徑
script "/opt/shell/magent.sh"
interval 2
......
router_id 0001 #刪除以下4行
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script { #調用腳本
magent
}
virtual_ipaddress {
192.168.217.100 #虛擬IP
}
}
以下內容可以刪除
2.編寫 magent 腳本 :
mkdir /opt/shell
vim /opt/shell/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.217.100 -p 12000 -s 192.168.217.128:11211 -b 192.168.217.129:11211
else
pkill -9 magent
fi
#參數說明 :
-n 51200 #定義用戶最大連接數
-l 192.168.217.100 #虛擬IP
-p 12000 #指定端口號
-s #指定主緩存服務器
-b #指定從緩存服務器
chmod +x magent.sh #添加執行權限
systemctl start keepalived.service
netstat -antp | grep magent #查看12000端口是否開啟
配置從緩存服務器 :
1.配置從緩存服務器 keepalived :
yum install keepalived -y
vim /etc/keepalived/keepalived.conf
......
priority 90 #修改優先級 辨別活躍和備份 其它一樣
......
2.編寫從緩存服務器 magent 腳本 :
mkdir /opt/shell
vim /opt/shell/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.217.100 -p 12000 -s 192.168.217.128:11211 -b 192.168.217.129:11211
else
pkill -9 magent
fi
#參數說明 :
-n 51200 #定義用戶最大連接數
-l 192.168.217.100 #虛擬IP
-p 12000 #指定端口號
-s #指定主緩存服務器
-b #指定從緩存服務器
chmod +x magent.sh #添加執行權限
systemctl start keepalived.service
netstat -antp | grep magent #查看12000端口是否開啟
客戶端測試 :
1.數據測試 ,添加數據。在主從緩存服務查看是否有 :
yum install telnet -y
telnet 192.168.217.100 12000 #進入緩存數據庫
Trying 192.168.217.100...
Connected to 192.168.217.100.
Escape character is ‘^]‘.
add username 0 0 7 #添加鍵值數據
1234567
STORED
2.故障測試 :
退出緩存數據庫,把活躍 keepalived 關閉 ,在進入數據庫 ,實現故障切換 。
Memcached主主復制+Keepalived高可用群集