首页> 中国专利> 用于数据中心覆盖网络的基于PCIe的主机网络加速器(HNA)

用于数据中心覆盖网络的基于PCIe的主机网络加速器(HNA)

摘要

本发明的实施方式涉及一种用于数据中心覆盖网络的基于PCIe的主机网络加速器(HNA)。描述一种高性能、可扩展和无掉话的数据中心交换结构和基础设施。数据中心交换结构可以利用低成本、现成的的基于分组的交换部件(例如以太网IP(IPoE))和覆盖转发技术而不是专有交换结构。在一个示例中,主机网络加速器(HNA)被定位于数据中心的服务器(例如虚拟机或者专用服务器)与提供在服务器之间的点到点连通的IPoE核心网络之间。HNA是在一个或者多个集成电路上嵌入虚拟路由器的硬件设备,其中虚拟路由器被配置为向虚拟机延伸一个或者多个虚拟网络和使用覆盖网络通过交换结构无缝地传送分组。换而言之,HNA提供与用于通过数据中心的核心交换网络传达分组流的覆盖技术的基于硬件的无缝接入接口。

著录项

  • 公开/公告号CN104954253A

    专利类型发明专利

  • 公开/公告日2015-09-30

    原文格式PDF

  • 申请/专利权人 瞻博网络公司;

    申请/专利号CN201410751341.2

  • 发明设计人 P·辛胡;

    申请日2014-12-09

  • 分类号H04L12/713(20130101);H04L12/801(20130101);H04L12/46(20060101);H04L12/863(20130101);

  • 代理机构11256 北京市金杜律师事务所;

  • 代理人王茂华;陈颖

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-18 11:14:22

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-05-29

    授权

    授权

  • 2017-03-08

    实质审查的生效 IPC(主分类):H04L12/713 申请日:20141209

    实质审查的生效

  • 2015-09-30

    公开

    公开

说明书

有关申请的交叉引用

本申请要求对2014年3月31日提交的第61/973,045号美国临 时申请的权益,其全部内容通过引用结合于此。

技术领域

本发明涉及计算机网络,并且更具体地涉及提供虚拟网络的数 据中心。

背景技术

在典型的基于云的数据中心中,互连的服务器的大型汇集提供 用于执行各种应用的计算和/或存储容量。例如数据中心可以包括设 施,该设施主控用于订户、例如数据中心的消费者的应用和服务。 数据中心可以例如主控所有基础设施装备、比如联网和存储系统、 冗余功率供应和环境控制。在多数数据中心中,经由由一层或者多 层物理网络交换机和路由器提供的高速交换结构来互连存储系统和 应用服务器的群集。更复杂的数据中心提供遍布全球而扩展的基础 设施而订户支持装备位于各种物理主控设施中。

数据中心往往利用具有专有通信技术的专有交换结构或者现成 的(off-the-shelf)交换部件,这些专有通信技术或者现成的交换部 件交换符合常规的基于分组的通信协议的分组。专有交换结构可以 提供高的性能、但是有时可能成本更高,而在一些情况下可以提供 用于网络的单点故障。现成的的基于分组的交换部件可以成本更低、 但是可能造成有损、非确定性的行为。

发明内容

一般而言,本公开内容描述一种高性能、可扩展和无掉话的数 据中心交换结构和基础设施。数据中心交换结构可以利用低成本、 现成的的基于分组的交换部件(例如以太网IP(IPoE))和覆盖转 发技术而不是专有交换结构。

在一个示例中,主机网络加速器(HNA)被定位于数据中心的 服务器(例如虚拟机或者专用服务器)与提供在服务器之间的点到 点连通的IPoE核心网络之间。HNA是在一个或者多个集成电路上 嵌入虚拟路由器的硬件设备,其中虚拟路由器被配置为向虚拟机延 伸一个或者多个虚拟网络和使用覆盖网络通过交换结构无缝地传送 分组。换而言之,HNA提供与用于通过数据中心的核心交换网络传 达分组流的覆盖技术的基于硬件的无缝接入接口。

另外,HNA在集成电路中结合和实施流控制、调度和服务质量 (QoS)特征以便基于非专有、基于分组的交换协议(例如以太网IP) 和覆盖转发技术——也就是说,无需专有交换结构——提供高性能、 可扩展和无掉话的数据中心交换结构。

这样,这里描述的技术可以提供向在数据中心的下层物理网络 的边缘操作的HNA的虚拟路由器延伸的多点到多点、无掉话和可扩 展的物理网络。作为结果,主控用于各种租户的用户应用的服务器 或者在利用低成本、行业标准转发技术之时虚拟机体验高速和可靠 的第3层转发而无需专有交换结构。

在附图和以下描述中阐述本发明的一个或者多个实施例的细 节。本发明的其它特征、目的和优点将从描述和附图中以及从权利 要求中变得清楚。

附图说明

图1是图示具有数据中心的示例网络的框图,在该数据中心中 可以实施这里描述的技术的示例。

图2A是图示示例实现的框图,在该实现中在数据中心的服务器 内部署主机网络加速器。

图2B是图示示例实现的框图,在该实现中在数据中心的架顶交 换机(TOR)中部署主机网络加速器。

图3A是进一步具体图示服务器的示例实现的框图,该服务器具 有一个或者多个基于外围部件互连快速(PCIe)的主机网络加速器。

图3B是进一步具体图示TOR的示例实现的框图,该TOR具有 一个或者多个基于PCIe的主机网络加速器。

图4是图示具有基于PCIe的主机网络加速器的计算设备的更多 细节的框图。

图5是具体图示计算设备可以根据在本公开内容中描述的技术 处理的示例隧道分组的框图。

图6是具体图示示例分组结构的框图,该分组结构可以被主机 网络加速器用于维护按对“心跳”消息,这些按对“心跳”消息用于在当 前未对于给定的源/目的地HNA对通过覆盖网络交换隧道分组的情 况下交换更新的流控制信息。

图7是图示根据这里描述的技术的主机网络加速器(HNA)的 概念图的框图,这些HNA在网状拓扑中被交换结构互连用于在HNA 之间的可扩展、无掉话、端到端通信。

图8是图示根据这里描述的技术的系统的框图,在该系统中, 主机网络加速器(HNA)在网状拓扑中被交换结构互连用于在HNA 之间的可扩展、无掉话、端到端通信。

图9是图示根据在本公开内容中描述的技术的用于主机网络加 速器的数据结构的框图。

图10A-10B是图示根据在本公开内容中描述的技术的在HNA之 间交换的示例流控制消息的框图。

图11是根据在本公开内容中描述的技术的主机网络加速器的用 于执行流控制的示例操作模式的流程图。

图12A-12B是图示根据这里描述的技术的示例系统的框图,在 该系统中,主机网络加速器应用流控制。

图13是图示根据在本公开内容中描述的技术的用于主机网络加 速器执行流控制的示例操作模式的流程图。

相似标号贯穿各图和文本表示相似要素。

具体实施方式

图1是图示具有数据中心10的示例网络8的框图,在该数据中 心中可以实施这里描述的技术的示例。一般而言,数据中心10为用 于被服务提供方网络7耦合到数据中心的客户11的应用和服务而提 供操作环境。数据中心10可以例如托管基础设施装备、比如联网和 存储系统、冗余功率供应和环境控制。服务提供方网络7可以耦合 到被其它提供方监管的一个或者多个网络,并且因此可以形成大规 模公用网络基础设施、例如因特网的一部分。

在一些示例中,数据中心10可以代表许多在地理上分布的网络 数据中心之一。如图1的示例中所示,数据中心10可以是为客户11 提供网络服务的设施。客户11可以是集体实体、比如企业和政府或 者个人。例如网络数据中心可以主控用于若干企业和终端用户的web 服务。其它示例服务可以包括数据存储装置、虚拟私有网络、流量 工程、文件服务、数据挖掘、科学或者超级计算等。在一些实施例 中,数据中心10可以是个体网络服务器、网络对等体或者其它数据 中心。

在这一示例中,数据中心10包括经由由一层或者多层物理网络 交换机和路由器提供的高速交换结构14互连的存储系统和应用服务 器12A-12X(这里为“服务器12”)的集合。服务器12为与客户11 关联的应用和数据提供执行和存储环境并且可以是物理服务器、虚 拟机或者其组合。

一般而言,交换结构14代表提供在服务器12之间的点到点连 通的第二层(L2)和第三层(L3)交换和路由部件。在一个示例中, 交换结构14包括实施工业标准协议的互连、高性能而又现成的的基 于分组的路由器和交换机的集合。在一个示例中,交换结构14可以 包括提供以太网网际协议(IP)点到点连通的现成的部件。

在图1中,软件定义的联网(SDN)控制器22提供用于配置和 管理数据中心10的路由和交换基础设施的高级控制器。SDN控制器 22提供用于根据本公开内容的一个或者多个实施例有助于在数据中 心10内的一个或者多个虚拟网络的操作的在逻辑上和在一些情况下 在物理上集中的控制器。在一些示例中,SDN控制器22可以响应于 从网络监管员24接收的配置输入来操作。在2013年6月5日提交、 并且标题为PHYSICAL PATH DETERMINATION FOR VIRTUAL  NETWORK PACKET FLOWS的第PCT/US2013/044378号国际专利 申请中找到关于与数据中心10的其它设备或者其它软件定义的网络 结合操作的虚拟网络控制器22的附加信息,该第 PCT/US2013/044378号国际专利申请通过引用并入于此,如同在此 完整阐述。

虽然未示出,但是数据中心10也可以例如包括一个或者多个非 边缘交换机、路由器、集线器、网关、安全设备、比如防火墙、入 侵检测和/或入侵防止设备、服务器、计算机终端、膝上型计算机、 打印机、数据库、无线移动设备、比如蜂窝电话或者个人数字助理、 无线接入点、网桥、线缆调制解调器、应用加速器或者其它网络设 备。

一般而言,在交换结构14内的网络流量、比如在服务器12之 间的分组流可以使用许多不同物理路径来横贯交换结构的物理网 络。例如“分组流”可以由在分组的报头中使用的五个值或者“五元 组”——即源IP地址、目的地IP地址、用来通过物理网络路由分组 的源端口和目的地端口以及通信协议——定义。例如协议指定通信 协议、比如TCP或者UDP,而源端口和目的地端口是指连接的源和 目的地端口。与特定流条目匹配的一个或者多个分组数据单元 (PDU)的集合代表流。流可以使用PDU的任何参数、比如源和目 的地数据链路(例如MAC)以及网络(例如IP)地址、虚拟局域网 (VLAN)标签、传送层信息、多协议标签交换(MPLS)或者广义 MPLS(GMPLS)标签和接收流的网络设备的入口端口来广义地分类。 例如流可以是在传输控制协议(TCP)连接中传输的所有PDU、特 定MAC地址或者IP地址发起的所有PDU、具有相同VLAN标签的 所有PDU或者在相同交换机端口接收的所有PDU。

根据在本公开内容中描述的技术的各种方面,数据中心10包括 定位于服务器12与交换结构14之间的主机网络加速器(HNA)。 如图1中所示,每个HNA可以被定位于一个或者多个服务器12与 交换结构14之间,该交换结构提供用于在服务器12之间传送分组 流的基础设施。如本文进一步所描述的,HNA17提供用于无缝地实 现跨交换结构14的覆盖网络的、基于硬件的加速。也就是说,HNA 17实施用于实施覆盖网络的功能,该覆盖网络用于建立和支持在数 据中心10内的虚拟网络。

如进一步描述的那样,每个HNA 17实施虚拟路由器,该虚拟路 由器执行用于在数据中心10内的对应虚拟网络的多个路由实例。服 务器12发起的并且符合虚拟网络的分组被HNA 17接收并且自动地 封装以形成用于横贯交换结构14的隧道分组。每个隧道分组可以各 自包括外部报头和包含内部分组的净荷。隧道分组的外部报头允许 交换结构14的物理网络部件向用于HNA 17的网络接口19的物理 网络地址“用隧道传输”内部分组。外部报头可以不仅包括隧道分组 去往的服务器12的网络接口19的物理网络地址而且包括虚拟网络 标识符、比如VxLAN标签或者多协议标签交换(MPLS)标签,该 虚拟网络标识符标识虚拟网络之一以及虚拟路由器执行的对应路由 实例。内部分组包括具有目的地网络地址的内报头,该目的地网络 地址符合用于被虚拟网络标识符标识的虚拟网络的虚拟网络寻址空 间。这样,HNA 17提供用于覆盖技术的、基于硬件的无缝接入接口, 用于以对服务器12透明的方式通过数据中心10的核心交换网络14 用隧道传输分组流。

如这里描述的那样,HNA 17集成多个机制、比如流控制、调度 和服务质量(QoS)与用于跨越交换结构14无缝地提供覆盖联网的 虚拟路由操作。以这一方式,HNA 17能够提供高性能、可扩展和无 掉话(drop-free)的数据互连,该数据互连利用低成本、行业标准转 发技术而无需专有交换结构。

图2A是图示示例实现的框图,在该实现中在数据中心10的服 务器12内部署主机网络加速器(HNA)17。在这一简化示例中,交 换结构14由互连的架顶式(TOR)交换机16A-16N(统称为“TOR 交换机16”)的集合提供,这些TOR交换机耦合到架式交换机 18A-18M(统称为“架式交换机18”)的分布层。TOR交换机16和架 式交换机18向服务器12提供冗余(多归属)连通。TOR交换机16 可以是提供第2层(MAC)和/或第3层(例如IP)路由和/或交换 功能的网络设备。架式交换机18聚合流量流和提供在TOR交换机 16之间的高速连通。架式交换机18耦合到IP第三层(L3)网络20, 该网络执行用于通过服务提供方网络7路由在数据中心10与客户11 之间的网络流量的L3路由。

在这一示例实现方式中,HNA 17被部署为在服务器12的底盘 内的专门化的卡。在一个示例中,HNA 17包括用于通过例如以太网 或者其它物理网络链路25A-25N与TOR交换机16通信的面向核心 的网络接口19。此外,HNA 17包括高速外围接口23A-23N以便可 直接在服务器12的输入/端口(I/O)总线21上操作。HNA 17可以 例如向服务器12表现为网络接口卡(NIC)并且因此以可以对服务 器12透明的方式提供如这里描述的分组流的鲁棒隧道传输。在一个 示例中,高速外围接口23包括用于作为扩展卡在服务器12的相应 底盘内插入和直接耦合到服务器12的PCIe总线21的外围部件互连 快速(PCIe)接口。

图2B是图示示例实现的框图,在该实现中在数据中心10的架 顶交换机(TOR)内部署主机网络加速器(HNA)17。如在图2A的 示例中那样,交换结构14由互连的TOR交换机16的集合提供,这 些TOR交换机耦合到架式交换机18的分布层。然而在这一示例中, HNA 17被集成于TOR交换机16内并且以对服务器12透明的方式 相似地提供在服务器12之间的分组流的鲁棒隧道传输。

在这一示例中,HNA 17中的每个HNA提供用于跨越数据中心 10的交换结构14传达分组的面向核心的网络接口19。此外,HNA 21 可以提供用于与服务器12通信的高速PCIe接口23作为对PCIe总 线21的扩展。备选地,HNA 17可以经由以太网或者其它网络链路 与服务器12的网络接口卡(NIC)通信。虽然示出为分离地,但是 可以在各种组合中使用图2A和图2B的示例,从而HNA 17可以被 集成于服务器12、TOR 16、在数据中心10内的其它设备或者其组 合内。

图3A是进一步具体图示服务器50的示例实现的框图,该服务 器具有一个或者多个基于PCIe的主机网络加速器60A、60B。在这 一示例中,服务器50包括相应PCIe总线56A、56B互连的计算刀片 52A、52B(统称为“计算刀片52”)的两个集合。

计算刀片52可以各自提供用于执行应用和服务的计算环境。例 如计算刀片52中的每一个可以包括计算平台,该计算平台具有为操 作系统和在一些情况下为管理程序提供操作环境的一个或者多个处 理器、存储器、盘存储装置和其它部件,该管理程序为一个或者多 个虚拟机提供虚拟环境。

在这一示例中,计算刀片52中的每个计算刀片包括用于耦合到 PCIe总线56之一的PCIe接口。另外,计算刀片52中的每个计算刀 片可以是可在服务器50的底架的槽内插入的可去除卡。

HNA 60中的每个HNA相似地包括用于耦合到PCIe总线56之 一的PCIe接口。这样,在HNA 60内的存储器和资源经由基于PCIe 分组的协议可经由来自计算刀片52的读取和写入请求来寻址。以这 一方式,在计算刀片52上执行的应用——包括在计算刀片52提供 的虚拟机上执行的应用——可以通过由PCIe总线56提供的直接I/O 互连以高速率向相应HNA 60A、60B传输和接收数据

HNA 60包括用于传达基于L2/L3分组的网络的面向核心的网络 接口。比如数据中心10的交换结构14。这样,计算刀片52可以与 HNA 60交互,就如同HNA是基于PCIe的网络接口卡那样。另外, HNA 60实现用于为建立和支持在数据中心10内的虚拟网络而提供 覆盖网络的功能和提供用于保证通过L2/L3网络的鲁棒、无掉话通 信的附加功能。

图3B是进一步具体图示TOR交换机70的示例实现的框图,该 TOR交换机具有一个或者多个基于PCIe的主机网络加速器74A-74N (统称为“HNA 74”)。在这一示例中,TOR交换机70包括在TOR 交换机内集成的多个HNA 74。HNA 74由高速转发ASIC 72互连, 这些高速ASIC用于经由面向核心的以太网端口80交换在HNA的 网络接口与L2/L3网络14之间的分组。

如图所示,服务器76A-76N中的每个服务器通过PCIe接口耦合 到TOR交换机70。这样,在HNA 74内的存储器和资源经由基于 PCIe分组的协议可经由来自服务器76的读取和写入请求来寻址。以 这一方式、在计算刀片52上执行的应用——包括在计算刀片52提 供的虚拟机上执行的应用—可以通过由PCIe总线提供的直接I/O互 连—在高速率向相应HNA 74传输和接收数据。服务器76中的每个 服务器可以是单独计算设备或者可以是在服务器机架内的单独架装 服务器。

图4是图示计算设备100的示例细节的框图,该计算设备具有 基于PCIe的主机网络加速器(HNA)111。计算设备100可以例如 代表集成基于PCIe的HNA 111的服务器(例如图2A的服务器12 或者图3A的服务器50)或者TOR交换机(例如图2B的TOR交换 机16或者图3B的TOR交换机70)之一。

在这一示例中,计算设备100包括耦合计算设备100硬件环境 的硬件部件的系统总线142。系统总线142将具有多个处理核 108A-108J(统称为“处理核108”)的多核计算环境102耦合到存储 器144和输入/输出(I/O)控制器143。I/O控制器143经由PCIe总 线146提供对存储盘107和HNA 111的访问。

多核计算环境102可以包括例如从四个到数千个的任何数目的 处理器和任何数目的硬件核。处理核108中的每个处理核各自包括 用于执行指令的独立执行单元,这些指令符合用于该核的指令集架 构。处理核108可以各自被实施为分离集成电路(IC)或者可以被 组合在各自使用单个IC(即芯片多处理器)而实施的一个或者多个 多核处理器(或者“多核处理器”)内。

盘107代表计算机可读存储介质,该计算机可读存储介质包括 用任何用于存储信息、比如处理器可读指令、数据结构、程序模块 或者其它数据的方法或者技术实施的易失性和/或非易失性、可去除 和/或非可去除介质。计算机可读存储介质包括但不限于随机存取存 储器(RAM)、只读存储器(ROM)、EEPROM、闪存、CD-ROM、 数字万用盘(DVD)或者其它光存储装置、磁盒、磁带、磁盘存储 装置或者其它磁存储设备或者可以用来存储希望的信息并且可以被 核108访问的任何其它介质。

主存储器144包括一个或者多个计算机可读存储介质,该一个 或者多个计算机可读存储介质可以包括随机存取存储器(RAM)、 比如各种形式的动态RAM(DRAM)、例如DDR2/DDR3 SDRAM 或者静态RAM(SRAM)、闪存或者任何其它形式的固定或者可去 除存储介质,该存储介质可以用来以指令或者数据结构的形式承载 或者存储希望的程序代码和程序数据以及可以被计算机访问。主存 储器144提供由可寻址存储器位置组成的物理地址空间。

存储器144可以在一些示例中向多核计算环境102呈现非统一 存储器访问(NUMA)。也就是说,核108可以无对构成存储器144 的各种存储介质的相等存储器存取时间。核108可以在一些实例中 被配置为使用存储器144的部分,这些部分为核赋予最低存储器延 时以减少总存储器延时。

在一些实例中,可以在一个或者多个核108之间共享用于计算 机可读存储介质的物理电子空间(即共享存储器)。例如核108A、 108B可以经由存储器总线(未示出)连接到一个或者多个DRAM封 装、模块和/或芯片(也未示出),该一个或者多个DRAM封装、模 块和/或芯片呈现可由核108A、108B访问的物理地址空间。尽管这 一物理地址空间可以向核108A、108B赋予存储器144的部分中的 任何部分的最少存储器访问时间,但是存储器144的其余部分中的 至少一些部分可以直接可由核108A、108B访问。核108中的一个 或者多个核也可以包括L1/L2/L3高速缓存或者其组合。用于核108 的相应高速缓存为核108赋予存储介质中的任何存储介质的最低延 时存储器访问。

存储器144、网络接口卡(NIC)106A-106B(统称为“NIC 106”)、 存储盘107和多核计算环境102为一个或者多个虚拟机110A-110K (统称为“虚拟机110”)提供操作环境。虚拟机110可以代表图2的 虚拟机36中的任何虚拟机的示例实例。计算设备100可以将由主存 储器144和在虚拟存储器情况下由盘107提供的虚拟和/或物理地址 空间划分成为运行用户进程而分配的用户空间以及受保护和一般不 可由用户进程访问的内核空间。操作系统内核(在图4中未示出) 可以在内核空间中执行并且可以例如包括Linux、Berkeley Software  Distribution(BSD)(另一Unix变形的内核)或者可从Microsoft公 司获得的Windows服务器操作系统内核。计算设备100可以在一些 实例中执行用于管理虚拟机110的管理程序(在图3中也未示出)。 示例管理程序包括用于Linux内核的基于内核的虚拟机(KVM)、 可从VMware获得的Xen ESXi、可从Microsoft获得的Windows  Hyper-V以及其它开源和专有管理程序。

如图4中所示,HNA 111包括PCIe接口145,该PCIe接口连接 到作为任何其它基于PCIe的设备的计算设备100的PCIe总线146。 PCIe接口145可以提供用于支持与核108和在其上执行的虚拟机110 中的任何项的、基于PCIe的通信的物理层、数据链路层和事务层。 这样,PCIe接口145响应于来自虚拟机110的读取/写入请求用于根 据PCIe协议发送和/或接收分组数据139。作为一个示例,PCIe接口 符合PCI快速基础3.0规范(PCI特殊兴趣组(PCI-SIG)2012年12 月),通过引用将该规范的全部内容结合于此。

虚拟路由器128包括用于对应虚拟网络的多个路由实例 122A-122C(统称为“路由实例122”)。一般而言,在HNA 111上执 行的虚拟路由器可由虚拟网络控制器22配置并且提供用于经由覆盖 网络通过物理L2/L3交换结构10用隧道传输分组的功能。以这一方 式,HNA 111提供可以插入到计算设备100中作为自完备、可去除 主机网络加速器的基于PCIe的部件,该主机网络加速器无缝地支持 使用覆盖联网技术通过数据中心10转发与多个虚拟网络关联的分组 而无需计算设备100的任何其它修改或者在其上安装软件。虚拟机 110供应的和符合虚拟网络的传出分组经由PCIe接口144由虚拟路 由器128接收并且被自动地封装以形成用于横贯交换结构14的传出 (outbound)隧道分组。每个隧道分组可以各自包括外部报头和包含 原有分组的净荷。关于图1,隧道分组的外部报头允许交换结构14 的物理网络部件向其它HNA 17的物理网络地址“用隧道传输”内部 分组。这样,HNA 111的虚拟路由器128为用于以对服务器12透明 的方式通过数据中心10的核心交换网络14用隧道传输分组流的覆 盖技术提供基于硬件的无缝接入接口

路由实例122中的每个路由实例包括转发信息库(FIB) 124A-124C(统称为“FIB 124”)和流表126A-126C(统称为“流表126”) 中的对应一个。虽然图示为分离数据结构,但是流表126可以在一 些实例中是实施为单个表或者其它关联数据结构的逻辑表,在该表 或者其它关联数据结构中,用于相应流表126的条目可由虚拟网络 标识符(例如VRF标识符、比如VxLAN标记或者MPLS标签)标 识。FIB 124包括将目的地地址映射到目的地下一跳的查找表。目的 地地址可以包括第3层网络前缀或者第2层MAC地址。流表126支 持向流转发策略的应用。流表126中的每个流表包括流表条目,这 些流表条目各自匹配可以横贯虚拟路由器转发平面128的一个或者 多个流,并且包括用于向匹配流应用的转发策略。例如虚拟路由器 128尝试匹配路由实例122A处理的分组与流表126A的流表条目之 一。如果匹配流表条目对于给定的分组存在,则虚拟路由器128向 分组应用在策略中指定的流动作。这可以称为“快路径”分组处理。 如果匹配流表条目对于分组不存在,则分组可以代表用于新分组流 的初始分组,并且虚拟路由器转发平面128可以请求虚拟路由器代 理104在流表中为新分组流安装流表条目。这可以称为用于分组流 的初始分组的“慢路径”分组处理。

在这一示例中,虚拟路由器代理104可以是HNA 111的处理器 执行的过程或者可以被嵌入于HNA 111的固件或者分立硬件内。虚 拟路由器代理104包括配置数据134、虚拟路由和转发实例配置136 (“VRF 136”)和策略表138(“策略138”)。

