用于在粗粒度和细粒度的负荷平衡之间进行桥接的技术的制作方法

文档序号:9710772阅读:299来源:国知局
用于在粗粒度和细粒度的负荷平衡之间进行桥接的技术的制作方法
【专利说明】
【背景技术】
[0001]簇系统或簇设备是配置成一起工作以处理从远程计算设备接收的网络业务的一群互连的计算节点(例如,商用服务器、桌上型计算机等)。常常,进入的网络业务的处理可能根据细粒度的负荷平衡方案分布在簇系统的计算节点之间。但是,从簇系统外部的计算设备的角度来看,该群互连的计算节点看上去是具有多个接口的单个逻辑实体。在一些环境中,使用网络负荷平衡器来将进入的网络业务分布在该单个逻辑实体的接口之间。
[0002]网络负荷平衡器将网络业务分布在两个或更多个计算设备之间,其中以便平衡处理工作负荷、提供冗余性、提供可伸缩性和提高可用性。为此,网络负荷平衡器典型地根据粗粒度的负荷平衡方案(例如,相等成本多路径路由选择(ECMP)、轮叫(round-robin)等)将进入的网络分组分布在计算设备之间。但是,此类网络负荷平衡器不了解典型簇系统的物理拓扑,并且因此不清楚这些系统中采用的细粒度的负荷平衡方案。
【附图说明】
[0003]附图中通过举例方式而非限制来说明本文描述的本发明概念。为了说明的简明,附图中的元件不一定按比例绘制。在认为适合的情况中,附图中重复使用引用标号以指示对应或相似的元件。
[0004]图1是用于包含大量计算节点的簇计算设备上在粗粒度和细粒度的负荷平衡之间进行桥接的系统的至少一个实施例的简化框图;
图2是图1的系统的簇计算设备的计算节点的至少一个实施例的简化框图;
图3是图1的系统的簇计算设备的计算节点的环境的至少一个实施例的简化框图;
图4是可以由图1的系统的簇计算设备的计算节点执行的用于从网络控制器接收网络流信息的方法的至少一个实施例的简化流程图;
图5是可以由图1的系统的簇计算设备的计算节点执行以执行图4的方法的伪代码的说明性实施例;
图6是可以由图1的系统的簇计算设备的计算节点执行的用于从簇计算设备的另一个计算节点接收网络流信息的方法的至少一个实施例的简化流程图;
图7是可以由图1的系统的簇计算设备的计算节点执行以执行图6的方法的伪代码的说明性实施例;
图8和图9是可以由图1的系统的簇计算设备的计算节点执行的用于处理从远程计算设备接收的网络分组的方法的至少一个实施例的简化流程图;
图10是可以由图8和图9的系统的簇计算设备的计算节点执行以执行图8的方法的伪代码的说明性实施例;以及
图11是用于包含在网络功能虚拟化(NFV)环境中运行的大量计算节点的簇计算设备上在粗粒度和细粒度的负荷平衡之间进行桥接的系统的至少一个实施例的简化框图。
【具体实施方式】
[0005]本公开的概念容易设想到多种修改和替代形式,而其特定实施例在附图中是通过举例来示出,并且将在本文予以详细描述。但是,应该理解,没有意图要将本公开的概念局限于所公开的特定形式,而是相反,旨在涵盖与本公开和所附权利要求定义相符合的所有修改、等效物和替代。
[0006]对“一个实施例”、“实施例”、“示范性实施例”等的引述指示,所描述的实施例可以包括特定特征、结构或特点,但是每个实施例可能包含或可能不一定包含该特定特征、结构或特点。而且,此类短语不一定指相同的实施例。再者,当结合实施例描述特定特征、结构或特点时,认为结合其他实施例来实现此类特征、结构或特点属于本领域技术人员的知识范围,无论其是否明确地被描述。此外,应该认识到,形式为“A、B和C的至少其中之一”的列述中包含的项可以意味着(A) ;(B);(C); (A和B) ; (A和C) ; (B和C);或(A、B和C)。相似地,形式为“A、BSC的至少其中之一”列述的项可以意味着(A) ; (B) ; (C) ; (A和B) ; (A和C) ;(8和0 ;或(八、8和0。
[0007]在一些情况中,所公开的实施例可以采用硬件、固件、软件或其任何组合来实现。所公开的实施例还可以作为一个或多个瞬态或非瞬态机器可读(例如,计算机可读)存储介质上承载或存储的指令来实现,这些指令可以被一个或多个处理器读取并执行。机器可读介质可以实施为用于存储或传送机器可读形式的信息的任何存储设备、机器或其他物理结构(例如,易失性或非易失性存储器、介质光盘或其他介质装置)。
[0008]在附图中,一些结构或方法特征可能是以特定安排和/或排序来示出的。但是,应该认识到,此类特定安排和/或排序可能不是必需的。相反,在一些实施例中,可以采用与说明性附图中所示不同的方式和/或次序来安排。此外,特定附图中包含结构或方法特征不意味着此特征在所有实施例中均是必需的,并且在一些实施例可能不包含此特征或可以将其与其他特征进行组合。
[0009]现在参考图1,在说明性实施例中,用于在粗粒度与细粒度的负荷平衡之间桥接的系统100包括具有多个计算节点110的簇计算设备102、网络控制器120、远程计算设备130和网络负荷平衡器140,其每一个均能够在软件定义的联网(SDN)环境和/或网络功能虚拟化(NFV)环境中运行。网络负荷平衡器140可以经由单独的通信链路(例如,点到点链路、总线链路、导线、电缆、光导等)在通信上耦合到簇计算设备102的两个或更多个计算节点110 (例如,计算节点A 112和计算节点B 114)。在使用时,网络负荷平衡器140从一个或多个计算设备,例如远程计算设备130接收发往簇计算设备102的网络分组。网络负荷平衡器140可以根据粗粒度的负荷平衡方案(例如,相等成本多路径路由选择(ECMP)、轮叫(round-robin)等)将接收的网络分组分布在簇计算设备102的多个计算节点110上。但是,处理接收的网络分组的责任(例如,执行分组转发操作、执行分组路由选择操作、执行本地分组处理操作等)可能根据细粒度的平衡方案划分到多个计算节点110中间。
[0010]因此,在一些实施例中,网络负荷平衡器140可以将接收的网络分组转发到簇计算设备120的计算节点110的任何一个(例如,计算节点A 112、计算节点B 114、计算节点C 116),而不具体考虑负责处理该网络分组的特定计算节点110。在此类实施例中,簇计算设备102的每个计算节点110可以配置成确定它是否是负责处理所接收的网络分组的计算节点110,或确定簇计算设备102的另一个计算节点110是否负责。此类确定可能是基于从网络控制器120或簇计算设备102的计算节点110中的另一个计算节点接收的网络流信息来作出的。在一些实施例中,此类确定还可能是基于从网络控制器120以及任何多个其他计算设备、计算节点和/或计算实体接收的组合信息来作出的。例如,在此类实施例中,簇计算设备102的每个计算节点110可以配置成基于从网络控制器120接收的网络流信息与从簇计算设备102的不同计算节点110和/或计算实体(例如,工作负荷控制实体等)接收的信息组合来确定它或另一个计算节点110是否是负责处理特定网络分组。
[0011]如果从网络负荷平衡器140接收网络分组的计算节点110是负责处理网络分组的计算节点110,则该网络分组将在本地予以进一步处理。但是,如果从网络负荷平衡器140接收到该网络分组的计算节点110不是负责处理该网络分组的计算节点110,则计算节点110确定簇计算设备102的其他哪个计算节点110负责处理该网络分组。然后将接收的网络分组转发到簇计算设备102的负责计算节点110以便进行进一步处理。
[0012]操作中,计算节点110 (例如,计算节点A 112)可以基于粗粒度的负荷平衡方案接收到网络负荷平衡器140转发的网络分组。计算节点110 (例如,计算节点A 112)可以确定它是否是负责处理该网络分组的簇计算设备102的计算节点110。为此,在一些实施例中,计算节点110 (例如,计算节点A 112)可以将所接收的网络分组的源和目的地信息(例如,5元组)与计算节点110 (例如,计算节点A 112)维护的本地流表进行比较。在一些实施例中,计算节点110 (例如,计算节点A 112)可以比较与所接收的网络分组关联的所有源和目的地信息(例如,5元组的所有字段),或它可以比较与所接收的网络分组关联的源和目的地信息的子集(例如,5元组的多个字段的一部分)。在此类实施例中,计算节点110 (例如,计算节点A 112)比较的特定源和目的地信息(例如,5元组中哪些字段)可以是由网络控制器120和/或簇计算设备102的不同计算节点(例如,另一个计算节点110、工作负荷控制实体等)选择或以其他方式确定的。无论如何,计算节点110 (例如,计算节点A 112)确定接收的网络分组的源和目的地信息与计算节点110 (例如,计算节点A 112)维护的本地流表中包含的一个或多个网络流条目匹配。响应确定所接收的网络分组的源和目的地信息与本地流表中的网络流条目匹配,计算节点110 (例如,计算节点A 112)确定与匹配网络流条目关联的下一跳类型。如果计算节点110 (例如,计算节点A 112)确定匹配网络流条目的下一跳类型指示下一跳(例如,下一跳计算设备)是本地,则计算节点110 (例如,计算节点A112)在本地处理所接收的网络分组。但是,如果计算节点110 (例如,计算节点A 112)确定匹配网络流条目的下一跳类型指示下一跳是远程,则计算节点110 (例如,计算节点A 112)基于计算节点110 (例如,计算节点A 112)维护的本地下一跳表中存储的关联的下一跳条目将所接收的网络分组转发到负责簇计算设备102的计算节点110以便进一步处理。
[0013]在一些实施例中,计算节点110 (例如,计算节点A 112)从网络控制器120接收网络流信息。该网络流信息对应于网络流和与该网络流关联的任何网络分组。在此类实施例中,计算节点110(例如,计算节点A 112)将网络流条目添加到他的本地流表中。这样做时,计算节点110 (例如,计算节点A 112)更新添加的网络流条目的下一跳类型以指示与该网络流条目匹配的所接收的网络分组将在本地处理。然后,计算节点110 (例如,计算节点A112)生成组播网络分组并将其传送到簇计算设备102的其他计算节点110。计算节点110(例如,计算节点A 112)生成的组播网络分组包含从网络控制器120接收的网络流信息,以及与计算节点110 (计算节点A 112)关联的因特网协议(IP)地址。在一些实施例中,其他计算节点110基于从计算节点110 (例如,计算节点A 112)接收的组播网络分组将对应的网络流条目添加到其本地流表以及将关联的下一跳条目添加到其本地下一跳表中。但是,在此类实施例中,其他计算节点110添加到其相应本地流表中的本地网络流条目包含指示与网络流条目匹配的所接收的网络分组将在远程被处理(例如,由计算节点A 112处理)的下一跳类型。
[0014]在一些实施例中,计算节点110 (例如,计算节点A 112)也接收簇计算设备102的另一个计算节点110 (例如,计算节点B 114)生成并传送的组播网络分组。所接收的组播网络分组可以包括与网络流对应的网络流信息和与该网络流关联的任何网络分组。在一些实施例中,所接收的组播网络分组也包含指示计算节点110 (例如,计算节点B 114)负责处理与所包含的网络流信息对应的网络流关联的网络分组的下一跳信息。在此类实施例中,计算节点110 (例如,计算节点A 112)可以基于该网络流信息和接收的组播网络分组的下一跳信息将新网络流条目添加到其本地流表以及将关联的下一跳条目添加到其本地下一跳表。这样做时,计算节点110 (例如,计算节点A 112)更新添加的网络流条目的下一跳类型以指示有与网络流条目匹配的接收的网络分组要转发到其他计算节点110(例如,计算节点B 114)以便在远程予以处理。
[0015]簇计算设备102 (例如,分布式计算设备)可以实施为协同动作来执行本文描述的功能的一群个体计算节点110。如图1说明性示出的,簇计算设备102可以包括根据充分连接的网格联网拓扑彼此在通信上耦合的多个计算节点110。但是,应该认识到,每个计算节点110可以根据任何其他联网拓扑彼此在通信上耦合。例如,每个计算节点110可以其中根据交换网络拓扑、Clos网络拓扑、总线网络拓扑、星型网络拓扑、环形网络拓扑和/或其任何组合在通信上耦合到其他计算节点110。簇计算设备102的每个计算节点110可以配置成为簇计算设备102执行分组处理操作的任何部分(例如,分组转发操作、分组路由选择操作、本地分组处理操作等)。例如,每个计算节点110可以配置成至少部分地基于从网络控制器120接收的网络流信息或以其他方式作为其功能在本地处理与特定网络流关联的网络分组。作为附加或备选,每个计算节点110可以配置成至少部分地基于通过组播网络分组从其他计算节点110接收的网络流信息和下一跳信息或以其他方式作为其功能将与特定网络流关联的网络分组转发或路由到簇计算设备102的另一个计算节点110以便进一步处理。
[0016]现在参考图2,每个计算设备110可以实施为或以其他方式包括能够执行本文描述的功能的任何类型的计算设备,包括但不限于服务器计算机、桌上型计算机、膝上型计算设备、消费电子设备、移动计算设备、移动电话、智能电话、平板计算设备、个人数字助理、可穿戴计算设备、智能电视、智能电器和/或其他类型的计算设备。如图2说明性示出的,每个计算设备110包括处理器210、存储器214、输入/输出(I/O)子系统220、数据存储224和通信电路226。当然,在其他实施例中,计算节点110可以包括其他或附加组件,如计算机中常见的那些(例如,多种输入/输出装置)。此外,在一些实施例中,可以将这些说明性组件的其中一个或多个集成或以其他方式形成另一个组件的一部分。例如,在一些实施例中,可以将存储器214或其一部分集成在处理器210中。应该理解,虽然每个计算节点110包括处理器210、存储器214、输入/输出(I/O)子系统220、数据存储224和通信电路226,但是为了描述的简明,下文对这些说明性组件的论述是具体参考单个计算节点112来描述的。
[0017]处理器210可以实施为能够执行本文描述的功能的任何类型的处理器。例如,在一些实施例中,处理器210可以实施为单核处理器、数字信号处理器、微控制器或其他处理器或处理/控制电路。在另一些实施例中,如图2说明性示出的,处理器210可以实施为具有多个处理器核212的多核处理器。在此类实施例中,处理器210的每个处理器核212能够执行一个或多个应用。
[0018]存储器214可以实施为能够执行本文描述的功能的任何类型的易失性或非易失性存储器或数据存储。操作中,存储器214可以存储计算节点112的操作期间使用的多种数据和软件,如操作系统、应用、程序、库和驱动程序。存储器214经由I/O子系统220在通信上耦合到处理器210,I/O子系统220可以实施为协助与处理器210、存储器214和计算节点112的其他组件的输入/输出操作的电路和/或组件。例如,I/O子系统220可以实施为或以其他方式包括存储器控制器集线器、输入/输出控制集线器、固件装置、通信链路(即,点到点链路、总线链路、导线、电缆、光导、印刷电路板线路等)和/或协助输入/输出操作的其他组件和子系统。在一些实施例中,I/O子系统220可以形成芯片上系统(SoC)的一部分,并且与处理器210、存储器214和计算节点112
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1