用于在高性能计算环境中使构架级组成员资格与子网级分区成员资格相关的系统和方法与流程

文档序号:14036414阅读:440来源:国知局
用于在高性能计算环境中使构架级组成员资格与子网级分区成员资格相关的系统和方法与流程

版权声明

本专利文档公开内容的一部分包含受版权保护

的素材。版权拥有者不反对任何人对专利文档

或专利公开内容按照在专利商标局的专利文件

或记录中出现的那样进行传真复制,但是除此

之外在任何情况下都保留所有版权权利。

本发明一般而言涉及计算机系统,并且具体涉及支持子网级和构架级管理方案(scheme)之间的相关。



背景技术:

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



技术实现要素:

本文描述的是用于在高性能计算环境中使构架(fabric)级组成员资格与子网级分区成员资格相关的系统和方法。示例性实施例可以在与网络环境的构架级的资源域相关联的网络环境的子网中提供管理分区。管理分区可以由存储在构架级数据库中的p_key(p键)定义。每个构架资源由存储在构架级数据库中的标识符识别。当构架资源作为成员被添加到资源域时,在p_key和构架资源的标识符之间创建关系,其中该关系将资源定义为管理分区的成员。访问权限可以基于该关系被授予。

附图说明

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

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

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

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

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

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

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

图8示出了根据实施例的具有动态lid指派的示例性vswitch架构。

图9示出了根据实施例的具有具有动态lid指派和预填充的lid的vswitch的示例性vswitch架构。

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

图11示出了根据实施例的资源域的分层结构。

图12示出了根据实施例的、具有管理分区和数据分区二者的示例性网络构架。

图13示出了根据实施例的、用于存储管理分区关联信息的示例性数据存储库。

图14是根据实施例的、绘出末端端口动态请求和接收数据分区中的成员资格的示例性流程图。

图15a和图15b是根据实施例的用于动态指派分区中的成员资格的流程图。

图16示出了根据实施例的、具有作为管理分区的成员的hca和vhca的示例性网络构架。

图17示出了根据实施例的、具有资源域和管理分区二者的示例性网络构架。

图18是根据实施例的、用于将资源域成员资格与管理分区成员资格相关的流程图。

图19是根据实施例的、使用构架级数据库使资源组成员资格与管理分区成员资格相关的方法的详细流程图。

图20示出了根据实施例的、基于交换机连接性作为管理分区的成员的主机通道适配器。

图21是根据实施例的、用于基于交换机连接性将管理分区成员资格指派给主机通道适配器的流程图。

图22是根据实施例的、用于基于交换机连接性将管理分区成员资格指派给主机通道适配器的详细流程图。

具体实施方式

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

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

本文描述的是用于在高性能计算环境中将构架级组成员资格与子网级分区成员资格相关的系统和方法。

本发明的以下描述使用infinibandtm(ib)网络作为高性能网络的示例。贯穿以下描述,可以参考infinibandtm规范(也被不同地称为infiniband规范、ib规范或遗留ib规范)。这种参考被理解为指的是在http://www.inifinibandta.org上可获得的2015年3月发布的行业协会架构规范,卷1,版本1.3,其全部内容通过引用并入本文。对于本领域技术人员来说将明显的是,可以使用其它类型的高性能网络而没有限制。以下描述还使用胖树拓扑作为构架拓扑的示例。对于本领域技术人员来说将明显的是,可以使用其它类型的构架拓扑而没有限制。

infinibandtm

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

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

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

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

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

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

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

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

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

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

infinibandtm中的数据分区

根据实施例,ib网络可以支持分区作为用于提供共享网络构架的系统的逻辑组的隔离的安全机制。构架中的节点上的每个hca端口可以是一个或多个分区的成员。根据实施例,本公开提供了可以在ib子网内定义的两种类型的分区–数据分区(在下面的段落中详细讨论)和管理分区(在本公开中稍后详细讨论)。

数据分区成员资格由集中式分区管理器管理,集中式分区管理器可以是sm的一部分。sm可以将每个端口上的数据分区成员资格信息配置为16比特分区键(p_key)的表。sm还可以用数据分区实施表来配置交换机和路由器端口,该数据分区实施表包含与通过这些端口发送或接收数据业务(traffic)的端节点相关联的p_key信息。此外,在一般情况下,交换机端口的数据分区成员资格可以表示与在出口(朝链路)方向经由端口路由的lid间接相关联的所有成员资格的联合。

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

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

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

infinibandtm中的虚拟机

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

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

用于将ib设备连接到vm的传统方法是通过利用具有直接指派的sr-iov。但是,使用sr-iov实现被指派有ib主机通道适配器(hca)的vm的实时迁移已被证明是有挑战性的。每个ib连接的节点具有三个不同的地址:lid、guid和gid。当发生实时迁移时,这些地址中的一个或多个改变。与迁移中的vm通信的其它节点可能丢失连接。当发生这种情况时,通过向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地址而形成gid。

胖树(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时,会出现问题。由于节点按索引的次序进行路由,因此这种行为可能导致链路上的平衡降级。由于路由可以在不考虑数据分区的情况下执行,因此,一般而言,胖树路由的子网提供数据分区之间的较差隔离。

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

k-ary-n-tree是具有各自具有2k个端口的kn个端节点和n·kn-1个交换机的n级胖树。每个交换机在树中具有相同数量的向上连接和向下连接。xgft胖树通过允许交换机的向上连接和向下连接数量不同以及在树中每个级别的连接的数量不同来扩展k-ary-n-tree。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之间没有设备共享。直接指派或设备直通以最小的开销提供接近本地的(native)性能。物理设备绕过管理程序并且直接附连到vm。但是,这种直接设备指派的缺点是有限的可伸缩性,因为在虚拟机之间不存在共享—一个物理网卡与一个vm耦合。

根据实施例,单根iov(sr-iov)可以允许物理设备通过硬件虚拟化而表现为相同设备的多个独立的轻量级实例。这些实例可以被指派给vm作为直通设备,并且可以作为虚拟功能(vf)被访问。管理程序通过(每设备)唯一的、全特征的物理功能(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将在目的地处被附连。在infinibandtm和sr-iov的情况下,该过程可以引入在秒的数量级上的停机时间。此外,在sr-iov共享端口模型中,在迁移之后,vm的地址将改变,从而导致sm中的附加开销并且对底层网络构架的性能产生负面影响。

infinibandtmsr-iov架构–共享端口

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

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

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

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

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

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

infinibandtmsr-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的数量,反之亦然。

infinibandtmsr-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。

infinibandtmsr-iov架构模型-具有预填充lid的vswitch

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

图7示出了根据实施例的具有预填充的lid的示例性vswitch架构。如图所示,多个交换机501-504可以在网络交换环境600(例如,ib子网)内提供在构架(诸如infinibandtm构架)的成员之间的通信。构架可以包括多个硬件设备,诸如主机通道适配器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预填充。当网络启动时,在启用sr-iovvswitch的子网中lid被预填充。即使当并非所有的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)的特征来提供朝着一个物理机器的可替代路径,而不受要求lid必须是连续的lmc的限制的约束。当需要迁移vm并将其相关联的lid携带到目的地时,能够自由使用非连续的lid尤其有用。

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

infinibandtmsr-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不一定是连续的(sequential)。当将具有预填充的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增加了对于灾难恢复和分段网络优化的灵活性。

infinibandtmsr-iov架构模型-具有动态lid指派和预填充lid的vswitch

图9示出了根据实施例的具有动态lid指派和预填充的lid的vswitch的示例性vswitch架构。如图所示,多个交换机501-504可以在网络交换环境800(例如,ib子网)内提供构架(诸如infinibandtm构架)的成员之间的通信。构架可以包括多个硬件设备,诸如主机通道适配器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被预填充,而虚拟功能2和3、525和526使它们的lid被动态指派(即,虚拟功能2525可用于动态lid指派,并且由于虚拟机3552被附连,因此虚拟功能3526具有动态指派的lid11)。最后,与管理程序3531相关联的功能(物理功能和虚拟功能)可以使它们的lid被动态指派。这使得虚拟功能1和3、534和536可用于动态lid指派,而虚拟功能2535由于虚拟机4553被附连于此所以具有动态指派的lid9。

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

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

infinibandtm–子网间通信

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

图10示出了根据实施例的示例性多子网infinibandtm构架。如图中所描绘的,在子网a1000内,多个交换机1001-1004可以提供诸如infinibandtm构架之类的构架的成员之间的在子网a1000(例如,ib子网)内的通信。构架可以包括多个硬件设备,诸如像通道适配器1010。主机通道适配器1010又可以与管理程序1011交互。管理程序又可以与它所交互的主机通道适配器结合设置多个虚拟功能1014。管理程序还可以将虚拟机指派给虚拟功能中的每个虚拟功能,诸如将虚拟机11015指派给虚拟功能11014。管理程序可以通过主机通道适配器中的每个主机通道适配器上全特征的(full-featured)物理功能(诸如物理功能1013)来访问其相关联的主机通道适配器。

进一步参考图10,并且根据实施例,多个交换机1021-1024可以提供诸如infinibandtm构架之类的构架的成员之间的在子网b1040(例如,ib子网)内的通信。构架可以包括多个硬件设备,诸如像主机通道适配器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),然后该路由器可以经由它与路由器1006的链路将业务传递到子网b。

