keepAlived常见问题

Posted happydreamzjl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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程序收不到该数据包。

技术图片

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 消失,问题解决:

技术图片

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 #这个就是指定多播地址的配置

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

以上是关于keepAlived常见问题的主要内容,如果未能解决你的问题,请参考以下文章

脑裂问题与解决(keepalived脑裂的解决和预防)

脑裂问题与解决(keepalived脑裂的解决和预防)

请教个keepalived http check的问题。

新手搭keepalived时主备机都有虚拟IP启动问题...

求助keepalived vip不能访问

keepAlived常见问题