一、非抢占模式 nopreempt
默认为抢占模式preempt,即当高优先级的主机恢复在线后,会抢占低先级的主机的master角色, 这样会使vip在KA主机中来回漂移,造成网络抖动。
建议设置为非抢占模式 nopreempt ,即高优先级主机恢复后,并不会抢占低优先级主机的master角色 非抢占模块下,如果原主机down机, VIP迁移至的新主机, 后续也发生down时,仍会将VIP迁移回原主机。
注意:要关闭 VIP抢占,必须将各 keepalived 服务器state配置为BACKUP
1、ka1主机配置
编辑keepalived.conf配置文件:
[root@ka1 ~]# vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 100
priority 100 #优先级高
nopreempt #非抢占模式
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.25.254.100/24 dev en33 label en33:1
}
}
2、ka2主机配置
编辑keepalived.conf配置文件:
[root@ka2 ~]# vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 100
priority 80 #优先级低
advert_int 1
nopreempt #非抢占模式
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.25.254.100/24 dev ens33 label ens33:1
}
}
3、重启服务并进行测试
systemctl restart Keepalived.service
先重启ka1服务,再重启ka2服务:
关闭ka1服务:
systemctl stop Keepalived.service
再重启ka1服务:
抓包还是ka2,vip还在ka2,因为非抢占模式,即使优先级高的主机恢复,也不会抢占优先级低的主机,如果原来的主机down机,vip迁移至新的主机,后续也发生down机时,会将vip迁移会源主机。
二、抢占延迟模式 preempt_delay
抢占延迟模式,即优先级高的主机恢复后,不会立即抢回VIP,而是延迟一段时间(默认300s)再抢回 VIP。
注意:需要各keepalived服务器state为BACKUP,并且不要启用 vrrp_strict
1、ka1主机配置
编辑keepalived.conf配置文件:
[root@ka1 ~]# vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 100
priority 100 #优先级高
preempt_delay 5s #抢占延迟5s
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.25.254.100/24 dev ens33 label ens33:1
}
}
2、ka2主机配置
编辑keepalived.conf配置文件:
[root@ka2 ~]# vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 100
priority 80 #优先级低
advert_int 1
preempt_delay 5s #抢占延迟10S
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.25.254.100/24 dev ens33 label ens33:1
}
}
3、测试结果
先重启ka2的服务,再重启ka1的服务:
等延迟时间过了才会抢占ka2的vip