CN108028813A - 用于在高性能计算环境中使用用于线性转发表(lft)查找的全局路由报头(grh)中的子网前缀值的系统和方法 - Google Patents
用于在高性能计算环境中使用用于线性转发表(lft)查找的全局路由报头(grh)中的子网前缀值的系统和方法 Download PDFInfo
- Publication number
- CN108028813A CN108028813A CN201780002951.4A CN201780002951A CN108028813A CN 108028813 A CN108028813 A CN 108028813A CN 201780002951 A CN201780002951 A CN 201780002951A CN 108028813 A CN108028813 A CN 108028813A
- Authority
- CN
- China
- Prior art keywords
- subnet
- network
- packet
- port
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/74591—Address table lookup; Address filtering using content-addressable memories [CAM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/20—Traffic policing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/356—Switches specially adapted for specific applications for storage area networks
- H04L49/358—Infiniband Switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
- Small-Scale Networks (AREA)
- Telephonic Communication Services (AREA)
Abstract
用于在网络环境中使用用于子网内和子网间转发两者的相同的线性转发表(LFT)支持子网内和子网间地址解析的系统和方法。全局路由报头(GRH)中的子网前缀值用于高性能计算环境中的线性转发表(LFT)查找。示例可以在诸如具有InfiniBand(IB)体系架构的网络的高性能计算环境中提供嵌入在网络交换环境中用于LFT查找的GRH中的子网前缀值中的子网间路由号(ISRN)的使用。方法可以在包括网络架构的计算机环境中提供一个或多个子网,每个子网与一个或多个网络交换机或主机相关联。该系统和方法与不了解ISRN的传统交换机和节点兼容。
Description
版权声明
本专利文档公开内容的一部分包含受版权保护的素材。版权拥有者不反对任何人对专利文档或专利公开内容按照在专利商标局的专利文件或记录中出现得那样进行的传真复制,但是除此之外在任何情况下都保留所有版权。
技术领域
本文的实施例一般而言涉及计算机系统,并且特别地涉及提供网络环境中的网络交换功能。
背景技术
随着更大的云计算体系架构的推出,与传统网络和存储相关联的性能和管理瓶颈已成为重要的问题。人们对使用诸如InfiniBand(IB)技术等高性能无损互连作为云计算架构的基础越来越感兴趣。
单个IB子网中的48K单播本地标识(LID)值空间表示在端节点的数量方面对子网尺寸的限制。当虚拟化主机通道适配器(HCA)提供多个虚拟HCA实例,其中每个这种虚拟HCA实例可以被配置为具有用于每个虚拟端口的独立的LID时,这个限制是特别重要的。
IB标准规范定义了路由器节点,以便允许多个子网在相同的IB架构内连接,并且基于架构宽度128位目的地全局标识符(DGID)地址值到用于每个中间子网以及用于最终目标子网的16位目的地LID(DLID)地址的映射来支持分组转发。
但是,在IB线速度下将128位DGID值映射到16位DLID值需要复杂的基于内容可寻址存储器(CAM)的查找硬件,该查找硬件在可以被唯一查找的各个DGID的数量方面(即在硬件实现的合理成本/复杂性约束内)具有有限的可扩展性。这意味着为了扩展到大量的各个目的地,128位DGID值到16位DLID值的映射必须是灵活的,并且必须能够使用分层方案,使得大量的各个DGID地址可以经由单个查找条目进行映射。
但是,虽然分层映射结构表示在可以被表示的子网和端节点的总数方面的可伸缩性,但是它也表示对独立地路由各个目的地以便为整个多子网架构中的不同流和工作负载维持负载均衡和QOS约束的能力的严重限制。
这是所要求保护的发明的实施例旨在解决的一般领域。
发明内容
本文描述的是可以在高性能计算环境中使用用于线性转发表(LFT)查找的全球路由报头(GRH)中的子网前缀值支持网络环境(诸如用于中间件和应用执行的工程化系统或中间件机器环境)中的子网内和子网间地址解析的系统和方法。示例性系统和方法可以在高性能计算环境(诸如具有InfiniBand(IB)体系架构的网络)中提供网络交换环境中用于LFT查找的GRH中的子网前缀值的使用。实施例可以在包括网络架构的计算机环境中提供一个或多个子网,每个子网与一个或多个网络交换机或主机相关联。本文的系统和方法可以允许相同的线性转发表用于子网内转发决策和子网间转发决策两者。
附图说明
图1示出了根据实施例的InfiniBand环境的图示。
图2示出了根据实施例的分区集群环境的图示。
图3示出了根据实施例的网络环境中的树形拓扑的图示。
图4示出了根据实施例的示例性共享端口体系架构。
图5示出了根据实施例的示例性vSwitch体系架构。
图6示出了根据实施例的示例性vPort体系架构。
图7示出了根据实施例的具有预填充的LID的示例性vSwitch体系架构。
图8示出了根据实施例的具有动态LID分配的示例性vSwitch体系架构。
图9示出了根据实施例的具有动态LID分配和预填充的LID的具有vSwitch的示例性vSwitch体系架构。
图10示出了根据实施例的示例性多子网InfiniBand架构。
图11示出了根据实施例的使用InfiniBand(IB)寻址来访问网络环境中的分组转发逻辑的数据分组格式的图示。
图12示出了根据实施例的用于子网内和子网间转发的线性转发表(LFT)的示例性部分。
图13示出了根据实施例的转发域的图示。
图14示出了根据实施例的将分组报头从GRH/ISRN寻址模式格式修改为基于LRH/DLID的转发格式的图示。
图15是根据实施例的提供定义用于将分组转发从LRH/DLID寻址模式改变为GRH/ISRN寻址模式的特殊交换机端口边界的机制的交换机的图示。
图16是根据实施例的用于使用用于子网内和子网间转发两者的线性转发表查找的分组报头的方法的流程图。
具体实施方式
在附图的各图中通过示例而非限制的方式图示了示例实施例,附图中相同的标号指示类似的元件。应当注意的是,在本公开中对“一个”或“一些”实施例的引用不一定是相同的实施例,并且这种引用意味着至少一个。虽然讨论了特定的实现,但是应当理解的是,特定实现仅仅是为了说明性目的而提供。相关领域的技术人员将认识到,在不脱离所要求保护的发明的范围和精神的情况下,可以使用其它部件和配置。
贯穿附图和具体实施方式可以使用共同的标号来指示相同的元素;因此,如果元素在其它地方进行了描述,那么在图中使用的标号可以或可以不在特定于该图的具体描述中引用。
本文描述的是支持子网内和子网间的转发决策,从而使得能够在高性能计算环境中使用用于线性转发表(LFT)查找的全局路由报头(GRH)中的子网前缀值进行虚拟机(VM)的实时迁移的系统和方法。
示例实施例的以下描述使用InfiniBandTM(IB)网络作为高性能网络的示例。贯穿以下描述,可以参考InfiniBandTM规范(也被不同地称为InfiniBand规范、IB规范或传统IB规范)。这样的参考被理解为是指可在http://www.infinibandta.org获得的于2015年3月发布的Trade Association Architecture Specification,卷1,版本1.3,其全部内容通过引用被结合于此。对于本领域技术人员来说显而易见的是,可以使用其它类型的高性能网络而没有限制。以下描述还使用胖树拓扑作为架构拓扑的示例。对于本领域技术人员来说显而易见的是,可以使用其它类型的架构拓扑而没有限制。
为了满足当前时代(例如,Exascale时代)的云的需求,期望虚拟机能够利用诸如远程直接存储器访问(RDMA)的低开销网络通信范例。RDMA绕过OS堆栈并且直接与硬件通信,因此可以使用像单根I/O虚拟化(SR-IOV)网络适配器这样的直通技术。根据实施例,对于高性能无损互连网络中的适用性可以提供虚拟交换机(vSwitch)SR-IOV体系架构。由于网络重新配置时间对于使实时迁移成为实用选项是至关重要的,因此,除了网络体系架构之外,还可以提供可伸缩的和拓扑无关的动态重新配置机制。
根据实施例,并且除此之外,可以提供使用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根据使用中的路由机制来计算。在子网中,端节点和交换机上的主机通道适配器(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中示出了示例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包括节点A 101和节点D 104。分区2包括节点A 101、节点B 102和节点C 103。分区3包括节点C103和节点E 105。由于分区的布置,节点D 104和节点E 105不被允许通信,因为这些节点不共享分区。同时,例如,节点A 101和节点C 103被允许通信,因为这些节点都是分区2,140的成员。
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)路径记录查询来定位要重新连接到的虚拟机的新地址,可以尝试更新丢失的连接。
InfiniBand中的层和寻址
IB体系架构被划分为多个层,其中多个层中的每一层单独地并且独立于其它层操作。在IB层抽象的一端,IB物理层定义了IB系统的电气和机械特性,并且在IB层抽象的另一端,IB上层在主机和远程客户端之间传送事务。IB传输层操作以分别在发送和接收数据时提供分区、信道复用、传输服务以及分组分段和重组。子网内的分组转发和交换在IB链路层进行处理,并且IB网络层处理分组从一个子网到另一个子网的路由。
通常,网络层定义在单个子网内和在不同子网之间路由分组的协议。为此,IB体系架构使用三种不同类型的地址。第一种类型的IB地址是16位本地标识符(LID)。SM向每个HCA端口和每个交换机分配至少一个唯一的LID。LID用于路由子网内的流量,其中链路层交换将分组从由分组的本地路由报头(LRH)内的源LID(SLID)指定的设备转发到由本地路由报头LRH内的目的地LID(DLID)指定的设备。由于LID是16位长,因此可以做出65536个唯一的地址组合,其中只有49151(0x0001-0xBFFF)个可以用作单播地址。因此,可用单播地址的数量定义了IB子网的最大尺寸。
第二种类型的IB地址是由制造商分配给每个设备(例如,HCA和交换机)和每个HCA端口的64位全局唯一标识符(GUID)。SM可以向HCA端口分配附加的子网唯一GUID,其在使用SR-IOV时是有用的。在网络层处操作的路由器在不同的子网之间发送包含全局路由报头(GRH)的分组。路由器使用每个设备的唯一GUID跨子网转发分组。在该处理中,在朝着目的地子网中的目的地端口的分组路径中的最后一个路由器通过将LRH中的源LID替换为目的地端口的适当LID来修改分组的LRH。
第三种类型的地址是128位全局标识符(GID)。GID是有效的IPv6单播地址,并且向每个HCA端口分配至少一个。GID通过组合由架构管理员分配的全局唯一64位前缀和每个HCA端口的GUID地址形成。GID独立于LID,并且因此不受子网重新配置的影响。
胖树(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、扩展的广义胖树(XGFT)、平行端口广义胖树(PGFT)和现实生活胖树(RLFT)。
k-ary-n-tree是具有kn个端节点和n·kn-1个交换机的n级胖树,每个具有2k个端口。每个交换机在树中具有相同数量的上下连接。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之间没有设备共享。直接分配或设备直通以最小的开销提供接近本地性能。物理设备绕过管理程序并且直接附连到VM。但是,这种直接设备分配的缺点是有限的可伸缩性,因为在虚拟机之间不存在共享—一个物理网卡与一个VM耦合。
根据实施例,单根IOV(SR-IOV)可以允许物理设备通过硬件虚拟化表现为相同设备的多个独立的轻量级实例。这些实例可以被分配给VM作为直通设备,并作为虚拟功能(VF)被访问。管理程序通过唯一的(每设备)、全特征物理功能(PF)访问设备。SR-IOV使纯直接分配的可伸缩性问题变得容易。但是,SR-IOV呈现出的问题是它可能会影响VM迁移。在这些IOV技术中,SR-IOV可以扩展PCI Express(PCIe)规范,其意味着允许从多个VM直接访问单个物理设备,同时维持接近本地性能。因此,SR-IOV可以提供良好的性能和可伸缩性。
SR-IOV允许PCIe设备通过向每个客户分配一个虚拟设备来暴露可以在多个客户之间共享的多个虚拟设备。每个SR-IOV设备具有至少一个物理功能(PF)和一个或多个相关联的虚拟功能(VF)。PF是由虚拟机监视器(VMM)或管理程序控制的正常PCIe功能,而VF是轻量级的PCIe功能。每个VF都具有其自己的基地址(BAR),并被分配有唯一的请求者ID,其使得I/O存储器管理单元(IOMMU)能够区分来自/去往不同VF的流量。IOMMU还在PF和VF之间应用存储器和中断转换。
但是,令人遗憾的是,直接设备分配技术在其中数据中心优化期望虚拟机的透明实时迁移的情况下对云提供商造成障碍。实时迁移的实质是将VM的存储器内容复制到远程管理程序。然后在源管理程序处暂停VM,并且在目的地处恢复VM的操作。当使用软件仿真方法时,网络接口是虚拟的,因此其内部状态被存储到存储器中并且也被复制。因此,可以使停机时间下降到几毫秒。
但是,当使用诸如SR-IOV的直接设备分配技术时,迁移变得更加困难。在这种情况下,网络接口的完整内部状态不能被复制,因为它与硬件绑定。作为替代,分配给VM的SR-IOV VF被分离,实时迁移将运行,并且新的VF将在目的地处被附连。在InfiniBand和SR-IOV的情况下,该处理会引入在秒的数量级上的停机时间。而且,在SR-IOV共享端口模型中,在迁移之后,VM的地址将改变,从而导致SM中的附加开销并对底层网络架构的性能产生负面影响。
InfiniBand SR-IOV体系架构-共享端口
可以存在不同类型的SR-IOV模型,例如,共享端口模型、虚拟交换机模型和虚拟端口模型。
图4示出了根据实施例的示例性共享端口体系架构。如图所示,主机300(例如,主机通道适配器)可以与管理程序310交互,管理程序310可以将各种虚拟功能330、340、350分配给多个虚拟机。同样,物理功能可以由管理程序310处理。
根据实施例,当使用诸如图4所示的共享端口体系架构时,主机(例如,HCA)在网络中出现为具有单个共享LID和在物理功能320和虚拟功能330、340、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内部运行。
InfiniBand SR-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,HCA 400看起来像经由虚拟交换机415、具有连接到它的附加节点的交换机。管理程序410可以使用PF 420,并且VM(附连到虚拟功能)可以使用VF。
根据实施例,vSwitch体系架构提供透明的虚拟化。但是,由于每个虚拟功能都被分配唯一的LID,因此可用LID的数量被迅速消耗。同样,在使用许多LID地址(即,每个物理功能和每个虚拟功能都有一个LID地址)的情况下,必须由SM计算更多的通信路径,并且必须将更多的子网管理分组(SMP)发送到交换机,以便更新其LFT。例如,通信路径的计算在大型网络中可能花费几分钟。因为LID空间限于49151个单播LID,并且由于每个VM(经由VF)、物理节点和交换机每个占用一个LID,因此网络中的物理节点和交换机的数量限制了活动VM的数量,反之亦然。
InfiniBand SR-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。
InfiniBand SR-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并将它们分配给多个虚拟机。例如,虚拟机1 550可以由管理程序511分配给虚拟功能1 514。管理程序511可以附加地将虚拟机2 551分配给虚拟功能2 515,并且将虚拟机3 552分配给虚拟功能3 516。管理程序531又可以将虚拟机4 553分配给虚拟功能1 534。管理程序可以通过主机通道适配器中的每一个上的全特征物理功能513、523、533访问主机通道适配器。
根据实施例,交换机501-504中的每一个可以包括多个端口(未示出),这些端口用于设置线性转发表以便引导网络交换环境600内的流量。
根据实施例,虚拟交换机512、522和532可以由它们相应的管理程序511、521、531处理。在这样的vSwitch体系架构中,每个虚拟功能是完整的虚拟主机通道适配器(vHCA),这意味着分配给VF的VM被分配完整的IB地址(例如,GID、GUID、LID)集合和硬件中专用的QP空间。对于网络的其余部分和SM(未示出),HCA 510、520和530看起来像经由虚拟交换机、具有连接到它们的附加节点的交换机。
根据实施例,本公开提供了用于提供具有预填充的LID的vSwitch体系架构的系统和方法。参考图7,LID被预填充到各种物理功能513、523、533以及虚拟功能514-516、524-526、534-536(甚至那些当前未与活动虚拟机相关联的虚拟功能)。例如,物理功能513用LID1预填充,而虚拟功能1 534用LID 10预填充。当网络被引导时,LID在启用SR-IOV vSwitch的子网中被预填充。即使并非所有的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-IOV vSwitch的子网中被预填充,因此初始路径计算(例如,在启动时)会比如果LID没有被预填充所花费的时间更长。
InfiniBand SR-IOV体系架构模型-具有动态LID分配的vSwitch
根据实施例,本公开提供了用于提供具有动态LID分配的vSwitch体系架构的系统和方法。
图8示出了根据实施例的具有动态LID分配的示例性vSwitch体系架构。如图所示,多个交换机501-504可以在网络交换环境700(例如,IB子网)内提供架构(诸如InfiniBand架构)的成员之间的通信。架构可以包括多个硬件设备,诸如主机通道适配器510、520、530。主机通道适配器510、520、530中的每一个又可以分别与管理程序511、521、531交互。每个管理程序又可以与其交互的主机通道适配器结合建立多个虚拟功能514、516、524、526、534、536并将它们分配给多个虚拟机。例如,虚拟机1 550可以由管理程序511分配给虚拟功能1514。管理程序511可以附加地将虚拟机2 551分配给虚拟功能2 515,并且将虚拟机3 552分配给虚拟功能3 516。管理程序531又可以将虚拟机4 553分配给虚拟功能1 534。管理程序可以通过主机通道适配器中的每一个上的全特征物理功能513、523、533访问主机通道适配器。
根据实施例,交换机501-504中的每一个可以包括多个端口(未示出),这些端口用于设置线性转发表以便引导网络交换环境700内的流量。
根据实施例,虚拟交换机512、522和532可以由它们相应的管理程序511、521、531处理。在这样的vSwitch体系架构中,每个虚拟功能是完整的虚拟主机通道适配器(vHCA),这意味着分配给VF的VM被分配完整的IB地址(例如,GID、GUID、LID)集合和硬件中专用的QP空间。对于网络的其余部分和SM(未示出),HCA 510、520和530看起来像经由虚拟交换机、具有连接到它们的附加节点的交换机。
根据实施例,本公开提供了用于提供具有动态LID分配的vSwitch体系架构的系统和方法。参考图8,LID被动态分配给各种物理功能513、523、533,其中物理功能513接收LID1、物理功能523接收LID 2并且物理功能533接收LID 3。与活动虚拟机相关联的那些虚拟功能也可以接收动态分配的LID。例如,由于虚拟机1 550是活动的并且与虚拟功能1 514相关联,因此虚拟功能514可以被分配LID 5。同样,虚拟功能2 515、虚拟功能3 516和虚拟功能1534每个与活动虚拟功能相关联。由此,这些虚拟功能被分配LID,其中LID 7被分配给虚拟功能2 515、LID 11被分配给虚拟功能3 516、并且LID 9被分配给虚拟功能1 534。与具有预填充LID的vSwitch不同,那些当前未与活动虚拟机相关联的虚拟功能524-526和534-536不接收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增加了灾难恢复和分段网络优化的灵活性。
InfiniBand SR-IOV体系架构模型-具有动态LID分配和预填充LID的vSwitch
图9示出了根据实施例的具有动态LID分配和预填充LID的具有vSwitch的示例性vSwitch体系架构。如图所示,多个交换机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分配给虚拟功能1 514。管理程序511可以附加地将虚拟机2 551分配给虚拟功能2 515。管理程序521可以将虚拟机3 552分配给虚拟功能3 526。管理程序531又可以将虚拟机4 553分配给虚拟功能2 535。管理程序可以通过主机通道适配器的每一个上的全特征物理功能513、523、533访问主机通道适配器。
根据实施例,交换机501-504中的每一个可以包括多个端口(未示出),这些端口用于设置线性转发表以便引导网络交换环境800内的流量。
根据实施例,虚拟交换机512、522和532可以由它们相应的管理程序511、521、531处理。在这样的vSwitch体系架构中,每个虚拟功能是完整的虚拟主机通道适配器(vHCA),这意味着分配给VF的VM被分配完整的IB地址(例如,GID、GUID、LID)集合和硬件中专用的QP空间。对于网络的其余部分和SM(未示出),HCA 510、520和530看起来像经由虚拟交换机、具有连接到它们的附加节点的交换机。
根据实施例,本公开提供了用于提供具有动态LID分配和预填充LID的混合vSwitch体系架构的系统和方法。参考图9,管理程序511可以用具有预填充LID体系架构的vSwitch进行布置,而管理程序521可以用具有预填充LID和动态LID分配的vSwitch进行布置。管理程序531可以用具有动态LID分配的vSwitch进行布置。因此,物理功能513和虚拟功能514-516使其LID被预填充(即,即使那些未附连到活动虚拟机的虚拟功能被分配了LID)。物理功能523和虚拟功能1 524可以使其LID被预填充,而虚拟功能2和3、525和526使其LID被动态分配(即,虚拟功能2 525可用于动态LID分配,并且由于虚拟机3 552被附连,因此虚拟功能3 526具有动态分配的LID 11)。最后,与管理程序3 531相关联的功能(物理功能和虚拟功能)可以使其LID被动态分配。这使得虚拟功能1和3、534和536可用于动态LID分配,而虚拟功能2 535由于虚拟机4 553被附连到那里因此具有动态分配的LID 9。
根据诸如图8所示、其中(在任何给定管理程序内独立地或组合地)利用了具有预填充LID的vSwitch和具有动态LID分配的vSwitch两者的实施例,每主机通道适配器的预填充LID的数量可以由架构管理员定义,并且可以在0<=预填充的VFS<=总VF(每主机通道适配器)的范围内,并且可用于动态LID分配的VF可以通过从VF的总数(每主机通道适配器)减去预填充VF的数量找到。
根据实施例,非常类似于物理主机通道适配器可以具有多于一个的端口(为了冗余两个端口是常见的),虚拟HCA也可以用两个端口表示,并且经由一个、两个或更多个虚拟交换机连接到外部IB子网。
InfiniBand-子网间通信(架构管理器)
根据实施例,除了在单个子网内提供InfiniBand架构之外,本公开的实施例还可以提供跨越两个或更多个子网的InfiniBand架构。
图10示出了根据实施例的示例性多子网InfiniBand架构。如图所示,在子网A1000内,多个交换机1001-1004可以在子网A 1000(例如,IB子网)内提供架构(诸如InfiniBand架构)的成员之间的通信。架构可以包括多个硬件设备,诸如,例如主机通道适配器1010。主机通道适配器1010又可以与管理程序1011交互。管理程序又可以与其交互的主机通道适配器结合建立多个虚拟功能1014。管理程序可以附加地将虚拟机分配给每个虚拟功能,诸如虚拟机1 1015被分配给虚拟功能1 1014。管理程序可以通过主机通道适配器中的每一个上的全特征物理功能(诸如物理功能1013)访问其相关联的主机通道适配器。在子网B 1040内,多个交换机1021-1024可以在子网B 1040(例如,IB子网)内提供架构(诸如InfiniBand架构)的成员之间的通信。架构可以包括多个硬件设备,诸如,例如主机通道适配器1030。主机通道适配器1030又可以与管理程序1031交互。管理程序又可以与其交互的主机通道适配器建立多个虚拟功能1034。管理程序可以附加地将虚拟机分配给虚拟功能中的每一个,诸如虚拟机2 1035被分配给虚拟功能2 1034。管理程序可以通过主机通道适配器中的每一个上的全特征物理功能(诸如物理功能1033)访问其相关联的主机通道适配器。应当注意的是,虽然在每个子网(即,子网A和子网B)内仅示出了一个主机通道适配器,但是应该理解的是,每个子网内可以包括多个主机通道适配器及其对应的部件。
根据实施例,主机通道适配器中的每一个可以附加地与虚拟交换机(诸如虚拟交换机1012和虚拟交换机1032)相关联,并且每个HCA可以用不同的体系架构模型来建立,如上所述。虽然图10内的两个子网都被显示为使用具有预填充LID体系架构模型的vSwitch,但这并不意味着暗示所有此类子网配置都必须遵循相似的体系架构模型。
根据实施例,每个子网内的至少一个交换机可以与路由器相关联,诸如子网A1000内的交换机1002与路由器1005相关联,并且子网B 1040内的交换机1021与路由器1006相关联。
根据实施例,至少一个设备(例如,交换机、节点等)可以与架构管理器(未示出)相关联。架构管理器可以用于例如发现子网间架构拓扑、创建架构简档(例如,虚拟机架构简档)、构建虚拟机相关的数据库对象,这些数据库对象形成用于构建虚拟机架构简档的基础。此外,架构管理器可以根据哪些子网被允许经由哪些路由器端口使用哪些分区号进行通信来定义合法的子网间连接性。
根据实施例,当始发源(诸如子网A内的虚拟机1)处的流量被寻址到不同子网(诸如子网B内的虚拟机2)中的目的地时,该流量可以被寻址到子网A内的路由器,即,路由器1005,路由器1005然后可以经由它与路由器1006的链路将流量传递到子网B。
总的来说,示例实施例提供了具有许多节点的非常大的架构,并且进一步提供了每个具有子网边界的多个子网。子网边界使得能够实现独立的子网管理器(SM)。特别地,子网边界使得能够对于/在非常大的架构内的多个子网中的每个子网中实现一个独立的SM。
此外,通过使用线性转发表(LFT)查找协议的简单查找机制使得能够实现非常高效的分组路由,以便在整个架构中以唯一的方式路由分组流。
本地/子网内路由:
对于第2层(L2)寻址,示例实施例使用每个子网内基于“正常”本地id的路由/转发。即,当IB分组的本地路由报头(LRH)中的16位目的地本地标识符(DLID)在交换机端口处被路由时,它被查找,并且通过使用IB分组的LRH中的DLID值直接索引硬件中的LFT,输出端口被快速找到。
第3层(L3)地址/寻址:
示例实施例中分组的全局路由报头(GRH)本质上使用128位方案:唯一64位节点地址–“GUID”和64位子网前缀号。示例实施例提供了被划分为许多独立子网的非常大的架构,其中跨不同的子网实现了相同的路由/路由能力。即,在示例实施例中,端点之间的路径可以以与就好像存在大的单个子网一样相同的方式进行路由。
在虚拟机(VM)中,物理端节点可以表示大量的虚拟端点,其中每个虚拟端点具有(并且由于传统兼容性的原因应该具有)它们自己的包括16位DLID的完整的IB地址。但是,16位DLID空间变得快速耗尽。本质上,每个虚拟子网中存在比使用16位DLID的地址空间指向能力更多的空间。
因此,根据示例实施例,将全部架构划分为一组独立的子网、提供私有的“LID空间”、并且提供用于从L3地址的64位子网前缀号部分提取指定的位字段的机制。根据示例实施例的机制,本主题实施例不是使用L3地址的整个64位对子网号进行编码,而是对从L3地址的64位子网前缀号部分中提取指定的位字段(ISRN)提供硬件支持。因此,当存在通过中间基础设施从(虚拟)子网A到(虚拟)子网B进行通信时,示例实施例在L3地址的64位子网前缀号部分的指定位字段中编码:
a)目的地子网(中)的LID;以及
b)“中间交换机架构”基础设施的“中间”LID。
基于全局路由报头(GRH)的线性转发表(LFT)查找
为了减少在具有贯穿整个IB架构的路由/转发的协调管理的单个架构配置内为子网内和子网间流量两者实现可扩展的、灵活的和确定性的路由/转发所需的交换机/路由器芯片上资源的量,根据实施例,使用了与在单个子网内基于LID的表查找相同的方式,经由用于线性表查找的号码来识别子网间路由的方案。在这方面,图11示出了根据实施例的使用InfiniBand(IB)寻址方案来访问网络环境中的分组转发逻辑的数据分组格式的图示。如图所示,第一IB子网1100可以包括多个物理(或虚拟)节点1101和1102以及子网管理员(SA)1120。第一IB子网1100内的源节点1101可以经由中间节点1102将分组(例如,IB分组1110)发送到除了第一IB子网1100之外的第二IB子网中的目的地节点1103。目的地节点1103以虚线示出以表示它在第二IB子网中。
IB分组1110可以包括有效载荷1114和根据IB协议的各种报头。这些报头可以包括全局路由报头(GRH)1111、本地路由报头(LRH)1112以及其它报头1113。此外,IB分组1110可以被应用各种循环冗余校验(CRC)1115。
根据实施例,系统可以利用GRH 1111中的目的地全局标识符(DGID)1121和LRH1112中的目的地本地标识符(DLID)1122的子网前缀部分来支持第一IB子网1100和第二IB子网中的子网内和子网间寻址。
例如,系统可以将IB分组1110中的DLID 1122设置为中间节点1102的DLID(而不是目的地节点1103的DLID)。在IB子网1100内,可以基于如由SA 1120解析出的DLID 1122经由线性转发表LFT查找将IB分组1110路由到中间节点1102。因此,可以使用中间节点1102上提供的分组转发逻辑来处理IB分组1110。类似的分组转发逻辑可以在其它节点1101和1103中提供,并且可以根据需要或期望。
此外,系统可以使用GRH 1111中的DGID 1121的选定部分来指示目的地节点1103的DLID。因此,中间节点1102中的分组转发逻辑能够基于GRH 1111中的DGID 1121信息解析(或获得)目的地节点1103的真实DLID。
根据实施例,中间节点1102可以在必要时执行附加的分组报头1113和/或有效载荷1114修改。例如,架构层访问控制可以以源节点1101和目的地节点1103或者是相关分区的有限成员或者不是相同分区的成员的方式来建立。在这种情况下,可以允许中间节点1102在将修改后的分组转发到目的地节点1103之前,改变IB分组1110中的P_Key值。
图11示出了包括子网前缀转发部分1131的示例性分组1100的DGID部分1121,该子网前缀转发部分1131包括根据实施例使用的子网间路由号(ISRN)1141以及目标子网号1142和目标LID 1143。ISRN 1141允许要由根据实施例配置的架构交换机使用的相同线性转发表(LFT)用于做出子网内转发决策以及用于做出子网间转发决策。实施例支持架构本地/内部子网号以及“全局”子网号,使得单个架构配置内的子网间流量可以使用与不同架构之间的流量不同的子网前缀值。
为了使得能够在分组报头中完全定义端到端的路由而不需要在沿着从源到最终目的地的路径上的任何点处进行从GRH.DGID到DLID的任何映射,实施例提供了GRH.DGID.subnetprefix格式,其包括子网间路由号、目标“架构本地子网号”以及目标子网中的目的地LID值。
在示例实施例中支持与交换机/路由器端口相关联的转发域的方案或协议,其中每个转发域类型定义哪个地址信息用于在LFT中的查找,以及转发域类型的改变是否意味着本地路由报头应该用来自GRH的DLID值进行更新。
根据实施例,使用了以上DGID.subnetprefix格式以便支持具有源子网、中间交换机架构和目标子网的三层转发域结构。源子网1100中的源节点1101和中间节点1102使用分组1100的初始LRH.DLID用于线性转发表(LFT)查找,而在中间交换机架构中到目的地节点1103的转换意味着子网前缀转发部分1131的子网路由号1141用于LFT查找。为了方便,中间交换机架构在本文也可以被称为“核心架构”。
为了指示分组在中间交换机架构类型转发域内被转发,根据实施例,使用了特殊DLID值,其中可以将该特殊DLID值与存储在入口交换机端口中的寄存器中的值进行匹配。该特殊DLID值表示“特殊交换机端口”,其中特殊交换机端口定义本地虚拟子网的“端”。这允许单个LFT查找操作基于GRH.DGID.subnetprefix的相关部分而不是LRH.DLID值。
根据实施例并且为了能够确定何时将发生转发域的变化,每个入口交换机端口包括具有用于相同交换机节点中的每个可能的出口端口的类型状态的一个或多个寄存器,使得如果在LFT中查找的目标端口表示转发域类型的变化,那么在入口路径中的分组处理可以准备用于下一个转发域的分组。
根据示例实施例,在IB分组1110是从源子网1100内的端口(诸如,从源节点1101处的端口)到也在源子网1100内的端口(诸如到中间节点1102处的端口)的子网内转移的情况下,分组的LRH.DLID被直接用于对每个交换机处的LFT进行索引以进行标准的子网内分组转移。
还根据示例实施例,在IB分组1110是从源子网1100内的端口(诸如,从源节点1101处的端口)到源子网1100之外的中间交换机架构的子网间转移的情况下,分组1110的本地路由报头1112的DLID 1122部分被本地更新为被配置为表示源子网1100之外的相关中间交换机架构中的中间交换机架构转发的值。
根据还有的另一个示例实施例并且继续参考图11,在IB分组是从源子网1100之外的中间交换机架构(诸如从目的地节点1103)到目标源子网1100(诸如到或者源节点1101或者中间节点1102)的子网间转移的情况下,LRH.DLID用来自DGID.subnetprefix的DLID字段进行更新,并且然后用于使用目标源子网1100中的LFT查找将分组转发到最终目的地端口。在这个转换中,也有可能验证分组GRH.DGID.subnetprefix中的目标本地子网号是否与该端口表示的本地子网号匹配。这个检查优选地基于每个这种端口中的寄存器。
在示例实施例中,任何交换机端口都可以表示本地(源)子网和中间交换机架构之间的“网关”,并且每个这样的网关交换机端口都用本地子网中的一个或多个特定DLID来识别。因此有可能实现基于胖树的拓扑,其中可以存在多个并行的核心架构。以这种方式,完整架构的寻址可伸缩性可以随着拓扑而缩放,因为每个并行的核心架构可以表示独立路由的域。然后,48K LFT尺寸只是这些并行核心架构中每个核心架构内的限制,并且完整核心架构内的各个“子网间路由号”的数量是并行核心架构数量的48K倍。
此外并且根据实施例,为了能够处理具有内部路由的独立管理的不同架构配置之间的“随机”连接,实施例提供了用于支持架构本地/内部子网号以及“全局”子网号两者的方案,使得单个架构配置内的子网间流量可以使用与不同架构之间的流量不同的子网前缀值。支持方案还提供基于TCAM的查找和完整DGID值的映射,以便允许转发任意的子网前缀和GUID值。
架构模型
作为根据示例实施例的核心架构模型的概述,IB架构配置便于缩放到可以被分解为各个子网的非常大的胖树配置,同时仍然维持能够为各个物理或虚拟目的地明确地路由各个路径的灵活性。系统被构建为以分层方式管理的单个架构配置,但是其中顶层管理实体具有对完整架构的全面可见性。
为了提供大的系统构造灵活性,同时仍然支持不同独立管理的系统之间的本地IB连接性,示例实施例的架构模型实现不由相同单个顶层实体管理的不同架构配置/拓扑之间的“任意的”IB连接性。
示例实施例将路径/路由信息编码为分组GRH中的DGID字段的子网前缀部分1131的一部分,以便实现上述目标并且还用于提供单个架构配置内的子网间通信。示例实施例还支持实现独立IB的架构之间的IB-IB路由的标准子网前缀方案。
除了缩放到具有数百或数千物理主机的非常大的配置之外,示例实施例的系统还便于使用非常小的子网配置,其中单个集成电路芯片可以用于实现多个虚拟交换机,每个虚拟交换机表示由一组不同的子网管理器(SM)管理的不同的IB子网。此外,甚至对于非常大的总体架构配置,这种小子网配置也仍然可以根据需要或期望使用,以便将期望的分解反映到逻辑系统单元中。另一方面,一些配置可以具有非常大的单个子网拓扑,这些子网拓扑仍然是更大的单个架构的一部分。
一般而言,对扩大以及缩小的灵活性的需求对用于处理分组路由和转发决策的芯片上系统资源方面提出了挑战。这包括子网内和子网间转发两者,并且特别是处理不同子网中各个虚拟端点的能力。
本文的实施例提供了用于减少在单个架构配置内为子网内和子网间流量两者实现可扩展的、灵活的和确定性的路由/转发所需的芯片上系统资源量的方案。特别地,“子网间路由号”(ISRN)可以用于经由可用于表查找的编号以类似于单个子网内基于LID的表查找的方式识别子网间路由。此外,否则标准或“传统”的线性转发表被用于子网内和子网间两者的转发决策。例如,图12示出了可以通过或者LRH.DLID值或者ISRN值等效地从0-48k进行索引的线性转发表(LFT)1200的一部分。在图示的LFT 1200中,表中的每个条目都包含或者支持的端口号或者表示未使用的条目的“0×FF”条目。另外,还支持架构本地/内部子网号以及“全局”子网号,使得单个架构配置内的子网间流量可以使用与不同架构之间的流量不同的子网前缀值。更进一步,提供并支持GRH.DGID.subnetprefix格式。在示例实施例中,GRH.DGID.subnetprefix格式包括“子网间路由号”、目标“架构本地子网号”以及目标子网中的目的地LID值,以便使得能够在分组报头中完全定义端到端的路由,而不需要在沿着从源到最终目的地的路径上的任何点处进行从GRH.DGID到DLID的任何映射。
提供了基于叶子交换机的转发,以便允许在各个子网之间具有“随机化”多路径转发的分层拓扑。此外,为了能够处理不同架构配置之间的“随机”连接性,示例实施例支持架构本地/内部子网号以及“全局”子网号两者,使得单个架构配置内的子网间流量可以使用与不同架构之间的流量不同的子网前缀值,并且提供基于TCAM的查找和完整DGID值的映射,以便允许转发任意的子网前缀和GUID值。
本地架构
根据实施例,“本地架构”是表示一个或多个物理“叶子子网”和/或“核心架构”拓扑内和之间的连接性的物理IB架构基础设施。本地架构以分层方式进行管理,但是具有以下约束:诸如例如控制平面软件的顶层中央管理实体能够管理任何ID值分配并且贯穿完整的本地架构观察物理连接性和路由(分组转发)约束(即本地架构的“整体视图”)。
远程架构
根据实施例,“远程架构”是经由一个或多个IB链路连接到本地架构的任何IB架构拓扑/基础设施,但是其中链路的远程侧的端口不受与本地架构相同的顶层中央管理实体控制。连接两个独立本地架构的端口通常被配置为路由器端口。因此,根据实施例,这两个端口形成最小的IB子网。
网关子网
根据实施例,“网关子网”是通常通过将来自一个本地架构的一个路由器端口与来自另一个本地架构的恰好一个路由器端口连接(即,没有中间交换机)而形成的“平凡”物理IB子网。网关子网具有在连接时建立的平凡配置,并且分组转发策略由每侧的路由器独立控制。两个路由器端口实现相互发现协议,以便了解远程架构。可替代地和/或附加地,每个本地架构中的管理输入可以根据需要或期望选择性地使用,以定义应当通过不同的网关子网路由的一组一个或多个远程子网号和各个GID。本文的网关子网定义的重要方面在于,它将两个顶层管理域之间的边界放置在IB链路上而不是必须被管理的路由器或交换机设备上。
更复杂的网关子网意味着网关子网内的交换机也需要管理,并且这种管理引入了在直接链路情况下不存在或明显较少的复杂性和策略问题。因此,不是在单条链路的每一侧具有良好定义的所有者,而是网关子网的所有权问题成为一个问题。但是,与任何大规模联网一样,可以想象,其中多个本地架构经由一个或多个其它本地架构连接的更复杂的配置(即,中间本地架构的管理员确定不同连接的远程架构如何被允许经由这个本地架构通信)。本文的实施例适用于这个更复杂的网关模型,因为每个本地交换机可以具有到多个其它本地架构的连接性。在任何情况下,甚至在这些类型的中间本地架构的情况下,任何一对本地架构之间的边界优选地是如上定义的最小网关子网。
叶子子网
“叶子子网”是具有其自己的单播和多播LID空间的物理IB子网。主机类型的端节点(诸如计算和存储服务器)通常经由单个叶子子网连接到本地架构。但是,单个主机也可以根据需要与多个叶子子网连接。叶子子网由一个或多个合作的子网管理器(SM)实例配置和控制,并且在叶子子网内,分组基于分组报头的LRH.DLID部分被转发。叶子子网可以由传统交换机组成,并由管理上定义的“标识子网号”(ISN)来识别,该ISN表示对正在控制叶子子网的一组子网管理器以及中央顶层管理实体的策略输入。ISN可以是全局唯一的,并且优选地跨可以经由IB链路(即,经由网关子网)直接连接的所有本地架构是唯一的。每个叶子子网可以经由端口连接到一个或多个“核心架构”,并且当每个叶子子网连接到至少一个核心架构时,它与至少一个“架构本地子网号”(FLSN)相关联。FLSN值具有本地架构的范围,并且由本地架构管理基础设施分配。此外,叶子子网可以经由不表示核心架构连接性的路由器端口连接到其它IB子网。在一般情况下,这种“全局”连接性表示经由网关子网与远程架构的连接性,对于这种全局连接性,ISN值用于来自远程子网/架构的叶子子网的基于DGID的寻址。但是,也可以以这种方式连接同一本地架构中的两个叶子子网,即,没有本地核心架构。这种连接性可以使用或者基于ISN或者基于FLSN的DGID寻址。直接从叶子子网的基于路由器端口的连接性(或者在本地架构内或者到远程架构)可能涉及或者系统端口或者其它路由器实现。
核心架构
根据实施例,“核心架构”是根据示例实施例的在单个本地架构的上下文内连接一个或多个叶子子网的拓扑。表述“中间交换机架构”在本文可以替代地使用。根据实施例,核心架构在单个叶子子网的不同部分(诸如例如在同一物理子网内已经具有直接连接的部分)之间提供附加的连接性。在示例实施例中,优选地,单个核心架构表示单个“子网间路由号”(ISRN)值空间。单个核心架构可以具有直接连接的端节点。端节点的特例是交换机管理端口(端口0)。这些端口可以经由专用的ISRN值到达,并且需要基于GRH的通信。通常经由物理IB链路和/或系统端口连接的物理端节点表示单独的FLSN(或ISN)值,并且通信优选地是基于GRH的。这种直接连接的端节点然后通常表示仅具有两个端口和单条链路(即,端节点端口和相关系统端口)的“平凡”叶子子网。应该认识到的是,在示例实施例的环境中,只要端节点实现能够处理可能不唯一的DLID值,直接连接的物理端节点也可以经由专用的ISRN值寻址。由于对于整个本地架构FLSN值通常必须是全局的,因此为了减少所需的值空间,单独的FLSN值可以选择性地不分配给这样的端端口。
根据示例实施例的单个核心架构以类似于常规物理IB子网内的其它处理的方式处理或以其它方式处理直接路由(DR)子网管理分组(SMP)。但是,根据实施例,单个核心架构被配置为支持基于LID的转发以及基于ISRN的转发。相应地,所使用的总LID值空间与所使用的总ISRN值空间进行协调。协调包括使用相同的物理LFT资源的不同部分用于这两种类型的转发,并且将这些部分的尺寸配置为每个系统端口的运行时配置参数。
在示例实施例中,只要涉及的硬件部件可以支持两个所使用的值空间的总和,那么对重叠的LID和ISRN值没有限制。假设分配了足够的LID值空间,那么可以经由基于LID的寻址到达系统端口0实例以及直接连接的端节点。以这种方式,单个核心架构实例也可以表示常规的IB子网,并且因为它正在用作一个或多个(其它)叶子子网之间的核心架构,因此它同时表示本地架构内的目的地叶子子网。
此外,在示例实施例中,单个核心架构可以具有到一个或多个其它单个核心架构的直接物理连接,同时仍然为每个这种单个核心架构维持独立的ISRN值空间。DR SMP可以用于在两个核心架构实例之间通信,而不依赖于所支持的任何其它类型的转发。基于值空间的协调以及或者LID或者ISRN空间的特定子集的保留,可以使用或者基于LID或者基于ISRN的寻址来允许或以其它方式实现两个核心架构中的所有端节点或端节点的子集之间的通信。
在示例实施例中,单个核心架构可以具有表示到远程架构的连接性的一个或多个路由器端口。即,它们是独立的本地架构,没有任何协调的FLSN或ISRN空间。这种远程连接性优选地使用网关子网来实现。在这种情况下,向/从本地端节点或连接的叶子子网转发分组是基于具有基于ISN的子网前缀值的GRH以及在DGID字段中相关联的GUID值。这种转发不取决于DGID的任何部分的任何特定格式,而是依赖于基于TCAM的转发。
寻址模式
根据实施例,分组的“寻址模式”定义将用于确定分组应该如何从源转发到目的地的特定报头信息。IB分组可以包括多个报头(即,LRH和GRH),其包含关于分组应该如何从源转发到目的地的信息。因此,分组的寻址模式定义了哪个这种信息要用于下一个转发决策。
在示例实施例中,在这种上下文中的相关寻址模式包括以下:
LRH/DLID寻址模式;
GRH/ISRN寻址模式;
GRH/LeafSwitch寻址模式;以及
GRH/DGID寻址模式。
转发模式
根据实施例,“转发模式”适用于执行分组转发决策的交换机端口。虽然“寻址模式”概念适用于IB分组的报头,但是执行转发决策的交换机端口以与某种分组寻址模式对应的“转发模式”进行操作。交换机端口可以同时支持多于一种寻址模式。因此,为了允许交换机端口为特定分组选择正确的转发模式,分组可能必须包含允许交换机端口确定性地确定寻址模式的信息。这样的信息包括DGID类型信息以及已经被保留以表示特定转发模式(例如GRH/ISRN)的特定DLID值。而且,在一些情况下,下一跳寻址模式是分组中的地址信息以及与架构中的端口相关联的配置信息的功能。在示例实施例中确定何时到达目的地叶子子网的能力是作为分组中的地址信息以及与架构中的端口相关联的配置信息的功能的下一跳寻址模式的示例。
转发域
根据实施例,任何特定的叶子子网、核心架构或网关子网实例可以表示“转发域”。当IB分组通过完整的IB架构被转发时,它穿过一个或多个“转发域”,诸如图13中所示,其中每个这样的转发域表示特定的转发模式以及特定的地址值空间。根据实施例,“转发域”是多个叶子子网和多个核心架构之间的边界。在最直接的转发方案中,任何个体系统实例将属于单个转发域,例如,单个叶子子网或单个核心架构实例。在这种情况下,任何一对叶子子网或核心架构实例之间的所有边界都存在于连接不同系统实例的一个或多个链路上。为了允许叶子子网和核心架构实例两者都具有任意大小,各个系统实例被选择性地划分为两个或更多个“虚拟交换机”实例,其中每个这样的虚拟交换机表示一个或多个“虚拟交换机端口”的集合,该一个或多个“虚拟交换机端口”都表示到或者单个叶子子网或者单个核心架构/在或者单个叶子子网或者单个核心架构内的连接性。在这种情况下,任何一对转发域之间的边界将存在于连接两个或更多个虚拟交换机实例的系统交叉开关内。
如图13所示,在源子网内,使用原始(或传统)LRH.DLID方案在第一转发域中执行LFT查找。在第二转发域中,如图所示,根据本文的示例实施例,使用ISRN方案执行当将分组从源子网转发到核心架构时在核心架构内的LFT查找。另外并且如图所示,使用基于目标LID 1143(图11)的LRH.DLID执行当将分组从核心架构转发到目标子网时在第三转发域中的LFT查找。
网关端口
根据实施例,表示到转发域的连接性的物理系统端口在本文被称为“网关端口”。由于下面阐述的原因,网关端口是从向网关端口发送分组的同一系统实例上的另一个端口的角度定义的。首先,向网关端口发送分组意味着该分组的寻址模式被改变,因为发送是以下之一:
I.将源叶子发送到核心架构,
II.将核心架构发送到目的地叶子,或者
III.将源叶子发送到目的地叶子。
由于分组的寻址模式适用于对于从IB链路接收到的分组如何作出转发决策,因此当从图13所示的一个转发域跨越到另一个转发域时,根据实施例,寻址模式的改变被实现为分组从系统入口端口被移动到出口端口,诸如可以是例如网关端口。当分组从网关/出口端口转发到IB链路时,寻址模式然后将处于活动状态。
由于这个原因,网关端口是从向网关端口发送分组的同一系统实例上的另一个端口的角度定义的。
应该认识到的是,表示不同转发域之间的边界的链路通常将在链路两侧都具有网关端口。在链路两侧都具有网关端口的动机是确保链路两侧都包含转发策略更新,从而消除跨链路进行任何写类型管理操作的需要。例如,如果链路的一侧表示核心架构并且链路的另一侧表示叶子子网,那么叶子子网侧的子网管理器根据示例实施例对在IB链路上接收到的分组的转发具有完全的控制。
在示例实施例中,链路上的分组通常在每个方向上都具有不同的寻址模式,并且IB链路的每一侧上的端口的转发模式将对应于链路的那一侧上的“转发域”。例如,如果链路的一侧表示核心架构,并且链路的另一侧表示叶子子网,那么从核心架构转发到叶子子网的分组将具有基于LRH/DLID的寻址模式,如图13右侧所示,并且从叶子子网转发到核心架构的分组将具有基于GRH/ISRN的寻址模式,如图13左侧所示。
应该注意的是,在单个网关端口仅位于链路的一侧的情况下,该单个网关端口将作为链路远侧的转发域的一部分进行管理。作为示例,如果链路的一侧表示核心架构,并且另一侧表示叶子子网,并且如果在叶子子网侧没有网关端口,那么链路的核心架构侧的端口也需要是叶子子网的一部分,并且还需要由叶子子网中的子网管理器配置其转发逻辑。由于这意味着该子网管理器然后有效地实现了核心架构内的第一跳转发,因此两个转发域之间的不必要的依赖性可以通过将转发域之间的边界从链路移动到网关端口在核心架构侧所位于的系统交叉开关来有效地消除。相对于在另一个方向上的分组的转发对应地遵循以上所述。
另一方面,在链路两侧都具有网关端口的情况下,转发域之间的唯一依赖关系是通过网关端口并且到IB链路上的分组的转发是在保证分组具有或提供有正确的寻址模式的情况下执行的。由于分组的输出端口在执行寻址模式的改变时已经被决定,因此寻址模式的改变在这一点对转发/路由决策没有影响。
在接收侧,入口分组处理和转发决策是根据标准的子网内协议执行的,就像对于该转发域中的任何交换机端口一样。
在单个系统实例内基于交叉开关的边界的情况下,相对于同一交叉开关上的任何虚拟交换机实例(即,在同一系统实例内)作为网关端口的任何物理端口也可以是同一系统实例内的另一个虚拟交换机内的虚拟交换机端口。
特殊情况涉及将系统实例连接到某个叶子子网或核心架构的单个端口。虽然在技术上讲,单个端口在定义上不是交换机,因为它可以在本地子网/转发域内的其它源端端口和目标端端口之间执行分组转发,但是从IBTA的角度来看,仅具有单个外部端口的交换机仍然是有效的构造,因为它提供对交换机管理端口的访问,从而允许交换机管理端口用作子网内的端点。在本示例实施例中,这样的单个端口对于交换仍然是相关的,因为它经由基于交叉开关的转发域边界提供对其它叶子子网和/或核心架构的访问。因此,从远程叶子子网或核心架构的角度来看,它提供对多个网关端口的访问,而不是对本地转发域内的任何虚拟交换机端口的访问。
除此之外,应该注意的是,如果多于一个物理端口将系统实例连接到相同的核心架构或叶子子网,那么这个端口的集合将默认地被表示为虚拟交换机实例。但是,从架构拓扑的角度来看,可能不需要这种交换连接性,并且将端口的集合表示为一个或多个虚拟交换机将是架构定义策略的问题,包括所有各个端口仅提供到其它叶子子网或核心架构中的网关端口的连接性,而不允许到同一转发域中的其它端口的连接性的情况。
叶子子网虚拟交换机
根据实施例,“叶子子网虚拟交换机”将连接到同一叶子子网的单个系统实例上的一个或多个物理端口的集合定义为基准。如果正在使用架构本地子网号(FLSN),那么同一叶子子网虚拟交换机中的所有端口通常将表示相同的FLSN值。应该注意的是,从概念上讲,同一叶子子网虚拟交换机内的不同端口可以表示不同的FLSN值,并且即使每个端口都表示同一物理子网,它们也可以表示多于一个值。而且,相同的FLSN值可以与不同物理叶子子网中的叶子子网虚拟交换机端口相关联。
上述方案的一个动机是允许叶子子网之间的VM迁移,而不会意味着路径信息的改变。但是,为了维持完整的路径信息,可以保留DLID或者可以向可以在这些例外情况下使用的DLID提供映射功能。
在有限数量的映射资源以及有限数量的每端口多于一个FLSN值的情况下,根据另一个示例实施例的高级方案是使用两步迁移方案,其中迁移是在第一轮中没有任何路径更新的情况下使用一些有限的硬件资源执行的,同时提供并行路径更新处理,使得一旦路径信息已经被所有相关对等方更新并且原始路径/地址不再需要时,有限的硬件资源可以被再次释放。
在示例实施例中,叶子子网虚拟交换机经由标准SMA属性将其自身呈现为标准IB交换机。因此,传统子网管理器(SM)能够以与作为本地子网的一部分的任何其它标准IB传统交换机类似的方式来发现和配置基于系统的叶子子网虚拟交换机。
还在示例实施例中,叶子子网虚拟交换机可以被扩展以表示到本地架构的其它部分或者到提供到远程架构的连接性的网关子网的连接性。这种连接性意味着一个或多个“特殊”端口被包括在叶子子网虚拟交换机中,并且可以诸如例如经由特殊的SMA属性作为在同一个虚拟交换机上的附加端口号被直接观察到。即,一个或多个核心架构网关端口可以提供到一个或多个核心架构的连接性,并且一个或多个虚拟路由器端口可以提供到物理路由器端口以及到叶子子网虚拟交换机的范围之外的各种其它端口的连接性。
例如,虚拟路由器端口可以经由标准的SMA属性被间接地观察到,但是然后由另一个交换机端口来表示,该另一个交换机端口具有到被识别为路由器端口的另一个端口的(虚拟)链路。
以这种方式,传统的子网管理器(SM)能够发现和利用到其它子网的基于路由器的连接性。但是,应该认识到的是,系统感知的子网管理器(SM)将利用特殊的SMA属性来直接发现特殊端口,因此削弱了对“传统SM”支持的需要。
进一步关于示例实施例,一个或多个叶子子网网关端口可以提供到一个或多个其它叶子子网的连接性。
叶子子网虚拟交换机端口
根据示例实施例,叶子子网虚拟交换机端口可以属于叶子子网虚拟交换机实例,并且使用LRH.DLID值以便诸如例如为到达IB链接的分组查找输出端口号。相对于该叶子子网虚拟交换机实例输出端口号表示的端口的类型在示例实施例中由对成员物理端口可用的配置信息来定义。输出端口可以表示同一叶子子网虚拟交换机中的另一个虚拟交换机端口、核心架构网关端口、提供到另一个叶子子网的直接连接性的虚拟路由器端口或叶子子网网关端口。输出端口通常可能不是物理路由器端口,因为这意味着新的LRH将基于分组GRH以动态方式来构建,并且这只能经由虚拟路由器端口来完成。
应该认识到的是,给定仅具有两个端口(即,本地和远程路由器端口)的简化网关子网的定义,有可能提供简化的方案,其中用于下一跳的DLID或者基于固定值,或者将基于使本地物理路由器端口记录远程路由器端口的LID值,并且确保其用作下一跳DLID。
还应该认识到的是,从另一个叶子子网虚拟交换机或核心架构虚拟交换机的角度来看,作为叶子子网虚拟交换机端口的物理端口也可以作为叶子子网网关端口来操作。
核心架构虚拟交换机
根据实施例,“核心架构虚拟交换机”将连接到同一核心架构的单个系统实例上的一个或多个物理端口的集合定义为基准。
在示例实施例中,核心架构虚拟交换机经由选定的特殊SMA属性将自身呈现为特殊的IB交换机。因此,传统子网管理器(SM)将不能发现和配置示例实施例的系统的核心架构虚拟交换机。
可以扩展核心架构虚拟交换机以表示到本地架构的其它部分或者到提供到远程架构的连接性的网关子网的连接性。这种连接性意味着一个或多个其它“特殊”端口被包括在核心架构虚拟交换机中,并且可以例如经由特殊的选定的SMA属性作为在同一虚拟交换机上的附加端口号被直接观察到,其中一个或多个叶子子网网关端口可以提供到一个或多个叶子子网的连接性,一个或多个虚拟路由器端口可以提供到物理路由器端口以及到叶子子网虚拟交换机的范围之外的各种其它端口的连接性,并且一个或多个核心架构网关端口可以提供到一个或多个其它核心架构的连接性。
核心架构虚拟交换机端口
根据示例实施例,核心架构虚拟交换机实例的核心架构虚拟交换机端口使用GRH.DGID.ISRN值以便为到达IB链路的分组查找输出端口。相对于该核心架构虚拟交换机实例查找的端口号表示的输出端口的类型由对成员物理端口可用的配置信息来定义。输出端口可以表示同一核心架构虚拟交换机中的另一个核心架构虚拟交换机端口、叶子子网网关端口、虚拟路由器端口、或提供到另一个核心架构的直接连接性的核心架构网关端口。
输出端口通常可能不是物理路由器端口,因为这意味着新的LRH必须基于分组GRH以动态方式来构建,并且这只能经由虚拟路由器端口来完成。
应该认识到的是,从另一个叶子子网虚拟交换机或核心架构虚拟交换机的角度来看,作为核心架构虚拟交换机端口的物理端口也可以作为核心架构网关端口来操作。
核心架构网关端口
应该认识到的是,在基于系统交叉开关的虚拟交换机和转发域边界的情况下,从表示相关核心架构连接性的核心架构虚拟交换机的角度来看,作为核心架构网关端口的物理端口也可以作为核心架构虚拟交换机端口来操作。因此,从物理交换机端口的角度来看,除了在本节中描述的网关端口相关的转发之外,分组转发替代方案还包括以上针对“核心架构虚拟交换机端口”所描述的那些。
根据示例实施例,核心架构网关端口表示这样的端口,即,该端口处理到相对于一个或多个叶子子网虚拟交换机端口或属于同一系统实例中的其它核心架构虚拟交换机(诸如,例如,其中那些虚拟核心架构交换机也表示其它核心架构实例/转发域)的(一个或多个)核心架构虚拟交换机端口的核心架构实例的入口或从其的出口。
经由系统交叉开关接收分组的核心架构网关端口通常不会改变任何寻址模式,而是依靠于接收到的分组已经用来自转发它的系统入口端口的正确寻址被建立。
应该注意的是,在示例实施例中,由于物理端口可以具有多个角色,并且特定角色是在从入口端口转发分组的点处决定的,因此通常不需要在出口端口处更新地址信息,除非某个硬件设计约束使这种流水线更高效。
在基于链路的转发域边界的情况下,核心架构网关端口是本地系统实例表示的叶子子网的转发域的一部分。因此,到达IB链路的分组的转发模式是“LRH/DLID”转发模式。
在基于系统交叉开关的转发域边界的情况下,核心架构网关端口是由远程核心架构实例定义的转发域的一部分。因此,到达IB链路的分组的转发模式是“GRH/ISRN”转发模式。
相对于相关转发域查找的端口号表示的输出端口的类型(即网关端口表示的核心架构实例)由对物理端口可用的配置信息(即,与为物理端口的虚拟交换机端口个性(如果有的话)概述的信息相同的信息)来定义。
输出端口可以表示叶子子网网关端口,或者另一个核心架构网关端口(诸如可能是当两个核心架构经由单个系统交叉开关连接时的情况),并且也可以表示虚拟路由器端口。
图14示出了根据实施例的将分组报头从GRH/ISRN寻址模式格式修改为基于LRH/DLID的转发格式的图示。当分组经由系统交叉开关从核心架构网关端口移动到叶子子网网关端口时,那么这个转换表示从GRH/ISRN寻址模式改变为基于LRH/DLID的转发。如图所示,这意味着在新分组1400的报头中用从分组GRH 1111提取出的DLID 1143(即,特定于系统的GRH.DGID.remoteDLID字段)构建新的LRH。应该注意的是,一般而言,独立于将分组FLSN值与和叶子子网网关端口相关联的FLSN值关联,这种转发是被良好定义的。即,为了实现寻址模式的改变,唯一需要的信息是出口端口从入口端口的角度来看被定义为叶子子网网关端口,并且这与所涉及的FLSN值无关。基于这个观察,分组FLSN值与端口FLSN值的任何关联本质上都是路由被正确建立的“断言”。
这个问题类似于与端节点相关联的(一个或多个)LID的问题。为了在发送分组时生成正确的SLID,需要(一个或多个)本地LID,但是只要子网根据LID分配被正确地路由,那么一旦分组已到达目的地端节点,本质上就不需要处理传入分组中的DLID。只要交换机转发表以相对于向端节点分配初始或新LID值的正确顺序被更新,那么端节点将永远不会观察到其中接收到的DLID与分配的LID冲突的情况。
另一方面,使DLID检查在端节点中是可选的意味着架构原则上可以使用任意数量的LID和相关联的路由来转发到单个端节点。在目的地是叶子子网的情况下,使FLSN值检查是可选的意味着不同叶子子网之间的VM迁移可以被更灵活地实现。
图15是根据实施例的提供定义用于将分组转发从LRH/DLID寻址模式改变为GRH/ISRN寻址模式的特殊交换机端口边界的机制的交换机的图示。当分组经由系统交叉开关从叶子子网网关端口移动到核心架构网关端口时,那么这个转换表示从LRH/DLID寻址模式改变为GRH/ISRN寻址模式。如图所示,这意味着新的LRH用识别基于ISRN的转发的固定DLID进行构建。在这方面,交换机1500提供了定义用于将分组转发从LRH/DLID寻址模式改变为GRH/ISRN寻址模式的特殊交换机端口边界的机制。根据支持进入到中间交换机架构中的入口的实施例,在架构的选定交换机1500中提供了由此可以定义边界的机制。在实施例中,定义了“特殊交换机端口”(SSP)1510,其中SSP表示本地子网的“端”。在实施例中,分组使用原始/正常本地路由报头1112中的DLID 1122(图11)经由表示虚拟子网的虚拟端端口的LFT1200(图12)指向SSP 1510。SSP被提供有指示在这一点处它表示这个子网中的“端端口”的属性。特殊属性指示转发模式的改变–其中在下一级转发中,它不是使用本地路由报头1112中的DLID 1122,而是使用来自GRH/L3地址的64位子网前缀号部分的指定/专用位字段1131。本质上,根据示例实施例,原始DLID 1122用指定/专用位字段或其一部分替换,以形成用于在基于ISRN的转发中使用的新的DLID 1110'。
在实施例中,交换机1500可以使用基于LID的过滤技术。在这个实施例中,交换机1500可以包括接收(Rx)过滤器1520,其可以识别针对SSP 1510的分组。因此,交换机1500可以将针对SSP 1510的数据流流量与针对正常/传统转发模态端口1530的数据流流量分离。例如,Rx过滤器1520可以基于服务DLID(例如,使用基于DLID的过滤)分离混合的数据流流量。以下是示例性分组转发逻辑DLID表:
DLID=0xF
DLID=0xFF
当传入的分组具有匹配的DLID(例如0xF或0xFF)时,Rx过滤器1520可以将分组引导到SSP 1510。另一方面,如果传入的分组不具有匹配的DLID(即,具有除0xF和0xFF以外的其它DLID),那么Rx过滤器1520可以将传入的分组引导到正常/传统的转发模态端口1530,其可以使用IB协议引擎来根据标准IB协议处理IB分组。
根据示例实施例,当分组在核心架构网关端口和另一个核心架构网关端口之间移动(即,连接到不同的核心架构实例)时,那么相同的GRH.DGID.ISRN值仍然用于转发。因此,管理软件确保从一个核心架构实例跨越到另一个核心架构实例的分组流量正在表示在两个或更多个核心架构中一致地进行处理的GRH.DGID.ISRN值,因为在默认情况下,每个核心架构实例表示其自己的ISRN价值空间。
当分组从核心架构网关端口移动到虚拟路由器端口时,那么下一步转发方案是由虚拟路由器端口实现的策略的功能。
输出端口通常可能不是物理路由器端口,因为这意味着新的LRH要基于分组GRH以动态方式来构建,并且这经由虚拟路由器端口来执行。
叶子子网网关端口
在基于系统交叉开关的转发域边界的情况下,从表示相关叶子子网连接性的叶子子网虚拟交换机的角度来看,作为叶子子网网关端口的物理端口也可以作为叶子子网虚拟交换机端口来操作。因此,从物理交换机端口的角度来看,除了在本节中描述的网关端口相关的转发之外,分组转发替代方案还包括以上针对“叶子子网虚拟交换机端口”所描述的那些。
根据示例实施例,叶子子网网关端口表示这样的端口,即,该端口处理到相对于一个或多个核心架构网关端口和/或属于同一系统实例中的其它叶子子网虚拟交换机的一个或多个叶子子网虚拟交换机端口的叶子子网实例的入口或从其的出口。在这方面,经由系统交叉开关接收分组的叶子子网网关端口通常不会改变任何(一个或多个)寻址模式,而是依赖于接收到的分组已经用来自转发它的系统入口端口的正确寻址被建立。
在基于链路的转发域边界的情况下,叶子子网网关端口是特定系统实例表示的核心架构的转发域的一部分。因此,到达IB链路的报文的转发模式是“GRH/ISRN”转发模式。
在基于系统交叉开关的转发域边界的情况下,叶子子网网关端口是由远程叶子子网实例定义的转发域的一部分。因此,到达IB链路的报文的转发模式是“LRH/DLID”转发模式。
输出端口可以选择性地表示核心架构网关端口,或者其它叶子子网网关端口(诸如当两个叶子子网经由单个系统交叉开关连接时),并且也可以表示虚拟路由器端口。
根据示例实施例,当分组经由系统交叉开关从叶子子网网关端口移动到核心架构网关端口时,那么这个转换表示从基于LRH/DLID的转发模式改变为基于GRH/ISRN的转发模式。
根据示例实施例,当分组经由系统交叉开关从核心架构网关端口移动到叶子子网网关端口时,那么这个转换表示从GRH/ISRN寻址模式改变为LRH/DLID寻址模式。
根据示例实施例,当分组在叶子子网网关端口和另一个叶子子网网关端口之间移动(即,连接到不同叶子子网)时,那么原始分组LRH.DLID值用于查找输出端口,但是对于如何为下一跳构建LRH存在两种替代方案,如下面阐述的。
作为第一种替代方案,如果分组没有GRH并且目的地端口允许“未经修改的LID转发”,那么分组以相同的LRH.DLID被转发。因此,在这种情况下,由管理软件来确保在不生成新的LRH.DLID的情况下从一个叶子子网实例跨越到另一个子网实例的分组流量正在表示在两个叶子子网中一致地进行处理的LRH.DLID值,因为在默认情况下,每个叶子子网实例表示其自己的LID值空间。
作为第二种替代方案,如果分组具有确实表示基于ISRN转发的GRH,那么如果存在与输出端口的FLSN匹配则分组被转发。应该注意的是,与在以上讨论的核心架构网关端口中指出的类似,在这种情况下,只要路由和转发表建立被正确地完成,就通常不需要执行FLSN匹配。
仍然,根据实施例,FLSN检查的使用可以被选择性地启用,以便实际验证不同转发域之间分组的转发不与FLSN分配冲突。同样在这种情况下,使FLSN值检查是可选的意味着不同叶子子网之间的VM迁移可以被更灵活地实现,如下面关于VM迁移所阐述的。
作为还有的替代方案,如果分组具有不表示基于ISRN的转发的GRH,但是目的地端口允许“未经修改的LID转发”,那么分组用相同的LRH.DLID被转发。因此,同样在这种情况下,管理软件确保在不生成新的LRH.DLID的情况下从一个叶子子网实例跨越到另一个叶子子网实例的分组流量正在表示在两个叶子子网中一致地进行处理的LRH.DLID值,因为在默认情况下,每个叶子子网实例表示其自己的LID值空间。
当分组从叶子子网网关端口移动到虚拟路由器端口时,那么下一步转发方案是由虚拟路由器端口实现的策略的功能。输出端口通常可能不是物理路由器端口,因为这意味着新的LRH要基于分组GRH以动态方式来构建,并且这经由虚拟路由器端口来执行。
组合的核心架构和叶子子网虚拟交换机
根据示例实施例,组合的核心架构和叶子子网虚拟交换机构造允许同一组端口同时提供核心架构和叶子子网虚拟交换机的属性。这种构造的一个动机是允许基于非GRH的数据和控制流量在与核心架构中的一个或多个系统实例直接连接的节点之间发生。以上介绍了核心架构内的转发选项。
从主题实施例的实现角度来看,只要物理系统端口具有定义相对于该端口的角色可以用作输出端口的其它端口的角色的配置信息,就需要强加以下限制:特定的一组端口被定义为组合的核心架构和叶子子网虚拟交换机,而不是允许不同虚拟交换机实例之间的物理端口成员资格部分重叠。
组合的核心架构和叶子子网虚拟交换机端口
根据示例实施例的组合的核心架构和叶子子网虚拟交换机端口支持GRH/ISRN转发模式和LRH/DLID转发模式两者。
为了执行基于GRH/ISRN的转发,LRH.DLID是特定的预定义值,其对于基于ISRN的路径中的所有端口是公用的。因此,这个LID值可以或者是系统芯片级常数,或者它优选地可以由每个物理端口寄存器来定义。
在逻辑线性转发表(LFT)容量方面,组合的端口可以支持可配置数量的DLID条目以及另一个可配置范围的ISRN值。
应该注意的是,一般而言,优选地,在同一虚拟交换机中的所有端口具有相同的DLID和/或ISRN LFT容量,使得该组值可以被任何端口支持。但是,这仅仅是示例实施例的配置策略而不是实现约束。
类似地,在示例实施例中,选择性地定义包括组合的虚拟交换机实例类型和单个虚拟交换机实例类型的每个虚拟交换机实例,以逻辑上表示每个端口线性转发表(LFT)或者对于所有虚拟交换机端口逻辑上公用的LFT。但是,这是固件选项,因为在示例实施例中,物理LFT实现在每个端口或每组双端口地进行分布。这种固件选项的一个原因显然是支持符合IB规范的IB交换模式,以及能够使用不支持分布式LFT的子网管理器和路由引擎以及初始化引擎。
虚拟路由器端口
在示例实施例中,虚拟路由器端口由物理端口范围之外的系统端口号表示。因此,虚拟路由器端口不直接与物理链路相关联。任何虚拟交换机端口都可以查找虚拟路由器端口,然后虚拟路由器端口使用分组GRH上的可配置路由功能以便定义物理输出端口和下一跳LRH。
应该注意的是,示例实施例中的路由功能既包括同一本地架构中的端点之间的分层转发,又包括独立本地架构实例之间的通用转发。
如果没有GRH的分组被发送到虚拟路由器端口,那么优选地,或者分组被丢弃或者新的LRH和物理输出端口基于可配置功能来生成。
如果因为来自分组的DLID或ISRN值在端口所支持的LFT范围之外而导致基于LFT的查找是不可能的,那么每个虚拟交换机端口具有相关联的用作中间输出端口的默认虚拟路由器端口。在这种情况下,虚拟路由器端口可操作,以选择性地或者根据IB规范作为默认选项丢弃分组,或者对分组报头执行可配置功能以便定义物理输出端口和下一跳LRH。
物理路由器端口
在示例实施例中,物理路由器端口是处理到本地架构实例的入口或从本地架构实例的出口的端口。物理路由器端口被表示为链路侧的符合IB规范的路由器端口。
在示例实施例中,物理路由器端口与和用于从链路侧到达的分组的虚拟路由器端口相同的分组转发逻辑相关联。
在示例实施例中,物理路由器端口被虚拟路由器端口或已经对分组的分组GRH执行选定功能的另一个物理路由器端口查找或以其它方式引用,并且然后产生旨在物理路由器端口的链路上退出的新的LRH。
基于与最小网关子网中的远程路由器端口相关联的远程DLID值提供了简单的LRH.DLID插入。
子网间路由号(ISRN)
根据示例实施例,子网间路由号(ISRN)是由分组GRH.DGID.subnetprefix的可变部分定义的用于对核心架构实例内的LFT条目进行索引的值。ISRN值空间是每个核心架构实例,并且架构全局管理器(FGM)协调ISRN值的使用。
在示例实施例中,要使用ISRN值转发的分组具有特殊的保留的LRH.DLID值,其向接收端口指示ISRN值应该用于基于LFT的转发。
在实施例中,系统端口具有“多个个性”的能力意味着分组应该包含关于要使用的特定类型的转发机制的信息,而不是将这(仅)作为每个端口配置信息。
架构本地子网号(FLSN)
根据示例实施例,架构本地子网号(FLSN)是识别本地架构内的目的地子网的值。优选地,所有FLSN号都由架构全局管理器(FGM)分配和管理。基于ISRN值被转发的任何分组也具有目的地FLSN值。
FLSN值与承担逻辑端口角色的叶子子网网关端口相关联,并且转发到这些端口的分组将具有与端口FLSN号匹配的分组FLSN号,以便确定已到达目的地子网。
在实施例中,系统端口具有“多个个性”的能力意味着,分组基于分组和端口信息的组合被认定为已到达其目的地子网,而不是简单地依赖每个端口配置信息。
架构全局管理器(FGM)
根据示例实施例,架构全局管理器(FGM)是能够执行发现和配置完整本地架构实例的“超级子网管理器”。FGM与每个个体叶子子网中的“FGM感知的”子网管理器合作。
应该注意的是,每个叶子子网子网管理器能够独立于FGM管理其自己的本地叶子子网,但是将取决于FGM以便促进涉及任何核心架构或本地架构中的其它叶子子网的任何子网间流量。
标识子网号(ISN)
根据示例实施例,标识子网号(ISN)是可以具有全局或特定于站点的唯一性的管理上分配的子网号。ISN号与GUID一起使用,以便形成被选择性地用于不同本地架构实例之间的子网间流量的GID值。
硬件GUID(HW GUID)
根据示例实施例,硬件GUID是硬件资源的64位全局唯一标识。示例实施例中的每个物理系统实例具有基本HW GUID值。每个基于系统的虚拟交换机实例都具有以预定义的方式从基本HW GUID派生的HW GUID。每个物理HCA将具有基本HW GUID。每个虚拟HCA端口将具有以预定义的方式从基本HW GUID派生的HW GUID。
虚拟GUID(vGUID)
根据示例实施例,虚拟GUID(vGUID)是或者全局唯一或者在本地架构内唯一的64位GUID值。虚拟GUID也被保证相对于本地架构中存在的任何HW GUID是唯一的。
虚拟GUID通常与虚拟机实例相关联,并且相同的vGUID值(VM正在使用的每个vHCA端口一个值)通常将贯穿可能包括物理服务器和vHCA实例之间的多次迁移的VM生命周期与VM相关联。
应该注意的是,特定的vHCA实例通过其HW GUID来识别,但是每当VM正在使用它时,那么vHCA端口也可以使用相关的VM vGUID值来寻址。
分组报头格式和约定:
现在将描述分组本地和全局路由报头(LRH/GRH)格式和约定的标准。首先,在本文的示例实施例中使用的本地路由报头(LRH)如由InfiniBand(IB)规范所定义。类似地,在本文的示例实施例中使用的全局路由报头(GRH)如由InfiniBand(IB)规范所定义,但是具有一组两个附加/例外:1)GRH.DGID.SUBNET_PREFIX可以具有类型“ISRN”,并且2)GRH.DGID.SUBNET_PREFIX可以具有类型“LeafSwitchHierarchy”。
当GRH.DGID.SUBNET_PREFIX是类型“ISRN”时,在示例实施例中,GRH.DGID.SUBNET_PREFIX具有以下格式(除了ISRN类型之外):
(目的地)架构本地子网号
子网间路由号(即在由源叶子子网中的初始LRH.DLID值定义的核心架构实例中)
DLID(在由架构本地子网号定义的目的地叶子子网中)。
当GRH.DGID.SUBNET_PREFIX是类型“LeafSwitchHierarchy”时,在示例实施例中,GRH.DGID.SUBNET_PREFIX具有以下格式(除了LeafSwitchHierarchy类型之外):
(目的地)架构本地子网号
(目的地)叶子交换机号
所有特殊的子字段都具有运行时定义的尺寸和偏移量。(即通过使用专用TCAM条目执行子字段提取而启用)。
在整个本地架构中映射和选择SL和VL值:
根据本文的示例实施例,在单个叶子子网内,仅具有LRH而不具有GRH的分组将使用传统SL到VL映射。示例实施例可以根据期望或需要选择性地通过使用保留位和新报头版本号来扩展本地LID和/或SL/VL值空间。扩展可以由LFT进行查找的端口号的数量,并且允许更多这样的“别名”端口号表示相关联的物理端口的其它SL/VL映射。(即,与SL/VL处理相同的效果,但是消耗LFT存储器而不是依赖于保留的LRH位的专门使用)。这意味着使用多个DLID值而不是不同的SL值来实现流量分离。
在示例实施例中,具有LRH并且无GRH的分组在单个叶子子网内的值的映射和选择将默认地使用传统SL到VL映射。GRH字段优选地以与核心架构相同的方式使用。
仅具有LRH的分组在叶子子网之间和核心架构内的值的映射和选择优选地作为在单个叶子子网中进行处理。
具有LRH和GRH两者的分组在叶子子网之间和核心架构内的值的映射和选择将具有基于以下方案的SL选择:每个流量类值表示一组可能的SL值;流标签值的散列在由流量类定义的可用SL值中进行选择,并且为如在下面的“通过网关子网映射和选择SL和VL值”中定义的“激进”信用等待策略提供支持。
通过网关子网映射和选择SL和VL值:
在默认情况下,示例实施例支持与如为在本地架构内使用定义的方案相同的基于GRH的方案。除了基本映射之外,出口路由器端口(诸如例如将分组发送到远程架构中的网关子网/路由器端口的路由器端口)可以将所有这样的分组或基于定义的标准的子集分类为具有更“激进”信用等待策略,其中分组将被“尽早”丢弃,以便避免在本地架构中建立拥塞树。
在整个本地架构中映射和选择P_Key值:
在示例实施例中的每个转发域具有可以用于叶子子网内部的流量而无需在本地架构级进行任何协调的一系列P_Key值。即,相同的私有范围可以被所有转发域使用。本地范围之外的任何P_Key值都经由FGM进行分配。FGM确保网关端口只接受具有允许转发到相关转发域的P_Key值的分组的转发。
在另一个示例中,FGM可以定义特殊路径,其涉及在诸如不同转发域之间的特定网关端口处映射P_Key值。通常,这种映射意味着重新计算分组不变量CRC(ICRC)。作为涉及来自诸如HCA的端节点的支持的替代方案,提供了一种方案,其中正常分组IC_CRC基于分组P_Key值0来计算,但是此外在GRH中具有保留的位字段,该保留的位字段没有被包括在ICRC中,但ICRC中包含用于当前P_Key值的CRC奇偶校验值。
通过网关子网映射和选择P_Key值:
如本文描述的示例实施例通常不做关于不同本地架构实例之间的协调的P_Key值分配的假设。在这种情况下,本地IB通信基于所涉及的本地架构实例之间的动态协商的P_Key值,或者基于如以上为本地架构情况所概述的P_Key映射方案。
在整个本地架构中转发多播分组:
在示例实施例中,每个转发域具有对于转发域被认为是私有的一系列MLID值,其中相同的私有范围可以被所有转发域使用。映射到私有MLID的任何组播组只能在本地转发域内进行转发。FGM确保私有MLID转发将不会跨转发域边界发生,并且协调可以用于在整个本地架构实例中实现组播转发的一组共享MLID值的使用。在整个本地架构中经由共享MLID值使用的MGID值由FGM分配。这些MGID值具有将其定义为受FGM控制的MGID的选定的位字段。每个转发域内的本地SM负责确保受FGM控制的MGID没有冲突的使用。
在还有的示例中,使用了虚拟路由器端口。在这个示例中,在一个转发域中具有特定MGID和MLID值的多播分组可以在另一个转发域中用相同的MGID值,但不同的MLID值被转发。
通过网关子网转发组播分组:
如本文描述的示例实施例通常不做关于不同本地架构实例之间的协调的MGID值分配的假设。在这种情况下,具有基于纯硬件的转发的本地IB多播通信基于所涉及的本地架构实例之间的动态协商的MGID值。
在默认情况下,在示例实施例中,不同本地架构实例之间的任何多播转发基于配置基于软件的代理服务,该代理服务与一个或多个物理路由器端口相关联操作,并且从本地架构或从物理路由器端口接收多播分组,并且在相反的方向上在新的组播分组中转发有效载荷。代理优选地在默认情况下是本地架构侧的正常多播组成员,并且与物理路由器端口具有特殊关系,以便截获诸如例如经由网关子网从远程架构到达的所有多播分组。
除以上之外,还选择性地提供了一种机制,以确保来自远程架构的多播分组以不干扰本地架构中的任何多播转发的方式被转发到代理。这可以使用在本地架构中使用专用MLID的“默认MC目的地”的方案或概念。只要(一个或多个)接收者能够接收任意数量的MGID并且转发到与(一个或多个)代理实例相关联的(一个或多个)QP,这就是可行的。这也可能包括大量的分区。如果这个功能对于相关HCA难以确保,那么本文的替代实施例用于系统以在IB单播分组中隧道传输IB MC分组的方式工作,该方式类似于当Enet分组在Enet GW端口上被接收到时如何进行隧道传输的方式。代理实现然后能够解释和处理传入的远程MC分组,而与它如何在本地架构上进行隧道传输无关。
应该注意的是,为了处理任何数量的分区,在从本地架构到远程架构的方向上可能需要多于一个的SW代理。还应该注意的是,对于物理路由器端口,实现了在两个方向上的隧道传输。而且,在两个架构中都存在代理实现的情况下,隧道传输通过使代理实现协作来实现,而不需要任何专用硬件支持。在这个连接中,隧道传输方案意味着最大IB MTU不能被转发为隧道传输的MC分组,因为原始IB报头必须作为IB有效载荷被包含在隧道传输的分组中。代理优选地能够处理相同的MGID值被用于不同本地架构中的两个不同逻辑组播组的情况。
本地架构的初始发现和配置:
在默认情况下,根据示例实施例,每个系统实例作为单个常规InfiniBand(IB)交换机操作。在这个默认配置中,任何现有的IB子网管理器或基于SMP的诊断和监视工具都能够“看到”或以其它方式知道作为单个IB子网的完整的连接架构。
将系统实例划分为多个虚拟交换机以及定义端口类型和相关联的配置信息表示例如不是正常SMA操作的一部分的“带外”配置策略。但是,所有或大多数带外配置操作可以经由特定于供应商的SMP操作来实现,作为“纯”带外配置的替代方案。应该注意的是,由于在示例实施例中,每个系统实例具有独立于任何IB链路状态可用的基于E-net的管理接口,并且还支持IPoIB/EoIB,因此“带外”配置原则上确实表示经由任何接口的基于IP的访问。
还应该注意的是,没有像与本地管理处理器固有相关联的PCI-E那样纯粹的“本地”管理接口的概念。尽管如此,为了解决与安全性相关的“鸡与蛋”的配置问题,Enet接口可以表示配置策略的初始来源,其中假定示例实施例的系统是其一部分的物理系统(诸如例如特定独立的物理交换机架子)优选地已经由基于端口的VLAN或其它访问控制规则保护了Enet访问。这种知识优选地是“先验”定义的生产时间,并且是系统实例的持久配置信息。
在其中表示架子内部管理处理器的HCA端口存在并连接到(诸如由硬件设计定义的)特定系统实例上的特定端口的配置中,那么根据示例实施例,系统实例还应该具有关于具有这种连接性的本地系统端口的先验信息。
基于经由Enet接口或经由管理主机通道适配器(HCA)最初提供的配置信息,示例实施例的系统的固件也能够从管理Enet接口上的其它接口和/或其它源认证配置操作。这种配置信息被示例实施例的固件可靠且持久地存储。
根据另一个示例实施例的固件还可以访问允许固件在初始部署时间对来自其它接口/源的访问进行认证的附加“先验”持久配置信息。这可以包括特定于供应商的管理软件的公共密钥等。此外,如可能需要或希望的,可以存在用于认证类型的私有密钥以及可能的诸如与该供应商实例的硬件GUID有关的特定身份。
根据示例实施例,当已经配置端口角色和虚拟交换机时,带内管理部件(诸如例如子网管理器(SM)和FGM实例)能够使用传统的基于SMP的子网发现方法以及一个或多个特定于供应商的SMP方法两者发现其本地物理和/或虚拟架构的相关部分。
根据示例实施例,每个叶子子网优选地通过独立的SM实例与其它叶子子网并行地被发现和配置。
在(一个或多个)核心架构中,一个或多个“主”FGM实例可以通常与每个核心架构实例的一个主FGM实例同时操作。
此外,叶子子网中的子网管理器优选地不具有在其转发域之外的其叶子子网之外的任何SMP访问(读或写)。叶子子网中的传统子网管理器将只能发现叶子子网内的普通(虚拟)交换机端口及其本地连接性。叶子子网中的架构感知的子网管理器优选地能够发现网关端口以及它们表示的连接性,但不能修改网关端口的任何配置。叶子子网中的架构感知的子网管理器默认地将优选地不能发现网关端口之外的任何远程端口连接性,以及任何进一步的跳,也不能修改网关端口之外的任何配置信息。
在示例实施例中,FGM实例默认地将能够发现完整的本地架构。FGM实例可以例如通过FGM实例的配置选项来避免或通过远程虚拟系统中的访问限制被防止执行在本地转发域之外(诸如在特定的核心架构实例之外,或者在完整的核心架构之外)的任何基于逐跳DRSMP的拓扑发现。访问限制通常可以适用于具有不同架构级别所有者的不同叶子子网。在这种情况下,中央FGM经由相关子网管理器或FGM实例收集来自每个核心架构实例的拓扑信息以及来自每个叶子子网的拓扑信息,并使用该信息来评估完整本地架构的优化路由。
应该注意的是,在默认情况下,在每个转发域的本地路由之后,将存在本地架构内的完整的端到端连接性,其中完整的连接性在每个叶子子网中的所有端端口之间、在每个叶子子网中的所有端端口和所有网关之间、以及在每个核心架构实例中的每个网关端口之间,并且特别地,在任何一对叶子子网网关端口之间被建立。
基于以上完整的连接性,中央FGM可以基于组合源叶子子网中的路径、相关核心架构实例中的路径(如果存在的话)、以及目的地叶子子网中的相关路径为本地架构中所有潜在的“对等体对”选择端到端路径。中央FGM将需要确保不同叶子子网之间的任何端到端路径不表示任何信用循环。但是,只要满足以下条件,信用循环避免将轻而易举地得到保证:每个叶子子网表示其中网关端口到核心架构实例的胖树和/或其它叶子子网表示本地叶子子网中的根交换机节点,并且每个核心架构实例用所有叶子子网网关端口作为常规胖树中的叶子节点/端口进行路由。
根据示例实施例,为了确保经由专用或“主要”下行路径在完整本地架构内的静态优化,中央FGM为目标叶子子网选择路径,该路径将使用表示目标叶子子网中的目的地节点的专用或“主要”下行路径的根交换机中的出口网关端口。关于根交换机的信息通常将可以从叶子子网内的主子网管理器(SM)获得。叶子子网中的主子网管理器(SM)已经选择了根交换机,其可以是用于作为叶子子网的本地路由的一部分的目的地节点的主题实施例的系统的虚拟交换机或完整物理实例。
网关端口的选择固有地也表示当前具有来自源叶子子网的连接性和表示在这个时间点叶子子网间流量的“合理”平衡的核心架构实例的选择。
然后,中央FGM选择从源叶子子网到选定的核心架构实例的入口网关端口,以及表示选定的核心架构实例中选定的目的地出口网关端口的主要路径的ISRN值。
到核心架构实例的入口网关端口的选择也表示在这个时间点叶子子网间流量的“合理”平衡。
根据示例实施例,从源叶子子网中的源端口到选定的入口网关端口到选定的核心架构实例的路径由源叶子子网中的主子网管理器(SM)定义。这条路径优选地由主子网管理器(SM)构建,而不需要任何关于叶子子网间流量的潜在使用的知识。然后,中央FGM可以基于将来自源和目标叶子子网中的主子网管理器的信息与选定的核心架构实例的选定的ISRN值组合来构建完整路径。
除了由LID和ISRN值定义的纯路由信息之外,中央FGM还将从每个涉及的主子网管理器获得SL值,并且然后还选择流量类别和流标签来反映核心架构内的SL/VL选择,以及当进入目标叶子子网时的SL选择。
应该注意的是,在最简单的默认情况下,可以选择单个SL值,该值将在整个完整本地架构中被保留,并且在所有转发域中具有到固定VL的一致映射,诸如例如以与传统单个子网胖树拓扑相同的方式。
还应该注意的是,与其中DLID表示最终目的地,并且其中由于架构内的各种链路和/或交换机故障,相同的DLID可以被重新路由以使用通过架构的不同路由的常规单个子网架构不同,只要没有从源子网到核心架构的入口网关端口的DLID的协调重新路由,以及表示从核心架构实例到目的地叶子子网的出口网关端口的ISRN值,架构中基于DLID-ISRN-DLID的端到端路径就可能由于故障而需要更新。因此,在示例实施例中,如果网关端口不再可用,那么或者执行相关DLID或ISRN值的重新路由以表示可以提供等效转发连接性的替代网关端口,或者执行受影响的流/通信对等体的路径信息的更新。
同样在示例实施例中,为了执行总体叶子子网间路径的重新平衡,中央FGM选择性地为一个或多个流生成新的路径信息并通知所涉及的对等体,或者编制涉及所有相关主子网管理器和FGM实例的当前基于DLID-ISRN-DLID的路径的端到端重新路由。
维护物理和虚拟节点群体的全局概览:
根据示例实施例,每个叶子子网中的物理和虚拟端节点由本地主子网管理器(SM)发现和配置。每个主子网管理器将通过查询和事件通知中央FGM关于其本地节点群体。对于具有通信端节点(包括物理和虚拟管理服务器以及交换机管理端口)的核心架构,相关的FGM实例以与叶子子网中的主SM相同的方式跟踪或以其它方式维护与群体有关的信息。由此,中央FGM将能够基于GUID跟踪任何端节点的下落,并且因此能够为任何所需的通信构建相关的路径信息。
通常,单个叶子子网内的VM迁移在叶子子网内本地处理,但路由或路径信息的任何改变都被传送到中央FGM实例。跨越叶子子网边界的VM迁移通常将经由中央FGM进行协调。
应该注意的是,中央FGM通常负责跨各个叶子子网和核心架构实例边界的vGUID和P_Key值范围的协调。因此,与当前全局策略不同步的任何转发域内的任何值分配将不被允许在相关转发域外部可见,也不会对其它转发域产生任何负面影响。
虚拟机(VM)迁移:
根据示例实施例,只要使用唯一的DLID值来表示VM正在表示的虚拟HCA端口,就可以在没有任何地址信息改变的情况下进行单个叶子子网内的虚拟机(VM)迁移。
每当VM从叶子子网中迁移出去时,那么通常对于一直在使用基于仅LRH(即无GRH)寻址以到达VM的原始叶子子网中的所有对等体都更新寻址信息,因为使用GRH现在变为必需的。同样,每当VM从叶子子网中迁移出去时,那么对于当前使用基于GRH/ISRN寻址的其它转发域中的所有对等体都更新寻找信息。除了执行用于初始核心架构网关端口的DLID以及用于后续叶子子网网关端口的ISRN值两者的重新路由之外,只要不能保留原始子网中使用的VM LID值,就是这种情况。
根据另一个示例实施例,在直接连接VM被迁移到的新叶子子网的系统实例中经由虚拟路由器端口使用基于TCAM的转发和LRH生成,有可能具有中间状态,其中用于初始核心架构网关端口的LID以及用于后续叶子子网网关端口的ISRN值已经被重新路由以提供到相关虚拟路由器端口的转发,该虚拟路由器端口可以用新的DLID进行最终LRH的生成,使得在迁移之后,完整的旧寻址信息将有效。
以上方案可以根据需要或期望与“懒惰”方案进行组合,用于更新所有相关对等体的地址信息,并且旧的(原始的)和新的地址信息两者然后可以同时对VM有效。当例如已经由中央FGM确认没有对等体再依赖旧地址信息时,旧地址信息可以被“回收”。
这种方案假设至少原始ISRN值是专门为VM分配的(即不是为叶子子网网关端口本身分配的),使得它可以被重新路由,而不会对使用相同ISRN值用于中间核心架构路径的其它目的地造成冲突。
在其中VM迁移以迁移之后需要必须使用新的核心架构实例才能到达VM的方式发生的情况下,那么对于用于寻址所有通信叶子子网中的核心架构网关端口的DLID值存在相同的约束。
作为特殊情况,这里是原始叶子子网内部的通信对等体。–只要这些对等体首先被指示使用基于GRH/ISRN的寻址,那么VM迁移就可以基于重新路由原始DLID和ISRN值被透明地处理(即,初始地,原始LRH.DLID将已直接指向VM,但在迁移之后,这将被更新以指向相关的核心架构网关端口。
从正在被迁移出叶子子网实例的VM的角度来看,将通常必须更新所有其通信对等体的地址信息,因为在不同叶子子网中第一跳寻址尤其将不相同。这与实现上节中概述的通信对等体的地址透明度的所有增强无关。
应该注意的是,在以上所有情况下,假设是没有启用FLSN检查,或者迁移只在具有相同FLSN值的叶子子网实例之间发生,或者系统实现允许一些数量的FLSN值与如上所述的每个端口相关联,使得具有冲突的FLSN值的少量迁移可以在任何时间点(即,直到所有对等体已经如上所述更新地址信息)被处理。
对于叶子子网/核心架构模型的硬件支持:
在单个叶子子网内,示例实施例的系统根据InfiniBand(IB)规范使用线性转发表(LFT)来实现基于LRH.DLID的分组转发。在默认情况下,每个虚拟交换机都具有支持全部48K单播DLID空间的LFT以及支持全部16K多播DLID空间的组播转发表。只要系统的POR具有由物理端口对共享的私有单播和多播LFT,用于配置虚拟交换机端口成员资格的最小粒度就是共享LFT的两个端口的组。然后,利用增强的SM和FGM路由逻辑,可以支持每个虚拟交换机的多个独立的LFT。但是,只要LFT由多于一个的物理端口共享,依赖性就是有助于处理多个独立的LFT的实际物理拓扑。
应该注意的是,物理端口之间的LFT的共享已经影响每个电缆连接器的端口如何分组(如果超过4x),以及大型本地架构的电缆物理连接性应该看起来如何,以便有利地利用每个虚拟交换机的多于一个LFT。而且,使用各种专有或预标准技术,主题系统的实施例可以潜在地将LRH.DLID单播空间扩展到48K以上。
为了识别转发域之间(诸如例如在不同叶子子网和/或核心架构实例之间)的边界,示例实施例的系统实现下面描述的一组特征。
首先,从叶子子网内,任何核心架构网关端口都通过一个或多个DLID识别,使得使用正常的基于LRH.DLID的查找进行转发。为了识别查找输出端口表示要求寻址模式从LRH/DLID(基于原始LRH)改变到GRH/ISRN的核心架构网关端口,提供了允许模式的这种改变在分组到达输出端口的出口链路之前被确定。为了避免分组停顿,在入口端口处已经接收到分组之后,尽可能早地提供这种信息,并且一旦仲裁器允许分组被转发到输出端口,新的LRH就被准备好并且被良好定义。因此,信息与入口端口中的输出端口的查找一起可用。此外,为了允许相同的输出端口取决于哪个其它本地系统端口正在跨交叉开关向其发送分组而具有多于一个的“个性”,使输出端口的类型经由与每个输入端口相关联的寄存器可用是最灵活的方案。相对于使端口类型编码在LFT条目中,这两者都节省了空间,并且相对于共享的LFT条目以及相对于使用其中输出端口的类型对于整个芯片被定义一次的集中式方法,它提供了灵活性并且不需要访问仲裁。对于用新寻址模式构建新分组的硬件支持包括基于内部寄存器生成固定的LRH.DLID,以及从GRH中识别和提取正确的ISRN位字段的逻辑。
其次,在核心架构实例中,入口端口中GRH/ISRN转发模式的识别是基于将传入的LRH.DLID值与内部寄存器的内容进行匹配。然后,如果分组LRH.DLID值与包含在寄存器中的值匹配,那么转发模式是示例实施例的“GRH/ISRN”转发模式。否则,如果分组LRH.DLID值与包含在寄存器中的值不匹配,那么转发模式是InfiniBand(IB)传统“LRH/DLID”转发模式。
在示例实施例中,为了性能和灵活性,优选地对于所有端口复制该寄存器。这意味着也有可能具有叶子子网虚拟交换机实例,其中子网管理器(SM)不知道这个系统特征,但是无需减少那个叶子子网内可用的LFT尺寸。从核心架构实例内,到网关端口(或端端口)的路由由用于从每个“途中”系统入口端口的LFT中查找输出端口的ISRN值定义。
为了确定输出端口是到目的地叶子子网的网关,示例实施例的直接解决方案是比较分组FLSN号和与查找的输出端口相关联的(一个或多个)FLSN号。但是,为了识别寻址模式中所需的变化,同时仍然允许入口端口以多于一种模式操作,使入口端口每个可能的输出端口具有标志,该标志告诉输出端口是否表示寻址模式的变化或输出端口不表示寻址模式的变化,这就足够了。因此,如果入口转发模式是GRH/ISRN,并且输出端口被标记为表示寻址模式(即,相对于该入口端口)的变化,那么寻址模式可以基于包含在GRH.DGID.prefix.dlid中的DLID值被确定性地改变为LRH/DLID。应该注意的是,在这种情况下,只要核心架构实例内基于ISRN的路由是正确的,匹配FLSN值就将只表示附加的完整性检查。
对于用新寻址模式构建新分组的HW支持包括从GRH中识别和提取正确的DLID位字段的逻辑,以及基于提取出的DLID值生成新的LRH。
第三,当两个叶子子网由同一系统实例上的不同虚拟交换机直接连接时,两个虚拟交换机中的端口之间通常存在相互叶子子网网关端口关系。因此,从叶子子网A内,将具有识别提供到叶子子网B的直接连接性的特定叶子子网网关端口的一个或多个DLID值。然后,为了确定输出端口是到目的地叶子子网的网关,示例实施例的直接解决方案是比较分组FLSN号和与查找的输出端口相关联的FLSN号。但是,为了识别寻址模式中所需的变化,同时仍允许入口端口以多于一种模式操作,使入口端口每个可能的输出端口具有标志,该标志指示输出端口是否表示寻址模式的变化或输出端口是否不表示寻址模式的变化,这就足够了,诸如对于以上情况。
仍然,在其中寻址模式的变化可以或者是LRH/DLID到GRH/ISRN或者是LRH/DLID到LRH/DLID(即,如在这个示例中)的情况下,使每个输出端口仅具有单个标志值是不够的。因此,每个输出端口标志优选地识别网关端口的类型,而不仅仅是改变寻址模式。但是,再一次,使用FLSN匹配是替代方案,但只要叶子子网实例之间的转发被正确实现,这仍然主要是完整性检查。
对于叶子子网/核心架构模型的附加硬件支持:
为了支持任意数量的传入的DGID.subnetprefix值,但是仍然允许针对目标物理或虚拟HCA端口验证DGID.GUID值,根据实施例的这种目标(v)HCA包括一种模式,其中针对硬件和物理或虚拟HCA端口的别名GID值检查传入的GRH.DID仅限于GUID部分,并且其中子网前缀部分被忽略。
可以为每个GID表条目单独地选择性地指定这种模式。但是,从硬件实现的角度来看,可能难以对若干表条目进行关联匹配,并且然后还基于不同的匹配标准进行多次匹配。因此,根据示例实施例,其中总是仅对GUID部分进行检查的模式是足够的。
然后,假设每个虚拟HCA端口都用在仅考虑GUID部分时也是唯一的两个或更多个GID表条目建立。正常或缺省情况是相关的hwGUID与表示当前活动VM的vGUID一起存在。两个对应的GID表条目将基于分配的ISN值各自都具有子网前缀值。
用于在(LFT)查找的(GRH)中使用子网前缀值的方法
图16图示了根据实施例的用于在高性能计算环境中的网络交换环境中使用用于线性转发表查找的分组报头的方法1600。现在将描述该图的方法。在包括网络架构的计算机环境中提供第一和第二子网。第一子网与第二子网不同。第一子网包括第一组网络交换机,其中第一组网络交换机中的每一个包括线性转发表(LFT)和多个物理端口。第二子网包括第二组网络交换机,其中第二组网络交换机中的每一个包括LFT和多个物理端口。这是该方法的示例实施例的环境。总的来说,方法1600允许第一组网络交换机的第一网络交换机的相同的第一LFT用于要在第一子网的第一组网络交换机中的网络交换机之间进行转发的分组的子网内转发决策以及要分别在第一和第二子网的第一和第二组网络交换机之间进行转发的分组的子网间转发决策。
在第一步骤1610中,在第一子网的第一组网络交换机中的第一网络交换机处接收到第一分组。在步骤1620处,检查第一分组的报头的第一部分。在步骤1630处,确定第一分组的报头的第一部分的第一条件,并且在步骤1640处,确定第一分组的报头的第一部分的第二条件。
当第一分组的报头的第一部分被确定为具有或以其它方式展现第一条件时,在步骤1630处选择性地做出子网内转发决策。否则,当第一分组的报头的第一部分被确定为不具有或者以其它方式展现第一条件时,该方法继续到子网间转发决策步骤1640。
当诸如在第一分组的报头的第一部分被确定为具有或以其它方式展现第一条件时,在步骤1630处选择性地做出子网内转发决策时,根据示例实施例,分组在步骤1635处使用子网内(LRH/DLID)转发进行处理。
类似地,当诸如在第一分组的报头的第一部分被确定为具有或以其它方式展现第二条件时,在步骤1640处选择性地做出子网间转发决策时,根据示例实施例,分组在步骤1645处使用子网间(GRH/ISRN)转发进行处理。
在步骤1645处,根据第一分组的报头的第一部分的第二条件,使用第一网络交换机的第一LFT选择性地做出子网间转发,以便将第一分组路由到第二子网的第二组网络交换机中选定的一个网络交换机。
在示例实施例中,检查第一分组的报头的第一部分包括检查第一分组的报头的本地路由报头(LRH)部分。还根据示例实施例,确定第一分组的报头的第一部分的条件包括将LRH的选定部分相对于存储在第一网络交换机处的预定值进行比较,并且根据LRH的选定部分和预定值之间的不匹配确定第一条件,或者根据LRH的选定部分和预定值之间的匹配确定第二条件。
还在示例实施例中,根据LRH的选定部分和预定值之间的匹配来确定第二条件包括使用LFT对使用LRH的选定部分的特殊交换机端口(SSP)进行索引的步骤。
特别地,关于示例实施例,将第一分组路由到第二子网的第二组网络交换机中的选定网络交换机包括选择第一分组的报头的全局路由报头(GRH)部分的一部分、报头的GRH部分的选定部分存储子网间路由号(ISRN)、使用GRH的ISRN对第一网络交换机的第一LFT进行索引、并且根据使用GRH的ISRN对第一LFT的索引将第一分组路由到第二子网的第二组网络交换机中的选定网络交换机,其中第二子网是网络交换环境的中间核心架构。
还根据示例实施例,当在步骤1630和1640处既没有确定第一分组的报头的第一部分的第一条件也没有确定第二条件时,分组在步骤1650处被丢弃。更具体地,在示例实施例中,由于没有满足转发条件,因此分组在步骤1650处被丢弃。
示例实施例的特征可以在计算机程序产品中、利用计算机程序产品、或者在计算机程序产品的帮助下实现,其中计算机程序产品是具有其上/其中存储有可用来编程处理系统以执行本文所呈现的任何特征的指令的存储介质或计算机可读介质。存储介质可以包括,但不限于,任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微驱动器、以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪存存储器设备、磁或光卡、纳米系统(包括分子存储器IC)、或适于存储指令和/或数据的任何类型的媒体或设备。
存储在任何一种机器可读介质中,示例实施例的特征可以被结合到软件和/或固件中,用于控制处理系统的硬件,并且用于使处理系统能够利用示例实施例的结果与其它机制交互。这种软件或固件可以包括,但不限于,应用代码、设备驱动程序、操作系统和执行环境/容器。
示例实施例的特征也可以利用例如诸如专用集成电路(ASIC)的硬件部件在硬件中实现。硬件状态机的实现使得执行本文所描述的功能对相关领域的技术人员将是显而易见的。
此外,示例实施例可以方便地利用一个或多个常规的通用或专用数字计算机、计算设备、机器或微处理器来实现,其中包括一个或多个处理器、存储器和/或根据本公开内容的教导编程的计算机可读存储介质。适当的软件编码可以容易地由熟练的程序员基于本公开内容的教导来准备,如对软件领域的技术人员将显而易见的。
虽然以上已经描述了各种实施例,但是应该理解的是,它们已作为示例而不是限制给出。对相关领域的技术人员来说,将很显然,在不背离本发明的精神和范围的情况下,其中可以做出各种形式和细节上的变化。
示例实施例已经借助说明具体功能及其关系的执行的功能构建块进行了描述。这些功能构建块的边界在本文中通常是为了方便描述而任意定义的。可以定义可替代的边界,只要具体的功能及其关系被适当地执行。任何这种可替代的边界因此在所要求保护的发明的范围和精神之内。
示例实施例的以上描述是为了说明和描述的目的提供。它不是穷尽的或者要把本发明限定到所公开的精确形式。示例实施例的广度和范围不应该由任何上述示例实施例来限制。许多修改和变化对本领域技术人员来说将显而易见。修改和变化包括所公开特征的任何相关组合。实施例的选择与描述是为了优选地地解释所要求保护的发明的原理及其实践应用,从而使本领域其它技术人员能够理解所要求保护的发明用于各种实施例并且可以进行适于预期特定用途的各种修改。所要求保护的发明的范围要由以下权利要求及其等价物来定义。
Claims (22)
1.一种用于在高性能计算环境中的网络交换环境中将分组报头用于线性转发表查找的方法,所述方法包括:
在包括网络架构的计算机环境中提供第一子网和第二子网,第一子网与第二子网不同,第一子网包括第一组网络交换机,其中第一组网络交换机中的每个网络交换机包括线性转发表(LFT)和多个物理端口,并且第二子网包括第二组网络交换机,其中第二组网络交换机中的每个网络交换机包括LFT和多个物理端口;以及
通过以下方式允许第一组网络交换机中的第一网络交换机的相同的第一LFT用于要在第一子网的第一组网络交换机的网络交换机之间进行转发的分组的子网内转发决策和要在第一子网和第二子网各自的第一组网络交换机和第二组网络交换机之间进行转发的分组的子网间转发决策两者:
在第一子网的第一组网络交换机的第一网络交换机处接收第一分组;
检查第一分组的报头的第一部分;
确定第一分组的报头的第一部分的条件;
使用第一网络交换机的所述相同的第一LFT,根据第一分组的报头的第一部分的第一条件选择性地做出子网内转发决策,以用于将第一分组路由到第一子网的第一组网络交换机中的选定网络交换机;以及
使用第一网络交换机的所述相同的第一LFT,根据第一分组的报头的第一部分的第二条件选择性地做出子网间转发决策,以用于将第一分组路由到第二子网的第二组网络交换机中的选定网络交换机。
2.如权利要求1所述的方法,其中:
检查第一分组的报头的第一部分包括检查第一分组的报头的本地路由报头(LRH)部分;以及
确定第一分组的报头的第一部分的条件包括将LRH的选定部分相对于存储在第一网络交换机处的预定值进行比较,以及:
根据LRH的选定部分与预定值之间的不匹配选择性地确定第一条件;以及
根据LRH的选定部分与预定值之间的匹配选择性地确定第二条件。
3.如权利要求2所述的方法,其中:
根据LRH的选定部分与预定值之间的匹配选择性地确定第二条件包括:使用LFT对使用LRH的选定部分的特殊交换机端口(SSP)进行索引。
4.如任何前述权利要求所述的方法,其中将第一分组路由到第二子网的第二组网络交换机中的选定网络交换机包括:
选择第一分组的报头的全局路由报头(GRH)部分的一部分,报头的GRH部分的选定部分存储子网间路由号(ISRN);
使用GRH的ISRN对第一网络交换机的第一LFT进行索引;以及
根据使用GRH的ISRN对第一LFT的索引,将第一分组路由到第二子网的第二组网络交换机中的选定网络交换机,其中第二子网是网络交换环境的中间核心架构。
5.如权利要求4所述的方法,还包括:
从网络交换环境的中间核心架构接收第一子网的第一组网络交换机中的第一网络交换机处的第二分组;
确定从中间核心架构接收到的第二分组正在使用ISRN被转发;
使用第一网络交换机的相同的第一LFT,根据确定从中间核心架构接收到的第二分组正在使用ISRN被转发并且正在使用包含在第二分组的报头中的目标本地标识符(LID)来做出子网内转发决策。
6.如权利要求1或2所述的方法,还包括:
在第一网络交换机处使用过滤器过滤第一分组的目标本地标识符(LID),以确定第一分组是否针对特殊交换机端口(SSP)。
7.如权利要求6所述的方法,其中:
做出子网内转发决策包括确定第一分组不是针对SSP;以及
做出子网间转发决策包括确定第一分组是针对SSP。
8.一种用于在高性能计算环境中的网络交换环境中将分组报头用于线性转发表查找的系统,所述系统包括:
计算机环境,包括:
网络架构;
第一子网;以及
第二子网,第一子网与第二子网不同,第一子网包括第一组网络交换机,其中第一组网络交换机中的每个网络交换机包括线性转发表(LFT)和多个物理端口,并且第二子网包括第二组网络交换机,其中第二组网络交换机中的每个网络交换机包括LFT和多个物理端口;以及
第一组网络交换机中的第一网络交换机的第一LFT,
其中由计算机环境将第一组网络交换机中的第一网络交换机的相同的第一LFT用于要在第一子网的第一组网络交换机的网络交换机之间进行转发的分组的子网内转发决策和要在第一子网和第二子网各自的第一组网络交换机和第二组网络交换机之间进行转发的分组的子网间转发决策两者:
在第一子网的第一组网络交换机的第一网络交换机处接收第一分组;
检查第一分组的报头的第一部分;
确定第一分组的报头的第一部分的条件;
使用第一网络交换机的所述相同的第一LFT,根据第一分组的报头的第一部分的第一条件选择性地做出子网内转发决策,以用于将第一分组路由到第一子网的第一组网络交换机中的选定网络交换机;以及
使用第一网络交换机的所述相同的第一LFT,根据第一分组的报头的第一部分的第二条件选择性地做出子网间转发决策,以用于将第一分组路由到第二子网的第二组网络交换机中的选定网络交换机。
9.如权利要求8所述的系统,其中第一子网的第一组网络交换机的第一网络交换机能够操作以:
通过检查第一分组的报头的本地路由报头(LRH)部分来检查第一分组的报头的第一部分;以及
通过将LRH的选定部分相对于存储在第一网络交换机处的预定值进行比较来确定第一分组的报头的第一部分的条件,以及:
根据LRH的选定部分与预定值之间的不匹配选择性地确定第一条件;以及
根据LRH的选定部分与预定值之间的匹配选择性地确定第二条件。
10.如权利要求9所述的系统,其中第一子网的第一组网络交换机中的第一网络交换机能够操作以:
根据LRH的选定部分与预定值之间的匹配选择性地确定第二条件包括:使用LFT对使用LRH的选定部分的特殊交换机端口(SSP)进行索引。
11.如任何前述权利要求所述的系统,其中第一子网的第一组网络交换机中的第一网络交换机能够操作以通过以下将第一分组路由到第二子网的第二组网络交换机中的选定网络交换机:
选择第一分组的报头的全局路由报头(GRH)部分的一部分,报头的GRH部分的选定部分存储子网间路由号(ISRN);
使用GRH的ISRN对第一网络交换机的第一LFT进行索引;以及
根据使用GRH的ISRN对第一LFT的索引,将第一分组路由到第二子网的第二组网络交换机中的选定网络交换机,其中第二子网是网络交换环境的中间核心架构。
12.如权利要求11所述的系统,其中第一子网的第一组网络交换机中的第一网络交换机能够操作以:
从网络交换环境的中间核心架构接收第一子网的第一组网络交换机中的第一网络交换机处的第二分组;
确定从中间核心架构接收到的第二分组正在使用ISRN被转发;
使用第一网络交换机的相同的第一LFT,根据确定从中间核心架构接收到的第二分组正在使用ISRN被转发并且正在使用包含在第二分组的报头中的目标本地标识符(LID)来做出子网内转发决策。
13.如权利要求8或9所述的系统,其中第一子网的第一组网络交换机的第一网络交换机能够操作以:
在第一网络交换机处使用过滤器过滤第一分组的目标本地标识符(LID),以确定第一分组是否针对特殊交换机端口(SSP)。
14.如权利要求13所述的系统,其中第一子网的第一组网络交换机中的第一网络交换机能够操作以:
做出子网内转发决策,包括确定第一分组不是针对SSP;以及
做出子网间转发决策,包括确定第一分组是针对SSP。
15.一种其上存储有指令的非瞬态机器可读介质,所述指令在由包括网络架构以及第一子网和第二子网的相关联计算机执行时使所述相关联计算机执行包括以下的步骤,其中第一子网与第二子网不同:
在包括网络架构的计算机环境中提供第一子网和第二子网,第一子网与第二子网不同,第一子网包括第一组网络交换机,其中第一组网络交换机中的每个网络交换机包括线性转发表(LFT)和多个物理端口,并且第二子网包括第二组网络交换机,其中第二组网络交换机中的每个网络交换机包括LFT和多个物理端口;以及
通过以下方式允许第一子网的第一组网络交换机中的第一网络交换机的相同的第一LFT用于要在第一子网的第一组网络交换机的网络交换机之间进行转发的分组的子网内转发决策和要在第一子网和第二子网各自的第一组网络交换机和第二组网络交换机之间进行转发的分组的子网间转发决策两者:
在第一子网的第一组网络交换机的第一网络交换机处接收第一分组;
检查第一分组的报头的第一部分;
确定第一分组的报头的第一部分的条件;
使用第一网络交换机的所述相同的第一LFT,根据第一分组的报头的第一部分的第一条件选择性地做出子网内转发决策,以用于将第一分组路由到第一子网的第一组网络交换机中的选定网络交换机;以及
使用第一网络交换机的所述相同的第一LFT,根据第一分组的报头的第一部分的第二条件选择性地做出子网间转发决策,以用于将第一分组路由到第二子网的第二组网络交换机中的选定网络交换机。
16.如权利要求15所述的非瞬态机器可读介质,其中:
检查第一分组的报头的第一部分包括检查第一分组的报头的本地路由报头(LRH)部分;以及
确定第一分组的报头的第一部分的条件包括将LRH的选定部分相对于存储在第一网络交换机处的预定值进行比较,以及:
根据LRH的选定部分与预定值之间的不匹配选择性地确定第一条件;以及
根据LRH的选定部分与预定值之间的匹配选择性地确定第二条件。
17.如权利要求16所述的非瞬态机器可读介质,其中:
根据LRH的选定部分与预定值之间的匹配选择性地确定第二条件包括:使用LFT对使用LRH的选定部分的特殊交换机端口(SSP)进行索引。
18.如权利要求15至17中任一项所述的非瞬态机器可读介质,其中将第一分组路由到第二子网的第二组网络交换机中的选定网络交换机包括:
选择第一分组的报头的全局路由报头(GRH)部分的一部分,报头的GRH部分的选定部分存储子网间路由号(ISRN);
使用GRH的ISRN对第一网络交换机的第一LFT进行索引;以及
根据使用GRH的ISRN对第一LFT的索引,将第一分组路由到第二子网的第二组网络交换机中的选定网络交换机,其中第二子网是网络交换环境的中间核心架构。
19.如权利要求15或16所述的非瞬态机器可读介质,还包括:
在第一网络交换机处使用过滤器过滤第一分组的目标本地标识符(LID),以确定第一分组是否针对特殊交换机端口(SSP)。
20.如权利要求19所述的非瞬态机器可读介质,其中:
做出子网内转发决策包括确定第一分组不是针对SSP;以及
做出子网间转发决策包括确定第一分组是针对SSP。
21.一种包括机器可读格式的程序指令的计算机程序,所述程序指令在由计算机系统执行时使所述计算机系统执行如权利要求1至7中任一项所述的方法。
22.一种计算机程序产品,包括存储在非瞬态机器可读数据存储介质中的如权利要求21所述的计算机程序。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662288101P | 2016-01-28 | 2016-01-28 | |
US62/288,101 | 2016-01-28 | ||
US15/416,642 US10230607B2 (en) | 2016-01-28 | 2017-01-26 | System and method for using subnet prefix values in global route header (GRH) for linear forwarding table (LFT) lookup in a high performance computing environment |
US15/416,642 | 2017-01-26 | ||
PCT/US2017/015464 WO2017132585A1 (en) | 2016-01-28 | 2017-01-27 | System and method for using subnet prefix values in global route header (grh) for linear forwarding table (lft) lookup in a high performance computing environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108028813A true CN108028813A (zh) | 2018-05-11 |
CN108028813B CN108028813B (zh) | 2021-05-07 |
Family
ID=59387324
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780002937.4A Pending CN107925622A (zh) | 2016-01-28 | 2017-01-27 | 用于在高性能计算环境中允许多个全局标识符(gid)子网前缀值同时用于传入分组处理的系统和方法 |
CN201780002951.4A Active CN108028813B (zh) | 2016-01-28 | 2017-01-27 | 在高性能计算环境中使用用于线性转发表查找的全局路由报头中的子网前缀值的系统和方法 |
CN202211067569.0A Pending CN115442278A (zh) | 2016-01-28 | 2017-01-27 | 在高性能计算环境中允许多个全局标识符子网前缀值同时用于传入分组处理的系统和方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780002937.4A Pending CN107925622A (zh) | 2016-01-28 | 2017-01-27 | 用于在高性能计算环境中允许多个全局标识符(gid)子网前缀值同时用于传入分组处理的系统和方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211067569.0A Pending CN115442278A (zh) | 2016-01-28 | 2017-01-27 | 在高性能计算环境中允许多个全局标识符子网前缀值同时用于传入分组处理的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (11) | US10374926B2 (zh) |
EP (2) | EP3408978B1 (zh) |
JP (4) | JP6883568B2 (zh) |
CN (3) | CN107925622A (zh) |
WO (2) | WO2017132585A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220141678A (ko) * | 2021-04-13 | 2022-10-20 | 에스케이하이닉스 주식회사 | PCIe 펑션 및 그 동작 방법 |
US11928070B2 (en) | 2021-04-13 | 2024-03-12 | SK Hynix Inc. | PCIe device |
US11983136B2 (en) | 2021-04-13 | 2024-05-14 | SK Hynix Inc. | PCIe device and operating method thereof |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8942258B2 (en) | 2012-09-14 | 2015-01-27 | International Business Machines Corporation | Segmentation and reassembly of network packets for switched fabric networks |
US10374926B2 (en) | 2016-01-28 | 2019-08-06 | Oracle International Corporation | System and method for monitoring logical network traffic flows using a ternary content addressable memory in a high performance computing environment |
US10778612B2 (en) * | 2016-05-26 | 2020-09-15 | Arista Networks, Inc. | Variable TCAM actions |
US10333959B2 (en) | 2016-08-31 | 2019-06-25 | Nicira, Inc. | Use of public cloud inventory tags to configure data compute node for logical network |
US10397136B2 (en) | 2016-08-27 | 2019-08-27 | Nicira, Inc. | Managed forwarding element executing in separate namespace of public cloud data compute node than workload application |
US10594577B2 (en) | 2016-12-19 | 2020-03-17 | Cisco Technology, Inc. | Sorting and displaying network traffic analytics |
US20190045412A1 (en) | 2017-08-02 | 2019-02-07 | Sears Brands, L.L.C. | Automatically switching communication pathways between connected devices |
US10567482B2 (en) | 2017-08-24 | 2020-02-18 | Nicira, Inc. | Accessing endpoints in logical networks and public cloud service providers native networks using a single network interface and a single routing table |
EP3673627B1 (en) | 2017-08-27 | 2023-09-13 | Nicira, Inc. | Performing in-line service in public cloud |
US20190068466A1 (en) * | 2017-08-30 | 2019-02-28 | Intel Corporation | Technologies for auto-discovery of fault domains |
CN107484201B (zh) * | 2017-09-30 | 2020-08-14 | Oppo广东移动通信有限公司 | 流量统计方法和装置、终端、计算机可读存储介质 |
US10862753B2 (en) | 2017-12-04 | 2020-12-08 | Nicira, Inc. | High availability for stateful services in public cloud logical networks |
US10601705B2 (en) | 2017-12-04 | 2020-03-24 | Nicira, Inc. | Failover of centralized routers in public cloud logical networks |
US10708309B2 (en) * | 2018-01-10 | 2020-07-07 | Cisco Technology, Inc. | Fine granularity authorization control in FC-NVMe storage area network |
US11343229B2 (en) | 2018-06-28 | 2022-05-24 | Vmware, Inc. | Managed forwarding element detecting invalid packet addresses |
US11374794B2 (en) | 2018-08-24 | 2022-06-28 | Vmware, Inc. | Transitive routing in public cloud |
US10491466B1 (en) * | 2018-08-24 | 2019-11-26 | Vmware, Inc. | Intelligent use of peering in public cloud |
US11196591B2 (en) | 2018-08-24 | 2021-12-07 | Vmware, Inc. | Centralized overlay gateway in public cloud |
US11750534B2 (en) * | 2019-12-27 | 2023-09-05 | Texas Instruments Incorporated | Packet storage based on packet properties |
US11411911B2 (en) * | 2020-10-26 | 2022-08-09 | Mellanox Technologies, Ltd. | Routing across multiple subnetworks using address mapping |
CN114448882A (zh) * | 2020-11-04 | 2022-05-06 | 国家计算机网络与信息安全管理中心 | 一种实现高性能大容量路由设备的设计方法 |
CN112073321B (zh) * | 2020-11-16 | 2021-02-09 | 北京壁仞科技开发有限公司 | 信息处理方法、互连设备和计算机可读存储介质 |
US11734036B2 (en) * | 2021-03-03 | 2023-08-22 | Dell Products L.P. | System and method to monitor and manage a passthrough device |
CN116032997A (zh) * | 2022-12-29 | 2023-04-28 | 南京先进计算产业发展有限公司 | 一种高性能计算环境中的两个子网之间的互连方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1849783A (zh) * | 2003-10-02 | 2006-10-18 | 思科技术公司 | 用于实现边界网关协议(bgp)的分布式软件体系结构 |
US20150098466A1 (en) * | 2013-10-06 | 2015-04-09 | Mellanox Technologies Ltd. | Simplified packet routing |
US9069633B2 (en) * | 2012-12-20 | 2015-06-30 | Oracle America, Inc. | Proxy queue pair for offloading |
CN104836755A (zh) * | 2009-10-30 | 2015-08-12 | Iii控股第2有限责任公司 | 用于高性能、低功率数据中心互连结构的系统和方法 |
Family Cites Families (101)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7010607B1 (en) | 1999-09-15 | 2006-03-07 | Hewlett-Packard Development Company, L.P. | Method for training a communication link between ports to correct for errors |
US7171484B1 (en) | 2000-05-24 | 2007-01-30 | Krause Michael R | Reliable datagram transport service |
US7103626B1 (en) | 2000-05-24 | 2006-09-05 | Hewlett-Packard Development, L.P. | Partitioning in distributed computer system |
US6954459B1 (en) | 2000-06-16 | 2005-10-11 | International Business Machines Corporation | Method for forwarding broadcast packets in a bridged IP network |
US7072360B2 (en) | 2000-09-22 | 2006-07-04 | Narad Networks, Inc. | Network architecture for intelligent network elements |
US6766467B1 (en) * | 2000-10-19 | 2004-07-20 | International Business Machines Corporation | Method and apparatus for pausing a send queue without causing sympathy errors |
US20020156918A1 (en) | 2001-04-23 | 2002-10-24 | Brocade Communications Systems, Inc. | Dynamic path selection with in-order delivery within sequence in a communication network |
US8935333B2 (en) | 2001-08-09 | 2015-01-13 | International Business Machines Corporation | Implementing multicast on a system area network channel adapter |
US6922749B1 (en) | 2001-10-12 | 2005-07-26 | Agilent Technologies, Inc. | Apparatus and methodology for an input port of a switch that supports cut-through operation within the switch |
US6839794B1 (en) | 2001-10-12 | 2005-01-04 | Agilent Technologies, Inc. | Method and system to map a service level associated with a packet to one of a number of data streams at an interconnect device |
US7245627B2 (en) | 2002-04-23 | 2007-07-17 | Mellanox Technologies Ltd. | Sharing a network interface card among multiple hosts |
US7149221B2 (en) | 2002-05-31 | 2006-12-12 | Palau Acquisition Corporation (Delaware) | Apparatus and methods for increasing bandwidth in an infiniband switch |
US7307996B2 (en) | 2002-07-30 | 2007-12-11 | Brocade Communications Systems, Inc. | Infiniband router having an internal subnet architecture |
US7221676B2 (en) | 2002-07-30 | 2007-05-22 | Brocade Communications Systems, Inc. | Supporting local IB packet communication between separate subnets |
US7401157B2 (en) | 2002-07-30 | 2008-07-15 | Brocade Communications Systems, Inc. | Combining separate infiniband subnets into virtual subnets |
US20040030763A1 (en) * | 2002-08-08 | 2004-02-12 | Manter Venitha L. | Method for implementing vendor-specific mangement in an inifiniband device |
US7356033B2 (en) | 2002-11-21 | 2008-04-08 | Lucent Technologies Inc. | Method and apparatus for performing network routing with use of power efficient TCAM-based forwarding engine architectures |
US7493409B2 (en) * | 2003-04-10 | 2009-02-17 | International Business Machines Corporation | Apparatus, system and method for implementing a generalized queue pair in a system area network |
US7574526B2 (en) | 2003-07-31 | 2009-08-11 | International Business Machines Corporation | Multicast group management in infiniband |
US7421488B2 (en) | 2003-08-14 | 2008-09-02 | International Business Machines Corporation | System, method, and computer program product for centralized management of an infiniband distributed system area network |
US7979548B2 (en) | 2003-09-30 | 2011-07-12 | International Business Machines Corporation | Hardware enforcement of logical partitioning of a channel adapter's resources in a system area network |
US7428598B2 (en) | 2003-11-20 | 2008-09-23 | International Business Machines Corporation | Infiniband multicast operation in an LPAR environment |
US7639616B1 (en) | 2004-06-08 | 2009-12-29 | Sun Microsystems, Inc. | Adaptive cut-through algorithm |
US7400590B1 (en) | 2004-06-08 | 2008-07-15 | Sun Microsystems, Inc. | Service level to virtual lane mapping |
US7860096B2 (en) | 2004-06-08 | 2010-12-28 | Oracle America, Inc. | Switching method and apparatus for use in a communications network |
US7602712B2 (en) | 2004-06-08 | 2009-10-13 | Sun Microsystems, Inc. | Switch method and apparatus with cut-through routing for use in a communications network |
US7911977B2 (en) | 2005-05-31 | 2011-03-22 | Cisco Technology, Inc. | Designated router assignment per multicast group address/range |
EP1905207B1 (en) | 2005-07-17 | 2018-04-25 | Obsidian Research Corporation | A method to extend the physical reach of an infiniband network |
US7706303B2 (en) | 2006-06-26 | 2010-04-27 | Cisco Technology, Inc. | Port pooling |
US7936753B1 (en) | 2007-11-30 | 2011-05-03 | Qlogic, Corporation | Method and system for reliable multicast |
US8331381B2 (en) | 2007-12-04 | 2012-12-11 | International Business Machines Corporation | Providing visibility of Ethernet components to a subnet manager in a converged InfiniBand over Ethernet network |
US7983265B1 (en) | 2008-01-17 | 2011-07-19 | Qlogic, Corporation | Method and system for processing a network packet |
US8949389B1 (en) | 2008-03-31 | 2015-02-03 | Intel Corporation | Method and system for configuring virtual fabrics |
US7738371B1 (en) | 2008-08-29 | 2010-06-15 | Qlogic, Corporation | Method and system for routing network packets |
US8363569B2 (en) | 2009-04-22 | 2013-01-29 | Digi International Inc. | System and method for rejoining sleeping subnets in a wireless mesh network |
US8429647B2 (en) | 2009-05-06 | 2013-04-23 | Vmware, Inc. | Virtual machine migration across network by publishing routes to the associated virtual networks via virtual router after the start of migration of the virtual machine |
US8351431B2 (en) | 2009-05-13 | 2013-01-08 | Avaya Inc. | Method and apparatus for providing fast reroute of a multicast packet within a network element to an available port associated with a multi-link trunk |
US8140812B2 (en) | 2009-07-01 | 2012-03-20 | International Business Machines Corporation | Method and apparatus for two-phase storage-aware placement of virtual machines |
US8532116B2 (en) | 2009-07-21 | 2013-09-10 | Cisco Technology, Inc. | Extended subnets |
US8098677B1 (en) * | 2009-07-31 | 2012-01-17 | Anue Systems, Inc. | Superset packet forwarding for overlapping filters and related systems and methods |
US8274987B2 (en) | 2010-03-22 | 2012-09-25 | International Business Machines Corporation | Contention free pipelined broadcasting within a constant bisection bandwidth network topology |
US8559332B2 (en) * | 2010-05-25 | 2013-10-15 | Telefonaktiebolaget L M Ericsson (Publ) | Method for enhancing table lookups with exact and wildcards matching for parallel environments |
US9906429B2 (en) | 2010-09-17 | 2018-02-27 | Oracle International Corporation | Performing partial subnet initialization in a middleware machine environment |
US8730965B2 (en) * | 2011-01-05 | 2014-05-20 | Google Inc. | Systems and methods for dynamic routing in a multiprocessor network using local congestion sensing |
JP5594171B2 (ja) | 2011-02-02 | 2014-09-24 | 富士通株式会社 | 通信処理装置、アドレス学習プログラムおよびアドレス学習方法 |
JP5750973B2 (ja) | 2011-03-29 | 2015-07-22 | 富士通株式会社 | 通信方法および通信装置 |
CN102164090B (zh) | 2011-05-13 | 2013-12-25 | 杭州华三通信技术有限公司 | 基于通用路由封装隧道的报文转发的方法、系统及设备 |
US9240981B2 (en) | 2011-06-03 | 2016-01-19 | Oracle International Corporation | System and method for authenticating identity of discovered component in an infiniband (IB) network |
US8842671B2 (en) | 2011-06-07 | 2014-09-23 | Mellanox Technologies Ltd. | Packet switching based on global identifier |
US9274825B2 (en) | 2011-08-16 | 2016-03-01 | Microsoft Technology Licensing, Llc | Virtualization gateway between virtualized and non-virtualized networks |
US9288160B2 (en) | 2011-08-23 | 2016-03-15 | Intel Corporation | GID capable switching in an infiniband fabric |
US8862865B2 (en) * | 2011-08-30 | 2014-10-14 | International Business Machines Corporation | Rebooting infiniband clusters |
US20130086298A1 (en) * | 2011-10-04 | 2013-04-04 | International Business Machines Corporation | Live Logical Partition Migration with Stateful Offload Connections Using Context Extraction and Insertion |
US8713169B2 (en) | 2011-10-11 | 2014-04-29 | Cisco Technology, Inc. | Distributed IPv6 neighbor discovery for large datacenter switching systems |
US9288555B2 (en) | 2011-11-01 | 2016-03-15 | Plexxi Inc. | Data center network architecture |
US8879396B2 (en) | 2011-11-15 | 2014-11-04 | Oracle International Corporation | System and method for using dynamic allocation of virtual lanes to alleviate congestion in a fat-tree topology |
US8949489B1 (en) * | 2012-03-21 | 2015-02-03 | Google Inc. | Method for combining bulk and latency-sensitive input and output |
US9311122B2 (en) | 2012-03-26 | 2016-04-12 | Oracle International Corporation | System and method for providing a scalable signaling mechanism for virtual machine migration in a middleware machine environment |
US9397954B2 (en) | 2012-03-26 | 2016-07-19 | Oracle International Corporation | System and method for supporting live migration of virtual machines in an infiniband network |
US9264382B2 (en) * | 2012-05-11 | 2016-02-16 | Oracle International Corporation | System and method for routing traffic between distinct infiniband subnets based on fat-tree routing |
WO2013171867A1 (ja) | 2012-05-16 | 2013-11-21 | 富士通株式会社 | ノード装置および通信方法 |
CN104412697B (zh) * | 2012-07-13 | 2019-05-14 | 瑞典爱立信有限公司 | 与通过虚拟交换机连接隧道有关的设备和方法 |
US9385949B2 (en) | 2012-12-20 | 2016-07-05 | Mellanox Technologies Tlv Ltd. | Routing controlled by subnet managers |
US9794107B2 (en) | 2013-02-06 | 2017-10-17 | Alcatel Lucent | Method and apparatus for providing migration of cloud components across address domains |
US9237111B2 (en) | 2013-03-14 | 2016-01-12 | International Business Machines Corporation | Credit-based flow control in lossless ethernet networks |
US10404621B2 (en) | 2013-03-15 | 2019-09-03 | Oracle International Corporation | Scalable InfiniBand packet-routing technique |
US9191441B2 (en) | 2013-03-15 | 2015-11-17 | International Business Machines Corporation | Cell fabric hardware acceleration |
US9307053B2 (en) | 2013-04-23 | 2016-04-05 | Cisco Technology, Inc. | Direct data placement over user datagram protocol in a network environment |
US9577956B2 (en) | 2013-07-29 | 2017-02-21 | Oracle International Corporation | System and method for supporting multi-homed fat-tree routing in a middleware machine environment |
US9577928B2 (en) | 2013-08-27 | 2017-02-21 | Oracle International Corporation | System and method for supporting data service addressing in an engineered system for middleware and application execution |
US9559990B2 (en) * | 2013-08-27 | 2017-01-31 | Oracle International Corporation | System and method for supporting host channel adapter (HCA) filtering in an engineered system for middleware and application execution |
US10212022B2 (en) | 2013-09-13 | 2019-02-19 | Microsoft Technology Licensing, Llc | Enhanced network virtualization using metadata in encapsulation header |
CA2927498A1 (en) * | 2013-10-21 | 2015-04-30 | Nyansa, Inc. | A system and method for observing and controlling a programmable network using a remote network manager |
KR101815171B1 (ko) | 2013-10-31 | 2018-01-04 | 인텔 코포레이션 | 캐시 메모리를 위한 어드레싱 모드를 동적으로 제어하기 위한 방법, 장치 및 시스템 |
US9648148B2 (en) | 2013-12-24 | 2017-05-09 | Intel Corporation | Method, apparatus, and system for QoS within high performance fabrics |
US9628382B2 (en) | 2014-02-05 | 2017-04-18 | Intel Corporation | Reliable transport of ethernet packet data with wire-speed and packet data rate match |
US9519328B2 (en) | 2014-05-21 | 2016-12-13 | Intel Corporation | Techniques for selectively reducing power levels of ports and core switch logic in infiniband switches |
US9876737B2 (en) | 2014-07-11 | 2018-01-23 | Oracle International Corporation | System and method for supporting efficient load-balancing in a high performance computing (HPC) environment |
US10027602B2 (en) | 2014-07-29 | 2018-07-17 | Oracle International Corporation | Packet queue depth sorting scheme for switch fabric |
FR3025384B1 (fr) * | 2014-09-03 | 2016-09-16 | Bull Sas | Procede de surveillance et d'alerte de configuration de routage dans un cluster comprenant des liens de communication statiques et programme d'ordinateur mettant en oeuvre ce procede |
US9723008B2 (en) | 2014-09-09 | 2017-08-01 | Oracle International Corporation | System and method for providing an integrated firewall for secure network communication in a multi-tenant environment |
US20160080255A1 (en) | 2014-09-17 | 2016-03-17 | Netapp, Inc. | Method and system for setting up routing in a clustered storage system |
US9311133B1 (en) | 2014-10-09 | 2016-04-12 | Cisco Technology, Inc. | Touchless multi-domain VLAN based orchestration in a network environment |
US9525636B2 (en) | 2014-10-20 | 2016-12-20 | Telefonaktiebolaget L M Ericsson (Publ) | QoS on a virtual interface over multi-path transport |
WO2016069927A1 (en) | 2014-10-31 | 2016-05-06 | Oracle International Corporation | System and method for supporting partition-aware routing in a multi-tenant cluster environment |
US20160179582A1 (en) * | 2014-12-23 | 2016-06-23 | Intel Corporation | Techniques to dynamically allocate resources for local service chains of configurable computing resources |
US10348428B2 (en) | 2014-12-23 | 2019-07-09 | Intel Corporation | Techniques for synchronized execution of a command at network fabric nodes |
US9928093B2 (en) | 2015-02-24 | 2018-03-27 | Red Hat Israel, Ltd. | Methods and systems for establishing connections associated with virtual machine migrations |
US9733968B2 (en) | 2015-03-16 | 2017-08-15 | Oracle International Corporation | Virtual machine (VM) migration from switched fabric based computing system to external systems |
US10104017B2 (en) | 2015-05-12 | 2018-10-16 | Jeda Networks, Inc. | Methods, systems and apparatus for the virtualization of high performance networks |
US11204791B2 (en) | 2015-06-30 | 2021-12-21 | Nicira, Inc. | Dynamic virtual machine network policy for ingress optimization |
US10284383B2 (en) | 2015-08-31 | 2019-05-07 | Mellanox Technologies, Ltd. | Aggregation protocol |
US10432470B2 (en) * | 2015-09-23 | 2019-10-01 | International Business Machines Corporation | Distributed subnet manager for InfiniBand networks |
US10116528B2 (en) * | 2015-10-02 | 2018-10-30 | Keysight Technologies Singapore (Holdings) Ptd Ltd | Direct network traffic monitoring within VM platforms in virtual processing environments |
US10187310B2 (en) | 2015-10-13 | 2019-01-22 | Oracle International Corporation | System and method for efficient network isolation and load balancing in a multi-tenant cluster environment |
US10498654B2 (en) | 2015-12-28 | 2019-12-03 | Amazon Technologies, Inc. | Multi-path transport design |
US10374926B2 (en) * | 2016-01-28 | 2019-08-06 | Oracle International Corporation | System and method for monitoring logical network traffic flows using a ternary content addressable memory in a high performance computing environment |
US10171353B2 (en) | 2016-03-04 | 2019-01-01 | Oracle International Corporation | System and method for supporting dual-port virtual router in a high performance computing environment |
US10225185B2 (en) | 2016-04-18 | 2019-03-05 | International Business Machines Corporation | Configuration mechanisms in a switchless network |
US20180026878A1 (en) | 2016-07-24 | 2018-01-25 | Mellanox Technologies Tlv Ltd. | Scalable deadlock-free deterministic minimal-path routing for dragonfly networks |
US10158500B2 (en) | 2016-09-13 | 2018-12-18 | Ciena Corporation | G.8032 prioritized ring switching systems and methods |
-
2017
- 2017-01-24 US US15/414,211 patent/US10374926B2/en active Active
- 2017-01-24 US US15/414,227 patent/US10581711B2/en active Active
- 2017-01-26 US US15/416,642 patent/US10230607B2/en active Active
- 2017-01-26 US US15/416,709 patent/US10284448B2/en active Active
- 2017-01-26 US US15/416,696 patent/US10205646B2/en active Active
- 2017-01-27 CN CN201780002937.4A patent/CN107925622A/zh active Pending
- 2017-01-27 EP EP17703641.5A patent/EP3408978B1/en active Active
- 2017-01-27 JP JP2018510382A patent/JP6883568B2/ja active Active
- 2017-01-27 CN CN201780002951.4A patent/CN108028813B/zh active Active
- 2017-01-27 JP JP2018510374A patent/JP6957451B2/ja active Active
- 2017-01-27 WO PCT/US2017/015464 patent/WO2017132585A1/en active Application Filing
- 2017-01-27 WO PCT/US2017/015484 patent/WO2017132599A1/en active Application Filing
- 2017-01-27 CN CN202211067569.0A patent/CN115442278A/zh active Pending
- 2017-01-27 EP EP17704622.4A patent/EP3408981B1/en active Active
-
2018
- 2018-12-21 US US16/230,167 patent/US10868746B2/en active Active
-
2019
- 2019-01-28 US US16/259,901 patent/US10581713B2/en active Active
- 2019-03-25 US US16/363,582 patent/US10637761B2/en active Active
- 2019-07-03 US US16/502,609 patent/US11140057B2/en active Active
-
2020
- 2020-01-31 US US16/778,674 patent/US11190429B2/en active Active
-
2021
- 2021-10-06 JP JP2021164659A patent/JP7241146B2/ja active Active
- 2021-11-05 US US17/520,273 patent/US11824749B2/en active Active
-
2023
- 2023-03-06 JP JP2023033737A patent/JP2023078206A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1849783A (zh) * | 2003-10-02 | 2006-10-18 | 思科技术公司 | 用于实现边界网关协议(bgp)的分布式软件体系结构 |
CN104836755A (zh) * | 2009-10-30 | 2015-08-12 | Iii控股第2有限责任公司 | 用于高性能、低功率数据中心互连结构的系统和方法 |
US9069633B2 (en) * | 2012-12-20 | 2015-06-30 | Oracle America, Inc. | Proxy queue pair for offloading |
US20150098466A1 (en) * | 2013-10-06 | 2015-04-09 | Mellanox Technologies Ltd. | Simplified packet routing |
Non-Patent Citations (1)
Title |
---|
BARTOSZ BOGDANSKI等: "Making the Network Scalable: Inter-subnet Routing in InfiniBand", 《NETWORK AND PARALLEL COMPUTING》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220141678A (ko) * | 2021-04-13 | 2022-10-20 | 에스케이하이닉스 주식회사 | PCIe 펑션 및 그 동작 방법 |
KR102568909B1 (ko) | 2021-04-13 | 2023-08-21 | 에스케이하이닉스 주식회사 | PCIe 펑션 및 그 동작 방법 |
US11928070B2 (en) | 2021-04-13 | 2024-03-12 | SK Hynix Inc. | PCIe device |
US11983136B2 (en) | 2021-04-13 | 2024-05-14 | SK Hynix Inc. | PCIe device and operating method thereof |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108028813A (zh) | 用于在高性能计算环境中使用用于线性转发表(lft)查找的全局路由报头(grh)中的子网前缀值的系统和方法 | |
CN107852376A (zh) | 用于支持高性能计算环境中跨虚拟路由器端口的smp连接性检查的路由器sma抽象的系统和方法 | |
US11082543B2 (en) | System and method for supporting shared multicast local identifiers (MLID) ranges in a high performance computing environment | |
US11140065B2 (en) | System and method for supporting VM migration between subnets in a high performance computing environment | |
US10348847B2 (en) | System and method for supporting proxy based multicast forwarding in a high performance computing environment | |
US11496402B2 (en) | System and method for supporting aggressive credit waiting in a high performance computing environment | |
CN107852339A (zh) | 用于无损网络中的高效虚拟化的系统和方法 | |
CN107111513A (zh) | 为高性能云计算环境提供InfiniBand SR‑IOV vSWITCH体系架构的系统和方法 | |
CN108141415A (zh) | 用于支持高性能计算环境中的双端口虚拟路由器的系统和方法 | |
US10355972B2 (en) | System and method for supporting flexible P_Key mapping in a high performance computing environment | |
CN107852377A (zh) | 用于在高性能计算环境中支持交换机端口状况的可伸缩表示的系统和方法 | |
CN107852378A (zh) | 用于在高性能计算环境中支持可伸缩的基于位图的P_Key表的系统和方法 | |
US10666611B2 (en) | System and method for supporting multiple concurrent SL to VL mappings in a high performance computing environment | |
US10333894B2 (en) | System and method for supporting flexible forwarding domain boundaries in a high performance computing environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |