CN102857438B - 同步负载平衡器组件间的状态 - Google Patents
同步负载平衡器组件间的状态 Download PDFInfo
- Publication number
- CN102857438B CN102857438B CN201110444322.1A CN201110444322A CN102857438B CN 102857438 B CN102857438 B CN 102857438B CN 201110444322 A CN201110444322 A CN 201110444322A CN 102857438 B CN102857438 B CN 102857438B
- Authority
- CN
- China
- Prior art keywords
- load balancer
- data flow
- destination host
- action
- multiplexer
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/11—Identifying congestion
Abstract
本发明涉及用于同步负载平衡器组件间的状态的方法、系统和计算机程序产品。本发明的实施例包括负载平衡器使用一致性散列算法来决定如何负载平衡新的连接。一致性散列算法的使用允许负载平衡器以无缝方式在稳定状态中工作。在需要流状态信息时,即例如当检测到目的地主机配置中的改变时,负载平衡器开始保持有关传入分组的流状态信息(用于给定流的目的地地址)。以确定性方式跨负载平衡器来共享状态信息,这允许了解哪个负载平衡器对于给定流是权威的(即是其所有者)。每个负载平衡器可以与该权威的负载平衡器取得联系以了解不能本地确定的流。
Description
技术领域
本发明涉及负载平衡,特别是同步负载平衡器组件间的状态。
背景技术
1.背景和相关技术
计算机系统和相关技术影响社会的许多方面。的确,计算机系统处理信息的能力已转变了人们生活和工作的方式。计算机系统现在通常执行在计算机系统出现以前手动执行的许多任务(例如,文字处理、日程安排和会计等)。最近,计算机系统彼此耦合并耦合到其他电子设备以形成计算机系统和其他电子设备可以在其上传输电子数据的有线和无线计算机网络。因此,许多计算任务的执行跨多个不同的计算机系统和/或多个不同的计算环境分布。
在分布式计算系统中,分布式负载平衡器经常被用于跨许多计算机系统共享处理负载。例如,可以使用多个负载平衡器来接收定向到多个处理端点的外部通信。每个负载平衡器具有某种机制来确保来自同一源点的所有外部通信都定向到同一处理端点。
为了使得负载平衡器能作出将外部通信定向到哪里(例如定向到哪个处理端点)的准确决策,负载平衡器在彼此之间共享状态。例如,在一个负载平衡器处作出的对指定的源的通信的决策可以跨其它负载平衡器来同步。基于经同步的状态,任何负载平衡器随后可以作出有关从指定的源发送通信给同一处理端点的准确的决策。
不幸地是,为了维护在多个负载平衡器间的经同步的状态,通常需要在多个负载平衡器之间交换相当大的数据量。因此,同步多个负载平衡器间的状态成为瓶颈,并且限制了负载平衡器的可伸缩性。
发明内容
本发明涉及用于同步负载平衡器组件间的状态的方法、系统和计算机程序产品。在一些实施例中,负载平衡器从路由器接收分组。分组包含标识广域网上的源的源电子地址信息以及包括虚拟电子地址的目的地电子地址信息。负载平衡器使用一算法来从所述源电子地址信息以及目的地电子地址信息中生成现有数据流的数据流标识符。负载平衡器确定该分组是用于现有的数据流的。
负载平衡器确定该负载平衡器缺少足够的信息来从多个目的地主机中标识出对应于该现有数据流的目的地主机。这包括负载平衡器没有高速缓存将现有数据流映射到多个目的地主机中的一个目的地主机的状态。
响应于所述确定,负载平衡器标识被指定作为现有数据流的所有者的所有者负载平衡器。还响应于所述确定,负载平衡器向所有者负载平衡器发送对数据流状态信息的请求。负载平衡器从所有者负载平衡器接收状态信息。该状态信息标识了对应于现有数据流的目的地主机。负载平衡器对所接收的状态信息进行高速缓存。
在该数据流中的后续分组上,负载平衡器向所有者负载平衡器发送回消息以指示数据流的继续。仅需要在每个空闲的超时间隔发送一次该继续消息。空闲的超时间隔确定即使在缺少任何分组的情况下,数据流能够保持其到同一目的地主机的映射多少时间。
负载平衡器确定该接收的分组是用于现有的数据流的。负载平衡器确定该负载平衡器不是现有数据流的所有者。负载平衡器确定该负载平衡器已经高速缓存了现有数据流的状态。高速缓存的状态将现有数据流映射到多个目的地主机中的一个目的地主机。负载平衡器将所接收的分组发送到被映射至现有数据流的目的地主机。负载平衡器确定它是否需要将数据流继续消息发送给所有者负载平衡器。负载平衡器将高速缓存的状态发送给所有者负载平衡器。
提供本发明内容以便以简化的形式介绍将在以下的具体实施方式中进一步描述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
本发明的附加特征和优点将在以下描述中叙述,且其一部分根据本说明书将是显而易见的,或可通过对本发明的实践来获知。本发明的特征和优点可通过在所附权利要求书中特别指出的工具和组合来实现和获得。本发明的这些和其他特征将通过以下描述和所附权利要求书变得更加显而易见,或可通过对下文中所述的本发明的实践来领会。
附图说明
为了描述可获得本发明的上述和其它优点和特征的方式,将通过参考附图中示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可以理解,这些附图仅描述本发明的典型实施例,从而不被认为是对其范围的限制,本发明将通过使用附图用附加特征和细节来描述和说明,在附图中:
图1示出便于在负载平衡器组件之间同步状态的示例计算机体系结构。
图2示出了用于在负载平衡器之间共享状态的示例方法的流程图。
图3示出了用于在负载平衡器之间共享状态的示例方法的流程图。
图4A和4B说明了用于在多路复用器之间共享状态的示例计算机体系结构。
图5A和5B说明了用于在多路复用器之间共享状态的示例计算机体系结构。
图6A、6B、6C和6D说明了用于维护数据流到目的地主机的映射的示例计算机体系结构。
图7A和7B说明了用于维护数据流到所有者多路复用器的映射的示例计算机体系结构。
具体实施方式
本发明涉及用于同步负载平衡器组件间的状态的方法、系统和计算机程序产品。在一些实施例中,负载平衡器从路由器接收分组。分组包含标识广域网上的源的源电子地址信息以及包括虚拟电子地址的目的地电子地址信息。负载平衡器使用一算法来从所述源电子地址信息以及目的地电子地址信息中生成现有数据流的数据流标识符。负载平衡器确定该分组是用于现有的数据流的。
负载平衡器确定该负载平衡器缺少足够的信息来从多个目的地主机中标识出对应于该现有数据流的目的地主机。这包括负载平衡器没有高速缓存将现有数据流映射到多个目的地主机中的一个目的地主机的状态。
响应于所述确定,负载平衡器标识被指定作为现有数据流的所有者的所有者负载平衡器。还响应于所述确定,负载平衡器向所有者负载平衡器发送对数据流状态信息的请求。负载平衡器从所有者负载平衡器接收状态信息。该状态信息标识了对应于现有数据流的目的地主机。负载平衡器对所接收的状态信息进行高速缓存。
在该数据流中的后续分组上,负载平衡器向所有者负载平衡器发送回消息以指示数据流的继续。仅需要在每个空闲的超时间隔发送一次该继续消息。空闲的超时间隔确定即使在缺少任何分组的情况下,数据流能够保持其到同一目的地主机的映射多少时间。
负载平衡器确定该接收的分组是用于现有的数据流的。负载平衡器确定该负载平衡器不是现有数据流的所有者的。负载平衡器确定该负载平衡器已经高速缓存了现有数据流的状态。高速缓存的状态将现有数据流映射到多个目的地主机中的一个目的地主机。负载平衡器将所接收的包发送到被映射至现有数据流的目的地主机。负载平衡器确定它是否需要将数据流继续消息发送给所有者负载平衡器。负载平衡器将高速缓存的状态发送给所有者负载平衡器。
本发明的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如例如一个或多个处理器和系统存储器的计算机硬件,如以下更详细讨论的。本发明范围内的各实施例还包括用于携带或存储计算机可执行指令和/或数据结构的物理介质及其他计算机可读介质。这些计算机可读介质可以是通用或专用计算机系统可访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。携带计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种完全不同类型的计算机可读介质:计算机存储介质(设备)和传输介质。
计算机存储介质(设备)包括RAM、ROM、EEPROM、CD-ROM、DVD或其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置的且可由通用或专用计算机访问的任何其他介质。
“网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或另一通信连接(硬连线、无线、或者硬连线或无线的组合)传送到或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于携带计算机可执行指令或数据结构形式的所需程序代码装置且通用或专用计算机可访问的网络和/或数据链路。上述的组合也应当被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输介质自动传输到计算机存储介质(设备)(或反之亦然)。例如,通过网络或数据链接接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终被传输到计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质(设备)。因而,应当理解,计算机存储介质(设备)可被包括在还利用(甚至主要利用)传输介质的计算机系统组件中。
计算机可执行指令例如包括,当在处理器处执行时使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。虽然用结构特征和/或方法动作专用的语言描述了本主题,但是应当理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,所述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统环境中,程序模块可位于本地和远程存储器存储设备两者中。
图1示出便于在负载平衡器组件之间同步状态的示例计算机体系结构100。参照图1,计算机体系结构100包括路由器102、负载平衡管理器103、多路复用器106以及目的地主机107。所描绘的计算机系统中的每一个通过诸如例如局域网(“LAN”)和/或广域网(“WAN”)的网络(或作为网络的一部分)彼此连接。路由器102被进一步连接到网络101。网络101可以是其它的WAN,例如因特网。因此,所描绘的组件中的每一个以及任何其他连接的计算机系统及其组件都可以创建消息相关数据并通过所描述的网络交换与消息相关数据(例如,网际协议(“IP”)数据报和利用IP数据报的其他更高层协议,诸如传输控制协议(“TCP”)、超文本传输协议(“HTTP”)、简单邮件传输协议(“SMTP”)等)。
一般地,路由器102在网络101和计算机体系结构100的其它组件之间进行对接以在网络101和计算机体系结构100的其它组件之间适当地路由分组。路由器102可以被配置为接收来自网络101的消息并将这些消息转发到计算机体系结构100的合适的组件。例如,路由器102可以被配置为在多路复用器106处将虚拟因特网地址(“VIP”)的IP话务转发给物理接口的IP地址。路由器102可以支持路由到基本上任何数量(例如4、8、16等)的IP地址的等价多径(“ECMP”)。因此,可以将多个多路复用器106配置为活动的多路复用器。在其它实施例中,(例如当不支持ECMP时),可以将一个多路复用器配置为活动的多路复用器,并且零个或更多的其它多路复用器被配置为待机多路复用器。
在其它实施例中,使用域名服务(“DNS”)循环方法。将一个或多个VIP指派给多个多路复用器106,并在所述多个多路复用器106之间共享。域名服务(“DNS”)的名字被注册以解析一个或多个VIP。如果多路复用器106失败,则其拥有的VIP被故障转移到其它多路复用器106。
在另外的实施例中,在网络接口卡上为每个多路复用器配置VIP。所述多路复用器中的一个(例如主节点)被设定为响应于对VIP的地址解析协议(“ARP”)请求。这样,路由器102可以将VIP的任何分组发送给主节点。随后,主节点可以基于当前状态和/或负载平衡器规则执行层2转发。使用“主节点”可以减轻溢流(flooding)并且比在层3转发要容易许多。
如所述,多路复用器106包括多个多路复用器,包括多路复用器106A、106B和106C。目的地主机107包括多个目的地主机,包括目的地主机107A、107B和107C。一般而言,每个多路复用器106被配置为接收分组,标识该分组的适合的目的地主机,并将该分组转发给该适合的目的地主机。在一些实施例中,根据下述一个或多个项标识分组的适合的目的地主机107:分组的内容、在接收多路复用器处高速缓存的状态、在其它多路复用器处高速缓存的状态、该分组是用于现有的数据流的还是新数据流的、以及目的地主机107的配置。
每个多路复用器包括ID生成器、所有者检测器以及状态管理器。例如,多路复用器106A、106B和106C分别包括ID生成器141A、141B和141C,所有者检测器142A、142B和142C,以及状态管理器143A、143B和143C。每个ID生成器被配置为基于分组的内容生成用于分组的数据流ID。在一些实施例中,(源IP:端口、VIP:端口、IP协议)的5元组被用于表示和/或生成数据流ID。在其它实施例中,使用该5元组的子集。可以将新数据流ID映射到由例如(目的地主机IP:端口)所标识的目的地主机107。对应的状态管理器可以高速缓存映射数据流ID的状态和(目的地主机IP:端口)。这样,当接收到具有相同流ID的其它分组时,多路复用器可以参考高速缓存的状态以便为每个其它分组标识适合的目的地主机107。
在一些实施例中,数据流ID空间的不同部分由不同的多路复用器“拥有”。在每个多路复用器处的所有者检测器被配置为确定数据流ID的所有者多路复用器。随后,所有者多路检测器可以将数据流ID作为输入来接收,并将所有者多路复用器的IP地址作为输出来返回。这样,每个多路复用器可以针对每个数据流ID将状态发送到所有者多路复用器和/或从所有者多路复用器请求状态。例如,当多路复用器标识了数据流ID的适合的目的地主机时,该多路复用器可以(除了也高速缓存之外)将适合的目的地主机转发给该数据流ID的所有者多路复用器。另一方面,当多路复用器缺少足够的信息来标识数据流ID的适合的目的地主机时,该多路复用器可以查询所有者多路复用器以获得适合的目的地主机。
在一些实施例中,当多路复用器缺少足够的信息来标识对应于数据流ID的分组的适合的目的地主机时,该多路复用器将分组发送给该数据流ID的所有者多路复用器。响应于接收所述分组,所有者多路复用器确定该数据流ID的适合的目的地主机。而且,所有者多路复用器将高速缓存的状态(要么是在所有者多路复用器处生成的,要么是从其它多路复用器接收的)发送给该多路复用器,所述状态将数据流ID映射到适合的目的地主机。
在一些实施例中,当多路复用器缺少足够的信息来标识数据流ID的适合的目的地主机时,该多路复用器将对高速缓存的状态的明确请求发送给该数据流ID的所有者多路复用器。响应于接收到明确请求,所有者多路复用器将高速缓存的状态(要么是在所有者多路复用器处生成的,要么是从其它多路复用器接收的)发送给该多路复用器,所述状态将数据流ID映射到适合的目的地主机。随后,该多路复用器将分组发送给适合的目的地主机。
一般,负载平衡管理器103被配置为在目的地主机107的安排中监视过渡(例如当正在添加新的目的地主机时)。目的地数组生成器104可以不时地(例如使用散列函数)来用制定将数据流ID映射到目的地主机的数组。负载平衡管理器103可以维护数组的两个版本:数组的当前版本(例如新数组109)以及数组的前一个版本(例如旧数组108)。在数组内的位置可以对应于数据流ID。例如,数组位置1可以对应于数据流ID1等。这样,如在数组108和109中所示,目的地主机107B是数据流ID1的适合的目的地主机。
负载平衡管理器103可以将数组的两个版本发送给多路复用器106。当目的地主机107的安排处于稳定状态中时,则数组的当前和前一版本内的映射匹配。这样,在稳定状态,多路复用器106可以参考该映射来确定将指定数据流ID的分组发送到哪里(即使当该多路复用器缺少高速缓存的状态时)。
另一方面,当目的地主机107的安排在过渡状态中时(例如当正在添加新的目的地主机107),则数组的当前和前一版本内的映射不相同。例如,当添加新的目的地主机107时,数据流ID空间可以跨更多的目的地主机107散布开以减少各个目的地主机107上的负载。例如,差别111指示了先前对应于目的地主机107D的数据流ID空间的一部分(例如数据流ID3)现在对应于目的地主机107C。为了增加现有数据流的分组继续到同一目的地主机的可能性,多路复用器106可以当目的地主机107的安排处于过渡中时参考高速缓存的状态(要么本地地或要么从所有者多路复用器查询出)。
图2示出了用于在负载平衡器之间共享状态的示例方法200的流程图。方法200将参考计算机体系结构100的组件和数据来描述。
方法200包括负载平衡器从路由器接收分组的动作,所述分组包含了标识在广域网上的源的源电子地址信息以及包括虚拟电子地址的目的地电子地址信息(动作201)。例如,多路复用器106A可以从路由器102接收分组121。分组121包含了标识网络101上的源的源(例如IP)地址122。分组121还包含了目的地地址123。目的地地址123可以是用于联系目的地主机107的虚拟IP地址。
方法200包括负载平衡器确定该分组是用于现有的数据流的动作(动作202)。例如,多路复用器106可以确定分组121用于现有的数据流。在数据流中的第一分组(例如传输控制协议TCP分组的SYN分组)可以包含第一分组指示符。数据流中的其它分组(例如TCP的非SYN分组)不包含第一分组指示符。这样,当分组不包含第一分组指示符时,多路复用器可以推断该分组是用于现有的数据流的.多路复用器106A可以确定分组121不包含第一分组指示符。这样,多路复用器106A推断分组121是用于现有的数据流的。
方法200包括负载平衡器使用算法来从源电子地址信息和目的地电子地址信息中生成现有数据流的数据流标识符(动作203)。例如,ID生成器可以使用散列函数来将源地址122和目的地地址123散列成流ID144。流ID144可以表示例如新数组109的索引位置。例如,流ID144可以表示新数组109中的第四个位置。在一些实施例中,散列算法被用于将源IP地址和VIP散列成数据流标识符。
方法200包括负载平衡器确定该负载平衡器缺少足够的信息来从多个目的地主机中标识出对应于该现有数据流的目的地主机的动作(动作204)。例如,多路复用器106A可以确定该多路复用器106A缺少足够的信息来从目的地主机107中标识出对应于流ID144的适合的目的地主机。
动作204可以包括负载平衡器确定该负载平衡器不具有任何将现有数据流映射到多个目的地主机中的一个目的地主机的高速缓存的状态的动作(动作205)。例如,状态管理器143A可以确定多路复用器106A不具有任何将流ID144映射到目的地主机107之一的高速缓存的状态。状态管理器143A可以参考状态146A(高速缓存的状态)以检查流ID144的目的地主机映射。
动作204可以包括负载平衡器检测多个目的地主机的安排处于过渡中的动作。例如,多路复用器106A可以检测在目的地主机107的安排中的过渡。在一个或多个现有的数据流(例如流ID144)的生命周期期间,目的地主机107C可以被添加到目的地主机107。目的地数组生成器104可以检测这种改变。作为响应,目的地数组生成器104可以生成新的数组109。多路复用器106A可以参考旧数组108和新数组109。至少如差别111所述,多路复用器106A检测该过渡。就是说,数据流ID空间的一部分现在被分配给目的地主机107C。
方法200包括响应于负载平衡器缺少足够信息来标识对应于现有数据流的目的地主机的判断,负载平衡器标识一个被指定为现有数据流的所有者的所有者负载平衡器的动作,所述所有者负载平衡器是从一个或多个其它的负载平衡器中选择出的(动作206)。例如,多路复用器106A可以将多路复用器106B标识为流ID144的所有者。所有者检测器142A可以接收流ID144作为输入,并将多路复用器106B的IP地址输出作为流ID144的所有者。
在一些实施例中,多路复用器106A使用第二散列算法以将源地址122和目的地地址123散列到第二散列值中。第二散列值表示在所有者数组中的索引位置(例如如在图7A和7B中所述)。所有者数组将数据流映射到对应的所有者多路复用器,当检测到过渡时,所述所有者多路复用器维护被映射的数据流的状态。这样,多路复用器106A可以参考在所有者数组中流ID144的索引位置以将多路复用器106B标识为流ID144的所有者。
负载平衡管理器103可以监视多路复用器106,并且当将多路复用器添加多路复用器106或从多路复用器106中删除多路复用器时调整数据流的主要所有者数组和后备所有者数组。负载平衡管理器103可以分布数据流的所有权以(在可能的程度上)平衡跨多路复用器106的主要的和后备的所有权。
方法200还包括响应于负载平衡器缺少足够信息来标识对应于现有数据流的目的地主机的判断,负载平衡器将对数据流状态信息的请求发送给所有者负载平衡器的动作(动作207)。例如,多路复用器106A可以将分组121发送给多路复用器106B。或者,多路复用器106A可以保持分组121并将对流ID144的数据流状态信息的明确请求发送给多路复用器106B。
多路复用器106B可以从多路复用器106A接收分组121。一旦接收到分组121,ID生成器141B可以从源地址122和目的地地址123中生成流ID144。随后,所有者检测器142B可以确定多路复用器106B是流ID144的所有者。状态管理器142B可以参考状态146B以访问状态126。状态126可以将流ID144映射到目的地主机107B。如果没有找到状态,多路复用器106B可以使用当前目的地数组生成新状态126。多路复用器106B可以将分组121发送给目的地主机107B。多路复用器106B可以向多路复用器106A返回状态126。多路复用器106B还可以将状态126发送给对应于该流的后备所有者。
或者,多路复用器106B可以从多路复用器106A接收对流ID144的数据流状态信息的明确请求。所有者检测器142B可以确定多路复用器106B是流ID144的所有者。状态管理器142B可以参考状态146B以访问状态126。多路复用器106B可以向多路复用器106A返回状态126。
方法200包括负载平衡器从所有者负载平衡器接收状态信息的动作,所述状态信息标识了对应于现有数据流的目的地主机(动作208)。例如,多路复用器106A可以从多路复用器106B接收状态126。方法200包括负载平衡器高速缓存所接收的状态信息的动作(动作209)。例如,多路复用器106A可以在状态146A中高速缓存状态126。当多路复用器106A响应于明确请求接收状态126时,多路复用器106A随后可以将分组121发送给目的地主机107B。
而且,当接收到流ID144的后续分组(即使多路复用器106B将分组121发送给目的地主机107B)时,多路复用器106A可以将目的地主机107B标识为后续分组的适合的目的地主机。例如,多路复用器106A可以接收分组132。分组132包含源地址122和目的地地址123。ID生成器141B可以确定该分组132对应于流ID144。状态管理器143B可以参考状态146A以标识目的地主机107B是流ID144的适合的目的地主机。多路复用器106A随后可以将分组132发送给目的地主机107B。
其它多路复用器也可以接收流ID144的分组。如果这些其它多路复用器已经高速缓存了流ID144的状态(要么是其自身生成的,要么是从另一多路复用器查询出的),它们可以将分组发送到目的地主机107B上。例如,多路复用器106C可以接收分组131。分组131包含源地址122和目的地地址123。ID生成器141C可以确定该分组132对应于流ID144。状态管理器143C可以参考状态146C以标识目的地主机107B是流ID144的适合的目的地主机。多路复用器106C随后可以将分组131发送给目的地主机107B。
此外,当目的地主机的安排处于过渡中时,具有现有数据流的状态的多路复用器可以将该状态发送给该数据流的所有者多路复用器,所述现有数据流在旧的和新的目的地数组中具有不同的目的地主机。例如,目的地主机107C的添加可能引起目的地主机107中的过渡。一旦检测到过渡,多路复用器106C可以具有一个或多个现有数据流的状态,其中其它多路复用器,例如多路复用器106A和/或多路复用器106B,是这些现有数据流的所有者。响应于检测到过渡,多路复用器106可以将在旧的和新的目的地数组中具有不同的目的地主机的现有数据流的状态发送给适合的所有者主机。例如,多路复用器106C可以将流ID144的状态发送给多路复用器106A(未示出)。在过渡期间,适合的所有者多路复用器可以从其它多路复用器接收状态。例如,多路复用器106A可以从多路复用器106C(未示出)接收流ID144的状态。
图3示出了用于在负载平衡器之间共享状态的示例方法300的流程图。方法300将参考计算机体系结构100的组件和数据来描述。
方法300包括负载平衡器从一个或多个其它负载平衡器中包括的另一负载平衡器接收分组的动作,所述分组包含了标识在广域网上的源的源电子地址信息以及包括虚拟电子地址的目的地电子地址信息(动作301)。例如,多路复用器106B可以从多路复用器106A接收分组121。方法300包括负载平衡器确定所接收的分组是用于现有的数据流的动作(动作302)。例如,ID生成器144可以确定该分组121对应于流ID144。方法300包括负载平衡器确定该负载平衡器是现有的数据流的所有者的动作(动作303)。例如,所有者检测器142B可以确定多路复用器106B是流ID144的所有者。
方法300包括负载平衡器确定该负载平衡器已经高速缓存现有的数据流的状态的动作,高速缓存的状态将现有的数据流映射到多个目的地主机中的一个目的地主机(动作304)。例如,状态管理器142B可以参考状态146B以访问状态126。状态126可以指示流ID144对应于目的地主机107B。或者,状态管理器142B可以生成状态126。
方法300包括负载平衡器将所接收的分组发送给映射到现有数据流的目的地主机的动作(动作305)。例如,多路复用器106B可以将分组121发送给目的地主机107B。方法300包括负载平衡器将高速缓存的状态发送到其它负载平衡器的动作(动作306)。例如,多路复用器106B可以向多路复用器106A返回状态126。
或者,多路复用器106B可以从多路复用器106A接收对将流ID144映射到适合的目的地主机107的状态的明确请求。作为响应,状态管理器142B可以参考状态146B以访问状态126。状态126可以指示流ID144对应于目的地主机107B。多路复用器106B可以向多路复用器106A返回状态126。多路复用器106A可以随后基于状态126中的映射将分组121发送给目的地主机107B。
图4A和4B说明了用于在多路复用器之间共享状态的示例计算机体系结构400。如所示,计算机体系结构400包括多路复用器401A和401B以及目的地主机402A、402B和402C。在图4A中,多路复用器401B接收分组421。多路复用器401B确定其缺少足够信息来标识适合的目的地主机。作为响应,多路复用器401B将分组421发送给多路复用器401A(所有者多路复用器)。多路复用器401A可以从多路复用器401B接收分组421。多路复用器401A标识状态426并向多路复用器401B返回状态426。状态426将分组421的数据流映射给目的地主机402B。多路复用器401A还可以将分组421转发给目的地主机402B。随后,多路复用器401B接收与分组421相同的数据流的分组422和423。基于状态426,多路复用器401B将分组422和423发送给目的地主机402B。
在图4B中,多路复用器401A接收分组431。多路复用器401B确定其缺少足够信息来标识适合的目的地主机。作为响应,多路复用器401B将分组431发送给多路复用器401A(所有者多路复用器)。多路复用器401A可以从多路复用器401B接收分组431。多路复用器401A标识状态436并向多路复用器401B返回状态436。状态436将分组431的数据流映射给目的地主机402B。多路复用器401A将分组431发送给目的地主机402B。
然而,在接收状态436之前,多路复用器401B接收与分组431相同的数据流的分组432。由于多路复用器401B还没有接收状态436,多路复用器401B确定其缺少足够信息来标识适合的目的地主机。作为响应,多路复用器401B也将分组432发送给多路复用器401A。多路复用器401A可以从多路复用器401B接收分组432。多路复用器401A确定它已经将状态436发送给多路复用器401B。多路复用器401A将分组432发送给目的地主机402B。随后,多路复用器401B接收与分组431相同的数据流的分组433。基于状态436,多路复用器401B将分组433发送给目的地主机402B。因此,本发明的实施例可以补偿在多路复用器之间状态交换中的延迟。
图5A和5B说明了用于在多路复用器之间共享状态的示例计算机体系结构500。如所示,计算机体系结构500包括多路复用器501A、501B和501C以及目的地主机502A和502B。
在图5A中,多路复用器501A是包括分组521和522(分组521和522是非SYN分组)的现有数据流的主要所有者。多路复用器501C是包括分组521和522的数据流的后备所有者。
多路复用器501A接收分组521。多路复用器501A确定其是现有数据流的所有者,并且其缺少足够信息来标识适合的目的地主机(即多路复用器501A缺少现有数据流的高速缓存的状态)。作为响应,多路复用器501A参考当前目的地数组(例如新数组109)以将目的地主机502A标识为适合的目的地主机。多路复用器501A还开始跟踪现有数据流的状态526。一旦后续的过渡且状态526与新的数组不同的判断,多路复用器501A就将状态526发送给多路复用器501C。多路复用器501C从多路复用器501A接收状态526并高速缓存状态526。状态526将现有数据流映射到目的地主机502A。因此,如果多路复用器501A失败,多路复用器501C可以接管将状态526提供给其它多路复用器。
在图5B中,多路复用器501A是包括分组531和532(分组531和532是非SYN分组)的现有数据流的主要所有者。多路复用器501C是包括分组531和532的数据流的后备所有者。
多路复用器501B接收分组531和532。多路复用器501B具有足够的信息以确定目的地主机502A是现有数据流的适合的目的地主机(即要么现有数据流是新的流,要么多路复用器已经高速缓存了有关该流的信息)。多路复用器501B还确定多路复用器501A是现有数据流的主要所有者。一旦在目的地数组中有改变,多路复用器501B检测过渡并将状态536发送给多路复用器501A。多路复用器501A从多路复用器501B接收状态536。状态536将现有数据流映射到目的地主机502A。
如果属于相同的流的更多的分组到达多路复用器501B处,多路复用器501B不时地继续不断地将批量更新538(包括状态536以及多路复用器501A是所有者的其它状态)发送给所有者多路复用器501A,使得所有者多路复用器总是具有有关其是所有者的所有流的当前信息。
有时,多路复用器501A可以将批量状态更新发送给其它后备所有者。例如,多路复用器501A可以将状态537发送给多路复用器501C。多路复用器501C可以从多路复用器501A接收状态537。状态537可以是由多路复用器501所跟踪的活动流的批量的状态更新(包括状态536)。
图6A、6B、6C和6D说明了用于维护数据流到目的地主机的映射的示例计算机体系结构600。图6A描述了处于稳定状态的目的地主机A601、目的地主机B602和目的地主机C603的安排。因此,旧数组608和新数组609彼此匹配。在稳定状态中,多路复用器可以参考数组以确定数据流的适合的目的地主机。
图6B描述了目的地主机A601、目的地主机B602和目的地主机C603的安排,其中,移除了目的地主机C603。目的地主机的移除基本上可以是瞬时的。这样,目的地主机的移除不一定指示在目的地主机的安排中的过渡。这样,一旦移除了一目的地主机,多路复用器仍然可以参考数组以确定数据流的适合的目的地主机。
图6C描述了目的地主机A601、目的地主机B602和目的地主机C603和目的地主机D604的安排,其中,用目的地主机D604替换了目的地主机C603。目的地主机的替换基本上也可以是瞬时的。这样,目的地主机的替换不一定指示在目的地主机的安排中的过渡。这样,一旦替换了一目的地主机,多路复用器仍然可以参考数组以确定数据流的适合的目的地主机。
图6D描述了目的地主机A601、目的地主机B602和目的地主机C603和目的地主机D604的安排,其中,添加了目的地主机D603。目的地主机的添加可以包括过渡周期以及在目的地主机的安排中的这样的过渡。在过渡周期期间,在旧数组608和新数组609之间的映射可以不同(由于某些数据流被重新分配给目的地主机D604以平衡工作负载)。当检测到不同的映射时,多路复用器可以跟踪并交换数据流的状态。当所有的所有者多路复用器具有足够的信息以作出有关它们拥有的流的决定时,目的地主机的安排返回到稳定状态,并且旧数组608和新数组609再次匹配。
图7A和7B说明了用于维护数据流到所有者多路复用器的映射的示例计算机体系结构700。图7A描述了多路复用器A701、多路复用器B702、多路复用器C703以及多路复用器D704。主要所有者数组708将数据流映射到主要所有者多路复用器。后备所有者数组709将数据流映射到后备所有者多路复用器。在数组内的位置可以对应于数据流ID。例如,数据流ID6的主要所有者就是多路复用器B702。类似地,数据流ID6的后备所有者就是多路复用器C703。在一些实施例中,所有者检测器(例如142A、142B、142C等)使用数据流ID作为数组中的索引位置,并将状态更新发送给在索引位置处标识的多路复用器。
当一多路复用器失败时,可以重新分配该多路复用器的主要和后备所有权责任。图7B描述了多路复用器C703的故障。响应于该故障,索引位置(数据流ID)9-12的主要所有权和索引位置(数据流ID)5-8的后备所有权被重新分配给其余的多路复用器。
因此,本发明的实施例包括负载平衡器使用一致性散列算法来决定如何负载平衡新的连接。一致性散列算法的使用允许负载平衡器将需要被交换的状态量最小化。具体地,仅有不能使用散列和目的地数组来确定的流状态需要被同步。负载平衡器保持有关传入分组的状态信息(给定流的目的地地址)。当需要其时,即例如当检测到目的地主机配置中的改变时,以确定性方式将所选的状态信息跨负载平衡器上进行共享,以允许有权威的(例如是所有者)的负载平衡器为给定流选择正确的目的地主机。每个负载平衡器可以与该权威的负载平衡器取得联系以了解不能本地确定的流。
本发明可具体化为其它具体形式而不背离其精神或本质特征。所述实施例在所有方面都应当被认为只是说明性的而非限制性的。因此,本发明的范围由所附权利要求书而非上述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变都被权利要求书的范围所涵盖。
Claims (9)
1.在包括路由器和负载平衡系统的计算机系统处,其中负载平衡系统包括负载平衡器、一个或多个其它负载平衡器以及多个目的地主机,路由器连接到网络并且是进入负载平衡系统的入口点,网络上的组件使用虚拟电子地址与负载平衡系统通信,一种用于在负载平衡器之间共享状态的方法,其特征在于,所述方法包括:
负载平衡器从路由器接收分组的动作,所述分组包含标识在广域网上的源的源电子地址信息以及包括所述虚拟电子地址的目的地电子地址信息;
负载平衡器确定所述分组是用于现有的数据流的动作;
负载平衡器使用一算法来从所述源电子地址信息以及目的地电子地址信息中生成所述现有的数据流的数据流标识符的动作;
负载平衡器确定所述负载平衡器缺少足够的信息来从所述多个目的地主机中标识出对应于所述现有的数据流的目的地主机的动作;
负载平衡器确定该负载平衡器不具有任何将所述现有的数据流映射到所述多个目的地主机中的一个目的地主机的高速缓存的状态的动作;
响应于确定所述负载平衡器缺少足够信息以标识对应于所述现有的数据流的目的地主机,进行:
负载平衡器标识一个被指定为所述现有的数据流的所有者的所有者负载平衡器的动作,所述所有者负载平衡器是从一个或多个其它负载平衡器中选择出的;以及
所述负载平衡器将对数据流状态信息的请求发送给所有者负载平衡器的动作;
所述负载平衡器从所述所有者负载平衡器接收状态信息的动作,所述状态信息标识了对应于所述现有的数据流的目的地主机;以及
所述负载平衡器对所接收的状态信息进行高速缓存的动作。
2.如权利要求1所述的方法,其特征在于,还包括响应于确定所述多个目的地主机的安排处于过渡中,进行:
所述负载平衡器标识一个或多个其它现有的数据流的高速缓存的状态的动作,所述高速缓存的状态将所述一个或多个其它现有的数据流映射到所述多个目的地主机中的对应的目的地主机;
所述负载平衡器使用当前目的地主机数组来标识对其而言目的地主机不同于当前映射的数据流的动作;
对于这些一个或多个现有的更多的数据流中的每个:
将所述现有的数据流的高速缓存的状态发送给所述现有的数据流的所有者负载平衡器的动作。
3.如权利要求1所述的方法,其特征在于,所述负载平衡器从所述路由器接收分组的动作包括所述负载平衡器根据下述一项来接收分组:等价多径(ECMP)算法或域名系统(DNS)循环算法。
4.如权利要求1所述的方法,其特征在于,还包括:
所述负载平衡器接收所述现有的数据流的第二分组的动作;以及
所述负载平衡器参考高速缓存的状态信息以将所述目的地主机标识为对应于所述现有的数据流的动作;以及
所述负载平衡器将所述第二分组发送给所述目的地主机的动作。
5.如权利要求1所述的方法,其特征在于,所述负载平衡器使用一算法来生成所述现有的数据流的数据流标识符的动作包括为所述负载平衡系统使用散列算法来将源的源因特网协议地址和虚拟因特网协议地址散列成数据流标识符的动作,所述数据流标识符表示在将数据流映射到对应的目的地主机的当前的映射数组中的索引。
6.如权利要求5所述的方法,其特征在于,所述负载平衡器标识一个被指定为所述现有的数据流的所有者的所有者负载平衡器的动作包括:
使用第二散列算法来将源因特网协议地址和虚拟因特网协议地址散列成第二散列值的动作,所述第二散列值表示在主要所有者分区数组中的位置,所述主要所有者分区数组将数据流映射到维护所述数据流的高速缓存的状态的对应的负载平衡器;以及
参考所述主要所有者分区数组中的位置以标识被映射为所述现有的数据流的所有者的负载平衡器的动作。
7.在包括路由器和负载平衡系统的计算机系统处,其中负载平衡系统包括负载平衡器、一个或多个其它负载平衡器以及多个目的地主机,路由器连接到网络并且是从广域网进入所述负载平衡系统的入口点,网络上的组件使用虚拟电子地址与所述负载平衡系统通信,一种用于在负载平衡器之间共享状态的方法,其特征在于,所述方法包括:
第一负载平衡器从第二负载平衡器直接接收分组的动作,所述分组包含标识在网络上的源的源电子地址信息以及包括所述虚拟电子地址的目的地电子地址信息,所述信息足以标识与所述分组相关联的数据流,其中响应于确定所述第二负载平衡器缺少足够信息以标识对应于所述数据流的目的地主机,将所述分组发送给所述第一负载平衡器;
所述第一负载平衡器确定所接收的分组是用于现有的数据流的动作;
所述第一负载平衡器确定所述第一负载平衡器是所述现有的数据流的所有者的动作;
所述第一负载平衡器确定所述第一负载平衡器已经高速缓存所述现有的数据流的状态的动作,高速缓存的状态将所述现有的数据流映射到所述多个目的地主机中的一个目的地主机;
所述第一负载平衡器将所接收的分组发送到被映射至所述现有数据流的目的地主机的动作;以及
所述第一负载平衡器将所述高速缓存的状态发送给所述第二负载平衡器以用于将所述现有的数据流中的后续分组适当地转发给所述目的地主机之一的动作。
8.如权利要求7所述的方法,其特征在于,还包括:所述第一负载平衡器从所述一个或多个其它负载平衡器接收所述一个或多个其它现有的数据流的高速缓存的状态的动作,所述一个或多个其它负载平衡器已经确定所述第一负载平衡器是所述一个或多个其它现有的数据流的主要所有者负载平衡器。
9.如权利要求7所述的方法,其特征在于,还包括:所述第一负载平衡器将另一现有的数据流的状态发送给另一负载平衡器的动作,所述第一负载平衡器已经确定所述数据流的状态在当前目的地数组中不同;以及
所述第一负载平衡器确定所述其它负载平衡器是所述其它现有的数据流的主要所有者的动作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/972,340 US8755283B2 (en) | 2010-12-17 | 2010-12-17 | Synchronizing state among load balancer components |
US12/972,340 | 2010-12-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102857438A CN102857438A (zh) | 2013-01-02 |
CN102857438B true CN102857438B (zh) | 2015-12-02 |
Family
ID=46234270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110444322.1A Active CN102857438B (zh) | 2010-12-17 | 2011-12-16 | 同步负载平衡器组件间的状态 |
Country Status (5)
Country | Link |
---|---|
US (3) | US8755283B2 (zh) |
EP (1) | EP2652924B1 (zh) |
JP (1) | JP5889914B2 (zh) |
CN (1) | CN102857438B (zh) |
WO (1) | WO2012083264A2 (zh) |
Families Citing this family (94)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7675854B2 (en) | 2006-02-21 | 2010-03-09 | A10 Networks, Inc. | System and method for an adaptive TCP SYN cookie with time validation |
US9960967B2 (en) | 2009-10-21 | 2018-05-01 | A10 Networks, Inc. | Determining an application delivery server based on geo-location information |
US9215275B2 (en) | 2010-09-30 | 2015-12-15 | A10 Networks, Inc. | System and method to balance servers based on server load status |
US9609052B2 (en) | 2010-12-02 | 2017-03-28 | A10 Networks, Inc. | Distributing application traffic to servers based on dynamic service response time |
US8612550B2 (en) | 2011-02-07 | 2013-12-17 | Microsoft Corporation | Proxy-based cache content distribution and affinity |
JP5724687B2 (ja) * | 2011-07-04 | 2015-05-27 | 富士通株式会社 | 情報処理装置、サーバ選択方法、及びプログラム |
US8897154B2 (en) | 2011-10-24 | 2014-11-25 | A10 Networks, Inc. | Combining stateless and stateful server load balancing |
EP2748714B1 (en) | 2011-11-15 | 2021-01-13 | Nicira, Inc. | Connection identifier assignment and source network address translation |
US9094364B2 (en) | 2011-12-23 | 2015-07-28 | A10 Networks, Inc. | Methods to manage services over a service gateway |
US10044582B2 (en) | 2012-01-28 | 2018-08-07 | A10 Networks, Inc. | Generating secure name records |
US8850002B1 (en) * | 2012-07-02 | 2014-09-30 | Amazon Technologies, Inc. | One-to many stateless load balancing |
US8805990B2 (en) | 2012-07-12 | 2014-08-12 | Microsoft Corporation | Load balancing for single-address tenants |
US9843484B2 (en) | 2012-09-25 | 2017-12-12 | A10 Networks, Inc. | Graceful scaling in software driven networks |
WO2014052099A2 (en) | 2012-09-25 | 2014-04-03 | A10 Networks, Inc. | Load distribution in data networks |
US10021174B2 (en) | 2012-09-25 | 2018-07-10 | A10 Networks, Inc. | Distributing service sessions |
US10002141B2 (en) | 2012-09-25 | 2018-06-19 | A10 Networks, Inc. | Distributed database in software driven networks |
US9246998B2 (en) | 2012-10-16 | 2016-01-26 | Microsoft Technology Licensing, Llc | Load balancer bypass |
US9531846B2 (en) | 2013-01-23 | 2016-12-27 | A10 Networks, Inc. | Reducing buffer usage for TCP proxy session based on delayed acknowledgement |
US9900252B2 (en) | 2013-03-08 | 2018-02-20 | A10 Networks, Inc. | Application delivery controller and global server load balancer |
US9992107B2 (en) | 2013-03-15 | 2018-06-05 | A10 Networks, Inc. | Processing data packets using a policy based network path |
US9483286B2 (en) | 2013-03-15 | 2016-11-01 | Avi Networks | Distributed network services |
US10135914B2 (en) | 2013-04-16 | 2018-11-20 | Amazon Technologies, Inc. | Connection publishing in a distributed load balancer |
US9559961B1 (en) | 2013-04-16 | 2017-01-31 | Amazon Technologies, Inc. | Message bus for testing distributed load balancers |
US10069903B2 (en) | 2013-04-16 | 2018-09-04 | Amazon Technologies, Inc. | Distributed load balancer |
US10038626B2 (en) | 2013-04-16 | 2018-07-31 | Amazon Technologies, Inc. | Multipath routing in a distributed load balancer |
US9553809B2 (en) | 2013-04-16 | 2017-01-24 | Amazon Technologies, Inc. | Asymmetric packet flow in a distributed load balancer |
US9871712B1 (en) | 2013-04-16 | 2018-01-16 | Amazon Technologies, Inc. | Health checking in a distributed load balancer |
WO2014179753A2 (en) | 2013-05-03 | 2014-11-06 | A10 Networks, Inc. | Facilitating secure network traffic by an application delivery controller |
US9225638B2 (en) | 2013-05-09 | 2015-12-29 | Vmware, Inc. | Method and system for service switching using service tags |
US10110684B1 (en) | 2013-08-15 | 2018-10-23 | Avi Networks | Transparent network service migration across service devices |
US9843520B1 (en) * | 2013-08-15 | 2017-12-12 | Avi Networks | Transparent network-services elastic scale-out |
CN104426936A (zh) * | 2013-08-22 | 2015-03-18 | 中兴通讯股份有限公司 | 一种负载均衡方法及系统 |
US9577845B2 (en) | 2013-09-04 | 2017-02-21 | Nicira, Inc. | Multiple active L3 gateways for logical networks |
US9998530B2 (en) | 2013-10-15 | 2018-06-12 | Nicira, Inc. | Distributed global load-balancing system for software-defined data centers |
US9407692B2 (en) * | 2013-11-27 | 2016-08-02 | Avi Networks | Method and system for distributed load balancing |
US9590901B2 (en) | 2014-03-14 | 2017-03-07 | Nicira, Inc. | Route advertisement by managed gateways |
US9942152B2 (en) | 2014-03-25 | 2018-04-10 | A10 Networks, Inc. | Forwarding data packets using a service-based forwarding policy |
US9667711B2 (en) | 2014-03-26 | 2017-05-30 | International Business Machines Corporation | Load balancing of distributed services |
US9942162B2 (en) | 2014-03-31 | 2018-04-10 | A10 Networks, Inc. | Active application response delay time |
US9560124B2 (en) * | 2014-05-13 | 2017-01-31 | Google Inc. | Method and system for load balancing anycast data traffic |
US9906422B2 (en) | 2014-05-16 | 2018-02-27 | A10 Networks, Inc. | Distributed system to determine a server's health |
US9917727B2 (en) | 2014-06-03 | 2018-03-13 | Nicira, Inc. | Consistent hashing for network traffic dispatching |
US10129122B2 (en) | 2014-06-03 | 2018-11-13 | A10 Networks, Inc. | User defined objects for network devices |
US9992229B2 (en) | 2014-06-03 | 2018-06-05 | A10 Networks, Inc. | Programming a data network device using user defined scripts with licenses |
US9986061B2 (en) | 2014-06-03 | 2018-05-29 | A10 Networks, Inc. | Programming a data network device using user defined scripts |
US9674302B1 (en) * | 2014-06-13 | 2017-06-06 | Amazon Technologies, Inc. | Computing resource transition notification and pending state |
US9774537B2 (en) | 2014-09-30 | 2017-09-26 | Nicira, Inc. | Dynamically adjusting load balancing |
US10225137B2 (en) | 2014-09-30 | 2019-03-05 | Nicira, Inc. | Service node selection by an inline service switch |
US9825810B2 (en) | 2014-09-30 | 2017-11-21 | Nicira, Inc. | Method and apparatus for distributing load among a plurality of service nodes |
EP3235198A1 (en) * | 2014-12-18 | 2017-10-25 | Nokia Solutions and Networks Oy | Network load balancer |
US9800653B2 (en) | 2015-03-06 | 2017-10-24 | Microsoft Technology Licensing, Llc | Measuring responsiveness of a load balancing system |
US11283697B1 (en) | 2015-03-24 | 2022-03-22 | Vmware, Inc. | Scalable real time metrics management |
US10594743B2 (en) | 2015-04-03 | 2020-03-17 | Nicira, Inc. | Method, apparatus, and system for implementing a content switch |
US10038628B2 (en) | 2015-04-04 | 2018-07-31 | Nicira, Inc. | Route server mode for dynamic routing between logical and physical networks |
US10581976B2 (en) | 2015-08-12 | 2020-03-03 | A10 Networks, Inc. | Transmission control of protocol state exchange for dynamic stateful service insertion |
US10243791B2 (en) | 2015-08-13 | 2019-03-26 | A10 Networks, Inc. | Automated adjustment of subscriber policies |
US10333849B2 (en) | 2016-04-28 | 2019-06-25 | Nicira, Inc. | Automatic configuration of logical routers on edge nodes |
US10091161B2 (en) | 2016-04-30 | 2018-10-02 | Nicira, Inc. | Assignment of router ID for logical routers |
US10560320B2 (en) | 2016-06-29 | 2020-02-11 | Nicira, Inc. | Ranking of gateways in cluster |
US10938668B1 (en) * | 2016-09-30 | 2021-03-02 | Amazon Technologies, Inc. | Safe deployment using versioned hash rings |
US10700960B2 (en) * | 2016-11-17 | 2020-06-30 | Nicira, Inc. | Enablement of multi-path routing in virtual edge systems |
US10237123B2 (en) | 2016-12-21 | 2019-03-19 | Nicira, Inc. | Dynamic recovery from a split-brain failure in edge nodes |
US10616045B2 (en) | 2016-12-22 | 2020-04-07 | Nicira, Inc. | Migration of centralized routing components of logical router |
US10541909B2 (en) | 2017-06-23 | 2020-01-21 | International Business Machines Corporation | Distributed affinity tracking for network connections |
US10797966B2 (en) | 2017-10-29 | 2020-10-06 | Nicira, Inc. | Service operation chaining |
US11012420B2 (en) | 2017-11-15 | 2021-05-18 | Nicira, Inc. | Third-party service chaining using packet encapsulation in a flow-based forwarding element |
CN107979646A (zh) * | 2017-12-07 | 2018-05-01 | 郑州云海信息技术有限公司 | 一种基于一致性hash策略的PaaS平台负载均衡方法 |
US10616321B2 (en) | 2017-12-22 | 2020-04-07 | At&T Intellectual Property I, L.P. | Distributed stateful load balancer |
US10797910B2 (en) | 2018-01-26 | 2020-10-06 | Nicira, Inc. | Specifying and utilizing paths through a network |
US10659252B2 (en) | 2018-01-26 | 2020-05-19 | Nicira, Inc | Specifying and utilizing paths through a network |
US10728174B2 (en) | 2018-03-27 | 2020-07-28 | Nicira, Inc. | Incorporating layer 2 service between two interfaces of gateway device |
US10805192B2 (en) | 2018-03-27 | 2020-10-13 | Nicira, Inc. | Detecting failure of layer 2 service using broadcast messages |
US10673764B2 (en) | 2018-05-22 | 2020-06-02 | International Business Machines Corporation | Distributed affinity tracking for network connections |
US11258760B1 (en) | 2018-06-22 | 2022-02-22 | Vmware, Inc. | Stateful distributed web application firewall |
US11595250B2 (en) | 2018-09-02 | 2023-02-28 | Vmware, Inc. | Service insertion at logical network gateway |
US10944673B2 (en) | 2018-09-02 | 2021-03-09 | Vmware, Inc. | Redirection of data messages at logical network gateway |
US10771318B1 (en) | 2018-10-24 | 2020-09-08 | Vmware, Inc | High availability on a distributed networking platform |
CN111833189A (zh) | 2018-10-26 | 2020-10-27 | 创新先进技术有限公司 | 数据处理方法及装置 |
US11467861B2 (en) | 2019-02-22 | 2022-10-11 | Vmware, Inc. | Configuring distributed forwarding for performing service chain operations |
US10812576B1 (en) | 2019-05-31 | 2020-10-20 | Microsoft Technology Licensing, Llc | Hardware load balancer gateway on commodity switch hardware |
US11283717B2 (en) | 2019-10-30 | 2022-03-22 | Vmware, Inc. | Distributed fault tolerant service chain |
US11140218B2 (en) | 2019-10-30 | 2021-10-05 | Vmware, Inc. | Distributed service chain across multiple clouds |
US11223494B2 (en) | 2020-01-13 | 2022-01-11 | Vmware, Inc. | Service insertion for multicast traffic at boundary |
US11153406B2 (en) | 2020-01-20 | 2021-10-19 | Vmware, Inc. | Method of network performance visualization of service function chains |
US11659061B2 (en) | 2020-01-20 | 2023-05-23 | Vmware, Inc. | Method of adjusting service function chains to improve network performance |
US11438257B2 (en) | 2020-04-06 | 2022-09-06 | Vmware, Inc. | Generating forward and reverse direction connection-tracking records for service paths at a network edge |
US11429452B2 (en) | 2020-04-16 | 2022-08-30 | Paypal, Inc. | Method for distributing keys using two auxiliary hashing functions |
US11734043B2 (en) | 2020-12-15 | 2023-08-22 | Vmware, Inc. | Providing stateful services in a scalable manner for machines executing on host computers |
US11611625B2 (en) | 2020-12-15 | 2023-03-21 | Vmware, Inc. | Providing stateful services in a scalable manner for machines executing on host computers |
CN114221907B (zh) * | 2021-12-06 | 2023-09-01 | 北京百度网讯科技有限公司 | 网络哈希配置方法、装置、电子设备和存储介质 |
US11799761B2 (en) | 2022-01-07 | 2023-10-24 | Vmware, Inc. | Scaling edge services with minimal disruption |
US11888747B2 (en) | 2022-01-12 | 2024-01-30 | VMware LLC | Probabilistic filters for use in network forwarding and services |
CN114928615B (zh) * | 2022-05-19 | 2023-10-24 | 网宿科技股份有限公司 | 负载均衡方法、装置、设备及可读存储介质 |
CN115297191B (zh) * | 2022-09-30 | 2022-12-16 | 成都云智北斗科技有限公司 | 一种多数据流服务器 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1578320A (zh) * | 2003-06-30 | 2005-02-09 | 微软公司 | 利用主机状态信息进行网络负载平衡 |
Family Cites Families (80)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5371852A (en) * | 1992-10-14 | 1994-12-06 | International Business Machines Corporation | Method and apparatus for making a cluster of computers appear as a single host on a network |
US5793763A (en) | 1995-11-03 | 1998-08-11 | Cisco Technology, Inc. | Security system for network address translation systems |
US5774660A (en) | 1996-08-05 | 1998-06-30 | Resonate, Inc. | World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network |
US6351775B1 (en) | 1997-05-30 | 2002-02-26 | International Business Machines Corporation | Loading balancing across servers in a computer network |
US6128279A (en) | 1997-10-06 | 2000-10-03 | Web Balance, Inc. | System for balancing loads among network servers |
US6070191A (en) | 1997-10-17 | 2000-05-30 | Lucent Technologies Inc. | Data distribution techniques for load-balanced fault-tolerant web access |
US6993027B1 (en) * | 1999-03-17 | 2006-01-31 | Broadcom Corporation | Method for sending a switch indicator to avoid out-of-ordering of frames in a network switch |
US7299294B1 (en) | 1999-11-10 | 2007-11-20 | Emc Corporation | Distributed traffic controller for network data |
AU4839300A (en) * | 1999-05-11 | 2000-11-21 | Webvan Group, Inc. | Electronic commerce enabled delivery system and method |
US6704278B1 (en) * | 1999-07-02 | 2004-03-09 | Cisco Technology, Inc. | Stateful failover of service managers |
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 |
US20010034752A1 (en) * | 2000-01-26 | 2001-10-25 | Prompt2U Inc. | Method and system for symmetrically distributed adaptive matching of partners of mutual interest in a computer network |
US20020032755A1 (en) | 2000-09-13 | 2002-03-14 | Marc Abrahams | Registration system and method using a back end server |
US7272653B2 (en) * | 2000-09-28 | 2007-09-18 | International Business Machines Corporation | System and method for implementing a clustered load balancer |
US6970939B2 (en) | 2000-10-26 | 2005-11-29 | Intel Corporation | Method and apparatus for large payload distribution in a network |
US8112545B1 (en) | 2000-12-19 | 2012-02-07 | Rockstar Bidco, LP | Distributed network address translation control |
US6549997B2 (en) | 2001-03-16 | 2003-04-15 | Fujitsu Limited | Dynamic variable page size translation of addresses |
US20020159456A1 (en) | 2001-04-27 | 2002-10-31 | Foster Michael S. | Method and system for multicasting in a routing device |
US20030005080A1 (en) * | 2001-06-28 | 2003-01-02 | Watkins James S. | Systems and methods for accessing data |
US7245632B2 (en) * | 2001-08-10 | 2007-07-17 | Sun Microsystems, Inc. | External storage for modular computer systems |
EP1315349B1 (en) | 2001-11-21 | 2008-03-19 | Sun Microsystems, Inc. | A method for integrating with load balancers in a client and server system |
JP2003163689A (ja) * | 2001-11-28 | 2003-06-06 | Hitachi Ltd | ネットワーク連携情報処理システムおよびその複数負荷分散機間のアクセス移動方法 |
US7289525B2 (en) * | 2002-02-21 | 2007-10-30 | Intel Corporation | Inverse multiplexing of managed traffic flows over a multi-star network |
US6856991B1 (en) | 2002-03-19 | 2005-02-15 | Cisco Technology, Inc. | Method and apparatus for routing data to a load balanced server using MPLS packet labels |
US7512702B1 (en) | 2002-03-19 | 2009-03-31 | Cisco Technology, Inc. | Method and apparatus providing highly scalable server load balancing |
US20030225859A1 (en) | 2002-05-31 | 2003-12-04 | Sun Microsystems, Inc. | Request mapping for load balancing |
US7020706B2 (en) | 2002-06-17 | 2006-03-28 | Bmc Software, Inc. | Method and system for automatically updating multiple servers |
US7280557B1 (en) | 2002-06-28 | 2007-10-09 | Cisco Technology, Inc. | Mechanisms for providing stateful NAT support in redundant and asymetric routing environments |
US7561587B2 (en) | 2002-09-26 | 2009-07-14 | Yhc Corporation | Method and system for providing layer-4 switching technologies |
US7616638B2 (en) * | 2003-07-29 | 2009-11-10 | Orbital Data Corporation | Wavefront detection and disambiguation of acknowledgments |
US20080008202A1 (en) * | 2002-10-31 | 2008-01-10 | Terrell William C | Router with routing processors and methods for virtualization |
US7243351B2 (en) * | 2002-12-17 | 2007-07-10 | International Business Machines Corporation | System and method for task scheduling based upon the classification value and probability |
US7890633B2 (en) | 2003-02-13 | 2011-02-15 | Oracle America, Inc. | System and method of extending virtual address resolution for mapping networks |
US7912954B1 (en) * | 2003-06-27 | 2011-03-22 | Oesterreicher Richard T | System and method for digital media server load balancing |
US7606929B2 (en) | 2003-06-30 | 2009-10-20 | Microsoft Corporation | Network load balancing with connection manipulation |
US7567504B2 (en) | 2003-06-30 | 2009-07-28 | Microsoft Corporation | Network load balancing with traffic routing |
US7613822B2 (en) | 2003-06-30 | 2009-11-03 | Microsoft Corporation | Network load balancing with session information |
US7590736B2 (en) * | 2003-06-30 | 2009-09-15 | Microsoft Corporation | Flexible network load balancing |
US9584360B2 (en) | 2003-09-29 | 2017-02-28 | Foundry Networks, Llc | Global server load balancing support for private VIP addresses |
US20050097185A1 (en) | 2003-10-07 | 2005-05-05 | Simon Gibson | Localization link system |
US8572249B2 (en) | 2003-12-10 | 2013-10-29 | Aventail Llc | Network appliance for balancing load and platform services |
US20050188055A1 (en) | 2003-12-31 | 2005-08-25 | Saletore Vikram A. | Distributed and dynamic content replication for server cluster acceleration |
US8689319B2 (en) | 2004-04-19 | 2014-04-01 | Sollitionary, Inc. | Network security system |
US20060064478A1 (en) * | 2004-05-03 | 2006-03-23 | Level 3 Communications, Inc. | Geo-locating load balancing |
US7813263B2 (en) * | 2004-06-30 | 2010-10-12 | Conexant Systems, Inc. | Method and apparatus providing rapid end-to-end failover in a packet switched communications network |
US20060294584A1 (en) | 2005-06-22 | 2006-12-28 | Netdevices, Inc. | Auto-Configuration of Network Services Required to Support Operation of Dependent Network Services |
EP1669864B1 (en) | 2004-12-03 | 2010-06-02 | STMicroelectronics Srl | A process for managing virtual machines in a physical processing machine, corresponding processor system and computer program product therefor |
US7334076B2 (en) | 2005-03-08 | 2008-02-19 | Microsoft Corporation | Method and system for a guest physical address virtualization in a virtual machine environment |
US7693050B2 (en) * | 2005-04-14 | 2010-04-06 | Microsoft Corporation | Stateless, affinity-preserving load balancing |
US20070055789A1 (en) * | 2005-09-08 | 2007-03-08 | Benoit Claise | Method and apparatus for managing routing of data elements |
US8554758B1 (en) | 2005-12-29 | 2013-10-08 | Amazon Technologies, Inc. | Method and apparatus for monitoring and maintaining health in a searchable data service |
US7694011B2 (en) | 2006-01-17 | 2010-04-06 | Cisco Technology, Inc. | Techniques for load balancing over a cluster of subscriber-aware application servers |
US8274989B1 (en) | 2006-03-31 | 2012-09-25 | Rockstar Bidco, LP | Point-to-multipoint (P2MP) resilience for GMPLS control of ethernet |
WO2008100536A1 (en) * | 2007-02-12 | 2008-08-21 | Mushroom Networks Inc. | Access line bonding and splitting methods and appartus |
US20080201540A1 (en) | 2007-02-16 | 2008-08-21 | Ravi Sahita | Preservation of integrity of data across a storage hierarchy |
US7768907B2 (en) | 2007-04-23 | 2010-08-03 | International Business Machines Corporation | System and method for improved Ethernet load balancing |
US8561061B2 (en) | 2007-05-14 | 2013-10-15 | Vmware, Inc. | Adaptive dynamic selection and application of multiple virtualization techniques |
US8128279B2 (en) | 2008-07-16 | 2012-03-06 | GM Global Technology Operations LLC | Cloud point monitoring systems for determining a cloud point temperature of diesel fuel |
US8180896B2 (en) | 2008-08-06 | 2012-05-15 | Edgecast Networks, Inc. | Global load balancing on a content delivery network |
US20100036903A1 (en) | 2008-08-11 | 2010-02-11 | Microsoft Corporation | Distributed load balancer |
JP2010061283A (ja) | 2008-09-02 | 2010-03-18 | Fujitsu Ltd | ロードバランサ設定プログラム,ロードバランサ設定方法及びロードバランサ設定装置 |
US8433749B2 (en) | 2009-04-15 | 2013-04-30 | Accenture Global Services Limited | Method and system for client-side scaling of web server farm architectures in a cloud data center |
US8416692B2 (en) | 2009-05-28 | 2013-04-09 | Microsoft Corporation | Load balancing across layer-2 domains |
US8533317B2 (en) * | 2009-06-22 | 2013-09-10 | Citrix Systems, Inc. | Systems and methods for monitor distribution in a multi-core system |
US8737407B2 (en) * | 2009-06-22 | 2014-05-27 | Citrix Systems, Inc. | Systems and methods for distributed hash table in multi-core system |
JP5338555B2 (ja) * | 2009-08-11 | 2013-11-13 | 富士通株式会社 | 負荷分散装置、負荷分散方法および負荷分散プログラム |
US8645508B1 (en) | 2010-03-03 | 2014-02-04 | Amazon Technologies, Inc. | Managing external communications for provided computer networks |
US8266204B2 (en) | 2010-03-15 | 2012-09-11 | Microsoft Corporation | Direct addressability and direct server return |
EP2553901B1 (en) * | 2010-03-26 | 2016-04-27 | Citrix Systems, Inc. | System and method for link load balancing on a multi-core device |
US8619584B2 (en) * | 2010-04-30 | 2013-12-31 | Cisco Technology, Inc. | Load balancing over DCE multipath ECMP links for HPC and FCoE |
US8533337B2 (en) | 2010-05-06 | 2013-09-10 | Citrix Systems, Inc. | Continuous upgrading of computers in a load balanced environment |
US8547835B2 (en) | 2010-10-21 | 2013-10-01 | Telefonaktiebolaget L M Ericsson (Publ) | Controlling IP flows to bypass a packet data network gateway using multi-path transmission control protocol connections |
US9191327B2 (en) | 2011-02-10 | 2015-11-17 | Varmour Networks, Inc. | Distributed service processing of network gateways using virtual machines |
US8676980B2 (en) | 2011-03-22 | 2014-03-18 | Cisco Technology, Inc. | Distributed load balancer in a virtual machine environment |
US20120303809A1 (en) | 2011-05-25 | 2012-11-29 | Microsoft Corporation | Offloading load balancing packet modification |
US8958298B2 (en) | 2011-08-17 | 2015-02-17 | Nicira, Inc. | Centralized logical L3 routing |
US20130159487A1 (en) | 2011-12-14 | 2013-06-20 | Microsoft Corporation | Migration of Virtual IP Addresses in a Failover Cluster |
US9083709B2 (en) | 2012-05-11 | 2015-07-14 | Cisco Technology, Inc. | Virtual internet protocol migration and load balancing |
US20140006681A1 (en) | 2012-06-29 | 2014-01-02 | Broadcom Corporation | Memory management in a virtualization environment |
US8805990B2 (en) | 2012-07-12 | 2014-08-12 | Microsoft Corporation | Load balancing for single-address tenants |
-
2010
- 2010-12-17 US US12/972,340 patent/US8755283B2/en active Active
-
2011
- 2011-12-16 CN CN201110444322.1A patent/CN102857438B/zh active Active
- 2011-12-16 JP JP2013544852A patent/JP5889914B2/ja active Active
- 2011-12-16 WO PCT/US2011/065659 patent/WO2012083264A2/en unknown
- 2011-12-16 EP EP11849192.7A patent/EP2652924B1/en active Active
-
2014
- 2014-03-05 US US14/198,465 patent/US20140185446A1/en not_active Abandoned
- 2014-11-18 US US14/546,729 patent/US9438520B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1578320A (zh) * | 2003-06-30 | 2005-02-09 | 微软公司 | 利用主机状态信息进行网络负载平衡 |
Also Published As
Publication number | Publication date |
---|---|
EP2652924A2 (en) | 2013-10-23 |
EP2652924B1 (en) | 2020-04-01 |
JP2014504484A (ja) | 2014-02-20 |
US9438520B2 (en) | 2016-09-06 |
WO2012083264A2 (en) | 2012-06-21 |
EP2652924A4 (en) | 2017-10-18 |
US8755283B2 (en) | 2014-06-17 |
US20150063115A1 (en) | 2015-03-05 |
US20120155266A1 (en) | 2012-06-21 |
US20140185446A1 (en) | 2014-07-03 |
CN102857438A (zh) | 2013-01-02 |
JP5889914B2 (ja) | 2016-03-22 |
WO2012083264A3 (en) | 2012-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102857438B (zh) | 同步负载平衡器组件间的状态 | |
US20120303809A1 (en) | Offloading load balancing packet modification | |
CN109302498A (zh) | 一种网络资源访问方法及装置 | |
NO327863B1 (no) | Optimalisert nettverkressurs-sted | |
JP2015534769A (ja) | データネットワークにおける負荷分散 | |
CN104158758A (zh) | Sdn网络基于用户报文时间反馈的负载均衡处理方法及系统 | |
CN101849384A (zh) | 用于控制网络系统负载均衡的方法、客户机、服务器以及网络系统 | |
Zhang et al. | Tripod: Towards a scalable, efficient and resilient cloud gateway | |
KR101343310B1 (ko) | 피어 투 피어 트래픽의 국소화 | |
CN111800501A (zh) | 处理业务请求的方法及装置、存储介质、电子设备 | |
CN101803289B (zh) | 基于适合度的路由 | |
US10536368B2 (en) | Network-aware routing in information centric networking | |
US10033805B1 (en) | Spanning tree approach for global load balancing | |
CN106411553B (zh) | 一种业务链路径的优化方法及装置 | |
CN105025042B (zh) | 一种确定数据信息的方法及系统、代理服务器 | |
JPWO2009034994A1 (ja) | 負荷分散システム、サービス処理サーバ、負荷分散方法及び負荷分散プログラム | |
WO2013162569A1 (en) | Increasing a data transfer rate | |
CN106664217A (zh) | 候选问题网络实体的标识 | |
US11863426B2 (en) | Determining a best destination over a best path using multifactor path selection | |
US11245752B2 (en) | Load balancing in a high-availability cluster | |
US11792111B2 (en) | Systems and methods for replicating traffic statistics on redundant packet forwarding engine system | |
US11671322B2 (en) | Configuration of a network using a flex-algorithm routing mechanism | |
US20230261941A1 (en) | Configuration of a network using a flex-algorithm routing mechanism | |
Manfredi et al. | Optimised balancing algorithm for content delivery networks | |
CN109618014A (zh) | 报文转发方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150728 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150728 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: Microsoft Corp. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |