天天看點

【Linux運維架構】------ Memcached + Magent + keepalived 高可用叢集

文章目錄

    • 一、前言:
    • 二、架構部署:
      • 第一步:配置 memcache 主緩存節點和從緩存節點(兩台伺服器配置相同)
      • 第二步:部署主伺服器 ----- 安裝 magent代理,從伺服器不需要
      • 第三步:在主從伺服器上都安裝 keepalived,并部署
      • 第四步:配置主、從伺服器腳本
      • 第五步:啟動主 、從伺服器
      • 第六步:客戶機測試

一、前言:

magent是一款開源的代理服務軟體,我們可以通過它來實作緩存資料的同步,當然這裡說的同步不是說memcached之間就能互相通訊了, 而magent可以同時連接配接多個memcached節點, 通過magent綁定的VIP從用戶端登入memcached寫入資料,其他節點的memcached資料也會同步。

二、架構部署:

環境說明:

角色 需要安裝的軟體包
memcached主(IP位址:192.168.220.137) magent 、memcached 、libevent 、keeplived
memcached從(IP位址:192.168.220.135) memcached 、 libevent 、keeplived
用戶端(IP位址:192.168.220.131) telnet 測試工具
虛拟ip(192.168.220.100)

第一步:配置 memcache 主緩存節點和從緩存節點(兩台伺服器配置相同)

1、安裝依賴包:

yum install gcc gcc-c++ make -y
           

2、解壓軟體包:

1、tar zxvf memcached-1.5.6.tar.gz -C /opt/

2、tar zxvf libevent-2.1.8-stable.tar.gz -C /opt/

3、mkdir /opt/magent
tar zxvf magent-0.5.tar.gz -C /opt/magent/
           

3、編譯和安裝:

1、
cd /opt/libevent-2.1.8-stable
./configure --prefix=/usr/
make && make install

2、
cd /opt/memcached-1.5.6
./configure \
--with-libevent=/usr
make && make install
           

4、建立軟連接配接:

ln -s /usr/lib/libevent-2.1.so.6 /usr/lib64/libevent-2.1.so.6
           

第二步:部署主伺服器 ----- 安裝 magent代理,從伺服器不需要

1、cd /opt/magent

vim ketama.h
在開頭處增減以下代碼:
#ifndef SSIZE_MAX
#define SSIZE_MAX 32767
#endif
           
【Linux運維架構】------ Memcached + Magent + keepalived 高可用叢集
vim Makefile
LIBS = -levent -lm   //加上 -lm
           
【Linux運維架構】------ Memcached + Magent + keepalived 高可用叢集

2、修改完成後 make 編譯

3、此時,make完成後,就會産生 magent可執行程式

【Linux運維架構】------ Memcached + Magent + keepalived 高可用叢集

4、将這個 magent 程式複制到path環境變量中

5、可以将安裝好的 magent 複制到從伺服器,這樣從伺服器就不需要再配置了

yum install openssh-clients -y   //安裝工具包
scp magent [email protected].168.220.135:/usr/bin/
           

第三步:在主從伺服器上都安裝 keepalived,并部署

(1)主伺服器:

yum install keepalived -y    //安裝keepalived
           

修改配置檔案:

vim /etc/keepalived/keepalived.conf

//定義一個函數,建議寫在最前面
vrrp_script magent {
        script "/opt/shell/magent.sh"
        interval 2
      }
      
做如下修改:
router_id MAGENT_HA        //修改id名
interface ens33            //修改網卡資訊

virtual_ipaddress {
        192.168.220.100     //定義好虛拟ip位址
    }   
    
vrrp_instance VI_1 {
.....
//調用函數.以下三行代碼寫在vrrp子產品内
track_script {
        magent
      }
.....
}
           

(2)從伺服器:

vim /etc/keepalived/keepalived.conf

做如下修改:
router_id MAGENT_HB         //id名和第一台要不一樣
state BACKUP               //從伺服器
virtual_router_id 52       //id号和第一台不一樣
priority 90                 //優先級低與主伺服器 
           

第四步:配置主、從伺服器腳本

(1)建立一個腳本:

mkdir /opt/shell
           

(2)編寫:

vim 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.220.100 -p 12000 -s 192.168.220.137:11211 -b 192.168.220.135:11211
else
pkill -9 magent
fi

//
-n 51200             //定義使用者最大連接配接數
-l 192.168.220.100   //指定虛拟IP
-p 12000             //指定端口号
-s                   //指定主緩存伺服器
-b                   //指定從緩存伺服器
           

(3)給腳本添加一個執行權限:

chmod +x magent.sh
           
systemctl stop firewalld.service   //必須關閉否則magent不啟動
setenforce 0
           

(4)開啟 keepalived 服務

systemctl start keepalived.service

netstat -anpt | grep 12000 //确認magent運作,端口正常運作
           
【Linux運維架構】------ Memcached + Magent + keepalived 高可用叢集

(5)驗證主從 :

1、主伺服器 ----- 檢視 /var/log/messages 檔案,找到關鍵詞:Transition to MASTER STATE

【Linux運維架構】------ Memcached + Magent + keepalived 高可用叢集

2、從伺服器 ----- 找到關鍵詞:Entering BACKUP STATE

【Linux運維架構】------ Memcached + Magent + keepalived 高可用叢集

(6) ip addr 指令 ----- 确定漂移位址生效:

【Linux運維架構】------ Memcached + Magent + keepalived 高可用叢集

第五步:啟動主 、從伺服器

(1)啟動主伺服器:

memcached -m 512k -u root -d -l 192.168.220.137 -p 11211
           

(2)啟動從伺服器:

memcached -m 512k -u root -d -l 192.168.220.135 -p 11211
           

(3)檢視端口是否正常開啟:

netstat -anptu | grep 11211
           
【Linux運維架構】------ Memcached + Magent + keepalived 高可用叢集

第六步:客戶機測試

先安裝 Telnet 工具:

yum install telnet -y
           

測試:

1、使用漂移位址登入連接配接:

telnet 192.168.220.100 12000
           
【Linux運維架構】------ Memcached + Magent + keepalived 高可用叢集

2、我們在客戶機上操作,寫入一個資料,同時觀察主、從伺服器上是否會同步生成:

【Linux運維架構】------ Memcached + Magent + keepalived 高可用叢集

(1)主伺服器:

【Linux運維架構】------ Memcached + Magent + keepalived 高可用叢集

(2)從伺服器:

【Linux運維架構】------ Memcached + Magent + keepalived 高可用叢集

3、雙機熱備:

(1)停掉主伺服器:

systemctl stop keepalived.service
           

(2)客戶機依舊可以連接配接:

【Linux運維架構】------ Memcached + Magent + keepalived 高可用叢集

繼續閱讀