用于在网络设备中提供分类资源的分区的系统和方法与流程

文档序号:15885790发布日期:2018-11-09 18:51阅读:217来源:国知局
用于在网络设备中提供分类资源的分区的系统和方法与流程

本专利文献的公开内容的一部分包含受版权保护的材料。版权所有者不反对任何人对专利文献或专利公开内容如同其在专利和商标局专利文件或记录中所呈现的那样进行传真复制,但是以其他方式保留所有版权权利。

本发明的实施例一般而言涉及高性能网络,并且具体地涉及用于在高性能网络中的网络设备中提供分类资源的分区的系统和方法。

背景技术

高性能网络体系架构(例如infiniband和以太网)可以为多个数据中心服务器提供高吞吐量连接。与流经体系架构的各种虚拟机(vm)相关的业务流(trafficstream)可以由每个应用需要的各种业务类别组成,诸如低延时流和高吞吐量批量传输流。

通过高性能体系架构的业务可以包括去往/来自数据中心中的各种vm的虚拟化业务流。由于较新的覆盖协议的出现,覆盖网络使得数据中心能够扩展和超越现有网络的限制。扩展可能增加附加的分组解析和处理复杂性。

例如,除了具有较大数据中心/网络的分组解析复杂性之外,l2-l4分组解析和实施规则的数量往往非常大,这增加了分组解析的复杂性和跟上性能目标(例如,在吞吐量、延时和功率方面)的分组解析硬件。

随着覆盖网络协议的演进和部署在大型数据中心中,网络协议级别卸载的部分在最低硬件组件级别处(例如,在网络接口卡或交换机或其组合处)执行,以跟上更高的吞吐量和低延时要求。协议级别卸载需要网络分组的粗到细粒度流(例如,l2-l4)识别。该处理通常涉及用于从分组中识别出字段并将这些字段与查找表(例如,在三元内容可寻址存储器(tcam)中的查找表)中编程的规则/策略匹配的分组解析。在业务流中存在大量的流并且高聚合吞吐量的情况下,具有既能扩展又能跟上性能目标的解决方案将是有利的。



技术实现要素:

根据实施例,本文描述的是用于在高性能网络中的网络设备中提供分类资源分区的系统和方法。分类资源可以被配置到多个级别的分区中,其中一个或多个基于硬件的分区被配置为存储与频繁使用的或性能敏感的流相关联的流条目,以及基于固件的分区用以访问存储在一个或多个附加存储器中的大型查找表用于分类资源可扩展性。查找关键字可以用于首先在基于硬件的分区中搜索流条目匹配。如果存在未命中(miss),则可以将查找关键字呈现给基于固件的分区以供进一步搜索。来自基于固件级别的结果可以被分派回基于硬件的解析器以供进一步处理。可以基于流条目的利用率由分区管理块在查找表之间移动流条目。

附图说明

图1图示了根据实施例的用于在高性能网络中的网络设备中提供分类资源分区的系统。

图2进一步图示了根据实施例的用于在高性能网络中的网络设备中提供分类资源分区的系统。

图3图示了根据实施例的用于在高性能网络中的网络设备中提供分类资源分区的方法。

图4示出了根据实施例的示例高性能网络。

具体实施方式

在高性能网络中,分组分类是指将数据分组归类为“流”的处理,使得属于相同流的所有数据分组遵循预定义规则并以类似方式进行处理。对于非尽力(non-best-effort)服务,诸如防火墙和服务质量,可能需要分组分类。

例如,可以识别具有相同源和目的地ip地址的所有分组以形成流。

根据实施例,网络设备可以依赖于分类原语用于数据分组处理。示例分类基元(primitive)可以包括分组解析器,以及存储在二进制内容可寻址存储器(bcam)、三元内容可寻址存储器(tcam)和随机存取存储器(ram)中的分类/查找表。每个查找表可以包括多个流条目。

根据实施例,每个流条目可以包含多个匹配字段以匹配数据分组。匹配字段可以包括入口端口、分组报头、以及可选的其它流水线(pipeline)字段,诸如由先前表指定的元数据。流条目还可以包括指示流条目的匹配优先级的优先级字段、当分组被匹配时可以被更新的计数器字段、用于修改动作集或流水线处理的指令。流条目还可以包括用于过滤数据分组的流规则和策略。

