用于在高性能计算环境中支持快速混合重新配置的系统和方法与流程

文档序号:15575365发布日期:2018-09-29 05:24阅读:257来源:国知局

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

本发明一般而言涉及计算机系统,尤其涉及使用sr-iovvswitch体系架构支持计算机系统虚拟化和实时迁移。



背景技术:

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



技术实现要素:

根据实施例,系统和方法可以在大规模无损网络中提供性能驱动的重新配置。混合重新配置方案可以允许快速部分网络重新配置,其中在网络的不同子部分中选择不同的路由算法。部分重新配置可以比初始完整配置快几个数量级,因此使得有可能在无损网络中考虑性能驱动的重新配置。所提出的机制利用以下事实:大型hpc系统和云由运行隔离任务的多个租户(例如,不同分区上的不同租户)共享。在这种场景中,不允许租户间通信,因此工作负载部署和放置调度器应当尽量避免分段,以确保高效的资源利用。即,每一个租户的大部分流量可以被包含在网络的经整合的子部分中,sm可以重新配置某些子部分,以提高整体性能。sm可以使用胖树(fat-tree)拓扑和胖树路由算法。这种混合重新配置方案可以通过使用定制胖树路由算法成功地重新配置和改进子树内的性能,其中该定制胖树路由算法使用提供的节点排序来重新配置网络。当sm想要重新配置整个网络时,sm可以使用默认的胖树路由算法,从而有效地展示针对不同用例的两种不同路由算法在单个子网中的组合。

根据实施例,用于在高性能计算环境中支持快速混合重新配置的示例性方法可以在一个或多个微处理器处提供第一子网,该第一子网包括:多个交换机,多个交换机包括至少叶子交换机,其中多个交换机中的每一个交换机包括多个交换机端口;多个主机通道适配器,每一个主机通道适配器包括至少一个主机通道适配器端口;以及多个端节点,其中多个端节点中的每一个端节点与多个主机通道适配器中的至少一个主机通道适配器相关联。该方法可以将第一子网的多个交换机布置在具有多个级别的网络体系架构中,该多个级别中的每一个级别包括该多个交换机中的至少一个交换机。该方法可以根据第一配置方法配置多个交换机,第一配置方法与多个端节点的第一排序相关联。该方法可以将多个交换机的子集配置为第一子网的子子网(sub-subnet),第一子网的子子网包括比第一子网的多个级别少的级别数量。然后,该方法可以根据第二配置方法重新配置第一子网的该子子网。

附图说明

图1示出了根据实施例的infiniband(无限带宽)环境的图示。

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

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

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

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

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

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

图8图示了根据实施例的交换机元组。

图9示出了根据实施例的用于节点路由阶段的系统。

图10示出了根据实施例的用于节点路由阶段的系统。

图11示出了根据实施例的用于节点路由阶段的系统。

图12示出了根据实施例的用于节点路由阶段的系统。

图13示出了根据实施例的包括具有多于两个级别的胖树拓扑的系统。

图14示出了根据实施例的用于快速混合重新配置的系统。

图15示出了根据实施例的用于快速混合重新配置的系统。

图16是根据实施例的用于在高性能计算环境中支持快速混合重新配置的示例性方法的流程图。

具体实施方式

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

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

本文描述是是支持在高性能计算环境中的快速混合重新配置的系统和方法。

本发明的以下描述使用infinibandtm(ib)网络作为高性能网络的示例。对于本领域技术人员来说清楚的是,可以使用其它类型的高性能网络而没有限制。以下描述还使用胖树拓扑作为架构拓扑的示例。对于本领域技术人员来说清楚的是,可以使用其它类型的架构拓扑而没有限制。

