魔法系统之家下载 - 系统之家,XP系统之家,GhostXP系统,纯净版XP系统,Windows7下载之家

当前位置:首页 > 系统教程 > 服务器 > 详细页面

在CentOS7上部署Memcached主主复制+Keepalived高可用架构

编辑:佚名 2021-06-10 16:11:23 来源于:魔法系统之家下载

Memcached主主复制是指在任意一台Memcached服务器修改数据都会被同步到另外一台,但是Memcached API客户端是无法判断连接到哪一台Memcached服务器的,所以需要设置VIP地址,提供给Memcached API客户端进行连接。可以使用Keepalived产生的VIP地址连接主Memcached服务器,并且提供高可用架构。

使用两台Memcached服务器,一台客户机来完成,实验环境表如下:

1.配置memcached主缓存节点和从缓存节点—–两台配置相同

 [root@localhost ~]# tar zxvf libevent-2.1.8-stable.tar.gz -C /opt/   //解包//
 [root@localhost ~]# tar zxvf memcached-1.5.6.tar.gz -C /opt/
 [root@localhost ~]# mkdir /opt/magent
 [root@localhost ~]# tar zxvf magent-0.5.tar.gz -C /opt/magent/
 [root@localhost opt]#cd libevent-2.1.8-stable/
 [root@localhost libevent-2.1.8-stable]# yum install gcc gcc-c++ make -y
 [root@localhost libevent-2.1.8-stable]# ./configure –prefix=/usr
 [root@localhost libevent-2.1.8-stable]# make && make install
 [root@localhost libevent-2.1.8-stable]# cd ../memcached-1.5.6/
 [root@localhost memcached-1.5.6]# ./configure –with-libevent=/usr[root@localhost memcached-1.5.6]# ln -s /usr/lib/libevent-2.1.so.6 /usr/lib64/libevent-2.1.so.6    //软链接//

2.关闭防火墙并开启memcached服务

[root@localhost memcached-1.5.6]# systemctl stop firewalld.service
[root@localhost memcached-1.5.6]# setenforce 0
[root@localhost memcached-1.5.6]# memcached -d -m 32m -p 11211 -u root
[root@localhost memcached-1.5.6]# netstat -ntap | grep 11211
tcp        0      0 0.0.0.0:11211           0.0.0.0:*               LISTEN      11224/memcached
tcp6       0      0 :::11211                :::*                    LISTEN      11224/memcached

3.在主服务器上安装magent

[root@localhost memcached-1.5.6]# cd /opt/magent/
[root@localhost magent]# ls
ketama.c  ketama.h  magent.c  Makefile
[root@localhost magent]# vim ketama.h#ifndef SSIZE_MAX
#define SSIZE_MAX 32767
#endif
[root@localhost magent]# vim Makefile
LIBS = -levent -lm //第一行末尾加-lm (不是数字1
LIBS = -levent -lm
CFLAGS = -Wall -O2 -g[root@localhost magent]# make
gcc -Wall -O2 -g  -c -o magent.o magent.c
gcc -Wall -O2 -g  -c -o ketama.o ketama.c
gcc -Wall -O2 -g -o magent magent.o ketama.o -levent -lm

4.把生成的mgent程序让系统识别

ls一下可看到magent可执行程序
[root@localhost magent]# ls
ketama.c  ketama.h  ketama.o  magent  magent.c  magent.o  Makefile
[root@localhost magent]# cp magent /usr/bin/

5.把产生的magent文件直接复制到从服务器。

[root@localhost bin]# yum install openssh-clients -y
[root@localhost bin]# scp magent root@192.168.126.166:/usr/bin/

6.安装keepalived,修改默认配置文件。

[root@localhost bin]# yum install keepalived -y
[root@localhost bin]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
vrrp_script magent {
        script “/opt/shell/magent.sh”
        interval 2
}global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id MAGENT_HA    //主服务器名称//
}vrrp_instance VI_1 {
    state MASTER
    interface ens33     //网卡名称//
    virtual_router_id 51
    priority 100    //优先级//
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.126.188     //虚拟IP//
    }
track_script {
        magent     //函数//
}
}

7.从服务器上安装keepalived,配置文件进行修改。

[root@localhost bin]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
vi keepalived.conf
vrrp_script magent {
        script “/opt/shell/magent.sh”
        interval 2
}global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id MAGENT_HB      //从服务器的名称//
}vrrp_instance VI_1 {
    state BACKUP            //从服务器的热备状态要修改成BACKUP//
    interface ens33  //网卡名称//
    virtual_router_id 52    //不能与主服务器相同//
    priority 90       //从调度器的优先级要小于主的//
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.126.188     //虚拟IP//
    }
track_script {        //函数//
        magent
}
}

8.在主服务器上设置magent管理脚本

[root@localhost bin]# mkdir /opt/shell
[root@localhost bin]# 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.126.188 -p 12000 -s 192.168.126.138:11211 -b 192.168.126.166:11211
else
pkill -9 magent
fi参数注解:
-n 51200 //定义用户最大连接数
-l 192.168.126.188 //指定虚拟IP
-p 12000  //指定端口号
-s //指定主缓存服务器
-b //指定从缓存服务器[root@loc


分享到:

相关信息

热门资讯

频道热点资讯