首页 理论教育 Linux集群技术研究:新的服务器集群负载均衡算法

Linux集群技术研究:新的服务器集群负载均衡算法

时间:2023-10-17 理论教育 版权反馈
【摘要】:总之,优秀的集群技术的核心在于有设计良好的负载均衡算法的配合。设计良好的负载均衡算法能够把用户的连接请求合理、均匀地分配到各台具体服务器上,使各个具体真实的服务器负载水平大致相同,并使整个集群系统达到负载均匀的状态。为了应对这种状况,国内各个网络服务公司相继采用集群技术构建自己的网络服务器集群系统。

Linux集群技术研究:新的服务器集群负载均衡算法

随着互联网技术的飞速发展,互联网已经成为越来越多的人学习、工作以及生活的必备工具之一。但是,随着互联网用户数的不断增加,各大网络公司的具体服务器系统变得越来越不堪重负。通过使用集群技术来改装原有的具体服务器系统,这已成为一种能够快速应付这种局面并有效解决这个问题的好方法。

服务器集群系统是在互联网迅猛发展的形势下被提出来的,是能够有效解决上述问题的一种方案。

Linux虚拟服务器集群系统是一类开源的集群系统,并且由于它的免费性,使其成为目前得到广泛应用的实用集群系统之一。但由于Linux虚拟服务器集群系统内部已经实现的负载均衡算法的性能不是很理想,使采用该系统所构建的集群的内部各台具体服务器在用户的连接请求分配方面不是很均匀,从而导致各台具体服务器的负载水平存在较大差异,不能很好地使集群内部各台具体服务器相互配合以发挥出集群系统良好的整体性能。要有效地解决这个问题,必须提出一种新的负载均衡调度算法,或是对Linux虚拟服务器集群系统内部已经实现的负载均衡算法进行改进,以使集群系统内部各台服务器可以在高效的负载均衡算法的协助下通力协作,均匀地承担网络用户交予的任务,更好地发挥集群系统应有的能力和作用。

总之,优秀的集群技术的核心在于有设计良好的负载均衡算法的配合。设计良好的负载均衡算法能够把用户的连接请求合理、均匀地分配到各台具体服务器上,使各个具体真实的服务器负载水平大致相同,并使整个集群系统达到负载均匀的状态。只有这样,服务器集群系统性能才能得到充分的发挥,也才能促进服务器集群系统运行在更加平稳的状态。

所以说,设计出一种好的负载均衡算法,不仅可以促进负载均衡技术的发展,还可以使集群技术在现实中得到推广和应用,这是十分有意义的。

(一)集群及其负载均衡技术的发展概述

集群技术的出现及其广泛地应用在很大程度上提高了服务器系统的整体性能,并为互联网用户提供了更为可靠的服务质量,如较短的响应时间、更大的数据流量等。下面将介绍集群技术的发展现状及其分类。

1.集群技术的发展现状

集群技术是目前广泛应用的用于构造高可用性、高性能网络服务系统的最佳技术之一。

国内外各大院校、研究机构和各个服务器系统生产商都在这方面不断开展研究,并取得了不少成果,为集群技术的大规模应用提供了有力的技术支持。

(1)国外发展现状

最早提出“网络服务器集群”这个概念的是UINC公司,该公司随后在此技术基础上发展出了后来被其他许多家厂商广泛使用的实用集群系统NCSA。随着时间的推移,参与研究集群技术的公司团体也在不断增多,如伯克利大学的Now小组、思科公司、IBM公司、DEC公司、微软公司、红帽公司等,它们都先后加入集群技术的研究开发行列,并相继推出了自己的集群系统,使集群技术得到迅速的发展。下面举例介绍一下。

DEC公司推出了VMScluster集群系统,该集群系统使用的是VMS操作系统。但VMScluster集群系统有一些使用方面的限制,如只能用于该公司的VAX和Alpha系列的特定服务器上。微软公司研发了WolfPack集群系统,该集群系统使用的是Windows服务器系列的操作系统。WolfPack集群系统的特点是只能在这种集群系统的后台连接两台具体服务器,并且该集群不具备集群的管理功能,需要额外安装管理软件,主要是为中小型集群系统而设计的。红帽公司研发了自己的Piranha集群系统。该集群使用的是Linux操作系统,这是Piranha集群系统的一个特点。Piranha集群系统的另一个特点,是该集群采用的是基于另一种被广泛使用的Linux虚拟服务器集群系统的结构。TurboLinux公司推出了自己的Turbocluster集群系统,该集群系统也是只适用于Linux操作系统。Turbocluster集群系统同样采用基于Linux虚拟服务器集群系统的结构。Ericsson公司研发了自己的Eddie集群系统,该集群系统可用于不同的操作系统,包括Windows系列操作系统和Linux系列操作系统。Eddie集群系统的特点是,该集群系统采用的是分布式结构,并且该集群本身就能够提供网页服务器功能,不用再额外安装其他诸如HTTP等工具包,所以该系统是专门针对网页服务器集群系统而开发的。Platform公司推出了自己的LSF集群系统,该集群系统可用于不同的操作系统之上,包括Windows系列操作系统与Linux系列操作系统。日本的F5公司参与研发了BIG-IP集群系统,该系统同样对运行的操作系统环境没有特殊要求。但BIG-IP集群系统是即插即用的硬件设备,不像其他公司所研发的集群系统都是软件类型的。

