一、什么是高可用

原笔记开头先给出了一个非常直接的定义:

  • 高可用就是 HA,也就是 High Availability
  • 在本节场景里,最常见的软件是 Keepalived

它解决的问题也很明确:

  • 给服务提供一个稳定的访问入口
  • 当主节点异常时,让备用节点接管访问流量

从用户角度看,访问的往往不是某台真实机器的 IP,而是一个虚拟 IP,也就是 VIP

二、Keepalived 常见选型与定位

原笔记把几类 HA 方案做了简要对比:

方案 说明
keepalived 常用于负载均衡和不涉及数据一致性的高可用场景
heartbeat 更适合与存储、数据库等数据类服务结合
商业 HA 软件 企业级场景可选

在 Web 集群、LB 高可用这类场景里,Keepalived 几乎是最常见的基础工具之一。

三、Keepalived 的工作原理是什么

原笔记强调,Keepalived 的核心基础是:

  • 基于 VRRP 协议实现高可用

也就是:

  • VRRP 全称是虚拟路由器冗余协议
  • 它最初用于网络设备的高可用
  • Keepalived 通过实现 VRRP,把主备切换能力带到普通 Linux 主机上

实际运行时可以这样理解:

  • 集群里通常有主节点和备节点
  • 主节点会定期向备节点发送 VRRP 通信报文
  • 备节点持续收到报文,就认为主还活着
  • 一旦备节点长时间收不到,就会认为主已经失效
  • 然后备节点接管 VIP,开始承担流量

原笔记还提到,VRRP 使用的是组播地址,例如 224.x.x.x 这类范围。

四、keepalived.conf 主要看哪几部分

原笔记把 Keepalived 配置文件结构概括为三块:

结构 说明
global_defs 全局定义部分
vrrp_instance VRRP 实例配置,是最常改的部分
virtual_server 偏向 LVS 场景的配置

对于当前学习阶段,最重要的是:

  • global_defs
  • vrrp_instance

因为 VIP、主备角色、网卡、优先级这些核心参数,基本都在 vrrp_instance 里。

五、最小可用的 Keepalived 主备配置长什么样

原笔记给出的实验环境如下:

节点 地址 安装服务
lb01 192.168.1.21 nginx + keepalived
lb02 192.168.1.25 nginx + keepalived

目标 VIP:

  • 192.168.1.3

主节点配置示例:

global_defs {
   router_id lb01
}

vrrp_instance vip_3 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.3 dev eth0 label eth0:0
    }
}

备节点配置示例:

global_defs {
   router_id lb02
}

vrrp_instance vip_3 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.3 dev eth0 label eth0:0
    }
}

六、这些关键参数分别代表什么

结合原笔记里的配置,可以把核心字段理解为:

  • state:当前节点是 MASTER 还是 BACKUP
  • interface:VIP 绑定到哪块网卡
  • virtual_router_id:同一个 VRRP 组的唯一编号,主备必须一致
  • priority:优先级,数值越大越容易成为主
  • advert_int:主节点发送通告的时间间隔
  • authentication:主备之间通信认证
  • virtual_ipaddress:真正漂移的虚拟 IP

其中最直观、最常调的是:

  • state
  • priority
  • virtual_ipaddress

七、如何验证 VIP 是否真的漂移成功

原笔记的操作流程是:

1、两台主机安装 Keepalived

yum install -y keepalived

2、启动服务

systemctl enable keepalived.service
systemctl start keepalived.service

3、分别查看 VIP

ip -4 a | grep 192.168.1.3

正常情况下,VIP 应该先出现在主节点上,而备节点上看不到。

这正是 Keepalived 最基础、也最核心的验证方式。

八、小结

Keepalived 入门阶段最重要的是先把三件事搞清楚:

  • 它通过 VRRP 实现主备切换
  • 它的核心配置集中在 vrrp_instance
  • 它最终对外体现为 VIP 在主备节点之间漂移

只要把这三个点跑通,后面再学习脑裂、服务监控、非抢占和双主模式就会更顺畅。