什么是 Keepalived?
Keepalived VRRP 介绍
Keepalived是用C语言编写的路由软件。
该项目的主要目标是为Linux系统和基于Linux的基础结构提供负载均衡和高可用性的简单而强大的功能。
负载平衡框架是依赖于提供第4层负载平衡的著名且广泛使用的 Linux Virtual Server (IPVS) 内核模块。
Keepalived 还实现了一组检查器,以根据其运行状况动态,自适应地维护和管理负载平衡的服务器池。另一方面,VRRP 实现了高可用性协议。VRRP( Virtual Router Redundancy Protoco ) 即虚拟路由冗余协议,是路由器故障转移的基础。此外,Keepalived还实现了一组VRRP有限状态机的挂钩,从而提供了低级和高速协议交互。为了提供最快的网络故障检测,Keepalived实施BFD协议。VRRP状态转换可以考虑BFD提示来驱动快速状态转换。Keepalived框架可以独立使用,也可以一起使用以提供弹性基础架构。
图片来源百度百科
Keepalived是免费软件;您可以根据自由软件基金会发布的GNU通用公共许可证的条款重新分发和/或修改它。
https://www.keepalived.org
keepalived是什么:
keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障。
keepalived工作原理:
keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。
虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供 相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了。
keepalived主要有三个模块,分别是core、check和vrrp。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。vrrp模块是来实现VRRP协议的。
脑裂:
Keepalived的BACKUP主机在收不到MASTER主机报文后就会切换成为master,如果是它们之间的通信线路出现问题,无法接收到彼此的组播通知,但是两个节点实际都处于正常工作状态,这时两个节点均会成为master,这样每个 master 就会强行绑定虚拟IP,导致不可预料的后果,这就是脑裂。
解决方式:
1、添加更多的检测手段,尽量及时检测到脑裂并尽早进行人工干预。
2、爆头,将master停掉。然后检查机器之间的防火墙。网络之间的通信