【云计算】利用 LVS 构建集群实现负载均衡 | 集群的概念 | 单服务器性能瓶颈验证例子 | LVS 基础 | LVS 构建负载均衡集群实操步骤

作者:王平渊日期:2026/1/15

利用 LVS 构建集群实现负载均衡

在这里插入图片描述

LVS 是构建高性能、高可靠负载均衡集群的利器,其内核态转发机制和丰富的调度算法,使其成为大规模集群场景的首选方案。在实际应用中,需根据业务场景选择合适的工作模式(DR 模式为最优选择),并结合 Keepalived 实现高可用,最终解决单服务器的性能瓶颈问题。

Ⅰ. 集群(Cluster)基础

0x00 集群的概念

集群(Cluster),是一组相互独立且相互依赖、通过高速网络互联的计算机组成的计算机组,以单一模式加以管理,为用户提供统一服务。

  • 从用户视角:感知不到背后的多台服务器,仅认为是一个单一服务节点。
  • 从集群内部视角:每一台独立的计算机称为集群节点

通过集群技术,能够以较低的硬件成本,换取性能、可靠性、灵活性三方面的显著提升。而任务调度是整个集群系统的核心技术,负载均衡的本质就是一种任务调度策略。

0x01 集群的三大核心特性

你文中提到的“客观理性”属于笔误,集群的三大核心特性应为:

  1. 可伸缩性(Scalability)
    当业务负载增长时,可通过横向添加节点的方式扩展集群整体性能,无需替换高性能硬件,成本可控。
    例如:单台服务器支持 1 万并发,扩展为 3 节点集群后,理论可支撑 3 万并发。
  2. 可靠性(Reliability)
    集群中的节点互为备份,当某一节点故障时,其他节点可自动接管其任务,避免单点故障导致服务中断。
    可靠性的核心指标是可用性(Availability),通常用“几个 9”衡量(如 99.99% 可用性代表全年停机时间不超过 52.56 分钟)。
  3. 可管理性(Manageability)
    集群可通过统一的管理接口进行配置、监控、维护,管理员无需逐个操作节点,降低运维复杂度。

0x02 单服务器的性能瓶颈验证

场景假设

  • 单台服务器最大支撑 10000 个并发请求,此时所有请求返回状态码 200(正常响应)。
  • 当并发量提升至 20000 时,返回状态码变为 200、304、301、500、504

现象分析

  • 200:少量请求仍正常处理;
  • 304:资源未修改,减少数据传输,但侧面反映服务器资源紧张;
  • 301:可能是服务器重定向策略触发,规避过载节点;
  • 500:服务器内部错误,代码或资源处理异常;
  • 504:网关超时,服务器无法在规定时间内响应请求。

结论:该 Web 服务的单节点性能已达瓶颈,必须通过集群 + 负载均衡的方式扩展处理能力。

Ⅱ. LVS 核心技术解析

0x00 LVS 是什么

LVS(Linux Virtual Server)即Linux 虚拟服务器,是由章文嵩博士主导开发的开源负载均衡项目,工作在 OSI 七层模型的第 4 层(传输层),基于 IP 和端口实现负载均衡转发。

LVS 的核心优势:

  • 高性能:基于 Linux 内核态实现,转发效率远超 Nginx 等用户态软件,可支撑每秒百万级并发。
  • 高可靠:支持健康检查、故障自动切换,可部署为双主或主备模式。
  • 开源免费:基于 Linux 内核,无需额外付费,运维成本低。

0x01 LVS 的核心组件

一个完整的 LVS 集群包含 3 类角色:

角色英文名称作用
负载均衡器Director Server接收用户请求,根据调度算法转发至后端真实服务器
真实服务器Real Server处理具体业务请求(如 Web、数据库服务)
共享存储Shared Storage为所有 Real Server 提供统一的文件存储(如 NFS、GlusterFS),保证数据一致性

0x02 LVS 的三种工作模式

