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

一、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)。相当于备节点接收不到心跳消息,通过单独的线路发送关机命令关闭主节点的电源。
● 做好对裂脑的监控报警(如邮件及手机短信等或值班),在问题发生时人为第一时间介人仲裁,降低损失。例如,百度的监 控报警短信就有上行和下行的区别。报警信息发送到管理员手机上,管理员可以通过手机回复对应数字或简单的字符串操作 返回给服务器,让服务器根据指令自动处理相应故障,这样解决故障的时间更短。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值