keepAlived常见问题

1、脑裂问题

1、定义:

在一个高可用(HA)系统中,当关联着的两个结点互相之间断开通信时,本来为一个独立的对外提供服务的系统分裂为两个独立的结点,这时两个结点会争抢资源。(keepAlived 中表现为两个结点同时拥有VIP)

keepalived 分为主备两台机器,但对外只提供一个VIP访问,只有主机down 机VIP 才会漂移到备机提供服务。脑裂会导致主备两台机器同时拥有VIP出现争抢问题。

2、原因:

原因是主备机器之间通信断开,例:

如果启用了iptables,不设置"系统接收VRRP协议"的规则,就会出现脑裂,备机keepAlived程序接收不到主机的广播信息,表现为备机上存在VIP。

但是命令抓包时(tcpdump -i eth0|grep VRRP )却能抓取到主机发过来的VRRP广播,说明数据入站时 tcpdump 可以在iptables拦截之前抓到数据包之后被iptables拦截,所以keepAlived程序收不到该数据包。

image

3、解决办法:

1)为iptables 添加规则限制:

vim /etc/sysconfig/iptables

添加:-A INPUT -s 192.168.244/24 -d 224.0.0.18 -p vrrp -j ACCEPT

2)重启iptables : service iptables restart

3)备机上VIP 消失,问题解决:

image

2、一个局域网中多组(keepAlived对) 冲突问题

1、问题描述:

当在同一个局域网部署了多级keepalived服器对时,而又未使用专门的心跳线通信时,可能会发生高可用接管的严重故障问题。keepalived 高可用功能是通过VRRP 协议实现的,VRRP 协议默认通过IP 多播的形式实现高可用对之间的通信,如果同一个局域网内存在多组keepalived服务器对,就会造成IP多播地址冲突问题,导致接管错乱,不同组的keepalived 都会使用默认的224.0.0.18 作为多播地址。

2、问题解决:

在同组的keepalived 服务器所有的配置文件里指定独一无二的多播地址,配置如下:

global_defs{

router_id LVS_19

vrrp_mcast_group4 224.0.0.19 #这个就是指定多播地址的配置

}

不同实例的通信认证密码最好不同,以确保接管正常

猜你喜欢

转载自www.cnblogs.com/happydreamzjl/p/10986348.html