keepalived安装在网上查询;
地址如下:
1. 机器:192.168.0.180(主) 192.168.0.113 (从)
前提:2个机器上都安装keepalived
2. 配置主上的keepalived.conf(如下)
#keepalived config
! Configuration File for keepalived
global_defs {
notification_email {
wangxinghua1234@163.com
}
notification_email_from wangxinghua1234@163.com
smtp_server smtp.163.com
smtp_connect_timeout 30
router_id MySQL-ha
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
# notify_master /home/sh/master.sh
# notify_backup /home/sh/backup.sh
# notify_stop /home/sh/stop.sh
virtual_ipaddress {
192.168.0.100
}
virtual_server 192.168.0.100 3306 {
delay_loop 2 #每个2秒检查一次real_server状态
lb_algo wrr #LVS算法
lb_kind DR #LVS模式
persistence_timeout 60 #会话保持时间
protocol TCP
real_server 192.168.0.180 3306 {
weight 3
notify_down /home/sh/keepalived_stop.sh #检测到服务down后执行的脚本
TCP_CHECK {
connect_timeout 10 #连接超时时间
nb_get_retry 3 #重连次数
delay_before_retry 3 #重连间隔时间
connect_port 3306 #健康检查端口
}
}
}
3. 配置从上的keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
wangxinghua1234@163.com
}
notification_email_from wangxinghua1234@163.com
smtp_server smtp.163.com
smtp_connect_timeout 30
router_id MySQL-ha
}
vrrp_instance VI_HA {
state BACKUP #都是backup
interface eth0
virtual_router_id 51
priority 90 #优先级
advert_int 5 #检查间隔
nopreempt
authentication {
auth_type PASS
auth_pass 1234
}
virtual_ipaddress {
192.168.0.100
}
4.重启keepalived;
/home/sh/keepalived_stop.sh 中就'pkill keepalived;';
验证切换:
关闭主的mysql,VIP飘逸到从机;
当主的mysql恢复,还是在从机;
当把主的keepalived启动,VIP再飘逸过来;