MHA+Lvs+Keepalived实现MySQL的高可用及读负载均衡_4(Lvs+Keepalived)
实现Masterha-manager高可用及MySQL从的读负载均衡的Lvs+Keepalived安装及配置
--20150211
今天发现一个问题——之前的方案解决masterha_manager的高可用,会致使两个Lvs服务器都down,经检查,发现是因为两台lvs上的/etc/app1.cnf不一致导致的,解决方法:
第一步:先在两台lvs服务器间创建ssh无密码连接
第二步:在Lvs-15.23的notify_master脚本的第一行添加“scp -P 1777 root@Lvs-15.24:/etc/app1.cnf /etc/”,在Lvs-15.24的notify_master脚本的第一行添加“scp -P 1777 root@Lvs-15.23:/etc/app1.cnf /etc/” ,以实现两边的app1.cnf保持一致
在上述解决方案的基础上,假想这样一个场景。Master1 down了,MHA实现了new master的切换。你在完成对Master1的修复之后,将其change master到new master,此时只需更新当前Lvs主的app1.cnf,假使当前Lvs主是Lvs-15.23,那么在Lvs-15.23的app1.cnf里新增修复后的server Master1,然后在Lvs-15.23上执行masterha_stop --conf=/etc/app1.cnf,Lvs-15.24会将Lvs-15.23的app1.cnf同步到本地,并启动masterha_manager,实现masterha_manager的高可用。
一、安装ipvsadm
1 下载
http://www.linuxvirtualserver.org/software/ipvs.html
下载时需要检查服务器linux内核版本,以下载相对应版本的ipvsadm
2 安装
2.1 创建内核目录的链接文件
[root@Lvs-15.23 ~ 13:08:34]#ls /usr/src/kernels
2.6.18-308.el5-x86_64
[root@Lvs-15.23 ~ 13:08:42]#
ln -s /usr/src/kernels/2.6.18-308.el5-x86_64 /usr/src/linux
[root@Lvs-15.23 ~ 13:09:48]#ll /usr/src/linux
lrwxrwxrwx 1 root root 38 01-04 17:54 /usr/src/linux ->
/usr/src/kernels/2.6.18-308.el5-x86_64
2.2 安装
[root@Lvs-15.23 xxm 13:13:00]#tar xf ipvsadm-1.24.tar.gz
[root@Lvs-15.23 xxm 13:13:11]#cd ipvsadm-1.24
[root@Lvs-15.23 ipvsadm-1.24 13:45:10]#make && make install
2.3 开启路由转发功能
[root@Lvs-15.23 ~ 13:46:25]#/bin/sed -i 's/ip_forward = 0/ip_forward = 1/p' /etc/sysctl.conf
[root@Lvs-15.23 ~ 13:46:45]#sysctl -p
二、安装Keepalived
1 下载
2 安装
2.1 软件安装
[root@Lvs-15.23 xxm 13:49:52]#tar xf keepalived-1.2.12.tar.gz
[root@Lvs-15.23 xxm 13:50:02]#cd keepalived-1.2.12
[root@Lvs-15.23 keepalived-1.2.12 13:50:03]#
./configure --prefix=/usr/local/keepalived
[root@Lvs-15.23 keepalived-1.2.12 13:51:38]#make && make install
2.2 相关文件cp
此操作的原因->keepalived服务启动脚本默认指定了参数路径,所以为了能够正常启动keepalived服务,需要执行上述操作,当然也可以不cp目标文件,直接vi修改目标文件,将相应的参数指向为真实文件即可。
/bin/cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d
/bin/cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig
/bin/cp /usr/local/keepalived/sbin/keepalived /usr/sbin
/bin/mkdir /etc/keepalived
2.3 分离Keepalived日志文件
2.3.1
[root@Lvs-15.23 keepalived 13:56:52]#vi /etc/sysconfig/keepalived
[root@Lvs-15.23 keepalived 13:57:54]#tail -2 /etc/sysconfig/keepalived
KEEPALIVED_OPTIONS="-D -d -S 0"
2.3.2 修改syslog.conf定义keepalived的日志
[root@Lvs-15.23 ~ 13:59:52]#tail -2 /etc/syslog.conf
# Save keepalived messages to keepalived.log
local0.*