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)

相关推荐
为思念酝酿的痛8 小时前
POSIX信号量
linux·运维·服务器·后端
专业白嫖怪8 小时前
什么是docker
运维·docker·容器
人还是要有梦想的9 小时前
linux下用搜狗输入法,中英文切换
linux·运维·服务器
北京智和信通10 小时前
某部队IT基础设施及机房动环统一运维建设实例
运维·网管平台·网管软件·网络管理系统·网络运维平台·网络运维系统
乐维_lwops10 小时前
从 “救火运维” 到 “自动驾驶”:运维智能体到底解决了什么?
运维·人工智能·运维智能体
bush410 小时前
嵌入式linux学习记录二
linux·运维·学习
weixin_4684668510 小时前
MoneyPrinterTurbo 短视频自动化生产实战指南
运维·人工智能·自动化·大模型·音视频·moneyprinter
難釋懷11 小时前
Nginx自签名-图形化工具 XCA
运维·nginx
志栋智能12 小时前
小步快跑:从单一场景开启超自动化巡检之旅
运维·网络·人工智能·自动化
AugustRed13 小时前
Linux 运维常用命令大全(超全速查表)
运维·网络·php