nginx-7:高可用主备模式

参考:https://blog.csdn.net/ljx1528/article/details/82842194

 

 1. 原理

  VRRP 协议,全程 Virtual Router Redundancy Protocal,中文名为虚拟路由冗余协议,VRRP 的出现是为了解决静态路由的单点故障。

  VRRP 是用 IP 多播的方式(默认多播地址 224.0.0.18)实现高可用对之间通信的。

  工作时,主节点发包,备用节点接包,当备用节点接收不到主节点发的数据包的时候,就启动接管程序接管主节点的资源。备用节点可以有多个,通过优先级竞选,但一般 keepalived 都是使用一对。

  

  

  

 2. 配置

  略

 

 3. keepalived 产生脑裂的原因与解决方法

  脑裂指在一个高可用(HA)系统中,当联系着的两个节点断开联系时,本来为一个整体的系统,分裂为两个独立节点,这时两个节点开始争抢共享资源,结果会导致系统混乱,数据损坏。

  一般来说,脑裂的发生,有一下几种原因:

  1)高可用服务器对之间心跳线路发生故障,导致无法正常通信

  • 因心跳线坏了(包括断了,老化)
  • 因网卡及相关驱动坏了,ip 配置及冲突问题
  • 因心跳线连接的设备故障(网卡及交换机)
  • 因仲裁的机器出现问题(采用仲裁的方案)

   2)高可用服务器上开启了防火墙阻挡了心跳消息传输

  3)高可用服务器上心跳网卡地址等信息配置不正确,导致发送心跳失败

  4)其他服务器配置不当等原因,如心跳方式不同,心跳广插冲突

  5)keepalived 配置里同一 VRRP 实例,如果 virtual_router_id 两端参数配置不一致也会导致裂闹问题发生

 

  常见的解决方案

  1)同时使用串行电缆和以太网电缆连接,同时用两条心跳线路,这样一条线路坏了,另一个还是好的,依然能传送心跳消息

  2)当检测到裂闹时强行关闭一个心跳节点(这个功能需要特殊设备支持,如果 Stonith、feyce)。相当于备用节点接收不到心跳消息,通过单独的线路发送关机命令关闭主节点电源

  3)做好对裂脑的监控报警(如邮件或手机短信或值班)。在问题发生时人为第一时间介入仲裁,降低损失。

 

posted @ 2020-08-28 14:59  停不下的时光  阅读(1159)  评论(0编辑  收藏  举报