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

LVS+Keepalived 高可用群集

目录

一、 Keepalived 双机热备核心技术

1.1 Keepalived 架构与 VRRP协议

1.2 双机热备配置深度优化 

二、 LVS+Keepalived 高可用负载均衡架构

2.1 系统架构设计

 2.2 LVS集成配置详解

三、 关键技术与疑难解析

3.1 DR模式 ARP 仰制机制

3.2 健康检查策略优化

四、 企业级运维实践

4.1 故障转移测试方案

4.2 性能调优建议

五、 架构演进与最佳实践

5.1 从双机热备到最多集群

 5.2 灾备设计原则


一、 Keepalived 双机热备核心技术

1.1 Keepalived 架构与 VRRP协议

Keepalived 的核心价值在于通过 VRRP(虚拟路由冗余协议) 实现服务高可用。其架构设计包含三层关键组件:

  • VRRP Stack:管理虚拟路由器状态(MASTER/BACKUP),通过多播心跳包(advert_int参数控制频率)实现节点通信。
  • Checkers:对后端服务(如 LVS节点、Nginx)进行健康检测,支持TCP/HTTP/SSL 等多种检测方式。
  • SMTP Notifier:故障切换时发送邮件告警。

VRRP工作流程

1. 初始化:各节点广播优先级(priority)
2. 选举:最高优先级节点成为 MASTER,持有 VIP
3. 心跳:MASTER 周期性发送 Advertisement 包
4. 故障切换:当 BACKUP 节点超时未收到心跳,触发选举新 MASTER

1.2 双机热备配置深度优化 

配置文件 /etc/keepalived/keepalived.conf 的精准控制:

关键参数说明:

vrrp_instance VI_1 {state MASTER         # 初始状态(MASTER/BACKUP)interface ens33      # 绑定 VIP 的物理网卡virtual_router_id 62 # 集群唯一ID (0-255)priority 100         # 选举权重(MASTER > BACKUP)advert_int 1         # 心跳间隔(秒)authentication {auth_type PASS   # 认证方式auth_pass 1111   # 密码(所有节点一致)}virtual_ipaddress {192.168.10.100/24 # VIP(可配置多个)}
}

故障切换性能优化:

  • 减少 advert_int 值(如0.5秒)加速故障检测
  • 设置 nopreempt 防止优先级反转导致的频繁切换
  • 日志追踪: tail -f /var/log/messages 监控状态迁移事件

二、 LVS+Keepalived 高可用负载均衡架构

2.1 系统架构设计

                        +---------------------+
                        |      Client         |
                        +----------+----------+
                                   |
                        +----------+----------+
                        |  VIP: 192.168.10.100|
                        +----------+----------+
                                   |
                   +----------------+----------------+
                   |                                |
         +---------+---------+            +---------+---------+
         |  Master LVS (lb01)|            |  Backup LVS (lb02)|
         | IP: 192.168.10.101|            | IP: 192.168.10.102|
         +---------+---------+            +---------+---------+
                   |                                |
         +---------+---------+            +---------+---------+
         |   Web01 (web01)   |            |   Web02 (web02)   |
         | IP: 192.168.10.103|            | IP: 192.168.10.104|
         +-------------------+            +-------------------+

 2.2 LVS集成配置详解

Keepalived 通过 virtual_server 断管理 LVS规则:

DR 模式核心配置:

virtual_server 192.168.10.100 80 {delay_loop 3              # 健康检查间隔(秒)lb_algo rr                # 调度算法(rr/wlc/lc)lb_kind DR                # 工作模式(DR/NAT/TUN)persistence_timeout 50    # 会话保持时间# 真实服务器池配置real_server 192.168.10.103 80 {weight 1              # 权重值TCP_CHECK {connect_port 80   # 检测端口connect_timeout 3 # 连接超时retry 3           # 重试次数delay_before_retry 2 # 重试间隔}}# 其他节点类似配置...
}

调度算法对比:

算法名称适用场景
rr轮询各服务器性能均等时
wlc加权最小连接数服务器性能差异较大时
sh源地址哈希需要会话保持的应用

三、 关键技术与疑难解析

3.1 DR模式 ARP 仰制机制

问题场景:多台服务器声明 VIP导致ARP冲突

解决方案(节点服务器配置):

# 配置 ARP 参数
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce# 添加 VIP 到 lo 接口
ip addr add 192.168.10.100/32 dev lo label lo:0

参数含义:

  • arp_ignore=1:仅响应目标IP为本机接口的ARP请求
  • arp_announce=2:始终使用最佳本地地址进行ARP宣告

3.2 健康检查策略优化

高阶检测方式示例:

real_server 192.168.10.103 80 {HTTP_GET {url {path /healthz      # 健康检查URLstatus_code 200    # 预期状态码}connect_timeout 3retry 3}
}

检查类型对比:

类型特点适用场景
TCP_CHECK建立TCP连接即视为健康快速检测端口存活
HTTP_GET验证HTTP状态码和内容Web应用深度健康检查
SSL_GET支持HTTPS证书验证安全要求高的场景

四、 企业级运维实践

4.1 故障转移测试方案

 

sequenceDiagramClient->>+MASTER: 请求(VIP)MASTER->>Web01: 转发请求Web01-->>Client: 返回数据Note over MASTER: 模拟故障(停止Keepalived)Client->>+BACKUP: 请求(VIP)BACKUP->>Web02: 转发请求Web02-->>Client: 返回数据

关键指标验证:

  1. 切换时间:通过 ping -t VIP 观察丢包数(应≤2个)
  2. 服务一致性:检查 Web 内容是否同步(需配合 NFS/rsync)
  3. 日志追踪:监控 /var/log/messages 中状态迁移记录

4.2 性能调优建议

内核参数优化:

# 提高端口复用能力
sysctl -w net.ipv4.tcp_tw_reuse=1
sysctl -w net.ipv4.ip_local_port_range="1024 65000"# 增大连接跟踪表
sysctl -w net.netfilter.nf_conntrack_max=1000000

LVS 连接管理:

virtual_server 192.168.10.100 80 {# 开启SYN Cookie防护syn_proxy on# 设置最大连接数connection_timeout 300
}

五、 架构演进与最佳实践

5.1 从双机热备到最多集群

                         +-----------+
                         |  Global LB|
                         +-----+-----+
                               |
                +--------------+--------------+
                |                             |
        +-------+-------+           +---------+-------+
        | Region1 LVS   |           | Region2 LVS     |
        | VIP: 10.1.1.1|           | VIP: 10.2.2.1   |
        +-------+-------+           +---------+-------+
                |                             |
        +-------+-------+           +---------+-------+
        |  Web Cluster  |           |  Web Cluster    |
        | (Keepalived) |           | (Keepalived)    |
        +--------------+           +-----------------+

 5.2 灾备设计原则

  1. RTO(恢复时间目标):通过预配置脚本将切换时间控制在秒级
  2. RPO(数据恢复点):采用DRBD+Keepalived 实现存储级高可用
  3. 异地多活:结合DNS智能解析实现跨地域流量调度

结语:构建坚不可摧的服务基座

LVS+Keepalived 的组合为关键业务系统提供了双重保障:

  1. 流量层:LVS 实现高性能负载分发,单集群可支撑 10Gbps+流量
  2. 容错层:Keepalived 确保调度器持续可用,切换过程用户无感知

成功部署的关键要素:

  • 严格遵循 DR 模式的 ARP 抑制配置

  • 健康检查策略需匹配业务特性

  • 生产环境必须进行故障注入测试

  • 日志监控系统集成(如 ELK 收集 /var/log/messages)

随着云原生技术的发展,该方案可与 Kubernetes Ingress Controller 集成,为传统架构向云原生演进提供平滑过渡路径,成为混合云场景下的核心流量治理方案。

http://www.xdnf.cn/news/705313.html

相关文章:

  • 第二章 1.7 数据采集安全风险防范之数据质量管理
  • 一文清晰理解目标检测指标计算
  • 无人机桥梁3D建模的拍摄频率
  • 异步上传石墨文件进度条前端展示记录(采用Redis中List数据结构实现)
  • 俄罗斯无人机自主任务规划!UAV-CodeAgents:基于多智能体ReAct和视觉语言推理的可扩展无人机任务规划
  • Flink
  • 云原生与DevOps融合实践:加速企业数字化转型的加速器
  • 2024长春全国邀请赛CCPC
  • Next.js路由导航完全指南
  • TCP/IP四层模型
  • 如何用AI设计海报,DeepSeek+即梦免费批量生成
  • 通义灵码2.5——基于MCP打造我的12306火车票智能查询小助手
  • LVS+Keepalived 高可用
  • 【前端】Hexo一键生成目录插件推荐_放入Hexo博客
  • lesson04-简单回归案例实战(理论+代码)
  • C#·常用快捷键
  • 论文笔记:DreamDiffusion
  • DeepSeek进阶教程:实时数据分析与自动化决策系统
  • Web攻防-SQL注入增删改查盲注延时布尔报错有无回显错误处理
  • 【论文阅读】《PEACE: Empowering Geologic Map Holistic Understanding with MLLMs》
  • 模块化集成建筑(MiC建筑):颠覆传统的未来建造革命
  • 基于本地化大模型的智能编程助手全栈实践:从模型部署到IDE深度集成学习心得
  • 51c视觉~3D~合集3
  • 【SpringBoot】零基础全面解析SpringBoot配置文件
  • sass基础语法
  • Vite打包优化实践:从分包到性能提升
  • 自学嵌入式 day 25 - 系统编程 标准io 缓冲区 文件io
  • git+svn+sourcetree客户端下载和安装教程
  • DeepSeek R1开源模型的技术突破与AI产业格局的重构
  • Nacos | 三种方式的配置中心,整合Springboot3.x + yaml文件完成 0错误 自动刷新(亲测无误)