首页> 中国专利> 用于物理端口之间的无阻塞行为的虚拟端口映射

用于物理端口之间的无阻塞行为的虚拟端口映射

摘要

公开的实施例提供了操作交换机构件的系统。在操作期间,该系统在交换机构件中为第一组物理端口创建一组虚拟链路。接下来,该系统使用一组虚拟端口号来在交换机构件中创建该组虚拟链路和第二组物理端口之间的映射,其中第二组物理端口使用单个物理链路被连接到第一组物理端口。然后该系统使用该映射以在从第一组物理端口到第二组物理端口的业务中提供无阻塞行为。

著录项

  • 公开/公告号CN106062727A

    专利类型发明专利

  • 公开/公告日2016-10-26

    原文格式PDF

  • 申请/专利权人 甲骨文国际公司;

    申请/专利号CN201580011238.7

  • 发明设计人 A·斯瑞尼瓦桑;B·D·约翰森;

    申请日2015-02-05

  • 分类号G06F13/40;

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人李晓芳

  • 地址 美国加利福尼亚

  • 入库时间 2023-06-19 00:41:15

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-09-20

    授权

    授权

  • 2017-02-15

    实质审查的生效 IPC(主分类):G06F13/40 申请日:20150205

    实质审查的生效

  • 2016-10-26

    公开

    公开

说明书

技术领域

公开的实施例涉及交换机构件。更具体地,公开的实施例涉及用于执行虚拟端口映射以在交换机构件中的物理端口之间提供无阻塞行为的技术。

背景技术

交换机构件可被用于在数据中心的服务器之间路由业务。例如,InfiniBand(InfiniBandTM是InfiniBand贸易协会公司的注册商标)交换机构件可以在数据中心中使用点到点、双向串行链路连接处理器和存储节点。InfiniBand交换机构件还可以向节点提供服务质量(QoS)和可靠性、可用性和可服务性(RAS)。

另外,连接到交换机构件的网关可以提高数据中心效率和/或网络合并。例如,在数据中心中以太网网关可以被添加到InfiniBand交换机构件以允许数据中心中的服务器使用单个物理适配器和线缆连接到以太局域网(LAN)。因此,在数据中心中与虚拟机相关的业务流可以包括高吞吐量、低延迟的InfiniBand业务与InfiniBand通信介质上承载的高吞吐量的以太网业务的混合。

然而,连接到交换机构件的网关可以包括一组物理端口,这组物理端口使用单个物理链路被连接到在交换机构件中的另一组物理端口。例如,在InfiniBand交换机构件中的以太网网关可以作为连接到交换机端口的目标信道适配器(TCA)出现,致使网关上的所有以太网端口共享单个InfiniBand链路。从软件的角度出发,TCA可以与一个面向交换机机的上行链路端口以及一个或多个面向以太网构件的下行链路端口一起出现。因为单个物理链路可以馈入多个下行链路端口,所以下行链路端口可能表现出队头阻塞。这种阻塞行为可能由以多个网关端口为目标的突发的业务模式和/或在个别网关端口的延迟导致。因此,网关的整体速率可能被限制为任何独立网关端口的最慢的速率。

为了缓解这种阻塞行为,只有一个网关端口可以连接到交换机构件中的每个物理链路。然而,这样的解决方案可能非常昂贵并且难以扩展。因此,用于高效地解决网关中多个物理端口之间的阻塞行为的机制有利于以单个物理链路被连接到交换机构件的网关的使用。

发明内容

公开的实施例提供了一种操作交换机构件的系统。在操作期间,系统在交换机构件中为第一组物理端口创建一组虚拟链路。接下来,系统使用一组虚拟端口号在交换机构件中创建该组虚拟链路和第二组物理端口之间的一组映射,其中第二组物理端口使用单个物理链路被连接到第一组物理端口上。然后系统使用该映射在从第一组物理端口到第二组物理端口的业务中提供无阻塞行为。

在一些实施例中,使用一组虚拟端口号在交换机构件中创建一组虚拟链路和第二组物理端口之间的一组映射包括:

(i)创建从与在第二组物理端口中的一个或多个端口相关联的唯一目的地标识符到虚拟端口号的第一映射;

(ii)创建从与数据包相关联的服务等级到来自这组虚拟链路的虚拟链路的第二映射;以及

(iii)将虚拟端口号和虚拟链路与来自第二组物理端口的物理端口的虚拟输出队列(VOQ)相关联。

在一些实施例中,使用映射在从第一组物理端口到第二组物理端口的业务中提供无阻塞行为包括使用第一映射和第二映射以将包含唯一目的地标识符和服务等级的数据包放置在VOQ中,并且基于用于物理端口的输出缓存的充满度从VOQ中移除数据包。

