专利名称:为多个实例应用操作负荷均衡器的系统和方法
技术领域:
本申请一般涉及为多个实例应用操作负荷均衡器。
背景技术:
近来的应用结构通常支持应用的集群执行。集群执行就是把应用的执行称为一组系统(集群节点)上实例(大多情况下是相同的实例)的集合,以致在那些系统中分布和均衡工作负荷。如果任一特定集群节点故障,工作负荷在剩余系统上继续,和通常一样或者在性能上有一些降低。
集群执行有许多优点。例如,集群执行具有较高可用性,因为集群节点的故障不会引起全部应用的故障。另外,集群执行典型地导致低成本,因为在使用较小服务器的递增的基础上可能出现扩展,而不是使用较大的服务器来替换单个服务器。同样的原因,可能出现较快的分布式应用的缩放。
发明内容
在一具有代表性的实施方式中,一种为多个实例应用操作负荷均衡器的系统包括多个用于执行应用的集群节点、用于在多个集群节点间分布应用事务(transactions)的多个负荷均衡器、和分析与多个应用相关的性能数据并响应于该分析动态配置多个负荷均衡器的配置进程,其中所述多个集群节点的至少一个子集执行多个应用,并且该子集包括响应与该多个应用相关的性能数据在多个应用之间分配资源的相应资源分配模块。
在另一具有代表性的实施方式中,一种方法包括在多个集群节点上执行多个应用,其中所述多个集群节点的至少一个子集执行多个应用;响应与多个应用相关的性能数据在多个应用之间动态再分配资源;根据参数在多个集群节点间分布应用事务;以及响应与多个应用相关的性能数据动态配置参数。
在另一具有代表性的实施方式中,一种计算机可读介质包括用于在多个集群节点上检索与应用的执行相关的性能数据的代码,其中所述多个集群节点的至少一个子集执行多个应用;用于使用性能数据计算多个集群节点加权集的代码;以及用于使用该多个集群节点加权集来动态配置负荷均衡器以控制应用事务到多个集群节点的分布的代码。
图1描绘了一种集群系统。
图2描绘了一种根据一具有代表性的实施方式的集群系统。
图3描绘了一种根据一具有代表性的实施方式用于控制应用事务在集群系统中的分布的流程图。
图4描绘了一种可以用于实现一具有代表性的实施方式的系统。
具体实施例方式
图1描绘了根据公知的集群系统设计的集群系统100。集群系统100包括集群节点110a-110c,这些节点的每一个都执行应用“a”的实例。集群节点110a-110c形成对客户机140而言看起来像单个系统的“应用集群”。集群系统100还包括集群节点110d-110f,这些节点的每一个都执行应用“b”的实例。节点110d-110f形成对客户机140而言看起来像单个系统的另一应用集群。
通常,用于应用的集群节点的数量根据相应应用最坏情况的需求水平来选择。应用事务由客户机140生成,并且经由网络130路由到负荷均衡器120a和120b。负荷均衡器120a和120b典型地使用加权循环(round-robin)算法把应用事务导向到特定的集群节点110来处理。因此,当大量的客户机试图访问集群应用时,与那些客户机相关的处理被分布在多个集群节点上,并且应用的性能虽然降低了,但典型地维持在一个可接受的水平上。如果应用在峰值负荷期间没有表现出可接受的性能,那么附加集群节点可以增加到集群系统100以获取改善的应用性能。然后各自的负荷均衡器120可以根据新节点110相对于已有节点110能力的能力来手工重新调整。
虽然集群系统具有很多优点,但是集群系统也受到一些局限。当资源根据最坏情况的需求水平被选择时,集群节点可能经受低的全部利用率。特别地,如果应用的峰值负荷在持续时间上相对短,那么与特定应用相关的集群节点可能空闲一部分重要的时间。因此,空闲的系统资源被浪费了。
一具有代表性的实施方式使空闲或否则未充分利用的系统资源被以一种有效的方式来管理。在一具有代表性的实施方式中,一些集群节点执行多个应用,并且这些集群节点包括各自的性能监视器,这些监视器分析该多个应用的性能。性能监视器传送性能数据给工作负荷管理器。工作负荷管理器响应于性能数据和服务水平目标,在应用间重新调整处理器资源或其它资源的分配。因此,在特定时刻较重负荷的应用接收附加的处理资源或其它资源来满足增加的负荷。
实施方式的配置工具(configuration utility)周期性地查询各种集群节点来确定哪些应用正被每个各自的节点执行。并且由配置工具查询工作负荷管理器的各种实例,以获取与各种应用相关的性能信息。与各自节点上的应用相关的负荷特性也可以通过检查工作负荷队列或其它适当的队列来分析。另外,所述配置工具可以识别分配给各种集群节点的资源。使用所获得的信息,配置工具计算加权系数来在集群节点上分布应用事务。所述配置工具把所计算的加权传送给负荷均衡器来控制事务到集群节点的分布。
这样,一些具有代表性的实施方式使得集群系统中较少量的节点能够被用来支持与使用传统集群结构所使用的相比相同数量的应用。通过促使多个应用在一些应用节点上实例化,将使多个应用可以使用更大量的资源,而不需增加额外的节点。然后可以响应于负荷需求来分配资源。特别是当峰值负荷出现时,附加处理器和/或其它资源能被分配给经受繁忙业务的应用。由于资源被动态分配,负荷均衡器被适当调整。因此,资源的动态分配使得能改善应用的性能,因为应用事务特别是针对集群节点,所述集群节点已经为各自事务的处理分配了额外的资源。
图2描绘了根据一个具有代表性的实施方式的集群系统200。集群系统200包括多个集群节点(示为210a-210g)。集群一般涉及便于模块化计算的硬件和/或软件连通性。集群典型地包括适当服务器的多个实例,它们相互合作来提供增加的应用的可伸缩性和可靠性。构成集群的服务器的多个实例可以在同样的物理系统或多个物理系统上运行。例如,每个集群节点210可以表示用于支持各自服务器的单个物理系统的虚拟计算资源。可替换地,独立的物理平台可用于执行每个服务器。
如图2所示,应用“a”的实例在节点210a-210f上被提供,以及应用“b”的实例在节点210b-210g上被提供。应用a和b处理通过网络130从客户机140接收到的应用事务。特别是,集群别名(aliasing)使得应用a的应用事务将被路由到负荷均衡器201a和应用b的应用事务将被路由到负荷均衡器201b。于是负荷均衡器201a和201b在节点210间分布用于应用的事务,以均衡各自节点210上的负荷。在一具有代表性的实施方式中,负荷均衡器201a和201b实现加权循环分布算法。负荷均衡器201a和201b可以使用适当的硬件(例如集成电路)和/或使用在一个或多个处理器上执行的软件来实现。负荷均衡器201a和201b也可以实现为分立器件,或者可替换地可以在一个或多个节点210上来实现。
一些实施方式的性能监视器(PM)212是检查应用性能的软件进程。例如,性能监视器212可以检查处理器的利用率、输入/输出(IO)资源的利用率、和/或处理一定类型事务花费的时间长度等等。性能监视器212可以把性能数据传送给工作负荷管理器(WLM)211,该管理器也可以是根据一些实施方式的软件进程。
服务水平目标(SLO)指的是期望的与应用相关的操作目的或规则。SLO可以定义期望的利用率、和/或期望的处理特定事务类型的时间长度等等。如果应用不能满足一个或几个SLO,那么工作负荷管理器212可以在应用间重新分布资源(例如处理器213、存储器资源、IO资源、和/或操作系统资源等等)。例如,如果一个应用占有空闲资源,则WLM 211可以把资源重新分配给正在执行的应用。重新分配的资源可以使正在执行的应用能够满足其一个或多个SLO。另外,如果需要,虚拟分区(partition)和分区负荷管理器软件进程(没有示出)也可以被使用。关于性能监视器、工作负荷管理器、虚拟分区、和分区负荷管理器的进一步细节已在美国专利以较详细的细节公开,该美国专利序列号为NO.10/206,594、公开号为20030037092、标题为“Dynamicmanagement of virtual partition computer workloads throughservice level optimization(通过服务水平最佳化动态管理虚拟分区计算机工作负荷)”、申请日为2002年7月26日,该专利在此被引入作为参考。
虽然一具有代表性的实施方式使用工作负荷管理器来重新分配资源,但任何适当的资源分配机制或算法都可以使用。其它根据系统200的变型也可以使用。例如,具有代表性的实施方式不需要为每个集群节点使用同样的服务器平台或虚拟资源。不同数量的处理器213、可变容量的处理器213、和其它资源差异可以出现在各自的集群节点上。另外,工作负荷管理器或其他资源分配功能性部件不需要在每个集群节点上实现。
一实施方式的配置工具240是软件进程,该软件进程协调负荷均衡器201和集群节点210的操作。在一具有代表性的实施方式中,配置工具240周期性地确定哪个应用在每个集群节点210上执行,和哪个节点拥有WLM 211的实例或其它动态资源分配能力。而且配置工具240从节点210获得与应用的执行相关的性能数据。配置工具240也可以获得用于每个集群节点210的应用负荷特性。作为一个例子,所述应用负荷特性可以通过检查工作负荷或其它适当队列来获得。配置工具240也可以检查分配给每个各自的集群节点210的资源。响应于所获得的信息,配置工具240计算用于负荷均衡器201a和201b的加权集。例如,在一实施方式中,配置工具240可以计算用于每个节点的加权,该加权与通过相关工作负荷队列的长度划分和通过处理器利用率划分的处理器的数量有关。
图3描绘了用于管理根据一具有代表性的实施方式的集群系统中的操作的流程图。作为一个实例,图3可以使用适当的用于配置工具240的可执行指令或软件代码来实现。在方框301中,在每个集群中的节点可以被识别。在一个或多个集群中增加新节点也可以在该方框中检测到。这些操作可以通过查询负责管理各自的集群的管理服务器来完成。在方框302中,具有WLM能力或其它适当的动态资源分配能力的节点可以被识别。所述识别可以通过检查在每个集群节点上执行的使用适当的系统调用或者其它函数调用的进程产生。在方框303中,在识别出的节点上从多个WLM收集分配资源数据、负荷数据、和/或性能数据。作为例子,这些信息可以通过查询多个WLM 211来获得。在方框304中,使用所收集的数据计算集群节点加权。在方框305中,负荷均衡器被重新配置。所计算的集群节点加权被提供给负荷均衡器来从而使用适当分布算法引导应用事务。另外,如果任何新的节点被检测到,那么适当负荷均衡器的节点列表将被更新。
当以软件实现时,本发明的元件实质上就是执行必要任务的代码段。程序或代码段可以存储在计算机可读介质上,或在传输介质上通过包含在载波中的计算机数据信号或通过载波调制的信号发送。所述“计算机可读介质”可以包括任何能够存储或转移信息的介质。所述计算机可读介质的例子包括电子电路、半导体存储器件、ROM、闪存、可擦除ROM(EROM)、软盘、只读光盘CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路等。所述代码段可以通过诸如互联网、内联网等的计算机网络来下载。
图4举例说明根据一个具有代表性的实施方式适配的计算机系统400。中央处理单元(CPU)401被耦合到系统总线402。CPU 401可以是任意通用CPU。然而,本发明不受CPU 401的结构的限制,只要CPU 401支持如这里描述的本发明的操作就可以。总线402耦合到随机存取存储器(RAM)403,该随机存取存储器可以是SRAM、DRAM或SDRAM。ROM 404也耦合到总线402,该ROM可以是PROM、EPROM或EEPROM。正如本领域所众所周知的,RAM 403和ROM 404保存用户和系统数据和程序。
总线402也耦合到输入/输出(I/O)控制器卡405、通信适配器卡411、用户接口卡408和显示卡409。I/O卡405连接到存储装置406(诸如一个或多个硬盘驱动器、CD驱动器、软盘驱动器、磁带驱动器),从而连接到计算机系统。存储装置406可以存储用于控制事务路由到集群结构的节点的软件或可执行代码。例如,存储装置406可以存储根据一具有代表性实施方式的实现配置工具240的可执行代码。
通信卡411适于把计算机系统400耦合到网络412上,该网络412可以是本地网(LAN)、广域网(WAN)、以太网或互联网中的一个或多个。在一个可替换的实施方式中,定义配置工具240的可执行指令可以通过通信卡411经由网络412接收。用户接口卡408把诸如键盘413和定点设备407之类的用户输入装置耦合到计算机系统400。显示卡409由CPU 401驱动,来控制显示设备410上的显示。
通过控制事务的分布,一些具有代表性的实施方式可以提供许多优点。例如,在峰值负荷期间,相同数量的集群节点可以用来给应用提供更大量的资源,而不降低其它应用的性能。另外,集群系统中可以增加集群节点,并且负荷均衡的功能性部件将自动地适应附加的资源,而不需要复杂的手工配置活动。而且,因为一些具有代表性的实施方式响应于性能数据、负荷数据和其它适当的数据控制集群系统的操作,所以集群节点不需要拥有同一处理能力和其它能力。特别是在一种动态改变的系统中,应用事务可以被自动引导到适当的集群节点。
权利要求
1.一种为多个实例应用操作负荷均衡器的系统,包括多个用于执行应用的集群节点(210),其中所述多个集群节点的至少一个子集执行多个应用,并且该子集包括响应与所述多个应用相关的性能数据在所述多个应用之间分配资源的相应资源分配模块;用于在所述多个集群节点之间分布应用事务的多个负荷均衡器(201);和分析与所述多个应用相关的性能数据并响应于所述分析动态配置所述多个负荷均衡器的配置进程(240)。
2.如权利要求1所述的系统,其中,所述配置进程在所述性能数据的分析期间分析与相应的集群节点相关的应用负荷。
3.如权利要求1所述的系统,其中,所述配置进程提交查询以识别在所述多个集群节点上执行的应用,并且响应于所述查询配置所述多个负荷均衡器。
4.如权利要求1所述的系统,其中,所述配置进程自治地检测集群节点到所述集群系统的增加,并且响应于所述增加重新配置所述多个负荷均衡器的至少一个子集。
5.如权利要求1所述的系统,其中,所述多个集群节点中的每一个都包括用于产生性能数据的性能监视器进程(212)。
6.一种方法,包括在多个集群节点(210)上执行多个应用,其中所述多个集群节点的至少一个子集执行多个应用(APPa,APPb);响应与所述多个应用相关的性能数据,在所述多个应用之间动态重新分配资源;根据参数在所述多个集群节点之间分布应用事务;和响应与所述多个应用相关的性能数据动态配置所述参数。
7.如权利要求6所述的方法,其中,所述动态配置包括分析集群节点的应用负荷特性。
8.如权利要求6所述的方法,还包括识别在所述多个集群节点上执行的应用;和响应于所述识别动态配置所述参数。
9.如权利要求6所述的方法,还包括检测集群节点到所述集群系统的增加;和响应于所述检测动态配置所述参数。
10.如权利要求6所述的方法,其中,所述动态重新分配资源根据与所述多个应用相关的服务水平目标重新分配资源。
全文摘要
在一具有代表性的实施方式中,一种用于为多个实例应用操作负荷均衡器的系统包括多个用于执行应用的集群节点(210),其中所述多个集群节点的至少一个子集执行多个应用,并且该子集包括响应与所述多个应用相关的性能数据在所述多个应用之间分配资源的相应资源分配模块;用于在所述多个集群节点之间分布应用事务的多个负荷均衡器(201);和分析与所述多个应用相关的性能数据并响应该分析动态配置所述多个负荷均衡器的配置进程(240)。
文档编号G06F9/46GK1728098SQ200510088110
公开日2006年2月1日 申请日期2005年7月29日 优先权日2004年7月30日
发明者D·E·赫林顿, B·贝克 申请人:惠普开发有限公司