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)

相关推荐
百结2142 小时前
LVS 负载均衡群集
运维·负载均衡·lvs
IMPYLH2 小时前
Linux 的 nl 命令
linux·运维·服务器·bash
卤炖阑尾炎2 小时前
从原理到实战:LVS 负载均衡集群全解析(OpenEuler 环境)
运维·负载均衡·lvs
南境十里·墨染春水2 小时前
linux学习进展 主函数的参数
linux·运维·学习
ZGi.ai2 小时前
用Agent编排实现合同审查自动化:完整实现过程
运维·人工智能·自动化
魔都吴所谓2 小时前
【Ubuntu】22.04安装 CMake 3.24
linux·运维·ubuntu
守城小轩2 小时前
基于Chrome140的INS账号自动化——需求分析&环境搭建(一)
运维·chrome devtools·浏览器自动化·指纹浏览器·浏览器开发
w6100104663 小时前
CKA-2026-resources
运维·docker·容器·cka
程序员老邢3 小时前
【技术底稿 11】内网私有 Docker 镜像仓库 Registry2 全流程部署(多机共享,告别离线拷贝)
运维·docker·容器·架构·devops