最近在研究服务器高可用集群 (HA)……

搭建了主备两台Keepalived,配置什么的全是网上照抄的,被验证过无数遍的示例……

然而Master和Backup无法自动切换。两边会同时绑定浮动IP(VIP),

观察的到的现象是:

1、Master正常启动。

2、Backup启动刚开始是Backup状态,短暂间隔后变为Master。

3、两台机器通过命令 ip addr 查看,均绑定了VIP!

4、两台机器无论怎么重启,看起来互不相关。

经过漫长的排查……重启……测试……

发现……防火墙一关……两台机器状态切换立马丝般润滑。

遂从防火墙配置作为突破口。

究其原理,VRRP协议需要MASTER不断广播自己“状态正常”的信息,一旦Backup不能收到Master的广播信息,Backup会尝试切换到Master状态来接管VIP。

所以如果防火墙配置不正确,Master的状态信息无法到达Backup,导致Backup以为Master挂了,出来抢占VIP。。

然后这两机器就迷茫了……

最后找到Oracle Linux的一篇文档。。。。

VRRP协议也需要设置防火墙!

iptables -I INPUT -i eth0 -d 224.0.0.0/8 -p vrrp -j ACCEPT
iptables -I OUTPUT -o eth0 -d 224.0.0.0/8 -p vrrp -j ACCEPT
service iptables save

收工……

Keepalived 无法自动转换主备角色,请关注 iptables 防火墙配置的更多相关文章

  1. keepalived工作原理和配置说明 腾讯云VPC内通过keepalived搭建高可用主备集群

    keepalived工作原理和配置说明 腾讯云VPC内通过keepalived搭建高可用主备集群 内网路由都用mac地址 一个mac地址绑定多个ip一个网卡只能一个mac地址,而且mac地址无法改,但 ...

  2. 测试redis+keepalived实现简单的主备切换【转载】

    转自: 测试redis+keepalived实现简单的主备切换 - Try My Best 尽力而为 - ITeye技术网站http://raising.iteye.com/blog/2311757 ...

  3. KEEPALIVED 双机自动切换部署备忘

    1.配置文件的名字不要型错了.开始我将配置文件写成keeplive.conf,运行后也不报错,但无法看到VIP.日志里也看不到任何有价值信息.直到后来反复检查才发现可能配置文件名有问题,修正为keep ...

  4. Nginx+Keepalived 主备高可用 安装与配置

    环境说明:操作系统:CentOS6.7 x86_64Nginx版本:nginx-1.9.7Keepalived版本:keepalived-1.2.24 主nginx + Keepalived :10. ...

  5. 主备角色switch

    理论知识:Switchover 切换允许primary 和一个备库进行切换,并且这种切换没有数据丢失. 前提条件: 1) 主备库相关参数 fal_client.fal_server .standby_ ...

  6. Keepalived+Nginx+tomcat实现主备+负载

    部署系统: Red Hat Enterprise Linux Server release 7.0 软件版本:apache-tomcat-7.0.92.tar.gzkeepalived-2.0.11. ...

  7. keepalived安装实现nginx主备高可用

    . keepalived安装环境 su - root yum -y install kernel-devel* yum -y install openssl-* yum -y install popt ...

  8. 在MySQL或者SQLServer中,添加对象后自动返回主键到对象模型中的配置方式

    设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中.MySQL和SQLServer执行auto-generated key fiel ...

  9. haproxy+keepalived主备与双主模式配置

    Haproxy+Keepalived主备模式 主备节点设置 主备节点上各安装配置haproxy,配置内容且要相同 global log 127.0.0.1 local2 chroot /var/lib ...

随机推荐

  1. 【NumberValidators】增值税发票代码验证

    同大陆身份证验证一样,该部分是按照国家增值税发票代码的定制规则,进行发票代码验证,如果需要查验发票信息是否正确,应该通过第三方接口(大约一毛钱查验一次),或者直接上国家税务总局全国增值税发票查验平台进 ...

  2. ASP.NET Core 2 学习笔记(四)依赖注入

    ASP.NET Core使用了大量的依赖注入(Dependency Injection, DI),把控制反转(Inversion Of Control, IoC)运用的相当巧妙.DI可算是ASP.NE ...

  3. 《JavaScript》高级程序设计第7章 函数表达式

    7.2 闭包 定义: 闭包是指有权访问另一个函数作用域中的变量的函数. 理解闭包: 作用域链: 当某个函数被调用时,会创建一个执行环境以及相应的作用域链. 作用域链中,外部函数的活动对象始终处于第二位 ...

  4. Python 获取秒级时间戳与毫秒级时间戳

    原文:Python获取秒级时间戳与毫秒级时间戳 1.获取秒级时间戳与毫秒级时间戳 import time import datetime t = time.time() print (t) #原始时间 ...

  5. Weekly Contest 131

    1021. Remove Outermost Parentheses A valid parentheses string is either empty (""), " ...

  6. 920. Number of Music Playlists

    Your music player contains N different songs and she wants to listen to L (not necessarily different ...

  7. js 从基础入门 到放弃 001

    快速入门  JavaScript代码可以直接嵌在网页的任何地方,不过通常我们都把JavaScript代码放到<head>中: <html> <head> <s ...

  8. Unity色子的投掷与点数的获得(详解)

    前几天需要一个色子的投掷并且获得朝上点数的Unity脚本,在网上找了很多,都是一个模子刻出来的. 对于2018版的我来说,网上找的都是很早就弃用了的老版本. 好不容易能运行了,结果并不理想,于是又突发 ...

  9. 使用git工具将本地电脑上的代码上传至GitHub

    本文教你如果使用git工具将本地电脑上的代码上传至GitHub 1.安装git工具 安装git链接 2.使用git工具上传自己的代码到GitHub中 安装完git工具之后,我们会得到两个命令行工具,一 ...

  10. POJ 2336

    #include <iostream> using namespace std; int main() { //freopen("acm.acm","r&qu ...