在一些情况下,虚拟路由器代理104与集中式控制器(例如如 图1中所示用于数据中心10的控制器22)通信以交换用于虚拟网络 被HNA 111支持的控制信息。控制信息可以包括虚拟网络路由、低 级配置状态、比如用于路由实例以及用于向配置数据134、VRF 136 和策略138安装的转发策略。虚拟路由器代理104也可以报告分析 状态、向虚拟路由器128的FIB 124安装转发状态、发现VM 110及 其属性。如以上指出的那样,虚拟路由器代理104还对于横贯虚拟 路由器转发平面128的每个新流的第一(初始)分组应用慢路径分 组处理和为新流向流表126安装对应流条目用于虚拟路由器转发平 面128对于流的后续分组的快路径处理。

如图4中所示,HNA 111包括定位于虚拟路由器128与网络接 口106之间用于使用下层物理网络、比如L2/L3交换结构14(图1) 的链路来交换分组的嵌入式通信控制器147。如这里描述的那样,通 信控制器147提供如下机制,这些机制允许由虚拟路由器104提供 的覆盖转发功能与现成的、基于分组的L2/L3联网部件一起利用而 又基于以太网IP和覆盖转发技术提供高性能、可扩展和免掉话的数 据中心交换结构而无需专有交换结构。

在这一示例中,在HNA内嵌入的通信控制器147包括调度器148 和流控制单元149。如这里描述的那样,调度器148管理用于与经由 网络接口106可达的每个HNA的按对、点到点通信的一个或者多个 传出队列151。例如关于图1,调度器148管理用于与在数据中心10 内和经由L2/L3交换结构14可达的其它HNA 17的点到点通信的一 个或者多个传出队列151。在一个示例中,调度器148维护八(8) 个传出队列151,这些传出队列用于为在数据中心10发现的或者标 识的为每个HNA 12支持八(8)个并行通信流。用于与在数据中心 10内的相应HNA通信的传出队列151中的每个传出队列可以与不 同优先级级别关联。调度器148按照用于来自虚拟路由器128的任 何传出通信的优先级、网络接口106的可用带宽、如流控制单元149 报告的在目的地HNA的可用带宽和资源的指示来调度向每个HNA 的通信。

一般而言,流控制单元149与在网络内的其它HNA、比如在数 据中心10内的其它HNA 17的流控制单元通信以使用由虚拟路由器 128建立的覆盖网络来为隧道通信提供拥塞控制。如这里描述的那 样,每个源/目的地对HNA的流控制单元149利用流控制信息以通 过L2/L3交换结构14提供鲁棒、无掉话的通信。

例如,如以下进一步描述的那样,每个源/目的地对HNA周期性 地交换关于当前有待源传输的分组数据数量和在目的地当前可用的 带宽资源数量的信息。换而言之,每个HNA 111的流控制单元149 向每个其它HNA 111的每个其它流控制单元149传达当前在传出队 列151内有待向该HNA发送的分组数据量、即用于被路由实例122 中的一个或者多个路由实例构造的和去往该HNA的传出隧道分组 的分组数据量。相似地,每个HNA的每个流控制单元149向每个其 它HNA 111的每个其它流控制单元149传达在存储器153内用于从 该HNA接收分组数据的可用存储器资源量。以这一方式,为每个源 /目的地对HNA 111、比如为数据中心10的HNA 17的每个源/目的 地按对组合周期性地交换和维护按对流控制信息。另外,用于每个 HNA源/目的地对的流控制信息可以指定待发送的数据量和在每输 出队列粒度上可用的带宽量。换而言之,在其中用于每个HNA 111 的调度器148维护用于支持向在数据中心10内的每个其它HNA的 八(8)个并行通信流的八(8)个输出队列151的示例中,流控制 单元149可以维护用于与其它HNA的每个资源/目的地按对组合的 输出队列中的每个输出队列的流控制信息。

调度器148基于与传出队列关联的优先级、网络接口106的可 用带宽以及如流控制单元149报告的在目的地HNA的可用带宽和资 源有选择地从传出队列151传输传出隧道分组。

在一个示例中,流控制单元149修改虚拟路由器128输出的传 出隧道分组以嵌入流控制信息。例如流控制单元149可以修改每个 传出隧道分组的外部报头以插入隧道分组去往的目的地HNA特有 的流控制信息。在隧道分组内插入的流控制信息可以向目的地HNA 通知在一个或者多个传出队列151中有待去往目的地HNA的数据量 (即一个或者多个队列长度)和/或在存储器153中可用于从传出隧 道分组去往的HNA接收数据的空间量。在一些示例实施例中,在隧 道分组内插入的流控制信息指定隧道分组去往的HNA被允许向 HNA 111发送数据的一个或者多个最大传输速率(例如每优先级的 最大传输速率)。

以这一方式,流控制信息在按对HNA组合之间的交换无需利用 分离消息,这些消息原本消耗在数据中心10的交换结构14内的附 加带宽。在一些实现中,HNA 111的流控制单元149可以在其中针 对阈值时间段尚无输出隧道分组、或者不充分的数据量(例如<4KB) 被发送到在数据中心内的HNA(例如数据中心10的HNA 12)的情 形中根据需要向那些HNA输出用于携带流控制信息的“心跳”消息。 以这一方式,心跳消息可以根据需要用来保证流控制信息当前在关 于每个源/目的地按对HNA组合的所有HNA可用。在一个示例中, 心跳消息被构造和调度为以使得心跳消息即使在其中没有隧道分组 当前正在被使用的情形中仍然消耗不超过交换结构14提供的总点到 点带宽的1%这样的频率而被发送。

在一些实施例中,流控制单元149可以修改每个传出隧道分组 的外部报头以插入隧道分组去往的目的地HNA和从其发送隧道分 组的传出队列151的优先级级别特有的序列号。在接收到传入隧道 分组时,流控制单元149可以记录分组并且对于用于如基于发送 HNA在隧道报头内嵌入的序列号而确定的给定的优先级的、即与传 出队列151之一关联的任何遗漏隧道分组和在被设置为等待遗漏隧 道分组的定时器到期时请求重传。另外,流控制单元149可以维护 用于每个优先级的分离序列号空间。以这一方式,HNA 17的流控制 单元149例如可以建立和维护相互之间的鲁棒分组流,即使虚拟路 由器128可以在交换结构14的现成的L2/L3路由和交换部件之上利 用覆盖转发技术。

图5是具体图示主机网络加速器可以根据在本公开内容中描述 的技术处理的示例隧道分组的框图。为了简化和易于图示,隧道分 组155并未图示典型隧道分组的每一个字段、而是被提供为突出这 里描述的技术。此外,各种实现可以在各种排序中包括隧道分组字 段。

在这一示例中,“外”或者“隧道”分组155包括外部报头156和内 或者“封装”的分组157。外部报头156可以包括协议或者服务类型 (TOS)字段162和以源IP地址字段164和目的地IP地址字段166 的形式的公用(即可由用于与内部分组157关联的虚拟网络的下层 物理网络交换)IP地址信息。TOS字段可以定义用于由如这里描述 的交换结构14的设备和HNA处置分组的优先级。协议字段162在 这一示例中指示隧道分组155使用GRE隧道封包、但是可以在其它 情况下使用其它形式的隧道封包、例如包括IPinIP、NVGRE、VxLAN 和在MPLS之上的MPLS。

外部报头156也包括隧道封包159,该隧道封包在这一示例中包 括用于指定GRE协议(这里为MPLS)的GRE协议字段170和用于 指定MPLS标签值(这里为214)的MPLS标签字段172。MPLS标 签字段是虚拟网络标识符的示例并且可以在虚拟路由器(例如图4 的计算设备100的虚拟路由器128)中与用于虚拟网络的路由实例关 联。

内部分组157包括内报头148和净荷184。内报头158可以包括 协议或服务类型(TOS)字段174以及以源IP地址字段176和目的 地IP地址字段178的形式的私有(即,用于特定虚拟路由和转发实 例)IP地址信息,连同以源端口字段180和目的地端口字段172的 型式的传送层信息。净荷184可以包括应用层(第7层(L7))和 在一些情况下包括由用于虚拟网络的虚拟机产生或者用于由该虚拟 机消耗的其它L4-L7信息,净荷184可以包并且因此备选地被称为 “L4分组”、“UDP分组”或者“TCP分组”。

根据在本公开内容中描述的技术,在转发虚拟路由器(例如虚 拟路由器128)生成的隧道分组155时,主机网络加速器可以修改外 部报头156以包括隧道分组去往的HNA特有的流控制信息185。在 这一示例中,流控制信息185可以包括向接收主机网络加速器指示 在用来存储传出隧道分组的一个或者多个传出队列151中有待去往 目的地HNA的数据量的第一字段186。例如在HNA支持八个优先 级级别并且因此支持用于在数据中心内的每个HNA的八个传出队 列的情况下,字段186可以指定在八个传出队列中的每个传出队列 内与隧道分组155去往的HNA关联的当前数据量。

