js333 > 计算机互联网 > LVS类型的介绍以及LVS的调度方法,集群系列二

原标题:LVS类型的介绍以及LVS的调度方法,集群系列二

浏览次数:191 时间:2019-11-09

群集也称集群。在实验之前,首先要来了解一下群集的相关知识。

  当一个director收到一个进来的请求,发现其访问的是一个集群服务,于是就根据某种标准,从后端的服务器节点选择一个来进行请求的响应,这种选择的机制就是lvs调度算法。
(1)静态调度方法  fixed  scheduling
      不关心当前连接的活动和非活动状态,不检查realservers的连接状态
   相应算法:
   1,轮叫调度(Round-Robin Scheduling)
轮叫调度算法就是以轮叫的方式依次将请求调度不同的服务器,然后进行相应的处理,这种算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。
   2,加权轮叫调度(Weighted Round-Robin Scheduling)
加权轮调算法用于区分后端服务器响应能力,权重越大分配的连接越多,可以解决服务器间性能不一的情况,它用相应的权值表示服务器的处理性能,服务器的缺省权值为1。假设服务器A的权值为1,B的权值为2,则表示服务器B的处理性能是A的两倍。它是按权值的高低和轮叫方式分配请求到各服务器,权值高的服务器先收到的连接,权值高的服务器比权值低的服务器处理更多的连接,相同权值的服务器处理相同数目的连接数。
   3,目标地址散列调度(Destination Hashing Scheduling)
目标地址hash算法以目标地址为标准,针对目标地址的请求进行定向转发,能够实现来自同一用户的同一请求转发到同一台服务器上(基于缓存的架构,能够提高缓存的命中率),它通过一个散列(Hash)函数将一个目标IP地址映射到一台服务器。目标地址散列调度算法先根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
  4,源地址散列调度(Source Hashing Scheduling)
源地址hash ,以源地址为标准,将来自同一地址的用户转发给同一网络,算法正好与目标地址散列调度算法相反,它根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。它采用的散列函数与目标地址散列调度算法的相同。它的算法流程与目标地址散列调度算法的基本相似。在实际应用中,源地址散列调度和目标地址散列调度可以结合使用在防火墙集群中,它们可以保证整个系统的唯一出入口。
   静态调度算法的缺陷:不能考虑后台服务器当前的状态                             
(2)动态调度方法   dynamic  scheduling
    优点:能够基于后台服务器当前的活动连接数,进行请求的分配,更合理,避免了一台服务器负载太多,而另外的服务器处于闲置状态。
     两种标准:
         非活动状态的连接(但仍在连接状态)
         活动状态的连接数
      例:ssh,telnet均是基于状态的连接,需要实时进行检测连接的状态,而hhtp服务则是基于无状态的连接
     相应的算法:
      1,最小连接调度(Least-Connection Scheduling)
最少连接调度是把新的连接请求分配到当前连接数最小的服务器,它通过服务器当前所活跃的连接数来估计服务器的负载情况。调度器需要记录各个服务器已建立连接的数目,当一个请求被调度到某台服务器,其连接数加1;当连接中止或超时,其连接数减一。同时检查非活动状态连接数和活动状态连接数,基于overhead决定,谁的overhead小就会接受下一次请求。
        例:overhead=当前活动状态的连接数*256+当前处于非活动状态 
      2,加权最小连接调度(Weighted Least-Connection Scheduling)  
加权最少连接数是最小连接调度的超集,各个服务器用相应的权值表示其处理性能。服务器的缺省权值为1,系统管理员可以动态地设置服务器的权值。加权最小连接调度在调度新连接时尽可能使服务器的已建立连接数和其权值成比例,是最常用的算法。        例:overhead=(当前活动状态的连接数*256+当前处于非活动状态的连接数)/权重
      3,最短的期望的延迟(Shortest Expected Delay Scheduling SED)  
最短期望延迟,是对wlc算法的一种改进,不查看非状态连接数,而且在计算overhead时要把当前的活动状态连接数加一。
      例:overhead=((当前活动状态的连接数+1)*256)/权重
      4,最少队列调度(Never Queue Scheduling NQ) 