根据本发明的实施例,虚拟化可以有益于云计算中的高效资源利用和弹性资源分配。实时迁移使得有可能通过以应用透明的方式在物理服务器之间移动虚拟机(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可以重新配置网络。重新配置步骤可以包括在网络初始化期间执行的步骤。此外,重新配置可以具有限于其中发生网络变化的子网的局部范围。此外,用路由器对大型架构进行分段可以限制重新配置的范围。

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

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

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

infiniband中的虚拟机

在过去的十年中,虚拟化高性能计算(hpc)环境的前景已得到相当大的提高,因为cpu开销已通过硬件虚拟化支持被实际上消除;存储器开销已通过虚拟化存储器管理单元被显著降低;存储开销已通过使用快速san存储装置或分布式联网文件系统被减少;并且网络i/o开销已通过使用比如单根输入/输出虚拟化(sr-iov)的设备直通技术被减少。现在,云有可能使用高性能互连解决方案来容纳虚拟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)路径记录查询来定位要重新连接到的虚拟机的新地址,可以尝试恢复(renew)丢失的连接。

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。gid通过组合由架构管理器分配的全局唯一64位前缀和每一个hca端口的guid地址而形成。

胖树(ftree)拓扑和路由

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

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

同样如图2所示,端节点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时,会出现问题。由于节点按索引的次序进行路由,因此这种行为会导致链路上的平衡恶化。由于路由是在与分区不知晓的情况下进行的,因此,一般而言,胖树路由的子网提供分区之间较差的隔离。

输入/输出(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之间没有设备共享。直接分配或设备直通以最小的开销提供接近本地的性能。物理设备绕过管理程序并且直接附连到vm。但是,这种直接设备分配的缺点是有限的可伸缩性,因为在虚拟机之间不存在共享—一个物理网卡与一个vm耦合。

根据实施例,单根iov(sr-iov)可以允许物理设备通过硬件虚拟化表现为相同设备的多个独立的轻量级实例。这些实例可以被分配给vm作为直通设备,并作为虚拟功能(vf)被访问。管理程序通过(每设备)唯一的、全特征(fullyfeatured)物理功能(pf)来访问该设备。sr-iov缓解纯直接分配的可伸缩性问题。但是,sr-iov呈现出的问题是它可能会影响vm迁移。在这些iov技术中,sr-iov可以使用允许从多个vm直接访问单个物理设备的手段来扩展pciexpress(pcie)规范同时维持接近本地的性能。因此,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被分离,实时迁移将运行,并且新的vf将在目的地处被附连。在infiniband和sr-iov的情况下,该处理会引入在秒的数量级上的停机时间。而且,在sr-iov共享端口模型中,vm的地址将在迁移之后改变,从而导致sm中的附加开销以及对底层网络架构的性能的负面影响。

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

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

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

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

如图3中所示,根据实施例,可以将不同的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)

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

图4示出了根据实施例的示例性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体系架构模型——具有预填充lid的vswitch

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

