动态反馈负载均衡在LVS集群中的设计与实现_第1页
动态反馈负载均衡在LVS集群中的设计与实现_第2页
动态反馈负载均衡在LVS集群中的设计与实现_第3页
动态反馈负载均衡在LVS集群中的设计与实现_第4页
动态反馈负载均衡在LVS集群中的设计与实现_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    动态反馈负载均衡在LVS集群中的设计与实现        秦 刘, 兰巨龙, 杨 帅, 智 时间:2008年07月14日     字 体: 大 中 小        关键词:        ? 摘 要:关键词: 负载均衡LVS集群负反馈?1 LVS集群介绍1.1? LVS

2、集群的结构1? LVS是由基于Linux操作系统的负载均衡服务器(LB)和基于任意支持TCP/IP平台的支撑服务器RS(Real Server)群组成的高扩展性和高稳定性的虚拟服务器。在LVS集群中,服务器集群的结构对用户是透明的,用户访问集群提供的网络服务就像访问一台高性能、高可用的服务器一样。LVS集群的通用体系结构如图1所示,主要由以下三部分组成:?1.2 LVS负载均衡调度算法2? LVS支持的负载均衡调度算法有如下八种:? (1)轮询(rr):以顺序循环方式进行调度,相比R-R DNS,这种调度是基于TCP或UDP网络套接字连接的,而不是基于网络主机的,它不受客户端Cache或DNS

3、分级结构的影响。? ?(2)加权轮询(wrr):循环方式调度,但在循环中给每个内容服务器分配指定权重的连接,从而充分考虑各内容服务器处理能力之间的差异。? ?(3)最小连接(lc):将新到的连接请求动态地分配给现有活跃连接数最少的内容服务器。? ?(4)加权最小连接(wlc):将新到的连接请求按各内容服务器当前处理连接数量的比例进行动态分配。wlc是LVS系统的缺省调度算法,在一般应用中都可采用此法均衡。? ?(5)基于位置的最小连接(lblc):专门为高缓集群(cache cluster)设计的算法,属基于内容的均衡,尽量将对同一目的地址的连接请求分配给固定的一台高缓集群节点。? (6)带复

4、制的基于位置的最小连接(lblcr):在集群节点中维护若干针对特定目的地址的高缓服务器集合,以后每当有对匹配地址的连接请求时,尽量分配给该集合中活跃连接数最少的那台高缓服务器,并定期将该集合中负载最大的节点剔除。? ?(7)目标哈希(dh):根据目标地址查找事先设定的静态哈希表来分配连接。? ?(8)源哈希(sh):按客户地址查找设定的静态哈希表来分配连接,可实现服务就近提供,保证服务质量(QoS)。2? 动态负载均衡模型? 服务器的负载主要由客户端的请求服务引起。当客户端的请求到来时,调度器如何选择服务器来为此请求服务的过程成为服务器负载大小的关键。在LVS中,调度器通过使用上述各种调度算法

5、来完成这个工作。但上述调度算法是一些静态算法。? 静态调度算法是利用事先设定好的服务器的信息调度的,决策过程的依据都是事先设定好的,如权值等,因而不能动态反映服务器的负载情况。当客户通过TCP/UDP连接访问服务器时,由于网络服务的服务时间不同、访问分布的不均匀性及服务所需资源千差万别,静态调度算法不能实时地反映后端服务器的负载情况,无法保证系统内服务器真正地实现均衡。动态算法的主要思想是根据负反馈理论,获得服务器的真实负载情况并作出评估,将评估的结果作为系统的反馈来修正负载均衡算法的参数。系统模型如图2所示。? 图2只是表示了一个服务器的反馈情况,在实际情况中,每个服务器都会向调度器反馈负载

6、情况l(l较大表示负载较大,反之则负载较小)。图中,F(w,l)表示权值和负载关系的权值调节模块,根据服务器当前负载情况l和当前权值w计算得出新权值w,调度器(LB)则根据服务器新的权值信息w分配用户的请求。服务器池(RS)由多台服务器组成,负责对客户请求做出响应并向权值调节模块反馈负载信息。? 权值代表服务器的处理,通过反馈调整过的新权值w,反映了服务器的实时处理能力。而在LVS的各种调度算法中,权值是事先设定好的。根据加权轮询调度算法(wrr)或加权最小连接调度算法(wlc),权值大的服务器会分配到相对较多的请求。这就可能出现负载相对不均衡的情况:当权值较大的服务器得到较多请求时的处理能力

7、反而比权值小的服务器的处理能力小。这时,可采用如图2所示的负反馈模型解决负载相对的不均衡问题,即当某个服务器的l较大时,可降低w;l较小时可增大w,从而能充分发挥服务器的处理能力,较好地达到均衡负载的作用。3 动态负载均衡的实现? LVS系统中实现的调度算法都是静态调度算法,为此,本文根据图2模型引入动态负载均衡机制,对真实服务器的权值进行动态调整。由于动态负载均衡模块需要定时收集后端真实服务器的实时负载信息,因此,要在LB中加上负载查询与接收模块、负载信息处理与评估模块和内核通信模块3。加入动态负载均衡模块后,基于linux内核的动态负载均衡流程如图3所示。?3.1 负载采集模块i)、请求响

