《Keepalived 配置文件详解:global_defs 与 vrrp_instance 模块参数解读》
·
Keepalived 配置文件详解:global_defs 与 vrrp_instance 模块参数解读
一、Keepalived 核心功能概述
Keepalived 通过**虚拟路由冗余协议(VRRP)**实现高可用集群,其配置文件 /etc/keepalived/keepalived.conf 采用模块化结构。核心模块 global_defs 定义全局参数,vrrp_instance 管理虚拟路由实例,二者共同保障服务的高可用性。
二、global_defs 全局配置模块
global_defs {
notification_email {
admin@example.com
ops@example.com
}
notification_email_from alert@server.com
smtp_server 192.168.1.10
smtp_connect_timeout 30
router_id LVS_MASTER # 关键标识符
}
核心参数解析:
-
router_id
- 作用:唯一标识当前节点,集群内需互异
- 示例:
router_id NODE_A - 错误配置后果:主备节点身份冲突
-
通知机制
notification_email:告警接收邮箱(支持多个)smtp_server:邮件服务器地址smtp_connect_timeout:SMTP连接超时时间(单位:秒)
三、vrrp_instance 虚拟路由模块
vrrp_instance VI_1 {
state MASTER # 初始角色
interface eth0 # 绑定网卡
virtual_router_id 51 # 虚拟路由ID
priority 100 # 权重值
advert_int 1 # 心跳间隔
authentication {
auth_type PASS
auth_pass 1111 # 认证密码
}
virtual_ipaddress {
192.168.1.100/24 # 虚拟IP
}
}
关键参数深度解读:
| 参数 | 作用 | 配置规则 |
|---|---|---|
state | 初始角色(MASTER/BACKUP) | 备份节点必须设为 BACKUP |
virtual_router_id | 虚拟路由组ID | 同一集群内必须相同(1-255) |
priority | 节点优先级(范围1-254) | MASTER通常 > BACKUP 5-10 |
advert_int | 主备心跳间隔(秒) | 推荐1-3,网络延迟高可增大 |
auth_pass | 节点间认证密码 | 需8位以内明文 |
virtual_ipaddress | 对外服务的虚拟IP | 需配置掩码 |
四、高可用性保障机制
-
权重动态调整
通过vrrp_script检测服务状态,自动调整优先级:vrrp_script chk_nginx { script "/etc/keepalived/check_nginx.sh" interval 2 # 检测频率(秒) weight -20 # 失败时优先级降低值 } track_script { chk_nginx # 绑定检测脚本 } -
脑裂预防策略
- 设置
nopreempt禁止备份节点主动抢占 - 通过多播地址
224.0.0.18实现秒级故障检测
- 设置
五、典型配置场景分析
主备节点配置差异对比:
# 主节点
state MASTER
priority 100
# 备节点
state BACKUP
priority 90
故障切换流程:
- MASTER 节点失联(心跳超时)
- BACKUP 节点检测到状态异常
- BACKUP 晋升为 MASTER 并接管虚拟IP
- 原MASTER恢复后自动降级为BACKUP
六、调试与排错指南
-
日志监控命令
tail -f /var/log/messages | grep Keepalived -
常见错误代码
- VIRTUAL_ROUTER_ID_CONFLICT:虚拟路由ID重复
- AUTH_TYPE_MISMATCH:主备认证方式不一致
最佳实践:生产环境建议通过
unicast_src_ip指定单播地址,避免多播被防火墙拦截。
结语
精确配置 global_defs 和 vrrp_instance 是构建稳定高可用集群的基础。理解参数间的关联性,结合健康检查机制,可实现99.99%的服务可用性。建议每次修改后通过 keepalived -t 验证配置语法,逐步部署到生产环境。
更多推荐



所有评论(0)