CN109416650A - 具有加权散列函数的集中式负载均衡器 - Google Patents
具有加权散列函数的集中式负载均衡器 Download PDFInfo
- Publication number
- CN109416650A CN109416650A CN201780041272.8A CN201780041272A CN109416650A CN 109416650 A CN109416650 A CN 109416650A CN 201780041272 A CN201780041272 A CN 201780041272A CN 109416650 A CN109416650 A CN 109416650A
- Authority
- CN
- China
- Prior art keywords
- load
- container
- weight
- load balancer
- allocator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0882—Utilisation of link capacity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/78—Architectures of resource allocation
- H04L47/781—Centralised allocation of resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1031—Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Hardware Design (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
公开了用于在多个虚拟机(VM)之间对来自中央分派器(103)的负载进行均衡的的方法、装置和机器可读存储介质,其中分派器接收数据分组(104),并使用加权散列函数(106)将数据分组映射到从多个VM(108、110、112)中选择的VM,散列函数(106)具有用于每个VM相关联的权重,并且相应地将每个分组转发到VM,其中响应于所述第一VM上的负载超过第一负载阈值的指示,负载均衡器减小所述加权散列函数的用于所述第一VM的权重。权重可以对应于与所述每个VM相关联的容器的数目。响应于从VM接收到邀请(107)和取消邀请(105)消息来调整权重,表示它们各自的负载。
Description
技术领域
本发明涉及计算机系统,并且更具体地涉及用于数据中心网络的改进的负载均衡器。
背景技术
服务器是数据中心中有争议的最有价值的资源,但由于数据中心网络中连接的复杂性和超额预订,服务器往往被严重过度使用或未充分使用。服务器的有效利用是一个动态的资源分配问题,可以通过良好的负载均衡器来解决。传统观点是,为了使负载均衡器有效运行,它需要来自服务器和/或虚拟机(VM)的重要状态信息。如果建议的负载均衡器旨在对数据中心中的所有服务器和VM进行全局监督,则此问题尤其严重。另外,数据中心中的许多任务涉及优选地分配给同一服务器的一系列分组(流),因此使得资源分配问题在较大规模上变得复杂。因此,可扩展性同时保持流完整性是一项挑战。即使在小型数据中心(诸如建议的VINE(虚拟集成网络边缘)-规模数据中心)中,向服务器和VM的流分配通常也很差,使得服务器利用率低下。
上述情况的原因是负载均衡器(LB)通常本地化为一个机架或最多是数据中心中的一小簇机架。这种限制来自于需要避免大量状态信息以跟踪数据中心中的作业。处理自包含作业(意味着作业不包含具有相同5元组的一系列分组)的最先进的LB通常使用循环调度或经由‘散列函数’实现的更高效的随机循环版本。在对于基于流的作业平衡负载时,随机循环通常按如下方式工作:从分组头部读取用于流的所有相关信息(即:由源IP地址、目标IP地址、协议、源端口和目标端口组成的5元组),然后经由散列函数唯一地映射到VM地址。散列函数确保对于所有VM的集合,每个VM平均接收进入数据中心的流的总数的相等部分,并且该映射在没有从服务器或VM到负载均衡器的状态交换的情况下有效地执行。如果所有VM的性能一致并且流处理要求具有小的变化,则这种用于基于流的负载平衡的负载平衡机制可以相对良好地工作。实际上,由于多种因素,但主要是因为服务器/VM的性能差别很大,即使它们最初的大小相同,这些条件通常都不正确;以及流处理要求通常具有大的变化性的重尾(heavy-tailed)特征。这两个因素可以导致在具有传统甚至最先进的负载均衡器的数据中心中服务器/VM的低效且经常大量的未利用/过度利用。在网络和排队文献中,在一定程度上可以缓解这些问题的备选动态负载均衡器已经被提出。然而,这些负载均衡器通常缺乏对于分组化业务的流感知概念,并且在获得实际上禁止的状态信息时会产生通信开销,导致可扩展性差。这种方案的一个示例是随机循环调度器系列(有时称为“k次幂”调度器),其中k个随机选择的服务器/VM的状态被检查,并且向最少负载的服务器/VM进行分配。进一步的示例是服务器在空闲时从集中队列请求作业的方案。
因此,非常希望改进一般的负载均衡器,尤其是集中式负载均衡器。
发明内容
提出了各种示例性实施例的简要概述。在以下概述中可以进行了一些简化和省略,其旨在突出和介绍各种示例性实施例的一些方面,而不是限制本发明的范围。足以允许本领域的普通技术人员制造和使用本发明构思的优选示例性实施例的详细描述将在后面的部分中进行。
各种示例性实施例涉及一种用于在多个虚拟机(VM)之间对来自中央分派器的负载进行均衡的方法。方法包括以下步骤:在分派器处接收数据分组;使用加权散列函数,将数据分组映射到从多个VM中选择的第一VM,加权散列函数具有用于每个VM的相关联的权重;以及将数据分组转发至第一VM,其中响应于第一VM上的负载超过第一负载阈值的指示,负载均衡器减小加权散列函数的用于第一VM的权重。
在各种备选实施例中,第一VM上的负载超过第一负载阈值的指示包括从第一VM接收到取消邀请消息。
在各种备选实施例中,响应于第二VM上的负载降至第二负载阈值以下的指示,负载均衡器增大用于第二VM的权重。
在各种备选实施例中,第二VM上的负载降至第二负载阈值以下的指示包括从第二VM接收到邀请消息。
在各种备选实施例中,将数据分组映射到第一VM包括:将数据分组映射到从与第一VM相关联的多个容器中选择的第一容器,其中用于每个VM的权重对应于与每个VM相关联的容器的数目。
在各种备选实施例中,响应于接收到取消邀请消息,负载均衡器减小用于第一VM的权重还包括以下步骤:确定与第一VM相关联的多个容器中的哪个容器是最不活跃的;将最不活跃的容器重新分配给负载小于第二负载阈值的第三VM;相应地增大用于第三VM的权重。
在各种备选实施例中,确定与第一VM相关联的多个容器中的哪个容器是最不活跃的包括:监控去往多个容器中的每个容器的业务达到预定时间间隔,以及对于预定时间间隔,确定与第一VM相关联的多个容器中的哪个容器具有最小数目的分组到达。
在各种备选实施例中,确定哪个容器是最不活跃的包括:对于预定时间间隔,确定与第一VM相关联的多个容器中的哪个容器具有最大分组间到达间隔。
在各种备选实施例中,响应于从第三VM接收到邀请消息,负载均衡器确定第三VM具有小于第二负载阈值的负载。
其他实施例提供了一种集中式负载均衡器,用于在多个虚拟机(VM)之间对来自中央分派器的负载进行均衡。负载均衡器包括:分派器,用于接收数据分组以及将数据分组转发至多个VM;处理器和存储器。存储器还包括处理器可执行的程序指令,程序指令用于:在分派器处接收数据分组;使用加权散列函数,将数据分组映射到从多个VM中选择的第一VM,加权散列函数具有用于每个VM的相关联的权重;以及将数据分组转发至第一VM,其中响应于第一VM上的负载超过第一负载阈值的指示,负载均衡器减小加权散列函数的用于第一VM的权重。
其他实施例提供了一种有形的非瞬态机器可读存储介质,其上编码有用于由集中式负载均衡器执行的指令,其中有形的非瞬态机器可读存储介质包括用于以下操作的指令:在分派器处接收数据分组;使用加权散列函数,将数据分组映射到从多个VM中选择的第一VM,加权散列函数具有用于每个VM的相关联的权重;以及将数据分组转发至第一VM,其中响应于第一VM上的负载超过第一负载阈值的指示,负载均衡器减小加权散列函数的用于第一VM的权重。
附图说明
现在仅通过示例并参考附图,描述根据本发明实施例的装置和/或方法的一些实施例,其中:
图1示出了具有加权散列函数的集中式负载均衡器的框图;
图2示出了用于在集中式分派器处处理数据分组的处理流程图;
图3示出了用于在集中式负载均衡器处处理取消邀请消息的处理流程图;
图4示出了用于在集中式负载均衡器处处理邀请消息的处理流程图;
图5示出了用于在VM处处理负载信息的处理流程图;
图6示出了加权散列函数的备选实施例的抽象表示;
图7说明了使用邀请/取消邀请方案的经验比较响应时间;以及
图8示出了网络设备处理器组件的高级别框图。
在附图中,相同的特征由相同的参考字符表示。
具体实施方式
将描述集中式负载均衡器(CLB)或控制器的实施例,用于专注于小型的、VINE规模数据中心(即大约100个服务器机架的量级),将流分配至服务器/VM,如设想在虚拟集成网络边缘(VINE)中,其充当用于对网络和因特网的无线和有线访问的软件定义网络(SDN)/虚拟化元件。
在VINE规模数据中心的背景下,所描述的实施例可以带来服务器和VM的显著地更好的利用,并且还实现显著地更好的响应时间、服务时间抖动,损失以及与QoS相关联的其他度量,其中一些是新兴接入节点技术(例如:虚拟化互联网协议多媒体子系统(vIMS);虚拟化服务器网关(vSGW);虚拟化边界网关(vBGW);和虚拟化内容交付网络(vCDN))平稳运行的关键。
各种实施例创建加权散列函数,其以偏置而非统一的方式将流映射到VM。通过“邀请/取消邀请”的方案,权重根据活跃的VM指导被调整。前一句中提到的偏置是基于负载指示符计算的,负载指示符作为用于在预先指定的时间窗口期间的VM的实际性能的代理。来自服务器/VM的“邀请”和“取消邀请”消息是服务器/VM提供给负载均衡器以重新调整散列函数的权重的反馈。
向“邀请堆栈”馈送从各种VM接收的邀请消息,并且当负载均衡器响应于取消邀请消息,基于邀请消息将容器重新分配给VM时,“邀请堆栈”由负载均衡器控制。在将最不活跃的容器重新分配给在邀请器堆栈中具有消息的特定VM之后,从邀请堆栈中删除邀请消息。
现在参考附图,其中相同的标号表示相同的组件或步骤,公开了各种示例性实施例的广泛方面。
图1示出了集中式负载均衡器102的框图,该集中式负载均衡器102使用具有容器机制的加权散列函数接收传入分组104并将它们转发到VM 108、110、112,如将描述的。分派器103(不是排队元件)接收传入分组104并经由静态散列函数106将传入分组映射到足够大数量的容器116、120(通常比VM的数量多10倍的容器)。因此,例如,传入分组114已被分配给容器116,并且传入分组118已被分配给容器120。然后,分派器103确定哪个VM与容器116相关联,并将传入分组116转发到该VM(108)。注意,图1中的容器的描绘示出了虚拟容器(116、120、......、124),而不是队列。输入的分组在VM(108、110、...、112)处物理排队。
负载均衡器102维护动态容器表(参见表1),动态容器表存储容器向VM的分配。在后台进程中,负载均衡器102基于其还计算的“权重”来确定与每个VM相关联的哪些容器。最初,每个VM与相同数量的容器相关联。容器向VM的分配被存储在动态容器表(如表1所示)中。一旦经由静态散列函数将传入分组映射到特定容器,就会在此容器表中执行查找,然后分组被转发至相应的VM。
散列函数应该以确定的且快速的方式工作。优选地,属于同一流的所有分组应该映射到同一服务器/VM。这有时被称为“粘性(stickiness)”。为了实现粘性,如表1所示,容器定时器与每个容器相关联,以确定流何时逻辑结束,并且即使散列值与先前映射到不同服务器/VM的散列值相同,也因此可以将容器重新分配至新的服务器/VM。
当用于过载的和欠载的VM的邀请/取消邀请反馈被接收并且用于与取消邀请消息相关联的容器的分组到达被跟踪时,容器被动态地重新分配,并且容器表被相应地更新。用于典型VINE数据中心的动态容器表大约为100,000个双列条目,可通过标准分组处理器以微秒或更快的速度轻松处理。容器定时器的典型值大约为10ms。容器定时器跟踪分组被散列到特定容器中的最近时间,并提供用于该容器相关联的流量的业务活动级别的代理。这继而提供了在将容器重新分配给不同VM时对潜在破坏程度(粘性违规)的估计。
表1:由负载均衡器管理的容器表
容器 | 相关联的VM | 标记 | 容器定时器 |
容器1 | VM 3 | 1 | 10 |
容器2 | VM 1 | 0 | 50 |
容器3 | VM 3 | 1 | 1000 |
… | … | … | |
容器m | VM m | 0 | BT m |
当在邀请/取消邀请请求时没有空闲容器以重新分配时,负载均衡器102可选地维护每个VM的邀请/取消邀请状态的表(参见表2)。状态在邀请堆栈中维护,堆栈可以是按时间排序的LIFO(后进先出)列表。表2还可以显示每个VM的散列权重(例如,相关联的容器的数量),这些散列权重通常是整数值,并且可以是1、2、3、10、20的数量级。通过邀请/取消邀请进程和容器表维护散列权重。
表2-在负载均衡器处
VM | 邀请/取消邀请 | 散列权重 |
VM 1 | 邀请 | 10 |
VM 2 | 取消邀请 | 1 |
… | … | 50 |
VM n | I/DI n | HW n |
图2示出了用于在负载均衡器102处处理数据分组的处理流程图。该处理在步骤202开始。在步骤204,分派器103接收新的传入分组。在步骤206,分派器103使用散列函数106以基于分组报头中的分组流五元组计算散列值,然后将传入分组映射到与计算的散列值对应的容器。在步骤208,分派器103使用容器表(表1)来查找与已经映射了传入分组的容器相关联的VM,然后将该分组转发到相关联的VM。在步骤210,分派器103确定是否已经为容器设置了标记,如果是,则在步骤212,分派器103重置容器定时器。该过程然后在步骤220结束。
负载均衡器102可以从各种VM(108、110......112)以及异步地从传入分组业务接收取消邀请消息105。图3示出了用于在负载均衡器102处处理取消邀请消息的处理流程图。该处理在步骤302开始。在步骤304,负载均衡器102接收来自VM的取消邀请消息105。在步骤306,负载均衡器102为当前分配给该VM的所有容器设置容器表(表1)中的标记。在步骤308,负载均衡器102等待预先指定的活动监视时段,而在步骤310,负载均衡器102根据最大容器定时器的值、最小的分组到达数量或最大分组到达间隔,确定与VM相关联的最不活动的容器(从具有标记集的容器中)。在步骤312,负载均衡器102重置与VM相关联的所有标记。在步骤314,负载均衡器102将所识别的最不活跃的容器重新分配给邀请堆栈中的具有最新消息的另一VM。注意,这可能会导致将映射到该容器的任何正在进行的流的分组被重定向到不同的VM。
在步骤316,负载均衡器102更新容器表(表1)以反映上述识别的最不活跃容器的重新分配。处理在步骤318结束。
在取消邀请消息的情况下调整“权重”之前,分派器开始跟踪用于当前分配给该服务器/VM的容器(散列值)的到达分组的数量和/或到达时间。然后,分派器重新分配被确定为最不活跃的容器(散列值),例如,根据最大容器定时器值、最小分组到达数量或最大分组间到达间隙,确保将任何正在进行的流的分组重定向到不同的服务器/VM的低可能性。作为结果,邀请/取消邀请反馈的操作通常比流的完成时间慢,这通常比单个分组的处理慢。因此,所描述的用于流-感知负载均衡器的实施例的权重调整的动态比用于流-非感知的分组调度负载均衡器的速度调整慢。由于欠载/过载情况,模拟已经显示出对邀请/取消邀请消息的充分响应。映射到服务器/VM的确定性和流的粘性(stickiness-of-flow)有助于确保每个流的分组遵循数据中心中的相同路径并且不沿不同路径中断/分离,导致需要重新组装。
图4示出了用于在集中式分派器处处理邀请消息的处理流程图。该处理在步骤402开始。在步骤404,负载均衡器102接收来自VM的邀请消息107。在步骤406,负载均衡器102刷新邀请堆栈中的VM的时间戳。该处理在步骤408结束。
对上述方案的增强涉及长久流的外源性确定,因而进一步提高了CBL的性能,如下所述。由于到分派器的传入流可能是“大象流”(例如,具有高分组速率的长久流)和“鼠标流”(例如,具有低分组速率的短暂流)的混合,通过对于大象流使用容器表以及对鼠标流使用单独的容器,负载平衡可以被进一步提高。可以使用基于TCP端口信息或应用签名的已知技术立即检测大象流。生成两个容器表应该能够实现灵活性和更精细的负载平衡粒度。例如,可以实现双层负载平衡,其中大象流以慢速时间尺度被分配给服务器,而小鼠流以更快的时间尺度被分配。
每个VM维护简单的负载估计,例如,通过几何平滑,以最小化内存需求。每次更新负载估计时(例如,定期),检查负载是否已降至低于或高于某些目标值,在这些情况下,邀请(低于目标负载1)或取消邀请(高于目标负载2)消息被分别发送至分派器。负载的频率更新,以及因此邀请和取消邀请消息的频率应该与负载平滑的时间尺度相称,并且被选择以便实现在VM处对负载变化的响应性和由邀请和取消邀请消息导致的与分派器交换的信息量之间的最佳权衡。目标负载范围的下限和上限是进一步的设计参数,可以根据实证结果设置或通过学习技术优化,也可以选择在负载均衡器的灵活性和通信开销程度之间达到最佳平衡。
图5示出了用于在VM处处理负载信息的处理流程图。该处理在步骤502开始。在步骤504,VM计算负载估计,如上所述。在步骤506,VM确定负载是否低于预设负载目标1,如果是,则在步骤508,VM向负载均衡器102发送邀请消息,并且该处理在步骤510结束。如果在步骤506,VM确定负载不低于预设负载目标1,则在步骤512,VM确定负载是否大于预设负载目标2,如果是,则在步骤514,VM向负载均衡器102发送取消邀请消息,并且该处理在步骤510结束。如果在步骤512,VM确定负载不大于预设负载目标2,则处理在步骤510结束。设置负载目标1和负载目标2阈值,以便很少调用它们,除非标称负载目标与实际观察到的负载之间存在非常大的不匹配。
以上说明书描述了使用容器来实现加权散列函数的加权的示例性实施例。应当理解,可以预期其他实施例,例如使用如图6中的抽象图所示的数据结构600。圆圈表示总权重100。在该示例中,四个VM:VM1、VM2、VM3、VM4被分别分配权重10、20、30和40,如所示的围绕圆分布的VM,每个圆分段的长度表示相应VM的权重。当分派器接收到分组时,通过散列函数将分组的5元组均匀地映射到圆周上。具有较高权重的VM将按比例分配比具有较低权重的VM更多的数据流。
图7示出了基于实验室模拟,使用所描述的邀请-取消邀请方案708的实施例相比于使用现有技术的随机循环分派器706的分组处理时间的样本经验比较的分组处理时间。可以看出,对于所描述的邀请-取消邀请方案708,4%(0.04概率)的分组超过20ms的响应时间,相比而言,对于现有技术的随机循环方案706,24%的分组超过20ms的响应时间;对于所描述的邀请-取消邀请方案708,0.4%的分组超过100ms的响应时间,相比而言,对于现有技术的随机循环方案706,15%的分组超过100ms的响应时间。
图8描绘了适用于执行此处描述的功能的网络设备处理器组件的高级别框图。
如图8所示,网络设备处理器组件800包括网络设备处理器元件802(例如,中央处理单元(CPU)和/或其他合适的处理器)、存储器804(例如,随机存取存储器(RAM))、只读存储器(ROM)等)、协作模块/进程808,以及各种输入/输出设备806(例如,用户输入设备(诸如键盘、小键盘、鼠标等))、用户输出设备(例如显示器、扬声器等)、输入端口、输出端口、接收器、发送器和存储设备(例如,磁带驱动器、软盘驱动器、硬盘驱动器、光盘驱动器等))。
应当理解,此处描绘和描述的功能可以用硬件实现,例如使用一个或多个专用集成电路(ASIC)和/或任何其他硬件等同物。或者,根据一个实施例,协作进程808可以加载到存储器804中并由网络设备处理器802执行以实现这里讨论的功能。同样,协作进程808(包括相关联的数据结构)可以存储在有形的非瞬态计算机可读存储介质上,例如磁性或光学驱动器或磁盘,半导体存储器等。
可以预期,此处作为方法讨论的一些步骤可以在硬件内实现,例如,作为与网络设备处理器协作以执行各种方法步骤的电路。此处描述的功能/元件的部分可以实现为计算机程序产品,其中计算机指令在由网络设备处理器处理时适配网络设备处理器的操作,使得调用此处描述的方法和/或技术或者以其他方式调用提供。用于调用本发明方法的指令可以存储在固定或可移动介质中,和/或存储在根据指令操作的计算设备内的存储器内。
图中所示的各种元素的功能,包括被标记为“处理器”或者“逻辑”的任何功能块,可以通过使用专用硬件以及与适当的软件相关联的、能够执行软件的硬件来提供。当由处理器提供时,这些功能可以由单一的专用处理器提供,由单一的共享处理器提供,或者由多个单独的处理器提供,其中的一些处理器可以被共享。此外,术语“处理器”或“控制器”或“逻辑”的显式的使用不应当被理解为仅指代能够执行软件的硬件,而是可以隐含地包括但不限于,数字信号处理器(DSP)硬件、网络处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、用于存储软件的只读存储器(ROM)、随机存取存储器(RAM)和非易失性存储器。也可以包括常规的和/或定制的其他硬件。类似地,图中所示的任何开关仅是概念性的。它们的功能可以通过编程逻辑的操作、通过专用逻辑、通过编程控制和专用逻辑的交互、或者甚至手动地来执行,如从上下文更具体地理解的,可由实现者来选择特定的技术用于执行。
本领域技术人员应当理解,此处的任何框图表示体现本发明原理的说明性电路的概念图。类似地,应当理解,任何流程表、流程图、状态转换图、伪代码等表示可以基本上在计算机可读介质中表示并且因此由计算机或处理器执行的各种处理,无论这样的计算机、或处理器是否被明确示出。
还应该理解的是,这里阐述的示例性方法的步骤不一定需要以所描述的顺序执行,并且这些方法的步骤的顺序应该被理解为仅仅是示例性的。同样地,在与本发明的各种实施例一致的方法中,可以在这些方法中包括附加步骤,并且可以省略或组合某些步骤。
尽管以下方法权利要求中的要素(如果有的话)以具有相应标记的特定顺序列举,除非权利要求书中暗示用于实现这些要素中的一些或全部的特定序列,否则这些要素不一定旨在限于以该特定顺序实施。
这里对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征,结构或特性可以包括在本发明的至少一个实施例中。在说明书中各处出现的短语“在一个实施例中”不一定都指代相同的实施例,也不一定是与其他实施例互斥的单独或替代实施例。这同样适用于术语“实施”。
说明书和附图仅说明了本发明的原理。因此应当理解,本领域的技术人员将能够设计不同的布置,这些配置尽管在此没有明确描述或者示出,但是体现了本发明的原理并且被包括在本发明的精神和范围之内。此外,在此所述的所有示例主要地清楚地旨在于仅用于教导的目的以帮助读者理解本发明的原理以及由发明人为了推进本领域所贡献的概念,并且应被理解为不限于这些具体描述的示例和条件。此外,此处中描述了本发明的原理、方面和实施例及其具体示例的所有陈述旨在于涵盖其等价物。
本领域技术人员应该理解,这里的任何框图表示体现本发明原理的说明性电路的概念图。在不脱离权利要求中限定的本发明的范围的情况下,可以对上述本发明的实施例进行许多修改,变化和调整。
Claims (10)
1.一种用于在多个虚拟机(VM)之间对来自中央分派器的负载进行均衡的方法,所述方法包括以下步骤:
在所述分派器处接收数据分组;
使用加权散列函数,将所述数据分组映射到从所述多个VM中选择的第一VM,所述加权散列函数具有用于每个VM的相关联的权重;以及
将所述分组转发至所述第一VM,
其中响应于所述第一VM上的负载超过第一负载阈值的指示,负载均衡器减小所述加权散列函数的用于所述第一VM的权重。
2.根据权利要求1所述的方法,其中所述第一VM上的所述负载超过第一负载阈值的所述指示包括从所述第一VM接收到取消邀请消息。
3.根据权利要求1和2中任一项所述的方法,其中响应于第二VM上的负载降至第二负载阈值以下的指示,所述负载均衡器增大用于所述第二VM的权重。
4.根据权利要求3所述的方法,其中所述第二VM上的所述负载降至第二负载阈值以下的所述指示包括从所述第二VM接收到邀请消息。
5.根据权利要求1和4中任一项所述的方法,其中将所述数据分组映射到第一VM包括:将所述数据分组映射到从与所述第一VM相关联的多个容器中选择的第一容器,
其中用于每个VM的所述权重对应于与所述每个VM相关联的容器的数目。
6.根据权利要求5所述的方法,其中响应于接收到所述取消邀请消息,所述负载均衡器减小用于所述第一VM的权重还包括以下步骤:
确定与所述第一VM相关联的所述多个容器中的哪个容器是最不活跃的;
将所述最不活跃的容器重新分配给负载小于第二负载阈值的第三VM;以及
相应地增大用于所述第三VM的所述权重。
7.根据权利要求6所述的方法,其中所述确定与所述第一VM相关联的所述多个容器中的哪个容器是最不活跃的包括:监控去往所述多个容器中的每个容器的业务达到预定时间间隔,以及对于所述预定时间间隔,确定与所述第一VM相关联的所述多个容器中的哪个容器具有最小数目的分组到达。
8.根据权利要求7所述的方法,其中确定哪个容器是最不活跃的包括:对于所述预定时间间隔,确定与所述第一VM相关联的所述多个容器中的哪个容器具有最大分组间到达间隔。
9.根据权利要求6所述的方法,其中响应于从所述第三VM接收到邀请消息,所述负载均衡器确定所述第三VM具有小于所述第二负载阈值的负载。
10.一种用于在多个虚拟机(VM)之间对来自中央分派器的负载进行均衡的集中式负载均衡器,所述负载均衡器包括:
分派器,用于接收数据分组和用于将所述数据分组转发至所述多个VM;
处理器和存储器,所述存储器还包括所述处理器可执行的程序指令,所述程序指令用于:
在所述分派器处接收数据分组;
使用加权散列函数,将所述数据分组映射到从所述多个VM中选择的第一VM,所述加权散列函数具有用于每个VM的相关联的权重;以及
将所述分组转发至所述第一VM,
其中响应于所述第一VM上的负载超过第一负载阈值的指示,所述负载均衡器减小所述加权散列函数的用于所述第一VM的权重。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/198,731 US10142407B2 (en) | 2016-06-30 | 2016-06-30 | Centralized load balancer with weighted hash function |
US15/198,731 | 2016-06-30 | ||
PCT/US2017/036478 WO2018005033A1 (en) | 2016-06-30 | 2017-06-08 | Centralized load balancer with weighted hash function |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109416650A true CN109416650A (zh) | 2019-03-01 |
Family
ID=59093619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780041272.8A Pending CN109416650A (zh) | 2016-06-30 | 2017-06-08 | 具有加权散列函数的集中式负载均衡器 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10142407B2 (zh) |
EP (1) | EP3479232A1 (zh) |
JP (1) | JP2019522936A (zh) |
CN (1) | CN109416650A (zh) |
WO (1) | WO2018005033A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114945006A (zh) * | 2021-02-16 | 2022-08-26 | 瞻博网络公司 | 确定针对网络设备的速率差分加权公平输出队列调度 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101856857B1 (ko) * | 2016-09-09 | 2018-05-11 | 현대오트론 주식회사 | 메시지 통신 부하 제어 장치 및 방법 |
US10476945B2 (en) * | 2017-02-01 | 2019-11-12 | Juniper Networks, Inc. | Consistent flow assignment in load balancing |
CN109067869A (zh) * | 2018-08-01 | 2018-12-21 | 郑州云海信息技术有限公司 | 云计算系统中微服务节点的管理方法和装置 |
CN108769271A (zh) * | 2018-08-20 | 2018-11-06 | 北京百度网讯科技有限公司 | 负载均衡的方法、装置、存储介质和终端设备 |
US10841225B2 (en) * | 2019-03-06 | 2020-11-17 | Arista Networks, Inc. | Load balancing using dynamically resizable consistent hashing |
US10965602B2 (en) * | 2019-03-14 | 2021-03-30 | Intel Corporation | Software assisted hashing to improve distribution of a load balancer |
US11582120B2 (en) | 2019-05-30 | 2023-02-14 | Vmware, Inc. | Partitioning health monitoring in a global server load balancing system |
US11811861B2 (en) * | 2021-05-17 | 2023-11-07 | Vmware, Inc. | Dynamically updating load balancing criteria |
US11799824B2 (en) | 2021-06-14 | 2023-10-24 | Vmware, Inc. | Method and apparatus for enhanced client persistence in multi-site GSLB deployments |
CN113608751B (zh) * | 2021-08-04 | 2023-04-07 | 北京百度网讯科技有限公司 | 推理服务平台的运行方法、装置、设备及存储介质 |
US12107821B2 (en) | 2022-07-14 | 2024-10-01 | VMware LLC | Two tier DNS |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102918813A (zh) * | 2010-06-08 | 2013-02-06 | 阿尔卡特朗讯公司 | 用于数据负载均衡的设备和方法 |
US20130145365A1 (en) * | 2011-12-01 | 2013-06-06 | Tunghai University | Method for managing green power of a virtual machine cluster |
US20130263151A1 (en) * | 2012-04-03 | 2013-10-03 | Microsoft Corporation | Consistent Hashing Table for Workload Distribution |
CN104010028A (zh) * | 2014-05-04 | 2014-08-27 | 华南理工大学 | 一种云平台下性能加权的虚拟资源动态管理策略方法 |
CN104516832A (zh) * | 2013-10-08 | 2015-04-15 | 国际商业机器公司 | 操作数据处理系统的方法、数据处理系统以及处理器 |
CN104836819A (zh) * | 2014-02-10 | 2015-08-12 | 阿里巴巴集团控股有限公司 | 动态负载均衡的方法、系统及监控调度设备 |
CN105159775A (zh) * | 2015-08-05 | 2015-12-16 | 浪潮(北京)电子信息产业有限公司 | 基于负载均衡器的云计算数据中心的管理系统和管理方法 |
US20150365349A1 (en) * | 2014-06-16 | 2015-12-17 | Verizon Patent And Licensing Inc. | Automated server cluster selection for virtual machine deployment |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6970913B1 (en) | 1999-07-02 | 2005-11-29 | Cisco Technology, Inc. | Load balancing using distributed forwarding agents with application based feedback for different virtual machines |
US7099915B1 (en) | 2000-06-30 | 2006-08-29 | Cisco Technology, Inc. | Server load balancing method and system |
US20040210663A1 (en) | 2003-04-15 | 2004-10-21 | Paul Phillips | Object-aware transport-layer network processing engine |
US8095935B2 (en) * | 2008-06-26 | 2012-01-10 | Microsoft Corporation | Adapting message delivery assignments with hashing and mapping techniques |
US9621642B2 (en) * | 2013-06-17 | 2017-04-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods of forwarding data packets using transient tables and related load balancers |
US9602428B2 (en) | 2014-01-29 | 2017-03-21 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for locality sensitive hash-based load balancing |
-
2016
- 2016-06-30 US US15/198,731 patent/US10142407B2/en active Active
-
2017
- 2017-06-08 WO PCT/US2017/036478 patent/WO2018005033A1/en unknown
- 2017-06-08 JP JP2018568698A patent/JP2019522936A/ja not_active Withdrawn
- 2017-06-08 EP EP17731977.9A patent/EP3479232A1/en not_active Withdrawn
- 2017-06-08 CN CN201780041272.8A patent/CN109416650A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102918813A (zh) * | 2010-06-08 | 2013-02-06 | 阿尔卡特朗讯公司 | 用于数据负载均衡的设备和方法 |
US20130145365A1 (en) * | 2011-12-01 | 2013-06-06 | Tunghai University | Method for managing green power of a virtual machine cluster |
US20130263151A1 (en) * | 2012-04-03 | 2013-10-03 | Microsoft Corporation | Consistent Hashing Table for Workload Distribution |
CN104516832A (zh) * | 2013-10-08 | 2015-04-15 | 国际商业机器公司 | 操作数据处理系统的方法、数据处理系统以及处理器 |
CN104836819A (zh) * | 2014-02-10 | 2015-08-12 | 阿里巴巴集团控股有限公司 | 动态负载均衡的方法、系统及监控调度设备 |
CN104010028A (zh) * | 2014-05-04 | 2014-08-27 | 华南理工大学 | 一种云平台下性能加权的虚拟资源动态管理策略方法 |
US20150365349A1 (en) * | 2014-06-16 | 2015-12-17 | Verizon Patent And Licensing Inc. | Automated server cluster selection for virtual machine deployment |
CN105159775A (zh) * | 2015-08-05 | 2015-12-16 | 浪潮(北京)电子信息产业有限公司 | 基于负载均衡器的云计算数据中心的管理系统和管理方法 |
Non-Patent Citations (1)
Title |
---|
WEIGUANG SHI ETAL.: "Sequence-Preserving Adaptive Load Balancers", 《2006 SYMPOSIUM ON ARCHITECTURE FOR NETWORKING AND COMMUNICATIONS SYSTEMS》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114945006A (zh) * | 2021-02-16 | 2022-08-26 | 瞻博网络公司 | 确定针对网络设备的速率差分加权公平输出队列调度 |
US11902827B2 (en) | 2021-02-16 | 2024-02-13 | Juniper Networks, Inc. | Determining rate differential weighted fair output queue scheduling for a network device |
CN114945006B (zh) * | 2021-02-16 | 2024-04-12 | 瞻博网络公司 | 确定针对网络设备的速率差分加权公平输出队列调度 |
Also Published As
Publication number | Publication date |
---|---|
EP3479232A1 (en) | 2019-05-08 |
WO2018005033A1 (en) | 2018-01-04 |
US10142407B2 (en) | 2018-11-27 |
US20180007126A1 (en) | 2018-01-04 |
JP2019522936A (ja) | 2019-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109416650A (zh) | 具有加权散列函数的集中式负载均衡器 | |
KR101775227B1 (ko) | 가상 머신들 사이에 서비스 체인 흐름 패킷들을 라우팅하기 위한 기술들 | |
Hashem et al. | Honey bee based load balancing in cloud computing | |
US11966792B2 (en) | Resource processing method of cloud platform, related device, and storage medium | |
US10530846B2 (en) | Scheduling packets to destination virtual machines based on identified deep flow | |
CN105052074B (zh) | 用于提供虚拟化直径网络架构以及用于将业务量路由至动态实例化的直径资源实例的方法、系统和计算机可读介质 | |
US20180349212A1 (en) | System and method for inter-datacenter communication | |
US9112809B2 (en) | Method and apparatus for controlling utilization in a horizontally scaled software application | |
KR102392442B1 (ko) | 분류된 네트워크 스트림의 관리 | |
WO2017080172A1 (zh) | 网络调度方法和系统 | |
US20150071076A1 (en) | Fine-grained quality of service in datacenters through end-host control of traffic flow | |
US10965597B2 (en) | Virtual network function load balancer | |
US11496413B2 (en) | Allocating cloud computing resources in a cloud computing environment based on user predictability | |
US20140281349A1 (en) | Receive-side scaling in a computer system | |
US20160011909A1 (en) | Processing control system, processing control method, and processing control program | |
EP3046028A1 (en) | Load-balancing and scaling of cloud resources by migrating a data session | |
Komarasamy et al. | A novel approach for Dynamic Load Balancing with effective Bin Packing and VM Reconfiguration in cloud | |
US10568112B1 (en) | Packet processing in a software defined datacenter based on priorities of virtual end points | |
US20190108060A1 (en) | Mobile resource scheduler | |
CN113574506B (zh) | 基于计算节点标识符的请求分配 | |
CN104123174A (zh) | 一种虚拟化环境下动态实时cpu调度系统 | |
US20210185119A1 (en) | A Decentralized Load-Balancing Method for Resource/Traffic Distribution | |
US20230118915A1 (en) | Systems and methods for determining routing data based on explicit congestion notifications and active queue management enabled network devices | |
CN115988574B (zh) | 基于流表的数据处理方法、系统、设备和存储介质 | |
Patel et al. | Task Execution Efficiency Enrichment in Cloud Based Load Balancing Approaches |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190301 |
|
WD01 | Invention patent application deemed withdrawn after publication |