在一些实施例中,从VOQ中移除数据包还基于与VOQ相关联的服务质量(QoS)等级。

在一些实施例中,QoS等级与服务等级和虚拟端口号中的至少一个相关联。

在一些实施例中,第二组物理端口中的每个物理端口与虚拟链路中的一个或多个虚拟链路相关联。

在一些实施例中,交换机构件包括InfiniBand交换机构件和以太网网关。

在一些实施例中,第一组物理端口包括InfiniBand端口,第二组物理端口包括以太网端口。

附图说明

图1示出了根据公开的实施例的交换机构件。

图2示出了根据公开的实施例的数据包从第一组物理端口中的第一物理端口到第二组物理端口中的第二物理端口的路由,其中第二组物理端口通过单个物理链路连接到第一组物理端口。

图3是示出了根据公开的实施例的数据的处理的流程图。

图4示出了根据公开的实施例的计算机系统。

在附图中,相同的标号指代相同的图中的元件。

具体实施方式

下面的描述被给出以使本领域任何技术人员能够实现和使用实施例,并且是在具体的应用和它们的要求的背景下被提供的。所公开的实施例的各种变型,对于本领域技术人员是显而易见的,并且在此定义的通用原理可以被应用于其他实施例和应用,而不脱离本发明的精神和范围。因此,本发明不限定于示出的实施例,而是与符合此处公开的原理和特征的最宽范围相一致。

在具体实施方式中描述的数据结构和代码通常存储在计算机可读的存储介质中,该介质可以是能够存储被计算机系统使用的代码和/或数据的任意设备或介质。计算机可读的存储介质包括但不限于易失性存储器、非易失性存储器、诸如硬盘、磁带、CD(光盘)、DVD(数字通用盘或数字视频盘)的磁和光存储设备或者其他能够存储代码和/或数据的现在已知的或以后开发的媒介。

在具体实施方式部分描述的方法和过程可以作为代码和/或数据实施,这些代码和/或数据能够被存储在上述计算机可读的存储介质中。当计算机系统读取并执行存储在计算机可读的存储介质中的代码和/或数据时,计算机系统执行作为数据结构和代码实施并存储在计算机可读的存储介质内的方法和过程。

另外,此处描述的方法和过程能够被包括在硬件模块或装置中。这些模块或装置可以包括但不限于专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)、在特定时间执行特定的软件模块或代码段的专用的或共享的处理器和/或其他现在已知的或以后开发的可编程逻辑器件。当硬件模块或装置被激活时,它们执行包括在它们内部的方法和过程。

公开的实施例提供了一种用于操作交换机构件的方法和系统。如图1所示,交换机构件122可以包括第一组物理端口(例如,物理端口1 110、物理端口X 112)以及网关124,网关124包含使用单个物理链路116连接到第一组物理端口的第二组物理端口(例如,物理端口118、物理端口Y 120)。例如,交换机构件122可以是在数据中心中连接多个服务器和/或虚拟机的InfiniBand(InfiniBandTM是InfiniBand贸易协会公司的注册商标)交换机构件,网关124可以是以太网网关。因为以太网网关可以作为连接到InfiniBand交换机构件中的交换机端口的目标信道适配器(TCA)出现,所以在以太网网关中的以太网端口可以有效地共享单个InfiniBand链路。

本领域技术人员应认识到物理链路116可以导致在网关124中的物理端口体验队头阻塞。例如,去往网关124中的忙碌端口的较旧的数据包可以阻塞去往网关124中的其他端口的较新的数据包,即使其他端口并不忙碌。因此,网关124中所有端口可用的带宽会受限于网关124中最慢的端口的带宽。例如,网关124可以包括四个10吉比特以太网端口,它应当提供总共40吉比特的带宽。然而,以太网端口之间的队头阻塞会将网关124的带宽局限在单个10吉比特以太网端口的带宽。

在一个或多个实施例中,交换机构件122包括提供发往网关124中的端口的业务中的无阻塞行为的功能,而不需要改变服务器、虚拟机和/或其他从中接收业务的环境。为了实现这样的无阻塞行为,交换机构件122中的交换机装置114可以为交换机构件122中的物理端口创建一组虚拟链路(例如,虚拟链路1 102、虚拟链路M 104、虚拟链路1 106、虚拟链路N 108)。例如,交换机装置114可以通过InfiniBand交换机机上的硬件和/或固件被提供,而且一组虚拟链路可以通过交换机装置114在InfiniBand交换机机上创建为一组InfiniBand虚拟通道(VL)。

交换机装置114也可以使用一组虚拟端口号128创建在一组虚拟链路和网关124中的物理端口之间的一组映射126。例如,网关124中的每个物理端口可以由一个或多个虚拟端口号128表示,该虚拟端口号被映射到交换机构件122中的一个或多个唯一目的地标识符(例如,目的地地址)。因此,虚拟端口号可以是实现网关124上的各个物理端口的识别的抽象,即使由于物理链路116的缘故整个网关124仅被分配了一个物理端口号。网关124中的物理端口可以另外与一组服务等级和交换机构件122中的虚拟链路之间的一组映射相关联。

交换机装置114可以使用映射提供从虚拟链路到网关124中的物理端口的业务的无阻塞行为。例如,交换机装置114可以将映射与用于提供无阻塞行为的虚拟输出队列(VOQ)130相关联。每个VOQ可以与交换机构件122中的虚拟端口号和虚拟链路相关联。因此,交换机装置114可以为交换机构件122中的每个输入物理端口(例如,物理端口1 110、物理端口X 112)提供足够的VOQ以防止网关124中的输出物理端口(例如,物理端口1 118、物理端口Y 120)之间的队头阻塞。下文参考图2以更多细节描述了在交换机构件中使用虚拟链路和物理端口之间的映射以提供物理端口之间的无阻塞行为。

图2示出了根据公开的实施例的数据包202从第一组物理端口中的第一物理端口234到第二组物理端口中的第二物理端口236的路由,其中第二组物理端口通过单个物理链路被连接到第一组物理端口。例如,数据包202可以从InfiniBand交换机构件(例如,图1的交换机构件122)中的InfiniBand物理端口234被接收。数据包202可以接着被路由到使用单个物理链路被连接到交换机构件的网关中的InfiniBand和/或以太网物理端口236。

如图2所示,数据包202可以基于数据包202中的唯一目的地标识符216和/或服务等级218被路由。目的地标识符216可以表示数据包202的目的地的地址。例如,对于InfiniBand数据包的目的地标识符216可以使用数据包的本地路由包头(LRH)中的16比特目的地本地标识符(DLID)被指定。服务等级(SL)218可被用于为数据包202定义请求的服务质量(QoS)等级。例如,InfiniBand数据包的LRH可以指定与业务隔离、策略实施和/或交换机构件中的无阻塞行为相关联的16个SL之一。

包含交换机构件中的目的地标识符220到一组虚拟端口号222的映射的转发表204可被用于识别与目的地标识符216相关联的目的地虚拟端口号228。例如,对于InfiniBand交换机,转发表204可以是为由一组DLID表示的InfiniBand目的地指定输出端口的线性转发表。

在一个或多个实施例中,在交换机构件中虚拟端口号222替代有效物理端口号被用于识别第二组物理端口。例如,在转发表204中的每个虚拟端口号可以识别连接到InfiniBand交换机构件的以太网网关中的不同的物理端口。然而,因为第二组物理端口使用单个物理链路被连接到交换机构件,所以第二组物理端口可以共享交换机构件中的单个物理端口号。因此,虚拟端口号222可以代表如下抽象:即给诸如InfiniBand子网管理器的一般的构件管理软件带来没有单个物理链路在InfiniBand构件和第二组物理端口之间提供连接的错觉。作为替代,虚拟端口号222可以使用在交换机构件的硬件和/或固件中实施的交换装置(例如,图1的交换装置114)被映射到第二组物理端口。

虚拟端口号还可以被用于给子网管理器带来以下错觉,即第二组物理端口中的每个端口被直接连接到InfiniBand构件上的专用物理端口,并且因此该端口代表具有唯一目的地址的唯一的InfiniBand构件末端端口。通过这种方式,目标为第二组物理端口中的不同端口的数据包也可以在到达它们的InfiniBand末端端口目的地之前通过InfiniBand构件被完全独立地路由。

如果需要的话,本实施方式通过支持用于代表到InfiniBand构件的实际连接的单个物理端口的回环转发机制,还能够包括第二组物理端口中的端口在InfiniBand构件上彼此通信的能力。因此,本实施方式可以处理多个虚拟交换机机端口的抽象所暗含的InfiniBand特征的完整集合。然而,如果第二组物理端口中的端口代表多个独立的网关端口,则网关端口没有互相通过InfiniBand构件发送数据包的内在需求,因此能够避免该额外的实施方式的复杂度。

一种可选择的抽象是提供单个物理端口和第二组物理端口之间的连接的表示作为第二InfiniBand交换机,在第二InfiniBand交换机中一个端口连接单个物理端口而其他端口连接第二组物理端口中的每个端口。该抽象维持了第二组物理端口中的每个端口代表InfiniBand构件上具有唯一InfiniBand地址的单独终端端口的概念,但是固有地隐含着与在模型中仍存在与单个中间InfiniBand链路相关联的任何限制。

在任一抽象模型中,有可能通过将配置的变化表示为会导致正在连接的虚拟交换机端口以及正在连接到虚拟交换机端口的虚拟终端端口发生变化的虚拟InfiniBand热插入/拔出操作,来处理第二组物理端口中的端口的任意静态或动态配置和连接。模型的唯一限制是对于任何InfiniBand交换机表示的物理和虚拟交换端口之和不能超过255个端口,该值为InfiniBand标准定义的对于InfiniBand交换机的外部端口的最大数目。

SL 224到交换机构件中的虚拟链路226的一组映射206也可以被用于识别与服务等级218相关联的目标虚拟链路230。例如,对于InfiniBand交换机,映射206可以存储在SL到VL映射表中。SL到VL映射表可以允许数据包202中的抽象的SL 218被映射到交换机构件中的具体的VL。因此,SL 218可以允许当数据包202在具有不同数量的VL的InfiniBand交换机之间路由时提供流控制和QoS。

然后目的地虚拟端口号228和目标虚拟链路230可以被用于识别物理端口236的VOQ 232,而且数据包202可以被放置在VOQ 232中。因为VOQ 232通过目的地虚拟端口号228和目标虚拟链路230的组合被识别,所以可以提供足够的VOQ以避免在物理端口236和第二组物理端口中的其他物理端口之间的队头阻塞。例如,交换机构件可以支持第二组物理端口中的42个端口和九个虚拟链路。因此,第一组物理端口中的每个输入端口(例如,物理端口234)可以具有用于第二组物理端口的42×9或者说378个VOQ。

例如,InfiniBand交换机的端口37-40可以映射到四个以太网网关,每个网关包含四个独立的10吉比特以太网端口。转发表204中结果为37、38、39或40的目的地虚拟端口号(例如,目的地虚拟端口号228)的查找可以使得业务被送到相应的网关,而且目标虚拟链路230可以使用SL到VL映射表中的映射206被识别。这样将数据传输到端口37-40可以发生在以40吉比特以太网网关模式使用网关和/或如果以太网网关被禁用而相应的端口被用作InfiniBand端口期间。

表示以太网端口的虚拟端口号可以从64开始,由于0-63可以是有效的InfiniBand端口号。端口64-71可以是将对应于端口37的以太网网关中的各个以太网端口编码的虚拟端口号。特别地,端口64-65可以代表网关的第一以太网端口,端口66-67可以代表网关的第二以太网端口,端口68-69可以代表网关的第三以太网端口,以及端口70-71可以代表网关的第四以太网端口。类似地,端口72-79可以被分配给由端口38表示的网关的四个以太网端口,端口80-87可以被分配给由端口39表示的网关的四个以太网端口,端口88-95可以被分配给由端口40表示的网关的四个以太网端口。

另外,每个虚拟端口号可以与高达两个VL相关联;如果只有一个VL在使用,则SL到VL映射表中的值可以都被设置为0。端口64-65可以与VL0或VL1相关联,目标VL被SL到VL映射表中的0或1的值指定。端口66-67可以与VL2或VL3相关联,目标VL被VL2与SL到VL映射表中的0或1的值的和指定。端口68-69可以与VL4或VL5相关联,目标VL被VL4与SL到VL映射表中的0或1的值的和指定。端口70-71可以与VL6或VL7相关联,目标VL被VL6与SL到VL映射表中的0或1的值的和指定。然后目标VL和虚拟端口号可以被映射到InfiniBand交换机的每个输入端口上的单独的VOQ,以提供网关的以太网端口之间的无阻塞行为。

因此,目的地虚拟端口号228可以被用于将相同的SL(例如,SL 218)重新映射到不同的虚拟链路,以便任意SL和/或虚拟链路能够被多个QoS等级过载。例如,诸如InfiniBandVL仲裁和/或公平排队方案的仲裁方案可以被应用于VOQ 232以及对于物理端口236的其他VOQ,从而为路由到物理端口236的业务提供多个QoS等级。对于给定物理端口的额外的虚拟端口号(例如,虚拟端口号222)可被用于触发数据包(例如,数据包202)包头的查找,从而进一步扩展QoS等级。额外的查找可以造成或者可以不会造成数据包包头的修改。

一旦数据包202在VOQ 232中,数据包202可以基于物理端口236的输出缓存的充满度和/或与VOQ 232相关联的QoS等级从VOQ232中被移除。例如,数据包202可以被缓存在VOQ232中直到物理端口236调度数据包202去处理和/或物理端口236的输出缓存能够接收数据包202。因此,在第二组物理端口中的其他物理端口可以不被在物理端口236增加的延迟影响,该延迟可由缓慢、暂停(例如,以太网暂停)和/或到物理端口236的业务的突发导致。

相反地,对于交换机构件的常规的查找方案可能为物理端口236和第二组物理端口中的其他物理端口只产生一个端口号。此外,从映射206中可能只有一个目标虚拟链路230是可用的。因此,交换机可能无法将第二组物理端口中的不同物理端口区分开,并且第二组物理端口中的阻塞行为可能会降低第二组物理端口的总体带宽。

图3示出了表示根据公开的实施例的数据的处理的流程图。在一个或多个实施例中,这些步骤中的一个或多个步骤可以被省略、重复和/或以不同的顺序执行。相应地,图3中示出的步骤的特定安排不应当被解释为限制了实施例的范围。

首先,在交换机构件中为第一组物理端口创建一组虚拟链路(操作302)。例如,代表虚拟链路的高达16个VL可以在InfiniBand交换机构件中被创建。接下来,一组虚拟端口号被用于在交换机构件中创建一组虚拟链路和第二组物理端口之间的一组映射(操作304)。第二组物理端口可以使用单个物理链路被连接到第一组物理端口。例如,第二组物理端口可以包括InfiniBand端口和/或以太网端口,其中第二组物理端口使用单个InfiniBand链路被连接到InfiniBand交换机构件中的第一组InfiniBand端口。

映射可以包括从交换机构件中的目的地的唯一目的地标识符到虚拟端口号的第一映射和从关于与数据包相关联的SL到虚拟链路的第二映射。唯一目的地标识符可以与第二组物理端口中的一个或多个端口相关联。虚拟端口号和虚拟链路可以额外地与第二组物理端口中的物理端口的虚拟输出队列(VOQ)相关联。因此,虚拟端口号可以代表第二组物理端口中的物理端口的抽象,并且可以使得SL和/或虚拟链路能够被多个QoS等级和/或隔离的业务流过载。

最后,映射被用于提供从第一组物理端口到第二组物理端口的业务中的无阻塞行为(操作306)。例如,第一映射和第二映射可以被用于将包含目的地标识符和服务等级的数据包放置在VOQ中。然后数据包可以基于用于物理端口的输出缓存的充满度和/或与VOQ相关联的QoS等级从VOQ中被移除。

图4示出了根据公开的实施例的计算机系统400。计算机系统400包括处理器402、存储器404、存储装置406和/或在电子计算装置中可见的其他部件。处理器402可以支持与计算机系统400中的其他处理器的并行处理和/或多线程操作。计算机系统400也可以包括诸如键盘408、鼠标410和显示器412的输入/输出(I/O)装置。

计算机系统400可以包括用于执行本实施例的各种部件的功能。特别地,计算机系统400可以包括协调计算机系统400上的硬件和软件资源的使用的操作系统(未示出),以及为用户执行专门任务的一个或多个应用。为了为用户执行任务,应用可以从操作系统中获取计算机系统400上的硬件资源的使用,以及与用户通过操作系统提供的硬件和/或软件框架交互。

在一个或多个实施例中,计算机系统400提供了操作交换机构件的系统。该交换机构件可以包括第一组物理端口和使用单个物理链路连接到第一组物理端口的第二组物理端口。该系统可以提供在交换机构件中为第一组物理端口创建一组虚拟链路的交换装置。接下来,交换装置可以使用一组虚拟端口号创建这组虚拟链路和第二组物理端口之间的一组映射。最后,交换装置可以使用映射来提供从这组虚拟链路到第二组物理端口的业务中的无阻塞行为。

另外,计算机系统400的一个或多个部件可以位于远程位置并通过网络连接到其他部件。本实施例的部分(例如,物理端口、交换机构件、网关、物理链路、交换机装置等)也可以位于实施该实施例的分布式系统的不同的节点上。例如,可以使用在用单个物理链路连接的两组远程物理端口中提供无阻塞行为的云计算系统实施本实施例。

多个实施例的上述描述仅仅是出于说明和描述的目的被提出。它们不是穷举性的,也不是用来将本发明限制到公开的形式。因此,许多修改和变型对于本领域的从业人员会是明显的。另外,上面的公开不旨在限制本发明。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号