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

keepalived的高可用和负载均衡

一、Keepalived 核心概述

Keepalived 是一款基于 LVS(Linux Virtual Server)和 VRRP(虚拟路由冗余协议)的开源软件,核心作用有两个:高可用(HA)负载均衡(LB),常用来保障服务器集群的稳定性,避免单点故障,同时优化请求分发,提升服务响应效率。

核心特性:轻量、配置简单、无需额外硬件支持,依赖网络层(VRRP)和传输层(TCP/IP)协议,可与 Nginx、Apache 等Web服务器配合使用,适用于中小规模集群场景。

二、高可用(HA)核心原理与实例

2.1 高可用核心逻辑

高可用的核心是消除单点故障,通过 VRRP 协议实现两台(或多台)服务器的主从切换。VRRP 会在集群中选举一台“主服务器(Master)”,其余为“备份服务器(Backup)”,所有服务器共享一个虚拟IP(VIP),客户端通过VIP访问服务。

工作机制:主服务器正常运行时,会周期性向备份服务器发送“心跳包”(默认每1秒一次);若备份服务器长时间(默认3秒)未收到心跳包,判定主服务器故障,自动将VIP切换到备份服务器,实现“无缝切换”,客户端无感知。

2.2 高可用实例(双机热备)

场景:搭建两台Web服务器(Nginx),通过Keepalived实现双机热备,确保Web服务不中断。

环境准备(两台服务器,系统CentOS 7):

  • 主服务器(Master):IP 192.168.1.100,安装 Nginx + Keepalived

  • 备份服务器(Backup):IP 192.168.1.101,安装 Nginx + Keepalived

  • 虚拟IP(VIP):192.168.1.200(客户端访问地址)

实例流程:

  1. 初始状态:主服务器(192.168.1.100)正常运行,持有VIP(192.168.1.200),Nginx提供Web服务,客户端通过VIP访问主服务器。

  2. 故障触发:人为停止主服务器的Nginx服务或直接关闭主服务器,主服务器停止发送心跳包。

  3. 切换过程:备份服务器(192.168.1.101)超过3秒未收到心跳,判定主服务器故障,自动接管VIP(192.168.1.200),启动自身Nginx服务。

  4. 故障恢复:主服务器修复后重新启动,会自动发送心跳包,此时备份服务器检测到主服务器恢复,会主动释放VIP,主服务器重新接管VIP,恢复主从状态(默认主服务器优先级更高)。

关键说明:Keepalived 不仅能检测服务器本身的存活,还能检测服务(如Nginx、MySQL)的状态,若服务故障,也会触发主从切换(需配置服务检测脚本)。

三、负载均衡(LB)核心原理与实例

3.1 负载均衡核心逻辑

Keepalived 本身不直接实现负载均衡,而是结合 LVS 实现四层负载均衡(基于IP和端口,如TCP、UDP),将客户端请求分发到后端多台应用服务器,实现负载分担,提升服务并发能力。

核心概念:

  • 调度器(Director):运行Keepalived的服务器,接收客户端请求,通过调度算法分发到后端服务器。

  • 后端服务器(Real Server):实际提供应用服务的服务器(如Web、MySQL)。

  • 调度算法:默认轮询(RR),还有加权轮询(WRR)、最小连接数(LC)等,可根据后端服务器性能调整。

3.2 负载均衡实例(LVS+Keepalived)

场景:搭建1台调度器(Keepalived+LVS),2台后端Web服务器,实现客户端请求的负载分发,同时通过Keepalived保障调度器的高可用(避免调度器单点故障)。

环境准备(4台服务器,系统CentOS 7):

  • 调度器1(Master):IP 192.168.1.100,安装 Keepalived + LVS

  • 调度器2(Backup):IP 192.168.1.101,安装 Keepalived + LVS(保障调度器高可用)

  • 后端服务器1:IP 192.168.1.102,安装 Nginx(Web服务,页面内容为“Server A”)

  • 后端服务器2:IP 192.168.1.103,安装 Nginx(Web服务,页面内容为“Server B”)

  • 虚拟IP(VIP):192.168.1.200(客户端访问地址)

实例流程:

  1. 初始状态:调度器1(Master)持有VIP,LVS配置轮询算法,后端两台Web服务器正常运行。

  2. 请求分发:客户端通过VIP(192.168.1.200)访问Web服务,调度器1接收请求后,按轮询算法将第一个请求分发到后端1(192.168.1.102),第二个请求分发到后端2(192.168.1.103),依次循环。

  3. 调度器故障:停止调度器1的Keepalived服务,调度器2(Backup)未收到心跳,接管VIP,继续通过LVS分发请求,客户端访问不受影响。

  4. 后端服务器故障:若后端1(192.168.1.102)故障,LVS会检测到后端服务不可用,自动将所有请求分发到后端2(192.168.1.103);待后端1修复后,自动恢复轮询分发。