图5示出了根据实施例的具有预填充的lid的示例性vswitch体系架构。如图所示,多个交换机501-504可以在网络交换环境500(例如,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中的每一个可以包括多个端口(未示出),这多个端口被用于设置线性转发表,以便引导网络交换环境500内的流量。

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

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

根据实施例,非常类似于物理主机通道适配器可以具有多于一个的端口(为了冗余两个端口是常见的),虚拟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,添加新的lid是否则将导致网络完全重新配置(包括路径重新计算,这是最耗时的部分)的动作。作为替代,在管理程序之一中定位用于vm的可用端口(即,可用的虚拟功能),并且将虚拟机附连到该可用的虚拟功能。

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

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

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

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

图6示出了根据实施例的具有动态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体系架构的系统和方法。参考图6,lid被动态分配给各个物理功能513、523、533,其中物理功能513接收lid1、物理功能523接收lid2并且物理功能533接收lid3。与活动虚拟机相关联的那些虚拟功能也可以接收动态分配的lid。例如,由于虚拟机1550是活动的并且与虚拟功能1514相关联,因此虚拟功能514可以被分配lid5。同样,虚拟功能2515、虚拟功能3516和虚拟功能1534各自与活动虚拟功能相关联。由此,这些虚拟功能被分配lid,其中lid7被分配给虚拟功能2515、lid11被分配给虚拟功能3516、并且虚拟功能9被分配给虚拟功能1535。与具有预填充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时,子网中的物理交换机的lft可以用与创建的vm相关联的新添加的lid进行更新。对于这个操作,需要发送每交换机一个子网管理分组(smp)。因为每一个vm正在使用与其主机管理程序相同的路径,因此类似lmc的功能也不可用。但是,对所有管理程序中存在的vf的总量没有限制,并且vf的数量可以超过单播lid极限的数量。当然,如果是这种情况,那么并不是所有vf都被允许同时附连到活动vm上,但是,当操作接近单播lid极限时,具有更多的备用管理程序和vf增加了灾难恢复和分段网络优化的灵活性。

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

图7示出了根据实施例的具有带有动态lid分配和预填充lid的vswitch的示例性vswitch体系架构。如图所示,多个交换机501-504可以在网络交换环境500(例如,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中的每一个可以包括多个端口(未示出),这多个端口被用于设置线性转发表,以便引导网络交换环境700内的流量。

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

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

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

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

快速混合重新配置

根据实施例,高性能计算(hpc)集群是由数千个节点和数百万个核组成的大规模并行系统。传统上,这种系统与科学社区相关联,并且可以被用于运行复杂和高粒度的计算。但是,随着云计算范式和大数据分析的出现,计算机科学社会倾向于认同将存在hpc和大数据的融合,其中云是用于将相关联的服务递送给更广泛观众的工具。大型常规hpc集群是通常在运行多样化但可预测的工作负载的用户之间共享的环境。但是,当暴露于云和更加动态的按需付费(pay-as-you-go)模型时,系统的工作负载和利用率可能变得不可预测,从而导致在运行时期间对性能优化的需要。

根据实施例,可以被调整并重新配置以便改进性能的部件之一是底层互连网络。由于节点之间的密集通信,互连网络是大规模并行体系架构中的关键部分。照此,使用通常采用无损层2流控制的高性能网络技术,因为这些技术提供显著更好的性能。不过,性能的代价是增加的复杂性和管理成本,并且重新配置网络可以是具有挑战性的。由于分组不会在无损网络中丢失,因此如果路由功能允许形成环路,那么可能发生死锁。子网管理器(sm)软件致力于管理网络。在其它任务之外,这种sm还负责计算网络中节点之间的无死锁通信路径,并将对应的线性转发表(lft)分发给交换机。当需要重新配置时,sm重新计算新一组无死锁路由。但是,在过渡阶段期间,当分发新lft时,新路由功能r新与旧路由功能r旧共存。虽然r旧和r新都是没有死锁的,但两者的结合可能不是。而且,路径计算是重新配置的成本较高的阶段,并且可以花费数分钟,这取决于拓扑和所选择的路由功能,从而引入使重新配置成为除非发生严重故障否则要避免的奢侈操作的障碍。在故障的情况下,重新配置被保持为最小,以便以性能恶化为代价而快速重新建立无死锁连接性。

根据实施例,系统和方法可以在大规模无损网络中提供性能驱动的重新配置。混合重新配置方案可以允许快速部分网络重新配置,其中在网络的不同子部分中选择不同的路由算法。部分重新配置可以比初始完整配置快几个数量级,因此使得有可能在无损网络中考虑性能驱动的重新配置。所提出的机制利用以下事实:大型hpc系统和云由运行隔离任务的多个租户(例如,不同分区上的不同租户)共享。在这种场景中,不允许租户间通信,因此工作负载部署和放置调度器应当尽量避免分段,以确保高效的资源利用。即,每一个租户的大部分流量可以被包含在网络的经整合的子部分中,sm可以重新配置某些子部分,以提高整体性能。sm可以使用胖树拓扑和胖树路由算法。这种混合重新配置方案可以通过使用定制胖树路由算法成功地重新配置和改进子树内的性能,该定制胖树路由算法使用提供的节点排序来重新配置网络。当sm想要重新配置整个网络时,sm可以使用默认的胖树路由算法,从而有效地展示针对不同用例的两种不同路由算法在单个子网中的组合。

根据实施例,胖树路由算法(ftree)是用于胖树拓扑的拓扑感知路由算法。ftree首先发现网络拓扑,并且每一个交换机都用识别其在拓扑中的位置的元组标记。每一个元组是(l,ah,...,a1)形式的值向量,其中l表示交换机所在的级别。ah表示最顶层子树内的交换机索引,并且递归地,数位ah-1直到a1表示子树在该第一子树内的索引,依此类推。对于具有n个级别的胖树,根级别(最顶层或核心)交换机位于级别l=0,而(节点连接到其的)叶子交换机位于级别l=n-1中。用于示例2元4级树(2-ary-4-tree)的元组分配在图8中示出。

图8图示了根据实施例的交换机元组。更具体而言,该图图示了由为示例胖树xgft(4;2,2,2,2;2,2,2,1)实现的opensm的胖树路由算法分配的交换机元组。胖树800可以包括交换机801-808、811-818、921-1428和831-838。由于胖树有n=4个交换机级别(在根级别处标记为行0,直到叶级别处的行3),胖树由m1=2个第一级子树组成,每一个第一级子树具有n'=n-1=3个交换机级别。这在图中由虚线定义的两个框示出,虚线封住从级别1到3的交换机,每一个第一级子树接收标识符0或1。那些第一级子树中的每一个由m2=2个第二级子树组成,每一个第二级子树在叶子交换机之上具有n”=n'-1=2个交换机级别。这在图中由点线定义的四个框示出,这四个框封住从级别2到3的交换机,每一个第二级子树接收标识符0或1。类似地,叶子交换机中的每一个也可以被认为是子树,在图中由点划线定义的八个框示出,并且这些子树中的每一个接收标识符0或1。

根据实施例,并且如图中所例示的,可以将元组(诸如四个数字的元组)分配给各个交换机,元组的每一个数字指示对于元组中每一个值的位置的具体子树对应性。例如,可以为交换机814(其可以被称为交换机1_3)分配元组1.0.1.1,表示其在级别1处和第0个第一级别子树的位置。

根据实施例,一旦分配了元组,ftree就以递增的元组次序迭代通过每一个叶子交换机,并且对于其中节点以递增的端口次序连接的每一个向下的交换机端口,该算法基于它们的lid路由所选择的节点。图9-13图示了根据实施例的节点如何被路由的不同阶段。

图9示出了根据实施例的用于节点路由阶段的系统。图中的交换机901-912标记有1-12的数字。每一个交换机可以包括多个端口(未示出)。例如,每一个交换机可以包括32个端口——16个向下和16个向上。交换机1、2、3、4中的每一个也可以链接到两个或更多个节点,诸如链接到交换机1的节点a920和b921,链接到交换机2的节点c922和d923,链接到交换机3的节点e924和f925,以及链接到交换机4的节点g926和h927。当向下选择路由时,ftree保持端口使用计数器以平衡路由,并通过从最小负载端口向上遍历架构来起动。如图所示,在第一次迭代中,所有端口计数器都为零,因此选择第一个可用的向上端口。对于每向上一个级别,新到达的交换机(在这种情况下是交换机5905)被选择作为交换机,以将所有流量从通过其到达了该交换机的传入端口向下路由到路由节点(节点a920)。图中的虚线表示已分配给节点a的路由。

图10示出了根据实施例的用于节点路由的阶段的系统。图中的交换机901-912标记有1-12的数字。每一个交换机可以包括多个端口(未示出)。例如,每一个交换机可以包括32个端口——16个向下和16个向上。交换机1、2、3、4中的每一个也可以链接到两个或更多个节点,诸如链接到交换机1的节点a920和b921,链接到交换机2的节点c922和d923,链接到交换机3的节点e924和f925,以及链接到交换机4的节点g926和h927。在图9中所示的路由步骤之后,ftree可以向下遍历架构,并以类似的方式分配向上到交换机的路由。这在图中被示为从交换机5到交换机2的长箭头,其表示路由算法。然后,路由分配以向上的方式进行,从交换机2到交换机5。图中的虚线表示已分配给节点a的路由。

图11示出了根据实施例的用于节点路由阶段的系统。图中的交换机901-912标记有1-12的数字。每一个交换机可以包括多个端口(未示出)。例如,每一个交换机可以包括32个端口——16个向下和16个向上。交换机1、2、3、4中的每一个也可以链接到两个或更多个节点,诸如链接到交换机1的节点a920和b921,链接到交换机2的节点c922和d923,链接到交换机3的节点e924和f925,以及链接到交换机4的节点g926和h927。与图9和10中描述的相同或相似的递归操作继续,直到用于所选节点的路由条目已被添加到架构中所有必要的节点。如图11中所示,通过上升操作向下的路由如所描绘的那样。当ftree机制向上遍历树(从交换机5到交换机9)时,路由在交换机9和交换机5之间被分配给节点a(路由向下)。

图12示出了根据实施例的用于节点路由的阶段的系统。图中的交换机901-912标记有1-12的数字。每一个交换机可以包括多个端口(未示出)。例如,每一个交换机可以包括32个端口——16个向下和16个向上。交换机1、2、3、4中的每一个也可以链接到两个或更多个节点,诸如链接到交换机1的节点a920和b921,链接到交换机2的节点c922和d923,链接到交换机3的节点e924和f925,链接到交换机4的节点g926和h927。与图9、10和11中描述的相同或相似的递归操作继续,直到用于所选节点的路由条目已被添加到架构中所有必要的交换机。如图12中所示,通过上升操作向下的路由在交换机9和交换机7之间存在,并且执行两个通过下降操作向上的路由,一个在交换机7和交换机3之间,一个在交换机7和交换机4之间。图中的虚线表示已分配给节点a的路由。在这个时候,已在系统中定义了从所有节点到节点a的路由。可以对系统中的每一个节点重复这种操作,维护端口计数器,直到所有节点都计算出所有路由。

要注意的是,已经完成了朝着节点a的路由,但是存在一些没有朝着节点a的路由的空白(blank)交换机;交换机6、8、10、11、12。实际上,ftree也可以在这些空白交换机中添加路由。如果朝着节点a的分组例如到达交换机12,那么这个交换机知道它必须将接收到的分组向下转发到交换机6,而交换机6知道从12接收的分组必须被转发到交换机1以到达其目的地a。但是,较低级别中的交换机永远不会朝着节点a向交换机12转发流量,因为向上路由将总是将分组推向交换机9。要注意的是,每一个目标节点使用单个根交换机抵消了宽拥堵树的增长。

根据实施例,快速混合重新配置方法可以基于以下概念:hpc系统和云环境由运行隔离任务的多个租户共享,即,不允许租户间通信。为了实现更好的资源利用,工作负载部署或虚拟机放置调度器尽可能避免资源分段。因此,每一个租户的工作负载被映射到关于物理网络连接性位于附近的物理机器上,以便避免不必要的网络流量和跨租户的网络干扰。对于具有多于两个级别的胖树拓扑,这意味着可以将每租户流量包含在多级胖树的子树内。

图13示出了根据实施例的包括具有多于两个级别的胖树拓扑的系统。在具有多个交换机级别(在所描绘的实施例中是3个交换机级别)的胖树拓扑子网1300内,可以定义子树1310(在本文也被称为子子网),其中子树1310内的流量是全包含的。即,子树1310内(即,在从端节点a跨到端节点p的端节点1320之间)的流量不流向拓扑的其余部分或者来自拓扑的其余部分。作为示例,端节点1320可以全部属于同一个分区(例如,1320中的所有节点共享公共分区键(p_key))。应当注意的是,虽然未示出,但是端节点中的每一个可以经由主机通道适配器(hca)连接到交换网络。

根据实施例,快速混合重新配置方法可以仅基于内部流量模式应用部分重新配置并在子子网内本地优化。通过应用这种部分重新配置,该方法可以有效地将重新配置视为具有较少级别的胖树,并且可以降低路径计算和整体重新配置的成本。实际上,即使在共享和高度动态的环境中,性能驱动的重新配置也变得有吸引力。而且,当应用部分重新配置时,该方法仅需要更改子子网1310内节点的转发条目。考虑到用于路由架构的初始路由算法是ftree或类似的算法,其通过应用向上/向下路由的变体而不使用虚拟道(lane)来保证无死锁,该方法可以使用任何最佳适合的路由算法如同隔离一样将给定的子树重新路由(混合重新配置)。

根据实施例,一旦重新配置了胖树的子树,所有端节点(甚至是在被重新配置的子子网之外的端节点)之间的连接性仍然被维持。因为交换机具有指示将朝向任何目的地的流量转发到的位置的lft。即,每一个交换机s在lft中对于每一个目的地x具有有效的转发条目,即使其它节点将永远不会实际通过s转发去往x的分组。例如,在子树内选择初始路由之后,选择了处于高于叶子交换机一个级别的级别的交换机(将称为交换机5)来将流量向下朝着节点a路由,并且选择了在与交换机5相同级别上的交换机6来将流量朝着节点b路由。在子树的重新配置之后,交换机5现在被用于将流量朝着节点b路由并且交换机6朝着节点a路由。在这种情况下,如果位于子树内的节点e和f发送朝着节点a或b的流量,那么新计算出的路径将被使用,并且流量将完全保留在子树内。但是,如果位于子树外部的节点(未示出)向节点a和b发送流量,那么将使用旧路径(即,不是重新配置的一部分,因为那些路径在子树外部);朝着a和b的该流量将在由整个子网的原始路由指定的交换机处进入子树。子树外部的这种行为可以潜在地(例如,通过干扰任何子树内部负载平衡)干扰子树重新配置的目的。但是,当子树被配置为使得很少或没有流量跨过子树边界时(例如,当子树包括整个分区时),这种干扰是次要问题。

根据实施例,为了应用部分重新配置,该方法可以首先选择子树中的必须被重新配置的所有节点和交换机。该方法可以使用交换机元组来选择要重新配置的子树。对于部分重新配置,该方法可以选择子树中需要被重新配置的所有节点和交换机。子树中所有节点的选择和考虑是必要的。子树中所有实体的选择处理可以通过以下步骤:

1)管理员(或监视架构利用的自动化解决方案)提供要参与重新配置的节点列表。

2)比较来自步骤1的节点的叶子交换机的元组,并选择共同的祖先子树。

