如何预防keepalived脑裂问题

如何预防keepalived脑裂问题,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

创新互联公司专注于企业成都营销网站建设、网站重做改版、枝江网站定制设计、自适应品牌网站建设、H5开发商城开发、集团公司官网建设、外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为枝江等各大城市提供网站开发制作服务。

(1)可以采用第三方仲裁的方法。由于keepalived体系中主备两台机器所处的状态与对方有关。如果主备机器之间的通信出了网题,就会发生脑裂,此时keepalived体系中会出现双主的情况,产生资源竞争。

(2)一般可以引入仲裁来解决这个问题,即每个节点必须判断自身的状态。最简单的一种操作方法是,在主备的keepalived的配置文件中增加check配置,服务器周期性地ping一下网关,如果ping不通则认为自身有问题 。

(3)最容易的是借助keepalived提供的vrrp_script及track_script实现。如下所示:

#vim /etc/keepalived/keepalived.conf

  ......

  vrrp_script check_local {

   script "/root/check_gateway.sh"

   interval 5

   }

  ...... 

  track_script {    

  check_local                  

  }

   脚本内容:

   # cat /root/check_gateway.sh

  #!/bin/sh

  VIP=$1

  GATEWAY=192.168.1.1

  /sbin/arping -I em1 -c 5 -s $VIP $GATEWAY &>/dev/null  

   check_gateway.sh 就是我们的仲裁逻辑,发现ping不通网关,则关闭keepalived。

(4)检测思路:正常情况下keepalived的VIP地址是在主节点上的,如果在从节点发现了VIP,就设置报警信息。脚本(在从节点上)如下:

vim split-brainc_check.sh

#!/bin/bash

# 检查脑裂的脚本,在备节点上进行部署

LB01_VIP=192.168.1.229

LB01_IP=192.168.1.129

LB02_IP=192.168.1.130

while true

do

 ping -c 2 -W 3 $LB01_VIP &>/dev/null

   if [ $? -eq 0 -a `ip add|grep "$LB01_VIP"|wc -l` -eq 1 ];then

       echo "ha is brain."

   else

       echo "ha is ok"

   fi

   sleep 5

done

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。


分享名称:如何预防keepalived脑裂问题
文章路径:http://azwzsj.com/article/gghjso.html