memcached high availability cluster deployment

Environmental deployment

Server Role IP addresses You need to install software packages
Primary cache server 192.168.142.130 Telnet、libevent、memcached、keepalived、magent
From the cache server 192.168.142.131 Telnet、libevent、memcached、keepalived
Client 192.168.142.132 Telnet

Step 1: Configure primary cache memcached server

#挂载软件包
mount.cifs //192.168.142.1/memcached /mnt
cd /mnt/memcached

#创建目录
mkdir /opt/magent       

#解压安装包
tar zxvf magent-0.5.tar.gz -C /opt/magent/
tar zxvf libevent-2.1.8-stable.tar.gz -C /opt
tar zxvf memcached-1.5.6.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
make && make install

cd /opt/magent/

vim ketama.h
#ifndef SSIZE_MAX
#define SSIZE_MAX 32767
#endif
#第一行末尾添加-lm
vim Makefile
LIBS = -levent-lm

#编译
make

#安装openssh
yum install openssh-clients -y
cp magent /usr/bin

#推送magent文件
scp magent [email protected]:/usr/bin

#关闭防火墙和安全功能
systemctl stop firewalld.service 
setenforce 0

#安装keepalived
yum install keepalived -y

#修改配置文件
vim /etc/keepalived/keepalived.conf 
! Configuration File for keepalived

#写入下列内容,定义函数
vrrp_script magent {
        script "/opt/shell/magent.sh"
        interval 2
}

#修改route-id
global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id MAGENT_HAL
   #修改id名
}

#修改网卡端口
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.142.100     #定义虚拟IP地址
    }
}

mkdir /opt/shell
cd /opt/shell/

#配置从服务器脚本
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.142.100 -p 12000 -s 192.168.45.132:
11211 -b 192.168.142.131:11211
else
pkill -9 magent
fi

chmod +x magent.sh
#启动
systemctl start keepalived.service

#查看迁移地址
ip addr

#启动主服务器
memcached -m 512k -u root -d -l 192.168.142.130 -p 11211

#查看端口是否正常开启
netstat -anptu | grep 11211

Step Two: Configure memcached from the cache server

#挂载软件包
mount.cifs //192.168.142.1/memcached /mnt

#解压安装包
cd /mnt/memcached
tar zxvf libevent-2.1.8-stable.tar.gz -C /opt
tar zxvf memcached-1.5.6.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
make && make install

[root@localhost memcached-1.5.6]# cd /etc/keepalived/
[root@localhost keepalived]# mv keepalived.conf keepalived.conf.bk
[root@localhost keepalived]# touch keepalived.conf
[root@localhost keepalived]# vim keepalived.conf

vrrp_script magent {
        script "/opt/shell/magent.sh"
        interval 2
}

global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id MAGENT_HB      #id名不可与主服务器相同
}

vrrp_instance VI_1 {
    state BACKUP            #设定从服务器
    interface ens33
    virtual_router_id 52    #id号不可与主服务器相同
    priority 90             #优先级低与主服务器 
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
        magent
   }
    virtual_ipaddress {
        192.168.142.100     #定义虚拟IP地址
    }
}

mkdir /opt/shell
cd /opt/shell/

#配置从服务器脚本
vim magent.sh
#!/bin/bash
K=`ip addr | grep 192.168.142.100 | grep -v grep | wc -l`
if [ $K -gt 0 ];then
        magent -u root -n 51200 -l 192.168.142.100 -p 12000 -s 192.168.142.130:
11211 -b 192.168.142.131:11211
else
pkill -9 magent
fi
chmod +x magent.sh

#启动keepalived
systemctl start keepalived.service

#关闭防火墙和安全功能
systemctl stop firewalld.service 
setenforce 0

#启动从服务器
memcached -m 512k -u root -d -l 192.168.142.131 -p 11211

#查看端口是否正常开启
netstat -anptu | grep 11211

#安装telent进行测试
yum install telnet -y

The third step: Client Test

#关闭防火墙和安全功能
systemctl stop firewalld.service 
setenforce 0

#安装telent进行测试
yum install telnet -y

#使用漂移地址登录连接
telnet 192.168.142.100 12000

#创建键值对,验证主从同步
add username 0 0 7
1234567

#双机热备
#停掉主服务器
systemctl stop keepalived.service

#使用漂移地址登录连接
telnet 192.168.142.100 12000

thanks for reading!!!

Guess you like

Origin blog.51cto.com/14449521/2461646