Skip to content

Keepalived-高可用

官网:http://www.keepalived.org

简介

  • Keepalived软件起初是专门为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx,Haproxy,MySQL等)的高可用解决方案软件。
  • Keepalived软件主要是通过VRRP协议实现高可用功能的。VRRP是Virtual Router Redundancy Protocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由单点故障问题的,他能够保证当个别节点宕机时,整个网络可以不间断地运行。所以,Keepalived一方面具有配置管理LVS的功能,同时还具有对LVS下面节点进行健康检查的功能,另一方面也可实现系统网络服务的高可用功能。

核心功能

高可用(HA)

通过 VRRP 协议实现主备节点的自动故障转移。当主节点(Master)故障时,备用节点(Backup)会接管虚拟 IP(VIP)和服务,确保业务连续性。典型应用包括 Nginx、HAProxy、数据库等服务的冗余部署

负载均衡

集成 LVS(Linux Virtual Server),支持四层负载均衡算法(如轮询、加权轮询等),并实时监控后端服务器的健康状态,自动剔除故障节点。

健康检查

支持多层(网络层、传输层、应用层)健康检测机制,例如 ICMP 探测、TCP 端口检查、HTTP/SSL 请求验证等,确保服务可用性

工作原理

VRRP 协议

Keepalived 通过 VRRP 将多台服务器虚拟成一个路由器组,选举出 Master 节点(优先级最高者)处理流量。Master 定期发送组播心跳(224.0.0.18),若 Backup 节点未收到心跳,则触发选举并接管 VIP

进程架构

运行时启动三个进程:

  • 父进程:监控子进程;
  • VRRP 子进程:处理 VRRP 协议状态;
  • Checker 子进程:执行健康检查

Keepalived 故障转移原理

  1. VRRP也就是虚拟路由冗余协议,它的出现就是为了解决静态路由的单点故障。
  2. VRRP是通过一种竞选协议机制来将路由任务交给某台VRRP路由器的。
  3. VRRP用IP多播的方式(默认多播地址(224.0.0.18))实现高可用之间通信。
  4. 工作时主节点发包,备节点接包,当备节点接收不到主节点发的数据包的时候,就启动接管程序接管主节点的资源。备节点可以有多个,通过优先级竞选,但一般Keepalived系统运维工作中都是一对。
  5. VRRP使用了加密协议加密数据,但Keepalived官方目前还是推荐用明文的方式配置认证类型和密码。

典型应用场景

  • Web 服务高可用:如 Nginx 主备切换,避免单点故障
  • 数据库主从切换:MySQL/PostgreSQL 的主节点故障自动转移
  • 负载均衡集群:结合 LVS 构建高并发负载均衡系统