【云计算】利用 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)是


C++单元测试框架选型与实战速查手册
码事漫谈2025/12/3

在C++项目的质量护城河中,单元测试框架的选择如同挑选一把趁手的兵器,它直接决定了测试的效率、可维护性以及与开发流程的契合度。GoogleTest、Catch2和doctest,这三款当今最主流的选择,各有其鲜明的武功路数。本文将为你揭开它们的核心秘籍与实战优劣势,助你一招制胜。 一、框架核心价值定位 1.1 三大框架战略定位分析 维度GoogleTest (v1.14+)Catch2 (v3.5+)doctest


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

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

首页编辑器站点地图

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

Copyright © 2026 XYZ博客