一、集群基础概念
1. 什么是集群
集群(Cluster)是指将多台独立的服务器主机通过网络互联,组合成一个统一的、高性能的计算机服务群组。对外整体呈现为一个单一服务节点,对内多台服务器协同工作,共同承担业务请求、处理数据、提供服务。
集群核心目的:解决单台服务器的性能瓶颈、单点故障、并发压力问题,实现服务的高可用、高并发、高负载、可扩容。
通俗理解:单台服务器干活能力有限、容易宕机;集群就是多台服务器组队干活,分担压力、互相兜底,保证服务稳定不中断。
2. 集群分类
根据集群核心功能与应用场景,行业内将集群分为三大类,也是LVS学习的基础分类:
(1)负载均衡集群(LB,Load Balance)
核心作用:分发流量、分担压力。将用户的海量请求,按照指定算法均匀分发到后端多台真实服务器处理,避免单服务器过载。
特点:提升并发处理能力、提升业务响应速度、横向扩容简单。
典型工具:LVS、Nginx、HAProxy
(2)高可用集群(HA,High Availability)
核心作用:防止单点故障、保证服务不中断。通过主备切换机制,当主服务器宕机后,备用服务器立刻接管业务,实现服务秒级恢复。
特点:解决服务宕机问题,不提升并发能力,只保障可用性。
典型工具:Keepalived、Heartbeat
(3)高性能计算集群(HPC)
核心作用:聚合算力、处理超大型计算任务。将多台服务器的CPU、内存算力合并,共同完成大数据运算、科学计算、仿真建模等重型任务。
应用场景:气象预测、云计算算力调度、科研仿真
核心总结 :LVS属于负载均衡集群(LB),常搭配Keepalived高可用集群实现「负载均衡+故障自愈」的企业生产架构。

二、LVS核心作用
LVS(Linux Virtual Server,Linux虚拟服务器)是Linux内核级的四层负载均衡软件,由章文嵩博士开发,是目前企业后端服务器集群的核心负载均衡组件。
LVS核心功能与作用
-
流量分发:基于IP+端口对用户请求进行智能分发,将海量并发请求均匀分配给后端真实服务器(RS)。
-
压力分担:彻底解决单台服务器并发上限问题,支持十万、百万级高并发请求处理。
-
屏蔽后端节点:对外仅暴露一个虚拟IP(VIP),隐藏后端真实服务器IP,提升服务安全性。
-
健康检查:自动检测后端服务器状态,剔除故障节点,不再向故障机器分发流量。
-
高可用适配:可结合Keepalived实现LVS自身的主备切换,消除负载均衡器单点故障。
-
内核级高性能:工作在内核态,无需进程调度,转发效率远超Nginx(应用层),无并发瓶颈。

三、LVS的4种工作模式及原理(含图解逻辑+工作步骤)
LVS共有四种主流工作模式,优先级和使用场景不同,分别是:DR模式、NAT模式、TUN隧道模式、FULLNAT模式。以下为各模式原理详解、流量图解逻辑、工作步骤、优缺点。
1. LVS NAT模式(网络地址转换模式)
(1)核心原理
通过修改数据包的IP地址实现流量转发。用户请求到达LVS调度器后,LVS将数据包的目标IP(VIP)修改为后端真实服务器IP(RIP);后端服务器响应数据返回时,再次经过LVS,将源IP修改为VIP,最终返回用户。
(2)流量图解逻辑
用户客户端 → 公网IP → LVS(VIP) → 改写目标IP → 后端RS服务器 → 响应返回LVS → 改写源IP → 返回客户端
(3)详细工作步骤
-
客户端发起请求,目标地址为LVS虚拟IP(VIP),数据包到达LVS调度器。
-
LVS根据调度算法选中一台后端真实服务器(RS)。
-
LVS修改数据包目标IP为RS的真实IP,保留客户端源IP,转发给RS。
-
RS接收请求并处理业务,生成响应数据包,源IP为自身RIP,目标IP为客户端IP。
-
响应数据包传回LVS调度器,LVS修改数据包源IP为VIP。
-
LVS将修改后的数据包转发给客户端,请求闭环完成。
(4)优缺点
优点:配置简单、支持端口映射、后端RS可以是任意系统、无需配置VIP;
缺点:所有请求和响应流量均经过LVS,LVS易成为性能瓶颈,并发能力有限。