此外,流控制185包括指示隧道分组155去往的HNA被允许向 HNA发送隧道分组155发送数据的传输速率(例如字节每秒)的第 二字段187。另外,流控制信息185包括第三字段188,在该第三字 段内,发送HNA为HNA输出隧道分组155的当前时间指定时间戳。 这样,隧道分组155的时间戳向接收HNA提供关于流控制信息185 有多么当前或者陈旧的指示。

为了对分组重新排序以有助于向HNA的传出(例如PCIe)接口 的无掉话分组递送、外部报头156图示可选序列号(“SEQ NO”)字 段189,该字段可以包括用于源HNA/目的地HNA对——具体为用 于隧道分组的源HNA 111和目的地HNA——的一个或多个优先级的 序列号值。在用于优先级的序列号字段189中包括的每个序列号可 以在一些实例中是2字节值。因此,在其中HNA实施4个优先级的 实例中,序列号字段189将是8字节字段。在接收到包括序列号字 段189的传入隧道分组155时,流控制单元149可以对分组155重 新排序,并且对于给定优先级的任何丢失的隧道分组(即,与传出 队列151之一关联)请求重传,该丢失的分组优先级由正在发送的 HNA在被设置为等待丢失的隧道分组的定时器到期时基于嵌入在外 部报头156内的序列号字段189的对应序号的值来确定。正如指出 的那样,流控制单元149可以维护用于每个优先级的分离序列号空 间。以这一方式,HNA 17的流控制单元149例如可以建立和维护在 每个其它HNA之间的鲁棒分组流,即使虚拟路由器128可以在交换 结构14的现成的L2/L3路由和交换部件之上利用覆盖转发技术。

主机网络加速器111可以被设立例如在存储器153中用于接收 分组的大量缓冲存储器以允许存储具有遗漏分组的长系列分组。因 此,HNA 111可以减少对于在等待遗漏隧道分组155之时发送重传 的需要。存储器153包括与主存储器144相似的一个或者多个计算 机可读存储介质。

图6是具体图示示例分组结构的框图,该分组结构可以被主机 网络加速器用于维护按对“心跳”消息,这些按对“心跳”消息用于在当 前未对于给定的HNA源/目的地对通过覆盖网络交换隧道分组(例 如图5)的情况下传达更新的流控制信息。在这一示例中,心跳分组 190包括向跟随有包含流控制信息195的净荷193的IP报头194前 置的以太网报头192。如在图5中那样,流控制信息195包括指示在 与分组190去往的HNA关联的传出队列中的每个传出队列中的当前 数据量的第一字段186。此外,流控制信息195包括指示允许的传输 速率(例如每秒字节)的第二字段197和用于为HNA输出分组190 的当前时间指定时间戳的第三字段188。

在一个示例中,用于心跳分组190的分组结构可以符合在表1 中阐述的格式:

字段 大小 前导码 7字节 帧开始 1字节

SRC和DST MAC地址 12字节 以太类型 2字节 帧校验和 2字节 IP报头 20字节 队列长度 8字节 允许的速率 8字节 时间戳 4字节

表1:心跳分组格式

在这一示例中,心跳分组190可以被实现为具有64字节总帧大小、 即初始24字节以太网真报头、20字节IP报头和包含流控制信息的 20字节净荷。队列长度和允许的速率各自是8字节字段。在这一实 例中,8字节在HNA实现的4个不同优先级之中被均匀地划分(同 样对于这一实例实现)。因此,每优先级的每个队列长度和允许的 速率是16位值。设想其它精确度级别和优先级数目。

在另一实例中,用于心跳分组190的分组结构可以符合在表2 中阐述的格式。

字段 大小 前导码 7字节 帧开始 1字节 SRC和DST MAC地址 12字节 以太类型 2字节 帧校验和 2字节 IP报头 20字节 队列长度 8字节 允许的速率 8字节 时间戳 4字节 序列号 8字节

表2:心跳分组格式

在这一示例中,心跳分组190具有与表1呈现的格式相似的格式、 但是还包括可选8字节序列号(“SEQ NO”)字段199,该字段对于 这一示例实现方式包括用于由HNA实现的4个不同优先级的序列 号。序列号字段199具有与隧道分组155的序列号字段189相似的 功能。

流控制单元149根据这里描述的技术对流控制和序列编号的使 用可以提供向在下层物理网络的边缘操作的HNA的虚拟路由器128 延伸并且向虚拟机110延伸一个或者多个虚拟网络的多点到多带你、 无掉话和可扩展的物理网络。因此,主控用于各种租户的用户应用 的虚拟机110经历如实现虚拟路由器128的HNA提供的在虚拟网络 边缘的高速和可靠第3层转发。

图7是图示根据这里描述的技术的主机网络加速器(HNA)的 概念图200的框图,这些HNA在网状拓扑中被交换结构互连用于在 HNA之间的可扩展、无掉话、端到端通信。如以上描述的那样,HNA 通过用隧道传输第3层分组以将每个虚拟网络延伸到它的关联主机 来在物理网络之上实施一个或者多个虚拟网络。在所示概念图中, 源HNA 17AS-17NS(统称为“源HNA 17S”)各自代表作为用于在虚 拟网络下层的物理网络的源端点操作的主机网络加速器。目的地 HNA 17AD-17ND(统称为“目的地HNA 17D”)各自代表与源HNA 17S中的对应HNA相同的、但是作为用于物理网络的目的地端点操作的 HNA设备。例如源HNA 17BS和目的地HNA 17BD可以代表位于TOR 交换机或者服务器架内和在TOR交换机或者服务器架内操作的并且 均潜在地向/从交换结构204发送和接收IP分组的相同物理HNA设 备。然而,这里出于建模和描述的目的,单个HNA设备的相应发送 和接收功能被分解成分离单元和参考字符。源HNA 17S可以代表图 1-2的HNA 17、图3A的HNA 60、图3B的HNA 74和图4的HNA 111中的任何HNA。

源HNA 17S和目的地HNA 17D实施这里描述的流控制技术以有 助于在HNA源/目的地对之间的可扩展和无掉话的通信。出于描述 的目的,初始地关于简化的模型用公式表示流控制技术,该模型使 用具有无限内部带宽和零内部延时的理想交换结构204(该理想交换 结构可以代表交换结构14的“理想”实现)。理想交换结构204在概 念上作为半双工网络操作,该半双工网络具有恒定单位1带宽的N 个输入端口和恒定单位1带宽的N个输出端口。源HNA 17S呈现注 入带宽Ii,j的集合,其中i对源HNA 17S编索引而j对目的地HNA 17D编索引。在这一简化的模型中,Ii,j(t)对于给定的i、j是恒定的。

理想地,分组根据简化的模型从源HNA 17S中的任何给定的源 HNA立刻到达具有无限输入带宽和恒定单位1输出带宽的目的地队 列206A-206N(统称为“目的地队列206”)中的任何给定的目的地 队列。然而这一简化的模型以一些方式与数据中心10的示例实现相 称,在这些实现中,HNA 17被分配比用于分组传输缓冲显著地更多 的用于分组的接收缓冲的资源。与目的地队列206中的目的地队列 关联的、由目的地HNA 17S中的给定的目的地HNA分配的测量带宽 将与在目的地队列中来自源HNA 17S中的不同源HNA当前数据量 (例如字节数目)成比例。例如由目的地队列206B关联的目的地 HNA 17BD分配的测量带宽将与在目的地队列中来自源HNA 17S中 的不同源HNA的字节数目成比例。令q1,q2,...,qN代表来自表示为 s1,s2,...,sN的各种源HNA 17S的字节数目。给定的目的地HNA 17BD向源HNAsi的分配的速率为了实现前述比例性而由下式指示(同样 对于给定的目的地HNA 17BD):

rate(Si)=qiΣi=1Nqi---(1)

并且因此:

Σi=1Nrate(Si)=1---(2)

如果则rate(Si)=0并且带宽对于给定的目的地HNA 17BD被定义为0。

图8是图示根据这里描述的技术的系统的框图,在该系统中, 主机网络加速器(HNA)在网状拓扑中被交换结构互连用于在HNA 之间的可扩展、无掉话、端到端通信。如以上描述的那样,HNA通 过用隧道传输第3层分组以将每个虚拟网络延伸到它的关联主机来 在物理网络之上实施一个或者多个虚拟网络。在所示系统210中, 源HNA 17AS-17NS(统称为“源HNA 17S”)各自代表作为用于在虚 拟网络下层的物理网络的源端点操作的主机网络加速器。目的地 HNA 17AD-17ND(统称为“目的地HNA 17D”)各自代表与源HNA 17S中的对应HNA相同的、但是作为用于物理网络的目的地端点操作的 HNA设备。例如源HNA 17BS和目的地HNA 17BD可以代表位于TOR 交换机或者服务器架内和在TOR交换机或者服务器架内操作的、并 且均潜在地向/从交换结构14发送和接收IP分组的相同物理HNA设 备。然而,这里出于建模和描述的目的,单个HNA设备的相应发送 和接收功能被分解成分离单元和参考字符。源HNA 17S可以代表图 1-2的HNA 17、图3A的HNA 60、图3B的HNA 74和图4的HNA 111中的任何HNA。系统210可以例如代表图1的数据中心10。

