用于在高性能计算环境中支持交换机端口状况的可伸缩表示的系统和方法与流程

文档序号:14036487阅读:286来源:国知局
用于在高性能计算环境中支持交换机端口状况的可伸缩表示的系统和方法与流程

版权声明

本专利文档公开的一部分包含受版权保护的素材。版权拥有者不反对任何人对专利文档或专利公开按照在专利商标局的专利文件或记录中出现得那样进行的传真复制,但是除此之外在任何情况下都保留所有版权。

本发明一般而言涉及计算机系统,并且具体而言涉及在高性能计算环境中支持交换机端口状况的可伸缩表示(scalablerepresentation)。



背景技术:

随着更大的云计算体系架构被引入,与传统网络和存储相关联的性能和管理瓶颈成为重要的问题。人们越来越感兴趣使用诸如infiniband(ib)(无限带宽)技术的高性能无损互连作为用于云计算架构的基础。这是本发明的实施例旨在解决的一般领域。



技术实现要素:

本文描述了用于在高性能计算环境中支持交换机端口状况的可伸缩表示的系统和方法。一种方法可以在包括一个或多个微处理器的一个或多个计算机处提供至少一个子网,该至少一个子网包括:一个或多个交换机、多个主机通道适配器、多个端节点以及子网管理器。该一个或多个交换机至少包括叶子交换机,其中该一个或多个交换机中的每个交换机包括多个端口,并且其中该一个或多个交换机中的每个交换机包括至少一个属性;其中该多个主机通道适配器经由该一个或多个交换机互连;该多个端节点中的每个端节点与多个主机通道适配器中的至少一个主机通道适配器相关联;该子网管理器运行在一个或多个交换机中的一个交换机或多个主机通道适配器中的一个主机通道适配器上。该方法可以将一个或多个交换机上的多个端口中的每个端口与交换机端口状况相关联。该方法可以将与每个交换机上的多个端口中的每个端口相关联的每个交换机端口状况表示在相关联的交换机处的至少一个属性中。

本文描述了用于在高性能计算环境中支持链路稳定性和可用性属性的系统和方法。示例性方法可以在包括一个或多个微处理器的一个或多个计算机处提供至少一个子网,至少一个或多个交换机,该一个或多个交换机至少包括叶子交换机,其中该一个或多个交换机中的每个交换机包括多个端口,并且其中该一个或多个交换机中的每个交换机包括至少一个属性;多个主机通道适配器,其中该多个主机通道适配器经由一个或多个交换机互连;多个端节点,该多个端节点中的每个端节点与多个主机通道适配器中的至少一个主机通道适配器相关联;以及子网管理器,该子网管理器在一个或多个交换机中的一个交换机或多个主机通道适配器中的一个主机通道适配器上运行。该方法可以在一个或多个交换机中的每个交换机处提供至少一个属性。该方法可以在一个或多个交换机中的交换机处提供多个子网管理代理(sma)中的子网管理代理。该方法可以通过一个或多个交换机中的交换机的sma来监视该交换机的多个端口中的每个端口处的链路稳定性和该交换机处的多个端口中的每个端口处的链路可用性中的至少一个。

根据实施例,多个主机通道适配器中的一个或多个可以包括至少一个虚拟功能、至少一个虚拟交换机和至少一个物理功能。多个端节点可以包括物理主机、虚拟机、或物理主机与虚拟机的组合,其中虚拟机与至少一个虚拟功能相关联。

附图说明

图1示出了根据实施例的infiniband环境的图示。

图2示出了根据实施例的分区集群环境的图示。

图3示出了根据实施例的网络环境中的树形拓扑的图示。

图4示出了根据实施例的示例性共享端口体系架构。

图5示出了根据实施例的示例性vswitch体系架构。

图6示出了根据实施例的示例性vport体系架构。

图7示出了根据实施例的具有预填充的lid的示例性vswitch体系架构。

图8示出了根据实施例的具有动态lid分配的示例性vswitch体系架构。

图9示出了根据实施例的具有vswitch的示例性vswitch体系架构,其中vswitch具有动态lid分配和预填充的lid。

图10示出了根据实施例的示例性多子网infiniband架构。

图11示出了根据实施例的交换机端口状况的可伸缩表示。

图12示出了根据实施例的链路状况的可伸缩表示。

图13是根据实施例的用于在高性能计算环境中支持交换机端口状况的可伸缩表示的方法的流程图。

图14是根据实施例的用于在高性能计算环境中支持交换机端口状况的可伸缩表示的方法的流程图。

图15示出了根据实施例的链路稳定性的可伸缩表示。

图16示出了根据实施例的链路可用性的可伸缩表示。

图17是根据实施例的用于在高性能计算环境中支持链路稳定性和可用性的可伸缩表示的示例性方法的流程图。

具体实施方式

通过示例而非限制的方式在附图的各图中图示了本发明,附图中相似的标号指示类似的元件。应当注意的是,在本公开中对“一个”或“一些”实施例的引用不一定是对相同的实施例,并且这种引用意味着至少一个实施例。虽然讨论了特定的实现方案,但是应当理解的是,这些特定的实现方案仅仅是为了说明性目的而提供。相关领域的技术人员将认识到,在不脱离本发明的范围和精神的情况下,可以使用其它部件和配置。

在整个附图和具体实施方式中,可以使用共同的标号来指示相同的元素;因此,如果在其它地方描述了元素,那么在图中使用的标号可以或可以不在特定于该图的具体描述中被引用。

本文描述的是用于在高性能计算环境中支持交换机端口状况的可伸缩表示的系统和方法。

本发明的以下描述使用infinibandtm(ib)网络作为高性能网络的示例。贯穿以下描述,可以参考infinibandtm规范(也被不同地称为infiniband规范、ib规范或传统ib规范)。这样的参考被理解为是指可在http://www.inifinibandta.org处获得的于2015年3月发布的贸易协会体系架构规范(tradeassociationarchitecturespecification)卷1,版本1.3,其全部内容通过引用被结合于此。对于本领域技术人员来说将清楚的是,可以使用其它类型的高性能网络而没有限制。以下描述还使用胖树(fat-tree)拓扑作为架构拓扑的示例。对于本领域技术人员来说将清楚的是,可以使用其它类型的架构拓扑而没有限制。

为了满足当前时代(例如,exascale时代)对云的需求,期望虚拟机能够利用诸如远程直接存储器访问(rdma)的低开销网络通信范式(paradigm)。rdma绕过os栈并且直接与硬件通信,因此可以使用像单根i/o虚拟化(sr-iov)网络适配器这样的直通技术。根据实施例,虚拟交换机(vswitch)sr-iov体系架构可以被提供以用于高性能无损互连网络中的适用性。由于网络重新配置时间对于使实时迁移成为实用选项是至关重要的,因此,除了网络体系架构之外,还可以提供可伸缩的并且拓扑无关(topology-agnostic)的动态重新配置机制。

并且除此之外,根据实施例,可以提供针对使用vswitch的虚拟化环境的路由策略,并且可以提供用于网络拓扑(例如,胖树拓扑)的高效路由算法。动态重新配置机制可以被进一步微调以使胖树中施加的开销最小化。

根据本发明的实施例,虚拟化可以有益于云计算中的高效资源利用和弹性资源分配。实时迁移使得有可能通过以应用透明的方式在物理服务器之间移动虚拟机(vm)来优化资源使用。因此,虚拟化可以通过实时迁移来实现整合、资源的按需供给以及弹性。

infinibandtm

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

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

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

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

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

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

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

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

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

图1中示出了示例infiniband架构,其示出了根据实施例的infiniband环境100的图示。在图1所示的示例中,节点a-e(101-105)使用infiniband架构120经由相应的主机通道适配器111-115进行通信。根据实施例,各个节点(例如,节点a-e(101-105))可以由各种物理设备来表示。根据实施例,各种节点(例如,节点a-e(101-105))可以由诸如虚拟机的各种虚拟设备来表示。