构架管理器

如上面所讨论的,网络构架(诸如infinibandtm构架)可以通过在构架的每个子网中使用互连路由器而跨越多个子网。根据实施例,构架管理器(未示出)可以在作为网络构架的成员的主机上实现,并且可以在构架内被用来管理作为构架的一部分的物理资源和逻辑资源二者。例如,管理任务(诸如发现构架资源、控制物理服务器之间的连接性、收集和查看实时网络统计信息、灾难恢复以及设置服务质量(qos)设置等)可以由用户通过构架管理器来执行。根据实施例,构架管理器可以跨越构架中定义的所有子网。即,无论资源是哪个子网的成员,构架管理器都可以整体地(atlarge)管理作为该构架的成员或与该构架相关联的物理资源和逻辑资源。

根据实施例,构架管理器可以包括用户可以通过其执行管理功能的图形用户界面(gui)。构架管理器gui可以结合允许用户监视和控制构架资源的可视化工具。例如,在实施例中,用户可以通过构架界面来查看用于跨构架的服务器的服务器连接、配置设置和性能统计信息。可以通过构架管理器gui监视和/或管理的构架功能的其它示例包括发现子网间构架拓扑、查看这些拓扑的可视表示、创建构架简档(例如,虚拟机构架简档)以及构建和管理构架管理器数据库,该构架管理器数据库可以存储构架简档、元数据、配置设置以及网络构架需要并且与网络构架相关的其它数据。根据实施例,构架管理器数据库是构架级数据库。

此外,构架管理器可以在哪些子网被允许使用哪些分区号经由哪些路由器端口进行通信的方面来定义合法的子网间连接性。根据实施例,构架管理器是集中式构架管理实用程序。上面的示例并不意味着进行限制。

根据实施例,构架管理器的功能中的一些功能可以由用户发起,而其它功能可以从用户抽象化,或者被自动化(例如,一些功能可以由构架管理器在启动时或在其它预定事件时执行)。

在管理事件的示例性实施例中,用户可以在构架管理器接口处发起针对网络构架设备的配置改变。在接收到配置改变请求之后,构架管理器又可以确保配置改变请求被适当地执行。例如,构架管理器可以将请求传送到设备并且确保配置改变被写入设备的配置。在一个实施例中,物理设备向构架管理器确认配置改变已经成功完成。根据实施例,构架管理器然后可以更新接口,以给出请求已经被执行的可视确认。另外,构架管理器可以将设备的配置持久化(persist)到构架管理器数据库,例如以用于灾难恢复或其它目的。

根据实施例,构架管理器可以具有其它接口,诸如包括与gui相比的一些、全部或更多功能的命令行接口。

构架级资源域

如上面所讨论的,构架管理器可以允许用户通过构架管理器的接口在整个网络构架中执行管理任务。根据实施例,构架管理器的附加功能是促进分层的基于角色的访问控制。在实施例中,基于角色的访问控制通过构架级资源域来实现。

根据实施例,基于角色的访问控制基于构架用户的概念。来自人类管理员和外部管理应用二者的访问可以表示经认证的上下文,该经认证的上下文定义对于构架基础设施或构架资源的全部或子集的合法操作。例如,用户可以在构架中通过用户简档表示。即,在构架内,可以通过创建用户的简档并且向简档指派属性来定义用户。可以向用户简档指派用户名属性和密码属性,其中用户名在构架内是唯一的,由此唯一地识别用户。另外,用户简档可以与在构架中定义的某些角色相关联,这些角色将某些访问级别指派给构架内的不同资源。根据实施例,建立用户简档可以通过构架管理器接口来完成。用户简档的全部或部分可以被存储在构架管理器数据库中。此外,在实施例中,构架管理器可以与公知的用户目录(诸如的活动目录或ldap目录)或者与例如用于远程认证的radius联网协议集成。

根据实施例,构架管理器可以管理它通过构架级资源域(在本文中还被称为“资源域”或简称为“域”)发现的构架资源。资源域是在构架级定义的构架资源的逻辑分组。构架资源包括物理资源和逻辑资源二者。资源的一些示例包括构架设备(诸如hca、物理节点和交换机)、构架简档(诸如虚拟机构架简档和用户简档)、虚拟机、云和i/o模块,等等。

根据实施例,由构架管理器发现和管理的所有构架资源都驻留在构架中缺省存在(即,不需要设置或配置它)的缺省域中,并且可以通过构架管理器接口来访问。缺省域是最高级别的域–即,它是所有其它资源域的父域,并且所有其它资源域都存在于缺省域内。缺省域与构架级管理员(构架级管理员也是缺省存在的)相关联,并且在缺省域中被缺省地配置有管理特权。

根据实施例,资源域表示资源管理的分层形式。例如,配置和管理缺省域的过程仅对构架级管理员可用。但是,可以由构架级管理员在缺省域内创建孩子域。例如,构架级管理员可以创建孩子域并且可以向孩子域添加域资源。此外,构架级管理员可以创建域级“域管理”用户并且将域管理用户添加(即,关联)到孩子域。使域管理用户成为资源域的成员允许域管理用户管理孩子域以及构架资源的孩子域所包含的子集。根据实施例,域管理用户不能管理孩子域以外的资源(即,处于与域管理用户所关联的级别平行的级别或比域管理用户所关联的级别高的级别的资源)。但是,域管理用户(admin)可以管理资源域中所包含的已被创建为资源域的孩子域的资源。根据实施例,构架管理器负责提供确保资源域边界被严格实施的安全性。

图11示出了资源域的分层结构。如图所示,缺省域1102存在于网络构架1100内。构架级管理员1110具有管理构架级资源1112、1124和1134的访问权限。构架级管理员1110还可以在缺省域1102内创建和管理新的资源域。构架级管理员1110已经创建了资源域1120和1130以及对应的域级域管理用户1122和1132。域管理用户1122具有管理(由构架级管理员1110指派给资源域1120的)构架资源1124的访问权限,但是没有管理(在更高级别的)构架资源1112或(在平行级别的)域资源1134的访问权限。类似地,域管理用户1132具有管理(由构架级管理员1110指派给资源域1130的)构架资源1134的访问权限,但是没有管理(在更高级别的)构架资源1112或(在平行级别的)域资源1124的访问权限。

管理分区

根据实施例,资源域可以由管理分区或“管理(admin)”分区(如它们在本文中被称作的)在子网级别表示。管理分区表示授予在子网级别对子网资源的访问权限的组成员资格。根据实施例,管理分区的成员被认为是有特权的,因为这些成员具有对与该管理分区相关联的任何子网资源的访问权限。在构架管理器级别,管理分区与资源域和对应的域管理用户相关联。因此,可以在子网级别在多租户环境中确保用户角色分离。此外,资源域成员资格可以与管理分区成员资格相关,以使得作为与特定资源域相关联的管理分区的成员的资源也是资源域的成员。

根据实施例,可以按与定义数据分区相同的方式在子网级别定义管理分区,但是管理分区还具有指定正在被创建的分区是管理分区的附加属性。像(上面详细讨论的)数据分区一样,根据实施例,管理分区可以由管理员通过构架管理器接口来创建。在实施例中,构架管理器可以在创建分区期间支持作为可选参数的“管理分区”标记。如果该“管理分区”标记由创建管理员选择,那么构架管理器将包括指定新创建的分区是管理分区并且将被构架管理器和本地主子网管理器视为管理分区的附加属性。

根据实施例,构架管理器可以被配置为针对所创建的每个资源域自动创建对应的管理分区,并且将自动创建的分区与对应的资源域相关联。在这种实施例中,当将构架级资源添加到资源域时,构架管理器还将它们与被自动创建并且与资源域关联的管理分区相关联。因此,添加到资源域的资源在被添加到资源域之后将具有对彼此的子网级访问权限,而无需管理员(例如,构架级管理员或域管理用户)采取进一步行动。