根据实施例,流条目可以由系统管理员自动填充或创建。因此,查找表中的格式或字段可以基于应用的需要而不同。例如,流条目可以包括从数据分组的一个或多个报头和关键字掩码中选择的字节值。

典型的分组处理应用涉及分组解析以识别网络分组中的各种字段、构成关键字、以及对一个或多个查找表执行查找/搜索。取决于被选择构成关键字的字段,用于查找/搜索的表的类型可能不同。类似地,查找表所需的大小可能取决于应用。例如,应用可能需要非常大的l2查找表和浅的l3查找表,而另一个应用可能需要两个查找表的大小类似。

由于需要高性能网络来支持越来越多的覆盖协议以及越来越多的流,因此查找表的大小可以随着更多的流条目而增加。由于诸如查找表之类的分类资源在实现成本和查找速度方面是不同的,因此具有既能扩展又能跟上性能目标的解决方案将是有利的。

根据实施例,本文描述的是用于在高性能网络中的网络设备中提供分类资源分区的系统和方法。分类资源可以被配置到多个级别的分区,其中一个或多个基于硬件的分区被配置为存储与频繁使用的或性能敏感的流相关联的流条目,以及基于固件的分区用以访问存储在一个或多个附加存储器中的大型查找表用于分类资源可扩展性。查找关键字可以用于首先在基于硬件的分区中搜索流条目匹配。如果存在未命中,则可以将查找关键字呈现给基于固件的分区以供进一步搜索。基于固件级别的结果可以被分派回基于硬件的解析器以供进一步处理。可以基于流条目的利用率由分区管理块在查找表之间移动流条目。

根据实施例,分类资源的基于硬件的分区可以包括在级别1分区中的一个或多个tcam,以及在级别2分区中的一个或多个散列表。基于固件的分区可以表示分类资源的级别3分区,并且可以包括包含多个网络处理元件(pe)的嵌入式处理器子系统,并且每个pe可以基于成熟的微处理器或微控制器,或者基于状态机的硬件引擎。

根据实施例,分区管理块可以是基于硬件的动作和基于固件的动作的混合,以高效地管理分类资源的每个分区中的流条目和查找表,使得可以满足给定的性能目标。系统可以支持多个特征以促进与查找表相关的管理动作。

框架可以用于管理和扩展大量分类资源,这些资源被分区为tcam、散列表和连接到外部或远程存储器的基于固件的子系统的层次结构,其中在每个级别具有高速缓存。层次结构中的每个级别可以存储流条目,并且可以在吞吐量、延时和功耗方面有所不同。本文描述的框架独立于底层联网技术的类型(诸如infiniband或以太网),并且可以统一地应用于多种网络技术。

分类资源分区

图1图示了根据实施例的用于在高性能网络中的网络设备中提供分类资源分区的系统。

如图1所示,高性能网络(例如infiniband)中的网络设备101可以包括多个分类资源,例如,存储在bcam、tcam和ram中的查找表。

根据实施例,查找表可以被组织为在运行时期间被配置为任何类型的通用库元素。每个查找表可以被配置有用于查找目的的唯一id。作为查找关键字生成和构成的一部分,唯一表id可以被生成。查找关键字的id和查找表的id必须彼此匹配,以使来自查找表的查找结果有效。因此,查找表id和查找关键字id可以使得分类框架能够通过重新排列查找表并调整它们的大小来对分类资源进行分区。

例如,具有特定范围内的id的多个查找表可以通过配置被放置在分区中。通过配置具有相同范围内的id的查找关键字,可以将对流条目匹配的搜索定向到分区。

如图1所示,系统中的分类资源(例如查找表)可以被配置到三个分区中。

根据实施例,分类资源111的级别1分区可以包括其中存储有查找表的一个或多个可编程tcam(例如,tcam113)。tcam可以用作级别一(l1)高速缓存,以存储与频繁使用的或性能敏感的流相关联的流条目。