在infiniband中分区

根据实施例,ib网络可以支持分区作为安全机制,以提供对共享网络架构的系统的逻辑组的隔离。架构中的节点上的每个hca端口可以是一个或多个分区的成员。分区成员资格由集中式分区管理器管理,集中式分区管理器可以是sm的一部分。sm可以将每个端口上的分区成员资格信息配置为16位分区键(p_key)的表。sm还可以用分区实施表来配置交换机和路由器端口,其中分区实施表包含与通过这些端口发送或接收数据流量的端节点相关联的p_key信息。此外,在一般情况下,交换机端口的分区成员资格可以表示与在出口(朝链路)方向上经由该端口路由的lid间接相关联的所有成员资格的联合。

根据实施例,分区是端口的逻辑组,使得组的成员只能与同一逻辑组的其它成员通信。在主机通道适配器(hca)和交换机处,可以使用分区成员资格信息对分组进行过滤以实施隔离。一旦分组到达传入端口,具有无效分区信息的分组就可以被丢弃。在分区的ib系统中,可以使用分区来创建租户集群。在分区实施就位的情况下,节点不能与属于不同租户集群的其它节点通信。以这种方式,即使存在受损或恶意的租户节点,系统的安全性也能够得到保证。

根据实施例,对于节点之间的通信,除管理队列对(qp0和qp1)以外,队列对(qp)和端到端上下文(eec)可以被分配给特定分区。然后,可以将p_key信息添加到所发送的每个ib传输分组。当分组到达hca端口或交换机时,可以针对由sm配置的表来验证该分组的p_key值。如果找到无效的p_key值,那么立即丢弃该分组。以这种方式,只有在共享分区的端口之间才允许通信。

图2中示出了ib分区的示例,其示出了根据实施例的分区的集群环境的图示。在图2所示的示例中,节点a-e(101-105)使用infiniband架构120经由相应的主机通道适配器111-115进行通信。节点a-e被布置到分区中,即分区1(130)、分区2(140)和分区3(150)。分区1包括节点a101和节点d104。分区2包括节点a101、节点b102和节点c103。分区3包括节点c103和节点e105。由于分区的布置,节点d104和节点e105不被允许通信,因为这些节点不共享分区。同时,例如,节点a101和节点c103被允许通信,因为这些节点都是分区2(140)的成员。

infiniband中的虚拟机

在过去的十年中,虚拟化高性能计算(hpc)环境的前景已得到相当大的提高,因为已通过硬件虚拟化支持实际上移除了cpu开销;存储器开销已通过虚拟化存储器管理单元被显著降低;已通过使用快速san存储装置或分布式联网文件系统减少了存储开销;并且已通过使用像单根输入/输出虚拟化(sr-iov)这样的设备直通技术减少了网络i/o开销。现在,云有可能使用高性能互连解决方案来容纳虚拟hpc(vhpc)集群并提供必要的性能。

然而,当与诸如infiniband(ib)的无损网络耦合时,某些云功能(诸如虚拟机(vm)的实时迁移)仍然是个问题,这是由于在这些解决方案中使用的复杂的寻址和路由方案。ib是提供高带宽和低延迟的互连网络技术,因此非常适合hpc和其它通信密集型工作负载。

用于将ib设备连接到vm的传统方法是通过利用具有直接分配的sr-iov。然而,使用sr-iov来实现被分配有ib主机通道适配器(hca)的vm的实时迁移已被证明是具有挑战性的。每个ib连接的节点具有三个不同的地址:lid、guid和gid。当发生实时迁移时,这些地址中的一个或多个改变。与迁移中的vm(vm-in-migration)通信的其它节点会丢失连接性。当发生这种情况时,可以通过向ib子网管理器(sm)发送子网管理(sa)路径记录查询来定位要重新连接到的虚拟机的新地址,来尝试更新丢失的连接。

ib使用三种不同类型的地址。第一种类型的地址是16位本地标识符(lid)。sm向每个hca端口和每个交换机分配至少一个唯一的lid。lid用于在子网内路由流量。由于lid为16位长,因此可以做出65536个唯一的地址组合,其中只有49151个(0x0001-0xbfff)可以用作单播地址。因此,可用的单播地址的数量限定了ib子网的最大尺寸。第二种类型的地址是由制造商分配给每个设备(例如,hca和交换机)和每个hca端口的64位全局唯一标识符(guid)。sm可以向hca端口分配附加的子网唯一guid,其在使用sr-iov时是有用的。第三种类型的地址是128位全局标识符(gid)。gid是有效的ipv6单播地址,并且向每个hca端口分配至少一个。gid是通过组合由架构管理员分配的全局唯一64位前缀和每个hca端口的guid地址而形成的。

胖树(ftree)拓扑和路由

根据实施例,基于ib的hpc系统中的一些采用胖树拓扑来利用胖树提供的有用属性。这些属性包括完全的二分带宽和固有的容错性,这是由于每个源目的地对之间有多个路径可用。胖树背后的最初想法是,当树朝着拓扑的根移动时,在节点之间采用具有更多可用带宽的较胖链路。较胖链路可以帮助避免上层交换机中的拥塞并且维持二分带宽。

图3示出了根据实施例的网络环境中的树形拓扑的图示。如图3所示,一个或多个端节点201-204可以在网络架构200中被连接。网络架构200可以基于包括多个叶子交换机211-214和多个主干交换机或根交换机231-234的胖树拓扑。此外,网络架构200可以包括一个或多个中间交换机,诸如交换机221-224。

同样如图3所示,端节点201-204中的每一个可以是多宿主节点,即,通过多个端口连接到网络架构200的两个或更多个部分的单个节点。例如,节点201可以包括端口h1和h2,节点202可以包括端口h3和h4,节点203可以包括端口h5和h6,并且节点204可以包括端口h7和h8。

此外,每个交换机可以具有多个交换机端口。例如,根交换机231可以具有交换机端口1-2,根交换机232可以具有交换机端口3-4,根交换机233可以具有交换机端口5-6,并且根交换机234可以具有交换机端口7-8。

根据实施例,胖树路由机制是用于基于ib的胖树拓扑的最流行的路由算法之一。胖树路由机制也在ofed(开放架构企业分发——用于构建和部署基于ib的应用的标准软件栈)子网管理器opensm中实现。

胖树路由机制的目的在于生成在网络架构中跨链路均匀散布最短路径路由的lft。该机制按索引次序遍历架构并将端节点的目标lid(以及因此对应的路由)分配给每个交换机端口。对于连接到相同叶子交换机的端节点,索引次序可以取决于该端节点连接到的交换机端口(即端口编号顺序)。对于每个端口,该机制可以维护端口使用计数器,并且可以在每次添加新路由时使用这个端口使用计数器来选择最少使用的端口。

根据实施例,在分区的子网中,不允许不是共同分区的成员的节点进行通信。在实践中,这意味着由胖树路由算法分配的一些路由没有被用于用户流量。当胖树路由机制以与它为其它功能路径所做的那样相同的方式为这些路由生成lft时,会出现问题。由于节点是按索引的次序进行路由的,因此这种行为会导致链路上的平衡恶化。由于路由可以在分区不知情(oblivious)的情况下执行,因此,一般而言,胖树路由的子网提供分区间不好的隔离。

根据实施例,胖树是可以利用可用网络资源进行伸缩的分层网络拓扑。而且,使用放置在不同级别层次上的商用交换机容易构建胖树。胖树的不同变体通常是可用的,包括k元n级树(k-ary-n-tree)、扩展的广义胖树(xgft)、平行端口广义胖树(pgft)和现实生活胖树(rlft)。

k元n级树是具有kn个端节点和n·kn-1个交换机的n级胖树,每个交换机具有2k个端口。每个交换机在树中具有相同数量的上连接和下连接。xgft胖树通过允许交换机的不同数量的上连接和下连接以及在树中每个级别处的不同数量的连接来扩展k元n级胖树。pgft定义进一步拓宽了xgft拓扑,并且允许交换机之间的多个连接。可以使用xgft和pgft来定义各种拓扑。然而,为了实用目的,引入了作为pgft受限版本的rlft来定义当今hpc集群中常见的胖树。rlft在胖树中的所有级别处使用相同端口计数的交换机。

输入/输出(i/o)虚拟化

根据实施例,i/o虚拟化(iov)可以通过允许虚拟机(vm)访问底层物理资源来提供i/o的可用性。存储流量和服务器间通信的组合施加可能压倒单个服务器的i/o资源的增加的负载,从而导致处理器在等待数据时的积压和空闲处理器。随着i/o请求数量的增加,iov可以提供可用性;并且可以提高(虚拟化的)i/o资源的性能、可伸缩性和灵活性,以匹配现代cpu虚拟化中所看到的性能水平。

根据实施例,iov是期望的,因为它可以允许共享i/o资源并且提供对来自vm的资源的受保护的访问。iov将暴露于vm的逻辑设备与其物理实现方案解耦。当前,可以存在不同类型的iov技术,诸如仿真、半虚拟化、直接分配(da)和单根i/o虚拟化(sr-iov)。

根据实施例,一种类型的iov技术是软件仿真。软件仿真可以允许经解耦的前端/后端软件体系架构。前端可以是放置在vm中的、与由管理程序实现的后端进行通信以提供i/o访问的设备驱动器。物理设备共享比率高,并且vm的实时迁移可能只需几毫秒的网络停机时间。然而,软件仿真引入了附加的、不期望的计算开销。

根据实施例,另一种类型的iov技术是直接设备分配。直接设备分配涉及将i/o设备耦合到vm,其中在vm之间没有设备共享。直接分配或设备直通以最小的开销提供接近本地(neartonative)的性能。物理设备绕过管理程序并且直接附连到vm。然而,这种直接设备分配的缺点是有限的可伸缩性,因为在虚拟机之间不存在共享—一个物理网卡与一个vm耦合。

根据实施例,单根iov(sr-iov)可以允许物理设备通过硬件虚拟化表现为同一设备的多个独立的轻量级实例。这些实例可以被分配给vm作为直通设备,并作为虚拟功能(vf)被访问。管理程序通过唯一的(每设备的)、全特征(fullyfeatured)物理功能(pf)来访问设备。sr-iov使纯直接分配的可伸缩性问题变得容易。然而,sr-iov呈现的问题是它可能会影响vm迁移。在这些iov技术中,sr-iov可以扩展pciexpress(pcie)规范,这意味着允许从多个vm直接访问单个物理设备同时维持接近本地的性能。因此,sr-iov可以提供良好的性能和可伸缩性。

sr-iov允许pcie设备通过向每个顾客分配一个虚拟设备来暴露可以在多个顾客之间共享的多个虚拟设备。每个sr-iov设备具有至少一个物理功能(pf)和一个或多个相关联的虚拟功能(vf)。pf是由虚拟机监视器(vmm)或管理程序控制的正常pcie功能,而vf是轻量级的pcie功能。每个vf都具有其自己的基地址(bar),并被分配有唯一的请求者id,该唯一的请求者id使得i/o存储器管理单元(iommu)能够区分来自/去往不同vf的流量流。iommu还在pf和vf之间应用存储器和中断转换。

然而,令人遗憾的是,对于在其中数据中心优化期望虚拟机的透明实时迁移的情况,直接设备分配技术对云提供商造成障碍。实时迁移的实质是将vm的存储器内容复制到远程管理程序。然后在源管理程序处暂停vm,并且在目的地处恢复vm的操作。当使用软件仿真方法时,网络接口是虚拟的,因此其内部状态被存储到存储器中并且也被复制。因此,可以使停机时间下降到几毫秒。

然而,当使用诸如sr-iov的直接设备分配技术时,迁移变得更加困难。在这种情况下,网络接口的完整内部状态不能被复制,因为它与硬件绑定。作为替代,分配给vm的sr-iovvf被分离(detach),实时迁移将运行,并且新的vf将在目的地处被附连。在infiniband和sr-iov的情况下,该过程会引入在秒的数量级上的停机时间。而且,在sr-iov共享端口模型中,在迁移之后,vm的地址将改变,从而导致sm中的附加开销以及对底层网络架构的性能的负面影响。

infinibandsr-iov体系架构——共享端口

可以存在不同类型的sr-iov模型,例如,共享端口模型、虚拟交换机模型和虚拟端口模型。

图4示出了根据实施例的示例性共享端口体系架构。如图所示,主机300(例如,主机通道适配器)可以与管理程序310交互,管理程序310可以将各个虚拟功能330、340、350分配给多个虚拟机。同样,物理功能可以由管理程序310处置。

根据实施例,当使用诸如图4所描绘的共享端口体系架构时,主机(例如,hca)在网络中表现为具有单个共享lid和在物理功能320与虚拟功能330、350、350之间的共享队列对(qp)空间的单个端口。然而,每个功能(即,物理功能和虚拟功能)可以具有其自己的gid。

如图4所示,根据实施例,可以将不同的gid分配给虚拟功能和物理功能,并且特殊队列对qp0和qp1(即,用于infiniband管理分组的专用队列对)由物理功能拥有。这些qp也被暴露给vf,但是vf不被允许使用qp0(从vf到qp0的所有smp都被丢弃),并且qp1可以充当由pf拥有的实际qp1的代理。

根据实施例,共享端口体系架构可以允许不受(通过被分配给虚拟功能而附连到网络的)vm的数量限制的高度可伸缩的数据中心,因为lid空间仅被网络中的物理机器和交换机消耗。

然而,共享端口体系架构的缺点是无法提供透明的实时迁移,从而阻碍了灵活vm放置的可能性。由于每个lid与具体管理程序相关联,并且在驻留于该管理程序上的所有vm之间共享,因此迁移的vm(即,迁移到目的地管理程序的虚拟机)必须将其lid改变为目的地管理程序的lid。此外,作为受限的qp0访问的结果,子网管理器不能在vm内部运行。

infinibandsr-iov体系架构模型——虚拟交换机(vswitch)

图5示出了根据实施例的示例性vswitch体系架构。如图所示,主机400(例如,主机通道适配器)可以与管理程序410交互,管理程序410可以将各个虚拟功能430、440、450分配给多个虚拟机。同样,物理功能可以由管理程序410处置。虚拟交换机415也可以由管理程序401处置。

根据实施例,在vswitch体系架构中,每个虚拟功能430、440、450是完整的虚拟主机通道适配器(vhca),这意味着分配给vf的vm被分配完整的ib地址集合(例如,gid、guid、lid)以及硬件中的专用qp空间。对于网络的其余部分和sm,hca400看起来像经由虚拟交换机415、具有连接到它的附加节点的交换机。管理程序410可以使用pf420,并且(附连到虚拟功能的)vm使用vf。

根据实施例,vswitch体系架构提供透明的虚拟化。然而,由于每个虚拟功能都被分配唯一的lid,因此可用lid的数量被迅速消耗。同样,在使用许多lid地址(即,每个物理功能和每个虚拟功能都有一个lid地址)的情况下,必须由sm计算更多的通信路径,并且必须将更多的子网管理分组(smp)发送到交换机以便更新其lft。例如,通信路径的计算在大型网络中可能花费几分钟。因为lid空间限于49151个单播lid,并且由于每个vm(经由vf)、物理节点和交换机各自占用一个lid,所以网络中的物理节点和交换机的数量限制了活动vm的数量,并且反之亦然。

infinibandsr-iov体系架构模型——虚拟端口(vport)

图6示出了根据实施例的示例性vport概念。如图所示,主机300(例如,主机通道适配器)可以与管理程序410交互,管理程序410可以将各个虚拟功能330、340、350分配给多个虚拟机。同样,物理功能可以由管理程序310来处置。