关键说明:四层负载均衡(LVS)的优势是性能高(基于内核层转发),适合高并发场景;缺点是不支持七层协议(如HTTP、HTTPS)的解析,若需七层负载均衡,可配合Nginx实现(Keepalived保障Nginx高可用,Nginx实现七层负载)。

四、高可用与负载均衡的结合场景(实战常用)

实际生产环境中,Keepalived 常同时实现“调度器高可用”和“后端负载均衡”,架构如下:

客户端 → VIP(Keepalived 虚拟IP)→ 主调度器(Keepalived+LVS)→ 后端服务器集群(多台应用服务器)

备份调度器实时监控主调度器,后端服务器集群通过LVS实现负载分担,双重保障服务的稳定性和高并发能力。

举例:某小型电商网站,采用“2台调度器(Keepalived+LVS)+ 4台Web服务器(Nginx)+ 2台MySQL服务器(主从)”架构,其中:

  • Keepalived 保障调度器和MySQL主从的高可用,避免单点故障;

  • LVS 实现Web服务器的负载均衡,将用户请求分发到4台Web服务器,提升页面加载速度;

  • 即使其中1台调度器、1台Web服务器故障,服务仍能正常运行,客户端无感知。

五、常见问题与注意事项

  • VIP冲突:确保集群中只有主服务器持有VIP,备份服务器仅在主服务器故障时接管,避免多台服务器同时绑定VIP导致网络异常。

  • 心跳包配置:心跳包的发送间隔和超时时间需合理配置(默认即可),间隔过短会增加网络负担,过长会导致切换延迟。

  • 服务检测:必须配置服务检测脚本(如检测Nginx、MySQL是否运行),否则仅检测服务器存活,服务故障时不会触发切换。

  • 后端服务器一致性:后端服务器的应用服务(如Web页面、接口)需保持一致,避免负载分发后客户端看到不同内容。

六、核心总结

1. Keepalived 的核心价值:解决单点故障(高可用)、分担服务器压力(负载均衡),是服务器集群稳定性的“守护者”。

2. 高可用依赖 VRRP 协议,实现主从切换;负载均衡依赖 LVS 协议,实现请求分发,二者可单独使用,也可结合使用。

3. 实战中,常与 Nginx、MySQL 等服务配合,搭建高可用、高并发的集群架构,适用于Web服务、数据库服务等各类场景。

http://www.cnnetsun.cn/news/1897566.html

相关文章:

  • 用8051单片机DIY呼吸灯:从硬件选型到代码调试全流程(附完整源码)
  • HsmsApplication 半导体行业SECS协议上位机系统功能说明
  • 深度优先遍历DFS:从入门到精通
  • 当你的 Agent 需要记住三个月前的对话
  • 从0手把手教你写AI Skill(附规范目录+可运行代码)
  • OSI模型下的数据封装全流程
  • 梯度下降理解
  • 【AIAgent可靠性黄金法则】:SITS2026权威发布的5大不可妥协要素(20年架构师亲验)
  • 全文降AI率保姆级攻略:用嘎嘎降AI从60%降到5%
  • 【权威认证】基于17家头部AI实验室联合验证的多模态数据构建框架:支持动态模态权重分配的6层过滤引擎
  • 提升企业知识使用率的运营活动设计指南
  • 构建现代化Vue应用界面:Shadcn-Vue组件化架构设计与实践指南
  • Wazuh OVA镜像部署实战:从零搭建开源XDR-SIEM一体化平台
  • 容器网络方案
  • KEBA DI325数字输入模块卡
  • 告别繁琐!OpenClaw Windows 可视化一键部署安装教程
  • 前端文件上传新方法:别再用传统表单了
  • QT5.12 + libmodbus RTU实战:用多线程解决界面卡顿,打造流畅的Modbus主机程序
  • NHS英格兰斥资4.6万英镑为下一轮微软许可证谈判做准备
  • 1.【UPF】Fundamentals of Low Power Design(低功耗设计基础)
  • Kotlin密封类实战指南:如何优雅地处理受限类层次结构
  • 绿色机器学习系统综述:(四)讨论、未来方向与结论
  • 告别复杂配置!Qwen2.5-7B微调镜像开箱即用,10分钟上手实战
  • 番茄小说下载器:离线阅读的完整解决方案
  • SITS2026跨模态检索实战手册(2024Q3最新基准测试实录)
  • Z-Image-Turbo-rinaiqiao-huiyewunv在同人创作中的落地:辉夜大小姐多姿态写真生成
  • 手把手教你解决Realsense D455在ROS下IMU数据不输出的问题(附固件降级指南)
  • 电商多模态搜索工程化落地全复盘(SITS2026内部技术解密)
  • 西门子S7-1200博图程序案例:PID恒温恒压供冷却水程序 - 触摸屏TP1200组态与霍尼...
  • # 发散创新:基于Rust的内存安全防御机制实战解析在现代软件开发中,**内存安全漏洞**(如缓冲区溢出