最少队列调度不查看非活动连接数,只查看当前的活动状态,保证主机不会闲置;无需队列。如果有台realserver的连接数=0就直接分配过去,不需要在进行sed运算。
      5,基于局部性的最少链接(Locality-Based Least Connections Scheduling)
 基于局部性的最少链接算法和dh相似,是动态的算法,考虑后台的实际情况进行轮调,支持权重,在wlc的基础上;目前主要用于Cache集群系统,因为在Cache集群中客户请求报文的目标IP地址是变化的。这里假设任何后端服务器都可以处理任一请求,算法的设计目标是在服务器的负载基本平衡情况下,将相同目标IP地址的请求调度到同一台服务器,来提高各台服务器的访问局部性和主存Cache命中率,从而整个集群系统的处理能力。LBLC调度算法先根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于其一半的工作负载,则用“最少链接”的原则选出一个可用的服务器,将请求发送到该服务器。
      6,带复制的基于局部性最少链接(Locality-Based Least Connections with Replication Scheduling)
带复制的基于局部性最少链接也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。它与LBLC算法的不同之处是它要维护从一个目标IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。对于一个“热门”站点的服务请求,一台Cache 服务器可能会忙不过来处理这些请求。这时,LBLC调度算法会从所有的Cache服务器中按“最小连接”原则选出一台Cache服务器,映射该“热门”站点到这台Cache服务器,很快这台Cache服务器也会超载,就会重复上述过程选出新的Cache服务器。这样,可能会导致该“热门”站点的映像会出现在所有的Cache服务器上,降低了Cache服务器的使用效率。LBLCR调度算法将“热门”站点映射到一组Cache服务器(服务器集合),当该“热门”站点的请求负载增加时,会增加集合里的Cache服务器,来处理不断增长的负载;当该“热门”站点的请求负载降低时,会减少集合里的Cache服务器数目。这样,该“热门”站点的映像不太可能出现在所有的Cache服务器上,从而提供Cache集群系统的使用效率。LBLCR算法先根据请求的目标IP地址找出该目标IP地址对应的服务器组;按“最小连接”原则从该服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器;若服务器超载;则按“最小连接”原则从整个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的程度。
作者 “痕久远”

LVS类型的介绍以及LVS的调度方法

一、LVS概念

  1. 类型

...

LVS三种类型的比较:

LVS(Linux Virtual Server):Linux 虚拟服务器

1)LB load balancing 负载均衡2)HA high available 高可用3) HP 高性能LB

类型
属性
LVS-NAT(最简单)
网络地址转换
LVS-DR(最常用)
直接路由
LVS-TUN
IP隧道
realserver和director是否可在同一网络中
在同一子网中
在同一物理网络中(基于MAC地址转发)
可在不同的物理网络中,也可以在不同的地域
RIP是私有地址还是公网地址
一般来说是私有地址
公网地址
一定不是私有地址
director是否同时处理入站和出站数据
同时处理入站和出站数据
只处理入站请求
只处理入站请求
realserver的网关是否指向DIP
realserver的网关指向DIP
realserver的网关不能指向DIP
realserver的网关不能指向DIP
是否支持端口映射
支持端口映射
不支持端口映射
不支持端口映射
realserver是否可以是任意操作系统
可以是任意的OS
可以是大多数的操作系统(OS支持一个网卡配置多个IP,隔离realserver广播)
仅可是那些支持IP隧道协议的OS
其他方面
director很容易成为系统瓶颈
性能优于LVS-NAT

      LVS是个负载均衡设备,它不提供任何服务,用户请求到这里的时候,它是将客户需求转发至后端真正提供服务的服务,所以说后端的服务称作real server。LVS分为两段,前一段称为ipvsadm(管理集群服务的命令行工具),后面一段叫做ipvs(内核模块)【提示:LVS和iptables不能同时使用】。

分发器 director

 

金沙js333娱乐场 ,二、LVS类型

硬件实现:F5

lvs调度方法总的分为两大类:

      LB(Load Balancing):负载均衡集群

软件实现:squid,lvs(linux virtual servr)

1.静态调度方法

特性:为了增加能力能力

Squid是七层转发,lvs是四层转发

2.动态调度方法

      HA(High Availability):高可用集群

四层转发:ip 协议端口

其中静态调度方法又分为:

特性:提供服务的可用性(一年在线时间达到99.999%才行)

七层转发:squid websql