根据实施例,vport概念被松散地定义以便赋予供应商实现的自由(例如,定义不规定实现方案必须是特定于sriov的),并且vport的目标是使在子网中处置vm的方式标准化。利用vport概念,可以定义可在空间和性能域二者中都更可伸缩的、类似sr-iov共享端口的体系架构和类似vswitch的体系架构二者或这二者的组合。vport支持可选的lid,并且与共享端口不同,即使vport不使用专用lid,sm也知道子网中可用的所有vport。

infinibandsr-iov体系架构模型——具有预填充lid的vswitch

根据实施例,本公开提供了用于提供具有预填充的lid的vswitch体系架构的系统和方法。

图7示出了根据实施例的具有预填充的lid的示例性vswitch体系架构。如图所示,多个交换机501-504可以在网络交换环境600(例如,ib子网)内提供架构(诸如infiniband架构)的成员之间的通信。该架构可以包括多个硬件设备,诸如主机通道适配器510、520、530。主机通道适配器510、520、530中的每个又可以分别与管理程序511、521和531交互。每个管理程序又可以与和其交互的主机通道适配器结合设立多个虚拟功能514、515、516、524、525、526、534、535、536并将这多个虚拟功能分配给多个虚拟机。例如,虚拟机1550可以由管理程序511分配给虚拟功能1514。管理程序511可以附加地将虚拟机2551分配给虚拟功能2515,并且将虚拟机3552分配给虚拟功能3516。管理程序531又可以将虚拟机4553分配给虚拟功能1534。在主机通道适配器中的每一个上,管理程序可以通过全特征物理功能513、523、533来访问主机通道适配器。

根据实施例,交换机501-504中的每一个可以包括多个端口(未示出),这些端口在设置线性转发表中被使用以便导引网络交换环境600内的流量。

根据实施例,虚拟交换机512、522和532可以由它们相应的管理程序511、521、531处置。在这样的vswitch体系架构中,每个虚拟功能是完整的虚拟主机通道适配器(vhca),这意味着分配给vf的vm被分配完整的ib地址(例如,gid、guid、lid)集合以及硬件中的专用qp空间。对于网络的其余部分和sm(未示出),hca510、520和530看起来像经由虚拟交换机的、具有连接到它们的附加节点的交换机。

根据实施例,本公开提供了用于提供具有预填充的lid的vswitch体系架构的系统和方法。参考图7,lid被预填充到各个物理功能513、523、533以及虚拟功能514-516、524-526、534-536(甚至那些当前未与活动虚拟机相关联的虚拟功能)。例如,物理功能513被预填充有lid1,而虚拟功能1534被预填充有lid10。当网络被引导(root)时,lid被预填充在启用sr-iovvswitch的子网中。即使并非所有的vf都被网络中的vm占用时,所填充的vf也被分配有lid,如图7所示。

根据实施例,非常类似于物理主机通道适配器可以具有多于一个的端口(为了冗余,两个端口是常见的),虚拟hca也可以用两个端口来表示,并且经由一个、两个或更多个虚拟交换机连接到外部ib子网。

根据实施例,在具有预填充lid的vswitch体系架构中,每个管理程序可以通过pf为自己消耗一个lid,并为每个附加的vf消耗再多一个lid。在ib子网中的所有管理程序中可用的所有vf的总和给出了被允许在该子网中运行的vm的最大量。例如,在子网中每管理程序具有16个虚拟功能的ib子网中,那么每个管理程序在该子网中消耗17个lid(16个虚拟功能中的每个虚拟功能一个lid加上用于物理功能的一个lid)。在这种ib子网中,单个子网的理论管理程序极限取决于可用单播lid的数量并且是:2891个(49151个可用lid除以每管理程序17个lid),并且vm的总数(即,极限)是46256个(2891个管理程序乘以每管理程序16个vf)。(实际上,这些数字在实际中更小,因为ib子网中的每个交换机、路由器或专用sm节点也消耗lid)。注意的是,vswitch不需要占用附加的lid,因为它可以与pf共享lid。

根据实施例,在具有预填充lid的vswitch体系架构中,当网络第一次被引导时,为所有lid计算通信路径。当需要启动新的vm时,系统不必在子网中添加新的lid,否则该动作将导致网络完整的重新配置,包括路径重新计算,这是最耗时的部分。作为替代,在管理程序之一中定位用于vm的可用端口(即,可用的虚拟功能),并且将该虚拟机附连到该可用的虚拟功能。

根据实施例,具有预填充lid的vswitch体系架构还允许计算和使用不同路径以到达由同一管理程序托管的不同vm的能力。本质上,这允许这样的子网和网络使用类似lid掩码控制(lmc)的特征提供朝向一个物理机器的替代路径,而不受lmc的限制(其要求lid必须是顺序的)约束。当需要迁移vm并将其相关联的lid携带到目的地时,自由使用非顺序的lid是尤其有用的。

根据实施例,以及以上示出的具有预填充lid的vswitch体系架构的益处,可以考虑某些注意事项。例如,由于lid在网络被引导时被预填充在启用sr-iovvswitch的子网中,所以(例如在启动时的)初始路径计算会比不预填充lid花费更长的时间。

infinibandsr-iov体系架构模型——具有动态lid分配的vswitch

根据实施例,本公开提供了用于提供具有动态lid分配的vswitch体系架构的系统和方法。

图8示出了根据实施例的具有动态lid分配的示例性vswitch体系架构。如图所示,多个交换机501-504可以在网络交换环境700(例如,ib子网)内提供架构(诸如infiniband架构)的成员之间的通信。该架构可以包括多个硬件设备,诸如主机通道适配器510、520、530。主机通道适配器510、520、530中的每一个又可以分别与管理程序511、521、531交互。每个管理程序又可以与和其交互的主机通道适配器结合来设立多个虚拟功能514、515、516、524、525、526、534、535、536并将这多个虚拟功能分配给多个虚拟机。例如,虚拟机1550可以由管理程序511分配给虚拟功能1514。管理程序511可以附加地将虚拟机2551分配给虚拟功能2515,并且将虚拟机3552分配给虚拟功能3516。管理程序531又可以将虚拟机4553分配给虚拟功能1534。在主机通道适配器中的每一个上,管理程序可以通过全特征物理功能513、523、533来访问主机通道适配器。

根据实施例,交换机501-504中的每一个可以包括多个端口(未示出),这些端口在设置线性转发表中被使用以便导引网络交换环境700内的流量。

根据实施例,虚拟交换机512、522和532可以由它们相应的管理程序511、521、531处置。在这样的vswitch体系架构中,每个虚拟功能是完整的虚拟主机通道适配器(vhca),这意味着分配给vf的vm被分配完整的ib地址(例如,gid、guid、lid)集合以及硬件中的专用qp空间。对于网络的其余部分和sm(未示出),hca510、520和530看起来像经由虚拟交换机的、具有连接到它们的附加节点的交换机。

根据实施例,本公开提供了用于提供具有动态lid分配的vswitch体系架构的系统和方法。参考图8,lid被动态分配给各个物理功能513、523、533,其中物理功能513接收lid1、物理功能523接收lid2并且物理功能533接收lid3。与活动虚拟机相关联的这些虚拟功能也可以接收动态分配的lid。例如,由于虚拟机1550是活动的并且与虚拟功能1514相关联,所以虚拟功能514可以被分配lid5。同样地,虚拟功能2515、虚拟功能3516和虚拟功能1534各自与活动的虚拟功能相关联。由此,这些虚拟功能被分配lid,其中lid7被分配给虚拟功能2515、lid11被分配给虚拟功能3516、并且lid9被分配给虚拟功能1534。与具有预填充lid的vswitch不同,那些当前未与活动虚拟机相关联的虚拟功能不接收lid分配。

