码迷,mamicode.com
首页 > 系统相关 > 详细

Memcached主主复制+Keepalived高可用架构

时间:2018-03-25 12:03:19      阅读:339      评论:0      收藏:0      [点我收藏+]

标签:Memcached+Keepalived

实验报告

第一、实验环境:

技术分享图片

第二、实验步骤:
配置memcached主缓存节点和从缓存节点-----两台配置相同
解包:
tar xf memcached-1.5.6.tar.gz -C /opt/
tar xf libevent-2.1.8-stable.tar.gz -C /opt/

cd /opt/libevent-2.1.8-stable --- 安装lib插件
./configure --prefix=/usr/

make && make install ---编译安装

cd ../memcached-1.5.6 ---安装memcached

./configure \
--with-libevent=/usr

make && make install ---编译安装

下面在主上安装magent:
mkdir /opt/magent
tar xf magent-0.5.tar.gz -C /opt/magent
cd /opt/magent/
vi ketama.h
技术分享图片
vi Makefile
LIBS = -levent -lm //第一行末尾加-lm (不是数字1)
技术分享图片

make //修改完成后可以编译了
技术分享图片
完成,无任何报错

ls一下可看到magent可执行程序
技术分享图片
cp magent /usr/bin/ //将编译好的magent程序复制到PATH路径中

scp magent root@192.168.80.182:/usr/bin/ //把产生的magent文件直接复制到从服务器。

下面安装keepalived:
yum install keepalived –y
vi /etc/keepalived/keepalived.conf //修改默认配置文件
-------------------参考脚本------------
! Configuration File for keepalived

global_defs {
notification_email {br/>acassen@firewall.loc
failover@firewall.loc
br/>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_script magent {
script "/opt/shell/magent.sh"
interval 2
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 99
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
magent
}
virtual_ipaddress {
192.168.80.188
}
}

从服务器上安装keepalived,拷贝上面的配置文件进行修改:
yum install -y keepalived
cd /etc/keepalived/
mv keepalived.conf keepalived.conf.bak
scp root@192.168.80.181:/etc/keepalived/keepalived.conf ./ //把主服务器的配置文件复制过来
vi keepalived.conf
从服务器的名称要修改;router_id MAGENT_HB
从服务器的热备状态要修改成BACKUP;state BACKUP
从调度器的优先级要小于主的;priority 90

下面设置magent管理脚本
--在主服务器上设置:
mkdir /opt/shell 创建目录
cd /opt/shell

vi 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.80.188 -p 12000 -s 192.168.80.181:11211 -b 192.168.80.182:11211
else
pkill -9 magent
fi

参数注解:
-n 51200 //定义用户最大连接数
-l 192.168.80.188 //指定虚拟IP
-p 12000 //指定端口号
-s //指定主缓存服务器
-b //指定从缓存服务器

chmod +x magent.sh 增加执行权限

--在从服务器上操作:
mkdir /opt/shell
cd /opt/shell

vi magent.sh
脚本内容如下,与主服务器脚本有区别!
#!/bin/bash
K=ip addr | grep 192.168.80.188 | grep -v grep | wc -l
if [ $K -gt 0 ]; then
magent -u root -n 51200 -l 192.168.80.188 -p 12000 -s 192.168.80.181:11211 -b 192.168.80.182:11211
else
pkill -9 magent
fi

chmod +x magent.sh 加执行权限

第三步:开始验证工作
---启动主服务器
service keepalived start
netstat -anpt | grep 12000 //确认magent运行
技术分享图片
cat /var/log/messages 看日志,验证主从
技术分享图片
ip addr //确认漂移地址生效
技术分享图片
验证了漂移地址在主服务器上

从服务器开启keepalived
service keepalived start
cat /var/log/messages 看日志,验证主从
技术分享图片
下面启动memcached
memcached -m 512k -u root -d -l 192.168.80.181 -p 11211 //启动主

memcached -m 512k -u root -d -l 192.168.80.182 -p 11211 //启动从
技术分享图片
启动成功

下面在客户端测试:192.168.80.138
-----关闭干扰------------
service firewalld stop
setenforce 0

telnet 192.168.80.188 12000 用漂移地址登陆服务:
技术分享图片
以上界面表示登陆成功

技术分享图片
再次用漂移地址登陆查看内容:
技术分享图片
内容存在,写入成功

从181与182服务器本地登陆查看内容:
telnet 192.168.80.181 11211
技术分享图片
telnet 192.168.80.182 11211
技术分享图片

下面进行倒换测试:
service keepalived stop //把主服务器停了业务不影响
技术分享图片
可以看到漂移地址已经转移到从服务器上了,说明从已接受工作!

再次通过漂移地址访问时,业务不受影响,内容依然可以查看!
技术分享图片
证明倒换测试成功,主备工作正常

service keepalived start 将主服务器再次启动后
技术分享图片
漂移地址再次转移到主服务器上,接手地址,服务依然不受影响。

至此,实验成功!

Memcached主主复制+Keepalived高可用架构

标签:Memcached+Keepalived

原文地址:http://blog.51cto.com/13490688/2090817

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!