keepalived 配置过程中遇到了一些问题,做个记录:

1、selinux的影响:keepalived配置了vrrp_script脚本总是无效

     注:脚本返回值0代表成功,1或其他非0值代表失败
     脚本1:
     #!/bin/bash
   LOCALIP=redissrv1
 
   ALIVE=`/usr/bin/redis-cli -h $LOCALIP PING`
   if [ "$ALIVE" == "PONG" ]; then
       exit 0
   else
      exit 1
   fi
  脚本2:
   #!/bin/bash
   LOCALIP=redissrv1
   PORT=6379
 
   nc -z $LOCALIP $PORT >/dev/null 2>&1   (屏蔽这句就返回成功)
 
   经查找和分析是执行脚本权限问题,关闭selinux就可以了,临时关闭:setenforce 0, 查看状态:getenforce,或者修改/etc/sysconfig/selinux文件把里面的一行修改为SELINUX=disabled,保存重启就可以了。
 
2、iptables的影响:keepalived分别在两台服务器执行脚本成功(测试两台redis均正常运行),出现两台服务器都设置了同样的虚拟IP
   这个是两台服务器的keepalived数据交互的问题,由于防火墙的原因,两台服务器没有收到相互的优先级等信息,都以为是master,所以设置了虚拟IP
   关闭防火墙或添加keepalived组播地址(224.0.0.18)
   在iptables 中加入对vrrp报文的允许  注意书写iptables的时候是-i插入 因为通常大家的iptables最后一条默认都是拒绝的。
   iptables -A INPUT -d 224.0.0.18 -j ACCEPT
   vrrp广播报文使用的地址是224.0.0.18
   注:centos 7版本默认使用firewall作为防火墙,不使用iptables
 
posted on 2018-03-27 17:33  jaamy  阅读(1802)  评论(1编辑  收藏  举报