linux memcached集群
192.168.80.100
192.168.80.101
關閉防火墻和selinux
systemctl stop firewalld
setenforce 0
編譯環境
yum -y install gcc gcc-c++ make -y
安裝依賴包libevent
tar xf libevent-2.1.8-stable.tar.gz -C /opt //依賴包
tar xf memcached-1.5.6.tar.gz -C /opt/ //安裝包
編譯libevent
cd /opt/libevent-2.1.8-stable/
配置
./configure --prefix=/usr/local/libevent編譯及安裝
make && make install
編譯安裝memcached
切換到memcached目錄
cd /opt/memcached-1.5.6/
配置(指定安裝目錄和libevent路徑)
./configure \
--prefix=/usr/local/memcached \
--with-libevent=/usr/local/libevent/
make && make install
優化啟動
優化啟動(支持復制功能的Mencached需要安裝後的libevent-2.1.so.6模塊,不然啟動服務會報錯)
ln -s /usr/local/libevent/lib/libevent-2.1.so.6.0.2 /usr/lib64/libevent-2.1.so.6
分別在兩臺服務器上啟動memcached
主服務器
./memcached -m 512k -u root -d -l 192.168.80.100 -p 11211
從服務器
./memcached -m 512k -u root -d -l 192.168.80.101 -p 11211
檢查是否開啟成功
magent在主服務器安裝,從服務器不用安裝
編譯安裝magent
創建magent目錄
mkdir /opt/magent
解壓
tar xf magent-0.5.tar.gz -C /opt/magent
切換到目錄
cd /opt/magent
讓動態鏈接庫為系統所共享
/sbin/ldconfig
編輯ketama.h,添加文件頭部信息
vi ketama.h
#ifndef SSIZE_MAX
#define SSIZE_MAX 32767
修改Makefile
vi Makefile //libevent安裝路徑在/usr/local/libevent中使用以下內容:
LIBS = -levent -lm -L /usr/local/libevent/lib
INCLUDE=-I /usr/local/libevent/include
復制mgent命令到系統管理中,便於使用
cp /opt/magent/magent /usr/bin/
發送至從服務器
scp /opt/magent/magent [email protected]:/usr/bin
安裝keepalived
yum -y install keepalived
編輯keepalived配置文件
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalivedglobal_defs {
router_id magent_H1 #指定router_id
}vrrp_script magent { #定義函數
script "/root/shell/magent.sh"
interval 2
}vrrp_instance VI_1 {
state MASTER
interface ens33 #本地網卡名稱
virtual_router_id 51 #id主從一致
priority 100 #主優先級大於從優先級
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}track_script { #調用函數
magent
}virtual_ipaddress { #vip地址
192.168.80.188
}}
建立shell目錄
mkdir /root/shell
創建magent.sh腳本
vi /root/shell/magent.sh
#!/bin/bash
Keepalived=
ps -ef | grep keepalived | grep -v grep | wc -l
if [ $Keepalived -gt 0 ]; then
magent -u root -n 51200 -l 192.168.80.188 -p 12000 -s 192.168.80.100:11211 -b 192.168.80.101:11211
else
pkill -9 magent
fi
magent參數
-n 51200 #定義用戶最大連接數
-l 192.168.175.188 #指定虛擬IP
-p 12000 #指定端口號
-s #指定主緩存服務器
-b #指定從緩存服務器
賦予腳本執行權限
chmod +x /root/shell/magent.sh
啟動keepalived服務
systemctl enable keepalived.service
systemctl start keepalived.service
檢查keepalived服務狀態
systemctl status keepalived.service
檢查ip地址
ip addr show ens32
從服務器安裝keepalived:
yum install keepalived -y
主服務:
發送至從服務器
scp /etc/keepalived/keepalived.conf root$192.168.80.101:/etc/keepalived/keepalived.conf
修改從服務器keepalive 配置文件
vi /etc/keepalived/keepalived.conf
創建magent.sh腳本
vi /opt/magent.sh
#!/bin/bash
Keepalived=ip addr | grep 192.168.80.188 | grep -v grep | wc -l
if [ $Keepalived -gt 0 ]; then
magent -u root -n 51200 -l 192.168.80.188 -p 12000 -s 192.168.80.100:11211 -b 192.168.80.101:11211
else
pkill -9 magent
fi
賦予腳本執行權限
chmod +x /opt/magent
啟動keepalived
systemctl start keepalived
測試:
當80.100服務器keepalived關掉時
飄逸IP 回到從服務器80.101
如圖
linux memcached集群