一、什么是高可用¶
原笔记开头先给出了一个非常直接的定义:
- 高可用就是
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_defsvrrp_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还是BACKUPinterface:VIP 绑定到哪块网卡virtual_router_id:同一个 VRRP 组的唯一编号,主备必须一致priority:优先级,数值越大越容易成为主advert_int:主节点发送通告的时间间隔authentication:主备之间通信认证virtual_ipaddress:真正漂移的虚拟 IP
其中最直观、最常调的是:
statepriorityvirtual_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 在主备节点之间漂移
只要把这三个点跑通,后面再学习脑裂、服务监控、非抢占和双主模式就会更顺畅。