问题描述
我在 RHEL 6.10 上使用 Keepalived v1.2.23
我有两台服务器。
Server1 配置:
vrrp_script check_database {
script "my_script"
interval 1
timeout 30
}
vrrp_instance VI_1 {
debug 2
interface eth0.460
state BACKUP
nopreempt
virtual_router_id 51
priority 101
unicast_src_ip 192.168.54.4
unicast_peer {
192.168.54.5
}
track_script {
check_database
}
}
Server2 配置:
vrrp_script check_database {
script "my_script"
interval 1
timeout 30
}
vrrp_instance VI_1 {
debug 2
interface eth0.460
state BACKUP
nopreempt
virtual_router_id 51
priority 100
unicast_src_ip 192.168.54.5
unicast_peer {
192.168.54.4
}
track_script {
check_database
}
}
通常情况下,一切正常,当服务器遇到任何问题时,Keepalived 会触发故障转移。但是在一种情况下存在问题。当我在界面测试中使用“ifdown 和 ifup”命令时,我不理解 Keepalived 的行为。
1.测试1
- 初始状态如下:
服务器 1:主
Server2:备份
- 我们假设接口“eth0.460”在 Server2 上崩溃了。
服务器 1:主
Server2:故障
Keepalived_vrrp[8687]: Netlink reflector reports IP 192.168.54.5 removed
Keepalived_healthcheckers[8687]: Netlink reflector reports IP 192.168.54.5 removed
ntpd[1951]: Deleting interface #469 eth0.460,192.168.54.5#123,interface stats: received=0,sent=0,dropped=0,active_time=14594 secs
Keepalived_vrrp[8687]: Kernel is reporting: interface eth0.460 DOWN
Keepalived_vrrp[8687]: Kernel is reporting: interface eth0.460 DOWN
Keepalived_vrrp[8687]: VRRP_Instance(VI_1) Now in FAULT state
- 问题解决后,会出现两种不同的行为。为什么 Server2 想成为 MASTER?
Server2 的第一个行为 - 预期
Keepalived_vrrp[8687]: Kernel is reporting: interface eth0.460 UP
Keepalived_vrrp[8687]: Kernel is reporting: tracked interface are UP
Keepalived_vrrp[8687]: VRRP_Instance(VI_1): Entering BACKUP STATE
Keepalived_vrrp[8687]: Netlink reflector reports IP 192.168.54.5 added.
Keepalived_healthcheckers[8686]: Netlink reflector reports IP 192.168.54.5 added.
Server2 的第二个行为 - 意外
Keepalived_vrrp[31531]: Kernel is reporting: interface eth0.460 UP
Keepalived_vrrp[31531]: VRRP_Instance(VI_1): Entering BACKUP STATE
Keepalived_vrrp[31531]: Netlink reflector reports IP 192.168.54.5 added
Keepalived_healthcheckers[31529]: Netlink reflector reports 192.168.54.5 added
Keepalived_vrrp[31531]: VRRP_Instance(VI_1) **Transition to MASTER STATE**
Keepalived_vrrp[31531]: VRRP_Instance(VI_1) **Received higher prio advert 101**
Keepalived_vrrp[31531]: VRRP_Instance(VI_1) Entering BACKUP STATE
2.测试2
- 初始状态如下:
服务器 1:备份
Server2:主
- 我们假设接口“eth0.460”在 Server1 上崩溃了。
服务器 1:故障
Keepalived_healthcheckers[9898]: Netlink reflector reports IP 192.168.54.4 removed
Keepalived_vrrp[9899]: Netlink reflector reports IP 192.168.54.4 removed
ntpd[1954]: Deleting interface #109 eth0.460,192.168.54.4#123,active_time=79741 secs
Keepalived_vrrp[9899]: Kernel is reporting: interface eth0.460 DOWN
Keepalived_vrrp[9899]: VRRP_Instance(VI_1) Now in FAULT state
Server2:主
- 问题解决后,会出现两种不同的行为。当 Server2 是 MASTER 时,为什么 Server1 变成 MASTER?
Server1 的第一个行为 - 预期
Keepalived_vrrp[9899]: Kernel is reporting: interface eth0.460 UP
Keepalived_vrrp[9899]: VRRP_Instance(VI_1): Entering BACKUP STATE
Keepalived_healthcheckers[9898]: Netlink reflector reports IP 192.168.54.4 added
Keepalived_vrrp[9899]: Netlink reflector reports IP 192.168.54.4 added
ntpd[1954]: Listen normally on 115 eth0.460 192.168.54.4 UDP 123
Server1 的第二个行为 - 意外
Keepalived_vrrp[25026]: Kernel is reporting: interface eth0.460 UP
Keepalived_vrrp[25026]: VRRP_Instance(VI_1): Entering BACKUP STATE
Keepalived_vrrp[25026]: Netlink reflector reports IP 192.168.54.4 added
Keepalived_healthcheckers[25025]: Netlink reflector reports IP 192.168.54.4 added
Keepalived_vrrp[25026]: VRRP_Instance(VI_1) Transition to MASTER STATE
Keepalived_vrrp[25026]: VRRP_Instance(VI_1) Entering MASTER STATE
ntpd[1954]: Listen normally on 99 eth0.460 192.168.54.4 UDP 123
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)