LVS的四种模式和十种调度算法简介

LVS的四种模型和十种调度算法

LVS简介

LVS:Linux Virtual Server,负载调度器,内核集成,章文嵩(花名 正明)

LVS的工作原理

VS根据请求报文的目标IP和目标协议及端口将其调度转发至某RS,根据调度算法来挑选RS

LVS集群类型的专业术语

VS:Virtual Server 虚拟的服务器

RS:Real Server(lvs) 真正提供服务的服务器
CIP:Client IP 客户端的IP

VIP: Virtual serve IP LVS服务器针对互联网的客户端设置的IP,是虚拟IP

DIP: Director IP 局域网内LVS服务器设置的IP
RIP: Real server IP 真实服务器的IP

LVS服务器,客户端访问流程图

LVS-NAT模式

本质是多目标IP的DNAT,通过将请求报文中的目标地址和目标端口修改为某挑出的RS的RIP和PORT实现转发

(1)RIP和DIP应在同一个IP网络,且应使用私网地址;RS的网关要指向DIP

(2)请求报文和响应报文都必须经由Director转发,Director易于成为系统瓶颈

(3)支持端口映射,可修改请求报文的目标PORT
(4)VS必须是Linux系统,RS可以是任意OS系统

LVS-NAT的实现逻辑


如上图所示,客户端通过路由去访问LVS对外开放的VIP,当LVS收到请求报文时,会将其拦截下来,通过自身的DIP将请求报文传给其中的一台RS服务器(DIP和RIP需要在同一个局域网,同一个网段)。RS服务器收到请求报文后,发送响应报文通过LVS服务器发送给客户端(相当于怎么来的就怎么回去)。在用户访问的过程中,LVS服务器实际上是对VIP进行了地址转换,转换成了正式服务器的IP,从而实现互相通讯。

NAT模式IP包调度过程

NAT模式内部的工作原理图

LVS服务器之所以能实现将发送给自己的数据包转交给其他主机,是因为LVS是潜伏在钩子函数INPUT这里,一旦发现有用户访问的数据包通过PREROUTING后发送给INPUT,LVS会将其截获下来,改变目标地址为真实服务器的地址,转而发给POSTROUTING,从而发送给真实服务器,实现调度转发的功能。

LVS-NAT模式的优缺点

1、NAT技术将请求的报文和响应的报文都需要通过LVS进行地址改写,因此网站访问量比较大的时候LVS负载均衡调度器有比较大的瓶颈,一般要求最多之能10-20台节点

2、只需要在LVS上配置一个公网IP地址就可以了。(也可以通过iptables规则实现NAT,这样私网地址也可以的)

3、每台内部的节点服务器的网关地址必须是调度器LB的内网地址。(如果LVS的DIP和RIP在同一个局域网并且在同一个网段,不需要指定网关)

4、NAT模式支持对IP地址和端口进行转换。即用户请求的端口和真实服务器的端口可以不一致

LVS-DR模式(直接路由)

LVS-DR:Direct Routing,直接路由,LVS默认模式,应用最广泛,通过为请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在的接口MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目标IP/PORT均保持不变

DR模型,请求报文,和响应报文走的不是同一个路径,请求报文经过LVS发送给RS,响应报文在回应的时候,不需要原路返回,它可以直接返回给客户端。

这种模型带来的最大的好处就是LVS服务i去的压力变小了。因为只有请求报文需要通过VS服务器发送给RS服务器,而RS服务器的响应报文是直接发送给客户端的,不需要经过LVS服务器。而且一般请求报文相对响应报文来说要小的多。这样就使得LVS的服务器的压力小了很多。

LVS-DR模式图解

因为RS服务器需要直接将请求报文发送给客户端,而客户端访问的IP是VIP,只有来自VIP的包客户端才会接收,所以我们需要在RS服务器上也配置VIP。但是这样的话LVS和RS都有了一样的IP,这样就会带来地址冲突的问题。我们需要解决地址冲突的问题。

我们需要在RS上修改内核参数以限制arp通告及应答级别
/proc/sys/net/ipv4/conf/all/arp_ignore
/proc/sys/net/ipv4/conf/all/arp_announce

