LVS集群十种调度算法及负载均衡理论

一、LVS概念

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

二、LVS类型

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

    特性:为了添加能力能力

  • HA(High Availability):高可用集群

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

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

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

    特性:提供服务的性能

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

  • 基于DNS域名轮流解析的方法
  • 基于client调度訪问的方法
  • 基于应用层系统负载的调度方法
  • 基于IP地址的调度方法

    当中基于IP的负载调度算法中。IP负载均衡技术是运行效率最高的

四、LVS十种调度算法

1、静态调度:

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

轮询调度算法的原理是每一次把来自用户的请求轮流分配给内部中的server,从1開始。直到N(内部server个数)。然后又一次開始循环。

算法的长处是其简洁性,它无需记录当前全部连接的状态,所以它是一种无状态调度。

【提示:这里是不考虑每台server的处理能力】

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

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

③sh: source hashing,源地址散列

主要实现会话绑定,能够将此前建立的session信息保留了

源地址散列调度算法正好与目标地址散列调度算法相反,它依据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出相应的server。若该server是可用的而且没有超负荷,将请求发送到该server,否则返回空。

它採用的散列函数与目标地址散列调度算法的同样。它的算法流程与目标地址散列调度算法的基本类似,除了将请求的目标IP地址换成请求的源IP地址,所以这里不一个一个叙述。

④Dh: Destination hashing:目标地址散列

把同一个IP地址的请求,发送给同一个server。

目标地址散列调度算法也是针对目标IP地址的负载均衡,它是一种静态映射算法,通过一个散列(Hash)函数将一个目标IP地址映射到一台server。

目标地址散列调度算法先依据请求的目标IP地址。作为散列键(Hash Key)从静态分配的散列表找出相应的server,若该server是可用的且未超载,将请求发送到该server,否则返回空。

2、动态调度

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

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

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

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

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

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

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

基于wlc算法

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

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

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

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

基于局部性的最少连接算法是针对请求报文的目标IP地址的负载均衡调度,不签主要用于Cache集群系统,由于Cache集群中客户请求报文的布标IP地址是变化的。这里如果不论什么后端server都能够处理不论什么请求。算法的设计目标在server的负载基本平衡的情况下,将同样的目标IP地址的请求调度到同一个台server,来提高个太server的訪问局部性和主存Cache命中率,从而调整整个集群系统的处理能力。

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

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

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

五、IPVS实现负载均衡的方法

NAT:地址转换(类似于DNAT)

1、集群点跟director必须工作在同一个IP的网络中

2、RIP一般是私有地址。仅用于各集群节点间的的通信

3、director位于client和real server之间。并负责处理进出的全部通道。

4、realserver必须将网关运行DIP

5、director支持port映射

6、realserver能够使用不论什么类型的操作系统(os)

7、较大规模应用场景中,director易成为系统瓶颈

DR:直接路由(及用于作为源地址)

1、各集群节点跟director必须在同一个物理网络中;

2、RIP能够使用公网地址,实现便携的远程管理和监控。

3、director仅负责处理入站请求,形影报文则有realserver直接发往client

4、realserver不能将网关指向DIP,而是直接指向前端网关;

5、director不支持port映射

6、大多数操作系统能够用在realserver

TUN:隧道

1、集群节点能够跨越Internet

2、RIP必须是公网地址

3、director仅负责处理入站请求,形影报文则有realserver直接发往client

4、realserver网关不能指向director

5、仅仅有咫尺隧道功能的OS才干用于realserver

6、不支持port映射

六、ipvsadm经常使用命令

1、管理集群服务

加入:-A -t|u|f service-address [-sscheduler]
     -t:tcp 协议的集群服务
     -u:udp 协议的集群
     -f:FWM 防火墙标记
改动:-E
删除:-D
     -D -t|u|f service-address    

比如:# ipvsadm -A -t 172.16.100.1:80 -s rr

2、管理集群服务中的RS

加入:-a -t|u|f service-address -rserver-address [-g|i|m] *[-w weight]*

-t|u|f service-address: 事先定义好的某集群服务

-r server-address: RS的地址,在NAT模型中,能够使用port映射

[ -g | i | m ] LVS类型

-g: DR

-I: TUN

-m: NAT

[-w weight] 定义server权重

3、改动:-e

4、删除:-d -t|u|f service-address -r server-address

比如:#ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.8 -m
比如:#ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.9 -m

5、查看

-L|l[options]
-n:数字格式显示主机地址和port号
--stats:统计信息
--rate:速率
--timeout:显示tcp、tcpfin和udp会话的超时时间值
--daemon
--sort:跟协议、地址、port进行排序,默觉得升序
-c:显示当前ipvs连接状况

6、删除全部集群服务:

 -C:清空ipvs规则

7、保存规则

-S:(用输出重定向进行保存)
格式:`#ipvsadm -s >/path/to/somefile`

8、加载此前的规则:

-R
格式:`#ipvsadm -R </path/to/somefile`


查看原文

原创作品,同意转载,转载时请务必以超链接形式标明文章原始出处及作者信息和本声明。否则将追究法律责任。


热门推荐

时间: 2024-10-13 05:02:32

