Linux Virtual Server (LVS)
一、LVS 基础认知
1.1 LVS 简介
LVS(Linux Virtual Server)是 Linux 内核层实现的高性能、高可用负载均衡集群技术,由章文嵩博士开发,现为 Linux 内核标准模块。其核心作用是将前端请求流量分发到后端多台真实服务器(RS),提升服务的并发处理能力和可用性。
1.2 集群与分布式核心区别
系统性能扩展分为向上扩展(Scale UP,增强单台设备性能)和向外扩展(Scale Out,增加设备数量),LVS 属于 Scale Out 方案,核心解决多设备的调度分配问题。
| 特性 | 集群(Cluster) | 分布式(Distributed) |
|---|---|---|
| 部署逻辑 | 同一业务部署在多台服务器,功能/数据/代码一致 | 一个业务拆分为多个子业务,各服务器功能/数据/代码不同 |
| 效率提升方式 | 提高单位时间内执行的任务数 | 缩短单个任务的执行时间 |
| 故障影响 | 单台服务器故障,其他服务器可顶替 | 单台节点故障,对应子业务直接失效 |
| 典型应用 | LVS 负载均衡集群、Nginx 集群 | Hadoop 计算、Ceph 存储、微服务架构 |
1.3 LVS 核心术语
LVS 集群的网络交互依赖以下核心 IP/角色定义,访问流程为:CIP <--> VIP == DIP <--> RIP
- VS:Virtual Server,调度器,核心负责流量分发
- RS:Real Server,真实服务器,负责实际提供业务服务
- CIP:Client IP,客户端主机 IP
- VIP:Virtual IP,调度器外网 IP,对外开放的客户访问 IP
- DIP:Director IP,调度器内网 IP,用于和后端 RS 通信
- RIP:Real Server IP,真实服务器的 IP 地址
二、LVS 核心知识点梳理
2.1 LVS 四大工作模式
LVS 通过不同的报文转发方式实现负载均衡,分为 NAT、DR、TUN、FullNAT 四种模式,其中 NAT 和 DR 为实际应用中最常用的模式,TUN 和 FullNAT 仅作了解。四种模式的核心差异在于报文修改方式、网络拓扑、数据转发路径,核心总结如下:
| 工作模式 | 核心转发原理 | 数据路径特点 | 网络要求 | 端口映射 | 适用场景 |
|---|---|---|---|---|---|
| NAT | 多目标 IP 的 DNAT,修改目标 IP/端口 | 请求 + 响应报文均经过 VS | RIP 与 DIP 同网段,RS 网关指向 DIP | 支持 | 后端服务器数量少的场景 |
| DR(默认) | 重新封装 MAC 首部,IP/端口不变 | 请求报文经 VS,响应报文由 RS 直连客户端 | VS 和 RS 同物理网络,均配置 VIP | 不支持 | 高并发、大流量场景 |
| TUN | 原 IP 报文外封装新 IP 首部 | 请求报文经 VS,响应报文由 RS 直连客户端 | DIP/VIP/RIP 均为公网 IP |