DR模型特点:LVS的压力小,通过改变MAC地址来实现调度转发,不能映射端口号。

LVS-DR模式数据包流转的过程

LVS-TUN模式

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

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

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

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

(4) 不支持端口映射

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

LVS-TUN体系结构

LVS-TUN的IP包调度过程

LVS-FULLNAT模式

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

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

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

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

(4) 支持端口映射

LVS工作模式总结

LVS的十种调度模式

LVS的调度又分为静态方法和动态方法。

静态方法

静态方法:仅根据算法本身进行调度

1、RR:roundrobin,轮询,即按顺序分配请求,即使某个机器性能不好,或者宕机,也会将请求分配给这台主机

2、WRR:Weighted RR,加权轮询,跟RR的区别再于它可以通过对每个RS服务器去设置权重,来实现依照服务器性能的优略分配任务,性能好的分配任务多点,性能差的分配任务少点。也会存在RR一样的缺点

3、SH:Source Hashing,实现session sticky,源IP地址hash;将来自于同一个IP地址的请求始终发往第一次挑中的RS,从而实现会话绑定。

4、DH:Destination Hashing;目标地址哈希,第一次轮询调度至RS,后续将发往同一个目标地址的请求始终转发至第一次挑中的RS,典型使用场景是正向代理缓存场景中的负载均衡,如:宽带运营商。

动态方法

动态方法:主要根据每RS当前的负载状态及调度算法进行调度Overhead=value较小的RS将被调度

1、LC:least connections 适用于长连接应用
Overhead=activeconns*256+inactiveconns

2、WLC:Weighted LC,默认调度方法

Overhead=(activeconns*256+inactiveconns)/weight

3、SED:Shortest Expection Delay,初始连接高权重优先
Overhead=(activeconns+1)*256/weight

4、NQ:Never Queue,第一轮均匀分配,后续SED

5、LBLC:Locality-Based LC,动态的DH算法,使用场景:根据负载状态实现正向代理

6、LBLCR:LBLC with Replication,带复制功能的LBLC,解决LBLC负载不均衡

问题,从负载重的复制到负载轻的RS

Overhead 表示优先级、

activeconns 正处于连接的数量

inactiveconns 非活动连接的数量

weight 权重

LVS的优缺点

优点:

Lvs属于内核级的功能,它的并发量是相当大的,能达到几百万的并发

缺点:
没有所谓的高可用功能,不能检查后端服务器的健康性,(后端服务器宕机了,lvs是没有办法去管理的)

原文地址:https://blog.51cto.com/14451148/2445224

时间: 2024-11-05 11:45:13

LVS的四种模式和十种调度算法简介的相关文章

LVS的四种模式的实现

LVS 是四层负载均衡,也就是说建立在 OSI 模型的第四层--传输层之上,传输层上有我们熟悉的 TCP/UDP,LVS 支持 TCP/UDP 的负载均衡.LVS 的转发主要通过修改 IP 地址(NAT 模式,分为源地址修改 SNAT 和目标地址修改 DNAT).修改目标 MAC(DR 模式)来实现. 那么为什么 LVS 是在第四层做负载均衡?首先 LVS 不像 HAProxy 等七层软负载面向的是 HTTP 包,所以七层负载可以做的 URL 解析等工作,LVS 无法完成.其次,某次用户访问是与

Cluster了解+LB{ LVS(四种模式)+ipvs+lvs持久连接 }

Cluster: 系统扩展的两种思路: scale up:向上扩展 -- 性能更好的主机,替换旧的主机 scale out:横向扩展 -- 添加服务器(但是服务是可以分开的,独立的) cookie:服务器端生成一个cookie-id,发送给客户端,客户端每次访问,都会将cookie发送给服务器端 session:服务器端会比对cookie和seesion的对应情况(服务器内存中) 实现 LB(负载均衡)-- 问题所在 1.DNS: 不要使用dns 去实现 LB,因为DNS 解析会缓存,所以效果很

LVS概念类型及三种工作模式和十种调度算法介绍