LVS集群十种调度算法及负载均衡理论的相关文章

LVS集群中的IP负载均衡技术

章文嵩 ([email protected]) 转自LVS官方参考资料 2002 年 4 月 本文在分析服务器集群实现虚拟网络服务的相关技术上,详细描述了LVS集群中实现的三种IP负载均衡技术(VS/NAT.VS/TUN和VS/DR)的工作原理,以及它们的优缺点. 1.前言在 前面文章中,讲述了可伸缩网络服务的几种结构,它们都需要一个前端的负载调度器(或者多个进行主从备份).我们先分析实现虚拟网络服务的主要技术,指出 IP负载均衡技术是在负载调度器的实现技术中效率最高的.在已有的IP负载均衡技术

LVS集群之十种调度算法及负载均衡-理论

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

keepalived实现WEB服务集群的高可用负载均衡

要求:利用keepalived实现WEB服务集群的高可用负载均衡,即在lvs_dr模型中扮演director的角色,对来自用户的请求按照一定的算法分配至后端服务器中:且keepalived服务器可实现高可用. keepalived是vrrp协议的一种实现,专门为lvs设计,以实现对lvs高可用就集群中的dirctor进行冗余以及对realserver进行健康检测.当一台主机(MASTER)出现问题后,keepalived能够将VIP自动的分配到备用的主机上(BACKUP),从而实现了自身(dir

分布式进阶(十九) 基于集群的动态反馈负载均衡策略

基于集群的动态反馈负载均衡策略 基于动态反馈机制的集群负载均衡算法研究 目前应用最为广泛的集群计算技术主要分为三大类:高可用性集群技术.高性能计算集群技术和负载均衡集群技术. 德国的CarlAdamPetri于1962年在他的博士论文<自动机通信>中提出了Petri网的概念,它是一种适合于描述异步.并发.分布式系统的图形数学工具. 动态WRR调度算法 这是一个目前普遍使用的调度算法,算法在WRR的基础上加入了根据服务器端的负载信息周期性地调整服务器性能权值的过程.其基本思想是:根据CPU利用率

集群、分布式、负载均衡

集群和负载均衡的概念 负载均衡LVS集群详解 大型电子商务网站架构之--分布式可扩展数据库架构 负载均衡有两种:软负载lvs;硬负载f5. 水平切分数据库: 可以降低单台机器的负载,同时最大限度的降低了了宕机造成的损失. 负载均衡: 有效的降低了单台 机器的访问负载,降低了宕机的可能性: 集群: 解决了数据库宕机带来的单点数据库不能访问的问题: 读写分离: 最大限度了提高了应用中读取 (Read)数据的速度和并发量. 1.Linux集群主要分成三大类( 高可用集群, 负载均衡集群,科学计算集群)

集群、分布式、负载均衡区别与联系

1.Linux集群主要分成三大类( 高可用集群, 负载均衡集群,科学计算集群)(下面只介绍负载均衡集群) 负载均衡集群(Load Balance Cluster) 负载均衡系统:集群中所有的节点都处于活动状态,它们分摊系统的工作负载.一般Web服务器集群.数据库集群和应用服务器集群都属于这种类型. 负载均衡集群一般用于相应网络请求的网页服务器,数据库服务器.这种集群可以在接到请求时,检查接受请求较少,不繁忙的服务器,并把请求转到这些服务器上.从检查其他服务器状态这一点上看,负载均衡和容错集群很接

Linux集群之高可用负载均衡lvs+keepalived

LVS简介 LVS介绍 LVS是Linux Virtual Server的缩写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统,属于4层负载均衡 ipvs和ipvsadm的关系 我们使用配置LVS的时候,不能直接配置内核中的ipvs,需要使用ipvs的管理工具ipvsadm进行管理 LVS术语 LVS转发原理 LVS负载均衡器接受所有入站请求,并根据调度算法决定哪个realserver处理该请求 LVS调度算法 轮询(rr):按照请求顺序轮流分发到后端RS 加权轮询(wrr):权值高的获得

LVS集群之十种调度算法及负载均衡(配置篇)

架构图: 1.安装keepalived keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节点的状态,后来又加入了VRRP的功能,VRRP是Virtual Router Redundancy Protocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由出现的单点故障问题,它能够保证网络的不间断.稳定的运行.所以,keepalived一方面具有服务器健康检测功能,另一方面也具有HA cluster功能. [email protected]:~$ apt

使用ansible快速配置RHCS 集群 实现WEB站负载均衡高可用(手记)

什么是RHCS RHCS是Red Hat Cluster Suite的缩写,也就是红帽子集群套件,RHCS是一个能够提供高可用性.高可靠性.负载均衡.存储共享且经济廉价的集群工具集合,它将集群系统中三大集群架构融合一体,可以给web应用.数据库应用等提供安全.稳定的运行环境. 更确切的说,RHCS是一个功能完备的集群应用解决方案,它从应用的前端访问到后端的数据存储都提供了一个行之有效的集群架构实现,通过RHCS提供的这种解决方案,不但能保证前端应用持久.稳定的提供服务,同时也保证了后端数据存储的