(2)国内发展现状

随着国内网民数量的不断攀升,一些网络服务器同样长期处在高负载的状态,也变得越来越不堪重负。为了应对这种状况,国内各个网络服务公司相继采用集群技术构建自己的网络服务器集群系统。不仅如此,国内有较强研发实力的公司先后加入集群技术的研发队伍,并迅速研发出自己的集群产品。下面举例介绍一下。

联想集团公司研发了NS1000高性能集群服务器系统,该集群系统可以适应于多种操作系统。NS1000集群系统的特点是能够支持四台后台服务器,并且不限制后台具体服务器所使用的操作系统,可以是Windows系列操作系统,也可以是Linux操作系统。朗讯公司推出了Long Shine Cluster Server集群系统,该集群同样可以适用于多种操作系统。有研究者称:Long Shine Cluster Server集群系统同国外Turbocluste集群系统有类似之处。中软网络技术股份有限公司基于Linux虚拟服务器集群系统,对其进行改进而开发出了自己的集群系统,但该集群系统只能安装在中软Linux 3.0操作系统上。该集群系统对服务器兼容性较好,并且具有较高的可靠性。中科红旗软件技术有限公司开发了基于Linux虚拟服务器集群系统而改进的集群系统,该集群系统只适用于Red flag cluster Server 3.0操作系统。该集群系统的特点是安装简便、易于管理,并且内部采用的是SAN、NAS等分布式的存储方案。

除了大公司之外,国内各大高等院校的研究团体也在集群技术方面开展了深入的研究,如上海大学的自强2000-SUHPCSfgl集群系统。

2.集群技术的分类

在一般的应用中,大都是根据集群系统所具有的功能来对集群技术进行划分。依据集群所提供的功能,可以将集群技术划分为以下三大类:具有高可用性功能的集群技术、具有负载均衡功能的集群技术、具有适应复杂科学计算功能的集群技术。以下就这三种具有不同功能的集群技术做一点讲解。

(1)具有高可用性功能的集群技术

所谓高可用性,即通过采用各项技术使服务器整体的停止运转时间或者是不能接受用户连接访问的时间降到最低,并通过技术的不断改进,使集群系统作为一个整体可以全天候为用户提供服务的一项技术。为了达到这个目的,一般采用的方式是为运行中的具体服务器建立备份服务器。如果主服务器由于故障停止了运行,备份服务器就会顶替主服务器,主动接收用户的连接请求,为用户提供相应的服务。现实中,具有高可用性功能的集群具有很广泛的应用范围。比如,一些银行机构或是大型网络服务提供商为了提高其服务器系统的可靠性,采用了具有高可靠性的集群系统来构造它们的服务器集群系统。

(2)具有负载均衡功能的集群技术

从一般的认识角度来讲,集群系统的整体性能与后台的具体服务器数量呈一定的正比关系,即后台的具体服务器的数量越多,该集群系统的性能就越强。但是,如果该集群系统并不具有良好的负载均衡功能,则可能会出现某些服务器忙于运行用户连接所交予的任务,而有些服务器却无事可做的情况。这不仅影响到系统性能的发挥,还会对整个系统的稳定运行造成不良的影响。所以,具有负载均衡功能对于集群同样也是一种重要的集群技术。

(3)具有适应复杂科学计算功能的集群技术

具有适应复杂科学计算功能的集群系统主要用于解决需要复杂科学计算的问题,如复杂的数学建模问题、未来各种时间段内的天气预测问题等。具有适应复杂科学计算功能的集群系统,一般通过采用由高速的局域网连接而成的几台计算机构成,其处理能力可以达到甚至超过一些超级计算机的处理能力,所以能够作为解决需要进行大规模计算的一种有效的工具。

