负载均衡集群 LVS 调度算法实战(一)|学习笔记

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
公网NAT网关,每月750个小时 15CU
简介: 快速学习负载均衡集群 LVS 调度算法实战

开发者学堂课程【LVS 负载均衡实战负载均衡集群 LVS 调度算法实战学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/553/detail/7633


负载均衡集群LVS调度算法实战(一)


内容介绍:

一、复习LVS的四种模式

二、LVS介绍

三,调度算法

四,实操演示


一、复习LVS 的四种模式

1、第一种为NAT模式

2、第二种为DR模式

3、第三种为tun模式

4、第四种为fullnat模式

Snat与dnat的比较:

/**

*Nat在iptable里面采取的是使用私有的地址将信息发送到互联网

*上。

与之对应的是SNAT,snat是将原地址进行了转换。

Snat适用*的场景是内网(私网地址)访问互联网,本质上是一个地址互换的

*过程。

请求报文如果替换的是原地址,那么这种模式就叫做snat,*如果替换的是目标地址,那么这种模式就叫做dnat。Dnat适用的

*场景是互联网用户访问局域网中的服务器(私网地址)。

**/Nat模型的特点:

/**

*请求报文时替换的是目标地址;请求报文与响应报文时都需经过vs,

*且支持端口映射。

VS上可以同时拥有两个地址,一个是vip(虚拟*地址),一个是dip;在nat模式中这两个地址都会被使用,其中,*dip是用于连接内网的,vip是用于连接外网的;此模式下的nat的*配置类似于路由器的配置。注意,nat模式下可以只配置一个网卡。

*dr模型下的数据报文进入到vs服务器。

Vs服务器会修改目标地址*(数据链路层),这个特性决定了它不能跨路由,故vs服务器与*rellserver之间是不能够存在路由器的,只能存在交换机(地理位置*相隔较近)。

在这个过程中,获取对方地址的方式是广播。Dr模型的*局限是无法修改端口,不支持端口映射。

**/


二、LVS 介绍

lvs-tun(隧道)模式

1.lvs-tun :

转发方式∶不修改请求报文的 IP 首部(源 IP 为 CIP,目标 IP 为 VIP),而在原 IP报文之外再封装一个 IP 首部(源IP是 DIP,目标IP是 RIP ),将报文发往挑选出的目标 RS; RS 直接响应给客户端(源IP是 VIP,目标 IP 是 CIP )

(1)DIP, VIP, RIP 都应该是公网地址

//DIP,VIP,RIP 不一定都是公网地址,VIP,RIP 可以是私网地址。

(2)RS 的网关一般不能指向 DIP

//RS 如果指向了 DIP,便失去了存在的意义。

(3)请求报文要经由 Director,但响应不能经由 Director

//Director 在此处指的就是vs服务器。

(4)不支持端口映射

//因为实际修改的只是 ip 头部,而不是数据报文的头部。

(5)RS 的 OS 须支持隧道功能

//RS 在收到端口后,理论上应该存在两个端口,ip 头部与数据

//报文头部,这时的 rs 会去掉一个,留下一个.但是这种模式,一//般的系统都不支持。

Tun模式辅助理解示意图:

image.png

/**

*客户端发送请求,到达lvs调度器;lvs 服务器存在两个地址,*一个是vip地址,另一个是 dip 地址;请求到达lvs服务器之*后,如果是 tainull 模式,该模式会在 src的位置对数据报文进*修改。该模式与以往的不同的是,它会在原有的地址上新建一*数据报文头部(dip rip1),这样就存在两个数据报文头部,这*会出现数据报文覆盖的问题。

新的 ip 报文在传送的过程中可能*经过路由器,这时我我们的后端服务器也必须配置一个对应的*vip 地址。

好处是可以实现跨机房,跨区域调度。回应数据报文*是否必须经过原路径返回?

答案是否定的,这时的数据报文可 *以经过其他的路由器回到客户端,都可以不经过lvs服务器。

*好处是可以实现跨机房,跨异地,跨区域的远程调度连接,如*一些大公司在全国各地都有自己的服务器来对外提供服务。

*tun 模式下的 rs 服务器还需进行部分特殊设置才可以。

**/

TUN模式IP包调度过程

image.png

/**

*如图所示,客户端发送请求后,经过lvs服务器之后,到达了 web

*端服务器,调度时会添加一个新的数据报文头部,到达 real server

*之后,real server 在回应时会把原来新加的报文头部删除掉,获取*初始的报文头部,然后直接回应。

图中绿色的线便是 real server

*通过另一条线路的回应过程。回应时时的源地址是 VIP,目标地址是*CIP。这样的好处是容错性高,进而实现异地容灾。

**/

lvs-fullnat模式

.lvs-fullnat :通过同时修改请求报文的源IP地址和目标IP地址进行转发

CIP -->DIP

VIP --> RIP

辅助理解示意图:

image.png

/**

*客户端发送请求在经过一级转换后,dip变成了原地址,rip变为了

*目标地址,特别注意与nat模式的区别,这里的cip被替换成了dip

*vip被替换成了rip中的某一个ip。

这样做的好处是跨异地处理(线*路之间可以加路由器)。区别是返回日志不同,替换地址不同。

**/

(1)VIP是公网地址,RIP和DIP是私网地址,且通常不在同一IP网络﹔因此,RIP的网关一般不会指向DIP

(2)RS收到的请求报文源地址是DIP,因此,只需响应给DIP;但Director还要将其发往Client

(3)请求和响应报文都经由 Director

(4)支持端口映射

//nat模式是系统内核默认支持的,fullnat 模式是系统内核默认不支//持的。nat 模式与 Fullnat 模式本质上的区别是一个只替换了原地//址,

//另一个即替换了原地址也替换了目标地址。