3)属于在步骤2中选择的子树的所有交换机将被标记用于重新配置。

4)从步骤3中的交换机列表中,将选取叶子交换机,并且连接到所选取的叶子交换机的所有节点将参与重新配置处理。

5)最后,路由算法必须仅为步骤4中选择的节点计算新的一组路由,并且仅将lft分发到在步骤3中选择的交换机。

根据实施例,在如胖树的多级交换机拓扑中,对于不同流量模式,有效二分带宽通常小于理论二分带宽。原因在于,取决于已选择哪些节点对进行通信,可能存在在向上方向上共享的链路。示例在图14中图示。

图14示出了根据实施例的用于快速混合重新配置的系统。在具有多个交换机级别(在所描绘的实施例中是3个交换机级别)的胖树拓扑子网1400内,可以定义子树1410,其中子子网1410内的流量是全包含的。即,子子网1410内(即,在从端节点a跨到端节点p的端节点1420之间)的流量不流向拓扑的其余部分或来自拓扑的其余部分。作为示例,端节点1420可以全部属于同一个分区。

如图所示,端节点1420(端节点a到p)可以在用ftree路由算法全局路由的三级胖树的两级子树(指示为1410)内进行通信。在所描绘的实施例中,路由方法ftree已经选择:交换机5向下路由到节点a、e、i和m;交换机6向下路由到节点b、f、j和n;交换机7向下路由到节点c、g、k和o;以及交换机8向下路由到节点d、h、l和p。虽然这个子树具有完全的理论二分带宽,但是所示通信模式中的有效二分带宽(其中节点b、c和d分别向节点e、i和m发送流量)是该完全带宽的1/3。这是因为所有目的地节点都通过第二级中的同一个交换机(交换机5)路由,并且连接交换机1和交换机5的粗虚线链路被所有三个流共享,并且成为流量的瓶颈。但是,存在足够的空链路可以避免链路共享并提供完全带宽。为了允许并不总是绑定到基于端口次序的同一路由次序的灵活重新配置,快速混合重新配置方案可以使用胖树路由机制,其可以被称为noftree,noftree使用用户定义的节点排序来路由胖树网络。这可以提供增强。确定每一个节点的接收流量的简单方式是读取ib端口计数器。以这种方式,管理员无需知道关于租户执行的作业的详细信息。

