LVS(Linux Virtual Server)是一种基于Linux内核的高性能、开源的四层负载均衡解决方案,由章文嵩博士开发。它通过将客户端请求分发到多台后端服务器(Real Server)来实现负载均衡,提升系统的吞吐量、可用性和可扩展性。
LVS 核心组件
-
负载均衡器(Director Server/Load Balancer)
-
负责接收客户端请求,并根据调度算法将请求转发到后端真实服务器。
-
核心工具:
ipvsadm
(管理IPVS规则)。
-
-
真实服务器池(Real Server Pool)
-
实际处理请求的后端服务器群,可以是Web服务器、应用服务器等。
-
-
虚拟IP(VIP,Virtual IP)
-
客户端访问的对外IP地址,负载均衡器通过VIP接收请求。
-
-
真实IP(RIP,Real IP)
-
后端服务器的实际IP地址。
-
LVS 工作模式
LVS支持三种主要负载均衡模式,适用于不同场景:
1. NAT 模式(Network Address Translation)
-
原理
负载均衡器修改请求和响应的IP地址,将客户端请求的VIP转换为后端服务器的RIP,并将响应数据包的源IP改回VIP。 -
特点
-
负载均衡器可能成为性能瓶颈(需处理双向流量)。
-
后端服务器可使用私有IP,但需配置默认网关指向负载均衡器。
-
-
适用场景
小规模集群,且对性能要求不高。
2. DR 模式(Direct Routing)
-
原理
负载均衡器仅修改请求的MAC地址,将数据包直接路由到后端服务器,响应数据由后端服务器直接返回客户端(不经过负载均衡器)。 -
特点
-
高性能(负载均衡器仅处理入站流量)。
-
后端服务器需配置VIP在本地网卡上,并抑制ARP响应(通过
arp_ignore
和arp_announce
参数)。
-
-
适用场景
高吞吐量需求,如Web服务器集群。
3. TUN 模式(IP Tunneling)
-
原理
负载均衡器通过IP隧道(IPIP封装)将请求转发到后端服务器,后端服务器解封装后直接响应客户端。 -
特点
-
支持跨网络环境的负载均衡(后端服务器可位于不同子网)。
-
需要后端服务器支持隧道协议。
-
-
适用场景
跨机房或跨地域的负载均衡。
LVS 调度算法
LVS支持多种调度算法,根据实际需求选择:
-
轮询(Round Robin, rr):依次分发请求。
-
加权轮询(Weighted Round Robin, wrr):根据服务器权重分配请求。
-
最少连接(Least Connections, lc):将请求分发给当前连接数最少的服务器。
-
加权最少连接(Weighted Least Connections, wlc):结合权重和连接数。
-
源地址哈希(Source Hashing, sh):基于客户端IP哈希值分配,保证同一客户端始终访问同一后端服务器。
LVS 配置示例(DR模式)
以下是一个简单的LVS-DR模式配置步骤:
1. 负载均衡器配置
# 添加虚拟服务(VIP) ipvsadm -A -t 192.168.1.100:80 -s wrr # 添加真实服务器(RIP) ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.101:80 -g # -g表示DR模式 ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.102:80 -g
2. 后端服务器配置
每台后端服务器需配置VIP到本地网卡(如lo:0
)并抑制ARP:
# 配置VIP ifconfig lo:0 192.168.1.100 netmask 255.255.255.255 up # 抑制ARP响应 echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
LVS 高可用性
LVS本身是单点的,需结合高可用工具(如Keepalived)实现故障转移:
-
Keepalived:通过VRRP协议实现主备负载均衡器的自动切换,同时管理LVS规则。
LVS 优缺点
-
优点:
-
高性能(内核态转发,无应用层开销)。
-
支持多种调度算法和负载均衡模式。
-
可扩展性强,支持大规模集群。
-
-
缺点:
-
配置复杂度较高(尤其是DR模式的ARP问题)。
-
仅支持四层负载均衡,无法基于应用层内容(如HTTP URL)做决策(需结合Nginx/Haproxy)。
-