此外,根据实施例,网络的整个子网可以表示域层次结构中的具有最高级域(例如,缺省域)的特殊资源域。例如,在缺省域表示最高级域的域层次结构中,网络构架的每个子网然后可以被构架管理器识别为缺省域的孩子域。将全部子网识别为最高级域的孩子域可以被配置为构架管理器的缺省行为,或者这些缺省域可以由管理员手动定义。在这里同样,为了在子网级别具有用户角色分离以及实施域边界和资源关联,可以定义与全部子网资源域对应的管理分区。根据实施例,在子网中定义并且包括该子网中的每个资源(作为管理分区的成员或者与管理分区相关联)的管理分区可以被称为“域全局”管理分区,因为在这种配置中,子网中的每个资源都将具有对每个其它资源的访问权限。

根据实施例,管理分区对于域管理用户可以是透明的。如上面所指出的,可以在构架管理器级别针对资源域自动创建域全局管理分区,并且然后指派给这个域或在这个域的范围内创建的所有资源都可以自动与对应的管理分区相关联。但是,在另一个实施例中,域管理用户可以在相关资源域内显式地创建不同的管理分区,并且然后域内的资源可以与显式地创建的管理分区显式地关联而不是与针对资源域缺省创建的管理分区相关联。

根据实施例,构架管理器可以支持共享管理分区和私有管理分区二者的创建。由构架级管理员在缺省域中创建的管理分区可以是对于各个资源域可用的共享分区。由域管理用户(即,具有与特定资源域相关联的凭证的用户)在该域管理用户是其中的成员的域中创建的管理分区可以是与特定资源域相关联并且仅对该特定资源域可用的私有分区,其中这些管理分区在该特定资源域的上下文中被创建。

根据实施例,hca和vhca的末端端口可以是管理分区的成员,就像它们可以是数据分区的成员一样。但是,根据实施例,管理分区与数据分区不同,因为管理分区可以与其它子网资源相关联。例如,数据分区可以与管理分区相关联。此外,根据实施例,管理分区可以(作为孩子或父亲)与另一个管理分区相关联,从而使得管理分区是分层的概念并且能够与它们所关联的资源域的层次结构对应。

作为技术问题,根据实施例,hca(和vhca)的末端端口可以以传统术语被称为分区的“成员”,并且其它资源可以与管理分区“关联”。下面解释这两个概念的技术差异。但是,为了方便和可读性,本文档可能偶尔会在提到管理分区时可互换地使用术语“成员”和“关联”。尽管这些术语的使用是可互换的,但应当理解的是,管理分区中的末端端口/hca成员资格与和管理分区的资源关联之间的技术差异意在由读者一致地应用。

根据实施例,管理分区由p_key定义,正如定义数据分区一样。然而,虽然末端端口知道它是其成员的数据分区,但是末端端口知道它们是哪些管理分区的成员是不必要的。因此,在一个实施例中,定义管理分区的p_key不被输入到成员末端端口的p_key表中。以这种方式,如果管理分区不用于ib分组业务,那么创建管理分区不会浪费p_key表条目,p_key表条目是有限的资源。但是,在另一个实施例中,管理分区可以充当管理分区和数据分区二者。在这种实施例中,作为管理分区的成员的末端端口的所有p_key表可以在它们各自的p_key表中具有用于管理分区的p_key条目。根据实施例,数据分区可以被定义为不同时是管理分区的任何分区。

管理分区到数据分区的关联

根据实施例,数据分区可以与一个或多个管理分区相关联。例如,由p_key值定义的数据分区可以与由管理分区自己的不同p_key值定义的管理分区相关联。此外,数据分区可以与由另一个不同的p_key值定义的第二管理分区相关联。根据实施例,数据分区与特定管理分区的关联可以定义用于作为该特定管理分区的成员的末端端口的最大成员资格级别。

如上面所指出的,管理分区表示授予对子网资源的访问权限的组成员资格。根据实施例,管理分区的任何末端端口成员仅基于该末端端口在管理分区中的成员资格而具有对与同一管理分区相关联的任何子网资源的访问权限。因此,作为管理分区的成员的任何末端端口都具有对与同一管理分区相关联的任何数据分区的访问权限。值得注意的是,这不一定意味着成员末端端口是相关联的数据分区的成员,而是意味着它具有对相关联的数据分区的访问权限并且因此可以是该数据分区的成员。

这种方案避免了需要管理员通过在末端端口的p_key表中手动包括数据分区的p_key来授予末端端口对例如数据分区的访问。在实施例中,当在子网中初始化末端端口时,主子网管理器可以查询保持管理分区定义(例如,p_key)以及定义所定义的管理分区中的成员资格并且定义与所定义的管理分区的关联的关系的数据存储库(例如,如下面所讨论的管理分区注册表),以确定末端端口是哪些管理分区的成员。然后,子网管理器还可以检查是否存在与末端端口是其成员的管理分区相关联的任何数据分区。如果sm发现1)末端端口是管理分区的成员,并且2)该管理分区与数据分区相关联,那么sm可以将相关联的数据分区的p_key自动放置在末端端口的p_key表中,从而向末端端口自动授予对数据分区的访问。因此,管理分区表示比管理员进行手动分区映射更简单、更有扩展性的解决方案。

图12示出了具有管理分区和数据分区二者的示例性网络构架。如图12所示,管理分区1230、1240和1250已经在构架内被定义。节点a-e1201-1205通过它们各自的hca1211-1215物理地连接到构架。此外,每个hca是至少一个管理分区的成员。hca1211和hca1214是管理分区1230的成员。hca1211以及hca1212和1213还是管理分区1240的成员。此外,hca1213以及hca1215是管理分区1250的成员。

进一步参考图12,并且根据实施例,数据分区1232、1242和1252已经在构架内被定义。数据分区1232与管理分区1230相关联,数据分区1242与管理分区1240相关联,并且数据分区1252与管理分区1250相关联。根据实施例,hca1211和hca1214基于它们在管理分区1230中的成员资格而具有对数据分区1232中的成员资格的访问权限。同样,hca1211-1213基于它们在管理分区1240中的成员资格而具有对数据分区1242中的成员资格的访问权限。此外,hca1213和1215基于它们在管理分区1250中的成员资格而具有对数据分区1252中的成员资格的访问权限。

根据实施例,子网管理器(例如,主子网管理器)可以访问存储的数据,该存储的数据定义1)子网中的哪些末端端口是该子网内定义的哪些管理分区的成员,以及2)在该子网内定义的哪些数据分区与在该子网内定义的哪些管理分区相关联。访问这种信息可以允许sm响应来自末端端口的、对数据分区中的成员资格的动态请求。末端端口(通过它的hca)来动态请求以及sm动态授予(或拒绝)数据分区中的末端端口成员资格的能力避免了需要管理员通过将数据分区的p_key手动包括在末端端口的p_key表中来显式授予末端端口对数据分区的访问。因此,管理开销显著降低。

如上面所指出的,sm可以访问定义的管理分区到数据分区的关联,并且可以访问定义管理分区内的末端端口成员资格的信息(总起来,这个信息在本文中有时将被称为“管理分区关联信息“)。根据实施例,管理分区关联信息可以被定义和持久化,以便促进sm访问管理分区关联信息。例如,如上面所讨论的,管理分区和数据分区由p_key在子网级别表示。对于由子网中的p_key定义的给定管理分区,可以存在将同样由子网中的p_key定义的一个或多个相应数据分区映射到给定管理分区的一个或多个关系。这个(管理分区)p_key到(数据分区)p_key的关系可以定义数据分区与给定管理分区的关联,并且该关系作为管理分区关联信息的组成部分被包括。

如上面所讨论的,管理分区关联信息还可以包括定义管理分区内的末端端口成员资格的信息。根据实施例,并且如前面所指出的,末端端口在子网级别由guid(或vguid,如果末端端口是vhca的末端端口的话–但是,根据实施例,guid和vguid的格式可以是完全相同的,并且因此对于sm可以看起来相同)表示。因此,根据实施例,管理分区中的末端端口成员资格可以在子网级别通过guid到管理分区p_key的关系来定义。

此外,并且根据实施例,定义管理分区到数据分区的关联的管理分区关联信息以及子网内的管理分区中的末端端口成员资格可以以允许sm访问存储在其中的信息的任何合适的格式被存储。例如,在示例性实施例中,p_key可以在使用分隔符来定义关系的平面文件中被映射到彼此。在另一个实施例中,可以以半结构化格式(诸如分层的xml格式)将p_key映射到彼此。在又一个示例性实施例中,可以使用完全结构化的格式(诸如关系数据库)将p_key映射到彼此。本领域技术人员将认识到的是,存在多种合适的方式来存储管理分区关联信息,以使得sm可以访问该信息,并且上面的示例并不意味着进行限制。