8、应时间L(Ti)、内存占用率L(Mi)、磁盘I/O占用率L(Di)、网络带宽占有率L(Bi)。3.2 定时器模块和负载查询与接收模块? 负载查询与接收模块运行在LB的用户空间。对于查询对象即RS的地址的获取,负载查询进程会按一定的时间间隔遍历内核LVS模块的RS链表,并返回Real Server的地址等信息,建立用户空间的RS链表。查询进程根据RS链表,针对每一个RS,发出相应SNMP请求查询并存储其负载信息。? 动态反馈机制本身也是需要系统开销的,因此不可能对用户的所有请求都对服务器端的负载情况进行查询。可采用每隔一定的时间间隔T(如2秒钟),由负载查询进程再查询各个服务器的情况,并相应调整

9、服务器的权值。这样周期性地进行,通过一个负反馈机制,使得服务器保持较好的利用率。3.3 负载处理与评估模块? 该模块负责处理与评估负载接收模块存储对应于每个RS的负载信息,将每个RS当前的权值和其负载信息计算出一个新的权值。当负载值表示服务器比较忙时,新计算出的权值会比当前权值小;反之会比当前权值大(新权值的具体算法如后所述)。算出新权值后,通过内核通信模块用新的权值更新内核中相应服务器的信息。? 因为服务器的各种性能信息对服务器的处理能力影响不一样,根据其不同的影响力,对每个因素设定一个影响因子,不同的服务器影响因子将不相同。例如,在Web服务器集群中,对服务器RSi的主要负载因素L(Ci)

10、、L(Ti)、L(Mi)、L(Di)、L(Bi)引入影响因子Qi进行计算。Qi=qi1,qi2,qi3,qi4,qi5=0.4,0.3,0.1,0.1,0.1时,认为服务器的CPU负载和请求响应时间较其他参数重要一些。若当前的系数Qi不能很好地反映应用的负载,系统管理员可以对系数不断地进行修正,直到找到贴近当前应用的一组系数。通过下式可得出服务器RSi的负载综合Li=Qi×L(Ci),L(Ti),L(Mi),L(Di),L(Bi)T。? 结合节点的初始权值和采集的综合负载情况计算新的权值结果,即可引入如下权值计算公式:? 式中,0.65是本文想要达到的系统利用率,A是一个可调整的系数

11、(缺省值为5)。当综合负载值为0.65时,服务器权值不变;而大于0.65时,权值变小;小于0.65时,权值变大。为了避免权值变成一个很大的值,对权值的范围作一个限制其中k是可以调整的,其缺省值为10。若新权值可将新权值设为k×wi。若新权值与当前权值的差值没有超过设定的阀值,则将新权值设置到内核中的IPVS调度参数中;否则避免打断IPVS调度的开销。这样将使权值调整到一个稳定点。当系统达到理想的利用率时,权值是不变的。3.4 内核通信模块? 由于IPVS模块工作在内核中,因此,内核通信模块负责负载处理模块及负载接收模块与内核的交互。主要有两个任务:(1)完成负载查询与接收模块取得内核

12、RS链表,并返回。(2)通过调用setsockopt()函数把负载处理模块生成的新的权值信息传入内核IPVS模块。4 测 试4.1 硬件环境? 测试平台连接拓扑图如图4所示。图中设备的硬件配置如表2所示。?4.2 软件环境5-6? 各个设备使用的操作系统如表2所示。真实服务器RS1、RS2都运行Apache2.2服务器,提供Web服务;安装了简单网络管理协议SNMP,负责监控服务器的性能信息。测试仪利用工具 WAS(Web Application Stress)在客户端向虚拟服务发起持续请求,观察服务器的服务性能。WAS是Microsoft公司推出的Web服务器性能测试工具。WAS设置时将St

13、ress Level大小设置为100,StressMultiplier 大小设置为 20,测试时间为 4 分钟,测试期间WAS请求真实服务器上的HTTP动态页面。4.3 测试内容和结果分析? 在上述环境下,采用DR(Direct Route)方式实现服务器的负载均衡,其连接拓扑图见图1。? 为了测试是否会出现负载倾斜现象,将RS1和RS2的初始权值分别设为4和10,内核LVS调度算法采用加权轮询调度(wrr)算法。? (1)不使用动态调度算法的情况? 静态算法下的负载情况如图5所示。由图可知,RS1的配置比RS2的配置低很多,却拥有较大的权值,所以基本一直工作在满负荷状态,而RS2虽然配置很高但权值很低,一直处于较低的负载,其性能得不到充分发挥。这是因为服务器的权值无法动态更改,在运行过程中无法根据服务器的实时负载来确定服务器的权值以确定新链接的分配去向,造成服务器的负载倾斜。? (2)在LB上启动动态负载模块并在RS1、RS2上启动SNMPD进程后,得到如图6所示的结果。? 由图6可知,虽然两台服务器的配置及初始权值不一样,但由于动态权值的引入,使得LB能够按照各真实服务器的实时负载情况来分配任务,使两台服务器的负载情况都在期望值(0.65)附近,较好地实现了负载的均衡,达到了预期效

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论