高性能、可扩展和无掉话的数据中心交换结构的制作方法_3

文档序号:9238041阅读:来源:国知局
链路来交换分组的嵌入式通信控制器147。 如这里描述的那样,通信控制器147提供如下机制,这些机制允许由虚拟路由器104提供的 覆盖转发功能与现成的、基于分组的L2/L3联网部件一起利用而又基于以太网IP和覆盖转 发技术提供高性能、可扩展和免掉话的数据中心交换结构而无需专有交换结构。
[0062] 在这一示例中,在HNA内嵌入的通信控制器147包括调度器148和流控制单元 149。如这里描述的那样,调度器148管理用于与经由网络接口 106可达的每个HNA的按 对、点到点通信的一个或者多个传出队列151。例如关于图1,调度器148管理用于与在数 据中心10内和经由L2/L3交换结构14可达的其它HNA17的点到点通信的一个或者多个 传出队列151。在一个示例中,调度器148维护八(8)个传出队列151,这些传出队列用于 为在数据中心10发现的或者标识的为每个HNA12支持八(8)个并行通信流。用于与在数 据中心10内的相应HNA通信的传出队列151中的每个传出队列可以与不同优先级级别关 联。调度器148按照用于来自虚拟路由器128的任何传出通信的优先级、网络接口 106的 可用带宽、如流控制单元149报告的在目的地HNA的可用带宽和资源的指示来调度向每个 HNA的通信。
[0063] 一般而言,流控制单元149与在网络内的其它HNA、比如在数据中心10内的其它 HNA17的流控制单元通信以使用由虚拟路由器128建立的覆盖网络来为隧道通信提供拥 塞控制。如这里描述的那样,每个源/目的地对HNA的流控制单元149利用流控制信息以 通过L2/L3交换结构14提供鲁棒、无掉话的通信。
[0064] 例如,如以下进一步描述的那样,每个源/目的地对HNA周期性地交换关于当前有 待源传输的分组数据数量和在目的地当前可用的带宽资源数量的信息。换而言之,每个HNA 111的流控制单元149向每个其它HNA111的每个其它流控制单元149传达当前在传出队 列151内有待向该HNA发送的分组数据量、即用于被路由实例122中的一个或者多个路由 实例构造的和去往该HNA的传出隧道分组的分组数据量。相似地,每个HNA的每个流控制单 元149向每个其它HNA111的每个其它流控制单元149传达在存储器153内用于从该HNA 接收分组数据的可用存储器资源量。以这一方式,为每个源/目的地对HNA111、比如为数 据中心10的HNA17的每个源/目的地按对组合周期性地交换和维护按对流控制信息。另 外,用于每个HNA源/目的地对的流控制信息可以指定待发送的数据量和在每输出队列粒 度上可用的带宽量。换而言之,在其中用于每个HNA111的调度器148维护用于支持向在 数据中心10内的每个其它HNA的八(8)个并行通信流的八(8)个输出队列151的示例中, 流控制单元149可以维护用于与其它HNA的每个资源/目的地按对组合的输出队列中的 每个输出队列的流控制信息。
[0065] 调度器148基于与传出队列关联的优先级、网络接口 106的可用带宽以及如流控 制单元149报告的在目的地HNA的可用带宽和资源有选择地从传出队列151传输传出隧道 分组。
[0066] 在一个示例中,流控制单元149修改虚拟路由器128输出的传出隧道分组以嵌入 流控制信息。例如流控制单元149可以修改每个传出隧道分组的外部报头以插入隧道分组 去往的目的地HNA特有的流控制信息。在隧道分组内插入的流控制信息可以向目的地HNA 通知在一个或者多个传出队列151中有待去往目的地HNA的数据量(即一个或者多个队列 长度)和/或在存储器153中可用于从传出隧道分组去往的HNA接收数据的空间量。在一 些示例实施例中,在隧道分组内插入的流控制信息指定隧道分组去往的HNA被允许向HNA 111发送数据的一个或者多个最大传输速率(例如每优先级的最大传输速率)。
[0067] 以这一方式,流控制信息在按对HNA组合之间的交换无需利用分离消息,这些消 息原本消耗在数据中心10的交换结构14内的附加带宽。在一些实现中,HNA111的流控制 单元149可以在其中针对阈值时间段尚无输出隧道分组、或者不充分的数据量(例如〈4KB) 被发送到在数据中心内的HNA(例如数据中心10的HNA12)的情形中根据需要向那些HNA 输出用于携带流控制信息的"心跳"消息。以这一方式,心跳消息可以根据需要用来保证流 控制信息当前在关于每个源/目的地按对HNA组合的所有HNA可用。在一个示例中,心跳 消息被构造和调度为以使得心跳消息即使在其中没有隧道分组当前正在被使用的情形中 仍然消耗不超过交换结构14提供的总点到点带宽的1%这样的频率而被发送。
[0068] 在一些实施例中,流控制单元149可以修改每个传出隧道分组的外部报头以插入 隧道分组去往的目的地HNA和从其发送隧道分组的传出队列151的优先级级别特有的序列 号。在接收到传入隧道分组时,流控制单元149可以记录分组并且对于用于如基于发送 HNA在隧道报头内嵌入的序列号而确定的给定的优先级的、即与传出队列151之一关联的 任何遗漏隧道分组和在被设置为等待遗漏隧道分组的定时器到期时请求重传。另外,流控 制单元149可以维护用于每个优先级的分离序列号空间。以这一方式,HNA17的流控制单 元149例如可以建立和维护相互之间的鲁棒分组流,即使虚拟路由器128可以在交换结构 14的现成的L2/L3路由和交换部件之上利用覆盖转发技术。
[0069] 图5是具体图示主机网络加速器可以根据在本公开内容中描述的技术处理的示 例隧道分组的框图。为了简化和易于图示,隧道分组155并未图示典型隧道分组的每一个 字段、而是被提供为突出这里描述的技术。此外,各种实现可以在各种排序中包括隧道分组 字段。
[0070] 在这一示例中,"外"或者"隧道"分组155包括外部报头156和内或者"封装"的 分组157。外部报头156可以包括协议或者服务类型(T0S)字段162和以源IP地址字段 164和目的地IP地址字段166的形式的公用(即可由用于与内部分组157关联的虚拟网络 的下层物理网络交换)IP地址信息。T0S字段可以定义用于由如这里描述的交换结构14的 设备和HNA处置分组的优先级。协议字段162在这一示例中指示隧道分组155使用GRE隧 道封包、但是可以在其它情况下使用其它形式的隧道封包、例如包括IPinIP、NVGRE、VxLAN和在MPLS之上的MPLS。
[0071] 外部报头156也包括隧道封包159,该隧道封包在这一示例中包括用于指定GRE协 议(这里为MPLS)的GRE协议字段170和用于指定MPLS标签值(这里为214)的MPLS标 签字段172。MPLS标签字段是虚拟网络标识符的示例并且可以在虚拟路由器(例如图4的 计算设备100的虚拟路由器128)中与用于虚拟网络的路由实例关联。
[0072] 内部分组157包括内报头148和净荷184。内报头158可以包括协议或服务类型 (T0S)字段174以及以源IP地址字段176和目的地IP地址字段178的形式的私有(S卩,用 于特定虚拟路由和转发实例)IP地址信息,连同以源端口字段180和目的地端口字段172 的型式的传送层信息。净荷184可以包括应用层(第7层(L7))和在一些情况下包括由用 于虚拟网络的虚拟机产生或者用于由该虚拟机消耗的其它L4-L7信息,净荷184可以包并 且因此备选地被称为"L4分组"、"UDP分组"或者"TCP分组"。
[0073] 根据在本公开内容中描述的技术,在转发虚拟路由器(例如虚拟路由器128)生成 的隧道分组155时,主机网络加速器可以修改外部报头156以包括隧道分组去往的HNA特 有的流控制信息185。在这一示例中,流控制信息185可以包括向接收主机网络加速器指 示在用来存储传出隧道分组的一个或者多个传出队列151中有待去往目的地HNA的数据量 的第一字段186。例如在HNA支持八个优先级级别并且因此支持用于在数据中心内的每个 HNA的八个传出队列的情况下,字段186可以指定在八个传出队列中的每个传出队列内与 隧道分组155去往的HNA关联的当前数据量。
[0074] 此外,流控制185包括指示隧道分组155去往的HNA被允许向HNA发送隧道分组 155发送数据的传输速率(例如字节每秒)的第二字段187。另外,流控制信息185包括第 三字段188,在该第三字段内,发送HNA为HNA输出隧道分组155的当前时间指定时间戳。 这样,隧道分组155的时间戳向接收HNA提供关于流控制信息185有多么当前或者陈旧的 指示。
[0075] 为了对分组重新排序以有助于向HNA的传出(例如PCIe)接口的无掉话分组递 送、外部报头156图示可选序列号("SEQN0")字段189,该字段可以包括用于源HNA/目 的地HNA对--具体为用于隧道分组的源HNA111和目的地HNA--的一个或多个优先级 的序列号值。在用于优先级的序列号字段189中包括的每个序列号可以在一些实例中是2 字节值。因此,在其中HNA实施4个优先级的实例中,序列号字段189将是8字节字段。在 接收到包括序列号字段189的传入隧道分组155时,流控制单元149可以对分组155重新 排序,并且对于给定优先级的任何丢失的隧道分组(即,与传出队列151之一关联)请求重 传,该丢失的分组优先级由正在发送的HNA在被设置为等待丢失的隧道分组的定时器到期 时基于嵌入在外部报头156内的序列号字段189的对应序号的值来确定。正如指出的那样, 流控制单元149可以维护用于每个优先级的分离序列号空间。以这一方式,HNA17的流控 制单元149例如可以建立和维护在每个其它HNA之间的鲁棒分组流,即使虚拟路由器128 可以在交换结构14的现成的L2/L3路由和交换部件之上利用覆盖转发技术。
[0076] 主机网络加速器111可以被设立例如在存储器153中用于接收分组的大量缓冲存 储器以允许存储具有遗漏分组的长系列分组。因此,HNA111可以减少对于在等待遗漏隧 道分组155之时发送重传的需要。存储器153包括与主存储器144相似的一个或者多个计 算机可读存储介质。
[0077] 图6是具体图示示例分组结构的框图,该分组结构可以被主机网络加速器用于维 护按对"心跳"消息,这些按对"心跳"消息用于在当前未对于给定的HNA源/目的地对通过 覆盖网络交换隧道分组(例如图5)的情况下传达更新的流控制信息。在这一示例中,心跳 分组190包括向跟随有包含流控制信息195的净荷193的IP报头194前置的以太网报头 192。如在图5中那样,流控制信息195包括指示在与分组190去往的HNA关联的传出队列 中的每个传出队列中的当前数据量的第一字段186。此外,流控制信息195包括指示允许的 传输速率(例如每秒字节)的第二字段197和用于为HNA输出分组190的当前时间指定时 间戳的第三字段188。
[0078] 在一个示例中,用于心跳分组190的分组结构可以符合在表1中阐述的格式:
[0079]
[0080]
[0081] 表1:心跳分组^
[0082] 在这一示例中,心跳分组190可以被实现为具有64字节总帧大小、即初始24字节 以太网真报头、20字节IP报头和包含流控制信息的20字节净荷。队列长度和允许的速率 各自是8字节字段。在这一实例中,8字节在HNA实现的4个不同优先级之中被均匀地划分 (同样对于这一实例实现)。因此,每优先级的每个队列长度和允许的速率是16位值。设 想其它精确度级别和优先级数目。
[0083] 在另一实例中,用于心跳分组190的分组结构可以符合在表2中阐述的格式。
[0084]
[0085] 表2:心跳分组怕"A
[0086] 在这一示例中,心跳分组190具有与表1呈现的格式相似的格式、但是还包括可选 8字节序列号("SEQN0")字段199,该字段对于这一示例实现方式包括用于由HNA实现的 4个不同优先级的序列号。序列号字段199具有与隧道分组155的序列号字段189相似的 功能。
[0087]流控制单元149根据这里描述的技术对流控制和序列编号的使用可以提供向在 下层物理网络的边缘操作的HNA的虚拟路由器128延伸并且向虚拟机110延伸一个或者多 个虚拟网络的多点到多带你、无掉话和可扩展的物理网络。因此,主控用于各种租户的用户 应用的虚拟机110经历如实现虚拟路由器128的HNA提供的在虚拟网络边缘的高速和可靠 第3层转发。
[0088] 图7是图示根据这里描述的技术的主机网络加速器(HNA)的概念图200的框图, 这些HNA在网状拓扑中被交换结构互连用于在HNA之间的可扩展、无掉话、端到端通信。如 以上描述的那样,HNA通过用隧道传输第3层分组以将每个虚拟网络延伸到它的关联主机 来在物理网络之上实施一个或者多个虚拟网络。在所示概念图中,源HNA17AS-17NS (统称 为"源HNA17s")各自代表作为用于在虚拟网络下层的物理网络的源端点操作的主机网络 加速器。目的地HNA17AD-17ND (统称为"目的地HN
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1