根据实施例,noftree可以用在快速混合重新配置方案的上下文中,并且在已经如上所述地选择了交换机和节点之后路由子树。该方案可以遵循以下步骤:

1)由用户或由监视解决方案提供要路由的节点的有序列表。

2)noftree重新排序每一个叶子交换机的节点。然后将每一个有序节点放置在每一个叶子sw+1个槽中的n%的最大节点中,以在给定的叶子交换机中路由,其中n是节点在重新排序的节点列表中的全局位置。

3)连接到每一个叶子交换机但在提供的节点排序列表中不存在的剩余节点正在基于节点连接到的端口次序填充剩余的叶子交换机路由槽。如果用户没有提供端口排序,那么noftree可以完全像ftree路由算法一样工作。

4)noftree再次迭代通过每一个叶子交换机并基于通过前面的步骤中构建的节点次序来路由每一个节点。

图15示出了根据实施例的用于快速混合重新配置的系统。在具有多个交换机级别(在所描绘的实施例中是3个交换机级别)的胖树拓扑子网1500内,可以定义子树1510,其中子子网1510内的流量是全包含的。即,子子网1510内(即,在从端节点a跨到端节点p的端节点1520之间)的流量不流到拓扑的其余部分或者来自拓扑的其余部分。作为示例,端节点1520可以都属于同一个分区。