源HNA 17S和目的地HNA 17D实现这里描述的流控制技术以有 助于在HNA源/目的地对之间的可扩展和无掉话的通信。不同于图7 的“理想”交换结构204,交换结构14代表如以上例如关于图1描述 的现实L2/L3网络。也就是说,交换结构14具有在HNA源/目的地 对之间的有限带宽和非零延时。

系统210图示源HNA 17AS-17NS具有用于缓冲分组的相应传出 队列集合212A-212N(统称为“队列212”),这些分组被排队用于源 HNA 17S中的任何源HNA经由交换结构14向多个目的地HNA 17D传输,以用于如这里描述的向单独和/或虚拟主机的基于硬件虚拟路 由。队列集合212中的每个队列集合可以代表用于单个优先级的图4 的示例传出队列151。队列集212是先入先出数据结构,并且队列集 合212之一的每个队列具有代表被入队列并且等待由对应源HNA 17S传输的数据量、即字节数目(或者在一些实现方式中为分组或者 其它构造的数目)的队列长度。虽然这里主要地描述为存储“分组”, 但是队列集合212的每个队列可以存储分组、对向主存储器别处存 储的分组的引用或者其它对象或者引用,该其它对象或者引用允许 将分组入队列/出队列用于传输。另外,队列集合212可以存储去往 目的地HNA17D中的任何目的地HNA的分组。例如队列集合212A 的队列可以存储去往目的地HNA 17AD的大小为2000字节的第一分 组和去往目的地HNA 17BD的大小为3000字节的第二分组。队列的 实际队列长度是5000字节,但是测量的队列长度可以被向上或者向 下取整为二的幂以产生测量队列长度(“队列长度”)212=4096 or 213=8192。“队列长度”这里可以备选地在别处称为“队列大小”。

在图示用于目的地HNA 17D中的每个目的地HNA的源HNA 17AS的对应队列的图9中图示队列集合212A的示例。队列212A1是用于目的地HNA 17AD(该目的地HNA可以是相同HNA 17A)的 队列,队列212AB是用于目的地HNA 17BD的队列,以此类推。队 列集合212A可以包括数以百计或者甚至数以千计的队列并且可以 使用任何适当数据结构、比如链表来实施。回顾图10,为了有助于 高效分配交换结构14和在源HNA 17S/目的地HNA 17D对之间的无 掉话、可扩展的端到端通信,源HNA 17S向对应目的地HNA 17D报 告相应队列集合212的队列长度以报告将向目的地发送的数据量。 因此,例如具有队列集合212A的源HNA 17AS可以向目的地HNA 17AD报告212A1的队列长度、向目的地HNA 17BD报告212AB的队 列长度、以此类推。

图10A图示目的地HNA 17AD在源HNA 17S中的每个源HNA报 告的队列长度消息214AA-214NA中接收对应队列长度。为了易于图 示,仅示出目的地HNA 17AD从源HNA 17S接收它的队列长度消息。 由于系统210是HNA 17的多点到多点网络,所以将有源HNA 17S中的每个源HNA向目的地HNA 17D中的每个目的地HNA发布的队 列长度消息。对于所有i,j∈N,令qi,j是从源HNA 17S中的源Si向目的 地HNA 17D中的目的地Dj传达的队列长度,其中N是HNA 17的数 目。队列长度消息214XY可以传送qi,j,其中对于i,j∈N,X=i并且Y=j。

目的地Dj以将由源HNA 17S中的每个源HNA发送的数据量成比 例地在源HNA 17S之中分配它的接收带宽。例如目的地Dj可以根据以 下公式按照它从源HNA 17S中的每个源HNA接收的队列长度分配它 的接收带宽:

ri,j=qi,jΣl=1Nql,j---(3)

其中ri,j是如目的地Dj从它的接收带宽分配的从源Si向目的地Dj的传输 速率。简单明了示出除非目的地HNA 17D中的 每个目的地Dj然后向对应源HNA 17S传达为源Si计算的ri,j的表示。对 于j∈N,源HNA 17S中的每个源HNA因此从目的地中的每个目的地 Dj接收计算的速率r。图10B图示源HNA 17BS从目的地HNA 17D接 收速率消息216AA-216AN。为了简洁和易于图示,仅示出源HNA 17AS的速率消息216AA-216AN。然而,由于系统210是HNA 17的多点到 多点网络,所以将有目的地HNA 17D中的每个目的地向源HNA 17S中的每个源HNA发布的速率消息。速率消息216XY可以传送ri,j,其 中对于i,j∈N,X=i并且Y=j。速率消息216和队列长度消息214可 以各自是在源与目的地HNA 17之间交换的心跳消息190或者其它 消息的示例,该消息包括关于图5描述的流控制信息185,其中字段 186包括速率ri,j而字段187包括队列长度qi,j

源HNA 17S以从各种目的地HNA 17D接收的速率成比例地为经 由交换结构14传送的传出流量分配传输带宽。例如由于源HNA 17S中的每个源Si对于i,j∈N从目的地中的每个目的地Dj接收速率ri,j,所以 源Si可以根据以下公式分配它发送的实际带宽:

如果Σl=1Nri,l1,r^i,j=ri,j,或者    (4)

如果Σl=1Nri,l>1,r^i,j=ri,jΣl=1Nri,l

其中表示源Si将向目的地Dj发送的实际带宽。

这一分配对于如目的地Dj确定的并且在速率消息216中向源Si报 告的、源Si可以向目的地Dj发送的最大速率有助于在HNA之间的可 扩展、无掉话、端到端通信的目标。然而,如果源Si具有向其它目的 地的其它承诺,则源Si可能具有不足以实现ri,j的传输带宽。考虑如下 示例,在该示例中有单个源HNA 17AS和两个目的地HNA 17AD-17BD,其中两个目的地HNA 17AD-17BD各自指示它们可以接 受速率1(即它们无其它源承诺,因为如在队列长度消息214中指示 的那样无其它源打算向它们传输)。然而,源HNA 17AS不能递送速 率2,因为它被约束成速率1(这里为了易于描述而代表用于源HNA 17AS的向交换结构14中的最大传输带宽或者注入速率I)。取而代 之,源HNA 17AS可以根据等式(4)在目的地17AD-17BD之中成比 例地分配它的传输带宽。这向目的地17AD-17BD中的每个目的地产 生继续该例并且令rA为目的地17AD指示的速率而rB为目的地 17BD指示的速率,源HNA 17AS根据等式(4)计算和计算 这满足注入带宽约束≤1以及接收的注入约束rA和rB,因为 对于这些指示的速率中的每个速率而计算的实际传输带宽中的每个 实际传输带宽小于速率本身,因为rA+rB>1。这些结果对于如下示例 成立,在这些示例中,HNA 17的传输和接收带宽是与1不同的带宽。

这一公式表示产生以下规则:

(1)目的地确定如何向源分配带宽。没有源可以超过它的由目 的地向该源分配的带宽(速率r-以字节/秒(B/s)为单位表达)。

(2)源可以由于向其它目的地的承诺而确定向给定的目的地发 送少于它的分配的带宽(速率r)。

以下是这里使用的符号表示方案的概要。

(1)qi,j=在源Si中的引向目的地Dj的虚拟输出队列(VOQ)中的 字节数目。VOQ可以是用于图8-10B中的队列集合212的另一术语。

(2)ri,j=如目的地Dj确定的、该源Si应当向目的地Dj发送的字节数 目/秒。

(3)=在源Si归一化之后的、源Si将向目的地Dj实际发送的字节 数目/秒。等式(4)是归一化的至少部分的示例。

现在将进一步具体描述流控制信息的交换。源HNA经由交换结 构14向目的地HNA发送数据分组。首先,源HNA的流控制单元 149可以在从源HNA向目的地HNA发送的每个分组中嵌入用于与 目的地HNA关联的队列集合212的队列的队列长度。第二,对于目 的地HNA从特定源HNA接收的每L字节,目的地HNA的流控制 单元149返回确认,该确认包括为该源HNA/目的地HNA对而计算 的速率r。在一些示例中,L=4KB。

为了(1)潜在地减少用于源HNA斜升至全速的时间和(2)在 丢失L字节或者确认消息的情况下防止死锁,源HNA的流控制单元 149向目的地HNA周期性地发送流控制信息,而目的地HNA的流 控制单元149向源HNA周期性地发送流控制信息。例如目的地可以 配置200Gbps交换结构之中的2Gbps信道(或者总带宽的1%)用 于心跳分组、比如图6的心跳分组190的周期性流控制交换。