(1).Round-Robin : 轮叫,简称RR。轮叫调度就是以轮叫的方式依次将请求调度不同的服务器,即每次调度执行i = (i + 1) mod n,并选出第i台服务器。算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。轮叫调度算法假设所有服务器处理性能均相同,不管服务器的当前连接数和响应速度。该算法相对简单,不适用于服务器组中处理性能不一的情况,而且当请求服务时间变化比较大时,轮叫调度算法容易导致服务器间的负载不平衡。

计算方法:在线时间/(在线时间/故障处理时间)

2.调度算法:

(2).Weighted Round-Robin : 加权轮叫,简称WRR。该算法可以解决服务器间性能不一的情况,它用相应的权值表示服务器的处理性能,服务器的缺省权值为1。假设服务器A的权值为1,B的权值为2,则表示服务器B的处理性能是A的两倍。加权轮叫调度算法是按权值的高低和轮叫方式分配请求到各服务器。权值高的服务器先收到的连接,权值高的服务器比权值低的服务器处理更多的连接,相同权值的服务器处理相同数目的连接数。

      HP([HPC]High Performance):高性能集群

当一个director收到一个访问集群服务的请求,选择的机制就是lvs调度算法。

(3).Destination Hashing : 目标地址散列,简称DH。目标地址散列调度算法先根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空,主要应用于缓存服务器。

特性:提供服务的性能

(1)静态调度方法 fixed scheduling

(4).Source Hashing : 源地址散列,简称SH。源地址散列调度算法正好与目标地址散列调度算法相反,它根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。它采用的散列函数与目标地址散列调度算法的相同。

三、LVS组成结构(负载均衡实现方案)

不关心当前连接的活动和非活动状态,不检查realservers的连接状态

动态调度方法又分为:

基于DNS域名轮流解析的方法

相应算法:

(1).Least Connections : 最少链接,简称LC。该调度是把新的连接请求分配到当前连接数最小的服务器。最小连接调度是一种动态调度算法,它通过服务器当前所活跃的连接数来估计服务器的负载情况。调度器需要记录各个服务器已建立连接的数目,当一个请求被调度到某台服务器,其连接数加1;当连接中止或超时,其连接数减1。

基于客户端调度访问的方法

1,轮叫调度(Round-RobinScheduling)

计算当前realserver 的负载情况计算方法:active*256+inactive=overhead。

基于应用层系统负载的调度方法

轮叫调度算法就是以轮叫的方式依次将请求调度不同的服务器,然后进行相应的处理,这种算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。

(2).Weighted Least Connections : 加权最少链接,简称WLC。加权最小连接调度是最小连接调度的超集,各个服务器用相应的权值表示其处理性能。服务器的缺省权值为1,系统管理员可以动态地设置服务器的权值。加权最小连接调度在调度新连接时尽可能使服务器的已建立连接数和其权值成比例。计算当前realserver 的负载情况计算方法:(active*256+inactive)/weight=overhead。

基于IP地址的调度方法

2,加权轮叫调度(WeightedRound-Robin Scheduling)

 

其中基于IP的负载调度算法中,IP负载均衡技术是执行效率最高的

加权轮调算法用于区分后端服务器响应能力,权重越大分配的连接越多,可以解决服务器间性能不一的情况,它用相应的权值表示服务器的处理性能,服务器的缺省权值为1。它是按权值的高低和轮叫方式分配请求到各服务器,权值高的服务器先收到的连接,权值高的服务器比权值低的服务器处理更多的连接,相同权值的服务器处理相同数目的连接数。

(3).Shortest Expected Delay Scheduling : 最短的期望的延迟,简称SED。分配一个接踵而来的请求以最短的期望的延迟方式到服务器。

四、LVS十种调度算法

3,目标地址散列调度(DestinationHashing Scheduling)

计算当前realserver 的负载情况计算方法:(active+1)*256/weight=overhead。

1、静态调度:

目标地址hash算法以目标地址为标准,针对目标地址的请求进行定向转发,能够实现来自同一用户的同一请求转发到同一台服务器上(基于缓存的架构,能够提高缓存的命中率),它通过一个散列(Hash)函数将一个目标IP地址映射到一台服务器。目标地址散列调度算法先根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。