根据实施例,分类资源119的级别2分区可以包括一个或多个可编程散列表(例如,散列表122),并且每个散列表可以包括存储流条目的散列表桶(bucket),并且可以基于静态随机存取存储器(sram)121。

由于散列表上的匹配可能导致混叠(aliasing),因此散列表内可能需要多次查找来解决冲突/混叠。每个散列表的大小可以是可配置的,并且与tcam的大小相比可能非常大,以支持更多数量的流条目。可以作为散列表的一部分创建或遍历的链接列表链可以被限制为固定数量,并且可以按照特定吞吐量要求进行配置。

根据实施例,分类资源125的级别3分区可以包括基于固件的嵌入式处理器子系统129,该子系统被配置为访问存储在一个或多个附加存储器127中的查找表。附加存储器可以包括附连到网络设备的外部存储器,例如,基于双列直插式存储器模块(dimm)的双倍数据速率(ddr)存储器;可以通过网络访问的远程存储器;以及可以通过外围组件快速互连(pcie)(高速串行计算机扩展总线组件)来访问的系统存储器。

以上描述的用于实现每个分区中的每个分类资源的介质作为说明性示例被提供。本领域技术人员将理解的是,可以类似地使用其它介质来实现系统中的分类资源分区。

根据实施例,在级别1分区中的分类资源在存储流条目、规则和策略方面可以小;在价格和功耗方面成本更高;但是在性能方面更快。级别2分区中的分类资源可以更大并且成本更低,但性能方面更慢。级别3分区中的分类资源可以具有大的延时,但是可以用于通过访问附加存储器(例如,附连的存储器和网络存储器)来根据需要存储尽可能多的规则、策略和流条目。

根据实施例,每个分区的大小可以被确定为多个因素之间的权衡,因素包括应用需求、所需的性能目标、以及在区域(例如,卸载引擎所驻留的位置)和/或功耗方面相关联的硬件复杂性。

根据实施例,分类资源的级别2分区和分类资源的级别3分区可以被认为是对第一级别的分类资源的扩展。通过网络设备101的数据分组可以首先被定向到第一级别的分类资源,并且仅当在级别1分区中(例如,在tcam中的查找表中)未找到命中(hit)时,数据分组被定向到第二级别。如果在级别2分区中未找到命中,则将分组定向到级别3分区。

在本公开中,根据实施例,当数据分组被定向到分类资源的分区中的查找表时,由数据分组的一个或多个报头字段构成的查找关键字被呈现给查找表以用于流条目匹配。

作为说明性示例,如图1所示,当在分组解析器109处接收到数据分组105时,分组解析器可以定位并提取表示数据分组中的一个或多个报头字段的一个或多个字节,并构造查找关键字,该关键字可以被首先定向到tcam113,以便基于指定的策略和规则与流条目进行匹配。如果存在未命中,则将查找关键字定向135到散列表122,并且如果散列表中存在未命中,则将查找关键字定向137到基于固件的嵌入式处理器子系统129。

根据实施例,基于固件的嵌入式处理器子系统还可以用于其中规则溢出或者在级别1分区和级别2分区中遇到新规则或新流条目的情况。

根据实施例,通过基于固件的嵌入式处理器子系统的处理的延时可以长并且取决于查找关键字的状态和搜索下的策略而不同。为了减轻总体延时并跟上总体吞吐量要求,可以在基于固件的嵌入式处理器子系统中提供多个处理元件(pe)以并行工作。每个pe可以基于成熟的微处理器、或微控制器或基于状态机的硬件引擎。

根据实施例,散列函数132可以与多个负载平衡队列131结合使用以在多个pe之间分散工作负载,并维持流亲和性(affinity)和分组排序。可以将来自pe的结果分派141回基于硬件的分组解析器109,用于通过多个结果分派队列133进行进一步处理。

根据实施例,负载平衡队列和结果分派队列二者都可以是基于硬件的,例如,基于直接存储器访问(dma)引擎。

分类资源管理

如图1中进一步所示,可以在网络设备中提供分区管理块117以管理每个分区中的查找表来满足给定的性能目标。基于固件的嵌入式处理器子系统可以提供多个表管理线程,以供分区管理块用于管理查找表。分区管理块可以包括基于硬件和固件的动作的混合。

