博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
keepalived工作原理及裂脑
阅读量:5820 次
发布时间:2019-06-18

本文共 1144 字,大约阅读时间需要 3 分钟。

1. keepalived服务的工作原理(重点)

ükeepalived高可用对之间是通过VRRP协议通信的,因此,我们从VRRP协议介绍:

üvrrp协议,全称virtual  router redundancy protocol ,中文名名为虚拟路由冗余协议VRRP的出现时为了解决静态路由的单点故障。

üVRRP是通过一种竞选协议机制来将路由任务交给某台VRRP路由器的。

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

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

üVRRP使用了加密协议加密数据,但Keepalived官方目前还是推荐用明文的方式配置认证类型和密码。

2. 导致裂脑发生的原因

  • 高可用服务器之间心跳线链路故障,导致无法正常通信。

心跳线坏了(包括断了,老化)。

网卡即相关驱动坏了,IP配置及冲突问题(网卡直连)

心跳线间连接的设备故障(网卡及交换机)

仲裁的机器出问题(采用仲裁的方案)。

  • 高可用服务器对上开启了iptables防火墙阻挡了心跳信息传输。

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

  • 其他服务器配置不当等原因,如心跳方式不同,心跳广播冲突,软件BUG

3. 解决裂脑的常见方案

在实际生产环境中,我们可以从以下几个方面来防止裂脑问题的发生。

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

  • 当检测到裂脑时强行关闭一个心跳节点(这个功能需特殊设备支持,如fence,stonith)。相当于备节点接收不到心跳信息,发送关机命令通过单独的线路关闭主节点电源。

  • 做好对裂脑的监控报警(如邮件及手机短信等),在问题发生时人为的第一时间介入仲裁,降低损失。例如:百度的监控报警短信就有上行和下行的区别。报警信息到管理员手机上,就可以通过回复对应的字符串等操作就可以返回给服务器,让服务器根据指令自动执行处理相关故障


下面是生产场景中检测裂脑故障的一些思路:

(1)简单判断的思想:只要备节点出现VIP就报警,这个报警可以有两种情况,一是主机宕机了备机接管了;二是主机没宕,裂脑了,不管哪种情况,都进行报警,然后由人工查看判断及解决。

(2)比较严谨的判断:备节点出现对应的VIP,并且主节点及对应的服务还活着,就说明发生裂脑了。

本文转自写个博客骗钱博客51CTO博客,原文链接http://blog.51cto.com/dadonggg/1948737如需转载请自行联系原作者

菜鸟东哥

你可能感兴趣的文章
从源码看集合ArrayList
查看>>
spring-boot支持websocket
查看>>
菜鸟笔记(一) - Java常见的乱码问题
查看>>
我理想中的前端工作流
查看>>
记一次Git异常操作:将多个repository合并到同一repository的同一分支
查看>>
CodeIgniter 3.0 新手捣鼓源码(一) base_url()
查看>>
Chrome 广告屏蔽功能不影响浏览器性能
查看>>
vSphere 6将于2月2日全球同步发表
查看>>
Android状态栏实现沉浸式模式
查看>>
让你的APP实现即时聊天功能
查看>>
iOS 绝对路径和相对路径
查看>>
使用Openfiler搭建ISCSI网络存储
查看>>
学生名单
查看>>
(转) 多模态机器翻译
查看>>
【官方文档】Nginx负载均衡学习笔记(三) TCP和UDP负载平衡官方参考文档
查看>>
矩阵常用归一化
查看>>
Oracle常用函数总结
查看>>
【聚能聊有奖话题】Boring隧道掘进机完成首段挖掘,离未来交通还有多远?
查看>>
盘点物联网网关现有联网技术及应用场景
查看>>
考研太苦逼没坚持下来!看苑老师视频有点上头
查看>>