以上主要从集群所具有的功能角度将集群技术划分为三类,但这种分类只是方便学者进行研究,即这种分类并不是绝对的,有些集群系统可能具有其中的两种甚至全部功能。比如,本书重点研究的Linux虚拟服务器集群系统不仅具有高可用性功能,还可以实现集群系统的负载均衡。在实际应用中,应该根据自己的实际需要来对所使用的集群技术类型进行选择。(www.xing528.com)

3.负载均衡技术的含义

如前所述,要想提高网络服务器系统的整体性能,采用集群技术是一方面,还需要结合高效的负载均衡技术,才能够发挥出集群系统应用的性能。否则,将多台服务器配制成没有负载均衡的集群系统,反而会制约整个网络服务器系统性能的发挥。

负载均衡技术,就是能够均衡地、合理地将大量同时到达或是短时间内大量到达的用户连接请求合理地分配给后台各个服务器上的技术。并且,当某台具体服务器由于故障而停止运行时,它能够停止向该具体服务器转发用户的连接请求,即它能够提供可靠的容错能力,从而提高整个集群系统的整体服务质量及其综合处理能力。

负载均衡技术具体包含以下两个方面的含义。

第一个含义,是集群系统能够合理、均衡地把同时到达的多个用户连接请求分配给多个后台具体服务器,并使用户的平均响应时间尽可能地短。比如,百度谷歌是上网用户每天连接到互联网后几乎都要大量访问的网址,通过有效的负载均衡技术就能够把大量同时到达的用户连接请求合理地分配给集群系统中的具体服务器去执行。并且,对于用户来说,连接请求的转接过程是透明的,他们无须关心到底是哪一台具体服务器接收了他们的连接、哪台具体服务器在为其提供服务。

另一个含义,是集群系统能够把单个需要较多计算机资源或计算量的用户连接请求分配给多台具体服务器以并行的方式运行,并将运行结果汇总返回给用户。上文中提到的具有适应复杂科学计算功能的集群,就可以采用这种负载均衡技术。现实社会中就有很多这样的例子,如气象局的具体服务器系统需要收集处理影响天气的所有因素,并将这些因素汇总处理、分析,接着对未来一个小时、一天、一周或是其他不同时间段的天气做出较为准确的预测,这些都需要很大的计算量。气象局就可以使用具有这种负载均衡技术的集群系统,将需要大的计算量的任务分配到集群系统的多台服务器上并行运行。

4.负载均衡技术的分类

从不同角度,可以将负载均衡技术进行不同的分类。但一般都是以负载均衡算法能够在集群系统的运行过程中实时获取后台具体服务器的系统信息,而将负载均衡技术分成三大种类,即静态负载均衡算法、动态负载均衡算法和自适应负载均衡算法。

(1)静态负载均衡算法

静态负载均衡算法采用的是预先设定的策略来执行用户连接分配的一种负载均衡技术。这种负载均衡技术的特点是原理和实现过程都很简单、方便。该类型的负载均衡技术在分配策略中,并没有涉及后台具体服务器的总体性能状况或者是实时负载状况。所以,对于负载不是很重的集群系统,这种算法还可以使集群做到负载均衡。但是应用在负载较重,或是负载的变化范围较大的集群系统之上,负载均衡的效果并不是很理想,很容易造成集群系统中后台具体服务器负载的不平衡。

(2)动态负载均衡算法

动态负载均衡算法是指系统根据各服务器当前的实际情况动态分发用户请求。在动态负载均衡算法的协助下,集群系统能够根据收集和分析来自集群系统的后台各台具体服务器的一些实时运行情况,把用户的连接请求均匀地分配给各台具体服务器。至于动态收集的数据,所要依据的算法种类具体得由其实现过程来确定。所收集的数据可以简单到对应具体服务器其上运行的进程数,或者是复杂到对应服务器上的各种性能指标和实时负载指标。虽然,PCW负载均衡调度算法需要周期性地、间断地收集并分析具体服务器的实时负载参数值,进而占用一定的集群系统资源,但这种额外性能负担相比于动态算法所带来的更好的负载均衡效果,就显得微不足道。

在一般的应用情形中,还可以按照所实现程序的安装分布情况,将动态负载均衡算法再进一步划分为集中式动态均衡算法、分布式动态均衡算法、集中分布式动态均衡算法。

(3)自适应负载均衡算法

自适应负载均衡算法的基本思想是,集群系统可以按照整个集群系统的负载变化趋势,动态地选择适合当前集群运行状况的负载均衡算法。这可以说是一个比较特殊的动态负载均衡算法。这种算法颇为复杂,具有很大的研究难度。目前在实际的使用和研究中,这种负载均衡调度算法的踪迹几乎没有,也不是本书的研究重点。