根据实施例,分区管理块可以与级别三个分区级别中的每个级别中的代理(例如,级别1分区中的代理115、级别2分区中的代理123和级别3分区中的代理130)进行通信。

根据实施例,分区管理块可以从代理115和123收集关于命中和未命中的信息,并使用该信息来确定是否需要将查找关键字定向到下一级别的分区以进行进一步搜索。

根据实施例,为了促进与表管理相关的动作,代理115、123和131中的每一个可以包括针对在代理的相应分区中的查找表中的每个流条目的记分板(scoreboard)。记分板可以跟踪流条目的命中和未命中的数量、给定时间段内命中和未命中的频率、以及流条目已被系统访问的次数。对于匹配的缺失,记分板的值可以被周期性地递减。

根据实施例,如果级别1分区或级别2分区中的记分板的值低于给定阈值,则相关联的流条目可以被标记为无效,这可能导致完全从tcam和散列表中移除流条目,或者从tcam中移除流条目并且将流条目插入到散列表中,或者从散列表中移除流条目并且将流条目插入到tcam中。流条目的失效可能导致查找表中的未命中。流条目的移除可以通过整个系统配置由策略驱动。

根据实施例,基于硬件的分区(即,级别1分区和级别2分区)中的每个代理可以使用高速缓存替换算法或策略(例如,最近最少使用(lru)或最少频繁使用(lfu))来管理tcam(l1高速缓存)或散列表(l2高速缓存),用以例如确定要从查找表中移除哪个流条目。

根据实施例,级别3分区中的代理130可以与分区管理块一起工作,以更新用于低延时流的高速缓存。

例如,如果搜索给定的流条目导致tcam和散列表二者中的未命中,并且搜索最终由级别3分区中的pe处理,则固件代理130可以基于级别3分区中本地存储的策略将给定的特定流条目139添加到级别1分区或级别2分区中的查找表中。

分类资源可扩展性

根据实施例,分类资源可以通过通用库元素来进行配置,并且可以在逻辑上被布置为高速缓存的层次结构。可以通过分组解析引擎或分组解析器根据数据分组的报头来生成查找关键字。每个查找关键字可以与表id一起合成。查找关键字可以与表id一起被呈现给查找表,并且来自查找表的结果可以被分派回分组处理引擎或分组解析器以供进一步处理。

根据实施例,上述分类资源分区框架可以用于扩展分区的分类资源,使得可以支持大量的流条目、规则和策略。

图2进一步图示了根据实施例的用于在高性能网络中的网络设备中提供分类资源分区的系统。

更具体地,图2图示了根据实施例的扩展系统中的分类资源。

根据实施例,如上所述,基于固件的嵌入式处理器子系统可以包括多个网络处理元件(pe),这些pe被配置为经由一致性存储器层次结构239访问一个或多个附加存储器127。附加存储器的示例包括附连到网络设备的外部存储器228、可以通过网络访问的远程存储器229、以及可以通过外围组件快速互连(pcie)访问的系统存储器227。

根据实施例,多个pe可以并行工作以管理在一个或多个附加存储器125中的查找表(例如,级别1分区和级别2分区中的查找表)中对于可能不存在于硬件高速缓存中的流条目的搜索。实际的搜索可以由基于固件的嵌入式处理器子系统中的一个或多个硬件辅助引擎来执行,并且pe被配置为提供对一个或多个附加存储器的高效访问。

如图2所示,多个处理线程(例如,线程a245至线程n249)可以用于一个或多个附加存储器中的流条目搜索。每个线程可以是固件线程。

由于流条目搜索可能取得可变量的延时,因此可以基于pe的当前负载和流亲和性将处理线程分配给多个pe。

根据实施例,一个或多个硬件辅助引擎(例如,硬件辅助引擎241)可以用于将搜索任务分派给每个pe。散列243可以由硬件辅助引擎基于一个或多个分组报头或从一个或多个分组报头中选择的字节来计算。基于散列,可以向每个pe分配特定的处理线程。