心跳分组190用作从源HNA到目的地HNA的保活/心跳并且例 如在队列长度字段196中包括从源到目的地的队列长度信息q。心跳 分组190也例如在速率字段197中包括从目的地到源的速率信息r 从而记住每个目的地HNA也是源HNA并且反之亦然。因此,单个 心跳分组190可以包括从源到目的地的队列长度信息和从该目的地 到该源的速率信息二者。这具有摊销以太网和IP报头的心跳分组190 开销的这样的有益效果。

心跳分组190还包括时间戳。在一些情况下,心跳分组190可 以在网络优先级被转发,该网络优先级是最低延时/最高优先级。时 间戳可以允许HNA同步它们的时钟达到高精确程度。在以上表1中 对于提供4个优先级信道的HNA描述用于心跳分组190的总大小。 用于表1的队列长度和允许的速率字段大小(以字节为单位)将对 于更少/更多优先级信道更小/更大。表1例如示出为队列长度而分配 的8字节。如以下进一步具体描述的那样,对于16位粒度(即n=16), 8字节为用于对应优先级值的4个不同队列长度提供空间。对于允许 的速率的分析相似。

心跳分组190的总帧大小按照表1可以是64字节=512位。这样, 在2Gbps(分配的信道带宽),这分解为在相继心跳分组190之间 的~4M帧/秒或者250ns。假设每个HNA具有~100个HNA的“跨度” (即与这些HNA通信),那么在最坏情况下,队列长度和速率信息 可能陈旧250ns*100=25μs。然而如果与背负的流控制信息及时地 传输充分数据以满足以上安排的定时约束,则HNA无需发送心跳分 组190。因此,流控制信息可以频繁地超前25μs。进而另外,即使 在交换结构14中丢弃包括流控制信息的消息,仍然可以在下一分组 中提供这样的流控制信息。

图11是根据在本公开内容中描述的技术的主机网络加速器的用 于执行流控制的示例操作模式的流程图。出于示例目的而关于作为 图7-10B的系统210的HNA 17操作的计算设备100的HNA 11描述 示例操作模式300。对于i,j∈N,每个源Si向目的地Dj报告队列长度qi,j(例如以字节为单位)。也就是说,作为源HNA 17S操作的计算设 备100的多个实例的流控制单元149生成或者修改分组以包括用于 队列151的队列长度而向作为目的地HNA 17D(这些可以是与源 HNA 17S相同的HNA)操作的计算设备100的多个实例传输对应队 列长度(302)。可以在图10A的队列长度消息214中包括或者由这 些消息代表这些分组。对于i,j∈N,每个目的地Dj确定和向每个源Si报 告速率ri,j(例如以字节/秒为单位)。也就是说,使用报告的队列长 度,作为目的地HNA 17D操作的计算设备100的流控制单元149可 以通过根据代表将从每个源HNA发送的数据量的队列长度成比例 地分配接收带宽来确定速率。流控制单元149生成或者修改分组以 向作为源HNA 17S操作的计算设备的多个实例传输已确定的对应速 率(304)。可以在速率消息216中包括或者由这些速率消息代表这 些分组。每个源Si归一化速率以确定实际、归一化的速率以满足源Si的 有限带宽约束Bi。也就是说,作为源HNA 17S操作的计算设备100 的流控制单元149根据从各种目的地接收的速率成比例地分配总传 输带宽(306)。源Si确定从Si到目的地Dj的归一化的速率如下:

r^i,j=ri,jBiΣj=1Nri,j---(5)

简单明了示出调度器148可以应用每个HNA 111为各 种目的地HNA而确定的归一化的速率。以这一方式,执行操作模式 300的计算设备100可以有助于高效分配交换结构14的有限带宽和 在源HNA 17S/目的地HNA 17D对之间的无掉话、可扩展的端到端通 信。

现在描述图11的操作模式300的多个示例。下文使用以下紧 密矩阵符号表示以提供队列长度和速率的备选表示:

Q=q11...q1NqN1...qNN,

R=r11...r1NrN1...rNN,

R^=r^11...r^1Nr^N1...r^NN.

每个源Si也是目的地Di并且具有带宽Bi。在一些示例中,传达qi,j作为根据配置的队列标度值、qui字节而缩放的n位值。换而言之, 可以用qui字节为单位测量qi,j,其中qui可以是2的幂。在一些情况下, 可以在隧道分组155的字段186中包括qi,j。在一些示例中,传达ri,j作 为根据配置的速率标度值、rui bps而缩放的k位值。换而言之,可 以用rui字节/秒为单位测量ri,j,其中rui可以是2的幂。在一些情况下, 可以在隧道分组155的字段187中包括ri,j。作为缩放的范围的示例 计算,对于qu=64B和n=16位,qmin是0而qmax是26*216=222=>4MB。 作为另一示例,对于ru=16MB/s=128Mbps和k=16位,rmin是0而rmax是128*216=>8Tbps。

以这一方式缩放队列长度和速率值对于HNA 17中的每个 HNA可以有助于关于存储器容量、HNA设备的速度等、根据HNA 的能力而定的用于耦合到交换结构14的各种HNA的这些值的范围 的适当粒度水平。在一些示例中,对于所有i∈N(对于耦合到交换结 构14的所有HNA 17),图4的HNA 111的配置数据134存储qui、 rui。如以上描述的那样,配置数据134可以由控制器22设置或者在 一些情况下可以在HNA 17之中被交换用于向配置数据134存储, 其中它可由用于HNA的流控制单元149访问

对于这里描述的流控制操作的描述可以在一些示例中关于多 个优先级出现。因而,字段187可以包括用于优先级1-p中的每个优 先级ri,j的值,其中p是耦合到交换结构14的HNA 17赋予的优先级 数目。类似地,字段186可以包括用于优先级1-p中的每个优先级qi,j的值。p的示例值包括2、4和8,但是其它值是可能的。

图12A是图示根据这里描述的技术的示例系统的框图,在该 系统中,主机网络加速器应用流控制。来自源HNA 402A-402B和目 的地HNA 402C-402F的每个HNA可以代表这里描述的HNA 17中 的任何HNA的示例。源HNA 402A-402B和目的地HNA 402C-402F 交换根据这里描述的流控制技术确定的队列长度和速率值以便按照 待发送的数据量和目的地HNA 402C-402F的用于接收这样的数据的 能力成比例地分配带宽。源HNA 402A有数据要向目的地HNA 402C、402D传输,并且这样的数据以满足或者超过源HNA 402A的 最大传输速率的速率被入队列。换而言之,源HNA 402A在最大传 输容量。源HNA 402B有数据要向目的地HNA 402D、402E和402F 传输,并且这样的数据以满足或者超过源HNA 402B的最大传输速 率的速率被入队列。换而言之,源HNA 402B在最大传输容量。

对于关于图12A的第一示例确定,为了简化而假设所有队列 具有相同队列长度。将所示队列长度设置成对于Q为单位1造成源 HNA 402A、402B计算:

R=11/20001/211,

其中i=2行代表源HNA 402A-402B而j=4列代表目的地HNA 402C-402F。由于列总和为1,所以满足对于目的地402C-402F的目 的地带宽约束。然而源HNA 402A-402B归一化行,因为行总和不为 1:

R^=1/1.50.5/1.50000.5/2.51/2.51/2.5=0.660.330000.20.40.4.

在图12A上图示这一结果。

作为关于图12A的第二示例确定,设置队列长度为:

Q=10.60000.411.

通过为每个元素计算等式(3),目的地HNA 402C-402F确定 R为:

R=10.60000.411.

并且向源HNA报告。通过为每个元素计算等式(4),源HNA 402A-402B确定为:

R^=1/1.60.6/1.60000.4/2.41/2.41/2.4=0.6250.3750000.160.4160.416.

图12B是图示根据这里描述的技术的另一示例系统的框图,在 该示例系统中,主机网络加速器应用流控制。图12B对于不同队列 长度图示用于图12A的HNA的概念拓扑。这里,源HNA 402A有 数据要向目的地HNA 402E、402F传输;源HNA 402B有数据要向 HNA 402E传输;源HNA 402C有数据要向目的地HNA 402F传输; 并且源HNA 402D有数据要向目的地HNA 402F传输。在这一示例 中,接收带宽满足或者超过目的地HNA 402E、402F的最大接收速 率。

这里,目的地HNA 402E、402F计算R为:

R=0.30.250.7000.500.25

并且向源HNA报告。通过为每个元素计算等式(4),源HNA 402A-402D确定为:

R^=0.30.250.7000.500.25.

