迈向技术巅峰,领略一下LVS工作机制和原理介绍

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介: 迈向技术巅峰,领略一下LVS工作机制和原理介绍

LVS 工作原理分析


一、大致介绍

1、官方站点:http://www.linuxvirtualserver.org;
2、用过LVS的童鞋,其实大家的目的性很明确,就是需要通过LVS提供的负载均衡技术和Linux操作系统实现一个高性能,高可用的服务器群集;
3、并且这个集群具有良好的可靠性、可扩展性和可操作性,从而以低廉的成本实现最优的服务性能,这也是大多数中小型公司青睐的架构;
复制代码




二、LVS体系架构


2.1 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地址。
复制代码



2.2 请求通讯路径

用户在终端发起请求 
--> 负载均衡层(Load Balancer)
--> 服务器群组层(Server Arrary)
--> 共享存储层(Shared Storage)
复制代码



2.3 负载均衡层(Load Balancer)

1、处于集群最前端,一台或多台构成负载调度,俗称负载调度器(Director Server);
2、分发请求给服务器集群组层的应用服务器(Real Server);
3、监控应用服务器健康状况,动态从LVS路由表中剔除、添加;
4、也可以兼职Real Server的身份;
复制代码



2.4 服务器群组层(Server Arrary)

1、一台或多台实际运行的应用服务器构成;
2、每个Real Server关联时通过有效网络互连;
复制代码



2.5 共享存储层(Shared Storage)

1、提供共享存储空间和内容一致性的存储区域;
复制代码




三、LVS模式: NAT


3.1 原理

多目标IP的DNAT,通过将请求报文中的目标地址和目标端口修改为选出来的RS的RIP和PORT实现转发。
复制代码


3.2 流程分析

1.当用户请求到达DS后,此时请求的数据报文会先到内核空间的PREROUTING链,此时报文的源IP为CIP,目标IP为VIP;
|源地址|目的地址|
---------------
|CIP  |VIP    |
2、PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链;
3、IPVS比对数据包请求的服务是否为集群服务,若是,修改数据包的目标IP地址为后端服务器IP,后将数据包发至POSTROUTING链。 此时报文的源IP为CIP,目标IP为RIP;
|源地址|目的地址|
---------------
|CIP  |RIP    |
4、POSTROUTING链通过选路,将数据包发送给RS;
5、RS比对发现目标为自己的IP,开始构建响应报文发回给DS,此时报文的源IP为RIP,目标IP为CIP;
|源地址|目的地址|
---------------
|RIP  |CIP    |
6、Director Server在响应客户端前,此时会将源IP地址修改为自己的VIP地址,然后响应给客户端,此时报文的源IP为VIP,目标IP为CIP;
|源地址|目的地址|
---------------
|VIP  |CIP    |
复制代码


3.3 特性

1、要求DS具备双网卡,VIP应对公网,而DIP必须和RIP在同一个网段内;
2、RIP、DIP应该使用私网地址,同在一个网段中,且RS的网关要指向DIP;
3、请求和响应报文都要经由DS转发,极高负载中,DS可能会成为系统瓶颈;
4、RS可以使用任意OS;
复制代码


3.4 配置大致步骤讲解(代码就不详细粘贴了)

// lvs-server
1、配置路由转发;
2、配置NAT模式;
3、配置转发到RIP规则;
// lvs-client
1、配置RS网关执行DIP;
复制代码




四、LVS模式: TUN


4.1 原理

在原有的IP报文外再次封装多一层IP首部,内部IP首部(源地址为CIP,目标IIP为VIP),外层IP首部(源地址为DIP,目标IP为RIP)。
复制代码


4.2 流程分析

1、当用户请求到达DS后,此时请求的数据报文会先到内核空间的PREROUTING链,此时报文的源IP为CIP,目标IP为VIP;
|源地址|目的地址|
---------------
|CIP  |VIP    |
2、PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链;
3、IPVS比对数据包请求的服务是否为集群服务,若是,在请求报文的首部再次封装一层IP报文,封装源IP为为DIP,目标IP为RIP。然后发至POSTROUTING链。 此时源IP为DIP,目标IP为RIP;
|IP首部源地址|IP首部目的地址|源地址|目的地址|
---------------------------------------
|DIP       |RIP         |CIP  |VIP    |
4、POSTROUTING链根据最新封装的IP报文,将数据包发至RS(因为在外层封装多了一层IP首部,所以可以理解为此时通过隧道传输),此时源IP为DIP,目标IP为RIP;
5、RS接收到报文后发现是自己的IP地址,就将报文接收下来,拆除掉最外层的IP后,会发现里面还有一层IP首部,而且目标是自己的tun0接口VIP,那么此时RS开始处理此请求,处理完成之后,通过tun0接口送出去向外传递,此时的源IP地址为VIP,目标IP为CIP;
|源地址|目的地址|
---------------
|VIP  |CIP    |
6、响应报文最终送达至客户端;
复制代码


4.3 特性

1、DIP、VIP、RIP都应该是公网地址;
2、RS的网关不能,也不可能指向DIP;
3、RS必须支持IP隧道;
复制代码


4.4 配置大致步骤讲解(代码就不详细粘贴了)

// lvs-server
1、将VIP配置到tun0网卡上,并配置tun0隧道0网卡为独立网段;
2、添加隧道ip路由表,防止路由短缺;
3、配置TUN模式;
4、配置转发到RIP规则;
// lvs-client
1、将VIP配置到tun0网卡上,配置tun0隧道0网卡为独立网段;
2、添加隧道ip路由表,防止路由短缺;
3、配置tun0/all忽略arp_ignore,宣告arp_announce;
复制代码





五、LVS模式: DR


5.1 原理

通过为请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在的接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目标IP/PORT均保持不变;
复制代码


5.2 流程分析

1、当用户请求到达DS后,此时请求的数据报文会先到内核空间的PREROUTING链,此时报文的源IP为CIP,目标IP为VIP;
|源地址   |目的地址   |
---------------------
|CIP     |VIP       |
---------------------
|源MAC地址|目的MAC地址|
---------------------
|CIP-MAC |VIP-MAC   |
2、PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链;
3、IPVS比对数据包请求的服务是否为集群服务,若是,将请求报文中的源MAC地址修改为DIP的MAC地址,将目标MAC地址修改RIP的MAC地址,然后将数据包发至POSTROUTING链。 此时的源IP和目的IP均未修改,仅修改了源MAC地址为DIP的MAC地址,目标MAC地址为RIP的MAC地址;
|源地址   |目的地址   |
---------------------
|CIP     |VIP       |
---------------------
|源MAC地址|目的MAC地址|
---------------------
|DIP-MAC |RIP-MAC   |
4、由于DS和RS在同一个网络中,所以是通过二层来传输。POSTROUTING链检查目标MAC地址为RIP的MAC地址,那么此时数据包将会发至RS。
5、RS发现请求报文的MAC地址是自己的MAC地址,就接收此报文。处理完成之后,将响应报文通过lo接口传送给eth0网卡然后向外发出,此时的源IP地址为VIP,目标IP为CIP;
|源地址|目的地址|
---------------
|VIP  |CIP    |
6、 响应报文最终送达至客户端;
复制代码


5.3 特性

1、RIP可以是公网地址,也可以是私网地址;
2、RIP、DIP需要在同一个IP网段;
3、RIP的网关不能指向DIP,以确保响应报文不会经由DS,而是直接通过RS发往Client;
复制代码



5.4 配置大致步骤讲解(代码就不详细粘贴了)

// lvs-server
1、网卡可配置多个ip,将VIP配置到调度器eth0:0的一个端口上;
2、添加eth0:0路由表,防止路由短缺;
3、配置DR模式;
4、配置转发到RIP规则;
// lvs-client
1、将VIP配置到回环接口的一个端口上;
2、添加lo:0路由表,防止路由短缺;
3、配置lo/all忽略arp_ignore,宣告arp_announce;




相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
4月前
|
负载均衡 网络协议 关系型数据库
一口把LVS、Nginx及HAProxy工作原理讲清楚了。(附图)
一口把LVS、Nginx及HAProxy工作原理讲清楚了。(附图)
|
4月前
|
负载均衡 监控 网络协议
在Linux中,LVS-DR模式原理是什么?
在Linux中,LVS-DR模式原理是什么?
|
4月前
|
负载均衡 算法 Linux
在Linux中,LVS-NAT模式的原理是什么?
在Linux中,LVS-NAT模式的原理是什么?
|
7月前
|
缓存 负载均衡 应用服务中间件
【分布式技术专题】「分析Web服务器架构」Tomcat服务器的运行架构和LVS负载均衡的运行机制(修订版)
在本章内容中,我们将深入探讨 Tomcat 服务器的运行架构、LVS 负载均衡的运行机制以及 Cache 缓存机制,并提供相应的解决方案和指导。通过理解这些关键概念和机制,您将能够优化您的系统架构,提高性能和可扩展性。
314 4
【分布式技术专题】「分析Web服务器架构」Tomcat服务器的运行架构和LVS负载均衡的运行机制(修订版)
|
7月前
|
缓存 负载均衡 应用服务中间件
百度搜索:蓝易云【LVS/Nginx/HAProxy原理及应用场景介绍】
总结:LVS、Nginx和HAProxy都是常见的负载均衡技术和工具。它们能够分担系统负载、提高可用性和性能,并在高负载环境下实现请求分发和流量管理。选择适合自己需求的负载均衡方案,可以根据具体应用场景和要求进行评估和决策。
81 4
|
存储 运维 负载均衡
【分布式技术专题】「LVS负载均衡」全面透析Web基础架构负载均衡LVS机制的原理分析指南
【分布式技术专题】「LVS负载均衡」全面透析Web基础架构负载均衡LVS机制的原理分析指南
301 0
【分布式技术专题】「LVS负载均衡」全面透析Web基础架构负载均衡LVS机制的原理分析指南
|
负载均衡 网络协议 算法
LVS负载均衡(三种工作模式、原理、实验)
LVS负载均衡(三种工作模式、原理、实验)
651 0
|
负载均衡 网络协议 算法
LVS负载均衡(三种工作模式、原理、实验)
本篇内容记录了LVS负载均衡的一些相关知识。
468 0
LVS负载均衡(三种工作模式、原理、实验)
|
人工智能 编解码 监控
|
3月前
|
运维 负载均衡 网络协议
LVS+Keepalived 负载均衡
LVS+Keepalived 负载均衡
74 8
LVS+Keepalived 负载均衡
下一篇
无影云桌面