图13示出了根据实施例的、用于存储管理分区关联信息的示例性数据存储库1300。数据存储库1300被描绘为关系数据库图中的表,因为这些图示出了相关部件之间的关系。但是,图13意在说明管理分区关联信息之间的关系,而并不意味着进行限制。如上面所讨论的,任何合适的数据结构都可以提供本发明的实施例。事实上,示例性实施例可以包括跨构架以若干不同格式复制的管理分区关联信息,其中每种格式适合于并且服务于构架内的不同主要目的。

如图13所示,管理分区表1312可以包含定义子网内的管理分区的至少一个管理分区p_key1302。数据分区表1316可以包含定义子网内的数据分区的至少一个数据分区p_key1314。guid表1308可以包含表示子网中的末端端口的至少一个guid1320。所表示的末端端口可以是子网内的节点的hca(或vhca)的末端端口。例如,guid表1308可以包含将每个guid与特定hca相关联的hca实例id1322。hca实例id1322可以是相关联的特定hca的唯一id。

继续参考图13,管理分区_数据分区映射表1324用关系1352和关系1354来创建。管理分区_数据分区映射表1324可以允许sm(未示出)访问示出哪些管理分区p_key1302与哪些数据分区p_key1314相关联的数据。例如,子网管理器可以查询数据存储库1300,以返回与特定管理分区p_key1302相关联的每个数据分区p_key1314。类似地,sm可以针对特定数据分区p_key1314所关联的每个管理分区p_key1302来查询数据存储库1300。

进一步参考图13,管理分区_guid映射表1318用关系1356和关系1358来创建。管理分区_guid映射表1318可以允许sm(未示出)访问示出哪些管理分区p_key1302与哪些guid1320相关联的数据。由于guid可以表示子网中的hca的末端端口,因此sm可以使用该信息来确定给定的末端端口是否是给定管理分区的成员。例如,子网管理器可以查询数据存储库1300,以返回与特定guid1320相关的每个管理分区p_key1304(即,给定的guid是其“成员”的管理分区)。

根据实施例,管理分区关联信息可以包括比上面公开的数据更多、更少或不同的数据。此外,管理分区关联信息可以与其它信息相关,以便促进在整个构架中的不同操作。

如上面所指出的,管理分区关联信息可以按允许sm访问管理分区关联信息并且通过所存储的关系来确定成员和关联的任何格式来存储。例如,根据实施例,可以将管理分区关联信息存储在构架数据库中。保持管理分区关联信息的表可以是构架数据库的子集并且可以包括与图13中未示出的其它表的关系。根据另一个实施例,管理分区关联信息可以被存储在sm上的驻留存储器中(例如,存储在partition.conf文件中)。根据又一个实施例,管理分区关联信息数据存储库可以是保持在sm的易失性随机存取存储器(ram)中的高速缓存中的记录。将管理分区关联信息数据存储库保持在ram中具有查找时间快以及因此对sm和构架基础设施施加的开销较少的优点。在sm启动时,sm可以将管理分区关联信息从例如构架数据库或partition.conf文件读入ram中。任何更新都可以被写回构架数据库或partition.conf文件,以进行持久化。此外,可以为了灾难恢复的目的而备份构架数据库或partition.conf文件。

图14是根据实施例的、绘出末端端口动态请求和接收数据分区中的成员资格的示例性流程图。

在步骤1402,并且附加地参考图12和图13,末端端口1214将包括它所关联的guid1320的请求发送到子网管理器1202,以获得数据分区1232中的成员资格。

在步骤1404,sm1202接收该请求并针对guid1320是其成员的每个管理分区p_key1302来查询数据存储库1300。

在步骤1406,sm1202从数据存储库1300接收末端端口1214的guid1320是其成员的管理分区p_key1302的列表。

在步骤1408,sm1202基于从数据存储库1300返回的列表来确定guid1320是否是任何管理分区的成员。如果列表是空的(或空值)(即,如果末端端口1214不是任何管理分区的成员),那么过程继续到在步骤1410结束,这是因为末端端口1214不具有由于管理分区中的成员资格而对任何数据分区的固有访问权限。但是,如果列表具有至少一个条目,那么过程前进到步骤1412。

在步骤1412,sm1202向数据存储库1300查询与在步骤1406中返回的任何管理分区p_key相关联的数据分区p_key的列表。

在步骤1214,sm1202接收与在步骤1406中返回的任何管理分区p_key相关联的数据分区p_key的列表。

在步骤1416,sm确定表示数据分区1232(在步骤1402处末端端口1214请求其中的成员资格的数据分区)的p_key是否被包括在返回的列表中。如果用于数据分区1232的p_key未被包括在列表中,那么过程前进到步骤1418,并且结束。但是,如果表示数据分区1232的p_key被包括在列表中,那么过程前进到步骤1420。

在步骤1420,子网管理器将表示数据分区1232的返回的p_key存储在末端端口1214的p_key表中,由此使末端端口1214成为数据分区1232的成员。然后过程结束。

图14绘出了sm在步骤1404和1412处向数据存储库做出两个请求。但是,这个描绘意在说明如下信息:子网管理器可以使用该信息来确定1)末端端口是否是任何管理分区的成员,并且如果是的话,2)末端端口是其成员的管理分区是否具有与它相关联的所请求的数据分区。应当理解的是,由sm向数据存储库对该信息的请求可以在数据存储库的单个查询中或数据存储库的多个查询中产生,并且图14不意图在这方面进行限制性。

根据实施例,数据分区和管理分区二者都可以由符号名称来表示。返回参考图13,数据分区符号名称1306和管理分区符号名称1304可以被包括在管理分区关联信息中。包括被映射到管理分区或数据分区的p_key的符号名称可以允许hca通过使用符号名称来请求数据分区的设置。允许hca使用符号名称作为分区的主机堆栈/hca处理的基础的关键好处是在子网级别表示管理分区或数据分区并且被映射到分区的符号名称的p_key值可以在运行时被指派和/或可以在不同的系统配置中被改变。

例如,并且根据实施例,构架主机可以被初始化,并且作为初始化过程的一部分,hca可以向分区的sm发送对数据分区中的成员资格的请求。对成员资格的请求可以是针对与hca相关联的物理末端端口或(vhca的)虚拟末端端口。驱动初始化的配置可以指定hca正在请求针对其的成员资格的数据分区的符号名称,而不是数据分区的p_key。在这种情况下,将表示数据分区的实际p_key可能还没有在子网中生成(例如,数据分区p_key1314字段在请求时可以是空的或是空值)。sm可以在请求时生成p_key,并使用生成的p_key来填充管理分区关联信息。此外,表示分区的p_key可以动态改变,而不需要在主机级别的重新配置。例如,在现有的p_key值可能必须被改变(例如,以避免重复)的构架级别的子网合并或构架的其它侵入性重新构建的情况下,sm可以仅向管理分区关联信息指派新的p_key值。然后可以通过查询管理分区关联信息数据存储库来确定哪些主机应当接收更新的p_key而将这些新的p_key推送到主机。

根据实施例,用于指定数据分区的符号名称没必要在整个构架中或者甚至在整个子网中是唯一的。符号名称相对于任何给定的hca是其成员的所有管理分区的集合是唯一的就足够了,即,符号名称只能与hca或末端端口是其成员的所有管理分区所关联的数据分区集合内的单个数据分区相关联。以这种方式,作为不同管理分区的成员的被类似配置的节点(即,被配置为使用相同的符号分区名称来请求数据分区成员资格的节点)可以使用相同的定义良好的符号名称来请求数据分区中的成员资格,但是到实际数据分区p_key值的映射将依据管理分区和符号名称二者被定义。因此,各个节点可以在它们将请求哪个数据分区符号名称中的成员资格方面具有相同的基本配置,但是每个末端节点或hca的管理分区关联将确定这些名称实际映射到哪些数据分区。

图15a和图15b是根据实施例的、用于动态指派分区中的成员资格的流程图。

在步骤1512,在子网内提供子网管理器,其中子网管理器被配置为在网络构架的子网内操作,子网包括多个节点,并且该多个节点包括至少一个交换机以及多个末端节点,并且其中子网管理器在该多个节点中的一个节点上执行。

在步骤1514,在构架内提供数据存储库,其中该数据存储库可由子网管理器访问。

