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)

相关推荐
En^_^Joy6 分钟前
Nginx 从入门到精通:配置、原理与实战详解
运维·nginx
玖石书23 分钟前
WSL2 手动安装 Ubuntu 24.04 到指定磁盘位置
linux·运维·ubuntu·wsl
随便做点啥1 小时前
32卡-64G-910B4-16后端-(Qwen3.8-27B-W8A8)集群部署报告
运维·服务器·经验分享·docker·vllm
2601_962218478 小时前
万象生鲜系统区块链溯源技术帮助生鲜企业搭建食品安全数字化体系
大数据·运维·微服务·云原生·架构
智塑未来8 小时前
中小公司在线文档选型:从协作入口到安全边界
运维·安全
新时代牛马8 小时前
Linux 内核入门地图:架构、源码目录与五大子系统
linux·运维·架构
智购科技无人售货机厂家8 小时前
2026自动售货机制冷系统维护指南:从散热器清洁到压缩机换油的工程实践~YH
运维·redis·物联网·缓存·架构
剑客的茶馆8 小时前
开发者,运维怎样转行FDE?
运维·ai·开发·fde
Julien20048 小时前
控制 SELinux 文件上下文
linux·运维·服务器
众壹新能源科技9 小时前
功率预测误差考核怎么降?从气象源到上报口径的排查清单
运维·人工智能·自动化