LVS原理篇:LVS简介、结构、四种模式、十种算法

article/2025/9/22 17:51:17

LVS原理篇:LVS简介、结构、四种模式、十种算法

LVS是Linux virtual server的缩写,为linux虚拟服务器,是一个虚拟的服务器集群系统。LVS简单工作原理为用户请求LVS VIP,LVS根据转发方式和算法,将请求转发给后端服务器,后端服务器接收到请求,返回给用户。对于用户来说,看不到Web后端具体的应用。

  • LVS原理篇:LVS简介、结构、四种模式、十种算法
    • 一、LVS负载均衡简介
    • 二、LVS结构
    • 三、LVS相关术语
    • 四、LVS负载均衡四种模式
      • 1、LVS DR模式
      • 2、LVS NAT模式
      • 3、LVS FULLNAT模式
      • 4、LVS TUN原理
      • 5、四种模式的比较
    • 五、LVS负载均衡常见算法

一、LVS负载均衡简介

可伸缩网络服务有很多结构,但都有一个共同点:它们都需要一个前端的负载调度器。而实现虚拟网络服务的主要技术指出IP负载均衡技术是在负载调度器的实现技术里面效率最高的一个。
在已有的IP负载均衡技术中,主要有通过网络地址转换将一组服务器构成一个高性能的、高可用的虚拟服务器,通常称为VS/NAT技术。在分析VS/NAT的缺点和网络服务的非对称的基础上,可以通过IP隧道实现虚拟服务器的方法VS/TUN和通过直接路由实现虚拟服务器的方法VS/DR,它们可以极大地提高系统的伸缩性。(摘自 LINUX企业运维实战一书中)

二、LVS结构

LVS集群分为三层结构:

  • 负载调度器(Load Blancer):是整个LVS集群对外的前端机器,负责敬爱嗯client的请求发送到一组服务器【多台 LB IP】上执行,而client则认为返回来是同一个IP(通常把这个IP成为虚拟ip或VIP)
  • 服务器池(server pool):一组真正执行clinet请求的服务器,一般是web服务器;除了web,还有FTP、MAIL、DNS等
  • 共享存储(shared stord):它为server pool提供了一个共享的存储区,很容易让服务器池拥有相同的内容,提供相同的服务

三、LVS相关术语

  1. DS:Director Server。指的是前端负载均衡器节点
  2. RS:Real Server。后端真实的工作服务器
  3. VIP:向外部直接面向用户请求,作为用户请求的目标的IP地址
  4. DIP:Director Server IP,主要用于和内部主机通讯的IP地址
  5. RIP:Real Server IP,后端服务器的IP地址
  6. CIP:Client IP,访问客户端的IP地址

四、LVS负载均衡工作原理

1、LVS DR模式

LVS DR原理详解图

这里写图片描述

LVS DR原理:用户请求LVS到达director,director将请求的报文的目的MAC地址改为后端的realserver的MAC地址,目的IP为VIP(不变),源IP为client IP地址(不变),然后director将报文发送到realserver,realserver检测到目的地址为自己本地的VIP,如果在同一网段,将请求直接返回给用户,如果用户跟realserver不在同一个网段,则需要通过网关返回给用户。

LVS DR特性:

  • 前端路由将目标地址为VIP报文统统发给Director Server
  • RS跟Director Server必须有一个网卡在同一个物理网络中
  • 所有的请求报文经由Director Server,但响应报文必须不能进过Director Server
  • 所有的real server机器上都有VIP地址

2、LVS NAT模式

LVS NAT原理详解图
d

LVS NAT原理:用户请求LVS到达director,director将请求的报文的目的IP改为RIP,同时将报文的目标端口也改为realserver的相应端口,最后将报文发送到realserver上,realserver将数据返回给director,director再把数据发送给用户

LVS NAT特性:

  • NAT模式修改的是目的ip,直接走的是switch不需要修改mac地址,所以VIP和RIP不需要在同一个网段内
  • NAT的包的进出都需要经过LVS,所以LVS可能会成为一个系统的瓶颈问题

3、LVS FULLNAT模式

LVS FULLNAT报文变化

LVS FULLNAT特性:

  • FULLNAT模式也不需要DIP和RIP在同一网段
  • FULLNAT和NAT相比的话:会保证RS的回包一定可到达LVS
  • FULLNAT需要更新源IP,所以性能正常比NAT模式下降10%

4、LVS TUN原理

LVS TUN原理详解图

LVS TUN原理:用户请求LVS到达director,director通过IP-TUN加密技术将请求报文的包封装到一个新的IP包里面,目的IP为VIP(不变),然后director将报文发送到realserver,realserver基于IP-TUN解密,然后解析出来包的目的为VIP,检测网卡是否绑定了VIP,绑定了就处理这个包,如果在同一个网段,将请求直接返回给用户,否则通过网关返回给用户;如果没有绑定VIP就直接丢掉这个包