2. LVS DR模式(直接路由模式,企业最常用)
(1)核心原理
基于MAC地址转发 ,不修改IP地址,仅修改数据帧的MAC地址。请求流量经过LVS调度转发,响应流量直接由后端RS返回客户端,不经过LVS,是性能最高的模式。
(2)流量图解逻辑
客户端 → LVS(修改MAC)→ 后端RS → 直接返回客户端(跳过LVS)
(3)详细工作步骤
-
客户端发送请求到VIP,数据帧目标MAC为LVS网卡MAC。
-
LVS接收数据帧,根据算法选中后端RS。
-
LVS仅修改数据帧的目标MAC地址为RS网卡MAC,IP地址全程不变,转发请求。
-
后端RS接收数据包,识别自身绑定的VIP,处理业务请求。
-
RS直接封装响应数据包,以VIP为源IP,直接发送给客户端,不经过LVS。
(4)优缺点
优点:响应流量不经过LVS,无性能瓶颈、并发极高、稳定性强;
缺点:所有服务器必须在同一局域网、需要抑制RS的ARP响应、不支持端口映射。

3. LVS TUN隧道模式(IP隧道模式)
(1)核心原理
通过IP隧道封装技术转发请求。LVS将客户端原始数据包重新封装一层IP隧道协议,转发给跨网段的后端RS,RS解封装处理请求,响应直接回包给客户端。
(2)流量图解逻辑
客户端 → LVS(IP隧道封装)→ 跨网段RS(解封装处理)→ 直接返回客户端
(3)详细工作步骤
-
客户端请求到达LVS VIP。
-
LVS通过IP隧道协议,对原始数据包进行二次封装,新IP头目标地址为远端RS的RIP。
-
LVS将封装后的数据包转发给跨网段的后端RS。
-
RS接收数据包,解封装获取原始请求数据,处理业务。
-
RS直接以VIP为源IP,将响应数据返回客户端,不经过LVS。
(4)优缺点
优点:支持跨机房、跨网段部署后端服务器,突破局域网限制,高性能;
缺点:服务器需要开启IP隧道功能,配置复杂,部分系统不支持。

4. LVS FULLNAT模式(双向全地址转换)
(1)核心原理
对数据包源IP和目标IP同时修改。请求时:客户端IP→LVS本地IP,VIP→RSIP;响应时:RSIP→LVS本地IP,LVS本地IP→客户端IP,彻底隔离前后端网络。
(2)流量图解逻辑
客户端IP → LVS(改源+目标IP)→ RS → LVS(反向改IP)→ 客户端
(3)详细工作步骤
-
客户端请求到达LVS VIP。
-
LVS将数据包源IP改为LVS本地内网IP,目标IP改为RS的RIP,转发请求。
-
RS处理请求,响应数据包源IP为RIP,目标IP为LVS内网IP。
-
响应回到LVS,LVS将源IP改为VIP,目标IP改为客户端IP,转发给用户。
(4)优缺点
优点:前后端网络完全隔离、无需同网段、支持跨网段部署、配置简单;
缺点:所有流量经过LVS,性能略低于DR模式,内核版本要求较高。

四、LVS的13种调度算法(完整版分类+详解)
LVS官方共计13种调度算法,分为静态算法(4种) 和**动态算法(9种)**两大类。静态算法不感知后端服务器状态,动态算法会根据服务器负载、连接数动态调整分发权重。
1. 静态调度算法(固定规则,不自适应负载)
(1)RR 轮询算法
默认基础算法,将用户请求依次轮流分发到每一台后端服务器,所有服务器分配请求数量完全均等。适用于后端服务器配置、性能完全一致的场景。
(2)WRR 加权轮询算法
在轮询基础上增加权重,权重越高的服务器,分配的请求越多。根据服务器硬件配置差异分配权重,高配机器承担更多流量,低配机器承担少量流量,适配异构服务器集群。
(3)DH 目标地址哈希算法
根据用户请求的目标IP地址进行哈希计算,固定分发到某一台后端服务器。保证同一目标IP的请求始终访问同一RS,适合固定业务节点调度场景。
(4)SH 源地址哈希算法
根据用户客户端源IP哈希计算,同一客户端IP的请求始终分发到同一台后端服务器,简易实现会话保持效果。
2. 动态调度算法(感知负载,智能自适应)
(1)LC 最少连接算法
动态统计后端服务器当前活跃连接数,优先将请求分发到连接数最少的服务器,自动规避高负载节点,适配请求处理时长不一致的业务。
(2)WLC 加权最少连接算法(企业默认常用)
结合权重+最少连接,综合计算服务器负载值,权重高、连接数少的服务器优先分配请求。是生产环境最稳定、最常用的动态算法。
(3)SED 最短期望延迟算法
优化版WLC算法,优先分发请求到「处理延迟最短」的服务器,兼顾连接数和处理效率,提升整体响应速度。
(4)NQ 无队列算法
空闲服务器优先,只要有服务器无活跃连接,直接分发请求,不进入队列;所有服务器繁忙时,再按照SED算法调度,减少请求排队延迟。
(5)LBLC 基于本地的最少连接算法
适用于缓存集群,根据目标IP哈希绑定节点,节点空闲则优先分发,节点繁忙则动态调整,兼顾会话固定和负载均衡。
(6)LBLCR 带复制的本地最少连接算法
LBLC优化版,支持缓存数据复制,解决单点缓存失效问题,主要用于大型缓存集群负载调度。
(7)DRR 目标轮询算法
基于目标IP轮询分发,保证同一业务目标地址均匀分配流量,适合多业务节点均分场景。
(8)SRR 源轮询算法
基于客户端源IP轮询分发,兼顾流量均匀性和访问稳定性。
(9)FO 快速覆盖算法
极致性能算法,优先选择负载最低、响应最快的节点,适合高并发、低延迟核心业务。