根据实施例,利用动态lid分配,可以实质上减少初始路径计算。当网络第一次被引导并且不存在vm时,那么可以使用相对较少数量的lid来用于初始路径计算和lft分发。

根据实施例,非常类似于物理主机通道适配器可以具有多于一个的端口(为了冗余两个端口是常见的),虚拟hca也可以用两个端口来表示,并且经由一个、两个或更多个虚拟交换机连接到外部ib子网。

根据实施例,当在利用具有动态lid分配的vswitch的系统中创建新的vm时,找到空闲的vm槽以便决定在哪个管理程序上引导新添加的vm,并且也找到未使用的唯一的单播lid。然而,在网络和交换机的lft中没有用于处置新添加的lid的已知路径。在其中每分钟可以引导几个vm的动态环境中,为了处置新添加的vm而计算新的一组路径是非期望的。在大型ib子网中,计算新的一组路由会花费几分钟,并且每次引导新的vm时这个过程都将不得不重复。

有利地,根据实施例,由于管理程序中的所有vf与pf共享相同的上行链路,所以不需要计算新的一组路由。只需要遍历网络中所有物理交换机的lft、将转发端口从属于管理程序(vm被创建在该管理程序处)的pf的lid条目复制到新添加的lid、以及发送单个smp以更新特定交换机的对应lft块。因此,该系统和方法避免了计算新的一组路由的需要。

根据实施例,在具有动态lid分配体系架构的vswitch中分配的lid不必是顺序的。当将具有预填充lid的vswitch中的每个管理程序上的vm上所分配的lid与具有动态lid分配的vswitch进行比较时,应当注意的是,在动态lid分配体系架构中分配的lid是非顺序的,而被预填充的那些lid本质上是顺序的。在vswitch动态lid分配体系架构中,当创建新的vm时,在该vm的整个寿命中使用下一个可用的lid。相反,在具有预填充lid的vswitch中,每个vm继承已经分配给对应vf的lid,并且在没有实时迁移的网络中,连续地附连到给定vf的vm获得相同的lid。

根据实施例,具有动态lid分配体系架构的vswitch可以以一些附加的网络和运行时sm开销为代价,解决具有预填充lid体系架构模型的vswitch的缺点。每次创建vm时,用与所创建的vm相关联的新添加的lid来更新子网中的物理交换机的lft。对于这个操作,需要发送每交换机一个子网管理分组(smp)。因为每个vm正在使用与其主机管理程序相同的路径,所以类似lmc的功能也不可用。然而,对所有管理程序中存在的vf的总量没有限制,并且vf的数量可以超过单播lid极限的数量。当然,如果是这种情况,那么并不是所有vf都被允许同时附连到活动vm上,但是,当操作接近单播lid极限时,具有更多的备用管理程序和vf增加了分段网络的优化和灾难恢复的灵活性。

infinibandsr-iov体系架构模型——具有动态lid分配和预填充lid的vswitch

图9示出了根据实施例的具有vswitch的示例性vswitch体系架构,其中vswitch具有动态lid分配和预填充lid。如图所示,多个交换机501-504可以在网络交换环境800(例如,ib子网)内提供架构(诸如infiniband架构)的成员之间的通信。架构可以包括多个硬件设备,诸如主机通道适配器510、520、530。主机通道适配器510、520、530中的每一个又可以分别与管理程序511、521和531交互。每个管理程序又可以与和其交互的主机通道适配器结合来设立多个虚拟功能514、515、516、524、525、526、534、535、536并将这多个虚拟功能分配给多个虚拟机。例如,虚拟机1550可以由管理程序511分配给虚拟功能1514。管理程序511可以附加地将虚拟机2551分配给虚拟功能2515。管理程序521可以将虚拟机3552分配给虚拟功能3526。管理程序531又可以将虚拟机4553分配给虚拟功能2535。在主机通道适配器中的每一个上,管理程序可以通过全特征物理功能513、523、533来访问主机通道适配器。

根据实施例,交换机501-504中的每一个可以包括多个端口(未示出),这些端口在设置线性转发表中被使用以便导引网络交换环境800内的流量。

根据实施例,虚拟交换机512、522和532可以由它们相应的管理程序511、521、531处置。在这样的vswitch体系架构中,每个虚拟功能是完整的虚拟主机通道适配器(vhca),这意味着分配给vf的vm被分配完整的ib地址(例如,gid、guid、lid)集合以及硬件中的专用qp空间。对于网络的其余部分和sm(未示出),hca510、520和530看起来像经由虚拟交换机的、具有连接到它们的附加节点的交换机。

根据实施例,本公开提供了用于提供具有动态lid分配和预填充lid的混合vswitch体系架构的系统和方法。参考图9,管理程序511可以被布置为带有具有预填充lid体系架构的vswitch,而管理程序521可以被布置为带有具有预填充lid和动态lid分配的vswitch。管理程序531可以被布置为带有具有动态lid分配的vswitch。因此,物理功能513和虚拟功能514-516使其lid被预填充(即,即使那些未附连到活动虚拟机的虚拟功能也被分配lid)。物理功能523和虚拟功能1524可以使其lid被预填充,而虚拟功能2525和虚拟功能3526使其lid被动态分配(即,虚拟功能2525可用于动态lid分配,并且虚拟功能3526由于虚拟机3552被附连而具有动态分配的lid11)。最后,与管理程序3531相关联的功能(物理功能和虚拟功能)可以使其lid被动态分配。这使得虚拟功能1534和虚拟功能3536可用于动态lid分配,而虚拟功能2535由于虚拟机4553被附连到那里所以具有动态分配的lid9。

根据诸如图9所示的在其中(在任何给定管理程序内独立地或组合地)利用具有预填充lid的vswitch和具有动态lid分配的vswitch两者的实施例,每主机通道适配器的预填充lid的数量可以由架构管理员定义,并且可以在0<=预填充的vf<=(每主机通道适配器的)总vf的范围内,并且,可用于动态lid分配的vf可以通过从(每主机通道适配器)vf的总数量减去预填充vf的数量而得出。

根据实施例,非常类似于物理主机通道适配器可以具有多于一个的端口(为了冗余两个端口是常见的),虚拟hca也可以用两个端口来表示,并且经由一个、两个或更多个虚拟交换机连接到外部ib子网。

infiniband——子网间通信(架构管理器)

根据实施例,除了在单个子网内提供infiniband架构之外,本公开的实施例还可以提供跨两个或更多个子网的infiniband架构。

图10示出了根据实施例的示例性多子网infiniband架构。如图所示,在子网a1000内,多个交换机1001-1004可以在子网a1000(例如,ib子网)内提供架构(诸如infiniband架构)的成员之间的通信。该架构可以包括多个硬件设备,诸如例如通道适配器1010。主机通道适配器1010又可以与管理程序1011交互。该管理程序又可以与和其交互的主机通道适配器结合来设立多个虚拟功能1014。该管理程序可以附加地将虚拟机分配给虚拟功能中的每一个,诸如虚拟机110105被分配给虚拟功能11014。在主机通道适配器中的每一个上,管理程序可以通过全特征物理功能(诸如物理功能1013)来访问其相关联的主机通道适配器。在子网b1040内,多个交换机1021-1024可以在子网b1040(例如,ib子网)内提供架构(诸如infiniband架构)的成员之间的通信。该架构可以包括多个硬件设备,诸如例如通道适配器1030。主机通道适配器1030又可以与管理程序1031交互。该管理程序又可以与和其交互的主机通道适配器结合来设立多个虚拟功能1034。管理程序可以附加地将虚拟机分配给虚拟功能中的每一个,诸如虚拟机21035被分配给虚拟功能21034。在主机通道适配器中的每一个上,管理程序可以通过全特征物理功能(诸如物理功能1033)访问其相关联的主机通道适配器。应当注意的是,虽然在每个子网(即,子网a和子网b)内仅示出一个主机通道适配器,但是应该理解的是,每个子网内可以包括多个主机通道适配器及其对应的部件。