在步骤1516,数据存储库被配置为保持识别第一分区的第一p_key、识别第二分区的第二p_key以及子网唯一的末端端口标识符。

在步骤1518,数据存储库还被配置为维护第一p_key和第二p_key之间的第一关系以及第一p_key和子网唯一的末端端口标识符之间的第二关系。

在步骤1520,子网管理器从多个末端节点中的发出请求的末端节点的主机通道适配器(hca)接收对于发出请求的节点的hca的末端端口在第二分区中的成员资格的请求,其中该请求包括第二分区的标识符和子网唯一的末端端口标识符,并且其中hca的末端端口在子网中由子网唯一的末端端口标识符唯一地识别。

在步骤1522,子网管理器从数据存储库请求与子网唯一的末端端口标识符相关的p_key的第一列表。

在步骤1524,子网管理器从数据存储库接收第一p_key。

在步骤1526,子网管理器从数据存储库请求与第一p_key相关的p_key的第二列表。

在步骤1528,子网管理器从数据存储库接收第二p_key。

在步骤1530,子网管理器用第二p_key来填充hca的末端端口的p_key表。

管理分区到hca的关联

根据实施例,还可以使用管理分区来确定是否可以向物理hca的虚拟功能注册vhca。根据实施例,vhca描述针对具体虚拟机(vm)计划并且配置的主机通道适配器。vhca与虚拟功能(vf)的不同之处在于,vhca与vm一起迁移,而vf则与物理适配器留在一起。但是,如上面所讨论的,物理hca和vhca(以及在较低级别上,这些(v)hca的末端端口)都可以是管理分区的成员。因此,根据实施例,管理分区成员资格可以由sm用来确定来自物理hca的、向发出请求的物理hca的虚拟功能注册vhca的请求是否是许可的。

图16示出了根据实施例的、具有作为管理分区的成员的hca和vhca的示例性网络构架。如图16所示,子网1602是网络构架1600的一部分。hca1610、1624、1632和1644表示在子网1602中通过它们各自的末端端口物理地连接到网络构架1600的物理hca。hca1610与物理功能(pf)1612以及虚拟功能(vf)1614和1616相关联。hca1624与pf1626以及vf1628和1629相关联。hca1632与pf1634以及vf1636和1638相关联。hca1644与pf1646以及vf1648和1649相关联。此外,vhca1620被描绘为向vf1614注册,并且与虚拟机(vm)1618相关联(即,vm1618通过vhca1620并且最终通过物理hca1610获得对网络构架1600的访问)。vhca1640向vf1637注册,并且与vm1638相关联。

继续参考图16,如图所示,hca1610和1624以及vhca1620是管理分区1650的成员。此外,hca1632和1644以及vhca1640是管理分区1660的成员。因此,由于hca1610和1624以及vhca1620各自是管理分区1650的成员的事实,因此vhca1620可以合法地向hca1610的vf1614或1616或者向hca1624的vf1628或1629注册。类似地,由于hca1632和1624以及vhca1640各自是管理分区1660的成员的事实,因此vhca1640可以合法地向hca1630的vf1636或1638或者向hca1644的vf1648或1649注册。

如上面所指出的,构架级构架数据库保持与构架和构架资源相关的信息,并且由构架管理器管理。根据实施例,构架数据库可以具有对构架资源清单的“完整知识”(即,作为网络构架的一部分的每个资源至少由保持在构架数据库中的记录来表示)。此外,与构架中的每个资源相关联的访问权限和名称空间可以被存储在构架数据库中,或者从包含在构架数据库中的信息和关系中导出。

例如,根据实施例,与管理分区成员资格和/或与管理分区的资源关联有关的信息可以被存储在构架数据库中。保持这种信息的表以及将这些表链接在一起的关系可以是构架数据库的子集,并且可以被称为管理分区注册表。根据实施例,管理分区注册表是管理分区组资源的集合。例如,管理分区注册表内的管理分区组可以是特定管理分区的相关联资源和hca成员(包括vhca)的集合,其中该组由定义该特定管理分区的p_key来查找。此外,管理分区组成员和相关联的资源可以在注册表中使用键(诸如分别用于成员hca或vhca的guid或vguid或者用于相关联的数据分区的p_key)来查找。管理分区的p_key与成员或相关联资源的唯一标识符之间的关系分别定义管理分区中的成员资格或关联,并且由管理分区注册表维护并且在更高级别由构架数据库维护。

根据实施例,管理分区注册表的全部或部分可以作为记录被保持在sm的高速缓存中。例如,管理分区注册表的与特定子网的资源对应的记录可以在特定子网的子网管理器(例如,主子网管理器)的驻留存储器中的高速缓存中被复制。管理分区注册表记录可以(例如,当sm启动时)由sm从构架数据库检索(即,复制),或者在它被持久化到构架数据库之前被放置在高速缓存中。高速缓存可以是易失性或非易失性存储器。无论何时将注册表记录放置在高速缓存中,都可以在管理分区注册表的被高速缓存的副本与在构架级数据库中找到的管理分区注册表副本之间进行同步。

通过将管理分区注册表的全部或子网相关部分保持在sm上的高速度的高速缓存中,而不是在每次接收到查询时从持久化状态(即,从构架数据库)中检索管理分区信息,管理分区信息的查找可以对sm施加最小的开销。这在子网资源之间的访问权限被自动指派的子网初始化期间会是尤其重要的。

根据实施例,可以(例如,由构架级别或域级别的管理用户)将逻辑名称或标识符指派给资源域内的资源。这些逻辑名称可以是资源域私有的。构架管理器可以通过构架数据库创建将构架内使用的唯一标识符(例如,vguid和p_key)映射到给予构架内的资源的逻辑名称或符号名称的关系。

例如,根据实施例,构架数据库可以存储资源的记录、以及资源的域成员资格和/或管理分区成员资格。在构架管理器发现资源后,可以将逻辑名称指派给资源。这些名称可以被链接到构架数据库中的构架资源的唯一标识符。此外,构架管理器可以通过构架管理器数据库中的关系来跟踪每个资源在资源域和管理分区中的成员资格。利用这些记录和关系,构架管理器可以允许跨不同资源域和管理分区的相同的(like)逻辑名称。根据实施例,逻辑域名称方案可以反映特定域资源是其成员的一个或多个资源域的层次结构。在这种实施例中,逻辑资源名称对于资源是其成员的最高级别资源域而言可以是唯一的。

根据实施例,构架中的资源的标识符(无论该标识符是什么)在管理分区的范围内可以是唯一的。然后,可以通过在资源名称前加上对应的管理分区来实现全局唯一性(即,在构架级别的唯一性)。

图17示出了根据实施例的、具有资源域和管理分区二者的示例性网络构架。如图17所示,构架管理器1702在网络构架1700上执行。根据实施例,构架管理器1702可以从网络构架1700的节点(未示出)执行。构架管理器1702由构架级别的管理员1704管理,并且包括构架管理器数据库1714。管理分区注册表1716是构架管理器数据库1714的一部分,逻辑名称表1718也是构架管理器数据库1714的一部分。

继续参考图17,在网络构架1700内定义子网1720。子网管理器1722与子网1720相关联,并且根据实施例执行子网1720为了在网络构架1700中操作所需的语义运行时操作。子网1720所需的设置和管理任务可以由构架级管理员1704和构架管理器1702执行。

节点1744、1754、1774和1784是子网1720的一部分。hca1746与节点1744相关联,并且包括pf1748以及vf1750和1752。类似地,hca1756与节点1754相关联,并且包括pf1758以及vf1760和1762。hca1776与节点1774相关联,并且包括pf1778以及vf1780和1782。此外,hca1786与节点1784相关联,并且包括pf1788以及vf1790和1792。vm1740在节点1744上执行,并且vm1770在节点1774上执行。vhca1742已经针对vm1740被计划和配置、与vm1740相关联并且向hca1746的虚拟功能1752注册。vhca1772已经针对vm1770被计划和配置、与vm1770相关联并且向hca1776的虚拟功能1782注册。

根据实施例,hca1746、1756、1776和1786被视为域资源,并且每个hca的记录被存储在构架管理器数据库1714中。记录可以包括用于识别构架中的hca资源的标识符,诸如guid。另外,vhca1742和1772还被视为域资源,并且每个vhca的记录被存储在构架管理器数据库1714中。记录可以包括用于识别vhca的标识符,诸如guid。

进一步参考图17,并且根据实施例,在构架管理器1702内已经创建了资源域1710和资源域1712。根据实施例,构架级管理员1704负责创建资源域1710和资源域1712。此外,域管理员1706是与资源域1710相关联的域级管理员。类似地,域管理员1708是与资源域1712相关联的域级管理员。根据实施例,构架级管理员1704可以创建域管理员1706和1708以作为它们相应的资源域的管理员,从而遵守资源域的分层性质。