注意:此类型 kernel 默认不支持

LVS 工作模式总结:

VS/NAT

VS/TUN

VS/DR

Server

any

Tunneling

Non-arp device

Server network

private

LAN/WAN

LAN

Server number

low(10~20)

High(100)

High(100)

Server gateway

Load balancer

own router

Own router

1.lvs-nat与lvs-fullnat:请求和响应报文都经由 Director

lvs-nat : RIP 的网关要指向 DIP

lvs-fullnat : RIP 和 DIP 未必在同一IP网络,但要能通信

2.lvs-dr与lvs-tun:请求报文要经由 Director,但响应报文由 RS直接发往 Client

lvs-dr :通过封装新的 MAC 首部实现,通过 MAC 网络转发

lvs-tun :通过在原 IP 报文外封装新 IP 头实现转发,支持远距离通信

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
1月前
|
算法 数据可视化 测试技术
HNSW算法实战:用分层图索引替换k-NN暴力搜索
HNSW是一种高效向量检索算法,通过分层图结构实现近似最近邻的对数时间搜索,显著降低查询延迟。相比暴力搜索,它在保持高召回率的同时,将性能提升数十倍,广泛应用于大规模RAG系统。
137 10
HNSW算法实战:用分层图索引替换k-NN暴力搜索
|
6月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
1月前
|
机器学习/深度学习 缓存 算法
微店关键词搜索接口核心突破:动态权重算法与语义引擎的实战落地
本文详解微店搜索接口从基础匹配到智能推荐的技术进阶路径,涵盖动态权重、语义理解与行为闭环三大创新,助力商家提升搜索转化率、商品曝光与用户留存,实现技术驱动的业绩增长。
|
3月前
|
机器学习/深度学习 算法 文件存储
神经架构搜索NAS详解:三种核心算法原理与Python实战代码
神经架构搜索(NAS)正被广泛应用于大模型及语言/视觉模型设计,如LangVision-LoRA-NAS、Jet-Nemotron等。本文回顾NAS核心技术,解析其自动化设计原理,探讨强化学习、进化算法与梯度方法的应用与差异,揭示NAS在大模型时代的潜力与挑战。
858 6
神经架构搜索NAS详解:三种核心算法原理与Python实战代码
|
1月前
|
存储 人工智能 算法
从零掌握贪心算法Java版:LeetCode 10题实战解析(上)
在算法世界里,有一种思想如同生活中的"见好就收"——每次做出当前看来最优的选择,寄希望于通过局部最优达成全局最优。这种思想就是贪心算法,它以其简洁高效的特点,成为解决最优问题的利器。今天我们就来系统学习贪心算法的核心思想,并通过10道LeetCode经典题目实战演练,带你掌握这种"步步为营"的解题思维。
|
2月前
|
机器学习/深度学习 资源调度 算法
遗传算法模型深度解析与实战应用
摘要 遗传算法(GA)作为一种受生物进化启发的优化算法,在复杂问题求解中展现出独特优势。本文系统介绍了GA的核心理论、实现细节和应用经验。算法通过模拟自然选择机制,利用选择、交叉、变异三大操作在解空间中进行全局搜索。与梯度下降等传统方法相比,GA不依赖目标函数的连续性或可微性,特别适合处理离散优化、多目标优化等复杂问题。文中详细阐述了染色体编码、适应度函数设计、遗传操作实现等关键技术,并提供了Python代码实现示例。实践表明,GA的成功应用关键在于平衡探索与开发,通过精心调参维持种群多样性同时确保收敛效率
|
2月前
|
机器学习/深度学习 边缘计算 人工智能
粒子群算法模型深度解析与实战应用
蒋星熠Jaxonic是一位深耕智能优化算法领域多年的技术探索者,专注于粒子群优化(PSO)算法的研究与应用。他深入剖析了PSO的数学模型、核心公式及实现方法,并通过大量实践验证了其在神经网络优化、工程设计等复杂问题上的卓越性能。本文全面展示了PSO的理论基础、改进策略与前沿发展方向,为读者提供了一份详尽的技术指南。
粒子群算法模型深度解析与实战应用
|
9月前
|
人工智能 编解码 算法
DeepSeek加持的通义灵码2.0 AI程序员实战案例:助力嵌入式开发中的算法生成革新
本文介绍了通义灵码2.0 AI程序员在嵌入式开发中的实战应用。通过安装VS Code插件并登录阿里云账号,用户可切换至DeepSeek V3模型,利用其强大的代码生成能力。实战案例中,AI程序员根据自然语言描述快速生成了C语言的base64编解码算法,包括源代码、头文件、测试代码和CMake编译脚本。即使在编译错误和需求迭代的情况下,AI程序员也能迅速分析问题并修复代码,最终成功实现功能。作者认为,通义灵码2.0显著提升了开发效率,打破了编程语言限制,是AI编程从辅助工具向工程级协同开发转变的重要标志,值得开发者广泛使用。
8729 71
DeepSeek加持的通义灵码2.0 AI程序员实战案例:助力嵌入式开发中的算法生成革新
|
缓存 负载均衡 算法
slb支持多种负载均衡算法
slb支持多种负载均衡算法
398 6
|
7月前
|
负载均衡 算法 关系型数据库
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决方案
本文深入探讨 MySQL 集群架构负载均衡的常见故障及排除方法。涵盖请求分配不均、节点无法响应、负载均衡器故障等现象,介绍多种负载均衡算法及故障排除步骤,包括检查负载均衡器状态、调整算法、诊断修复节点故障等。还阐述了预防措施与确保系统稳定性的方法,如定期监控维护、备份恢复策略、团队协作与知识管理等。为确保 MySQL 数据库系统高可用性提供全面指导。

热门文章

最新文章