LVS 支持三种转发模式,不同模式的网络拓扑和适用场景不同:

  1. NAT 模式(网络地址转换)
    • 原理:Director Server 作为网关,将用户请求的目标 IP 转换为 Real Server 的私有 IP;Real Server 处理完请求后,将响应通过 Director Server 转发给用户(源 IP 转换为 Director 的公网 IP)。
    • 特点:Real Server 只需配置私有 IP,网关指向 Director Server;但 Director 是单点瓶颈,支持的节点数量有限(约 10-20 台)。
    • 适用场景:小规模集群、Real Server 无公网 IP 的场景。
  2. DR 模式(直接路由)
    • 原理:Director Server 仅转发请求报文的目标 MAC 地址,不修改 IP 地址;Real Server 处理完请求后,直接将响应报文发送给用户(无需经过 Director)。
    • 特点:性能最高,Director 仅负责转发,不处理响应;Real Server 需与 Director 在同一物理网段,且需配置 VIP(虚拟 IP)。
    • 适用场景:中大规模集群、对性能要求高的场景(如电商秒杀)。
  3. TUN 模式(IP 隧道)
    • 原理:Director Server 将用户请求封装在 IP 隧道中,转发至 Real Server;Real Server 解封装后处理请求,直接响应给用户。
    • 特点:Real Server 可跨网段部署,灵活性高;但需要服务器支持 IP 隧道协议(如 IPIP)。
    • 适用场景:跨地域、跨网段的分布式集群。

0x03 LVS 的调度算法

调度算法是 LVS 的核心,决定了请求如何分配到后端 Real Server,分为静态算法动态算法两类:

  1. 静态算法(仅考虑配置,不考虑节点负载)
    • 轮询(RR):请求按顺序依次分配给每个 Real Server,适用于节点性能相近的场景。
    • 加权轮询(WRR):根据节点性能分配权重,权重越高的节点接收的请求越多(如性能高的节点权重设为 3,低的设为 1)。
    • 源地址哈希(SH):根据用户 IP 进行哈希计算,将同一 IP 的请求分配到同一节点,可保持会话粘性。
  2. 动态算法(根据节点实时负载调整分配策略)
    • 最小连接数(LC):优先将请求分配给当前连接数最少的节点,适用于长连接业务(如数据库连接)。
    • 加权最小连接数(WLC):在最小连接数基础上,结合节点权重,兼顾性能与负载。
    • 最短预期延迟(SED):根据公式 (活跃连接数 + 1) / 权重 计算优先级,值越小的节点优先级越高。

Ⅲ. 利用 LVS 构建负载均衡集群的实操步骤

0x00 环境准备

角色主机名IP 地址系统需安装软件
Director Serverlvs-director公网 IP:103.xx.xx.xx内网 IP:192.168.1.100CentOS 7/8ipvsadm、keepalived(可选)
Real Server 1lvs-rs-1192.168.1.101CentOS 7/8httpd、nginx
Real Server 2lvs-rs-2192.168.1.102CentOS 7/8httpd、nginx

0x01 配置 Director Server

  1. 安装 ipvsadm 工具
    ipvsadm 是 LVS 的管理工具,用于配置集群规则、查看节点状态。
1yum install -y ipvsadm  
  1. 开启 IP 转发(NAT 模式必备)
1echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf  
2sysctl -p  
  1. 创建 LVS 集群规则(以 DR 模式为例)
1# 清除原有规则  
2ipvsadm -C  
3# 添加 VIP(虚拟 IP)  
4ipvsadm -A -t 192.168.1.100:80 -s rr  
5# 添加后端 Real Server  
6ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.101:80 -g  
7ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.102:80 -g  
8# 保存规则  
9ipvsadm -S > /etc/sysconfig/ipvsadm  

命令参数说明:

  • -A:添加虚拟服务;
  • -t:指定 TCP 协议和 VIP:端口;
  • -s:指定调度算法(rr 为轮询);
  • -a:添加后端真实服务器;
  • -r:指定 Real Server 的 IP:端口;
  • -g:指定 DR 模式。

0x02 配置 Real Server

  1. 安装 Web 服务
1yum install -y nginx  
2systemctl start nginx && systemctl enable nginx  
  1. 配置 VIP 回环地址(DR 模式必备)
    为了让 Real Server 能够接收 VIP 转发的请求,需要在回环网卡配置 VIP:
1# 临时配置  
2ifconfig lo:0 192.168.1.100 netmask 255.255.255.255 up  
3# 永久配置(写入 /etc/rc.local)  
4echo "ifconfig lo:0 192.168.1.100 netmask 255.255.255.255 up" >> /etc/rc.local  
5chmod +x /etc/rc.d/rc.local  
  1. 关闭 ARP 响应(避免 VIP 冲突)
1echo "net.ipv4.conf.lo.arp_ignore = 1" >> /etc/sysctl.conf  
2echo "net.ipv4.conf.lo.arp_announce = 2" >> /etc/sysctl.conf  
3echo "net.ipv4.conf.all.arp_ignore = 1" >> /etc/sysctl.conf  
4echo "net.ipv4.conf.all.arp_announce = 2" >> /etc/sysctl.conf  
5sysctl -p  

