Linux系统运维之keepalived的工作原理和裂脑

本文详细介绍了Keepalived的工作原理,包括其基于VRRP的高可用性和竞选机制,确保主备节点间的资源切换。同时,讨论了‘裂脑’现象,即当高可用服务器对无法检测到对方心跳时导致的资源冲突和数据一致性问题,并列举了可能的原因及解决方案。通过理解这些概念,有助于提升系统稳定性和数据安全性。
摘要由CSDN通过智能技术生成

一、keepalived的工作原理

1、Keepalived高可用对之间的通信原理

  1) VRRP,全称Virtual Router Redundancy Protocol,中文名为虚拟路由冗余协议,VRRP是为了解决静态路由的单点故障。
  2) VRRP是通过一种竞选协议机制来将路由任务交给某台VRRP路由器的。
  3) VRRP用IP多播的方式(默认多播地址(224.0.0.18 ))实现高可用对之间通信。

   4) 工作时主节点发包, 备节点接包, 当备节点接收不到主节点发的数据包的时候, 就启动接管程序接管主节点的资源。备节点可以有多个, 通过优先级竞选, 但一般Keepalived 系统运维工作中都是一对。
   5) VRRP使用了加密协议加密数据,但Keepalived官方目前还是推荐用明文的方式配置认证类型和密码。ed官方目前还
是推荐用明文的方式配置认证类型和密码。

2、Keepalived服务的工作原理

  Keepalived 高可用对之间是通过V R R P 进行通信的, V R R P 是通过竞选机制来确定主备的,主的优先级高于备, 因此,工作时主会优先获得所有的资源, 备节点处于等待状态, 当主挂了的时候,备节点就会接管主节点的资源,然后顶替主节点对外提供服务。在Keepalived服务对之间,只有作为主的服务器会一直发送V R R P 广播包, 告诉备它还活着, 此时备不会抢占主,当主不可用时, 即备监听不到主发送的广播包时, 就会启动相关服务接管资源,保证业务的连续性。接管速度最快可以小于1秒。

二、裂脑

1、什么是“裂脑”

无法检测心跳————各自工作,取各自资源————用户写入导致数据丢失
  由于某些原因,导致两台高可用服务器对在指定时间内,无法检测到对方的心跳消息,各自取得资源及服务的所有权,而此时的两台高可用服务器对都还活着并在正常运行,这样就会导致同一个IP或服务在两端同时存在而发生冲突,最严重的是两台主机占用同一个VIP地址,当用户写人数据时可能会分别写入到两端,这可能会导致服务器两端的数据不一致或造成数据丢失,这种情况就被称为裂脑。

2、导致裂脑的原因及解决办法

导致原因
● 高可用服务器对之间心跳线链路发生故障,导致无法正常通信。
● 心跳线坏了(包括断了,老化)。
● 网卡及相关驱动坏了,IP配置及冲突问题(网卡直连)。
● 心跳线间连接的设备故障(网卡及交换机)。
● 仲裁的机器出问题(采用仲裁的方案)。
● 高可用服务器上开启了 iptables防火墙阻挡了心跳消息传输。
● 高可用服务器上心跳网卡地址等信息配置不正确,导致发送心跳失败。
● 其他服务配置不当等原因,如心跳方式不同,心跳广播冲突、软件Bug等。

解决办法
● 同时使用串行电缆和以太网电缆连接,同时用两条心跳线路,这样一条线路坏了,另一个还是好的,依然能传送心跳消息。
● 当检测到裂脑时强行关闭一个心跳节点(这个功能需特殊设备支持,如Stonith.fence)。相当于备节点接收不到心跳消息,通过单独的线路发送关机命令关闭主节点的电源。
● 做好对裂脑的监控报警(如邮件及手机短信等或值班),在问题发生时人为第一时间介人仲裁,降低损失。例如,百度的监 控报警短信就有上行和下行的区别。报警信息发送到管理员手机上,管理员可以通过手机回复对应数字或简单的字符串操作 返回给服务器,让服务器根据指令自动处理相应故障,这样解决故障的时间更短。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值