LVS(Linux Virtual Server)集群技术详解
一.LVS 介绍
定义:
LVS 是基于 Linux 内核的四层(传输层)负载均衡解决方案,由章文嵩博士开发,用于构建高性能、高可用的服务器集群。
核心组件:
-
Director(调度器):接收客户端请求并分发到后端 Real Server。
-
Real Server(真实服务器):实际处理请求的后端服务器集群。
-
VS:Virtual Server: 虚拟服务器
-
VIP(虚拟 IP):对外提供服务的虚拟 IP 地址。
-
RIP(真实 IP):后端服务器的真实 IP 地址。
-
CIP:Client IP
官网:The Linux Virtual Server Project - Linux Server Cluster for Load Balancinghttp://www.linuxvirtualserver.org/ lvs集群体系结构
模式 | 原理 | 优点 | 缺点 |
NAT | 修改数据包的IP/端口 | 支持端口映射,配置简单 | Director 易成瓶颈 |
DR(Direct Routing) | 仅修改 MAC 地址,不修改 IP | 性能极高(90% 吞吐量) | 要求 Real Server 与 Director 同局域网 |
TUN(IP 隧道) | 通过 IP 隧道封装数据包 | 可跨机房部署 | 配置复杂,隧道开销高 |
关键区别:
-
NAT/FullNAT:请求和响应均经过Director。
-
DR/TUN:仅请求经过Director,响应由RS直接返回客户端。
LVS调度算法
LVS支持多种调度算法,分为静态和动态两类:
1. 静态算法(不考虑RS负载)
-
RR(轮询):均分请求到各RS。 ——适用场景:Real Server 性能均等
-
WRR(加权轮询):根据RS性能分配权重。 ——适用场景:Real Server 配置不均
-
SH(源地址哈希):同一客户端固定访问同一RS(会话保持)。 ——适用场景:需要会话保持的应用
2. 动态算法(基于RS负载状态)
-
LC(最少连接):优先选择连接数最少的RS。 ——适用场景:长连接服务(如数据库)
-
WLC(加权最少连接):默认算法,结合权重和连接数。 ——适用场景:Real Server 性能均等,但需动态平衡 “连接数”,避免节点过载。
-
SED/NQ:优化高权重节点的初始连接分配。 ——适用场景:Real Server 性能均等,但需 “优先让高权重节点承接初始连接”(哪怕连接数稍多 ),或需 “初始流量倾斜”。