根据实施例,可以在基于硬件的块(该基于硬件的块可以包括级别1分区和级别2分区)和基于固件的分区中的pe的接口之间提供多个基于dma引擎的负载平衡队列131,其中每一个负载平衡队列特定于处理线程。每个负载平衡队列的入队可以由基于硬件的块来控制,并且每个负载平衡队列的出队可以由基于固件的嵌入式处理器子系统来控制。

根据实施例,一旦从构成查找关键字的报头中选择的所需分组报头或字节被pe出队,pe就可以启动搜索处理,该搜索处理可以执行散列表搜索或另一种搜索算法。当搜索处理的结果可用时,可以将结果分派回到多个结果分派队列中,使得结果253可以被发送回分组解析器以供进一步处理。结果分派队列可以是硬件队列,例如,基于dma引擎的队列。

根据实施例,负载平衡队列和结果分派队列的使用可以提供分组排序和流亲和性维护。例如,负载平衡队列可以对查找关键字或数据分组进行排队,使得查找关键字或数据分组可以按顺序进行处理。结果分派队列可以被用于发送回处理结果,使得结果可以由分组处理器按顺序进行处理。

根据实施例,除了使用多个pe并行工作之外,级别3分区还可以使用多个各种硬件辅助引擎来减少每个处理线程的处理延时。

例如,硬件辅助引擎241用于计算散列,一个或多个硬件辅助引擎用于执行对流条目匹配的搜索,并且一个或多个dma引擎用于实现和/或管理结果分派队列和负载平衡队列。

如图2所示,每个负载平衡队列和每个结果分派队列可以与多个处理线程245至249中的一个处理线程相关联。附加线程可以在基于固件的嵌入式处理器子系统中可用,用于管理和更新系统中的查找表。

更新查找表

根据实施例,基于固件的嵌入式处理器子系统可以管理级别3分区中的查找表,并且与分区管理块117一起工作,以更新在级别1分区和级别2分区中存储低延时流条目的查找表。

根据实施例,系统中的查找表可以由一个或多个表管理线程来管理。每个流条目可以与记分板相关联,该记分板跟踪在给定时间段内命中/未命中的数量以及命中和未命中的频率。由分区管理块维护的阈值可以用作触发器以生成对一个或多个管理线程的中断,使得表管理线程可以基于阈值中的一个阈值从查找表中移除流条目。

类似地,根据实施例,处理线程可以跟踪由于级别1分区和级别2分区中的查找表中的未命中而被频繁搜索的流条目的数量。当阈值超过可配置阈值时,处理线程可以将请求分派给表管理线程,使得管理线程可以将频繁使用的流条目插入回级别1分区或者级别2分区中的查找表中。可以基于诸如更新的频率和高速缓存逐出策略之类的策略来驱动流条目的插入。

图3图示了根据实施例的用于在高性能网络中的网络设备中提供分类资源分区的方法。

如图3所示,在步骤311处,在高性能网络中的网络设备上提供分类资源的多个分区,其中分类资源的多个分区包括一个或多个基于硬件的分区,以及基于固件的分区。

在步骤313处,查找关键字由在网络设备处接收到的数据分组的一个或多个报头字段构成。

在步骤315处,在一个或多个基于硬件的分区中针对查找关键字的匹配执行一个或多个搜索。

在步骤317处,当基于硬件的分区中存在未命中时,在基于固件的分区中针对查找关键字的匹配执行搜索。

infinibandtm

infinibandtm(ib)是其中可以使用上述系统和方法的示例高性能网络。

infinibandtm是由infinibandtm贸易协会开发的开放标准无损网络技术。该技术基于供应高吞吐量和低延时通信的串行点对点全双工互连,具体地面向高性能计算(hpc)应用和数据中心。

infinibandtm体系架构(iba)支持双层拓扑划分。在下层,ib网络被称为子网,其中子网可以包括使用交换机和点对点链路进行互连的一组主机。在上层,ib架构构成可以使用路由器进行互连的一个或多个子网。

在子网内,主机可以使用交换机和点对点链路来连接。另外,可以存在主管理实体:子网管理器(sm),该子网管理器驻留在子网中的指定设备上。子网管理器负责配置、激活和维护ib子网。另外,子网管理器(sm)可以负责在ib架构中执行路由表计算。这里,例如,ib网络的路由旨在在本地子网中的所有源和目的地对之间进行适当的负载平衡。

