首页 > 范文大全 > 正文

基于Linux的负载均衡技术

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于Linux的负载均衡技术范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:网络业务量的激增和应用的特殊化都使得负载均衡成为迫切需求,Linux虚拟服务器按传输层连接对集群节点进行业务分配的方式,能便捷而高效地实现负载均衡。文中对Linux虚拟服务器集群的结构与原理进行了讨论,重点阐述了满足不同应用需要的4种负载均衡算法,并在Linux操作系统环境下,构建了虚拟服务器集群,测试了负载响应、服务性能、调度器备份。结果表明,虚拟服务器集群技术可较大幅度地提高系统的综合性能。

关键词:集群;虚拟服务器集群;负载均衡

中图分类号:TP393 文献标识码:A 文章编号:2095-1302(2014)08-0065-02

0 引 言

随着计算机网络和通信技术的快速发展,越来越多的人通过互联网获取信息、购物和娱乐,大量用户进入网络,面对巨大的数据流量和计算强度,各类信息中心或数据处理中心迫切需要具有快速响应能力、高可伸缩性、高可用性、易于管理的信息服务器来提高网络吞吐量和对请求响应的能力?[1]。为保证及时的处理用户请求,增加网络吞吐量,提高服务质量,势必需要的对服务器软硬件进行升级,一般采取两种方案,一是改善单个服务器的配置,如更换处理速度更快的服务器等以提高其性能,另一种做法则是把多台服务器用局域网络连接成一个整体结构,通过并行处理及相互间的信息交流来扩展其性能。显然后者具有很高的整体性能、高可伸缩性、高可靠性和更高的性价比。

1 Linux Virtual Server集群的结构

Linux虚拟服务器(Linux Virtual Server,LVS) 建筑于实际的服务器集群之上,用户看不到提供服务的多台实际服务器,而只能看见一台作为负载平衡器的服务器[2]。实际的服务器通过高速局域网或地理上分散的广域网连接。实际服务器的前端是一台负载平衡器(Load Balance,LB),它将用户的请求调度到真实服务器上完成,客户访问集群系统提供的网络服务就像访问一台高性能、高可用的服务器一样。

2 Linux Virtual Server集群中负载均衡技术

2.1 负载均衡调度算法

均衡算法设计的好坏直接决定了集群系统的性能与效率,设计不好的算法,不但不能有效缓解集群的负载不平衡状况,还可能由于负载信息收集、进程的动态调度增加额外通信、策划、连接等开销,增加系统的响应时间。负载初始设置即负载分担算法的主要任务是如何理智的选择下一个集群节点然后决定将新的服务请求转发给它。

针对不同的网络服务需求和服务器配置,LVS负载均衡调度可实现如下几种负载调度算法(网络管理员也可以根据不同的应用情况选择最佳的算法):

(1)轮转调度算法

(2)加权轮转调度算法

(3)最小连接调度算法

(4)加权最小连接调度算法

2.2 集群管理

LVS集群包括4个进程、1个配置文件和1个用户界面。具体如下:

(1)pulse进程,用于开启集群服务;

(2)nanny进程,用于监视服务器的负载以及是否可用。当节点或进程失败后,会在LVS中写一条警告记录并移去一条规则。因此调度器能自动掩盖进程或服务器的失败,当故障恢复后,又可重新提供服务[3];

(3) Ipvsadm进程,用于更新路由列表;

(4) LVS进程,通过调用Ipvsadm进程进行管理,包括添加,删除路由列表;

(5)配置文件etc/lvscf,为所有进程提供配置参数;

(6)用户界而piranha,可方便地用于配置和管理服务器集群。

3 Linux下负载均衡系统的建立

在集群系统环境中,设置主从调度器各1台、服务器3台,其中每个调度器需要双网络适配器,其中一个连接公共网络,另一个连接内部网络。内部网络由调度器和3台服务器组成,而服务器可以是任意的硬件平台,运行任意的操作系统。

3.1 集群的配置

在调度器双网卡中,eth0与外部网络相连,从网络管理员处申请1个IP地址作为虚拟IP地址,这里使用的是21. 156.192.158, eth1与内部服务器子网相连,分配IP地址192.168. 1. 1,并伪装为192.168.1.254。在服务器上分配IP地址并设置默认网关为192.168.1.254;