在这一情况下因为已经满足约束而事实上无需归一化。 也就是说,当且仅当R矩阵的行超过传输约束,则对于该行需要归 一化。源HNA 402A-402D可以在一些情况下可以避免归一化,因此 如果行在对于源HNA的传输约束内,则这与等式(4)相符。

通过为在物理网络、例如交换结构14的边缘操作的HNA高效 地和公平地分配接收和传输带宽,数据中心10提供方可以向多个租 户赋予高度可扩展的数据服务以有效使用大量内部网络带宽。如以 上描述的那样,耦合这些服务与HNA进一步提供的流控制可以有助 于向在下层物理网络的边缘操作的HNA的虚拟路由器128延伸的多 点到多点、无掉话和可扩展的物理网络。向虚拟机110延伸虚拟路 由器128的一个或者多个虚拟网络因而可以由于在交换结构14内使 用现成的部件硬件而以成本有效方式向主控的用户应用提供透明、 高度地可靠的L2/L3交换。

图13是图示根据在本公开内容中描述的技术的用于主机网络 加速器执行流控制的示例操作模式的流程图。关于包括HNA 111的 图4的计算设备100描述这一示例操作模式400。流控制单元149 将用于从源HNA接收数据的定时器重置成可配置的重置值并且启 动定时器以等待来自源HNA的数据(402)。HNA 111耦合到物理 网络、例如交换结构14并且配置为实施用于在物理网络之上的一个 或者多个虚拟网络的虚拟路由器128。HNA 111接收源HNA供应的 分组数据(404)。HNA 111包括可配置阈值,该阈值指定触发确认 的接收的数据量。流控制单元149可以向存储器153缓冲接收的分 组数据并且根据在隧道报头中嵌入的用于分组的优先级的序列号、 例如序列号189对接收的任何数目的分组重新排序。

此外,如果接收的分组数据满足或者超过可配置阈值(406的 是分支)或者定时器超时(408的是分支),则流控制单元149向源 HNA发送确认消息并且将接收的数据量重置成零(410)。确认消 息可以是单独消息、比如心跳消息190或者可以被包括在隧道分组 内作为流控制信息字段185和序列号字段189。然而如果定时器超时 (408的是分支),则流控制单元149向源HNA发送确认消息并且 将接收的数据量重置成零(410)而无论HNA 111是否在定时器时 段内接收到阈值数据量(406的否分支)。在发送确认之后,HNA 重置和重启定时器(402)。

示例1.一种可移除的基于外围部件互连快速(PCIe)的主机网 络加速器,包括:可移除卡,配置用于插入到服务器的槽内并且具 有用于连接到所述服务器的I/O总线的PCIe总线接口;物理网络接 口,装配于所述卡上以连接到交换结构,所述交换结构通过物理网 络为分组提供无连接的、基于分组的交换;以及集成电路,定位于 所述卡上的、在所述物理网络接口与所述PCIe总线接口之间的数据 路径上,其中所述集成电路包括配置为应用用于一个或者多个虚拟 网络的路由信息以在所述PCIe总线接口与所述服务器的所述I/O总 线之间路由分组的、基于硬件的虚拟路由器。

示例2.根据示例1的可移除的基于PCIe的主机网络加速器, 其中所述虚拟路由器被配置为通过所述I/O总线从所述虚拟机接收 传出分组并且根据跨所述交换结构延伸的覆盖网络来构造传出隧道 分组,其中所述传出隧道分组封装所述传出分组,并且其中所述虚 拟路由器被配置为通过所述物理网络接口从所述交换结构接收传入 隧道分组、提取封装在所述传入隧道分组内的内部分组以及根据用 于所述虚拟网络的路由信息通过所述I/O总线向所述虚拟机路由所 述内部分组。

示例3.根据示例2的可移除的基于PCIe的主机网络加速器, 其中集成电路还包括:多个传出队列,用于缓冲由所述虚拟路由器 输出的所述传出隧道分组;以及调度器,所述调度器控制所述传出 隧道分组从所述虚拟路由器经由所述交换结构向其它主机网络加速 器的传输。

示例4.根据示例3的可移除的基于PCIe的主机网络加速器, 其中所述多个传出队列包括多个输出队列集合,所述输出队列集合 中的每个输出队列集合缓冲将向所述主机网络加速器中的对应主机 网络加速器发送的所述传出隧道分组的相应集合;其中相应传出队 列集合中的每个传出队列集合内的所述传出队列中的每个传出队列 被指派不同优先级;以及其中对于所述相应传出队列集合中的每个 传出队列集合,所述调度器基于被指派给所述传出队列的相应优先 级来控制所述传出隧道分组的传输。

示例5.根据示例3的可移除的基于PCIe的主机网络加速器, 其中多个传出队列包括多个输出队列集合,输出队列集合中的每个 输出队列集合缓冲将向主机网络加速器中的对应主机网络加速器发 送的传出隧道分组的相应集合,其中在相应传出队列集合中的每个 传出队列集合内的传出队列中的每个传出队列被指派不同优先级; 以及其中对于相应传出队列集合中的每个传出队列集合,调度器基 于向传出队列指派的相应优先级来控制传出隧道分组的传输。

示例6.根据示例5的可移除的基于PCIe的主机网络加速器, 其中由所述流控制单元向所述其它主机网络加速器中的每个主机网 络加速器发送的所述流控制信息指定:用于在所述传出队列中等待 的、将由所述主机网络加速器向相应主机网络加速器发送的所述隧 道分组的分组数据量,流控制信息正被发送到的所述相应主机网络 加速器被允许向所述主机网络加速器发送隧道分组的最大速率,以 及指定主机网络加速器发送流控制信息的时间的时间戳。

示例7.根据示例5的可移除的基于PCIe的主机网络加速器, 其中所述流控制单元在由所述虚拟路由器在封装来自所述虚拟机的 传出分组时构造的所述传出隧道分组内插入所述流控制信息。

示例8.根据示例5的可移除的基于PCIe的主机网络加速器, 其中所述流控制单元向由所述虚拟路由器在封装来自所述虚拟机的 传出分组时构造的所述传出隧道分组的外部报头中插入所述流控制 信息。

示例9.根据示例5的可移除的基于PCIe的主机网络加速器, 其中对于所述其它主机网络加速器中的每个其它主机网络加速器, 所述流控制单元在所述主机网络加速器尚未通过所述交换结构向相 应主机网络加速器发送传出隧道分组达阈值时间段时发送携带所述 流控制信息的心跳消息。

示例10.根据示例1的可移除的基于PCIe的主机网络加速器, 其中所述网络接口使用以太网网际协议(IPoE)协议向所述交换结 构传递所述隧道分组。

示例11.一种方法,包括:由主机网络加速器的基于外围部件 互连快速(PCIe)的总线接口从执行于服务器上的一个或者多个虚 拟机接收多个传出分组,其中所述虚拟机与一个或者多个虚拟网络 关联;用所述主机网络加速器的基于硬件的虚拟路由器为所述传出 分组选择在所述虚拟网络内的目的地;用所述虚拟路由器基于选择 的所述目的地且根据跨所述交换结构向多个主机网络加速器延伸的 覆盖网络来构造传出隧道分组,其中所述传出隧道分组封装所述传 出分组;用所述主机网络加速器的流控制单元向由所述虚拟路由器 构造的所述传出隧道分组中插入流控制信息;以及由所述主机网络 加速器的物理网络接口向所述物理网络转发所述传出隧道分组,其 中所述物理网络接口连接到包括多个交换机的交换结构,所述多个 交换机通过所述物理网络为所述隧道分组提供无连接的、基于分组 的交换。

示例12.根据示例11的方法,还包括:用主机网络加速器从耦 合到物理网络的其它主机网络加速器接收流控制信息;以及用所述 主机网络加速器基于接收自所述主机网络加速器中的其它主机网络 加速器中的每个主机网络加速器的相应流控制信息来控制所述传出 隧道分组从所述虚拟路由器向所述主机网络加速器中的所述其它主 机网络加速器的传输。

示例13.根据示例11的方法,其中在隧道分组中的每个隧道分 组中的流控制信息指定:用于在传出队列中等待的、将由所述主机 网络加速器向所述隧道分组被寻址到的第二主机网络加速器发送的 所述隧道分组的分组数据量,第二主机网络加速器被允许向主机网 络加速器发送隧道分组的最大速率,以及指定主机网络加速器发送 流控制信息的时间的时间戳。

示例14.根据示例11的方法,还包括在主机网络加速器尚未通 过所述交换结构向第二主机网络加速器发送传出隧道分组达阈值时 间段时,向所述主机网络加速器且向所述第二主机网络加速器发送 携带所述流控制信息的心跳消息。

示例15.根据示例11的方法,其中从所述虚拟机接收所述传 出分组包括通过所述I/O总线接收由所述虚拟机向所述主机网络加 速器的存储器直接写入的传出分组。

已经描述本发明的各种实施例。这些和其它实施例在所附权利 要求的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号