用于节能分布式和弹性负载均衡的方法和设备的制作方法

文档序号:6497736阅读:323来源:国知局
用于节能分布式和弹性负载均衡的方法和设备的制作方法
【专利摘要】本发明提供了用于提供负载均衡配置的方法和设备,该负载均衡配置适应于整体负载,并根据负载调整功耗以改善能量效率和可调整性。节能分布式和弹性负载均衡架构包括安排为树形结构的一组多层服务器。对输入的服务请求的处理在多个服务器之间进行分配。虚拟负载分配树中的每个服务器基于它自身的负载接受输入的服务请求。一旦接收服务器达到预定负载,接收服务器将输入的请求传递给它的一个或多个子服务器。
【专利说明】用于节能分布式和弹性负载均衡的方法和设备
【技术领域】
[0001 ] 本发明一般涉及用于提供服务器负载均衡的方法和设备。
【背景技术】
[0002]本部分对有助于更好地理解本发明的几个方面进行介绍。因此,要在这个基础上来阅读本部分的陈述,并且不应将这些陈述理解为承认什么是现有技术,或者什么不是现有技术。
[0003]在一些已知负载均衡系统中,可以在多个服务器上托管服务,以提供更高质量的服务,例如高吞吐量和低响应时间。典型的架构可以包括前端负载均衡器和固定数量的后端服务器。前端负载均衡器可以使专用硬件箱,专用硬件箱使用如下的常规分配策略来将输入的请求分配给不同的服务器,例如:随机分配、轮叫调度分配或基于负载的分配。在该模式中,所有的服务器节点都是活动的,并准备好为服务请求提供服务。
[0004]在其它已知的负载均衡系统中,只要服务器能够满足性能限制,前端负载均衡器就将新的请求发送至负载最大的服务器,以创造更多的机会使服务器保持低功耗状态。但是,该方案不可调整,这是因为跟踪大量异类服务器需要使用复杂且昂贵的前端负载均衡器。

【发明内容】