五、LVS多端口轮询问题及完整解决方案
1. 多端口轮询问题现象
当LVS一台虚拟服务器(同一个VIP)需要监听多个端口 (如80、443、8080)时,默认轮询算法会出现端口调度混乱、端口绑定错乱、流量分配不均问题。
核心问题根源:LVS默认是基于服务维度调度,单VIP多端口时,不同端口的请求会共享调度队列,导致同一后端服务器被分配多个端口流量,出现业务冲突、负载失衡。
2. 官方完整解决方案(实操步骤)
方案核心:多端口独立服务调度(每个端口单独配置VS规则)
为VIP下的每一个业务端口,单独创建独立的虚拟服务(VS),每个端口拥有独立的调度队列、独立算法、独立权重,实现端口隔离轮询。
实操配置步骤
-
清空原有单端口全局调度规则,避免冲突:执行
ipvsadm -C清空所有规则。 -
为80端口单独创建虚拟服务,配置独立轮询策略:
ipvsadm -A -t 192.168.1.100:80 -s wrr -
为443端口单独创建虚拟服务:
ipvsadm -A -t 192.168.1.100:443 -s wrr -
为8080端口单独创建虚拟服务:
ipvsadm -A -t 192.168.1.100:8080 -s wrr -
分别为每个端口添加后端真实服务器,独立配置权重:
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.10:80 -g -w 100ipvsadm -a -t 192.168.1.100:443 -r 192.168.1.10:443 -g -w 100 -
保存ipvsadm规则,开机自启,完成多端口独立轮询配置。
方案优势
各端口流量完全隔离、互不干扰,轮询均匀,彻底解决多端口调度错乱问题,支持不同端口配置不同算法、不同权重。

六、LVS会话粘滞(会话保持)问题及解决方案

1. 会话粘滞问题现象
LVS默认轮询调度中,用户的多次请求会被分发到不同的后端服务器。若业务需要同一用户全程访问同一台RS (如登录会话、购物车、表单提交),会出现会话丢失、登录失效、业务报错,这就是会话不粘滞问题。
2. 四种主流解决方案(由简到繁,含实操)
方案一:LVS SH源地址哈希算法(简易会话保持)
原理:基于客户端IP哈希,同一IP始终调度到同一台RS,实现基础会话保持。
配置命令:ipvsadm -A -t VIP:端口 -s sh
优缺点:配置简单,无需额外组件;缺点是多用户同IP(局域网)会被调度到同一节点,负载不均。
方案二:LVS持久化连接(Persistence)(企业常用)
原理:开启LVS会话持久化,指定超时时间,同一客户端在时效内的所有请求,固定分发到同一RS,完美实现会话粘滞。
实操步骤:
-
创建负载均衡规则,开启持久化会话(超时时间300秒):
ipvsadm -A -t 192.168.1.100:80 -s wrr -p 300 -
添加后端RS节点,正常配置权重;
-
生效后,同一客户端5分钟内请求固定访问同一服务器。
优势:不改变原有调度算法,兼顾负载均衡+会话保持,稳定性极高。
方案三:后端统一会话共享(终极解决方案)
原理:彻底摆脱LVS会话绑定,所有后端服务器统一连接Redis/Memcached,将用户会话数据存入公共缓存,所有RS共享会话。无论用户访问哪台服务器,都能读取到会话信息。
适用场景:大型集群、分布式业务、需要无状态扩容的生产环境。

方案四:Cookie会话绑定(七层精准保持)
搭配Nginx七层负载,通过Cookie标记用户节点,精准实现会话保持,解决IP哈希的局限性,适合精细化业务调度。
七、知识点总结复盘
-
集群分为LB负载均衡、HA高可用、HPC高性能计算,LVS为四层LB负载均衡器;
-
LVS四大模式:DR(最高性能)、NAT(配置简单)、TUN(跨网段)、FULLNAT(网络隔离);
-
13种算法分为静态4种、动态9种,WLC为生产默认最优算法;
-
多端口问题核心解决思路:单端口独立VS规则隔离调度;
-
会话粘滞最优生产方案:LVS持久化连接(-p参数),大型业务搭配Redis会话共享。