如图所示,端节点1520(端节点a到p)可以在用ftree路由算法全局路由的三级胖树的两级子树(指示为1510)内通信。在所描绘的实施例中,路由方法noftree已经使用供给/接收的节点次序e、i、m重新配置图15的子树并且已经选择:交换机5向下路由到节点a、e、j和n;交换机6向下路由到节点b、f、i和o;交换机7向下路由到节点c、g、k和m;以及交换机8向下路由到节点d、h、l和p。

在这种情况下,noftree用于重新配置的供给/接收的节点次序是e、i、m。由于在节点排序中没有提供来自叶子交换机1的节点,因此连接到交换机1的节点基于端口次序被路由。节点e是全局节点排序中的第一个节点和叶子交换机2中要被排序的第一个节点,因此节点e成为要在交换机2中路由的第一个节点(从交换机5向下路由)。叶子交换机2上的其余节点(节点f、g、h)按照端口次序路由。然后该机制移动到第3个叶子交换机(交换机3),连接来自供给/接收到的节点排序的节点i连接到交换机3。节点i是供给/接收到的节点排序中的第二个节点,并且是交换机3中要被排序的第一个节点,因此节点i成为要在交换机3中被路由的第二个节点,从交换机6向下路由。连接到交换机4的节点以相同的方式被路由。剩余路由如上面和图中所指示的那样发生。在这种场景中,可以实现300%的性能增益,因为对于从节点b、c和d流向节点e、i和m的流量,不再有任何向上链路共享。