(4). Never Queue Scheduling :最小队列调度,简称NQ。分配一个接踵而来的请求到一台空闲的服务器,此服务器不一定是最快的那台,如果所有服务器都是繁忙的,它采取最短的期望延迟分配请求。

      ①rr(Round Robin):轮询调度,轮叫调度

4,源地址散列调度(SourceHashing Scheduling)

(5). Locality-Based Least Connections :基于局部性的最少链接,简称LBLC。"基于局部性的最少链接" 调度算法是针对目标IP 地址的负载均衡,目前主要用于Cache 集群系统。该算法根据请求的目标IP 地址找出该目标IP 地址最近使用的服务器,若该服务器是可用的

      轮询调度算法的原理是每一次把来自用户的请求轮流分配给内部中的服务器,从1开始,直到N(内部服务器个数),然后重新开始循环。算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。【提示:这里是不考虑每台服务器的处理能力】

源地址hash ,以源地址为标准,将来自同一地址的用户转发给同一网络,算法正好与目标地址散列调度算法相反,它根据请求的源IP地址,作为散列键(HashKey)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。它采用的散列函数与目标地址散列调度算法的相同。它的算法流程与目标地址散列调度算法的基本相似。在实际应用中,源地址散列调度和目标地址散列调度可以结合使用在防火墙集群中,它们可以保证整个系统的唯一出入口。

且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用"最少链接"的原则选出一个可用的服务器,将请求发送到该服务器。

      ②wrr:weight,加权(以权重之间的比例实现在各主机之间进行调度)

静态调度算法的缺陷:不能考虑后台服务器当前的状态

(6). Locality-Based Least Connections with Replication : 带复制的基于局部性最少链接,简称LBLCR。"带复制的基于局部性最少链接"调度算法也是针对目标IP 地址的负载均衡,目前主要用于Cache 集群系统。它与LBLC 算法的不同之处是它要维护从一个目标IP 地址到一组服务器的映射,而LBLC 算法维护从一个目标IP 地址到一台服务器的映射。该算法根据请求的目标IP 地址找出该目标IP 地址对应的服务器组,按"最小连接"原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器,若服务器超载;则按"最小连接"原则从这个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的程度。

      由于每台服务器的配置、安装的业务应用等不同,其处理能力会不一样。所以,我们根据服务器的不同处理能力,给每个服务器分配不同的权值,使其能够接受相应权值数的服务请求。

(2)动态调度方法 dynamic scheduling

金沙js333娱乐场 1

③sh:source hashing,源地址散列。主要实现会话绑定,能够将此前建立的session信息保留了

优点:能够基于后台服务器当前的活动连接数,进行请求的分配,更合理,避免了一台服务器负载太多,而另外的服务器处于闲置状态。

源地址散列调度算法正好与目标地址散列调度算法相反,它根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的并且没有超负荷,将请求发送到该服务器,否则返回空。它采用的散列函数与目标地址散列调度算法的相同。它的算法流程与目标地址散列调度算法的基本相似,除了将请求的目标IP地址换成请求的源IP地址,所以这里不一个一个叙述。

两种标准:

④Dh:Destination hashing:目标地址散列。把同一个IP地址的请求,发送给同一个server。

1)非活动状态的连接(但仍在连接状态)  2)活动状态的连接数

目标地址散列调度算法也是针对目标IP地址的负载均衡,它是一种静态映射算法,通过一个散列(Hash)函数将一个目标IP地址映射到一台服务器。目标地址散列调度算法先根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。

相应的算法:

2、动态调度

1,最小连接调度(Least-Connection Scheduling)

①lc(Least-Connection):最少连接

最少连接调度是把新的连接请求分配到当前连接数最小的服务器,它通过服务器当前所活跃的连接数来估计服务器的负载情况。调度器需要记录各个服务器已建立连接的数目,当一个请求被调度到某台服务器,其连接数加1;当连接中止或超时,其连接数减一。同时检查非活动状态连接数和活动状态连接数,基于overhead决定,谁的overhead小就会接受下一次请求。

最少连接调度算法是把新的连接请求分配到当前连接数最小的服务器,最小连接调度是一种动态调度短算法,它通过服务器当前所活跃的连接数来估计服务器的负载均衡,调度器需要记录各个服务器已建立连接的数目,当一个请求被调度到某台服务器,其连接数加1,当连接中止或超时,其连接数减一,在系统实现时,我们也引入当服务器的权值为0时,表示该服务器不可用而不被调度。