在调度器上安装linuxRedHat 6.1以及集群软件。3台服务器提供Web服务,为了验证负载被均衡到3台服务器上,将它们的Web主页设置为不一样,根据主页的显小,可知连接的是哪一台服务器;

在调度器上定义包过滤规则,使其能够对IP包进行伪装并转发:lpchains一A forward -jMASQ -s 192.168.1.0/24 -d 0.0.0.0/0

编辑 /etc/lvscf配置文件,选择轮转调度算法,在调度器上用命令/etc/rc d/init.d/pulse开启虚拟服务。

3.2 系统测试

用浏览器访问21. 156. 192 158,通过对浏览器的刷新,可以看到3个不同的主页依次出现,从而有效证明了访问的负载被分担到3台不同的服务器上。

接下来进一步实验,为3台服务器配置相同的Web页面和MySQl数据库系统。当连续提交记录检索时,速度明显高于单机串行检索速度的总和;

当主调度器停机时,从调度器将自动接管负载的平衡服务。

最后,用网络命令对主频为100 MHz,内存为32 M的主调度器进行了简单的负载测试。当IP包的大小为64 KB时,调度器对IP包的处理平均延时为10.4μ/s,由此可算出它的最大负载能力为6. 15 MB/s。假设服务器的平均流量为600 KB/s,调度器能对10台服务器进行管理。

3.3 结果分析

基于IP层负载平衡调度的操作是在操作系统核心空间中完成的,它的调度开销很小,所以它能调度相当数量的服务器,一般不会成为系统的瓶颈。当整个系统的负载超过目前所有节点的处理能力时,可以通过增加服务器来满足不断增长的请求负载。由于对大多数服务网络来说,节点与节点之间不存在很强的相关性,所以整个系统的性能可以随着服务器池中的节点数目增加而线性增长。此外,为了避免调度器成为集群系统新的瓶颈,还可以考虑IP隧道技术,将请求报文封装转发给后端服务器,响应报文能从后端服务器直接返回给客户。

从LVS原理和上述实验也可以看出,调度器有可能成为系统单一的失效点,为了防止它的失效,建立了调度器的备份。2个心跳进程(Heart-beat Daemon)分别在主、从调度器上运行,他们通过串口线和UDP等心跳线来相互汇报各自的状态信息。当从调度器不能听到主调度器的心跳时,从调度器会通过ARP欺骗来接管主调度器的工作并提供负载调度服务。当主调度器恢复时,将自动变成从调度器。在实验中,仅简单地通过网络将主从调度器句_联,可以实现由主至从的自动切换,而不能实现主调度器故障恢复后到从调度器的切变。

4 结 语

集群系统的优势在于硬件和软件的冗余。通过监测节点、失败的进程,重新正确地配置系统,使工作能被集群中的其余节点接管,从而得到高可用的集群系统。采用LVS来实现负载均衡,它最大地发挥了网络和PC机的优势,带来了可观的性能,是一种简单快捷而目_经济高效的方法,是电子政务/电子商务中可靠的服务解决方案。

参 考 文 献

[1]许鹏文,冷青松. linux服务器集群中的负载均衡技术研究[J]. 指挥技术学院学报,2001,12(5):57-60.

[2]余彬彬,张伟,王欢. 基于最小负载的Linux Web机群负载均衡算法[J]. 华中科技大学学报:自然科学版,2010(S1):77-81.

[3] ZhungWensong, Jin Shiyao, Wu Quanyuan. Linux director:aconnection router for scalable internet services[]J.Journal of computer Science & Technology,2000,15(6):560-571.

[4] Chiang Meiling,LinYuchen,GuoLianfeng.Design and implemetntation of an efficient Web cluster with content-based request distribution and file caching[J].Journal of Systems and Software,2008,81(11):2044-2058.

[5] SharifianS,Motmedi S A,Akbari M K.A content-based load balancing algorithm with admission control for cluster Web servers[J].Future Generation Computer Systems,2008,24(8):775-787.

[6]宋国柱,张丽. 基于Linux的链路负载均衡技术研究与实现[J]. 微计算机应用,2009,30(2):40-43.

[7]修长虹,赵云飞,宋继侠. 基于Linux PC集群负载均衡的研究与实现[J]. 沈阳师范大学学报:自然科学版,2006,24(2):192-195.

[8] DANIEL P B, MACRO C.深入理解Linux内核[M].陈莉君,玛锐,牛欣源,译.北京:中国电力出版社,2001.