图16是根据实施例的用于在高性能计算环境中支持快速混合重新配置的示例性方法的流程图。

在步骤1610处,该方法可以在一个或多个微处理器处提供第一子网,第一子网包括多个交换机,该多个交换机包括至少一个叶子交换机,其中这多个交换机中的每一个包括多个交换机端口;多个主机通道适配器,每一个主机通道适配器包括至少一个主机通道适配器端口;以及多个端节点,其中这多个端节点中的每一个与该多个主机通道适配器中的至少一个主机通道适配器相关联。

在步骤1620处,该方法可以将第一子网的该多个交换机布置在具有多个级别的网络体系架构中,该多个级别中的每一个级别包括该多个交换机中的至少一个交换机。

在步骤1630处,该方法可以根据第一配置方法配置该多个交换机,第一配置方法与该多个端节点的第一排序相关联。

在步骤1640处,该方法可以将该多个交换机的子集配置为第一子网的子子网,第一子网的该子子网包括少于第一子网的该多个级别的多个级别。

在步骤1650处,该方法可以根据第二配置方法重新配置第一子网的该子子网。

虽然上面已经描述了本发明的各种实施例,但是应当理解的是,它们是作为示例而非限制来呈现的。实施例被选择和描述是为了解释本发明的原理及其实际应用。实施例说明了通过提供新的和/或改进的特征和/或提供诸如降低的资源利用、增加的容量、改进的效率和减少的延迟之类的益处来利用本发明改进系统和方法的性能的系统和方法。