[0005]各种实施方式提供了用于提供负载均衡配置的方法和设备,该负载均衡配置适应于整体负载,并根据负载调整功耗以改善能量效率和可调整性。节能分布式和弹性负载均衡架构包括安排为树形结构的一组多层服务器。对输入的服务请求的处理在多个服务器之间进行分配。虚拟负载分配树中的每个服务器基于它自身的负载接受输入的服务请求。一旦接收服务器达到预定负载,接收服务器将输入的请求传递给它的一个或多个子服务器。
[0006]在一个实施方式中,提供了一种方法,该方法在父服务器处提供节能和弹性负载均衡。该方法包括:接收一个或多个客户端实例化(instantiate)的多个服务请求,基于服务请求来确定多个服务处理决定,多个服务处理决定对应于多个服务请求的至少一部分,基于服务处理决定中的第一服务处理决定来选择子服务器并基于第一服务请求来发送第一传播的服务请求,第一服务请求对应于第一服务处理决定,基于服务处理决定中的第二服务处理决定来选择父服务器并处理第二服务请求,第二服务请求对应于第二服务处理决定。
[0007]在一些实施方式中,处理第二服务请求的行为包括对第二服务请求的实例化客户端做出直接响应。
[0008]在一些实施方式中,所述方法包括:基于多个服务请求中的至少一个来确定父负载,父负载指示父服务器的负载并基于父负载和服务器负载阈值来唤醒父服务器的至少一个子服务器。
[0009]在一些实施方式中,所述方法还包括:基于多个服务请求中的至少一个来确定父负载,父负载指示父服务器的负载,接收父-父负载,父-父负载指示父-父服务器的负载,其中父-父服务器是父服务器的父服务器,并且基于父负载、父-父负载以及父-父负载阈值来将父服务器的运行切换为睡眠模式。
[0010]在一些实施方式中,所述方法还包括:登记子服务器和至少一个相关联的选择参数,至少一个相关联的选择参数为基于第一服务请求的;基于多个服务请求中的第三服务请求和登记的至少一个相关联的选择参数来选择子服务器,并且基于第三服务请求来发送第三传播的服务请求。
[0011]在第二实施方式中,提供了一种设备,该设备在父服务器处提供节能和弹性负载均衡。所述设备包括数据存储器和与数据存储器可通信地耦合的处理器。处理器被配置为:接收一个或多个客户端实例化的多个服务请求,基于服务请求来确定多个服务处理决定,多个服务处理决定对应于多个服务请求的至少一部分,基于服务处理决定中的第一服务处理决定来选择子服务器并基于第一服务请求来发送第一传播的服务请求,第一服务请求对应于第一服务处理决定,基于服务处理决定中的第二服务处理决定来选择父服务器并处理第二服务请求,第二服务请求对应于第二服务处理决定。
[0012]在一些实施方式中,对第二服务请求的处理包括将处理器进一步配置为:对第二服务请求的实例化客户端做出直接响应。
[0013]在一些实施方式中,处理器还被配置为:基于多个服务请求中的至少一个来确定父负载,父负载指示父服务器的负载并基于父负载和服务器负载阈值来唤醒父服务器的至少一个子服务器。
[0014]在一些实施方式中,处理器还被配置为:基于多个服务请求中的至少一个来确定父负载,父负载指示父服务器的负载,接收父-父负载,父-父负载指示父-父服务器的负载,其中父-父服务器是父服务器的父服务器,并且基于父负载、父-父负载以及父-父负载阈值来将父服务器的运行切换为睡眠模式。
[0015]在一些实施方式中,10处理器还被配置为:登记子服务器和至少一个相关联的选择参数,至少一个相关联的选择参数为基于第一服务请求的;基于多个服务请求中的第三服务请求和登记的至少一个相关联的选择参数来选择子服务器,并且基于第三服务请求来发送第三传播的服务请求。
[0016]在一些实施方式中,对子服务器的选择是基于子服务器和至少一个其它子服务器的子服务器负载的比例的,并且至少一个其它子服务器对应于父服务器的至少一个其它子服务器。
[0017]在第三实施方式中,提供了一种用于提供节能和弹性负载均衡的系统。所述系统包括通过网络可通信地耦合的多个服务器,以及与多个服务器可通信地耦合的服务请求处理器,多个服务器在逻辑上设置于虚拟负载分配树中。服务请求处理器被配置为:接收一个或多个客户端实例化的多个服务请求,基于服务请求来确定多个服务处理决定,多个服务处理决定对应于多个服务请求的至少一部分,基于服务处理决定中的第一服务处理决定来选择子服务器并基于第一服务请求来发送第一传播的服务请求,第一服务请求对应于第一服务处理决定,基于服务处理决定中的第二服务处理决定来选择父服务器并处理第二服务请求,第二服务请求对应于第二服务处理决定。
[0018]在一些实施方式中,虚拟负载分配树包括根服务器和至少两级服务器。[0019]在一些实施方式中,虚拟负载分配树是基于多个服务器中的至少一部分的初始延迟值和节能潜力。
[0020]在一些实施方式中,虚拟负载分配树是基于预测的系统负载的。
[0021]在一些实施方式中,多个服务器中的一个或多个是虚拟机。
[0022]在一些实施方式中,系统还包括:与多个服务器可通信地耦合的服务请求管理器。服务请求管理器配置为动态调整虚拟负载分配树。
[0023]在一些实施方式中,18服务请求管理器还被配置为:恢复故障服务器;其中多个服务器包括故障服务器;并且其中对故障服务器的恢复包括以下操作中的至少一个:选择所选的服务器以承担故障服务器的作用,其中多个服务器中包括所选的服务器;实例化新的服务器以承担故障服务器的作用,其中多个服务器中包括新的服务器;以及将故障服务器的负载分配给多个恢复服务器中的一个恢复服务器,其中多个服务器中包括恢复服务器。
[0024]在一些实施方式中,所述系统还包括与服务请求管理器可通信地耦合的共享资源池。
[0025]在一些实施方式中,服务请求管理器基于负载而在共享资源池和虚拟负载分配树之间对服务器进行动态分配。
【专利附图】

