Keepalived LVS群集

什么是Keepalived?

Keepalived是一个开源的网络高可用性解决方案,它主要用于在负载均衡和故障转移的环境中确保服务的持续可用性。

Keepalived是基于VRRP协议来实现高可用的方案

Keepalived是如何工作的?

在一个LVS集群中有主服务器和备服务器之分。

在默认的情况下,通过优先级来决定谁主谁备(主服务器master 和 备服务器backup),master会通过IP命令在本地生成VIP,接收到来自客户端的请求消息并处理,同时也会定时的给backup发送VRRP消息来告知自身的存活状态,当master发生故障,backup会接替VIP来继续提供服务,保证服务的高可用。

Keepalived工作模式

Keepalived有两种工作模式,分别是 抢占模式 和 非抢占模式。

  • 抢占模式:当主服务器master发生故障恢复后,会抢占备服务器backup的VIP
  • 非抢占模式:当主服务器master发生故障恢复后,不会抢占备服务器backup的VIP

非抢占模式如何设置: 主备节点的state都配置为BAKCUP,并且都添加配置nopreempt

Keepalived 脑裂故障

当Keepalived发生脑裂故障,会发现主服务器和备服务器都拥有着相同的VIP

这种现象发生的原因是因为主服务器和备服务器直接的通信断开,导致了备服务器无法收到主服务器发送的VRRP报文,此时备服务器认为主服务器发生了故障,因此通过IP命令生成了VIP

解决脑裂故障的方法:将主服务器或者备服务器其中一个的Keepalived服务关闭

如何预防脑裂故障?

(1)关闭防火墙或者修改防火墙规则放通VRRP组播地址(224.0.0.18)

(2)主备服务器通信中断,就添加双链路通信

(3)使用脚本在主服务器判断与备服务器的通信是否中断,判断通信确实中断,就关闭自身keepalived服务

(4)使用第三方应用或监控系统检测有无发生了脑裂故障,如果确认发生脑裂故障则通过第三方应用或监控系统来关闭主服务器或备服务器其中一个的keepalived服务

相关推荐
HABuo18 小时前
【Linux进程(四)】进程切换&环境变量深入剖析
linux·运维·服务器·c语言·c++·ubuntu·centos
橘颂TA18 小时前
【Linux】死锁四条件的底层逻辑:从锁冲突到 STL 组件的线程安全实践(Ⅵ)
linux·运维·服务器·c++·死锁
黄焖鸡能干四碗19 小时前
智能制造工业大数据应用及探索方案(PPT文件)
大数据·运维·人工智能·制造·需求分析
橙露19 小时前
国产PLC与进口PLC全面对比分析:技术、市场与未来趋势
运维·网络
lbb 小魔仙19 小时前
【Linux】云原生运维效率提升:Linux 终端工具链(kubectl + tmux + fzf)组合拳教程
linux·运维·云原生
清水白石00819 小时前
解构异步编程的两种哲学:从 asyncio 到 Trio,理解 Nursery 的魔力
运维·服务器·数据库·python
Joren的学习记录19 小时前
【Linux运维大神系列】Kubernetes详解3(kubeadm部署k8s1.23高可用集群)
linux·运维·kubernetes
代码游侠20 小时前
应用——智能配电箱监控系统
linux·服务器·数据库·笔记·算法·sqlite
眠りたいです20 小时前
Docker核心技术和实现原理第二部分:docker镜像与网络原理
运维·网络·docker·容器
Tisfy20 小时前
网站访问耗时优化 - 从数十秒到几百毫秒的“零成本”优化过程
服务器·开发语言·性能优化·php·网站·建站