LVS

LVS 是 Linux Virtual Server 的缩写,中文叫 Linux虚拟服务器。它是一个基于Linux操作系统内核实现的、开源的、四层负载均衡器

简单来说,LVS 就是负载均衡技术中,“四层负载均衡” 这一分类下的事实标准和经典实现。它完全运行在Linux内核空间,以极高的性能和稳定性著称,是构建大型网站架构的基石技术之一。


一、LVS的核心特点

  • 工作在四层:LVS工作在内核空间,基于IP地址和端口号做转发。它不解析应用层内容(如HTTP的URL)。
  • 性能极高:因为它在内核中处理数据包,不需要像Nginx(七层)那样在用户态和内核态之间频繁切换,所以抗并发能力极强,单机可以支撑百万级的并发连接。
  • 稳定性极高:作为Linux内核的一部分,LVS非常成熟稳定,被广泛应用于金融、电商等核心生产环境。
  • 透明性:对客户端而言,它们访问的是LVS提供的虚拟IP(VIP),后端服务器的变化对客户端完全透明。

二、LVS的核心术语

为了更好地理解LVS的工作原理,你需要先记住这三个角色:

角色名称说明
VIP虚拟IP地址负载均衡器对外提供服务的IP地址。客户端访问的都是这个IP,它绑定在LVS服务器上。
DIP负载均衡器的内网IPLVS服务器和后端真实服务器通信用的IP地址,通常位于同一个内网段。
RIP后端真实服务器的IP地址真正处理请求的服务器(如Web服务器)的内网IP。

三、LVS的三种工作模式

这是LVS最核心的技术部分。根据数据包转发方式和响应流量的路径,LVS有三种模式:

1. NAT模式(网络地址转换模式)

  • 原理
    • 客户端请求到达LVS(VIP)。
    • LVS修改数据包的目标IP地址(从VIP改为RIP),将请求转发给后端服务器。
    • 后端服务器的响应数据必须先回给LVS,由LVS修改源IP地址(从RIP改回VIP),再发回给客户端。
  • 特点
    • 优点:后端服务器可以运行任何操作系统,只需要配置私有IP。
    • 缺点进出流量都经过LVS,当响应流量很大时,LVS会成为瓶颈。通常用于流量不大的场景。

2. DR模式(直接路由模式,最常用)

  • 原理
    • 客户端请求到达LVS(VIP)。
    • LVS只修改数据包的目标MAC地址(改为后端服务器的MAC),不修改IP地址。数据包直接发给后端服务器。
    • 关键点:后端服务器也需要配置VIP(通常配置在Loopback接口上,且不响应ARP),这样服务器收到包后,一看目标IP是VIP(自己),就会接收并处理。
    • 响应数据由后端服务器直接回给客户端,不再经过LVS。
  • 特点
    • 优点性能极高。LVS只处理入站请求,出站流量直接从服务器走,LVS不再是瓶颈,特别适合流量巨大的读服务。
    • 缺点:LVS和后端服务器必须在同一个物理二层网络内,不能跨网段;后端服务器需要额外配置VIP。

3. TUN模式(IP隧道模式)

  • 原理
    • 客户端请求到达LVS(VIP)。
    • LVS通过IP隧道技术(在原有的IP包外面再包一层IP头),将请求转发给后端服务器。
    • 后端服务器解封装后处理请求,响应数据直接回给客户端。
  • 特点
    • 优点:LVS和后端服务器可以跨地域(不在同一个物理网络),通过互联网连接。
    • 缺点:隧道封装/解封装有额外开销,配置相对复杂。

三种模式对比

维度NAT模式DR模式TUN模式
请求/响应路径请求经LVS,响应经LVS请求经LVS,响应直接回请求经LVS,响应直接回
后端服务器要求任何操作系统必须配置VIP(抑制ARP)支持IP隧道协议
网络要求可跨网段必须在同一个物理二层网络可跨地域
性能一般(LVS有瓶颈)极高(最常用)
应用场景小规模、响应体较小大型网站、流量巨大后端服务器异地部署

四、LVS的调度算法

LVS支持多种算法来分发请求到后端服务器,和之前提到的负载均衡算法一致:

  • 静态算法
    • RR(轮询):轮流分配。
    • WRR(加权轮询):按权重分配。
  • 动态算法
    • LC(最少连接):分配给当前连接数最少的服务器。
    • WLC(加权最少连接):带权重的LC,是LVS默认且最常用的算法
    • SED(最短期望延迟)NQ(永不排队)等。

五、LVS在云架构中的位置(与之前内容的关联)

结合你之前提到的负载均衡云网络架构,可以这样理解LVS的角色:

技术与LVS的关系
负载均衡(通用概念)LVS是负载均衡概念下的一种具体实现,专攻四层高性能转发。
Nginx/Haproxy它们通常是七层负载均衡,工作在用户态,处理应用层逻辑。经典架构中,LVS作为第一层入口(四层转发),Nginx作为第二层(七层路由),层层分流。
云厂商的SLB/ALB云厂商的负载均衡服务(如阿里云的SLB、AWS的ELB)底层很多都采用了基于LVS的技术,或者借鉴了LVS的DR模式思想(即确保转发路径的高效)。
VPC/物理网络LVS的DR模式要求LVS和后端服务器在同一个二层网络,这与云数据中心Spine-Leaf架构下的大二层网络设计理念是一致的。

总结

  • LVS是什么:Linux内核自带的四层负载均衡器
  • 核心优势性能极高、极其稳定
  • 核心模式DR模式(直接路由),实现请求转发、响应直回,性能最佳,应用最广。
  • 在技术栈中的位置:通常作为大型分布式系统的流量入口第一层,负责海量并发连接的接入,然后将流量分发给后端的Nginx或Web应用服务器。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注