1)
同一套keepalived集群中virtual_router_id 要保持一致
/var/log/messages日志keepalived启动正常日志:
Nov 18 22:42:07 db01 Keepalived_vrrp[26691]: Opening file '/etc/keepalived/keepalived.conf'. Nov 18 22:42:07 db01 Keepalived_vrrp[26691]: VRRP_Instance(VI_2) removing protocol VIPs. Nov 18 22:42:07 db01 Keepalived_vrrp[26691]: Using LinkWatch kernel netlink reflector... Nov 18 22:42:07 db01 Keepalived_vrrp[26691]: VRRP sockpool: [ifindex(6), proto(112), unicast(0), fd(10,11)] Nov 18 22:42:08 db01 Keepalived_vrrp[26691]: VRRP_Instance(VI_2) Transition to MASTER STATE Nov 18 22:42:09 db01 Keepalived_vrrp[26691]: VRRP_Instance(VI_2) Entering MASTER STATE Nov 18 22:42:09 db01 Keepalived_vrrp[26691]: VRRP_Instance(VI_2) setting protocol VIPs. Nov 18 22:42:09 db01 Keepalived_vrrp[26691]: Sending gratuitous ARP on bond0 for 192.168.123.147 Nov 18 22:42:09 db01 Keepalived_vrrp[26691]: VRRP_Instance(VI_2) Sending/queueing gratuitous ARPs on bond0 for 192.168.10.147 Nov 18 22:42:09 db01 Keepalived_vrrp[26691]: Sending gratuitous ARP on bond0 for 192.168.123.147 Nov 18 22:42:09 db01 Keepalived_vrrp[26691]: Sending gratuitous ARP on bond0 for 192.168.123.147 Nov 18 22:42:09 db01 Keepalived_vrrp[26691]: Sending gratuitous ARP on bond0 for 192.168.123.147 Nov 18 22:42:09 db01 Keepalived_vrrp[26691]: Sending gratuitous ARP on bond0 for 192.168.123.147 Nov 18 22:42:14 db01 Keepalived_vrrp[26691]: Sending gratuitous ARP on bond0 for 192.168.123.147 Nov 18 22:42:14 db01 Keepalived_vrrp[26691]: VRRP_Instance(VI_2) Sending/queueing gratuitous ARPs on bond0 for 192.168.10.147 Nov 18 22:42:14 db01 Keepalived_vrrp[26691]: Sending gratuitous ARP on bond0 for 192.168.123.147 Nov 18 22:42:14 db01 Keepalived_vrrp[26691]: Sending gratuitous ARP on bond0 for 192.168.123.147 Nov 18 22:42:14 db01 Keepalived_vrrp[26691]: Sending gratuitous ARP on bond0 for 192.168.123.147 Nov 18 22:42:14 db01 Keepalived_vrrp[26691]: Sending gratuitous ARP on bond0 for 192.168.123.147 (END)
2)
在同一网段内非同一套keepalived集群中virtual_router_id 值不能相同
案例:
配置文件内容:
cat /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id Server_01 } vrrp_instance VI_1 { state MASTER interface bond0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.10.3/24 } }
/var/log/messages日志keepalived启动报错
Mar 14 01:29:21 test Keepalived_vrrp[819]: VRRP_Instance(mysql-ha) ignoring received advertisment... Mar 14 01:29:22 test Keepalived_vrrp[819]: ip address associated with VRID not present in received packet : 192.168.32.53 Mar 14 01:29:22 test Keepalived_vrrp[819]: one or more VIP associated with VRID mismatch actual MASTER advert Mar 14 01:29:22 test Keepalived_vrrp[819]: bogus VRRP packet received on bond0 !!! Mar 14 01:29:22 test Keepalived_vrrp[819]: VRRP_Instance(mysql-ha) ignoring received advertisment... Mar 14 01:29:23 test Keepalived_vrrp[819]: ip address associated with VRID not present in received packet : 192.168.32.53 Mar 14 01:29:23 test Keepalived_vrrp[819]: one or more VIP associated with VRID mismatch actual MASTER advert Mar 14 01:29:23 test Keepalived_vrrp[819]: bogus VRRP packet received on bond0 !!!
解决方法:
修改virtual_router_id的值,从51改为88,因为之前在同一网段还有别的机器安装过keepalived,并设置了virtual_router_id=51,改成不同的值后重启keepalived后问题得到解决.
3)
在同一个网段内的,若为不同的应用做高可用,不同应用使用不同的VIP,那么vrrp_instance的名字(这里是VI_1)、virtual_router_id在不同的高可用实例必须设置不同的值区分开
案例:
配置文件内容:
cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id Server_01
}
vrrp_instance VI_1 {
state MASTER
interface bond0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.100.3/24 ##做为数据库的高可用
192.168.100.4/24 ##做为tomcat的高可用
}
}
/var/log/messages日志keepalived启动报错:
Aug 11 11:28:36 localhostKeepalived_vrrp[16958]: (VI_1): received an invalid ip number count 1, expected2! Aug 11 11:28:36 localhostKeepalived_vrrp[16958]: bogus VRRP packet received on eth1 !!! Aug 11 11:28:36 localhostKeepalived_vrrp[16958]: VRRP_Instance(VI_1) Dropping received VRRP packet…
解决办法:针对不通应用的高可用,配置不同的vrrp_instance和virtual_router_id
详情配置如下:
cat /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id Server_01 } vrrp_instance VI_1 { state MASTER interface bond0 virtual_router_id 88 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.100.3/24 ##做为数据库的高可用 } } vrrp_instance VI_2 { state MASTER interface bond0 virtual_router_id 99 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.100.4/24 ##做为tomcat的高可用 } }