(二)负载均衡技术的研究热点

集群技术是一门综合了计算机多种技术的较新且具有广阔应用前景的学科,而负载均衡技术是集群技术中的关键部分。负载均衡技术的好坏直接关系到集群系统性能的高低。目前,关于负载均衡技术有三个重要的研究方向。

1.软件与硬件形式的负载均衡

软件形式的负载均衡解决方案,指的是在一台或多台计算机相应的操作系统上,安装一个或多个额外的负载均衡软件,并以该计算机来充当集群系统的负载均衡调度器。其优点是对硬件配置要求较低、使用十分灵活、成本也较低,可以满足大多数集群系统的负载均衡需要。硬件形式的负载均衡解决方案,是直接在服务器里面或外面安装特定的负载均衡设备,这种设备直接就能起到负载均衡调度器的作用。它的优点是不依赖于任何软件系统,整体性能较之软件形式的负载均衡有较大的提高,但其成本要昂贵得多。目前一般认为在集群技术的内部,应该一部分用软件来实现,而其他用硬件来实现。但是,到底哪些部分可以用软件进行实现,哪些部分应该用硬件进行实现,以取得一个同时兼顾到系统的性能与成本的效果,现在还没有一个统一的标准,还有待进一步研究。

2.本地与全局形式的负载均衡

从应用的地理范围上来看,负载均衡技术可以分为本地形式的负载均衡和全局形式的负载均衡。本地形式负载均衡是对本地的集群系统中的具体服务器所实现的负载均衡。全局形式负载均衡是在存在多台不同具体服务器设置在跨越较远地理位置,并且具有不同网络结构的同一个集群系统中所实现的负载均衡。本地形式负载均衡的优点在于集群系统可维护性较高、扩充升级也较为方便。全局形式负载均衡主要应用于在一个范围较广的区域内都拥有服务器节点的集群系统,为了使整个范围内的用户可以使用同一个IP地址域名登录到集群系统,并且是使用离自己最近的那台服务器,从而能够以最快的速度进行访问。本地形式与全局形式的负载均衡都有各自的优点,但全局形式的负载均衡技术使得一个集群跨越多个地区甚至是多个国家,地域较广,并且内部的网络结构千差万别,维护起来非常不方便。在欲构建一个服务范围较广的集群系统时,一般认为,可以结合这两种技术来同时满足不同需求。如何结合这两类负载均衡的优势来构建一个功能全面的集群系统,如何使全局形式的负载均衡可以让管理员更方便地进行维护等问题,都是目前负载均衡技术方面的重点研究方向。

3.较高的网络层次形式的负载均衡

负载均衡技术一般是在网络的第二层即以太网层上实现的。这里所说的较高的网络层所实现的负载均衡,通常是指实现在网络的第四层或第七层的负载均衡技术。网络第四层所实现的负载均衡技术通常是将一个广域网上合法的IP地址映射到内部某台具体服务器的IP地址,对不同的用户连接请求都动态映射到一个内部IP地址,尽量让不同的服务器接收不同的连接,从而达到负载均衡的目的。网络第七层所实现的负载均衡技术通常是检查数据包应用层头部的不同,来实现将不同用户连接向不同的具体服务器的转发。不同的网络层次上实现的负载均衡技术都有各自的特点,一般来说,越往上层,对系统资源的消耗越大。由于对同一个数据包的检查内容越多,那么对该数据包内容了解的就越多,就可以对该用户的连接实现更精细化的负载均衡,如可以针对不同的应用来进行负载均衡。在不同的集群系统中,应该选用哪一个网络层次来实现负载均衡技术,是一般的以太网层,还是较高的网络层或应用层,以及如何利用这些网络层来实现适用于不同环境的负载均衡技术等是目前负载均衡技术的研究重点。

4.针对Linux虚拟服务器系统的负载均衡技术

Linux虚拟服务器系统项目是国防科技大学的章文嵩博士带头创立的。该集群系统先后被多个网络公司使用,包括新浪网易等。该集群系统是一个开源项目,任何程序员都可以修改该项目中各个模块的代码,进行再开发,并重新拿到网上进行发布。该集群系统的特点是具有很好的可伸缩性、高可用性和易管理性。该集群系统中已经实现的主要有四种负载均衡算法,但这些算法考虑不够全面,不能稳定实现集群系统的负载均衡,并有可能使系统处于不稳定状态。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