突破单点故障限制,实现热备防止宕机
在主主复制的基础和负载均衡的基础之上用keepalived实现热备
keepalived 提供一个vip 虚拟的ip,并监测haproxy1和haproxy2的运行情况,让这个vip在两者间进行抢占(机制有默认,有优先,有宕机后另一个自动获取)
keepalived的安装 yum 安装方式 keepalived-1.2.13-5.el6_6.x86_64
修改其配置文件
vim /etc/keepalived/keepalived.conf
[root@mycat3 ~]# vim /etc/keepalived/keepalived.conf
/bin/bash: Configuration: command not found
bal_defs { //此段暂时略过,下同
notification_email {
[email protected]
[email protected]
[email protected]
}
notification_email_from [email protected]
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_haproxy {
script "/etc/keepalived/chk.sh" #检查haproxy的脚本
interval 2 #每两秒检查一次
}
vrrp_instance VI_1 {
state MASTER #另一台haproxy_bakcup机子改为BACKUP
interface eth0 #vip的网卡口,不需要加ifcfg-
virtual_router_id 51 #此id必须为网络内唯一
priority 100 #另一台haproxy_bakcup机子改为50 最好相差50
advert_int 1
authentication {
auth_type PASS
auth_pass MrUse
}
virtual_ipaddress {
5.5.5.5 #给出的具体虚拟ip
}
}
track_script {
chk_haproxy #调用检查脚本 后面还有个脚本编辑
}
notify_backup "/etc/init.d/haproxy restart"
notify_fault "/etc/init.d/haproxy stop"
}
两台haproxy编辑脚本
vim /etc/keepalived/chk.sh
#!/bin/bash
#
if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ]; then
/etc/init.d/keepalived stop
fi
设置的谁先启动谁就抢占vip 5.5.5.5,一台抢到的如果停止服务,另一台代替5.5.5.5
把vip改成同局域网的192.168.3.15
在安装有数据库mysql的3.3上,mysql -u rs -p -h 192.168.3.15 -P 7306
表示连接正常