在一些实施例中,本发明的特征全部或部分地在包括处理器、诸如存储器的存储介质和用于与其它计算机通信的网卡的计算机中实现。在一些实施例中,本发明的特征在分布式计算环境中实现,其中一个或多个计算机集群通过诸如局域网(lan)、交换机架构网络(例如,infiniband)或广域网(wan)之类的网络连接。分布式计算环境可以使所有计算机位于单个位置,或者在通过wan连接的不同远程地理位置处具有计算机集群。

在一些实施例中,本发明的特征全部或部分地在云中实现,作为基于使用web技术以自助服务、计量方式向用户递送的共享的弹性资源的云计算系统的一部分或作为其服务。存在云的五个特征(由国家标准与技术研究院定义:按需自助服务;广泛的网络接入;资源池化;快速弹性;以及测量服务)。参见例如“thenistdefinitionofcloudcomputing”specialpublication800-145(2011),其通过引用并入本文。云部署模型包括:公共、私有和混合。云服务模型包括软件即服务(saas)、平台即服务(paas)、数据库作为服务(dbaas)和基础设施即服务(iaas)。如本文所使用的,云是硬件、软件、网络和web技术的组合,其以自助服务、计量方式向用户递送共享的弹性资源。除非另有说明,否则如本文所使用的,云包括公共云、私有云和混合云实施例,以及所有云部署模型,包括但不限于云saas、云dbaas,云paas和云iaas。

在一些实施例中,使用硬件、软件、固件或其组合的辅助来实现本发明的特征。在一些实施例中,使用被配置或编程为执行本发明的一个或多个功能的处理器来实现本发明的特征。在一些实施例中,处理器是被设计为执行本文描述的功能的单芯片或多芯片处理器、数字信号处理器(dsp)、片上系统(soc)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑设备、状态机、离散门或晶体管逻辑、分立硬件部件或其任意组合。在一些实现方式中,本发明的特征可以由特定于给定功能的电路实现。在其他实现方式中,特征可以在处理器中实现,该处理器被配置为使用例如存储在计算机可读存储介质上的指令来执行。

在一些实施例中,本发明的特征结合在软件和/或固件中,用于控制处理和/或联网系统的硬件,并且用于使处理器和/或网络能够利用本发明的特征与其它系统交互。这种软件或固件可以包括但不限于应用代码、设备驱动器、操作系统、虚拟机、管理程序、应用编程接口、编程语言和执行环境/容器。基于本公开的教导,适当的软编码件可以由熟练的程序员容易地准备,这对于软件领域的技术人员来说是清楚的。

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

前面的描述并非旨在是详尽的或将本发明限制于所公开的精确形式。此外,在使用特定系列的事务和步骤描述了本发明的实施例的情况下,本领域技术人员应当清楚的是,本发明的范围不限于所描述的事务和步骤系列。另外,在已经使用硬件和软件的特定组合描述了本发明的实施例的情况下,应当认识到的是,硬件和软件的其它组合也在本发明的范围内。另外,虽然各种实施例描述了本发明的特征的特定组合,但是应当理解的是,相关领域的技术人员将清楚的是,特征的不同组合在本发明的范围内,使得一个实施例的特征可以结合到另一实施例中。而且,相关领域的技术人员将清楚的是,在不脱离本发明的精神和范围的情况下,可以在形式、细节、实现和应用中进行各种添加、减少、删除、变化以及其它修改和改变。本发明的更广泛的精神和范围旨在由以下权利要求及其等同物限定。

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