0x03 验证集群效果

  1. 在 Director Server 查看集群状态
1ipvsadm -ln  

正常输出会显示 VIP:80 下挂载的两个 Real Server,以及当前连接数。 2. 用户端访问测试
在浏览器或客户端多次访问 http://192.168.1.100,观察请求是否会轮询转发到两台 Real Server。
可通过修改 Real Server 的 Nginx 默认页面内容,来直观验证负载均衡效果。

Ⅳ. 高可用优化:LVS + Keepalived

单台 Director Server 仍存在单点故障风险,可通过 Keepalived 实现双 Director 主备模式,提升集群高可用性。

  • 工作原理:Keepalived 基于 VRRP(虚拟路由冗余协议),主 Director 持有 VIP,备 Director 监听主节点状态;当主节点故障时,备节点自动接管 VIP,实现无缝切换。
  • 核心配置:在两台 Director Server 上安装 Keepalived,配置主备角色、VIP、健康检查脚本等。

Ⅴ. 常见问题与解决方案

问题现象可能原因解决方案
访问 VIP 无响应1. 防火墙未开放 80 端口2. Real Server 未配置 VIP 回环地址1. 关闭防火墙或开放端口:firewall-cmd --permanent --add-port=80/tcp && firewall-cmd --reload2. 检查 lo:0 网卡配置
负载均衡不均1. 调度算法选择不当2. 节点权重配置不合理1. 长连接业务改用 LC 算法2. 根据节点性能调整权重
节点故障未切换1. 未配置健康检查2. Keepalived 检测间隔过长1. 在 ipvsadm 中配置健康检查脚本2. 调整 Keepalived 的 interval 参数

【云计算】利用 LVS 构建集群实现负载均衡 | 集群的概念 | 单服务器性能瓶颈验证例子 | LVS 基础 | LVS 构建负载均衡集群实操步骤》 是转载文章,点击查看原文


相关推荐


Excel/WPS 表格数据合并操作指南
GalenZhang8882026/1/6

Excel/WPS 表格数据合并操作指南 场景一:同一个文件,不同工作表(Sheet) 适用情况:数据都在同一个 Excel 文件里,比如在 Sheet1 和 Sheet2,都有共同的 A列 作为关联。 1. 推荐公式:XLOOKUP 公式示例: =XLOOKUP(A2, Sheet2!A:A, Sheet2!D:D) 2. 参数详细说明 A2(查找值): 当前表格(Sheet1)中你要拿去匹配的那个单元格(通常是 ID、姓名等)。Sheet2!A:A(查找数组): 去哪里找这个 ID?即 S


MySQL 版本演进全景图:从 5.6 到 8.4 的技术变革与行业实践
刘一说2025/12/29

文章目录 一、版本演进时间线概览二、核心功能迭代:从基础架构到现代数据库1. 数据类型与存储引擎革新2. 查询语言与计算能力3. 事务与一致性 三、架构与性能优化:从单机到云原生1. 复制与高可用2. 性能调优 四、安全与兼容性:从传统认证到现代密钥管理1. 认证机制演变2. 加密与审计 五、典型场景适配建议六、未来趋势与行业挑战结语 一、版本演进时间线概览 版本发布时间核心突破行业定位5.62013年在线 DDL、性能优化传统 OLTP 基础架构5.7201


前端原生能力速查笔记(HTML + 浏览器 API 实战篇)
遇见~未来2025/12/20

本笔记用于整理前端开发中不依赖框架即可实现的高频实用功能,涵盖文件下载、打印、HTML 原生属性以及浏览器内置 JS API。 适合作为:日常开发速查 / 基础能力沉淀 / 新人教学笔记 一、a 标签文件下载功能 1. 核心原理 利用 HTML5 的 download 属性, 让浏览器在点击链接时触发下载行为,而不是直接预览资源。 2. 基础用法 <!-- 直接下载(使用原文件名) --> <a href="files/demo.pdf" download>下载 PDF</a> <


自主高性价比、高精度车规级姿态感知、倾角感知模组-应用消费级无人机、自动驾驶、机器人、智能制造、基础设施、智能穿戴等
moonsims2025/12/12