根据实施例,管理分区1724和管理分区1726已经在子网1720中定义。管理分区1724与资源域1710相关联,并且管理分区1726与资源域1712相关联。

如图17所示,vhca1742以及hca1746和1756是资源域1710的成员。根据实施例,因为管理分区1724与资源域1710相关联,所以当vhca1742以及hca1746和1756作为资源域1710的成员被添加时,它们还成为管理分区1724的成员,并且在管理分区注册表1716中创建在定义管理分区1724的p_key与hca1746和1756以及vhca1742的标识符之间的关系。根据实施例,这种关系将hca1746和1756以及vhca1742定义为管理分区1724的成员。

同样,vhca1772以及hca1776和1786是资源域1712的成员。根据实施例,因为管理分区1726与资源域1710相关联,所以,当vhca1772以及hca1766和1786作为资源域1712的成员被添加时,它们还成为管理分区1726的成员,并且在管理分区注册表1716中在定义管理分区1726的p_key与hca1776和1786以及vhca1772的标识符之间创建关系。根据实施例,这个关系将hca1776和1786以及vhca1772定义为管理分区1726的成员。

如上面所指出的,根据实施例,vm1740(包括vhca1742)、节点1744(包括hca1746)和节点1754(包括hca1756)是资源域1710的成员。在本发明的实施例中,构架级管理员1704负责将节点1744和节点1754添加到资源域1710。例如,构架级管理员1704可以通过构架管理器1702的接口将节点1744和1754添加到资源域1710。一旦构架级管理员1704已经将节点1744和1754添加到资源域1710,域管理员1706就可以对节点1744和1754执行管理任务。但是,为了与资源域的分层方案保持一致,域管理员1706不能在节点1744和1754被添加到资源域1710之前(即,当它们是更高级别的缺省域(未示出)的成员时)对节点1744和1754执行管理任务。此外,根据实施例,域管理员1708不能对节点1744和1754执行管理任务,因为节点1744和1754是域管理员1708未关联的平行级资源域的成员。

继续参考图17,并且根据实施例,在子网1720内已经定义了管理分区1724和1726。为了与资源域的分层方案保持一致,在一个实施例中,管理分区1724和1726由构架级管理员1704定义。在另一个实施例中,域管理用户1706定义管理分区1724,并且域管理用户1708定义管理分区1726。根据实施例,管理分区1724与资源域1710相关联,并且管理分区1726与资源域1712相关联。如上面所讨论的,根据实施例,管理分区1724和1726分别表示在子网级别的资源域1710和1712。除了与它们各自的资源域相关联之外,管理分区1724和1726还分别与域管理用户1706和1708(即,管理分区中的每个管理分区所关联的资源域的对应管理用户)相关联。如上面所指出的,根据实施例,管理分区和域级管理用户之间的这种关联可以确保在多租户环境中的子网级别的用户-角色分离。

根据实施例,数据分区1728和1730已经在子网1720中被定义。为了与资源域的分层方案保持一致,在一个实施例中,数据分区1728和1730由构架级管理员1704定义。在另一个实施例中,域管理用户1706定义数据分区1728,并且域管理用户1708定义数据分区1730。如图17中所示,数据分区1728与管理分区1724相关联,并且数据分区1730与管理分区1726相关联。此外,如上面所指出并在图17中所示的,hca1746和1756以及vhca1742是管理分区1724的成员。因此,根据实施例,hca1746和1756以及vhca1742具有对数据分区1728的访问许可,因为它们是数据分区1728所关联的管理分区(即,管理分区1724)的成员。

根据实施例,当数据分区1728与管理分区1724相关联时,数据分区1728的标识符(例如,数据分区1728的p_key)与管理分区1724的p_key之间的关系在管理分区注册表1716中被创建。这种关系将数据分区1728定义为与管理分区1724相关联。类似地,当数据分区1730与管理分区1726相关联时,数据分区1730的标识符(例如,数据分区1730的p_key)与管理分区1726的p_key之间的关系在管理分区注册表1716中被创建。这种关系将数据分区1730定义为与管理分区1726相关联。

根据实施例,如果从hca1746和1756中的任一个或vhca1742接收到加入数据分区1728的请求,那么sm1722可以检查管理分区注册表1716,并且发现hca1746和1756以及vhca1742是管理分区1724的成员并且数据分区1728与管理分区1724相关联。然后,sm1722可以基于hca1746和1756以及vhca1742是管理分区1724的成员并且数据分区1728与管理分区1724相关联来允许hca1746和1756以及vhca1742成为数据分区1728的成员。不需要来自构架级管理员1704或域级管理员1706的手动映射来允许hca1746和1756以及vhca1742加入数据分区1728。

此外,因为hca1746和1756以及vhca1742是管理分区1724的成员,所以vhca1742可以向hca1746的vf1752或1750中的任一个或者hca1756的vf1762或1760中的任一个注册(vhca1742被描绘为向vf1752注册)。这里同样,sm1722可以检查管理分区注册表1716,并且发现hca1746和1756以及vhca1742是管理分区1724的成员。一旦发现hca1746和1756以及vhca1742是管理分区1724的成员,sm1722就可以允许vhca1742向vf1752、1750、1762和1760中的任何vf注册,而无需来自任何构架用户的干预。

图18是根据实施例的、用于使资源域成员资格与管理分区成员资格相关的流程图。

在步骤1810,在网络构架内创建资源域。

在步骤1820,在网络构架的子网内创建管理分区。

在步骤1830,资源域与管理分区相关联。

在步骤1840,将构架资源作为资源域的成员添加到资源域,并且构架管理器通过使资源域的所有成员同样是管理分区的成员而将资源域处的资源成员资格与管理分区中的成员资格相关。

图19是根据实施例的、用于使用构架级数据库来使资源组成员资格与管理分区成员资格相关的方法的详细流程图。

在步骤1910,在网络的构架级别创建资源域,其中资源域是构架资源的逻辑分组。

在步骤1920,在网络的子网中创建管理分区,其中管理分区由第一p_key定义,并且其中第一p_key在子网中是唯一的。

在步骤1930,提供构架级数据库,并且将第一p_key存储在构架级数据库中。

在步骤1940,资源域与管理分区相关联。

在步骤1950,将第一构架资源添加到资源域,其中第一构架资源由第一标识符识别,其中第一标识符被存储在构架级数据库中,其中向资源域添加第一构架资源通过构架级数据库在第一标识符和定义管理分区的p_key之间创建第一关系,并且其中第一关系将第一构架资源定义为管理分区的成员。

在步骤1960,将第二构架资源添加到资源域,其中第二构架资源由第二标识符识别,其中第二标识符存储在构架级数据库中,其中向资源域添加第二构架资源通过构架级数据库在第二标识符和定义管理分区的p_key之间创建第二关系,并且其中第二关系将第二构架资源定义为管理分区的成员。

在步骤1970,确定第一域资源和第二域资源是管理分区的成员。

在步骤1980,授予第一域资源和第二域资源是管理分区的成员的访问权限。

由交换机连接性定义的管理分区成员资格

如上面所概述的,管理分区表示可以由具有作为该管理分区的成员的(物理的或者虚拟的)主机通道适配器的主机集合使用的子网资源的分组。因为管理分区按授予对子网资源的访问的预定义的关系对管理分区成员进行分组,所以管理员不必在需要访问时或需要访问之前授予对各个主机(即,各个主机通道适配器或其末端端口)的访问。相反,成员访问资源的能力是通过管理分区中的成员资格来识别的,并且允许这种访问的适当步骤可以被自动化(例如,将与管理分区相关联的数据分区的p_key添加到作为管理分区的成员的hca的p_key表)。

根据实施例,作为管理分区的成员的hca的添加还可以基于hca连接到的物理交换机而被自动化。基于交换机连接性的主机成员资格在某些系统部署中具有优势。例如,某些高性能计算系统可以被供应为“工程化系统”(es)。这种工程化系统可以包括被布置为实现某个计算功能的多个部件。因为这些部件是更大的系统的被设计为彼此协同操作以实现某个功能的部分,所以可以安全地假设es中包括的主机应当具有对同样包括在es中的资源的访问权限。然后还可以假设域全局管理分区(即,如下管理分区:所有子网资源与该管理分区相关联并且每个hca都是该管理分区的成员,使得每个资源都可以访问子网内的每个其它资源)是期望的。

