代理服务器-LVS的3种模式与调度算法

LVS和Keepalived简介 LVS简介 LVS是Linux Virtual Server的缩写,其主要的功能是实现负载均衡。其可用性=可用时间/(可用时间+故障恢复时间),通常用百分比来表示;99.9%表示一年的故障时间少于8小时;99.99%表示一年的故障时间少于53分钟;99.999%表示一年的故障时间小于5分钟。 核心组件: lp_vs:linux内核功能模块,工作在内核,依赖该内核模块实现负载均衡功能。lp_... 阅读详情

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

图片

我们上一章介绍了Web服务器,其中以Nginx为主,本章我们来讲解几个代理软件:Squid,Haproxy,LVS,FRP(内网穿透)。

上一小节我们介绍了LVS的概念和部署,本小节来讲解LVS的工作模式和调度算法。本小节的内容都是理论知识,在很多地方其实都能搜索到大致相似的内容。

一、LVS 的 3 种工作模式

1. NAT 模式(Network Address Translation)

    客户端请求:客户端发送请求到 VIP(Virtual IP),Director 接收请求后,修改目标 IP 为 Real Server 的 IP(DNAT),转发请求。

    服务器响应:Real Server 处理请求后,将响应返回给 Director,Director 修改源 IP 为 VIP(SNAT),返回给客户端。

    Real Server 的网关必须指向 Director 的 DIP(Director IP)。

    Director 需开启 IP 转发(net.ipv4.ip_forward=1)。

    2. DR 模式(Direct Routing)

    客户端请求:Director 接收请求后,仅修改目标 MAC 地址为 Real Server 的 MAC,直接转发数据包。

    服务器响应:Real Server 处理请求后,直接通过自己的网络接口(不经过 Director)返回响应给客户端。

    Director 和 Real Server 必须在同一物理网络(同一广播域)。

    Real Server 需配置 VIP 在 lo 接口,并抑制 ARP 响应。

    3. TUN 模式(IP Tunneling)

    客户端请求:Director 将请求封装在 IP 隧道(如 IPIP、GRE)中,发送给 Real Server。

    服务器响应:Real Server 解封装请求后,直接响应客户端(不经过 Director)。

    Real Server 需支持 IP 隧道协议。

    Real Server 需配置 VIP 在隧道接口(如 tun0)。

    二、LVS 的 10 种调度算法

    下面的调度算法实际上和我们前面讲的Nginx服务器差不多,只是他们工作的网络层不一样。

    1. 轮询调度(Round Robin, rr)

    描述:依次将请求分配给每个后端服务器,循环进行。

    适用场景:当所有服务器的处理能力大致相同时,适合使用此算法。

    特点:简单、公平,但不考虑服务器当前负载情况。

    2. 加权轮询调度(Weighted Round Robin, wrr)

    描述:基于服务器权重进行轮询调度。权重越大,分配到的请求越多。

    适用场景:服务器性能差异较大时,可以通过设置不同权重来优化资源利用。

    特点:在轮询的基础上增加了对服务器处理能力的考量。

    3. 最少连接调度(Least Connections, lc)

    描述:将请求分配给当前连接数最少的服务器。

    适用场景:适用于请求处理时间较长或服务器负载不稳定的情况。

    特点:有助于平衡服务器之间的负载,特别是当请求处理时间变化较大时。

    4. 加权最少连接调度(Weighted Least Connections, wlc)

    描述:结合了最少连接和服务器权重两个因素进行调度。计算公式为:(current connections / weight),值最小的服务器被选中。

    适用场景:当服务器性能差异较大且需要更精确地控制负载分布时。

    特点:相比 lc 更加灵活,能更好地适应不同性能的服务器集群。

    5. 基于局部性的最少连接调度(Locality-Based Least Connections, lblc)

    描述:针对源地址进行调度,尝试将来自同一客户端的请求分配给同一个服务器,并优先选择连接数较少的服务器。

    适用场景:适用于会话保持需求较高的应用,如 Web 应用程序。

    特点:提高缓存命中率,减少跨服务器的数据传输。

    6. 基于局部性的最少连接复用调度(Locality-Based Least Connections with Replication, lblcr)

    描述:类似于 lblc,但在找不到合适的本地服务器时,会选择一个远程服务器并将其加入到本地服务器列表中。

    适用场景:适合于高可用性和高扩展性的应用场景。

    特点:增强了 lblc 的灵活性,能够更好地处理动态变化的流量模式。

    7. 目标地址哈希调度(Destination Hashing, dh)

    描述:根据目标地址(通常是客户端的 IP 地址)进行哈希运算,结果决定分配给哪个服务器。

    适用场景:适用于需要会话保持的应用,确保相同客户端的请求总是被发送到同一台服务器。

    特点:提供了较好的会话一致性,但可能导致负载不平衡。

    8. 源地址哈希调度(Source Hashing, sh)

    描述:根据源地址(通常是客户端的 IP 地址)进行哈希运算,结果决定分配给哪个服务器。

    适用场景:与 dh 类似,适用于需要会话保持的应用。

    特点:确保相同客户端的请求始终被发送到同一台服务器,但同样可能导致负载不平衡。

    9. 最短预期延迟调度(Shortest Expected Delay, sed)

    描述:选择 (当前连接数 + 1) / 权重 最小的服务器,目的是最小化新连接的预期延迟。

    适用场景:适用于希望快速响应新请求的场景。

    特点:相比 wlc 更注重新连接的延迟,而非平均负载。

    10. 从不排队调度(Never Queue, nq)

    描述:如果有一台服务器空闲,则直接选择该服务器;如果没有空闲服务器,则采用加权最少连接调度。

    适用场景:适用于希望尽可能避免队列等待的情况。

    特点:保证至少一台服务器上的即时响应,其他情况下则依赖于 wlc 算法。

    SAP COPA实战:手把手教你用CMOD增强搞定自定义特性派生(以客户字段为例) 本文详细介绍了在SAP COPA模块中通过CMOD增强实现自定义特性派生的全流程,以客户字段为例,展示了从特性设计、SPRO配置到特性派生逻辑实现的完整步骤。重点讲解了如何利用CMOD增强技术解决业务需求,提升获利能力段分析的灵活性和准确性。 阅读详情

    相关推荐

    【CubeMX】STM32G474 HRTIM 互补PWM与死区时间配置实战

    本文详细介绍了如何使用STM32CubeMX配置STM32G474的高分辨率定时器HRTIM生成互补PWM波形并精确设置死区时间。通过实战步骤讲解时钟配置、死区计算与高级功能,帮助工程师在电机驱动和电源应用中实现精准控制,避免上下桥臂直通风险。

    grpc6streamer的博客 727

    Linux 中安装配置 LVS 实现前向代理负载均衡的步骤

    DR(Direct Routing)模式是 LVS 支持的一种负载均衡方式,采用直接路由(即 DSR)的方式来实现负载均衡,它将所有的请求都发送到后端真实服务器上进行处理,可以有效地降低负载均衡器的负担,提高系统的吞吐量,在 DR 模式中,负载均衡器只负责接收客户端的请求,并将请求中的目标 IP 地址替换成后端服务器的 IP 地址,不对请求进行任何处理。在配置LVS之前,先清晰两个概念,前向负载均衡和后向负载均衡,它们都是负载均衡的方式,区别在于负载均衡器的位置。

    人工智能全栈工程师 | 智能算法研发与实战落地​专注于人工智能算法研究、代码实现与工程落地,提供从模型设计到部署应用的全流程解决方案。 1347

    自动驾驶仿真:python和carsim联合仿真案例

    carsim内部有许多相关联合仿真的demo,simulink、labview等等都有涉及,这里简单介绍下python和carsim联合仿真的方法,虽然carsim官方有个Steer_Control.py相关的案例,但是感觉比较冗余,这里抽出重点部分和大家交流探讨下。提示:以下是本篇文章正文内容,下面案例可供参考1、这里关于solvers的细节其实都没说,因为里面确实也没什么内容好讲的,本质就是调用carsim.dll,如果你需要更多的函数解析其实可以看vs_api.h,路径在,具体内容如下图所示。

    zataji的博客 9062

    Lvs、Nginx、HAproxy区别及优缺点

    像对于大型的,需要进行高并发的网站或者对网络不太严格的时候,可以使用nginx;对于大型的Web服务器的时候可以使用HAproxy;对性能有严格要求的时候可以使用lvs,就单纯从负载均衡的角度来说,lvs也许会成为主流,更适合现在大型的互联网公司。HAproxy和Nginx由于可以做七层的转发,所以URL和目录的转发都可以做。...

    Zhaohui_Zhang的博客 2333

    Jaspersoft Studio安装与配置全攻略:从下载到首个报表生成

    本文提供Jaspersoft Studio从下载、安装到创建首个报表的完整实战指南。详细介绍了如何获取安装包、配置工作空间,并通过可视化设计器创建报表模板、添加参数与字段,最终实现数据预览与PDF导出。帮助Java开发者快速掌握这一强大的开源报表工具,提升报表开发效率。

    weixin_28826521的博客 704

    3-RRR并联机器人结构详解:从运动学到奇异点分析(附MATLAB仿真代码)

    本文详细解析了3-RRR并联机器人的结构设计、运动学建模及奇异点分析,并提供了MATLAB仿真代码。通过对称性设计和可分析性,3-RRR结构成为教学与研究的理想对象。文章从基础杆件参数设置到奇异位形的实时捕捉,深入探讨了机构运动的数学本质,并分享了仿真调试中的实用技巧,助力工业自动化和精密控制应用。

    sunny的博客 366

    lvs 代理三种模式

    1.tunnel模式 四台服务器: DR=192.168.84.130 VIP=192.168.84.199 RIP1=192.168.84.131 RIP2=192.168.84.132 RIP3=192.168.0.102 lvs服务器脚本: #!/bin/bash #lvs script(tunnel mode) DR=192.168.84.130 VIP=192.168.84.199 RIP1=192.168.84.131 RIP2=192.168.84.132 RIP3=192.168.

    weixin_46018506的博客 1141

    DEXPI与Proteus XML:解锁过程工业P&ID数据互操作性的技术核心

    本文深入探讨了DEXPI与Proteus XML在过程工业P&ID数据互操作性中的核心技术。通过解析DEXPI标准的开源特性和Proteus XML的架构设计,揭示了其在跨平台数据交换中的关键作用,并结合CADMATIC和西门子COMOS的实战案例,展示了如何实现高效的数据集成与转换。

    weixin_29195615的博客 384

    LVS和nginx和keepalived四层和7层的一些测试,nginx和keepalived共用环境的部署,lvs,nginx客户端IP透传

    LVS四层代理 nginx七层代理 nginx四层代理 keepalive四层 keepalive转发卡死问题出来,lvs,nginx客户端IP透传

    莎拉拉吗酷奇的博客 1176

    医疗AI知识库更新慢?提示工程架构师用Agentic AI自动更新的策略

    我们的目标是用Agentic AI替代传统更新流程中的“重复劳动”,让医疗知识库(以知识图谱为例)能自动跟踪最新医学进展,把“更新周期从数月缩短到数天”。从PubMed/指南数据库自动抓取新文献;用提示工程从文本中提取结构化医学知识;自动校验新知识与旧知识的冲突;将通过校验的知识写入知识图谱。拆问题:先讲医疗知识库更新慢的3大根源;给方案:用Agentic AI设计4个“小助手”解决问题;讲原理:每个小助手的工作逻辑+提示工程技巧;做实战。

    AI 原生应用开发的博客 1062

    【用unity实现100个游戏之1】制作类元气骑士、挺进地牢——俯视角射击游戏多种射击效果(一)(附源码)

    俯视角射击游戏)是一类以俯视视角进行游戏展示的射击游戏。在这种游戏中,玩家控制着一个角色或载具,从俯视的角度上方观察游戏世界,并与敌人进行战斗。这种视角使玩家能够有更好的全局观察和策略性,同时也强调快速反应和精确射击。视角:俯视角度可以是固定的,也可以随着玩家角色的移动而变化,但都允许玩家以全局视角观察整个战场,有利于制定战略和规划行动。射击:玩家通常需要使用各种武器来与敌人进行战斗,包括枪械、爆炸物等。射击动作依赖于玩家的反应速度和准确性。

    向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 7833

    LVS四层负载均衡集群

    LVS四层负载均衡集群

    m0_73302728的博客 953

    YOLOv13涨点改进 | 全网独家创新、HyperACE改进、注意力改进篇 | CVPR 2025| 引入LRSA局部区域自注意力模块,能提升其在细节捕捉、小目标检测和长距离依赖建模方面的能力

    本文提出将LRSA(局部区域自注意力)模块集成到YOLOv13中,通过局部特征交互增强细节捕捉能力、小物体检测精度和长距离依赖建模。LRSA模块采用重叠图像块处理策略,在保持计算效率的同时提升复杂背景下的检测性能。文章详细介绍了模块结构、原理优势,并提供了三种改进方案:1)在主干网络添加LRSA层;2)将关键模块替换为DSC3k2_LRSA;3)采用HyperACE_LRSA结构。配套提供了完整的PyTorch实现代码和YAML配置文件,展示了该模块如何通过局部注意力机制平衡检测精度与推理速度。

    Ai缝合怪、助力小伙伴高效发论文 345

    LVS负载均衡(LVS简介、三种工作模式、调度原理以及十种调度算法)

    LVS简介 LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中。该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案,其体系结构如图1所示,终端互联网用户从外部访问公司的外部负载均衡服务器,终端用户的Web请求会发送给LVS调度器,调度器根据自己预设的算法决定将该请求发送给后端的某...

    boping7731的博客 495

    RU DOS版、EFI版32bit/64bit BIOS常用工具

    DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

    精雕软件(JDpaint) 5.5 绿色版

    精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

    LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤

    由以上架构图看到,调度服务器,真实服务器三台机器都配置同一个虚拟ip,这会导致ip冲突的问题。解决方法: 设vip 虚拟地址 配在各自的虚口上lo 代理和真实都是一个地址都配在 虚拟网卡回环口上。

    wyq2070857323的博客 1695

    WINCC7.3破解文件

    WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

    代理服务器-LVS的NAT模式

    前面两个小节,我们介绍了LVS的相关概念和里面涉及到3种模式和算法。由于算法相对固定,并且Nginx里面也有类似的算法,所以下面2个小节,我们来讲讲里面的其中两种模式。

    1001

    数学建模模型总结

    这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

    LVS详解

    即linux虚拟服务器四层负载均衡基本上都会使用 LVS,据了解 BAT 等大厂都是 LVS 重度使用者,就是因为 LVS 非常出色的性能,能为公司节省巨大的成本。LVS,全称 Linux Virtual Server 是由国人章文嵩博士发起的一个开源的项目,在社区具有很大的热度,是一个基于四层、具有强大性能的反向代理服务器。它现在是标准内核的一部分。它具备可靠性、高性能、可扩展性和可操作性的特点,从而以低廉的成本实现最优的性能。LVS工作模式分为NAT模式、TUN模式、以及DR模式。

    wjy6_的博客 1157

    LVS的介绍与配置

    LVS的介绍与配置1. LVS简介2. lvs的三种工作模式2.1 第一种工作模式基于NAT模式的LVS模式负载均衡2.1.1LVS-NAT的优点与缺点2.2 第二种工作模式基于TUN的LVS负载均衡2.2.1 TUN的优点与缺点2.3 第三种工作模式基于DR的LVS负载均衡2.3.1 DR的优缺点3. LVS的八种调度方法3.1 静态调度方法:仅依据算法本身进行轮询调度3.2 动态调度方法:4. 配置LVS-NAT5. LVS-DR模式 1. LVS简介 Llvs是Linux Virtual Server

    此后如竟没有炬火,我便是唯一的光。 2112

    lvs虚拟服务器之LVS-NAT模式

    lvs虚拟服务器之LVS-NAT模式

    sky学linux的博客 1783

    LVS集群

    LVS:Linux Virtual Server,负载调度器,内核集成,章文嵩(花名正明), 阿里的四层SLB(Server Load Balance)是基于LVS+keepalived实现LVS 官网:http://www.linuxvirtualserver.org/阿里SLB和LVS:说明NATTUNDR优点端口转换WAN性能最好缺点性能瓶颈服务器支持隧道模式不支持跨网段真实服务器要求anyTunneling支持网络private(私网)

    2301_81272194的博客 1445

    Linux系统——LVS-DR群集部署及拓展

    LVS工作模式及其工作过程总结、LVS调度算法、IP隧道、直接路由DR、原理、搭建LVS-DR

    一坨小橙子的博客 1455

    LVS三种模式的区别及负载均衡算法

    LVS简介 LVS(Linux Virtual Server)即Linux虚拟服务器,是一个虚拟的服务器集群系统,由章文嵩博士在1998年5月成立,在linux2.6+后将lvs自动加入了kernel模块,我们看下lvs在我们日常的服务器架构所在的位置: 正向代理 只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理...

    you_ranxi的博客 510

    LVS负载均衡集群——NAT地址转换模式与DR直接路由

    Cluster,集群,群集由多台主机构成,但对外只表现为一个整体,只提供一个访问入口(域名或IP地址),相当于一台大型计算机。集群:同一个业务系统,部署在多台服务器上。集群中,每一台服务器实现的功能没有差别,数据和代码都是一样的。分布式:一个业务被拆成多个子业务,或者本身就是不同的业务,部署在多台服务器上。分布式中,每一台服务器实现的功能是有差别的,数据和代码也是不一样的,分布式每台服务器功能加起来,才是完整的业务。

    rmh0713的博客 1133

    比较LVS、Nginx、HAProxy三者的优缺点和调度算法的区别

    比较LVS、Nginx、HAProxy三者的优缺点和调度算法的区别 1 LVS LVS的优点: 1、抗负载能力强、工作在第4层仅作分发之用,没有流量的产生,这个特点也决定了它在负载均衡软件里的性能最强的;无流量,同时保证了均衡器IO的性能不会受到大流量的影响; 2、工作稳定,自身有完整的双机热备方案,如LVS+Keepalived和LVS+Heartbeat; 3、应用范围比较广,可以对所有应用做负载均衡; 4、配置性比较低,这是一个缺点也是一个优点,因为没有可太多配置的东西,所以并不需要太多接触,大大减少

    一直在努力学习的菜鸟 623

    Linux LVS集群技术详解与实战指南

    集群(Cluster):为解决某个特定问题将多台计算机组合起来形成的单个系统。CephGlusterFSFastDFSMogileFSLVS是“ Linux virtual server ”的缩写,为Linux虚拟服务器,是一个虚拟的服务器集群系统。LVS简单工作原理为用户请求LVS VIP,LVS根据转发方式和算法,将请求转发给后端服务器,后端服务器接收到请求,返回给用户。对于用户来说,看不到Web后端具体的应用。

    xiaqiqiupu的博客 1096

    Linux系统——LVS负载均衡群集

    LVS集群概述、企业群集分类、LVS架构、LVS集群术语、LVS工作模式及命令、LVS调度算法、ipvsadm工具、NAT模式LVS负载均衡部署

    一坨小橙子的博客 2104
    上一篇: 代理服务器-LVS介绍与安装
    下一篇: 代理服务器-LVS的NAT模式
    dessler
    博客等级 码龄20年 3057粉丝 434原创
    评论
    成就一亿技术人!
    拼手气红包6.0元
    还能输入1000个字符
     
     条评论被折叠 查看
    添加红包

    请填写红包祝福语或标题

    个

    红包个数最小为10个

    元

    红包金额最低5元

    当前余额3.43元 前往充值 >
    需支付:10.00元
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付元
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值