您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > Linux集群下的校园网络负载均衡方案 2
1Linux集群下的校园网络负载均衡方案摘要:为了解决大量的校园网络服务带来的网络拥挤问题,本文提出基于Linux集群的校园网络负载均衡方案。它采用地址转换和IP隧道两种方式,将计算机集群虚拟化成一个虚拟服务器,从而在IP层上实现负载均衡调度。该方案能够充分发挥校园网络设备的利用率,减少单位资金的投入和降低维护成本,从而提高校园网络的整体性能。关键词:负载均衡,网络地址转换,IP隧道,虚拟服务器中图分类号:TP393.1文献标识码A引言随着高校信息化水平的不断提高,高校校园网络的规模和服务功能也在不断扩展,新的网络设备和网络应用平台也不断更新和投入使用[1]。校园网络要承担教学管理、科学研究、远程教育、Web服务等诸多任务。网络中心作为校园网络的核心机构,还要承担数据存储、信息发布、流量监控、用户管理、负载均衡、信息安全、病毒防治等一系列网络管理任务。总体来说,校园网络用户群体庞大、资源利用率高、管理难度大。并且由网络服务功能的扩展带来的流量监控和负载均衡问题日益突出,占用了大量的人力和物力,使网络运营维护成本居高不下。本为提出基于Linux集群技术设计的校园网络负载均衡方案可以有效地解决这一问题。1负载均衡假如学校网络有N台服务器,网络内同一时间的访问请求个数为M(一般情况下M远远大于N),这就要求网络中部署一个设备或软体,它负责将M个访问请求调度到N个不同服务器上去,这就是负载均衡器的作用[2]。负载均衡器是服务器集群的唯一入口,它可以是一个独立的硬件实体,也可以是一个安装在代理服务器内的软体。在校园网络中,计算机集群是通过负载均衡设备将统一的一个公有IP地址映射到整个集群中的多个IP地址主机上,以实现单一客户端对整个集群的访问。公有的虚拟IP地址相当于一个虚拟服务器,和集群内主机IP地址的关系是一对多的映射关系,这种映射关系可以有效解决校园网络IP地址短缺问题。在工作过程当中,若负载均衡器出现故障,则很可能造成整个集群负载失效[3]。因此,在实际应用中,我们可以部署多个均衡器,用以提供必要的负载均衡容错机制,对负载均衡器进行备份并对其工作状态进行监控,可以在网络负载均衡设备出现故障情况下进行有效转换,利用备份负载均衡设备替换故障设备,并对故障设备进行报警、检查、恢复等操作,使其恢复正常工作。1.1Linux中负载均衡模型上述所提到的负载均衡实现方法是基于IP协议层实现的负载均衡技术,它将整个网络的接入请求划分成一个个单一的网络请求,通过负载均衡器将它们分别调度到服务器集群中的单一主机上,由整个集群的主机来分担任务,以最大限度地发挥整个网络的性能。实现负载均衡的关键技术在于IP层的负载分配,该技术具有良好的兼容性、高效的执行效率、简单的体系结构等特点。在Linux系统中,这种基于IP层交换的负载均衡技术具备良好的可扩展性、易管理性,可以大幅提高整个集群系统的性能,从而实现以负载均衡为核心的Linux集群系统[4]。该系统可通过三种不同负载均衡模型来实现,分别是:地址转换(NAT)模型、IP隧道模型和直接路由(DR)模型[5]。本人重点对前两种模型进行了分析和研究。2在地址转换(NAT)模型中,集群内部的IP地址与外部网络隔开,服务器内部结点拥有一个IP地址池,每个数据请求和应答都通过负载均衡设备,负载均衡设备负责对IP数据包进行处理然后和客户端进行通信。在IP隧道模型中,整个网络是个开放的体系结构,集群系统中的每个主机在互联网上都有一个合法的IP地址,客户端和服务器端的通信是通过路由应答方式来实现。其实现过程为,客户端向虚拟IP地址主机(负载均衡器)发送通信请求,虚拟IP主机(负载均衡器)通过IP隧道对该数据包进行封装并选定目的主机结点作为新的IP主机地址,然后发送到对应IP主机结点上;对应IP主机结点接收虚拟IP地址主机(负载均衡器)发送的IP隧道数据后将数据包解包进行数据处理,并根据源客户端的IP地址将应答数据包直接反馈给源客户端,但此时应答数据包的源地址为虚拟IP地址,即负载均衡器的IP地址。在直接路由(DR)模型中,整个集群内的主机和负载均衡器都有共同的虚拟IP地址,但负载均衡器和每个主机都不解析虚拟IP的RAP地址,只接收符合自己MAC地址的数据包。客户端向负载均衡器发送数据请求后,负载均衡器根据当前集群工作状态选择集群内部主机结点并重写数据包的MAC地址,然后将数据包广播到所属网段内[6]。当对应主机的收到负载均衡器广播的数据包后,便会直接和客户端进行通信,并将处理后的数据反馈给客户端。总的来说,客户端始终是和有着同一虚拟IP地址的负载均衡服务器集群进行通信。1.2三种负载均衡模型的比较根据以上对三种模型的介绍,从连接通信方式、数据包处理、优点、缺点等方面对它们进行对比分析。见下表1。表1三种负载均衡模型对照分析2.基于IP层负载均衡调度的解决方法2.1负载均衡调度在硬件中实现通过对以上三种模型的对比可知,不论采用哪一种负载均衡模型,其工作基本的原理是一致的,即客户端访问负载均衡设备,负载均衡设备接收到访问请求后对它进行封包转发,然后从一组服务器集群中选择一个主机,将请求数据包发送给它,集群内主机接收到请求数据包后对数据包进行处理,然后将响应数据包反馈给负载均衡设备或者直接反馈给客户端。目前,很多企业在设计自己的负载均衡设备时,都是采用了地址转换方法来实现,比如Berkeley的MagicRouter、Cisco的LocalDirector、Alteon的ACEDirector和F5的Big/IP等都是使用网络地址转换方法[7]。2.2NAT实现虚拟服务器(VS/NAT)集群负载均衡名称通信方式数据包处理优点缺点NAT双工IP封包方法简单、易于在客户端和集群系统中实现IP层请求和应答的转换,适合网络数据流量小的校园网络速度慢,在大量较重负载的网络中应用时候会造成网络瓶颈IP隧道单工IP封包应答数据包直接反馈给客户端,具有通信效率高和良好的可扩展性优点网络安全性低DR单工MAC封包应答数据包直接反馈给客户端,具有通信效率高、可扩展性等特点,网络安全性低、管理相对复杂3在Internet迅猛发展的今天,IPV4地址已经接近枯竭,为了节约IPV4地址,网络在进行NAT转换时可以使用专门为内部网络保留的IP地址,比如10.0.0.0/255.0.0.0、192.168.0.0/255.255.0.0等。通过NAT将不同IP地址的主机变成一个虚拟服务器集群(VS)的示意图如下图1所示。在图1中,VS由一个负载均衡设备、一个交换机、若干服务器主机组成。当客户端通过Internet对VS进行访问时,负载均衡设备负责将请求数据包调度给相应主机,不管请求数据包被发调度哪台主机上,其反馈的结果都没有任何不同。在图1中,负载均衡设备接收到请求数据包后并对它进行封包,然后采用一定的算法将数据包调度到相应主机上。目前常用的调度算法是动态反馈负载均衡调度算法[8],该算法将影响负载均衡的几个主要元素采用权值计算方式图1VS/NAT的体系结构纳入到调度决策过程中,有效地解决负载调度的效率问题。2.3VS/NAT实验分析为了进一步说明VS/NAT工作过程,在这里设计一个案例并对之进行分析。具体的VS/NAT的配置如图2表所示。设定VIP(虚拟IP)地址为10.3.1.5,80端口的数据请求都被调度到集群内主机173.1.0.1:80和173.1.0.1:8000上(web服务);21端口的数据请求被调度到集群内主机173.1.0.1:21上(ftp服务),如下表2所示。根据上面的请求数据包负载调表2VS/NAT集群负载均衡调度对照表度对照表,下面我们详细分析具体的客户端请求数据包改写流程。设定访问Web服务器的的客户端请求为:源地址:102.1.1.2:3688目的地址:10.3.1.5:80当负载均衡器接收到数据包请求后,便通过调度程序按照相应从集群系统中选择一台主机,假如选择173.1.0.2:80。这时候数据包被封包,并将地址改写,然后发送到173.1.0.2:80。地址改写如下:源地址:102.1.1.2:3688目的地址:173.1.0.2:80主机173.1.0.2接收到数据包以后,首先将数据包解包,处理后反馈响应数据包给负载均衡设备,地址变换如下:源地址:173.1.0.2:80目的地址:102.1.1.2:3688负载均衡设备接收到反馈数据包后,对源地址进行改写,将源地址改写成虚拟IP地址,协议VIP端口集群内主机IP端口权TCP10.3.1.580173.1.0.1801173.1.0.18000221173.1.0.12114地址变换如下:源地址:10.3.1.5:80目的地址:102.1.1.2:3688客户端接收到的数据包的源地址便是虚拟IP地址10.3.1.5:80,而不是集群内主机173.1.0.2:80地址。这个地址转换过程是双工转换,整个过程完成了对集群内主机IP的屏蔽。不论集群内是哪一台主机响应了外部客户端的请求,其结果都是一样的。3.通过IP隧道实现虚拟服务器(VS/TUN)集群负载均衡在本文1.1中提到过,采用NAT实现VS集群系统只适合请求和响应的数据包较小的情况,而当集群内服务器数目较多、请求和响应数据包较大的时候采用VS/NAT模式就会严重影响整个系统的性能,并使之成为整个系统的瓶颈。若能将请求数据包和响应数据包分开处理,采图2VS/NAT的例子用单工方式对请求数据包进行封包,将响应数据包直接反馈给客户端[9],这样就可以大大提高整个集群系统性能,IP隧道(TUN)模式就是基于单工机制来实现服务器集群负载均衡的。3.1IPTUN工作原理首先,在服务器集群中建立IP隧道。在IPTUN体系结构(如图3所示)中,有一个统一的VIP(虚拟IP)地址,服务器集群中每个主机都将VIP地址配置到自己的IP隧道设备上[10]。其次,所有的网络服务全部虚拟到VIP服务器上以供外部网络访问。数据包处理工作过程为,客户端发送服务请求到VIP服务器上,VIP服务器对请求数据包进行IP封包后通过负载均衡设备对集群内主机进行选择,集群内主机接收到请求数据包后对数据包进行处理并直接将处理结果反馈给客户端。3.2IPTUN封包和数据包反馈过程如图3所示,在IPTUN工作过程中,客户请求数据包发送到统一的虚拟IP地址服务器上,要将数5据包进行封装,然后通过隧道发送到相应主机上,最后通过主机直接反馈给客户端,假定外网客户端IP地址为102.1.1.2,其过程如下图4所示。这里需要注意的是,经过实际服务器处理后的IPpacket中,实际反馈给客户端的数据包的源地图3VS/TUN的体系结构址是VIP。4.结论随着人们对Linux服务器依赖的加深,对其可靠性、负载能力和计算能力也倍加关注,Linux集群技术应运而生。本文提出了基于Linux系统的校园网络负载均衡方案,重点讨论了基于IP层负载均衡调度的解决方法,提出了VS/NAT和VS/TUN实现模型,并对VS/NAT模型进行例证分析,证明其应用的可靠性。图4IPTUN封包和数据包反馈过程参考文献:[1]董静宜,王鹏,陈磊,任华,唐超.云计算集群系统负载均衡算法的熵值判定[J].成都信息工程学院学报,2010,25(6):580-583.[2]陈超.利用LVS中的IP负载均衡技术建立可伸缩性网络服务[J].四川理工学院学报(自然科学版),2006.8,19(4):81-85.[3]李文中,郭胜,许平,陆桑璐,陈道蓄.服务组合中一种自适应的负载均衡算法[J].软件学报,2006,17(5):1068-1075.[4]戴艺,苏金树,孙志刚.基于流映射的负载均衡调度算法研究[J].计算机学报,2012.2,35(2):218-227.[5]郭成城,晏蒲柳.一种异构Web服务器集群动态负载均衡算法[J].计算机学报,2005,28(2):179-184.[6]ChristopherNegus.LinuxBible,2011Edition[M].出版社所在城市:美国WileyPubl
本文标题:Linux集群下的校园网络负载均衡方案 2
链接地址:https://www.777doc.com/doc-3684657 .html