LVS TUN特性:

  • TUNNEL必须在所有的realserver上绑定VIP
  • realserver直接把包发给client
  • 隧道模式运维起来会比较难,所以一般不用

5、四种模式的比较

  • 是否需要VIP和realserver在同一网段
    DR模式因为只修改包的MAC地址,需要通过ARP广播找到realserver,所以VIP和realserver必须在同一个网段,也就是说DR模式需要先确认这个IP是否只能挂在这个LVS下面;其他模式因为都会修改目的地址为realserver的IP地址,所以不需要在同一个网段内
  • 是否需要在realserver上绑定VIP
    realserver在收到包之后会判断目的地址是否是自己的IP
    DR模式的目的地址没有修改,还是VIP,所以需要在realserver上绑定VIP
    IP TUN模式值是对包重新包装了一层,realserver解析后的包的IP仍然是VIP,所以也需要在realserver上绑定VIP
  • 四种模式的性能比较
    DR模式、IP TUN模式都是在包进入的时候经过LVS,在包返回的时候直接返回给client;所以二者的性能比NAT高
    但TUN模式更加复杂,所以性能不如DR
    FULLNAT模式不仅更换目的IP还更换了源IP,所以性能比NAT下降10%
    性能比较:DR>TUN>NAT>FULLNAT

五、LVS负载均衡十种算法

1. 轮叫调度 rr
均等地对待每一台服务器,不管服务器上的实际连接数和系统负载

2. 加权轮叫 wrr
调度器可以自动问询真实服务器的负载情况,并动态调整权值

3. 最少链接 lc
动态地将网络请求调度到已建立的连接数最少的服务器上
如果集群真实的服务器具有相近的系统性能,采用该算法可以较好的实现负载均衡

4. 加权最少链接 wlc
调度器可以自动问询真实服务器的负载情况,并动态调整权值
带权重的谁不干活就给谁分配,机器配置好的权重高

5. 基于局部性的最少连接调度算法 lblc
这个算法是请求数据包的目标 IP 地址的一种调度算法,该算法先根据请求的目标 IP 地址寻找最近的该目标 IP 地址所有使用的服务器,如果这台服务器依然可用,并且有能力处理该请求,调度器会尽量选择相同的服务器,否则会继续选择其它可行的服务器

6. 复杂的基于局部性最少的连接算法 lblcr
记录的不是要给目标 IP 与一台服务器之间的连接记录,它会维护一个目标 IP 到一组服务器之间的映射关系,防止单点服务器负载过高。

7. 目标地址散列调度算法 dh
该算法是根据目标 IP 地址通过散列函数将目标 IP 与服务器建立映射关系,出现服务器不可用或负载过高的情况下,发往该目标 IP 的请求会固定发给该服务器。

8. 源地址散列调度算法 sh
与目标地址散列调度算法类似,但它是根据源地址散列算法进行静态分配固定的服务器资源。

9. 最少期望延迟 sed
不考虑非活动链接,谁的权重大,优先选择权重大的服务器来接收请求,但权重大的机器会比较忙

10. 永不排队 nq
无需队列,如果有realserver的连接数为0就直接分配过去

参考链接


http://chatgpt.dhexx.cn/article/8rho1WYd.shtml

相关文章

LVS负载均衡群集

目录 一、概述 1.群集的含义 2.问题 3.解决方法 二、分类 1.根据群集所针对的目标差异,可分为三种类型 2.负载均衡群集(Load Balance Cluster) 3.高可用群集(High Availability Cluster) 4.高性能运算群集(High Performance Computer Cluster) 三、负载均…

LVS详解与配置

一、LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器,是一个由章文嵩博士发起的自由软件项目,官方站点是:http://www.linuxvirtualserver.org。现在LVS已经是Linux标准内核的一部分,在Linux2.4内核以…

选择正确的负载均衡器:LVS还是Nginx?

选择正确的负载均衡器:LVS还是Nginx? 博主简介一、前言二、什么是LVS?2.1、LVS的架构 三、什么是Nginx?3.1、Nginx 特性3.2、Nginx 架构 四、LVS和Nginx的区别五、总结 博主简介 💡一个热爱分享高性能服务器后台开发知…

搭建LVS负载均衡

keepalivedLVSNginxNetty接收数据并发送到Kafka 链接参考文档 LVSKeepalived项目 规划两台 LVS服务器,两台NGinx服务器,两台部署Netty程序服务器 组件节点地址主机名称虚拟ip/端口LVSkeepalived172.25.94.154-0007172.25.94.187LVSkeepalived172.25.9…

LVS 就是这么简单(数字后端物理验证篇)

LVS 就是这么简单!(数字后端物理验证篇) 文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点。点击进去后出现任何损失与社区无关。 今天吾爱 IC 社区小编为大家带来数字 IC 后端实现物理验证中关于 LVS 的主题分享。…

LVS-DR+keepalived

目录 一、LVS-DR数据包流量分析(同一局域网) 二、LVS-DR中的ARP问题 三、LVS-DR处理问题后的流量分析 五、Keepalived 六、LVS-DR 1.设置环境 ​2.开启ipvsadm 3. 配置网卡 4. 调整proc响应参数 5.配置负载分配策略 6. web站点服务器配置 配置虚拟IP地址 7. 部署ke…

LVS 负载均衡集群 - 直接路由模式(LVS-DR)

文章目录 一、LVS-DR 数据包流向分析二、LVS-DR 模式的特点三、LVS-DR 中的 ARP 问题四、部署 LVS-DR 负载均衡集群1. 案例背景2. 架构概述3. 安装环境4. 正式部署(1) 配置负载调度器(2) 配置 NFS 共享存储(3) 配置 WEB 节点服务器① WEB1② WEB2 5. 测试 LVS-DR 集群 一、LVS-…

什么是LVS?

LVS介绍 什么是LVS?LVS的结构LVS的特点LVS的不足 什么是LVS? LVS,全称 Linux Virtual Server,即Linux虚拟服务器。是一个虚拟的服务器集群系统,使用负载均衡技术将多台服务器组成一个虚拟的服务器集群。在众多解决高并发问题的方案中&…

LVS负载均衡

目录 一、What’s the LVS? 1、LVS(Linux Virtual Server,负载调度器) 2、LVS如何工作 二、LVS工作模式 1、LVS-NAT 2、LVS-TUN 3、LVS-DR 三、LVS的使用 1、LVS负载均衡调度算法 (1).轮询调度 &…

LVS服务器

简介 LVS是Linux虚拟服务器,LVS由用户空间的ipvsadm和内核空间的IPVS组成。ipvsadm用来定义规则,IPVS利用ipvsadm定义的规则工作。LVS是一个高效的负载均衡器 LVS的特点 高并发连接:LVS基于内核网络层面工作,有超强的承载能力和…

LVS的介绍与使用

LVS负载均衡 1.LVS服务简述 1.1lvs服务简介 ​ LVS(Linux Virtual Server)即Linux虚拟服务器,是一个虚拟的服务器集群系统,该项目是1998年5月由章文嵩博士主导的开源负载均衡项目,是国内最早出现的自由软件项目之一…

LVS原理简介

LVS是Linux virtual server的缩写,为linux虚拟服务器,是一个虚拟的服务器集群系统。LVS简单工作原理为用户请求LVS VIP,LVS根据转发方式和算法,将请求转发给后端服务器,后端服务器接收到请求,返回给用户。对…

什么是LVS

😘作者简介:一名99年运维岗位员工。👊宣言:人生就是B(birth)和D(death)之间的C(choise),做好每一个选择。🙏创作不易,动动…

LVS是什么

LVS是linux virtual server的简写linux虚拟服务器,是一个虚拟的服务器集群系统,可以在unix/linux平台下实现负载均衡集群功能。该项目在1998年5月由章文嵩博士组织成立。 LVS是一种集群(Cluster)技术,现在LVS已经是 Linux标准内核的一部分&a…

lvs使用

1.前言 LVS(Linux Virtual Server)是一个基于 Linux 内核的负载均衡器,用于分发网络流量和将请求转发给后端服务器。LVS 提供了多种负载均衡算法和转发模式,以满足不同场景和需求的负载均衡需求,在LVS中定义虚拟服务的…

LVS负载均衡介绍

一、lvs是什么? LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。在linux内存2.6中,它已经成为内核的…

[高可用系列|LVS]LVS详解

背景 上一章我们说了keepalived,keepalived是避免负载均衡设备的单点故障的,即负载均衡设备的高可用。截止到目前为止,负载均衡我们只说到了Nginx(四层,七层负载),接下来的我们介绍的LVS也是用来…

lvs看这篇就够了

1lvs 的由来 1公司的钱大部分都花在了获客,营销上,营销效果好就会带来新的流量,如果自身应用承接不住大的流量将会造成很大的经济损失。所以lvs负载均衡技术就此诞生了。当然不差钱也可以使用F5 等硬件 lvs 学名 Linux虚拟服务器 LVS是Linux …

lvs负载均衡之配置lvs-nat模式的httpd负载集群---http和https

文章目录 Lvs简介体系结构LVS管理工具Ipvsadm核心功能LVS工作模式及原理 LVS调度算法配置lvs-nat模式的httpd负载集群---http配置lvs-nat模式的httpd负载集群---https Lvs简介 LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主…

LVS基本知识概述

1.什么是LVS? LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中 该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案,其体…