通过子网管理接口,子网管理器与子网管理代理(sma)交换被称为子网管理分组(smp)的控制分组。子网管理代理驻留在每个ib子网设备上。通过使用smp,子网管理器能够发现架构、对端节点和交换机进行配置,并从sma接收通知。

根据实施例,ib网络中的子网内路由可以基于存储在交换机中的lft。lft由sm根据所使用的路由机制来计算。在子网中,交换机和端节点上的主机通道适配器(hca)端口使用本地标识符(lid)进行寻址。lft中的每个条目由目的地lid(dlid)和输出端口组成。仅支持表中每lid一个条目。当分组到达交换机时,通过在交换机的转发表中查找dlid来确定其输出端口。路由是确定性的,因为分组在网络中在给定的源-目的地对(lid对)之间采用相同的路径。

一般而言,除了主子网管理器之外的所有其它子网管理器在备用模式中活动用于容错。但是,在主子网管理器发生故障的情况下,由备用子网管理器协商新的主子网管理器。主子网管理器还执行子网的周期性扫描,以检测任何拓扑变化并相应地对网络进行重新配置。

此外,可以使用本地标识符(lid)来对子网内的主机和交换机进行寻址,并且可以将单个子网限制为49151个单播lid。除了作为在子网内有效的本地地址的lid之外,每个ib设备还可以具有64位全局唯一标识符(guid)。guid可以用于形成作为ib层三(l3)地址的全局标识符(gid)。

在网络初始化时,sm可以计算路由表(即,子网内每对节点之间的连接/路由)。此外,每当拓扑改变时,都可以更新路由表以便确保连接性和最佳性能。在正常操作期间,sm可以执行网络的周期性轻扫描(lightsweep)以检查拓扑变化。如果在轻扫描期间发现变化,或者如果sm接收到发信号通知网络变化的信息(陷阱),则sm可以根据所发现的变化来对网络进行重新配置。

例如,当网络拓扑改变时(诸如当链路断开时、当设备被添加时或者当链路被移除时),sm可以对网络进行重新配置。重新配置步骤可以包括在网络初始化期间执行的步骤。此外,重新配置可以具有限于其中发生网络改变的子网的本地范围。此外,用路由器对大型架构进行分段可以限制重新配置的范围。

图4中示出了示例infiniband架构,图4示出了根据实施例的infiniband环境的图示。在图1中示出的示例中,节点a-e401-405使用infiniband架构620经由相应的主机通道适配器411-415进行通信。根据实施例,各种节点(例如,节点a-e401-405)可以由各种物理设备来表示。根据实施例,各种节点(例如,节点a-e401-405)可以由诸如虚拟机的各种虚拟设备来表示。

本发明可以方便地使用一个或多个常规的通用或专用数字计算机、计算设备、机器或微处理器来实现,包括根据本公开的教导来编程的一个或多个处理器、存储器和/或计算机可读存储介质。如对于软件领域的技术人员来说将显而易见的,基于本公开的教导,熟练的程序员可以容易地准备适当的软件编码。

在一些实施例中,本发明包括计算机程序产品,该计算机程序产品是具有存储在其上/其中的可用于对计算机编程以执行本发明的任何处理的指令的非瞬态存储介质或计算机可读介质。存储介质可以包括但不限于:任何类型的盘(包括软盘、光盘、dvd、cd-rom、微驱动器以及磁光盘)、rom、ram、eprom、eeprom、dram、vram、闪存存储器设备、磁卡或光卡、纳米系统(包括分子存储器ic)、或适于存储指令和/或数据的任何类型的介质或设备。

已经出于说明和描述的目的提供了本发明的实施例的前述描述。它不旨在是穷尽的或者将本发明限制为所公开的精确形式。许多修改和变化对本领域技术人员来说将是显而易见的。修改和变化包括所公开特征的任何相关组合。实施例的选择与描述是为了最好地解释本发明的原理及其实践应用,从而使本领域其它技术人员能够理解本发明的各种实施例以及适于所设想的特定用途的各种修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1