根据实施例,因为工程化系统实例常常被设计为具有连接到一对或多对叶子交换机的若干物理服务器的一个或多个机架,所以在es中部署的hca的域全局管理分区成员资格的供应可以由es的叶子交换机定义。通过定义特定叶子交换机表示特定管理分区(或与特定管理分区相关联),那么直接连接到叶子交换机的所有hca都可以自动地与叶子交换机表示的管理分区相关联。因此,只要es中的每个交换机被配置为与相同的相关管理分区信息相关联,就可以基于交换机连接性将es中实现的每个hca包括在域全局管理分区中。

根据实施例,叶子交换机上的配置信息可以定义相关联的管理分区。例如,交换机可以具有一个或多个配置变量,该一个或多个配置变量的(一个或多个)值定义相关联的管理分区。这些配置变量可以保持诸如相关联的管理分区的逻辑名称和/或相关联的管理分区的p_key之类的值。这些配置变量(即,配置特性)可以作为更大的交换机配置的一部分(例如,连同主机名称、ip地址以及操作所需的其它设置)被包括,该更大的交换机配置可以被备份并且如果交换机被替换则可以被恢复。

图20示出了根据实施例的、基于交换机连接性作为管理分区的成员的主机通道适配器。图20绘出了作为单个机架2000的工程化系统(es)。es机架2000包含hca2002-2005、以及叶子交换机2010和2020。hca2002和2003连接到叶子交换机2010,并且hca2004和2005连接到叶子交换机2020。叶子交换机2010和2020连接到ib构架2062。es机架2000是其一部分的ib子网(未示出)的sm可以在交换机2010或2020中任一个上或者在子网中的另一个节点上执行。

叶子交换机2010包含交换机配置(config)2012并且交换机2020包含交换机配置(config)2022。交换机配置2012和2022二者都可以保持配置特性并且可以被备份和恢复。交换机配置2012和2022通过在相应交换机配置中保持的特性分别将交换机2010和2020与管理分区2050关联。作为物理连接到叶子交换机2010或叶子交换机2020中的任一个的结果,hca2002-2005ib在构架2062的构架数据库(未示出)的管理分区注册表(也未示出)中被自动记录为管理分区2050的成员。

根据实施例,当叶子交换机特性定义缺省的管理分区成员资格时,sm可以发现或被通知与特定管理分区(例如,管理分区2050)相关联的交换机。例如,交换机2010和2020可以暴露指定是否存在与交换机相关联的缺省(例如,域全局)管理分区的配置特性作为可读sma属性。然后,sm可以在子网扫描时读取这些特性。可替代地,交换机的sma可以将特性作为陷阱消息发送到sm。sm还可以发现或被通知哪些hca直接连接到叶子交换机。一旦sm获得了指定交换机所关联的管理分区的特性以及直接连接到交换机的hca的列表,sm就可以负责在所连接的hca和交换机所关联的管理分区之间进行所需的相关,并且将管理分区成员资格信息转发到管理分区注册表。

根据实施例,基于交换机连接性的管理分区成员资格可以通过消除除了在定义分区时之外的指定与叶子交换机相关联的管理分区的p_key值的需要来减少管理开销。此外,成员hca的guid不需要在创建管理分区时或者当新的hca被添加到系统时被指定,并且可以由sm动态地发现并且作为管理分区的成员添加。

例如,在管理分区注册表中可以用p_key和逻辑名称来定义管理分区。在初始化子网后,sm将从与分区相关联的交换机获得分区的逻辑名称,并且还将接收直接连接到交换机的hca的列表。hca的列表可以是与直接连接到交换机的每个hca对应的guid列表的形式。sm可以将guid的列表和分区的逻辑名称转发到管理分区注册表,其中管理分区的逻辑名称可以被用作查找参数来寻找管理分区的p_key。然后,根据实施例,可以通过将转发的列表中的每个guid与管理分区的找到的p_key进行关联来更新管理分区注册表,从而使得每个对应的hca成为管理分区的成员。

因为在上面的场景中管理分区p_key可以使用其逻辑名称在管理分区注册表中被查找,所以交换机仅需要被配置有管理分区的逻辑名称。如果发生交换机故障,那么可以替换发生故障的交换机,并且可以将交换机配置恢复到替换交换机,从而最小化管理员开销。

根据实施例,一旦用直接连接到交换机的hca的guid更新了管理分区注册表,就可以(例如由sm)自动查询管理分区注册表,以检索与管理分区相关联的任何数据分区。查询可以返回与管理分区相关联的任何数据分区的p_key,并且这些p_key可以被加载到直接连接到与管理分区相关联的任何交换机的每个hca的p_key表中。以这种方式,可以用最少的管理工作来计划和供应对数据分区的访问。

图21是根据实施例的、用于基于交换机连接性来将管理分区成员资格指派给主机通道适配器的流程图。

在步骤2110,创建管理分区。

在步骤2120,管理分区与交换机相关联。

在步骤2130,确定什么hca直接连接到该交换机。

在步骤2140,使得被确定为直接连接到交换机的每个hca成为与该交换机相关联的管理分区的成员。

图22是根据实施例的、用于基于交换机连接性将管理分区成员资格指派给主机通道适配器的详细流程图。

在步骤2210,创建用于在网络构架的子网中使用的管理分区,其中该管理分区由子网内唯一的p_key定义,并且其中p_key存储在可从子网访问的管理分区注册表中。

在步骤2220,提供从子网内的节点执行的子网管理器。

在步骤2230,由子网管理器获得子网交换机与管理分区相关联的信息。

在步骤2240,由子网管理器接收标识符(id)的列表,每个标识符与直接连接到子网交换机的主机通道适配器对应。

在步骤2250,来自列表的id中的每个id被添加到管理分区注册表。

在步骤2260,在管理分区注册表中在添加的id中的每个id和p_key之间创建关系。

根据实施例,动态指派分区中的成员资格的方法包括:提供被配置为在网络构架的子网内操作的子网管理器,其中子网包括多个节点,并且其中多个节点包括至少一个交换机和多个末端节点,并且其中子网管理器在该多个节点中的一个节点上执行;在构架内提供数据存储库,其中数据存储库可由子网管理器访问;将数据存储库配置为保持识别第一分区的第一分区键(p_key)、识别第二分区的第二p_key以及子网唯一的末端端口标识符;还将数据存储库配置为维护第一p_key与第二p_key之间的第一关系以及第一p_key与子网唯一的末端端口标识符之间的第二关系;由子网管理器从多个末端节点中的发出请求的末端节点的主机通道适配器(hca)接收对于发出请求的节点的hca的末端端口在第二分区中的成员资格的请求,该请求包括第二分区的标识符和子网唯一的末端端口标识符,其中hca的末端端口在子网中由子网唯一的末端端口标识符唯一地识别;由子网管理器从数据存储库请求与子网唯一的末端端口标识符相关的p_key的第一列表;由子网管理器从数据存储库接收第一p_key;由子网管理器从数据存储库请求与第一p_key相关的p_key的第二列表;由子网管理器从数据存储库接收第二p_key;由子网管理器用第二p_key填充hca的末端端口的p_key表。

根据实施例,在上述方法中,其中第一分区与将第一分区识别为子网内的管理分区的属性相关联。

根据实施例,在上述方法中,第二分区的标识符是识别第二分区的第二p_key。

根据实施例,上述方法还包括配置数据存储库,以保持第二分区的符号名称;以及配置数据存储库,以维护第二分区的符号名称与识别第二分区的第二p_key之间的第三关系。

根据实施例,在上述方法中,第二分区的标识符是第二分区的符号名称。

根据实施例,上述方法包括由子网管理器从数据存储库请求与识别第二分区的第二p_key相关的第二分区的符号名称;以及由子网管理器从数据存储库接收第二分区的符号名称。

根据实施例,在上述方法中,数据存储库包括保持在子网管理器的随机存取存储器中的记录。

根据实施例,用于在分区中动态指派成员资格的系统,该系统包括被配置为在网络构架的子网内操作的子网管理器,其中子网包括多个节点,并且其中多个节点包括至少一个交换机和多个末端节点,并且其中子网管理器在该多个节点中的一个节点上执行;构架内的数据存储库,其中该数据存储库可由子网管理器访问,并且其中该数据存储库被配置为:存储识别第一分区的第一分区键(p_key)、识别第二分区的第二p_key、以及子网唯一的末端端口标识符;以及维护第一p_key与第二p_key之间的第一关系和第一p_key与子网唯一的末端端口标识符之间的第二关系;并且其中子网管理器被配置为:从多个末端节点中的发出请求的末端节点的主机通道适配器(hca)接收对于发出请求的节点的hca的末端端口在第二分区中的成员资格的请求,该请求包括第二分区的标识符和子网唯一的末端端口标识符,其中hca的末端端口在子网中由子网唯一的末端端口标识符唯一地识别;从数据存储库请求与子网唯一的末端端口标识符相关的p_key的第一列表;从数据存储库接收第一p_key;从数据存储库请求与第一p_key相关的p_key的第二列表;从数据存储库接收第二p_key;用第二p_key填充hca的末端端口的p_key表。