根据实施例,主机通道适配器中的每一个可以附加地与虚拟交换机(诸如虚拟交换机1012和虚拟交换机1032)相关联,并且每个hca可以被设立为具有如上所述的不同的体系架构模型。虽然图10内的两个子网都被显示为使用具有预填充lid体系架构模型的vswitch,但这并不意味着暗示所有此类子网配置都必须遵循相似的体系架构模型。

根据实施例,每个子网内的至少一个交换机可以与路由器相关联,诸如子网a1000内的交换机1002与路由器1005相关联,并且子网b1040内的交换机1021与路由器1006相关联。

根据实施例,至少一个设备(例如,交换机、节点等)可以与架构管理器(未示出)相关联。架构管理器可以用于例如发现子网间架构拓扑、创建架构简档(例如,虚拟机架构简档)、构建与虚拟机相关的数据库对象,这些数据库对象形成用于构建虚拟机架构简档的基础。此外,架构管理器可以针对哪些子网被允许经由哪些路由器端口使用哪些分区编号进行通信来定义合法的子网间连接性。

根据实施例,当始发源(诸如子网a内的虚拟机1)处的流量被寻址到不同子网处的目的地(诸如子网b内的虚拟机2)时,该流量可以被寻址到子网a内的路由器,即路由器1005,路由器1005然后可以经由它与路由器1006的链路将该流量传递到子网b。

交换机端口状况的可伸缩表示

根据实施例,在ib规范下,为了观察链路状况改变,ib规范定义每个端口(例如,在任何给定交换机或虚拟交换机处的端口中的每个端口)处的、可以指示何时任何端口状态改变的属性。为了让sm确定架构内的任何端口处的状况是否已经改变状态,sm必须为每个端口发送子网管理分组,以便确定端口状况是否已经改变。

根据实施例,虽然上面定义的用于确定架构内的端口状况的方法对于大多数是静态的架构(例如,由其中端口状况改变不经常发生的物理端节点构成的那些架构)工作良好,但是对于那些已经被虚拟化的架构(例如,在引入由动态创建的虚拟机使用的虚拟hca以及其中vswitch体系架构被用于互连虚拟hca端口的情况下),以及对于非常大的物理架构配置,该方法不能很好地伸缩。

根据实施例,可以提供交换机端口状况的可伸缩表示。通过在每个交换机(物理交换机和虚拟交换机二者)处添加交换机端口状况的可伸缩表示——而不是单独地获得所有交换机端口状况改变,交换机端口状况的可伸缩表示可以通过仅使用用于每个端口状况的几个位的信息来组合可以进行伸缩的多个端口。

根据实施例,交换机端口状况的可伸缩表示可以是在每个交换机处的固定大小的消息,该固定大小的消息可以表示在与该固定大小的消息相关联的交换机中的端口的全部或子集中的所有端口状况信息。这在使用虚拟化的架构中尤其重要,因为可伸缩表示可以动态地表示虚拟交换机及其相关联的端口。如上面所讨论的,虚拟机(即,虚拟端节点)能够并且被设计为进行迁移(例如,为了性能益处),这可能意味着频繁地改变架构内的物理交换机和虚拟交换机上的端口状况。传统规范依赖于不频繁的改变——即,当sm检查自从上次检查以来是否发生了任何状态改变时,不太可能发生任何改变(默认没有改变),因此sm可以在单次操作中接收任何端口是否存在任何改变的指示,并且如果没有改变,则可以继续到下一个交换机。然而,每当任何端口发生任何改变时,那么所有端口都必须被sm单独核查。然而,在虚拟机的情况下,sm可以预期检测到架构中的端口处的更频繁的状态改变。

根据实施例,交换机端口状况的可伸缩表示可以是固定大小的消息(例如,交换机属性),该消息可以向sm提供在一个操作(即,一个smp)中观察交换机处的所有端口的所有状态改变的手段。这减少了sm以其它方式将会遇到的开销,并且优化了查询每个交换机以确定哪些端口需要进一步处置的sm机制。

根据实施例,通常,观察/检查各个交换机端口的链路状况需要多个smp操作,因为必须为交换机处的每个端口发送一个smp。然而,通过将每个链路状况组合成一个属性,sm可以向每个交换机发送较少的smp来发现在每个端口处的链路状况,从而减少拓扑发现所需的开销。同样,也同样地减少了sm确定它是否需要对端口执行用于检索更多信息或设立新的配置参数的附加操作的开销。

根据实施例,交换机端口状况的可伸缩表示可以是在其中端口/链路状况被表示为标量对象(一位值或多位值)的属性。其中包含标量对象的该属性可以提供获取(虚拟)交换机的逻辑链路状态的压缩方式。这种属性可以附加地被路由算法使用,以便在平衡通过架构的各个路由时忽略虚拟链路。

根据实施例,64位掩码值足以覆盖所有交换机(现有交换机通常具有少于64个端口)。然而,如果使用更大的交换机,那么可以通过使用索引到更高端口范围中的属性修饰符来扩展位掩码值上的这个上限(cap)。

根据实施例,除了减少sm确定架构中的端口/链路处是否已经发生任何状态改变所需的smp的数量之外,交换机端口状况的可伸缩表示还可以优化对架构的拓扑的sm发现,因为每个端口的链路状况可以被表示为属性内的标量对象。

图11示出了根据实施例的交换机端口状况的可伸缩表示。更具体而言,图11图示了具有表示交换机端口状况的可伸缩表示的属性的交换机。

根据实施例,并且如图11所示,交换机1100可以包括多个端口,诸如端口1110-1133(注意的是,图11中所示出的端口的数量既不是说明也不是指示架构(诸如infiniband架构)内给定交换机处的端口的通常数量)。交换机1100还包括交换机端口状况属性1150,交换机端口状况属性1150可以是表示交换机1100中的交换机端口1110-1133的交换机端口状况信息的固定大小的消息。

根据实施例,诸如子网管理器1140的管理模块可以发送一个smp1145来查询交换机端口状况属性1150,而不是针对交换机1100内的每个端口发送一个smp来确定每个端口的状况。smp可以在检查时中继(relay)每个端口1110-1133的状况。

图12示出了根据实施例的扩展链路状况的可伸缩表示。更具体而言,图12图示了具有表示扩展链路状况的可伸缩表示的属性的交换机。

根据实施例,并且如图12所示,交换机1100可以包括多个端口,诸如端口1110-1133(注意的是,图12中所示出的端口的数量既不是说明也不是指示架构(诸如infiniband架构)内给定交换机处的端口的通常数量)。交换机1100还包括扩展链路状况属性1250,该扩展链路状况属性1250可以是表示连接到交换机1100中的交换机端口1110-1133的任何链路的状况的固定大小的消息。

根据实施例,诸如子网管理器1140的管理模块可以发送一个smp1245来查询扩展链路状况属性1250,而不是针对交换机1100内的每个端口发送一个smp来确定每个端口处的扩展链路状况。smp可以在检查时中继每个端口1110-1133状况的链路状况。

图13是根据实施例的用于在高性能计算环境中支持交换机端口状况的可伸缩表示的方法的流程图。

在步骤1310处,诸如infiniband子网管理器的管理实体可以向交换机发送管理分组,该管理分组请求该管理分组被发送到的交换机处的每个端口的交换机端口状况。

在步骤1320处,管理分组被发送到的交换机可以接收该管理分组。

在步骤1330处,交换机可以经由包含该交换机处的每个端口的交换机端口状况的属性来提供该交换机的交换机端口中的每一个的状况。

在步骤1340处,所请求的每个交换机端口的状况可以经由管理分组被中继到诸如该infiniband子网管理器的管理实体。

图14是根据实施例的用于在高性能计算环境中支持交换机端口状况的可伸缩表示的方法的流程图。在步骤1410处,该方法可以在包括一个或多个微处理器的一个或多个计算机处提供至少一个子网,该至少一个子网包括:一个或多个交换机、多个主机通道适配器、多个端节点,以及子网管理器。该一个或多个交换机至少包括叶子交换机,其中该一个或多个交换机中的每个交换机包括多个端口,并且其中该一个或多个交换机中的每个交换机包括至少一个属性;其中该多个主机通道适配器经由一个或多个交换机互连;该多个端节点中的每个端节点与多个主机通道适配器中的至少一个主机通道适配器相关联,该子网管理器运行在一个或多个交换机中的一个交换机上或多个主机通道适配器中的一个主机通道适配器上。

在步骤1420处,该方法可以将一个或多个交换机上的多个端口中的每个端口与交换机端口状况相关联。

在步骤1430处,该方法可以将与每个交换机上的多个端口中的每个端口相关联的每个交换机端口状况表示在相关联的交换机处的至少一个属性中。

可伸缩链路稳定性属性

图15示出了根据实施例的链路稳定性的可伸缩表示。更具体而言,图15图示了具有表示链路稳定性的可伸缩表示的属性的交换机。

根据实施例,并且如图15所示,交换机1100可以包括多个端口,诸如端口1110-1133(注意的是,图15中所示出的端口的数量既不是说明也不是指示架构(诸如infiniband架构)内给定交换机处的端口的通常数量)。交换机1100还包括链路稳定性属性1550,该链路稳定性属性1550可以是表示连接到交换机1100中的交换机端口1110-1133的任何链路的稳定性的固定大小的消息。

根据实施例,诸如子网管理器1140的管理模块可以发送一个smp1545来查询链路稳定性属性1550,而不是针对交换机1100内的每个端口发送一个smp来确定每个端口处的链路稳定性。smp可以在检查时中继每个端口1110-1133的链路稳定性。

根据实施例,子网管理代理(sma)1555可以在(例如,可变的或固定的)时间段内监视连接到交换机端口1110-1133的链路的稳定性。这种监视可以包括例如连接到交换机处的每个端口的每个链路在所设置的时间段期间遇到的错误的数量。

根据实施例,由sma1555在交换机内的任何给定端口处发现的链路错误的数量可以被用于连续地更新链路稳定性属性1550,链路稳定性属性1550可以被来自子网管理器的单个smp查询。有利地,通过具有这种可伸缩的链路稳定性属性,sm可以经由一个smp从子网中的任何给定交换机收集链路稳定性信息,而不是发送多个smp并且每个smp用于检查节点处的每个链路。

根据实施例,所公开的实施例附加地允许连续地监视和更新系统中的任何给定节点处的链路稳定性属性(即,经由每个节点的sma),使得sm可以(经由例如get()操作)收集连接到sm所管理的子网中的节点的每个链路的链路稳定性信息。

可伸缩链路可用性属性

图16示出了根据实施例的链路可用性的可伸缩表示。更具体而言,图16图示了具有表示链路可用性的可伸缩表示的属性的交换机。

根据实施例,并且如图16所示,交换机1100可以包括多个端口,诸如端口1110-1133(注意的是,图16中所示出的端口的数量既不是说明也不是指示架构(诸如infiniband架构)内给定交换机处的端口的通常数量)。交换机1100还包括链路可用性属性1650,链路可用性属性1650可以是表示连接到交换机1100中的交换机端口1110-1133的任何链路的可用性的固定大小的消息。

根据实施例,诸如子网管理器1140的管理模块可以发送一个smp1645来查询链路可用性属性1650,而不是针对交换机1100内的每个端口发送一个smp来确定每个端口处的链路可用性。smp可以在检查时中继每个端口1110-1133的链路可用性。

根据实施例,子网管理代理(sma)1655可以在(例如,可变的或固定的)时间段内监视连接到交换机端口1110-1133的链路的可用性。这种监视可以包括例如连接到交换机的每个端口的每个链路上的拥塞水平。

根据实施例,如由sma1655确定的每个链路上的拥塞水平可以被用于连续地更新链路可用性属性1650,链路可用性属性1650可以被来自子网管理器的单个smp查询。有利地,通过具有这种可伸缩的链路可用性属性,sm可以经由一个smp从子网中的任何给定交换机收集链路可用性信息,而不是发送多个smp并且每一个smp用于检查交换机/节点处的每个链路。

根据实施例,所公开的实施例附加地允许连续地监视和更新系统中的任何给定节点处的链路可用性(即,经由每个节点处的sma),使得sm可以(经由例如get()操作)收集连接到sm所管理的子网中的节点的每个链路的链路可用性信息。

图17是根据实施例的用于在高性能计算环境中支持链路稳定性和可用性的可伸缩表示的示例性方法的流程图。

在步骤1710处,该方法可以在包括一个或多个微处理器的一个或多个计算机处提供至少一个子网,该至少一个子网包括:一个或多个交换机、多个主机通道适配器、多个端节点、以及子网管理器。该一个或多个交换机至少包括叶子交换机,其中该一个或多个交换机中的每个交换机包括多个端口,并且其中该一个或多个交换机中的每个交换机包括至少一个属性;其中该多个主机通道适配器经由一个或多个交换机互连;该多个端节点中的每个端节点与多个主机通道适配器中的至少一个主机通道适配器相关联;该子网管理器运行在一个或多个交换机中的一个交换机上或多个主机通道适配器中的一个主机通道适配器上。

在步骤1720处,该方法可以在一个或多个交换机中的每个交换机处提供至少一个属性。

在步骤1730处,该方法可以在一个或多个交换机中的交换机处提供多个子网管理代理(sma)中的子网管理代理。

在步骤1740处,该方法可以由一个或多个交换机中的交换机的交换机的sma来监视交换机处的多个端口中的每个端口处的链路稳定性和链路可用性中的至少一个。

根据实施例,一种用于在高性能计算环境中支持链路稳定性和可用性的可伸缩表示的系统包括:一个或多个微处理器;至少一个子网,该至少一个子网包括:一个或多个交换机、多个主机通道适配器、多个端节点、以及子网管理器。该一个或多个交换机至少包括叶子交换机,其中该一个或多个交换机中的每个交换机包括多个端口,并且其中该一个或多个交换机中的每个交换机包括至少一个属性;其中该多个主机通道适配器经由该一个或多个交换机互连;该多个端节点中的每个端节点与多个主机通道适配器中的至少一个主机通道适配器相关联;该子网管理器运行在一个或多个交换机中的一个交换机上或多个主机通道适配器中的一个主机通道适配器上;其中一个或多个交换机中的每个交换机包括至少一个属性;其中在一个或多个交换机中的交换机处提供多个子网管理代理(sma)中的子网管理代理;其中一个或多个交换机中的交换机的子网管理代理监视该交换机的多个端口中的每个端口处的链路稳定性和该交换机处的多个端口中的每个端口处的链路可用性中的至少一个。

根据实施例,上述系统还包括,由一个或多个交换机中的交换机的sma监视该交换机的多个端口中的每个端口处的链路稳定性包括:在监视时间段内,对附连到交换机的多个端口中的每个端口的每个链路处的错误的数量进行计数;以及,其中在由sma监视交换机的多个端口中的每个端口处的链路稳定性之后,sma将所计数的每个链路的错误的表示填充在该至少一个属性中。

根据实施例,在上述系统中,子网管理器使用一个操作来确定一个或多个交换机中的交换机上的每个端口的链路稳定性。

根据实施例,在上述系统中,该一个操作包括子网管理分组。

根据实施例,上述系统还包括,由一个或多个交换机中的交换机的sma监视交换机的多个端口中的每个端口处的链路可用性包括:在监视时间段内,观察附连到交换机的多个端口中的每个端口的每个链路处的流量负载;并且在由sma监视交换机的多个端口中的每个端口处的链路可用性之后,sma将所观察到的每个链路的流量负载的表示填充在该至少一个属性中。

