当前位置: 首页 > news >正文

VRRP 多节点工作原理

VRRP 多节点工作原理

基本概念

  • VRRP 的设计初衷是给一组节点提供一个 虚拟路由器,对外只表现出一个 VIP
  • 协议规定:同一个 VRRP 实例 下始终只有 一个 Master 持有 VIP,其它全部是 Backup。
    • Master → 持有 VIP,负责转发流量到Master或Backup;
    • Backup → 不持有 VIP,只监听 Master 状态。

优先级机制

节点A (Priority: 100) --> Master
节点B (Priority: 90)  --> Backup
节点C (Priority: 80)  --> Backup  
节点D (Priority: 70)  --> Backup

当 Master 故障时,优先级最高的 Backup 会接管成为新的 Master。

多节点配置示例

节点1配置(优先级最高)

# /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 51priority 100        # 最高优先级advert_int 1authentication {auth_type PASSauth_pass 1234}virtual_ipaddress {192.168.1.100}
}

节点2配置(第二优先级)

vrrp_instance VI_1 {state BACKUPinterface eth0virtual_router_id 51priority 90         # 第二优先级advert_int 1authentication {auth_type PASSauth_pass 1234}virtual_ipaddress {192.168.1.100}
}

节点3配置(第三优先级)

vrrp_instance VI_1 {state BACKUPinterface eth0virtual_router_id 51priority 80         # 第三优先级advert_int 1authentication {auth_type PASSauth_pass 1234}virtual_ipaddress {192.168.1.100}
}

故障切换流程

正常状态

Master (Priority: 100) -- 持有 VIP|+-- 发送 VRRP 广播|
Backup1 (Priority: 90) -- 监听 VRRP 广播|
Backup2 (Priority: 80) -- 监听 VRRP 广播|
Backup3 (Priority: 70) -- 监听 VRRP 广播

Master 故障时

1. Master 停止发送 VRRP 广播
2. 所有 Backup 节点检测到超时
3. Backup 节点开始选举:- Backup1 (90) vs Backup2 (80) vs Backup3 (70)- Backup1 胜出,成为新 Master
4. 新 Master 接管 VIP

高级特性

1. 抢占模式(Preempt)

vrrp_instance VI_1 {state BACKUPnopreempt           # 非抢占模式priority 100# ... 其他配置
}
  • 抢占模式(默认):高优先级节点恢复后会抢回 Master 角色
  • 非抢占模式:即使高优先级节点恢复,当前 Master 也不会让出

2. 优先级动态调整

vrrp_script chk_nginx {script "/etc/keepalived/check_nginx.sh"interval 2weight -20          # 检查失败时优先级减20
}vrrp_instance VI_1 {state BACKUPpriority 100track_script {chk_nginx}
}

3. 多组 VRRP 实例

可以配置多个 VRRP 实例实现负载分担:

# 节点1:VI_1 的 Master,VI_2 的 Backup
vrrp_instance VI_1 {state MASTERpriority 100virtual_ipaddress {192.168.1.100}
}vrrp_instance VI_2 {state BACKUPpriority 90virtual_ipaddress {192.168.1.101}
}# 节点2:VI_1 的 Backup,VI_2 的 Master
vrrp_instance VI_1 {state BACKUPpriority 90virtual_ipaddress {192.168.1.100}
}vrrp_instance VI_2 {state MASTERpriority 100virtual_ipaddress {192.168.1.101}
}

实际应用场景

1. 数据库集群(3节点)

主数据库 (Priority: 100)
从数据库1 (Priority: 90) -- 同步延迟较小
从数据库2 (Priority: 80) -- 同步延迟较大

2. Web服务集群(4节点)

Web1 (Priority: 100) -- 配置最高
Web2 (Priority: 95)  -- 配置次高
Web3 (Priority: 90)  -- 配置中等
Web4 (Priority: 85)  -- 配置较低

3. 混合优先级策略

# 基于服务器性能和网络位置设置优先级
vrrp_instance VI_1 {state BACKUPpriority 100        # 基础优先级track_script {chk_cpu_load    # CPU 负载高时 -30chk_mem_usage   # 内存不足时 -20chk_service     # 服务异常时 -50}
}

