LVS 负载均衡群集

LVS(Linux Virtual Server) 是基于 Linux 内核的四层(TCP/UDP)高性能、高可用负载均衡群集技术,由章文嵩博士开发,是互联网架构中最核心的负载均衡方案之一。

一、LVS 群集三层架构

负载调度器(Director)

集群唯一入口,对外提供VIP(虚拟 IP)

运行 ip_vs 内核模块与 ipvsadm 管理工具

负责按算法分发请求到后端 RS

通常用 Keepalived 实现主备高可用(双机热备)

服务器池(Real Server, RS)

真正处理业务的后端服务器(Web/APP/DB 等)

拥有独立 RIP(真实 IP)

对客户端透明,可水平扩缩容

共享存储

保证所有 RS 数据一致(如 NFS、Ceph、分布式存储)

二、三种核心工作模式

  1. NAT 模式(VS/NAT)

原理:调度器修改目标 IP(VIP→RIP)转发请求;RS 响应先回调度器,再修改源 IP(RIP→VIP)发给客户端。

特点:

优点:RS 可用任意 OS,配置简单

缺点:双向流量都经 Director,易成瓶颈;RS 数量有限(10~20 台)

典型场景:小规模内网服务

  1. DR 模式(Direct Routing,直接路由)------ 生产最常用

原理:调度器仅修改目标 MAC 地址(Director MAC→RS MAC),IP 层不变(目标仍是 VIP)。RS 在 lo 口绑定 VIP,处理后直接回包客户端(绕过 Director)。

特点:

优点:性能最高(只处理入站)、吞吐量最大

缺点:Director 与 RS 必须同一物理网段;需配置 ARP 抑制

典型场景:Web/HTTP 大流量高并发服务

  1. TUN 模式(IP Tunneling,IP 隧道)

原理:调度器将 IP 包封装在新 IP 包中发给 RS;RS 解封装后处理,直接回包客户端。

特点:

优点:RS 可跨网段、跨机房

缺点:所有 RS 必须支持IPIP 隧道;有额外封装开销

典型场景:跨地域、异地多活集群

三、十大调度算法(ipvsadm -s)

静态算法(不考虑后端负载)

rr:轮询(Round Robin)

wrr:加权轮询(Weighted RR,按权重分配)

sh:源地址哈希(Source Hash,会话保持)

dh:目标地址哈希(Destination Hash)

动态算法(考虑后端连接数 / 负载)

lc:最少连接(Least Connections)

wlc:加权最少连接(默认)

sed:最短预期延迟(Shortest Expected Delay)

nq:永不排队(Never Queue)

lblc:基于局部的最少连接

lblcr:带复制的局部最少连接

四、LVS-DR 模式最简配置(CentOS/RHEL)

  1. Director 节点(调度器)

bash

运行

1. 安装工具

yum install -y ipvsadm keepalived

2. 配置VIP(如eth0:0)

ifconfig eth0:0 192.168.1.100 netmask 255.255.255.0 up

3. 添加LVS规则(DR模式,-g)

ipvsadm -A -t 192.168.1.100:80 -s wlc # 虚拟服务

ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.21:80 -g # RS1 DR

ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.22:80 -g # RS2 DR

4. 保存规则

ipvsadm-save > /etc/sysconfig/ipvsadm

systemctl enable --now ipvsadm

  1. Real Server 节点(所有 RS 执行)

bash

运行

1. lo口绑定VIP,抑制ARP

echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

ifconfig lo:0 192.168.1.100 netmask 255.255.255.255 up

2. 永久配置(/etc/sysctl.conf)

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

五、高可用(HA):LVS + Keepalived

Keepalived 作用:

实现 Director 主备自动切换(VRRP 协议)

自动 健康检查 RS(端口 / URL 探测)

故障 RS 自动剔除、恢复后自动加入

典型架构:双 Director(主 + 备)+ 多 RS,无单点故障。

六、LVS 特点总结

内核态:性能远高于 Nginx/HAProxy(七层)

四层转发:支持 TCP/UDP,不解析应用层内容

吞吐量高:DR 模式单机可扛10 万 + 并发

透明:客户端无感知,RS 可无缝扩缩容

成本低:纯软件、Linux 原生、免费开源

七、适用场景

高并发 Web 服务、电商、API 网关

游戏服务器、长连接服务

数据库读负载均衡(如 MySQL 只读实例)

云厂商四层 SLB 底层(如阿里云 SLB 基于 LVS)

相关推荐
悠悠1213814 分钟前
微服务通信别只看性能:REST 与 gRPC 的 6 个选型判断和一次 502 故障复盘
运维·服务器
zx_741484812 小时前
【Linux入门】Shell 函数、正则表达式与文本处理:cut 与 awk
linux·运维·正则表达式
Zenova EdgeOS2 小时前
Linux dmesg 工业边缘实战:内核日志过滤、持久化与故障定位
linux·运维·边缘计算·工业边缘·dmesg·内核日志
wdfk_prog3 小时前
ROS教程08:从 TransportTCP::connect() 追到 TCPROS Connection Header、序列化与 Socket 数据传输
运维·缓存·docker·容器·ros
做运维的阿瑞3 小时前
Python 标准库汇总:分类速览与常用模块清单
linux·运维·python
日常筹谋记4 小时前
自动化仓储安全防护工况评估:明治传感器AS-33C技术适配性分析
大数据·运维·创业创新·业界资讯
Shadow(⊙o⊙)5 小时前
Linux进阶知识1.0
linux·运维·服务器
闲云自留地6 小时前
告别命令恐惧症,openEuler 基础操作 + 文本 + 网络管理实战
linux·运维·云计算
其实防守也摸鱼7 小时前
常见安全架构中 Shiro 的认证确认机制解析
运维·服务器·数据库·windows·github
^Rocky8 小时前
IT 疑难杂症诊疗室:复杂技术问题解决实录
运维·bug