一.LVS概念 LVS(Linux Virtual Server):Linux 虚拟服务器 LVS是个负载均衡设备,它不提供任何服务,用户请求到这里的时候,它是将客户需求转发至后端真正提供服务的服务,所以说后端的服务称作real server.LVS分为两段,前一段称为ipvsadm(管理集群服务的命令行工具),后面一段叫做ipvs(内核模块)[提示:LVS和iptables不能同时使用]. 二.LVS类型 LB(Load Balancing):负载均衡集群 特性:为了增加能力能力 HA(Hig

Activity生命周期+四种模式——枯燥重要(五)

Activity生命周期+四种模式 了解android系统的四大组件 掌握Activity的生命周期 LogCat的使用 Android系统有四个重要的组件,分别是 Activity Service BroadcastReceiver ContentProvider Activity是Android程序的呈现层,显示可视化的用户 界面,并接收与用户交互所产生的界面事件 Android应用程序可以包含一个或多个Activity,一般在 程序启动后会呈现一个Activity,用于提示用户程序已经 正

辛星笔记云计算第四篇即云的四种模式

虽然从技术或者架构角度看,云计算比较单一,但是在实际情况下,为了适应用户不同的需求,它会演变为不同的模式.在NIST(National  Institue  of  Standards  and  Technology,美国国家标准技术研究院)的名为"The  NIST Definition  of  Cloud Computing"的关于云计算概念的文档中,定义了云的四种模式,分别是:公有云.私有云.混合云和行业云. 公有云: (1)公有云是现在最主流也是最受欢迎的云计算模式.它是一

oracle数据库的停止(四种模式)

数据库的停止(四种模式)1.正常停库:shutdown normal = shutdown普通用户的连接不允许建立等待查询结束等待事务结束产生检查点(数据同步)关闭联机日志和数据文件关闭控制文件关闭实例 2.事务级停库: shutdown transactional普通用户的连接不允许建立查询被终止等待事务结束产生检查点(数据同步)关闭联机日志和数据文件关闭控制文件关闭实例 3.立即停库: shutdown immediate (生产库最常用的停库方式)普通用户的连接不允许建立查询被终止事务被回

LACP和PAgP的四种模式

PAgP的四种模式 模式 含义 开启(on) 端口不进行协商,直接形成以太网通道:在这种模式下,对端必须也是on模式,以太网通道才能正常工作. 关闭(off) 阻止端口形成以太网通道 自动(auto) 在自动模式时,被动的监听,不主动发起协商,等待PAgP协商请求数据包,当出现请求时才进行以太网通道的协商. 企望(desirable) 这种模式主动发起请求对交换机进行以太网通道的协商. LACP的四种模式 模式 含义 开启(on) 端口不进行协商,直接形成以太网通道:在这种模式下,对端必须也是o

ThinkPHP教程_PHP框架之ThinkPHP(二)【URL路径访问与模块控制器、URL四种模式、PATHINFO的两种模式、模板与控制器之间的关系】

一.URL路径访问与模块控制器 URL 模块(控制器) 动作(方法) 即以上三者之间的关系URL:http://127.0.0.1/projectName/index.php/模块/动作 1.ThinkPHP规定,两点 ·第一.所有的主入口文件默认访问index控制器(模块) ·第二.所有的控制器默认执行index方法(动作) 特别强调一下,以上两点是独立的!也就是说"所有的主入口文件默认访问index控制器,并执行默认执行index方法"是不准确的 那么,http://127.0.0

小知识:SPI四种模式区别【转】

转自:http://home.eeworld.com.cn/my/space-uid-80086-blogid-119198.html spi四种模式SPI的相位(CPHA)和极性(CPOL)分别可以为0或1,对应的4种组合构成了SPI的4种模式(mode) Mode 0 CPOL=0, CPHA=0 Mode 1 CPOL=0, CPHA=1Mode 2 CPOL=1, CPHA=0 Mode 3 CPOL=1, CPHA=1 时钟极性CPOL: 即SPI空闲时,时钟信号SCLK的电平(1:空