keepAlived常见问题

一、脑裂问题

一、定义:vim

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

 

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

二、缘由:spa

缘由是主备机器之间通讯断开,例:rest

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

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

image

三、解决办法:ip

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

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

一、问题描述:

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

二、问题解决:

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

global_defs{

router_id LVS_19

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

}

不一样实例的通讯认证密码最好不一样,以确保接管正常

相关文章
相关标签/搜索