1、keepalived.conf文件详解,非全部配置
vrrp_instance VI_1 {
state MASTER # keepalived状态可以是MASTER或者BACKUP
interface ens33 # vip所在网卡
virtual_router_id 100 # vrid
priority 100 # 优先级
nopreempt #设置为不抢占,这里只能设置在state为backup的节点上,而且这个节点的优先级必须别另外的高
advert_int 1 #检查间隔,单位秒
unicast_src_ip 192.168.20.130
unicast_peer {
192.168.20.131
}
authentication {
auth_type PASS #认证方式,可以是PASS或AH两种认证方式
auth_pass 1111 #认证密码
}
virtual_ipaddress {
192.168.20.100
}
}
2、Keepalived非抢占模式配置
Master 的配置
vrrp_instance VI_1 {
state BACKUP
interface em2
virtual_router_id 1
priority 100
nopreempt
advert_int 3
unicast_src_ip 192.168.2.20
unicast_peer {
192.168.2.21
}
nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_mysql
chk_redis
chk_nginx
}
virtual_ipaddress {
192.168.2.100
}
}
BACKUP的配置
vrrp_instance VI_1 {
state BACKUP # 必填,可以是MASTER或BACKUP
interface em2
virtual_router_id 1
priority 90
nopreempt
advert_int 3
unicast_src_ip 192.168.2.21
unicast_peer {
192.168.2.20
}
nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_mysql
chk_redis
chk_nginx
}
virtual_ipaddress {
192.168.2.100
}
}
3、出现问题
手动开启关闭keepalived不会抢占VIP,但是重启会出先异常
需要解决的问题 21 重启会抢占20的VIP,但是20重启不会抢占21的
4、问题排查
查看Keepalived的运行日志
tail -100f /var/log/messages | grep Keep*
在不重启的情况下,非抢占模式的Keepalived均正常工作,未出现抢占现象
后来经排查发现其中一台服务器添加了很多延时程序,怀疑是这些延时程序影响Keepalived的启动,造成了这样的现象
5、解决方案
对配置 advert_int 将检查间隔由1秒修改为3秒,成功解决问题。