【附图说明】
[0026]在以下附图中显示了各种实施方式:
[0027]图1显示了负载均衡系统100,其包括节能分布式和弹性负载均衡架构110的实施方式;
[0028]图2显示了图1所示节能分布式和弹性负载均衡架构110的实施方式;
[0029]图3为显示了用于提供主备份服务的方法的实施方式的流程图,该方法使用图1所示的中间备份转发器120;
[0030]图4为显示了利用图1所示服务器120中的一个对服务请求进行处理的方法的实施方式的流程图;以及
[0031]图5概略示出了图1所示服务器120中的一个的实施方式的框图。
[0032]为帮助理解,使用相同的附图标记来表示具有基本上相同或相似的结构和/或基本上相同或相似的功能的元素。
【具体实施方式】
[0033]各种实施方式提供了用于提供负载均衡配置的方法和设备,该负载均衡配置适应于整体负载,并根据负载调整功耗以改善能量效率和可调整性。节能分布式和弹性负载均衡架构包括安排为树形结构的一组多层服务器。对输入的服务请求的处理在多个服务器之间进行分配。虚拟负载分配树中的每个服务器基于它自身的负载接受输入的服务请求。一旦在接收服务器上达到预定负载,接收服务器将输入的请求传递给它的一个或多个子服务器。
[0034]有利地,该弹性负载均衡架构允许系统对波动的系统负载进行补偿。首先,由于服务器在达到预定负载之前不将输入的请求传递给它的子服务器,子服务器在低活性期间可以设置为睡眠以减少能源使用,或再分配至共享资源池。其次,该弹性负载均衡架构允许系统在高负载期间将子服务器从共享资源池分派给服务器,以减少由于服务器容量不足而导致的拒绝服务的情况。再次,在服务器之间分配对输入服务请求的处理消除了对复杂昂贵的前端负载均衡器的需求。
[0035]图1显示了负载均衡系统100,其包括节能分布式和弹性负载均衡架构110的实施方式。节能分布式和弹性负载均衡架构110包括一组多层服务器120-a至120-g(统称为服务器120)。服务器120从一个或多个客户端150-a至150_c (统称为客户端150)接收服务请求并作出响应。来自客户端150的服务请求通过网络连接130在网络140上传递给服务器120。
[0036]服务器120具有将客户端服务请求路由至对请求进行处理的服务器120的智能,以及对客户端服务请求进行响应的资源和逻辑。服务器120被组织为虚拟负载分配树,该虚拟负载分配树具有至少一个父服务器(例如,服务器120-a)和至少一个子服务器(例如,服务器120-b和120-c是服务器120-a的子服务器)。架构可以具有任意数量的树层次,并且可以在每个树层次上改变树的度数(degree)(即,服务器的扇出)。树也可以是不均衡的。例如,一些父服务器可以具有两个子服务器,而其它的父服务器可有具有多于或少于两个子服务器和/或树的一些分支可以具有更大或更小的树层次。
[0037]在此限定,根服务器是位于虚拟负载分配树的顶层上的服务器(例如,服务器120-a),父服务器是将服务请求分配给至少一个子服务器的服务器(例如,服务器120-a、120-b和120-c),子服务器是从父服务器接收服务请求的服务器(例如,服务器120-b至120-g),叶服务器是不具有子服务器的服务器(例如,服务器120-d至120-g)。
[0038]可以理解的是,服务器可以既是父服务器又是子服务器。例如,服务器120-b是服务器120-a的子服务器,同时是服务器120-d和120-e的父服务器。
[0039]网络连接130可以支持在如下一个或多个通信信道上获取服务请求或对服务请求做出响应:无线通信U^^n,LTE,GSM,CDMA,if);飞蜂窝通信(例如,WiFi);分组网络通信(例如,IP);广播通信(例如,DOCSIS和DSL)等。应该理解,尽管网络连接130被描述为单一连接,但是网络连接130可以是任意数量的支持服务器120和网络140之间的通信的通信信道,或这些通信信道的任意组合。
[0040]网络140可以是任意促进服务器120至客户端150的通信的合适网络。例如,网络140可以是以下网络的任意组合:局域网(LAN),无线局域网(WLAN),广域网(WAN),城域网(MAN)等。
[0041]客户端150可以是针对节能分布式和弹性负载均衡架构110的实例化服务请求的客户端机器的类型或数量。例如,客户端可以是:服务器,手机,平板电脑,计算机,个人数字助理(PDA),电子 阅读器,网络设备(例如,交换机或路由器)和/或类似物。
[0042]在一些实施方式中,服务器120根据参数,例如初始延迟和节能潜力而排列于虚拟负载分配树中。服务器120的特定虚拟负载分配树排列的初始延迟和节能潜力可以基于多个因素被控制,例如:虚拟负载分配树的排列和单个服务器能力。一般而言,对于“η”个服务器的虚拟负载分配树设计,随着层级的数量增加,对服务请求的路由变得复杂度降低,能量效率增加,并且初始延迟变大。例如,对于“η”个服务器,具有一个根节点和(η-l)个叶节点的扁平树由于请求中继而具有最小延迟,但是复杂度最高,能量效率最差。在另一个极端,如果服务器组织为链条,(即,每个树层度数为I的虚拟负载分配树),则树简单而节能,但是延迟最高。如果服务器120具有不同的资源能力,则单个服务器能力可能影响树设计。特别地,可以基于服务器所能够处理的服务请求的容量而将服务器设置于虚拟负载分配树中。
[0043]在一些实施方式中,虚拟负载分配树在根服务器下面包括至少两层。在另一个实施方式中,可以基于预测的负载来设计虚拟负载分配树的一个层级中的服务器的度数。参考图2,显示了一天中预测负载的示例绘图。在图中可见,上午9:00和晚上8:00之间的负载预测为高达120,而晚上9:00和上午8:00之间的负载预测为低至30。在该例子中,虚拟负载分配树可以排列为在根服务器下面具有两个层级。第一层可以设计为处理30以下的负载,而第二层可以设计为处理高达120的负载。这可以通过以下方式实现:为虚拟负载分配树的第二层选择容量更高的单个服务器和/或对虚拟负载分配树的第二层使用更高的度数(更多的服务器)。
[0044]在一些实施方式中,服务器120可以是同类的,在其它实施方式中,服务器120可以是异类的。应该理解,通过保持低服务器复杂度,可以不需要特殊硬件。
[0045]在一些实施方式中,服务器120可以完全由低成本商用服务器构成,以形成成本有效的系统。应该理解,由于将客户端服务请求路由至服务器120的智能分布于多个服务器120中,不需要特殊的硬件箱用作中央负载分配器。
[0046]在一些实施方式中,两个或更多个服务器120可以通过LAN互相连接。在一些实施方式中,两个或更多个服务器120可以通过WAN,例如因特网互相连接。应该理解,服务器120中的每一个不必以相同的方式连接,甚至不必通过相同类型的通信信道和/或协议连接。
[0047]在一些实施方式中,两个或更多个服务器120可以是虚拟机。在另一个实施方式中,虚拟机服务器的一部分可以存在于相同的物理硬件上。在一些实施方式中,一个或多个虚拟机服务器可以包括在不同硬件资源上分配的资源。在另一个实施方式中,这些硬件资源的至少第一部分可以位于与这些硬件资源的至少第二部分不同的地理位置。
[0048]在一些实施方式中,虚拟负载分配树可以调整为动态生长或收缩,(即,增加和删除服务器)和/或基于负载来修改虚拟负载分配树的排列。可以基于虚拟负载分配树的系统负载和/或虚拟负载分配树中的一个或多个服务器的负载来确定负载。例如,可以基于虚拟负载分配树的从父服务器开始的分支,或者基于虚拟负载分配树中的单个服务器的负载来确定负载。
[0049]在另一个实施方式中,动态增加到虚拟负载分配树或从虚拟负载分配树动态删除的服务器的至少一部分可以增加到共享资源池或从共享资源池删除。共享资源池可以是一组在多个应用/服务之间共享的资源和/或服务器。独立的共享资源池管理器可以使用常规的资源管理方法来对资源/服务器的分配进行管理。在另一个实施方式中,资源池管理器是超级管理器,其管理对云资源的请求。超级管理器可以响应于来自一个服务器120的请求而提供对一组资源(例如,虚拟机)的接入。
[0050]在一些实施方式中,服务器120排列于虚拟负载分配树中,虚拟负载分配树使用节能分布式和弹性负载均衡架构110服务请求管理器(未示出)。服务请求管理器可以位于服务器120中的一个或多个服务器上,(例如,根服务器120-a),和/或服务器120外的一个或多个独立服务器上。服务请求管理器可以将虚拟负载分配树参数传播给服务器120,以在服务器之间产生关系。虚拟负载分配树参数可以包括任何合适的参数,例如:帮助指定服务器何时应该对请求进行处理的参数,帮助指定服务器何时应该将请求发送给它的子服务器的参数,帮助指定何时生成新的子服务器(例如,在可调整的虚拟负载分配树中)的参数,帮助指定低功耗模式中的子服务器何时应该被唤醒的参数,和/或类似参数。
[0051]在一些实施方式中,服务请求管理器对虚拟动态负载树进行动态管理。特别地,月艮务请求管理器可以管理在此描述的对虚拟负载分配树的调整,或管理服务器的故障恢复。例如,如果服务器120中的一个服务器出现故障,该故障服务器可以从网络中排除。此外,可以挑选/实例化另一个服务器来承担故障服务器的作用,或将故障服务器的负载分配给存活服务器。应该理解,这样的架构能够避免链路和节点瓶颈,并且能从网络故障复原。还应该理解,服务请求管理器可以通过常规网络(例如,网络360)与服务器120通信。
[0052]图4描述了显示了利用服务器120中的一个对服务请求进行处理的方法的实施方式的流程图。参考图1,服务器从父服务器或直接从客户端150中的一个客户端接收服务请求(例如,步骤400的步骤410)。如果接收服务器确定请求应该由子服务器处理(例如,步骤400的步骤420),则接收服务器选择子服务器来处理请求(例如,步骤400的步骤430),将请求发送给选择的子服务器(例如,步骤400的步骤440)并可选地对请求进行登记以促进将来的请求(例如,步骤400的步骤450)。如果接收服务器确定应该由自己来处理请求(例如,步骤400的步骤420),则接收服务器对请求进行处理(例如,步骤400的步骤460),可选地对请求进行登记以促进将来的请求(例如,步骤400的步骤470)并且接下来可选地确定是否唤醒子服务器以使子服务器准备好处理将来的服务请求(步骤400的步骤480和490)。
[0053]在方法400中,步骤410包括接收服务器从父服务器或直接从客户端150中的一个客户端接收服务请求。参考图1,来自客户端150中的一个客户端的服务请求最初由根服务器接收到。接下来,根服务器可以基于传播决定通过虚拟负载分配树来传播服务请求。应该理解,虚拟负载分配树中接收传播的服务请求的根服务器和每个父服务器的行为相同。
[0054]在方法400中,步骤420包括确定接收服务器是否应该将服务请求传播给子服务器,或者由自己处理服务请求。
[0055]在方法400中,步骤430包括选择处理服务请求的子服务器。可以使用常规分配策略,基于前面登记的选择,和/或基于服务请求的要求和子服务器的能力之间的映射来选择子服务器。
[0056]在方法400中,步骤440包括将请求发送给所选的子服务器。应该理解,传播至所选子服务器的请求可以与接收到的请求相同,或者可以被接收服务器修改。
[0057]方法400可选地包括步骤450。步骤450包括对请求进行登记,以促进将来的请求。特别地,对于包含多个连续数据包的服务请求,可以登记所选服务器的数据包流。应该理解,对于一些类型的服务请求,优选或需要特定服务器来处理属于相同服务请求的所有数据包。
[0058]在方法400中,步骤460包括对服务请求进行处理。例如,常规的网络负载均衡可以分配基于TCP/IP的服务请求,例如Web,终端服务,虚拟专用组网,及串流媒体服务器。
[0059]方法400可选地包括步骤470。步骤470包括对请求进行登记,以促进将来的请求,如同步骤450中所描述的那样。
[0060]方法400可选地包括步骤480和490。步骤480和490包括确定是否唤醒子服务器以使子服务器准备好处理将来的服务请求。应该理解,服务器需要保持断电状态,或其它深度睡眠模式以消耗零能量。当服务请求被发送至所选服务器440时(例如,步骤440),可以使用诸如“远程唤醒”(wake-on-LAN)这样的常规技术来唤醒子服务器,但是,唤醒子服务器通常需要花费延长的时间,在该转换期间,服务请求可能无法交付。由此,父服务器可以包括步骤480,以主动唤醒一个或多个子服务器。特别地,服务器可以基于父服务器的负载和/或对将来负载的历史预测(例如,图2和相关描述)来确定是否唤醒子服务器。有利地,主动唤醒一个或多个子服务器可以帮助父服务器避免出现超限情况。
[0061]在方法400的一些实施方式中,步骤420包括确定接收服务器已达到其容量,并且不能再处理将来的请求。在其它的实施方式中,步骤420包括确定接收服务器已达到某些预定负载或百分比或负载。
[0062]在方法400的一些实施方式中,步骤430包括使用分配策略,如:随机分配,轮叫调度分配或基于负载的分配。在方法400的一些实施方式中,步骤430包括选择能够满足性能限制的负载最大的子服务器,以创造更多的机会使服务器保持低功耗状态。在方法400的一些实施方式中,步骤430包括选择与每个子服务器的负载能力成正比的子服务器。
[0063]在方法400的一些实施方式中,步骤430包括基于子服务器的能力和服务请求的要求之间的映射来选择子服务器。例如,父服务器的第一子服务器可以被配置为比第二子服务器更有效地处理流媒体请求。
[0064]在方法400的一些实施方式中,步骤430包括基于实例化服务请求的客户端(例如,图1所示的客户端150)来选择子服务器。例如,在一些实施方式中,一个或多个服务器(例如,图1所示的服务器120)可以专用于客户端中的一个或多个客户端。
[0065]在方法400的一些实施方式中,步骤450和/或470包括将数据包流登记到根服务器上,由此随后的数据包可以直接传递给所选的服务器。有利地,通过登记数据包流,可以降低延迟和选择错误。
[0066]在方法400的一些响应实施方式中,步骤460包括直接回复做出请求的客户端(例如,图1所示的客户端150-a)。
[0067]在这些响应实施方式中的第一实施方式中,目的地址在响应中被修改。有利地,通过将目的地址修改为响应服务器的地址,请求客户端能够将将来的数据包直接发送给响应服务器,无需遵循虚拟负载分配树路径。
[0068]在这些响应实施方式中的第二实施方式中,服务请求的目的地址不在对请求客户端的响应中被修改。有利地,通过利用未修改的目的地址进行响应,将来的服务请求仍将发送给根服务器。在另一个实施方式中,每个服务器120包含唯一的主地址和第二虚拟地址,第二虚拟地址在虚拟负载分配树中的服务器120之间共享。
[0069]在方法400的一些实施方式中,方法还可以包括确定将父服务器转为睡眠模式。在另一个实施方式中,父服务器可以基于自己的负载和服务器的父服务器的负载来确定进入睡眠模式。特别地,当服务器没有调度的工作(例如,服务请求任务)并且服务器的父服务器的负载低于阈值水平时,服务器进入节能睡眠模式。应该理解,父服务器和子服务器可以通过常规通信协议和常规网络(例如,图3所示的网络360)的连接来传送负载参数。[0070]在步骤450和490之后,方法400返回至步骤410以重复接受和处理服务请求的过程。
[0071]尽管是以特定序列进行描绘和描述,但是应该理解,方法400中显示的步骤可以任意合适的序列执行。此外,由一个方框表示的步骤也可以在序列中的不止一个地方执行。
[0072]例如,可选步骤480和490可以在过程中的任意一点执行。此外,在接收到服务请求之前它们甚至可以在过程之外执行。
[0073]在图1所示的节能分布式和弹性负载均衡架构110的一些实施方式中,服务器120中的一个或多个包括服务请求处理器,服务请求处理器执行方法400的步骤。在另一个实施方式中,每个服务器120都包括服务请求处理器。可以理解,服务请求处理器可以存在于服务器120中的一个或多个服务器上,(例如,服务器120中的每一个服务器),和/或服务器120外的一个或多个独立服务器上。
[0074]应该理解,各种上述方法中的步骤能够由程控计算机执行。在此,一些实施方式还涵盖如数据存储介质这样的程序存储装置,程序存储装置为可由机器或计算机读取,并且编码可由机器或计算机执行的指令程序,其中所述指令执行上述方法的一些或所有步骤。例如,程序存储装置可以是数字存储器,诸如磁盘和磁带这样的磁性存储介质,硬盘,或光学可读的数据存储介质。实施方式还涵盖编程为执行上述方法的步骤的计算机。
[0075]图5概略示出了图1所示服务器120中的一个的实施方式。例如,服务器120可以使用方法400执行在此描述的功能。服务器120包括处理器510、数据存储器511和I/O接口 530。
[0076]处理器510控制服务器120的运行。处理器510与数据存储器511合作。
[0077]数据存储器511可以存储负载参数(例如,图4所示的步骤420,430,450,470和480),并缓存接收和发送的服务请求和服务器间的通信(例如,图4所示的步骤410,440,450,460和470)。数据存储器511还存储可由处理器510执行的程序520。
[0078]处理器可执行的程序510可以包括I/O接口程序,服务器请求处理器程序523,和/或服务请求管理器程序525。处理器510与处理器可执行的程序520合作,以实施图1至4所示的功能和/或执行方法400的步骤。
[0079]I/O接口 530被配置为支持任意合适数量的信道,任意合适数量的信道支持任意合适数量的会话(例如,任意合适数量的IP流),任意合适数量的会话在特定服务器120和一个或多个客户端(例如,图1中所示的客户端150-a至150-c)和一个或多个服务器(例如,图1中所示的服务器120)之间传输。I/O接口 530可以支持任意合适类型的通信路径和通信协议。例如,通信路径可以包括无线通信(例如,GSi^PCDMA);有线通信;分组网络通信(例如,IP);宽带通信(例如,DSL)等,以及它们的各种组合。
[0080]在一些实施方式中,服务器120为专门设计的网络接口卡(NIC)。在另一个实施方式中,NIC提供服务请求处理。有利地,由于NIC处理输入的服务请求,服务器主机可以聚焦于其核心功能并将其资源专用于提供服务。应该理解,服务器主机可以向NIC提供负载指示和其它合适参数。
[0081]在一些实施方式中,服务器主机可以在NIC上设置忙碌比特,以表明主机繁忙,不能再接受新的请求。在该实施方式中,NIC可以基于虚拟负载分配树而自动将新服务请求转发给合适的服务器。有利地,NIC硬件加速可以进一步降低服务延迟。[0082]当处理器可执行的程序520在处理器520上实施时,程序代码段与处理器组合在一起,以提供唯一的设备,该设备的运行与特定逻辑电路相近。
[0083]尽管参考实施方式进行描绘和描述,例如,在这些实施方式中程序和逻辑存储在数据存贮器中并且存储器可通信地耦合至处理器,但是,应该理解的是,这种信息可以任意合适的方式进行存储(例如,使用任意合适数量的存贮器,存储器或数据库);使用与任意合适的设备可通信地耦合的任意合适的存储器,存贮器或数据库;将信息存储在存储器,存贮器和/或内部或外部数据库的任意合适组合中;或使用任意合适数量的可接入外部存储器,存贮器或数据库。由此,在此提到的术语“数据存贮器”的意思是包括存储器,存贮器和数据库的所有合适组合。
[0084]说明书和附图仅仅展示了本发明的原理。因此,必须理解的是,本领域技术人员能够想出各种配置,尽管在此未明显描述或显示,这些配置能够实现本发明的原理并且包含于本发明的精神和范围内。此外,所有在此描述的例子原则上仅用于教学目的,以帮助读者理解本发明的原理及发明人对推动现有技术所贡献的想法,并且不应理解为受限于这些特别描述的例子和条件。此外,在此描述原理,方面,本发明的实施方式,以及其特定例子的所有陈述应理解为包含其等价物。
[0085]所有附图,包括标记为“处理器”的功能框中所示的各种元素的功能可以通过使用专用硬件和与合适软件相关的能够执行软件的硬件来实现。当提供有处理器时,功能可以由单个专用处理器提供,由单个共享处理器提供,或由多个处理器提供,多个处理器中的一些可以被共享。此外,术语“处理器”或“控制器”的明确使用不应理解为独指能够运行软件的硬件,可以非限制性地隐含数字信号处理器(DSP)硬件,网络处理器,特殊应用集成电路(ASIC),现场可编程门阵列(FPGA),用于存储软件的只读存储器(ROM),随机接入存储器(RAM)和非易失存储器。还可以包括其它常规和/或定制硬件。类似地,图中示出的所有开关仅仅是概念上的。它们的功能可以通过程序逻辑的运行实现,通过专业逻辑实现,通过程序控制和专用逻辑的交互实现,甚或通过实施者可选择的特定技术手动实现,可以从上下文来更具体地理解特定技术。
[0086]应该理解,本文中的任何框图代表体现本发明原理的说明性电路的概念视图。类似地,可以理解的是,任何流程图,流程图表,状态转换图,虚拟码等均代表各种程序,这些程序随后可以被呈现在计算机可读的介质中,并由计算机或处理器执行,而不管该计算机或处理器是否被明确地示出。
【权利要求】
1.一种用于在父服务器处提供节能和弹性负载均衡的方法,该方法包括: 在与数据存储器可通信地耦合的处理器处,接收一个或多个客户端实例化的多个服务请求; 由所述处理器与所述数据存储器合作以便基于所述服务请求来确定多个服务处理决定,所述多个服务处理决定对应于所述多个服务请求的至少一部分; 由所述处理器与所述数据存储器合作以便基于所述服务处理决定中的第一服务处理决定服务处理决定来选择子服务器,并基于第一服务请求来发送第一传播的服务请求,所述第一服务请求对应于所述第一服务处理决定;以及 由所述处理器与所述数据存储器合作以便基于所述服务处理决定中的第二服务处理决定来选择所述父服务器,并处理第二服务请求,所述第二服务请求对应于所述第二服务处理决定。
2.如权利要求1所述的方法,其中处理所述第二服务请求的行为包括:对所述第二服务请求的实例化客户端做出直接响应。
3.如权利要求1所述的方法,该方法还包括: 由所述处理器与所述数据存储器合作以便基于所述多个服务请求中的至少一个服务请求来确定父负载,所述父负载指示所述父服务器的负载;以及 由所述处理与所述数据存储器合作以便基于所述父负载和服务器负载阈值来唤醒所述父服务器的至少一个子服 务器。
4.如权利要求1所述的方法,该方法还包括: 由所述处理器与所述数据存储器合作以便基于所述多个服务请求中的至少一个服务请求来确定父负载,所述父负载指示指示所述父服务器的负载; 由所述处理器与所述数据存储器合作以便接收父-父负载,所述父-父负载指示指示父-父服务器的负载,其中所述父-父服务器是所述父服务器的父服务器;以及 由所述处理器与所述数据存储器合作以便基于所述父负载、所述父-父负载以及父-父负载阈值来将所述父服务器的运行切换到睡眠模式。
5.如权利要求1所述的方法,该方法还包括: 由所述处理器与所述数据存储器合作以便登记所述子服务器和至少一个相关联的选择参数,所述至少一个相关联的选择参数是基于所述第一服务请求的; 由所述处理器与所述数据存储器合作以便基于所述多个服务请求中的第三服务请求和至少一个登记的相关联的选择参数来选择所述子服务器;以及基于第三服务请求来发送第三传播的服务请求。
6.一种节能和弹性负载均衡设备,该设备包括: 数据存储器;以及 与所述数据存储器可通信地耦合耦合的处理器,该处理器被配置为: 接收一个或多个客户端实例化的多个服务请求; 基于所述服务请求来确定多个服务处理决定,所述多个服务处理决定对应于所述多个服务请求的至少一部分; 基于所述服务处理决定中的第一服务处理决定来选择子服务器,并基于第一服务请求来发送第一传播的服务请求,所述第一服务请求对应于所述第一服务处理决定;以及基于所述服务处理决定中的第二服务处理决定来选择所述父服务器并处理第二服务请求,所述第二服务请求对应于所述第二服务处理决定。
7.如权利要求6所述的设备,其中所述处理器还被配置为: 基于所述多个服务请求中的至少一个服务请求来确定父负载,所述父负载指示所述父服务器的负载; 接收父-父负载,所述父-父负载指示父-父服务器的负载,其中所述父-父服务器是所述父服务器的父服务器;以及 基于所述父负载、所述父-父负载以及父-父负载阈值来将所述父服务器的运行切换为睡眠模式。
8.如权利要求6所述的设备,其中所述处理器还被配置为: 登记所述子服务器和至少一个相关联的选择参数,所述至少一个相关联的选择参数是基于所述第一服务请求的; 基于所述多个服务请求中的第三服务请求和登记的所述至少一个相关联的选择参数来选择所述子服务器;以及 基于第三服务请求来发送第三传播的服务请求。
9.如权利要求6所述的设备,其中对所述子服务器的选择是基于所述子服务器和至少一个其它子服务器的子服务器负载的比例的,所述至少一个其它子服务器对应于所述父服务器的至少一个其它子服务器。
10.一种用于提供节能和弹性负载均衡的系统,该系统包括: 通过网络可通信地耦合的多个服务器,所述多个服务器在逻辑上设置于虚拟负载分配树中;以及 与所述多个服务器可通信地耦合的服务请求处理器,该服务请求处理器被配置为: 接收一个或多个客户端实例化的多个服务请求; 基于所述服务请求来确定多个服务处理决定,所述多个服务处理决定对应于所述多个服务请求的至少一部分; 基于所述服务处理决定中的第一服务处理决定来选择子服务器,并基于第一服务请求来发送第一传播的服务请求,所述第一服务请求对应于所述第一服务处理决定;以及 基于所述服务处理决定中的第二服务处理决定来选择所述父服务器并处理第二服务请求,所述第二服务请求对应于所述第二服务处理决定。
11.如权利要求10所述的系统,其中所述虚拟负载分配树包括根服务器和至少两级服务器。
12.如权利要求11所述的系统,其中所述虚拟负载分配树是基于所述多个服务器中的至少一部分的初始延迟值和节能潜力。
13.如权利要求11所述的系统,其中所述虚拟负载分配树是基于预测的系统负载的。
14.如权利要求11所述的系统,该系统还包括: 与所述多个服务器可通信地耦合的服务请求管理器,该服务请求管理器被配置为: 动态地调整所述虚拟负载分配树。
15.如权利要求14所述的系统,其中所述服务请求管理器还被配置为: 恢复故障服务器;其中所述多个服务器包括所述故障服务器;并且 其中对所述故障服务器的恢复包括以下操作中的至少一个: 选择所选的服务器来承担所述故障服务器的作用,其中所述多个服务器中包括所选的服务器; 实例化新的服务器以承担所述故障服务器的作用,其中所述多个服务器中包括所述新的服务器;以及 将所述故障服务器的负载分配给多个恢复服务器中的一个恢复服务器,其中所述多个服务器中包括所述恢复服务器。
【文档编号】G06F9/50GK104011686SQ201280063285
【公开日】2014年8月27日 申请日期:2012年11月19日 优先权日:2011年12月22日
【发明者】H·宋, F·郝, T·V·拉克斯曼 申请人:阿尔卡特朗讯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1