! Configuration File for keepalived
global_defs {
router_id LVS1_DEVEL
}
vrrp_instance HA_1 {
state BACKUP
interface eno1
virtual_router_id 51
priority 90
advert_int 1
garp_master_delay 3
nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
101.132.91.5
}
notify /etc/keepalived/arp.sh #notify 表示任何一状态切换时都会调用该脚本,并且该脚本在以上三个脚本执行完成之后进行调用
}
virtual_server 101.132.91.5 80 {
delay_loop 2
#lb_algo wrr #带有权重的轮询
#lb_kind DR
persistence_timeout 60 #同一IP的连接60秒内被分配到同一台真实服务器
protocol TCP
real_server 101.132.91.4 80 {
weight 3 #权重为3
notify_down /data/keepalived_shutdown.sh #当mysq服down时,执行此脚本,杀死keepalived实现切换, 自杀脚本.
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
arp.sh内容
# cat /etc/keepalived/arp.sh
#!/bin/bash
VIP=101.132.91.5
GATEWAY=101.132.91.1
arping -I eno1 -c 3 -s $VIP $GATEWAY &>/dev/null
说明:
基本格式 arping -I 发送包的网卡接口 -c 次数 -s 源ip 目的ip
-I interface:设置ping使用的网络接口。
-c count:表示发送指定数量的ARP请求数据包后就停止。如果指定了deadline选项,则arping会等待相同数量的arp响应包,直到超时为止;
-s source:设定arping发送的arp数据包中的SPA字段的值。如果为空,则按下面处理,如果是DAD模式(冲突地址探测),则设置为0.0.0.0,如果是Unsolicited ARP模式(Gratutious ARP)则设置为目标地址,否则从路由表得出;
keepalived_shutdown.sh内容
#!/bin/bash
#kill掉keepalived进程,以防止脑裂问题。
service keepalived stop #或者pkill keepalived
附件–密码:学号keepalived