根据实施例,在上述系统中,第一分区与将第一分区识别为子网内的管理分区的属性相关联。

根据实施例,在上述系统中,第二分区的标识符是识别第二分区的第二p_key。

根据实施例,在上述系统中,数据存储库还被配置为:存储第二分区的符号名称;以及维护第二分区的符号名称与识别第二分区的第二p_key之间的第三关系。

根据实施例,在上述系统中,第二分区的标识符是第二分区的符号名称。

根据实施例,在上述系统中,子网管理器还被配置为从数据存储库请求与识别第二分区的第二p_key相关的第二分区的符号名称;以及从数据存储库接收第二分区的符号名称。

根据实施例,在上述系统中,数据存储库包括保持在子网管理器的存储器中的记录。

根据实施例,一种非暂态计算机可读存储介质,包括存储在其上的用于在分区中动态指派成员资格的指令,所述指令当由一个或多个计算机读取和执行时,使该一个或多个计算机执行包括以下操作的步骤:提供被配置为在网络构架的子网内操作的子网管理器,其中子网包括多个节点,并且其中多个节点包括至少一个交换机和多个末端节点,并且其中子网管理器在该多个节点中的一个节点上执行;在构架内提供数据存储库,其中该数据存储库可由子网管理器访问;将数据存储库配置为保持识别第一分区的第一分区键(p_key)、识别第二分区的第二p_key、以及子网唯一的末端端口标识符;还将数据存储库配置为维护第一p_key与第二p_key之间的第一关系、以及第一p_key与子网唯一的末端端口标识符之间的第二关系;由子网管理器从多个末端节点中的发出请求的末端节点的主机通道适配器(hca)接收发出请求的节点的hca的末端端口对于在第二分区中的成员资格的请求,该请求包括第二分区的标识符和子网唯一的末端端口标识符,其中hca的末端端口在子网中由子网唯一的末端端口标识符唯一地识别;由子网管理器从数据存储库请求与子网唯一的末端端口标识符相关的p_key的第一列表;由子网管理器从数据存储库接收第一p_key;由子网管理器从数据存储库请求与第一p_key相关的p_key的第二列表;由子网管理器从数据存储库接收第二p_key;由子网管理器用第二p_key填充hca的末端端口的p_key表。

根据实施例,在上述非暂态计算机可读存储介质中,第一分区与将第一分区识别为子网内的管理分区的属性相关联。

根据实施例,在上述非暂态计算机可读存储介质中,第二分区的标识符是识别第二分区的第二p_key。

根据实施例,在上述非暂态计算机可读存储介质中,步骤还包括将数据存储库配置为保持第二分区的符号名称;以及将数据存储库配置为维护第二分区的符号名称与识别第二分区的第二p_key之间的第三关系。

根据实施例,在上述非暂态计算机可读存储介质中,第二分区的标识符是第二分区的符号名称。

根据实施例,在上述非暂态计算机可读存储介质中,步骤还包括由子网管理器从数据存储库请求与识别第二分区的第二p_key相关的第二分区的符号名称;以及由子网管理器从数据存储库接收第二分区的符号名称。

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

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

根据实施例,基于交换机连接性来指派管理分区成员资格的方法包括:创建用于在网络构架的子网中使用的管理分区,其中管理分区由在子网内唯一的p_key定义,并且其中p_key存储在可从子网访问的管理分区注册表中;提供从子网内的节点执行的子网管理器;由子网管理器从子网交换机获得子网交换机与管理分区相关联的信息;由子网管理器接收标识符(id)的列表,每个id与直接连接到子网交换机的主机通道适配器对应;将来自列表的id中的每个id添加到管理分区注册表;以及在管理分区注册表中在添加的id中的每个id与p_key之间创建关系。

根据实施例,在上述方法中,由子网管理器获得的信息包括子网交换机所关联的管理分区的p_key。

根据实施例,在上述方法中,还包括:在管理分区注册表中存储管理分区的逻辑名称;在管理分区注册表中在管理分区的逻辑名称与p_key之间创建关系;并且其中由子网管理器获得的信息包括管理分区的逻辑名称。

根据实施例,上述方法还包括由子网管理器使用管理分区的逻辑名称作为管理分区注册表的查询中的参数,其中查询基于管理分区的逻辑名称与p_key之间的关系返回p_key。

根据实施例,在上述方法中,信息被保持在子网交换机的配置特性中,并且其中配置特性被暴露给子网管理器。

根据实施例,在上述方法中,配置特性是交换机的子网管理代理属性,并且其中由子网管理器获得信息包括由子网管理器读取子网交换机的子网管理代理属性。

根据实施例,上述方法还包括提供子网交换机。

根据实施例,用于基于交换机连接性来指派管理分区成员资格的系统包括用于在网络构架的子网中使用的管理分区,其中管理分区由在子网内唯一的p_key定义,并且其中p_key被存储在可从子网访问的管理分区注册表中;以及从子网内的节点执行的子网管理器,其中子网管理器操作以:从子网交换机获得子网交换机与管理分区相关联的信息;由子网管理器接收标识符(id)的列表,每个id与直接连接到子网交换机的主机通道适配器对应;将来自接收到的列表的id中的每个id添加到管理分区注册表;以及在管理分区注册表中使得在所添加的id中的每个id与p_key之间创建关系。

根据实施例,在上述系统中,由子网管理器获得的信息包括子网交换机所关联的管理分区的p_key。

根据实施例,在上述系统中,管理分区的逻辑名称被存储在管理分区注册表中;其中在管理分区注册表中管理分区的逻辑名称与p_key之间的关系被创建并且维护;并且其中由子网管理器获得的信息包括管理分区的逻辑名称。

根据实施例,在上述系统中,子网管理器还操作以使用管理分区的逻辑名称作为管理分区注册表的查询中的参数,并且其中查询基于管理分区的逻辑名称与p_key之间的关系返回p_key。

根据实施例,在上述系统中,信息被保持在子网交换机的配置特性中,并且其中配置特性被暴露给子网管理器。

根据实施例,在上述系统中,配置特性是交换机的子网管理代理属性,并且其中由子网管理器获得信息包括由子网管理器读取子网交换机的子网管理代理属性。

根据实施例,上述系统还包括子网交换机。

根据实施例,一种非暂态计算机可读存储介质,包括存储在其上的用于基于交换机连接性来指派管理分区成员资格的指令,这些指令当由一个或多个计算机读取和执行时,使该一个或多个计算机执行包括以下操作的步骤:创建用于在网络构架的子网中使用的管理分区,其中管理分区由在子网内唯一的p_key定义,并且其中p_key存储在可从子网访问的管理分区注册表中;提供从子网内的节点执行的子网管理器;由子网管理器从子网交换机获得子网交换机与管理分区相关联的信息;由子网管理器接收标识符(id)的列表,每个id与直接连接到子网交换机的主机通道适配器对应;将来自列表的id中的每个id添加到管理分区注册表;以及在管理分区注册表中在添加的id中的每个id与p_key之间创建关系。

根据实施例,在上述非暂态计算机可读存储介质中,由子网管理器获得的信息包括子网交换机所关联的管理分区的p_key。

根据实施例,在上述非暂态计算机可读存储介质中,步骤还包括:在管理分区注册表中存储管理分区的逻辑名称;以及在管理分区注册表中在管理分区的逻辑名称与p_key之间创建关系;并且其中由子网管理器获得的信息包括管理分区的逻辑名称。

根据实施例,在上述非暂态计算机可读存储介质中,步骤还包括:由子网管理器使用管理分区的逻辑名称作为管理分区注册表的查询中的参数,其中查询基于管理分区的逻辑名称与p_key之间的关系返回p_key。

根据实施例,在上述非暂态计算机可读存储介质中,信息被保持在子网交换机的配置特性中,并且其中配置特性被暴露给子网管理器。

根据实施例,在上述非暂态计算机可读存储介质中,配置特性是交换机的子网管理代理属性,并且其中由子网管理器获得信息包括由子网管理器读取子网交换机的子网管理代理属性。

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

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

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

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

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

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

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

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

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

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