Hi,
I am using keepalived.1.1.20 on RHEL5.3 servers. 'nopreempt' is not working for interface failures.
* Start keepalived process on both server A and B
* Server A becomes MASTER and server B BACKUP
* Soft fail an interface on server A (ifdown eth0) -- Server A goes to FAULT state and Server B becomes MASTER as expected
* Bring up the failed interface on Server A (ifup eth0). Server A goes to BACKUP state and Server B remains MASTER as expected.
* BUT within few seconds, Server A Transits itself to MASTER and there by pushing server B to BACKUP. This is not as expected and described in the keepalived documents. The adverts from Server B when it is MASTER and when Server A interface is brought up, are received at Server A. So there is no problem with the connectivity and that the chance of missing adverts at Server A is rules out.
* Debugging the source code shows that the Server A instance after coming up from FAULT state, it moves on to BACKUP state and then is entering 'static int vrrp_dispatcher_read_to(int fd) ' function. I guess this is for thread read timeout.
Copied my configuration files below.
This nopreempt feature is very important as I am planning to implement keepalived on production servers.
Any help/cue will be greatly appreciated.
Thanks in advance,
-Purandhar K
The configuration files are:
Server A
--------------
"
global_defs {
router_id VRRP_99
}
vrrp_sync_group VG1 {
group {
VI_98
VI_99
}
}
vrrp_instance VI_98 {
! we are the Master
state BACKUP
interface eth0
! lvs_sync_daemon_interface eth0
virtual_router_id 200
priority 200
advert_int 5
nopreempt
! authentication {
! auth_type PASS
! auth_pass 1234
! }
virtual_ipaddress {
192.168.178.25
}
}
vrrp_instance VI_99 {
state BACKUP
interface eth1
! lvs_sync_daemon_interface eth1
virtual_router_id 201
priority 200
advert_int 5
nopreempt
! authentication {
! auth_type PASS
! auth_pass 1234
! }
virtual_ipaddress {
192.168.178.41
}
}
"
Server B:
---------------
"
! Configuration File for keepalived
global_defs {
router_id VRRP_99
}
vrrp_sync_group VG1 {
group {
VI_98
VI_99
}
}
vrrp_instance VI_98 {
! we are the BACKUP
state BACKUP
interface eth0
! lvs_sync_daemon_interface eth0
virtual_router_id 200
priority 200
advert_int 5
nopreempt
! authentication {
! auth_type PASS
! auth_pass 1234
! }
virtual_ipaddress {
192.168.178.25
}
}
vrrp_instance VI_99 {
state BACKUP
interface eth1
! lvs_sync_daemon_interface eth1
virtual_router_id 201
priority 200
advert_int 5
nopreempt
! authentication {
! auth_type PASS
! auth_pass 1234
! }
virtual_ipaddress {
192.168.178.41
}
}
"