标签:define 删除 恢复 文件复制 com virt bash -o dad
magent代理的用途:如果memcached其中一个缓存节点的机器down机,那么客户端存入的缓存数据将会丢失一部分,我们可以采用 Magent 缓存代理,防止单点现象,缓存代理也可以做备份,通过客户端连接到缓存代理服务器,缓存代理服务器连接缓存服务器,缓存代理服务器可以连接多台Memcached机器,这样就能实现实现高可用以及防止单点故障。
但是如果magent代理服务器宕机了,就不能继续提供服务,所以就用到了keepalived,通过keepalived配置文件设置优先级来决定谁做主magent或者从magent,当主magent正常运行时vip在主magent,当主magent宕机vip自动换到从magent,主magent恢复后vip自动回到主magent上。
magent代理与memcached服务装在同一台主机上,仅做实验参考。
主机 | 系统 | IP | 角色 | 软件 |
---|---|---|---|---|
memcached 1 | CentOS 7 | 192.168.100.130 | 主节点 | memcached-1.5.6.tar.gz、libevent-2.1.8-stable.tar.gz |
magent 1 | CentOS 7 | 192.168.100.130 | 主代理服务器 | magent-0.5.tar.gz |
memcached 2 | CentOS 7 | 192.168.100.131 | 从节点 | memcached-1.5.6.tar.gz、libevent-2.1.8-stable.tar.gz |
magent 2 | CentOS 7 | 192.168.100.131 | 从代理服务器 | magent-0.5.tar.gz |
client | CentOS 7 | 192.168.100.132 | 测试主机 | telnet |
VIP 192.168.100.100
yum install gcc gcc-c++ -y
systemctl stop firewalld.service
setenforce 0
3.client主机安装Telnet软件
yum install telnet -y
tar xzvf memcached-1.5.6.tar.gz -C /opt/
tar xzvf libevent-2.1.8-stable.tar.gz -C /opt/
cd /opt/libevent-2.1.8-stable
./configure --prefix=/usr/local/libevent #指定安装路径
make && make install
cd memcached-1.5.6
./configure --with-libevent=/usr/local/libevent
make && make install
ln -s /usr/lib/libevent-2.1.so.6 /usr/lib64/libevent-2.1.so.6
mkdir /opt/magent
tar xzvf magent-0.5.tar.gz -C /opt/magent
cd /opt/magent
vim ketama.h #修改头部文件
#ifndef SSIZE_MAX
#define SSIZE_MAX 32767
vim Makefile
LIBS = -levent -lm -L /usr/local/libevent/lib #修改
INCLUDE=-I /usr/local/libevent/include #添加
make
cp /opt/magent/magent /usr/bin ##方便系统识别命令
memcached -m 512k -u root -d -l 192.168.100.130 -p 11211
memcached -m 512k -u root -d -l 192.168.100.131 -p 11211
netstat -ntap |grep 11211
有11211端口表示服务开启成功
magent -u root -n 51200 -l 192.168.100.130 -p 12000 -s 192.168.100.130:11211 -b 192.168.100.131:11211
pkill -9 memcached
yum install keepalived -y
scp /opt/magent/magent root@192.168.100.131:/usr/bin
vim /etc/keepalived/keepalived.conf
router—_id MAGENT_HA
#删除以下内容
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
#定义新函数magent
vrrp_script magent{
script"/opt/shell/magent.sh"
interval 2 ##时间间隔
}
#修改vrrp_instance实例
INTERFACE ens33
#添加
track_script {
magent
} # 使用新函数magent
#定义一个虚拟IP
virtual_ipaddress {
192.168.100.100
}
#下面多余的部分可以全部删除
#从主magent上把配置脚本复制到从magent上
scp /etc/keepalived/keepalived.conf root@192.168.100.131:/etc/keepalived/keepalived.conf
vim /etc/keepalived
router_id MAGENT_HB #修改为MAGENT_HB
state BACKUP #修改为BACKUP
virtual_router_id 52 #ID不同
priortity 90 #优先级比主magent低
mkdir /opt/shell
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.100.100 -p 12000 -s 192.168.100.130:11211 -b 192.168。100.131:11211
else
pkill -9 magent
fi
-n 51200 //定义用户最大连接数
-l 192.168.100.100 //指定虚拟IP
-p 12000 //指定端口号
-s //指定主缓存服务器
-b //指定从缓存服务器
chmod +x magent.sh
mkdir /opt/shell
vim /opt/shell/magent.sh
#!/bin/bash
K=`ip addr | grep 192.168.100.100 | grep -v grep | wc -l`
if [ $K -gt 0 ]; then
magent -u root -n 51200 -l 192.168.100.100 -p 12000 -s 192.168.100.130:11211 -b 192.168.100.131:11211
else
pkill -9 magent
fi
chmod +x magent.sh
systemctl start keepalived.service
netstat -ntap |grep 12000
如果有12000端口表示服务开启成功
memcached+magent+keepalived实现高可用群集
标签:define 删除 恢复 文件复制 com virt bash -o dad
原文地址:http://blog.51cto.com/11134648/2150430