自主高性价比、高精度车规级姿态感知、倾角感知模组-应用消费级无人机、自动驾驶、机器人、智能制造、基础设施、智能穿戴等 在小说阅读器中沉浸阅读 IMU 惯性测量单元(Inertial Measurement Unit) 是测量物体三轴角速度和加速度的设备。一个IMU内可能会装有三轴陀螺仪和三轴加速度计,来测量物体在三维空间中的角速度和加速度。严格意义上的IMU只为用户提供三轴角速度以及三轴加速度数据。 VRU 垂直参考单元(Vertical Reference Unit)是


Bun 卖身 Anthropic!尤雨溪神吐槽:OpenAI 你需要工具链吗?
也无风雨也雾晴2025/12/3

Anthropic 收购 Bun,Claude Code 半年营收破 10 亿美元 今天刷推的时候看到一条爆炸新闻:Anthropic 把 Bun 给收了。 是的,就是那个号称"比 Node.js 快得多"的 JavaScript 运行时。这也是 Anthropic 成立以来的第一笔收购。 更劲爆的是,官宣的同时还顺便秀了一把肌肉——Claude Code 上线半年,年化收入已经突破 10 亿美元。 网友速度很快,恶搞图已经出来了:Bun 屁股上印着 Claude 的 logo 先说说 Cla


🚀 纯前端离线局域网P2P大文件断点传输:别让你的照片墙崩了
子兮曰2026/1/23

前言:小明和他的照片墙危机 想象一下,你是小明,一个热爱摄影的程序员。周末去爬山拍了一堆4K高清照片,总共3GB,准备发给老婆分享。微信传?算了,压缩后画质渣得像像素风。网盘?离线状态下连不上。蓝牙?慢得像蜗牛在跑步。你急得团团转,突然灵机一动:用电脑直接传啊!可是怎么在浏览器里实现局域网P2P大文件传输,还得支持断点续传?别急,今天咱们就聊聊这个技术方案。 技术背景:P2P不是什么新鲜玩意儿 P2P(点对点)传输在局域网里其实挺常见的,BT下载就是经典案例。但咱们今天聊的是纯前端实现,意思是完


AI - 通过 Docker 来安装与访问 OpenClaw
LinXunFeng2026/2/2

欢迎关注微信公众号:FSA全栈行动 👋 一、简介 这是我在 Mac 上通过 Docker 来安装和配置 OpenClaw 的一份记录,随着文章从上到下一步步做就可以了。 二、docker 拉取 Ubuntu 镜像 docker pull ubuntu:latest 创建容器 创建容器,并映射 18789 端口 docker run -it -p 18789:18789 --name openclaw ubuntu 搭配 Docker 容器的分离快捷键,先按 Ctrl+P,再按 Ctrl+


英语语法笔记:英语不应该成为开发工程师的发展瓶颈
修己xj2026/2/11

前几天,是公司成立二十周年的年会。老板作了一场题为《穿越寒冬,求实存善》的演讲。那一刻我在想:当寒意渐浓,作为领航者,他思考的是如何带领公司扛过这场冬天;那作为程序员的我们,又该如何穿越自己的寒冬呢? Vue 作者尤雨溪曾坦言:“不仅英语差会成为瓶颈,英语好还能成为优势,因为学习效率会比别人高。像我这样半路出家自学的人,只能靠英语了……”确实,无论是阅读技术文档、参与开源社区、在 Stack Overflow 寻找答案,还是追踪最新技术资讯、争取一份远程机会,英语早已不是可选项,而是必修课——是


QT & QML 总结备查
瞰百2026/2/19

QT & QML 总结备查 首要注意,在桌面端开发QT可免费商用,而嵌入式端QT商用则收费。 各种 UI 库的总结和对比: Cpp-Learning/C-C++实用库备查.md at main · Staok/Cpp-Learning。 文章所在 Github 仓库 Staok/QT-QML-Learning: QT & QML 总结备查文章 会保持最新,其它地方的不会跟进。 常看常新 QT 安装:网搜 Qt Creator 下载和安装即可。 编译器:对于 Win 上


程序员的明天:AI 时代下的行业观察与个人思考
勇哥Java实战2026/2/27

这篇文章分享了我对 AI 时代下,软件行业发展以及程序员命运走向的 5 点思考,供大家参考。 1 匠人时代落幕 Redis 之父 antirez,最近写了一篇文章 《 Don't fall into the anti-AI hype 》,读完之后,我深有感触。 文章的观点非常明确: AI 不仅改变了编码方式,更重塑了软件行业的价值结构和职业路径,程序员需要从“手动编码”转向“设计系统与与 AI 协作” 。 过去的软件行业,其实有一种很典型的“匠人红利”。谁代码写得更优雅,谁框架更熟,谁对某个

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2026 XYZ博客