例:overhead=当前活动状态的连接数*256+当前处于非活动状态

简单算法:active*256+inactive(谁的小,挑谁)

2,加权最小连接调度(Weighted Least-Connection Scheduling)

②wlc(Weighted Least-Connection Scheduling):加权最少连接。

加权最少连接数是最小连接调度的超集,各个服务器用相应的权值表示其处理性能。服务器的缺省权值为1,系统管理员可以动态地设置服务器的权值。加权最小连接调度在调度新连接时尽可能使服务器的已建立连接数和其权值成比例,是最常用的算法。 例:overhead=(当前活动状态的连接数*256+当前处于非活动状态的连接数)/权重

加权最小连接调度算法是最小连接调度的超集,各个服务器用相应的权值表示其处理性能。服务器的缺省权值为1,系统管理员可以动态地设置服务器的权限,加权最小连接调度在调度新连接时尽可能使服务器的已建立连接数和其权值成比例。

3,最短的期望的延迟(Shortest Expected Delay Scheduling SED)

简单算法:(active*256+inactive)/weight【(活动的连接数+1)/除以权重】(谁的小,挑谁)

最短期望延迟,是对wlc算法的一种改进,不查看非状态连接数,而且在计算overhead时要把当前的活动状态连接数加一。

③sed(Shortest Expected Delay):最短期望延迟

例:overhead=((当前活动状态的连接数+1)*256)/权重

基于wlc算法

4,最少队列调度(Never Queue Scheduling NQ)

简单算法:(active+1)*256/weight 【(活动的连接数+1)*256/除以权重】

最少队列调度不查看非活动连接数,只查看当前的活动状态,保证主机不会闲置;无需队列。如果有台realserver的连接数=0就直接分配过去,不需要在进行sed运算。

④nq(never queue):永不排队(改进的sed)

5,基于局部性的最少链接(Locality-Based Least Connections Scheduling)

无需队列,如果有台realserver的连接数=0就直接分配过去,不需要在进行sed运算。

基于局部性的最少链接算法和dh相似,是动态的算法,考虑后台的实际情况进行轮调,支持权重,在wlc的基础上;目前主要用于Cache集群系统,因为在Cache集群中客户请求报文的目标IP地址是变化的。这里假设任何后端服务器都可以处理任一请求,算法的设计目标是在服务器的负载基本平衡情况下,将相同目标IP地址的请求调度到同一台服务器,来提高各台服务器的访问局部性和主存Cache命中率,从而整个集群系统的处理能力。LBLC调度算法先根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于其一半的工作负载,则用“最少链接”的原则选出一个可用的服务器,将请求发送到该服务器。

⑤LBLC(Locality-Based Least Connection):基于局部性的最少连接

金沙js333娱乐场 2

基于局部性的最少连接算法是针对请求报文的目标IP地址的负载均衡调度,不签主要用于Cache集群系统,因为Cache集群中客户请求报文的布标IP地址是变化的,这里假设任何后端服务器都可以处理任何请求,算法的设计目标在服务器的负载基本平衡的情况下,将相同的目标IP地址的请求调度到同一个台服务器,来提高个太服务器的访问局部性和主存Cache命中率,从而调整整个集群系统的处理能力。

基于局部性的最少连接调度算法根据请求的目标IP地址找出该目标IP地址最近使用的RealServer,若该Real Server是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用“最少链接”的原则选出一个可用的服务器,将请求发送到该服务器。

⑥LBLCR(Locality-Based Least Connections withReplication):带复制的基于局部性最少链接

      带复制的基于局部性最少链接调度算法也是针对目标IP地址的负载均衡,该算法根据请求的目标IP地址找出该目标IP地址对应的服务器组,按“最小连接”原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器;若服务器超载,则按“最小连接”原则从这个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的程度。

金沙js333娱乐场 3

本文由js333发布于计算机互联网,转载请注明出处:LVS类型的介绍以及LVS的调度方法,集群系列二

关键词:

上一篇:金沙js333娱乐场库文件的安装,Ceph的安装过程

下一篇:数字游戏