本實驗實現的是memcached+magent+keepalived高可用羣集:
- magent:代理memcached實現負載均衡
- keepalived:magent主從HA高可用
- memcached:緩存對象
實驗要求:
- 主服務器:192.168.177.140(magent+memcached+libevent+keepalived)
- 從服務器:192.168.177.135(memcached+libevent+keepalived)
- 客戶機:192.168.177.132(telnet軟件包)
掛載(主從)
# tar zxvf libevent-2.1.8-stable.tar.gz -C /opt
# tar zxvf memcached-1.5.6.tar.gz -C /opt
# mkdir /opt/magent ==注==從服務器不做
# tar zxvf magent-0.5.tar.gz -C /opt/magent/
# yum install gcc gcc-c++ make -y
---
# cd /opt/libevent-2.1.8-stable/
./configure --prefix=/usr
# make && make install
# cd memcached-1.5.6/
./configure --with-libevent=/usr
# make && make instal
---
只有主:
# cd /opt/magent/
# vim ketama.h
ifndef SSIZE_MAX
define SSIZE_MAX 32767
# vim Makefile
LIBS = -levent -lm
make
安裝openssh-clients
主服務器上:
# yum install openssh-clients -y
# cp magent /usr/bin/ //便於使用
# scp magent [email protected]:/usr/bin //將magent複製到從服務器上
# systemctl stop firewalld.service //關閉防火牆
# setenforce 0 //增強型安全功能
從服務器上:
# yum install openssh-clients
# systemctl stop firewalld.service
# setenforce 0
# cd /usr/bin
# ls
就會發現magent變成一個可執行的文件
安裝keepalived
主服務器上:
# yum install keepalived -y
# vi /etc/keepalived/keepalived.conf
router_id MAGENT_HA
interface ens33
virtual_router_id 51
priority 100
virtual_ipaddress {
192.168.177.188 //設置的虛擬IP
}
vrrp_script magent {
script "/opt/shell/magent.sh"
interval 2
}
track_script {
magent
}
# scp /etc/keepalived/keepalived.conf [email protected]:/etc/keepalived/keepalived.conf //將keepalived.conf複製到從服務器上
從服務器上:
# vim /etc/keepalived/keepalived.conf
修改:state :BACKUP
interface ens33
virtual_router_id 52
priority 90
編輯腳本文件
主從一樣:
# 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.177.188 -p 12000 -s 192.168.177.140:11211 -b 192.168.177.135:11211
else
pkill -9 magent
fi
# chmod +x magent.sh //爲腳本添加執行權限
# systemctl start keepalived.service //開啓服務
啓動memcached服務
# memcached -m 512k -u root -d -l 192.168.177.140 -p 11211 //主服務器上
# memcached -m 512k -u root -d -l 192.168.177.135 -p 11211 //從服務器上
ip addr //查看虛擬地址
在客戶機上安裝telnet
# yum install telnet -y