一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

负载统计数据的高度可扩展的、软件定义的网络内多播的制作方法

2022-02-24 18:21:02 来源:中国专利 TAG:

services)”的论文中描述了使用底层网络控制器定义mc组的不同方法,其全部内容通过引用并入本文。
9.在一个实施例中,底层网络控制器根据虚拟机租户的请求生成匹配-动作规则和相关联的多播组标识符并将其分发给虚拟交换机。匹配-动作规则将在后面描述。底层网络控制器可以在虚拟交换机中安装相应的特殊mc报头,以便稍后在mc分组中进行编码。虚拟交换机可以使用该信息连同网络拓扑信息来识别数据流量中的mc分组,并将mc分组转发给预期的接收者。通常,底层网络控制器已经维护了有关网络拓扑、交换机和端口的信息。底层网络控制器可以通过执行各种监控和管理任务(诸如vm布局、负载平衡等)来收集该信息。
10.在一个实施例中,多播加入和离开请求由云管理器接收。云管理器可以经由api接收请求。云提供商通常会向租户公开这样的api,以允许租户请求vm、负载平衡器服务、防火墙服务和其他服务。多播组定义可包括属于mc组的租户的vm地址。通常向管理器提供有关租户的vm物理位置的信息,以及有关当前网络拓扑的信息。还可以向管理器提供关于交换机的能力和可以用于寻址交换机的交换机的唯一标识符的信息。管理器基于接收到的信息计算租户定义的mc组的mc树,并使用高级语言(例如p4语言)的功能对交换机进行编程。管理器还可以使用p4运行时语言的功能来控制交换机的接口并在交换机中安装匹配-动作规则。一旦被编程,交换机就能够识别分组流中的mc分组,并且将mc分组引导到适当的服务vm,包括例如负载平衡器vm等。稍后,如果云管理器被通知发生了某些网络事件,诸如通信链路故障或组成员改变,则云管理器可以计算新的匹配-动作规则并将更新的匹配-动作规则发送到受影响的交换机。
11.在一个实施例中,由于mc成员组由底层网络控制器和/或云管理器配置,而不是由覆盖网络实体配置,因此配置mc组和实现mc通信到mc组的成员的路由的过程比使用传统方法更有效和更快地执行。例如,由于底层网络控制器和/或云管理器被提供有关网络拓扑的信息和有关mc组的信息,因此它们可以配置交换机和特殊mc报头,而无需生成与mc相关的覆盖流量或处理与mc相关的覆盖流量。此外,配置交换机以处理与mc相关的流量涉及使用相对紧凑的程序代码对底层网络控制器和/或云管理器进行编程。这是使用常规方法无法实现的。此外,如下所述,所提出的方法允许在mc分组本身中包括分组转发位图,并且因此消除了交换机维护mc组转发表的需要,mc组转发表传统上很大且访问起来耗时。
12.虚拟机租户可以使用api发出请求,租户可以在其中指定想要加入或离开的组。在经由api接收到请求后,底层网络控制器或云管理器可以生成必要的规则并将规则安装在管理程序交换机上。完成此操作后,控制器/管理器可通知租户以使租户开始使用其虚拟机传送mc流量。
13.在一个实施例中,公开了一种用于在通信分组的报头中编码多播组的多播树的高度可扩展、低延迟、网络内多播方法。在该方法中,多播(“mc”)分组用包括mc树信息的特殊mc报头进行封装。mc分组的有效负载用于将mc数据分发给mc组的成员。在一个实施例中,mc分组的有效负载用于将来自例如在主机计算机上执行的服务vm的虚拟机(“vm”)的负载统计数据分发到负载平衡器。基于接收到的负载统计数据,负载平衡器确定如何将任务分发给服务vm。负载平衡器可以在服务虚拟机(“svm”)中实现。
14.用于在mc分组的特殊mc报头中编码mc树信息的网络内mc方法实现底层控制器、中
央控制平面、虚拟交换机和物理交换机之间的合作。虽然常规上,中央控制平面用于设置mc组,但在所提出的方法中,底层控制器用于设置mc组,包括设置用于传送负载统计数据的mc组。中央控制平面是软件程序或程序组,其可以被配置为经由覆盖网络接收多播组加入和离开请求等。底层控制器使用api经由底层网络接收mc组加入和离开请求,并且底层控制器基于接收到的请求生成匹配和动作表,其包括用于生成特殊mc报头的分组规则。
15.由管理程序中实现的虚拟交换机使用特殊mc报头来封装mc分组。虚拟交换机是软件程序或程序组,其允许vm、容器或其他工作负载相互通信。虚拟交换机可以是管理程序的一部分,稍后将对其进行详细描述。管理程序是创建和运行vm的计算机软件、固件或硬件,vm又可以执行多个容器。管理程序在其上执行vm的计算机称为主机。管理程序为vm提供客户操作系统和虚拟操作平台,并管理客户操作系统的执行。物理交换机通常是可编程物理设备,其被配置为在物理计算机网络中交换分组。
16.在一个实施例中,管理程序的虚拟交换机用包括mc组的mc分发树信息的特殊mc报头封装mc分组。否则,该信息将必须预先存储在网络中并用于每个mc组的每个物理交换机中。然而,在所提出的方法中,mc树信息被封装在分组本身内,并在分组被路由时由分组分发,因此,物理交换机不需要生成和维护用于存储数百万mc组的mc组信息的数据结构。
17.mc树信息可以使用包括在分组中包括的特殊mc报头中的位图进行编码,物理交换机使用该位图根据位图信息来切换分组。例如,当接收到包括特殊mc报头和mc组的标识符的mc分组时,物理交换机使用包括在特殊mc报头中的位图来确定如何切换分组,以将分组传送到mc组的成员。
18.在一个实施例中,在接收到包括特殊mc报头的mc分组时,物理交换机解析特殊mc报头并确定交换机的标识符是否包括在mc报头中。如果是,则物理交换机从特殊mc报头中提取相应的分组规则(“p-规则”),基于p-规则确定输出端口,并在p-规则指示的端口上复制mc分组。然而,如果交换机在mc分组的mc报头中没有找到与交换机标识符相关联的p-规则,则交换机可能依赖于所谓的s-规则。
19.s-规则由底层控制器定义并由控制器提供给物理交换机。s-规则指示在交换机上实现的端口,交换机应该在这些端口上中继属于mc组的分组。当位图本身太大而无法包括在特殊mc报头中时,s-规则用于为所提出的方法提供支持,因为mc报头的大小通常是有限的。当多播树包括大量物理交换机并且编码所有交换机的所有p-规则的位图太大而无法包括在特殊mc报头中时,可能会发生这种情况。因此,如果交换机在mc分组的特殊mc报头中没有找到自己的标识符(或p-规则),则交换机可以使用租户的标识符和包括在mc分组的报头中的目的地ip地址在流表中执行查找,以访问和检索相应的s-规则。基于s-规则,交换机可以确定在其上复制mc分组的交换机的输出端口。
附图说明
20.在附图中:
21.图1是描绘用于负载统计数据的高度可扩展的、软件定义的网络内多播的示例逻辑网络环境的示例物理实现视图的框图。
22.图2a是描绘物理交换机的示例布置的框图。
23.图2b是描绘示例特殊mc报头的框图。
24.图3是描绘用于负载统计数据的高度可扩展的、软件定义的网络内多播的示例过程的时间图。
25.图4是负载统计数据的高度可扩展的、软件定义的网络内多播的示例流程图。
具体实施方式
26.在下面的描述中,出于解释的目的,阐述了许多具体细节以提供对本文描述的方法的透彻理解。然而,显而易见的是,可以在没有这些具体细节的情况下实践本方法。在一些实例中,众所周知的结构和设备以框图形式示出以避免不必要地模糊本方法。
27.1.示例物理实现
28.图1是描绘用于负载统计数据的高度可扩展的、软件定义的网络内多播的示例逻辑网络环境的示例物理实现视图的框图。在所描绘的示例中,环境100包括管理平面10、中央控制平面20(也称为sdn中央控制平面20)、底层控制器21、多个主机110、1110和物理网络190。在一个实施例中,管理平面10和中央控制平面20可以被实现为分布式系统或集群系统,并可组合成单个组合管理/中央控制器服务器或集群。
29.主机110/1110可以包括管理程序160/1160、硬件组件180/1180和图1中未描绘的其他组件。管理程序160/1160可以被实现为支持虚拟机的多个虚拟化计算实例的执行的软件层。管理程序160/1160可以使用上行链路170/1170来分别提供去往和来自物理网络接口控制器(“pnic”)182/1182的连接。管理程序160/1160可以包括虚拟交换机140/1140,并且可以提供去往和来自一个或更多个虚拟机(包括vm 120/1120)的连接。每个vm本身可以托管多个端点或工作负载,例如命名空间容器(未示出)。每个工作负载都有与之关联的一个或更多个覆盖ip地址,因此可以通过逻辑覆盖网络到达。
30.硬件组件180/1180可以包括硬件处理器、存储器单元、数据存储单元和物理网络接口,其中一些未在图1中描绘。硬件组件180/1180还可以分别包括pnic 182/1182,其可以提供到物理网络190的路由器和交换机的连接性。
31.虚拟交换机140/1140或与其结合操作的单独软件组件(未示出)可以被配置为分别监控和管理传送到管理程序160/1160和从管理程序160/1160传送的数据流量。虚拟交换机140/1140的实现可以变化并且可以取决于交换机在其中被部署为虚拟化介质的产品的类型。例如,虚拟交换机140/1140可以被实现为管理程序160/1160的一部分,如图1所示,如在和管理程序中。可选地,虽然未在图1中描绘,但虚拟交换机140/1140可以被实现为硬件组件,或用硬件辅助实现,或作为用户空间的一部分,或在特权虚拟机内实现,通常被称为域零(domain zero)或根分区。此类架构的示例包括和管理程序。
32.vm 120和1120可以实现为完整的计算环境。vm 120和1120在概念上包含物理计算系统的硬件和软件组件的虚拟等效物。vm 120和1120可以被实例化为虚拟化计算实例。实例可以配备有它们自己的资源,可以被分配它们自己的工作负载,并且可以被配置为执行被分配给工作负载的它们自己的任务。与vm 120和1120相关联的虚拟资源可以包括虚拟cpu、虚拟内存、虚拟磁盘、虚拟网络接口控制器等。vm 120和1120可以被配置为执行客户操作系统和客户应用程序。
33.物理网络190可以包括局域网和/或广域网并且可以利用各种硬件和软件配置。例如,物理网络190可以包括一个或更多个路由器(未示出)、一个或更多个交换机195、196和197,以及一个或更多个交换机端口191、1191。物理交换机195、196和197可以是可编程物理交换机,因而可以被配置为接收和存储s-规则,解析特殊mc报头,并基于特殊mc报头和s-规则确定是否以及如何在物理交换机的端口上中继mc分组。
34.1.1.管理平面
35.管理平面10是软件应用程序或应用程序组,其在执行时用于管理和监控在覆盖网络的实体上配置的网络服务。管理平面10可以被配置为例如接收来自mc组成员的常规配置请求,并处理该请求以生成配置指令。对逻辑覆盖网络多播组上的vm的请求可能需要加入主机(更准确地说,虚拟机在其上运行的主机的隧道端点)加入相应的底层网络多播组。这种关系的细节在jianjun shen等人发明的并于2016年8月30日授予的美国专利9,432,204中以示例的方式进行了描述,其全部内容通过引用并入本文。管理平面10还可被配置为将配置指令发送到中央控制平面20,以指示平面20基于该指令生成mc成员组,并在主机计算机110和1110上实现mc组。
36.1.2.中央控制平面
37.中央控制平面20是软件应用程序或软件应用程序组,其在执行时用于从管理平面10接收配置文件和指令,并使用接收到的数据来配置和控制网络中的实体。
38.1.3.底层控制器
39.底层控制器21是软件应用程序或软件应用程序组,其在执行时用于创建和修改mc组,并向虚拟交换机提供信息以促进mc组的成员之间的通信。底层控制器21可以经由api接收来自mc组的虚拟机租户的mc组加入和离开请求。加入mc组的请求可以包括例如mc组标识符、mc组通信的接收者的网络地址等。api可用于允许租户请求虚拟机、负载平衡器、防火墙和其他服务。在接收到请求时,底层控制器21可以将请求者包括在mc组中。使用拓扑信息,底层控制器21还可以确定用于将分组路由到mc组的成员的信息。此外,底层控制器21可以生成规则配置指令,并生成匹配和动作表、p-规则和s-规则。底层控制器21可以将匹配和动作表传送到虚拟交换机140和1140,以请求在主机上实现该表和规则。此外,底层控制器21可以分别经由连接112和1112将s-规则传送到在物理网络190中实现的物理交换机191、195、196、197和1191。
40.2.物理交换机的示例布置
41.图2a是描绘物理交换机的示例布置的框图。所描绘的布置包括一个或更多个架顶(“tor”)物理交换机212、214和216,一个或更多个主干物理交换机222、223和226,以及核心物理交换机232。主干物理交换机222、223和226可以具有多层主干交换机。主干交换机222、223和226可以经由端口(未示出)连接到核心交换机232。
42.在一个实施例中,tor物理交换机212、214和216检测分组,诸如分组200、201和202,解析检测到的分组以确定输出端口——如果有的话,并且在确定的输出端口上复制接收到的分组,以便主干物理交换机222、224和/或226可以检测分组。
43.3.多播负载统计数据
44.在一个实施例中,计算机主机使用高度可扩展的网络内多播方法将vm的负载统计多播到负载平衡器(未示出)。vm的负载统计可以包括vm的cpu利用率。基于接收到的负载统
计,负载平衡器可以确定流量应该被引导到哪些vm。负载平衡器可以在svm或其他服务设备中实现。
45.在一个实施例中,在主机110和1110中实现的代理软件模块(图1中未示出)从管理程序160和1160接收vm 120和1120的负载统计,因为管理程序160和1160通常具有可用的负载统计。代理生成mc分组,在分组的有效负载中包括该负载统计,在分组的报头中包括负载平衡器mc组的mc组标识符,并将分组多播到负载平衡器。
46.4.物理交换机处理特殊mc报头
47.在一个实施例中,分组包括vxlan报头,后跟特殊mc报头。特殊mc报头用于对物理交换机进行编程以处理mc分组。特殊mc报头包括mc分发树信息,否则这些信息将必须提供给每个物理交换机并由每个交换机存储。
48.在检测到具有特殊mc报头的分组时,物理交换机确定它自己的标识符是否包括在特殊mc报头中。如果交换机标识符包括在特殊mc报头中,则交换机从特殊mc报头中检索与交换机标识符相关联的位图行,并在位图行中标记为“1”的端口上复制分组。但是,如果交换机的交换机标识符没有包括在特殊mc报头中,那么交换机可以使用s-规则,如上所述。
49.图2b是描绘示例特殊mc报头250的框图。mc分组的特殊mc报头可以包括物理交换机的标识符252和位图254。位图254的位图行与标识符252中的标识符相关联。位图245通过向物理交换机指示物理交换机应该在其上中继mc分组以便分组可以到达mc组的成员的端口,来对mc组的mc树进行编码。
50.在一个实施例中,位图254的行对应于p-规则。p-规则指示在物理交换机上实现的并且交换机应在其上中继分组的端口。对于标识符252的给定标识符,位图254包括指示相应物理交换机需要将接收到的mc分组放置在哪些端口(如果有的话)上的一行二进制数据。在一个实施例中,对应于特定物理交换机的位图254的行中的第n位中的“1”指示特定交换机应该在其第n个输出端口上复制接收到的mc分组以中继该分组,而对应于特定物理交换机的位图254的行中的第m位中的“0”指示特定交换机不应在其第m个输出端口上复制接收到的mc分组。
51.通常,交换机标识符被分配给一个个体物理交换机,因此对应于该物理交换机的位图行包括用于该交换机的所有端口的指令。
52.在其他实现方式中,一个交换机标识符可以分配给多个物理交换机。如果交换机标识符被分配给多个物理交换机,那么在接收到具有包括这样标识符的特殊mc报头的mc分组时,交换机将该分组交换到多个交换机,并且多个交换机中的某些交换机使用它们自己的s-规则来确定它们是否需要在它们的端口上中继mc分组。
53.如果物理交换机是层2(“l2”)可编程交换机,则该交换机可以使用所公开的方法。可编程l2交换机被配置为解析检测到的分组的以太网报头,并确定该以太网报头是否设置了某个标志以指示该分组包括特殊mc报头。如果设置了该标志,则交换机访问并提取特殊mc报头,并使用特殊mc报头来确定如何复制检测到的分组。
54.如果物理交换机是传统交换机,则该交换机未被配置为识别检测到的分组中的特殊mc报头。传统交换机可能会忽略特殊mc报头并依赖其mc组表。由于传统交换机可能维护相对较小的mc表,因此传统交换机在实现高度可扩展性多播时会造成瓶颈。
55.5.高度可扩展的、软件定义的网络内多播
56.图3是描绘用于负载统计数据的高度可扩展的、软件定义的网络内多播的示例过程的时序图。该处理由底层控制器21、管理程序160/1160和物理交换机212/214/216/222/224/226/232执行。
57.5.1.由底层控制器执行的处理
58.在一个实施例中,底层控制器21接收多播组加入和离开mc组的潜在成员和当前成员的请求。基于该请求,底层控制器21可以生成可以使用mc组标识符索引的匹配和动作表并包括特殊mc报头,其包括p-规则。mc组的成员可以包括想要接收vm的负载统计的负载平衡器。底层控制器21可以将具有特殊mc报头的匹配和动作表发送到管理程序。
59.在一个实施例中,底层控制器21生成s-规则并将它们发送到虚拟交换机140和1140,以及物理交换机212、214、216、222、224、226和232。
60.5.2.由管理程序执行的处理
61.图4是负载统计数据的高度可扩展的、软件定义的网络内多播的示例流程图。图4中描述的步骤可以由管理程序执行,诸如管理程序160/1160。
62.在步骤402中,管理程序接收并存储包括特殊mc报头的匹配和动作表。
63.在步骤404中,管理程序检测分组。在检测到该分组时,管理程序确定该分组是否为mc分组。例如,管理程序可以解析分组报头,并确定该报头是否包括mc组标识符。在步骤408中,如果管理程序确定该分组是mc分组,则管理程序进行到步骤410;否则,管理程序进行到步骤409,其中管理程序按常规处理分组。
64.在步骤410中,在确定分组是mc分组时,管理程序或在管理程序中实现的虚拟交换机使用mc组标识符从匹配和动作表中检索特殊mc报头。特殊mc报头包括p-规则,其包括物理交换机的标识符和与标识符相关联的位图行。
65.在步骤412中,管理程序或管理程序的虚拟交换机用特殊mc报头封装mc分组。
66.在步骤414中,管理程序将封装分组提供给网络接口控制器(“nic”)以允许nic将分组发送到物理网络190。因此,在nic用附加的报头封装分组之前将特殊mc报头附加到分组,以促进将分组发送到网络190。
67.5.3.由物理交换机执行的处理
68.再次参考图3,在检测到mc分组后,可编程物理交换机解析分组的以太网报头,以确定分组中是否包括特殊mc报头。如果包括,则物理交换机提取特殊mc报头,并确定报头是否包括交换机的标识符和适用于交换机的p-规则。
69.如果交换机确定特殊mc报头包括交换机的标识符和适用于交换机的p-规则,则交换机使用p-规则来确定交换机应在其上复制分组的端口,从而中继分组。
70.如果物理交换机确定特殊mc报头不包括交换机的标识符,则交换机丢弃该分组,或使用s-规则,如上所述。
71.6.某些实施例提供的改进
72.在一个实施例中,负载统计数据的网络内多播为多播提供高度可扩展性,因为它在mc分组本身中向物理交换机提供mc树信息。这使物理交换机无需维护庞大的mc表,这些表通常仍然太小而无法处理数十万个mc租户。
73.在特殊mc报头中包括mc树信息并将mc报头添加到mc分组比使用物理交换机来维护庞大的mc表要减轻负担。例如,在包括27k主机的数据中心拓扑中,通过使用添加到mc分
组的特殊325字节长的mc报头来实现所提出的方法的数据中心可支持百万mc组,而由物理交换机维护的流表中仅需要大约1.1k多播条目。
74.在一个实施例中,所提出的方法解决了当今通常支持大量多播组的数据中心中的多播问题。由于典型的物理交换机没有足够的内存来维护此类mc表,如果没有所提出的方法,物理交换机无法处理当今数据中心的多播。
75.7.实现机制
76.本方法可以使用包括一个或更多个处理器和存储器的计算系统来实现。一个或更多个处理器和存储器可以由一个或更多个硬件机器提供。硬件机器包括用于寻址主存储器和用于在硬件机器的各种组件之间和其间传输数据的通信总线或其他通信机制。硬件机器还包括与总线耦合的一个或更多个处理器,用于处理信息。处理器可以是微处理器、片上系统(soc)或其他类型的硬件处理器。
77.主存储器可以是随机存取存储器(ram)或其他动态存储设备。它可以耦合到通信总线并用于存储信息和要由处理器执行的软件指令。主存储器还可用于在要由一个或更多个处理器执行的软件指令的执行期间存储临时变量或其他中间信息。
78.8.一般考虑
79.虽然各种附图中的一些可以以特定顺序示出多个逻辑阶段,但不依赖于顺序的阶段可以被重新排序并且其他阶段可以被组合或分解。虽然可能会具体提到一些重新排序或其他分组,但其他的对本领域普通技术人员来说将是显而易见的,因此本文呈现的排序和分组并不是备选方案的穷尽列举。此外,应该认识到,这些阶段可以用硬件、固件、软件或其任何组合来实现。
80.出于解释的目的,已经关于特定实施例描述了前述描述。然而,上述说明性实施例并非旨在穷举或将权利要求的范围限制为所公开的精确形式。鉴于上述教导,许多修改和变化是可能的。选择实施例以最好地解释权利要求及其实际应用底层的原理,从而使本领域的其他技术人员能够最好地使用具有适合预期用途的各种修改的实施例。
81.本文对包括在权利要求中的术语的任何定义都可以支配在权利要求中使用的这些术语的含义。权利要求中未明确记载的限制、要素、特性、特征、优点或属性不应以任何方式限制权利要求的范围。说明书和附图被认为是说明性的而不是限制性的。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献