根据实施例,在上述系统中,子网管理器使用一个操作来确定一个或多个交换机中的交换机上的每个端口的链路可用性。

根据实施例,在上述系统中,该一个操作包括子网管理分组。

根据实施例,一种用于在高性能计算环境中支持链路稳定性和可用性的可伸缩表示的方法包括:在包括一个或多个微处理器的一个或多个计算机处提供至少一个子网,该至少一个子网包括:一个或多个交换机、多个主机通道适配器、多个端节点以及子网管理器,该一个或多个交换机至少包括叶子交换机,其中该一个或多个交换机中的每个交换机包括多个端口,其中该多个主机通道适配器经由该一个或多个交换机互连,该多个端节点中的每个端节点与多个主机通道适配器中的至少一个主机通道适配器相关联,该子网管理器运行在一个或多个交换机中的一个交换机上或多个主机通道适配器中的一个主机通道适配器上;在一个或多个交换机中的每个交换机处提供至少一个属性;在一个或多个交换机中的交换机处提供多个子网管理代理(sma)中的子网管理代理;由一个或多个交换机中的交换机的sma监视交换机的多个端口中的每个端口处的链路稳定性和交换机处的多个端口中的每个端口处的链路可用性中的至少一个。

根据实施例,上述方法还包括,由一个或多个交换机中的交换机的sma监视交换机的多个端口中的每个端口处的链路稳定性包括:在监视时间段内,对附连到交换机的多个端口中的每个端口的每个链路处的错误的数量进行计数;以及在完成由一个或多个交换机中的交换机的sma对多个端口中的每个端口处的链路稳定性的监视之后,sma将所计数的每个链路的错误的表示填充在该至少一个属性中。

根据实施例,上述方法包括由子网管理器使用一个操作来确定一个或多个交换机中的交换机上的每个端口的链路稳定性。

根据实施例,在上述方法中,该一个操作包括子网管理分组。

根据实施例,上述方法还包括,由一个或多个交换机中的交换机的sma监视交换机的多个端口中的每个端口处的链路可用性包括:在监视时间段内,观察附连到交换机的多个端口中的每个端口的每个链路处的流量负载;以及在监视时间段内完成监视交换机的多个端口中的每个端口处的链路可用性之后,由sma将所观察到的每个链路的流量负载的表示填充在该至少一个属性中。

根据实施例,在上述方法中,子网管理器使用一个操作来确定一个或多个交换机中的一个交换机上的每个端口的链路可用性状况。

根据实施例,在上述方法中,该一个操作包括子网管理分组。

根据实施例,一种非暂态计算机可读存储介质,包括存储在其上指令,该指令用于在高性能计算环境中支持链路稳定性和可用性的可伸缩表示,该指令当由一个或多个计算机读取并执行时,使一个或多个计算机执行包括以下各项的步骤:在包括一个或多个微处理器的一个或多个计算机处提供至少一个子网,该至少一个子网包括:一个或多个交换机、多个主机通道适配器、多个端节点以及子网管理器,该一个或多个交换机至少包括叶子交换机,其中该一个或多个交换机中的每个交换机包括多个端口,其中该多个主机通道适配器经由一个或多个交换机互连,该多个端节点中的每个端节点与多个主机通道适配器中的至少一个主机通道适配器相关联,该子网管理器运行在一个或多个交换机中的一个交换机上或多个主机通道适配器中的一个主机通道适配器上;在一个或多个交换机中的每个交换机处提供至少一个属性;在一个或多个交换机中的交换机处提供多个子网管理代理(sma)中的子网管理代理;由一个或多个交换机中的交换机的sma监视交换机的多个端口中的每个端口处的链路稳定性和交换机处的多个端口中的每个端口处的链路可用性中的至少一个。

根据实施例,上述非暂态计算机可读存储介质还包括,由一个或多个交换机中的交换机的sma监视交换机的多个端口中的每个端口处的链路稳定性包括:在监视时间段内,对附连到交换机的多个端口中的每个端口的每个链路处的错误的数量进行计数;以及在完成由一个或多个交换机中的交换机的sma对多个端口中的每个端口处的链路稳定性的监视之后,sma将所计数的每个链路的错误的表示填充在该至少一个属性中。

根据实施例,上述非暂态计算机可读存储介质还包括:由子网管理器使用一个操作来确定一个或多个交换机中的交换机上的每个端口的链路稳定性。

根据实施例,在上述非暂态计算机可读存储介质中,该一个操作包括子网管理分组。

根据实施例,上述非暂态计算机可读存储介质还包括,由一个或多个交换机中的交换机的sma监视交换机的多个端口中的每个端口处的链路可用性包括:在监视时间段内,观察附连到交换机的多个端口中的每个端口的每个链路处的流量负载;以及在监视时间段内完成监视交换机的多个端口中的每个端口处的链路可用性之后,由sma将所观察到的每个链路的流量负载填充在至少一个属性中。

根据实施例,在上述非暂态计算机可读存储介质中,子网管理器使用一个操作来确定一个或多个交换机中的一个交换机上的每个端口的链路可用性状况,该一个操作包括子网管理分组。

根据实施例,一种计算机程序包括以机器可读格式的程序指令,该程序指令当由计算机系统执行时使计算机系统执行上述方法。

根据实施例,一种计算机程序包括存储在非暂态机器可读数据存储介质中的上述计算机程序。

本发明的许多特征可以在硬件、软件、固件或其组合中执行,利用硬件、软件、固件或其组合来执行,或者在硬件、软件、固件或其组合的帮助下执行。因此,本发明的特征可以利用(例如,包括一个或多个处理器的)处理系统来实现。

本发明的特征可以在计算机程序产品中实现、利用计算机程序产品实现、或者在计算机程序产品的帮助下实现,其中计算机程序产品是具有存储于其上/其中的指令的(一个或多个)存储介质或(一个或多个)计算机可读介质,该指令可用来编程处理系统以执行本文所呈现的任何特征。存储介质可以包括但不限于任何类型的盘(包括软盘、光盘、dvd、cd-rom、微驱动器、以及磁光盘)、rom、ram、eprom、eeprom、dram、vram、闪存存储器设备、磁卡或光卡、纳米系统(包括分子存储器ic)、或适于存储指令和/或数据的任何类型的媒体或设备。

在被存储在(一个或多个)机器可读介质中的任何一个的情况下,本发明的特征可以被结合到软件和/或固件中,以用于控制处理系统的硬件,并且用于使处理系统能够利用本发明的结果与其它机制交互。这种软件或固件可以包括但不限于应用代码、设备驱动器、操作系统和执行环境/容器。

本发明的特征也可以利用例如诸如专用集成电路(asic)的硬件部件在硬件中实现。实现硬件状态机以执行本文所描述的功能对相关领域的技术人员而言将是清楚的。

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

虽然以上已经描述了本发明的各种实施例,但是应该理解的是,它们是作为示例而不是限制给出的。对相关领域的技术人员将清楚的是,在不背离本发明的精神和范围的情况下,其中可以做出各种形式和细节上的改变。

本发明已经借助说明指定功能的执行及其关系的功能构建块进行了描述。这些功能构建块的边界在本文中通常是为了方便描述而任意定义的。可以定义替代的边界,只要指定的功能及其关系被适当地执行。任何这种可替代的边界因此在本发明的范围和精神之内。

本发明的以上描述是为了说明和描述的目的而提供的。它不旨在是穷尽的或者要把本发明限定到所公开的精确形式。本发明的广度和范围不应该由任何上述示例性实施例来限制。许多修改和变形对本领域技术人员来说将是清楚的。这些修改和变形包括所公开特征的任何相关组合。实施例被选择和描述以便最好地解释本发明的原理及其实践应用,从而使本领域其它技术人员能够理解本发明用于各种实施例并且可以进行适于预期特定用途的各种修改。本发明的范围旨在由以下权利要求及其等同物来定义。

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