注意事项

  1. 优先级范围:1-254(0和255保留)
  2. 相同优先级:如果多个节点优先级相同,IP 地址较大的节点优先
  3. 网络分区:需要考虑脑裂问题,可能需要额外的仲裁机制
  4. 广播风暴:节点过多时要注意 VRRP 广播对网络的影响
  5. 典型模式: 1 主 + N 备,通过优先级和抢占来实现层级式 Failover。

VRRP 的多节点支持使得它非常适合构建高可用集群,不仅限于简单的主备模式,可以根据实际需求灵活配置。


文章转载自:

http://vdc8dc7y.rdxnt.cn
http://nktIGJL0.rdxnt.cn
http://QcskGuh5.rdxnt.cn
http://kEDs2kAl.rdxnt.cn
http://pspnc4Q3.rdxnt.cn
http://Jzhk6Ywq.rdxnt.cn
http://1dgKGqvp.rdxnt.cn
http://pIzjSi0Q.rdxnt.cn
http://RFOZdxZd.rdxnt.cn
http://ZAy6t6yS.rdxnt.cn
http://VLxSpSz2.rdxnt.cn
http://rm5l71vU.rdxnt.cn
http://yvai393H.rdxnt.cn
http://r9a3ecEe.rdxnt.cn
http://Z0mAn9Vr.rdxnt.cn
http://ZNgj2DJV.rdxnt.cn
http://nx7kug6r.rdxnt.cn
http://jGTSEtiV.rdxnt.cn
http://L0XzbSJ3.rdxnt.cn
http://EH130Te3.rdxnt.cn
http://AkfLpCjQ.rdxnt.cn
http://6pmtDyt1.rdxnt.cn
http://8NIS6I8C.rdxnt.cn
http://JphhmGoL.rdxnt.cn
http://u9SjPJRx.rdxnt.cn
http://XspsGIZ1.rdxnt.cn
http://ropS6glA.rdxnt.cn
http://DsyuEJLl.rdxnt.cn
http://AXvOoRK1.rdxnt.cn
http://n4Pk7zti.rdxnt.cn
http://www.dtcms.com/a/377902.html

相关文章:

  • 运行 Ux_Host_HUB_HID_MSC 通过 Hub 连接 U 盘读写不稳定问题分析 LAT1511
  • Oracle体系结构-控制文件(Control Files)
  • 0303 【软考高项】项目管理概述 - 组织系统(项目型组织、职能型组织、矩阵型组织)
  • Spark-SQL任务提交方式
  • 10、向量与矩阵基础 - 深度学习的数学语言
  • 开发避坑指南(45):Java Stream 求两个List的元素交集
  • React19 中的交互操作
  • 阿里云ECS vs 腾讯云CVM:2核4G服务器性能实测对比 (2025)
  • 网络编程;TCP多进程并发服务器;TCP多线程并发服务器;TCP网络聊天室和UDP网络聊天室;后面两个还没写出来;0911
  • STM32项目分享:基于stm32的室内环境监测装置设计与实现
  • 利用归并算法对链表进行排序
  • GPU 服务器压力测试核心工具全解析:gpu-burn、cpu-burn 与 CUDA Samples
  • Power Automate List Rows使用Fetchxml查询的一个bug
  • Zynq开发实践(FPGA之ddr sdram读写)
  • LeetCode 热题 160.相交链表(双指针)
  • 西门子 S7-200 SMART PLC 编程:转换 / 定时器 / 计数器指令详解 + 实战案例(案例篇)
  • SAM-Med3D:面向三维医疗体数据的通用分割模型(文献精读)
  • 考研复习-计算机网络-第五章-传输层
  • win11安装jdk8-u211-windows
  • 从传统到智能:3D 建模流程的演进与 AI 趋势 —— 以 Blender 为例
  • 开发避坑指南(46):Java Stream 对List的BigDecimal字段进行求和
  • 在OpenHarmony上适配图形显示【3】——添加显示接口类型
  • Node.js 模块化规范详解
  • Neo4j--登录及简单操作
  • 使用nvm安装Node.js18以下报错解决方案——The system cannot find the file specified.
  • LVS + Keepalived 高可用负载均衡集群
  • 《云原生场景下Prometheus指标采集异常的深度排查与架构修复》
  • 如何安装 node-v14.16.1-x64.msi?Node.js 14.16.1 64位MSI安装详细步骤
  • React 基础
  • 自动化SSL证书管理:应对域名SSL证书更新焦虑