2.4.3 Backup 的 keepalived 的配置
global_defs {
router_id mysqlmha1
}
vrrp_script check_run {
script "/etc/keepalived/check_mysqll.sh"
interval 1
}
vrrp_instance VI_1 {
state BACKUP
interface em1
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
check_run
}
virtual_ipaddress {
10.0.11.190 dev em1 label em1:1
10.0.11.191 dev em1 label em1:2
}
}
virtual_server 10.0.11.190 3306 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 20
protocol TCP
sorry_server 10.0.11.244 3306
real_server 10.0.11.243 3306 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
}
virtual_server 10.0.11.191 3306 {
delay_loop 6
lb_algo rr
lb_kind DR
#persistence_timeout 20
protocol TCP
real_server 10.0.11.243 3306 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
real_server 10.0.11.244 3306 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 3306
}
}
}
2.5 Master 和 backup 的 realserver 的配置
对于 realserver 的配置 master 和 backup 是一致的,脚本内容如下:
#!/bin/bash
#description: Config realserver lo and apply noarp
SNS_VIP=10.1.11.190
SNS_VIP2=10.0.11.191
/etc/rc.d/init.d/functions
case"$1" in
start)
ifconfiglo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
ifconfiglo:1 $SNS_VIP2 netmask 255.255.255.255 broadcast $SNS_VIP2
/sbin/routeadd -host $SNS_VIP dev lo:0
/sbin/routeadd -host $SNS_VIP2 dev lo:1
echo"1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo"2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo"1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo"2" >/proc/sys/net/ipv4/conf/all/arp_announce
echo"1" >/proc/sys/net/ipv4/conf/em1/arp_ignore
echo"2" >/proc/sys/net/ipv4/conf/em1/arp_announce
sysctl-p >/dev/null 2>&1
echo"RealServer Start OK"
;;
stop)
ifconfiglo:0 down
ifconfiglo:1 down
routedel $SNS_VIP >/dev/null 2>&1
routedel $SNS_VIP2 >/dev/null 2>&1
echo"0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo"0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo"0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo"0" >/proc/sys/net/ipv4/conf/all/arp_announce
echo"0" >/proc/sys/net/ipv4/conf/em1/arp_ignore
echo"0" >/proc/sys/net/ipv4/conf/em1/arp_announce
echo"RealServer Stoped"
;;
*)
echo"Usage: $0 {start|stop}"
exit1
esac