keepalived
1. 什么是高可用 (High Availability, HA)?
在 IT 领域,‘高可用’指的是系统在面对硬件故障、软件错误或网络问题时,仍能长时间持续提供服务的能力。
'目标':消除单点故障(SPOF)。如果一台服务器挂了,另一台能立马顶上。
'衡量标准':通常用“几个9”来衡量,比如 99.99%(意味着一年停机时间不超过 52 分钟)。
‘Keepalived’ 就是Linux下一个轻量级的高可用解决方案,它最初是为 LVS(Linux Virtual Server)设计的,用来管理并监控负载均衡集群中的服务节点状态。
2. 核心基石:VRRP 协议
要懂 Keepalived,必须先懂 ‘VRRP’ (Virtual Router Redundancy Protocol,虚拟路由器冗余协议)。Keepalived 就是用 C 语言实现了 VRRP 协议。
VRRP 的工作原理:
想象一下,你有一群路由器,我们想让它们在外面看起来像’一台’超级路由器。
- ‘虚拟 IP (VIP)’:这是对外提供服务的 IP 地址。客户端只连接这个 IP,不知道后面具体是哪台机器。
- ‘角色’: ’ ‘Master (主节点)’:真正持有 VIP,负责处理流量,并周期性地向 Backup 发送“我还活着”的广播包(心跳)。 ’ ‘Backup (备节点)’:监听 Master 的广播。
- ‘选举与故障切换 (Failover)’: ’ Backup 如果在一定时间内(通常是3秒)收不到 Master 的心跳包,就认为 Master 挂了。 ’ Backup 根据优先级(Priority)选举出新的 Master,接管 VIP。 ’ 一旦旧 Master 恢复,根据配置(抢占模式),它可能会重新夺回 VIP。
3. Keepalived 基础知识
Keepalived 主要有两个核心功能: