架构环境:
一共需要三台虚拟机
第一台Linux 7.4虚拟机作为主节点服务器需要安装Memcached Libevent magent keepalived四个软件 服务器IP地址为192.168.80.186;
第二台 Linux 7.4 虚拟机作为备节点需要安装Memcached Libevent keepalived 三个软件 服务器IP地址为192.168.80.187;
第三台虚拟机为测试机可以用真机也可以用Linux 7.4 作为测试机需要安装telnet连接软件测试机IP地址为192.168.80.181;
架构原理: magent软件可以支持Memcached的复制功能多台Memcached之间相互复制而Memcached需要依赖Libevent 安装keepalived检测进行健康检查与故障切换。
实验过程:
将软件包通过winscp软件传入两台Linux服务器
配置memcached主服务器节点和从缓存节点 两台配置完全相同 只要没有特别说明都是在两台上都做
解压包
安装lib插件
Configure好了之后用 make && make install 编译安装
编译安装memcached:
cd ../memcached-1.5.6
./configure \
--with-libevent=/usr
make && make install
两台都装好后在主上安装magent
在 /opt/下创建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 //l 不是数字 1
配置好了就可以make编译了
ls后可以看到magent可执行程序
cp magent /usr/bin/
将magent可执行文件加入usr可执行命令中
因为只要服务器中有magent可执行文件就可以执行magent命令所以只需要将主服务器的magent文件复制到从服务器就可以了
scp magent [email protected]:/usr/bin/
复制成功
用本地yum安装keepalived软件
yum install keepalived –y
vi /etc/keepalived/keepalived.conf //修改默认配置文件
参考配置文件脚本
! Configuration File for keepalived
global_defs {
notification_email{
}
notification_email_from [email protected]
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id MAGENT_HA
}
vrrp_script magent {
script "/opt/shell/magent.sh"
interval 2
}
vrrp_instance VI_1 {
stateBACKUP
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
}
}
下面的是在从服务器配置
cd /etc/keepalived/
mv keepalived.conf keepalived.conf.bak
scp [email protected]:/etc/keepalived/keepalived.conf./
将主上的配置拷贝过来
vi keepalived.conf
改这几个就可以了
router_id MAGENT_HA
state BACKUP
priority 90
在主服务器上写启动脚本
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.186:11211-b 192.168.80.187:11211
else
pkill -9 magent
fi
-n 51200 //定义用户最大连接数
-l 192.168.80.188 //指定虚拟IP
-p 12000 //指定端口号
-s //指定主缓存服务器
-b //指定从缓存服务器
chmod +x magent.sh
service keepalived start
netstat -anpt | grep 12000 //确认magent运行
ip addr //确认漂移地址生效
漂移地址188已经存在主服务器上
从服务器上开启keepalived
service keepalived start
cat /var/log/messages
187为从服务器
开启memcached
memcached -m 512k -u root -d -l 192.168.80.186 -p11211 //启动主
memcached -m 512k -u root -d -l 192.168.80.187-p 11211 //启动从
netstat -anptu | grep 11211过滤端口
主
从
下面用客户端测试用Linux7.4 ip地址为192.168.80.181的虚拟机测试
用telnet 192.168.80.188 12000 登录
登录成功
写入内容
再次登录看看是否成功写入数据
在两台服务器看看是否内容同步了
telnet 192.168.80.186 11211
主服务器成功
telnet 192.168.80.187 11211
从也成功
下面将主停掉
service keepalived stop
漂移地址转到从服务器上了
用188访问还是可以的
再将主服务器起来
漂移地址还是回到了主服务器
从服务器上已经没有了
试验成功
小型Memcached服务器主主复制与keepalived高可用集群搭建完成
下期为大家带来手工编译LAMP架构敬请期待 点一波赞和关注亲们