CN107533486B - 用于多租户集群环境中的高效网络隔离和负载平衡的系统和方法 - Google Patents

用于多租户集群环境中的高效网络隔离和负载平衡的系统和方法 Download PDF

Info

Publication number
CN107533486B
CN107533486B CN201680024094.3A CN201680024094A CN107533486B CN 107533486 B CN107533486 B CN 107533486B CN 201680024094 A CN201680024094 A CN 201680024094A CN 107533486 B CN107533486 B CN 107533486B
Authority
CN
China
Prior art keywords
nodes
partitions
partition
parameters
node
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.)
Active
Application number
CN201680024094.3A
Other languages
English (en)
Other versions
CN107533486A (zh
Inventor
F·扎西德
E·G·格兰
B·博格丹斯基
B·D·约翰森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Original Assignee
Oracle International Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Oracle International Corp filed Critical Oracle International Corp
Priority to CN202011123283.0A priority Critical patent/CN112260970B/zh
Publication of CN107533486A publication Critical patent/CN107533486A/zh
Application granted granted Critical
Publication of CN107533486B publication Critical patent/CN107533486B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/954Navigation, e.g. using categorised browsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/356Switches specially adapted for specific applications for storage area networks
    • H04L49/358Infiniband Switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • H04L49/501Overload detection
    • H04L49/503Policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches

Abstract

一种用于在多租户集群环境中支持网络隔离的系统和方法。示例性方法能够支持一个或多个租户,并且能够将一个或多个租户中的每一个租户与多个分区中的分区相关联,并且还能够将多个分区中的每一个分区与多个节点中的一个或多个节点相关联,多个节点中的每一个节点与多个交换机中的叶子交换机相关联。该方法能够用策略参数来标记多个分区中的每一个分区。该方法能够基于与每个节点相关联的分区上标记的向多个节点中的每一个节点指派分区次序。最后,该方法能够至少基于多个分区中的分区的标记来生成用于在多租户集群环境中使用的一个或多个线性转发表。

Description

用于多租户集群环境中的高效网络隔离和负载平衡的系统和 方法
版权声明
本专利文档公开内容的一部分包含受版权保护的素材。版权拥有者不反对任何人对专利文档或专利公开内容按照在专利商标局的专利文件或记录中出现那样进行传真复制,但是除此之外在任何情况下都保留所有版权。
技术领域
本发明一般涉及计算机系统,并且具体而言涉及多租户集群环境。
背景技术
多租赁承诺可用系统资源的高利用率并且有助于维持服务提供商的成本有效的操作。但是,多租户高性能计算(HPC)基础设施带来了独特的挑战,这些挑战既与向租户提供性能隔离相关联,又与实现跨网络结构的高效负载平衡相关联。
发明内容
一种用于在多租户集群环境中支持网络隔离的系统和方法。示例性方法可以在多租户集群环境内支持一个或多个租户。该方法可以将该一个或多个租户中的每一个租户与多个分区中的分区相关联,并且还可以将多个分区中的每一个分区与多个节点中的一个或多个节点相关联,其中多个节点中的每一个节点与多个交换机中的叶子交换机相关联,多个交换机包括多个叶子交换机和处于另一级别的至少一个交换机。该方法可以用多个策略参数中的策略参数来标记多个分区中的每一个分区。该方法可以向多个节点中的每一个节点指派分区次序,其中分区次序至少基于在与每一个节点相关联的分区上标记的策略参数。最后,该方法可以至少基于多个分区中的分区的标记来生成用于在多租户集群环境中使用的一个或多个线性转发表。
附图说明
图1示出了根据实施例的多租户集群环境的图示。
图2示出了其中可以实践本公开的实施例的网络环境中的树状拓扑的图示。
图3示出了其中可以实践本公开的实施例的多租户集群环境中的路由的图示。
图4示出了其中可以实践本公开的实施例的多租户集群环境中的路由的图示。
图5示出了根据实施例的、在多租户集群环境中支持分区感知路由的图示。
图6示出了根据实施例的、在多租户集群环境中支持分区感知路由的图示。
图7示出了根据实施例的、在多租户集群环境中支持分区感知路由的图示。
图8示出了根据实施例的、在多租户集群环境中支持分区感知路由的图示。
图9示出了根据实施例的、在多租户集群环境中支持网络隔离的图示。
图10示出了根据实施例的、在多租户集群环境中支持网络隔离的图示。
图11示出了根据实施例的、在多租户集群环境中支持加权的分区感知路由的图示。
图12示出了根据实施例的、在多租户集群环境中支持加权的分区感知路由的图示。
图13是根据实施例的、用于在多租户集群环境中支持网络隔离的方法的流程图。
图14是示出根据本发明的各种实施例的计算机系统的一般化示意图。
具体实施方式
在以下详细描述中,将通过举例的方式而不是通过限制的方式在附图的图中示出本发明。应当指出,在本公开内容中对“一”或“一个”或“一些”实施例的引用不一定是对相同的实施例的引用,并且这种引用意味着至少一个。虽然讨论了具体的实现,但是应当理解,具体实现仅仅是为了说明的目的而提供的。相关领域的技术人员将认识到,在不背离本发明的范围和精神的情况下,可以使用其它部件和配置。
贯穿附图和详细描述,共同的附图标记被用于指示相同的元件;因此,如果在其它地方描述了元件,则在图中使用的附图标记可以在特定于该图的详细描述中被引用或者可以不在特定于该图的详细描述中被引用。
本发明的以下描述使用InfinibandTM(IB)网络作为高性能网络的示例。对于本领域技术人员来说将明显的是,可以使用其它类型的高性能网络而没有限制。以下描述还使用胖树(fat-tree)拓扑作为结构拓扑的示例。对于本领域技术人员来说将明显的是,可以使用其它类型的结构拓扑而没有限制。
InfiniBandTM
InfiniBandTM(IB)是由InfiniBandTM贸易协会开发的开放标准无损网络技术。该技术基于提供高吞吐量和低延迟通信的串行点对点全双工互连,特别适用于HPC应用和数据中心。
InfiniBandTM体系架构(IBA)支持双层拓扑划分。在下层,IB网络被称为子网,其中子网可以包括使用交换机和点对点链路而被互连的主机的集合。在上层,IB结构构成一个或多个子网,该一个或多个子网可以使用路由器来互连。
在子网内,使用交换机和点对点链路来连接主机。此外,存在一个主管理实体,即子网管理器(SM),它驻留在子网中指定的子网设备上。子网管理器负责配置、激活和维护IB子网。此外,子网管理器(SM)可以负责执行IB结构中的路由表计算。在这里,例如,IB网络的路由以本地子网中的所有源和目的地对之间的适当的负载平衡为目标。
通过子网管理接口,子网管理器利用子网管理代理(SMA)交换被称为子网管理分组(SMP)的控制分组。子网管理代理驻留在每个IB子网设备上。通过使用SMP,子网管理器能够发现结构、配置端节点和交换机以及从SMA接收通知。
一般而言,除主子网管理器之外的所有其它子网管理器为了容错都在待机模式下行动。但是,在主子网管理器发生故障的情况下,由待机的子网管理器协商新的主子网管理器。主子网管理器还执行子网的周期性扫描(sweep),以检测任何拓扑变化并且相应地重新配置网络。
此外,子网内的主机和交换机可以使用本地标识符(LID)而被寻址,并且单个子网被限制为49151个LID。除了作为在子网内有效的本地地址的LID,每个IB设备还可以具有被烧录到它的非易失性存储器中的64位全局唯一标识符(GUID)。GUID可以被用于形成全局标识符(GID),GID是IB三层(L3)地址。可以通过将64位子网标识符(ID)与64位GUID串接以形成类似于IPv6的128位地址来创建GID。例如,可以将不同的端口GUID指派给连接到IB结构的端口。
在网络初始化时,SM可以计算路由表(即,子网内每对节点之间的连接/路由)。此外,每当拓扑改变时,路由表可以被更新,以确保连接性和最优性能。在正常操作期间,SM可以执行网络的周期性轻扫描(light sweep),以检查拓扑变化。如果在轻扫描期间发现变化,或者如果SM接收到发信号通知网络变化的信息(陷阱(trap)),则SM可以根据发现的变化来重新配置网络。
例如,当网络拓扑改变时,诸如当链路断开时、当添加设备时或者当链路被去除时,SM可以重新配置网络。重新配置步骤可以包括在网络初始化期间执行的步骤。此外,重新配置可以具有限于其中发生网络变化的子网的局部范围。而且,具有路由器的大型结构的分段可以限制重新配置的范围。
根据实施例,IB网络可以由使用路由器被互连的一个或多个子网组成。在子网内,使用交换机和点对点链路来连接主机。在每个IB子网内,可以存在一个主管理实体,即配置、激活和维护IB子网的子网管理器(SM),该SM驻留在任何指定的子网设备上。
通过子网管理接口,SM与驻留在每个IB设备上的子网管理代理(SMA)交换被称为子网管理分组(SMP)的控制分组。通过使用SMP,SM能够发现结构、配置端节点和交换机以及从SMA接收通知。SM还可以执行子网的周期性轻扫描,以检测任何拓扑变化并且相应地重新配置网络。
根据实施例,IB网络中的子网内路由可以基于存储在交换机中的线性转发表(LFT)。LFT由SM根据所使用的路由机制来计算。在子网中,端节点和所有交换机上的所有HCA端口都使用本地标识符(LID)而被寻址。LFT中的每个条目包括目的地LID(DLID)和输出端口。表中每个LID仅一个条目是所支持的。当分组到达交换机时,通过在该交换机的转发表中查找DLID来确定该分组的输出端口。路由是确定性的,因为分组在给定的源-目的地对(LID对)之间采取网络中的相同的路径。
根据实施例,分区是由IB支持的、用于提供共享网络结构(fabric)的系统的逻辑组的隔离的安全机制。结构中的节点上的每个HCA端口可以是一个或多个分区的成员。分区成员资格由集中式分区管理器管理,该集中式分区管理器可以是SM的一部分。SM可以将每个端口上的分区成员资格信息配置为16位分区键(P_Key)的表。SM还可以将交换机和路由器配置为具有包含与LID相关联的P_Key值的分区实行表。
根据实施例,对于节点之间的通信,除了管理队列对(QP0和QP1)之外,可以将队列对(QP)和端到端上下文(EEC)指派给特定分区。然后可以将P_Key信息添加到所发送的每个IB传输分组。当分组到达HCA端口或交换机时,可以针对由SM配置的表验证该分组的P_Key值。如果找到无效的P_Key值,则立即丢弃分组。以这种方式,仅允许在共享分区的端口之间的通信。
IB分区的示例在图1中示出,图1示出了根据实施例的多租户集群环境的图示。在图1所示的示例中,节点A-E,101-105,使用InfiniBand结构100经由相应的主机信道适配器111-115进行通信。节点A-E被布置成分区,即,分区1 110、分区2 120和分区3 130。分区1包括节点A 101和节点D 104。分区2包括节点A 101、节点B 102和节点C 103。分区3包括节点C103和节点E 105。由于分区的布置,不允许节点D 104和节点E 105进行通信,因为这些节点不共享分区。同时,例如,允许节点A 101和节点C 103进行通信,因为这些节点都是分区2120的一部分。
根据实施例,可以提供分区作为安全机制,以实行共享网络结构的系统的逻辑组的隔离。IB分区可以提供与以太网802.1Q VLAN类似的隔离特征。结构中的节点上的每个HCA端口可以是一个或多个分区的成员。分区成员资格可以由集中式分区管理器管理,该集中式分区管理器可以是SM的一部分。SM可以将每个端口上的分区成员资格信息配置为16位分区键(P_Key)的表。SM还可以将交换机和路由器配置为具有包含P_Key值的分区实行表。
根据实施例,对于节点之间的通信,除了管理队列对(QP0和QP1)之外,还可以将队列对(QP)和端到端上下文(EEC)指派给特定分区。然后可以将P_Key信息添加到所发送的每个传输分组。当分组到达HCA端口或交换机时,可以针对由SM配置的表来验证该分组的P_Key值。如果找到无效的P_Key值,那么丢弃该分组。以这种方式,仅允许在共享分区的端口之间的通信。
根据实施例,IB是分层体系架构,其中可以使用VL将每条物理链路划分成多个虚拟通道。每个VL可以具有它自己的缓冲、流控制和拥塞管理资源。可以通过区分业务等级(SL)集合来提供QoS。SL表示分组在网络中可以接收的服务等级。每个SL基于所配置的SL到VL映射表被映射到链路上的VL。IB支持多达16个VL。然而,最后一个VL是为子网管理业务保留的并且一般不由用户应用使用。
IB系统中的多租赁
从联网的角度来看,多租赁可以提供网络资源的高利用率并且有助于维持服务提供商的成本有效的操作。但是,多租户基础设施还带来了几个重要的安全问题,最具挑战性的问题之一与为租户提供性能隔离相关联。应当向每个租户提供不受系统中的其他租户的工作负载影响的、可预测的网络性能。可以通过分区来提供IB系统中的网络隔离。
根据实施例,分区是端口的逻辑组,以使得组的成员只能与同一组的其它成员通信。在主机通道适配器(HCA)和交换机处,可以使用分区成员资格信息来过滤分组,以实行隔离。一旦分组到达传入端口,就可以丢弃具有无效分区信息的分组。但是,在HPC系统中使用的路由算法一般不知道网络中的这种分区。因此,属于不同分区的业务流可能共享网络结构之内的链路。
在多租户IB系统中,可以使用分区来创建租户集群。通过适当的分区实行,节点不能与属于不同租户集群的其它节点进行通信。以这种方式,即使在存在受损的或恶意的租户节点的情况下,也可以保证系统的安全性。
IB路由一般可以基于存储在交换机中的线性转发表(LFT)。LFT由子网管理器(SM)计算,而不考虑分区信息。因此,中间网络链路可能携带属于不同分区的业务。中间链路的这种共享可以导致分区干扰。因此,租户经历不可预测的网络性能。此外,路由算法的平衡特征在分区的子网中也受到影响。这是因为,即使跨分区边界的链路不被用于用户业务,这些链路也以与其它功能链路相同的方式被路由(并且因此在平衡中被考虑)。降级的平衡可以导致降低的有效带宽和次优的网络利用率。
IB一般提供服务质量(QoS)特征,QoS特征可以用来为每个分区保证可用带宽的共享,而不管其它分区中的节点。然后通过向每个分区指派可用的被称为服务级别(SL)的区分业务等级来提供带宽保证。然后根据SL到VL映射表将每个SL映射到链路上的可用的十五个虚拟通道(VL)之一。
当向分区指派SL时,可能出现问题,因为系统仅能利用15个VL在网络中创建不同的分区,而IB网络一般可以具有大量的分区(例如,每个端口可以是多达32,768个分区的成员)。此外,在现有的IB硬件中,通常仅支持九个VL(包括为子网管理保留的一个VL)。此外,由于SL是稀缺的资源,因此可能期望使它们中的尽可能多的SL空闲,以用于其它目的,例如在网络中提供容错或服务差异化。
胖树(FTree)拓扑和路由
根据实施例,基于IB的HPC系统中的一些HPC系统采用胖树拓扑以利用胖树提供的有用属性。由于每个源-目的地对之间的多条路径的可用性,这些属性包括完全的二分带宽和固有的容错。胖树背后的最初想法是,随着树朝着拓扑的根移动,在节点之间采用具有更多可用带宽的较胖的链路。较胖的链路可以帮助避免上层交换机中的拥塞并且二分带宽被维持。
图2示出了其中可以实践本公开的实施例的网络环境中的树形拓扑的图示。如图2所示,一个或多个端节点201-204可以在网络结构200中被连接。网络结构200可以基于胖树拓扑,胖树拓扑包括多个叶子交换机211-214以及多个骨干交换机或根交换机231-234。此外,网络结构200可以包括一个或多个中间交换机,诸如交换机221-224。
此外,如图2所示,端节点201-204中的每一个可以是多宿节点,即,通过多个端口连接到网络结构200的两个或更多个部分的单个节点。例如,节点201可以包括端口H1和H2,节点202可以包括端口H3和H4,节点203可以包括端口H5和H6,并且节点204可以包括端口H7和H8。
此外,每个交换机可以具有多个交换机端口。例如,根交换机231可以具有交换机端口1-2,根交换机232可以具有交换机端口3-4,根交换机233可以具有交换机端口5-6,并且根交换机234可以具有交换机端口7-8。
根据实施例,胖树路由机制是用于基于IB的胖树拓扑的最流行的路由算法之一。胖树路由机制还在OFED(开放结构企业分发–用于构建和部署基于IB的应用的标准软件栈)子网管理器OpenSM中实现。
胖树路由机制旨在生成在网络结构中使最短路径路由跨链路均匀散布的LFT。该机制按索引次序遍历结构并且将端节点的目标LID指派给每个交换机端口并且因此将对应的路由指派给每个交换机端口。对于连接到相同叶子交换机的端节点,索引次序可以依赖于端节点连接到的交换机端口(即,端口编号顺序)。对于每个端口,该机制可以维护端口使用计数器,并且可以在每次添加新路由时使用这个端口使用计数器来选择最少使用的端口。如果存在连接相同的两个交换机的多个端口,那么这些端口形成端口组。在这种情况下,选择负载最少的端口组中的负载最少的端口来添加新路由。
如上面所提到的,在被分区的子网中,不允许不是共同分区的成员的节点进行通信。在实践中,这意味着由胖树路由算法指派的路由中的一些路由不用于用户业务。当胖树路由机制以与它为其它功能路径生成LFT相同的方式为这些路由生成LFT时,产生该问题。由于按索引的次序对节点进行路由,因此这种行为可以导致链路上的平衡降级。由于路由是在不注意分区的情况下进行的,因此胖树路由的子网一般提供分区间的较差的隔离。
图3示出了其中可以实践本公开的实施例的多租户集群环境中的路由的图示。更具体而言,图3详细说明了降级的负载平衡和较差的隔离的问题。
图3示出了2级胖树拓扑,该胖树拓扑在三个交叠的分区中具有四个交换机(根交换机325-326和叶子交换机320-321)以及六个端节点(节点A-F,301-306)。分区1包括节点B302和节点C 303。分区2包括节点A 301、节点C 303、节点D 304和节点F 306。最后,分区3包括节点D 304和节点E 305。
根据实施例,分区1和分区3分别被完全限制在叶子交换机320和321(即,单叶子交换机分区)内。因此,分区1和分区3中的节点之间的通信通过它们对应的叶子交换机进行,而不会将业务移动到根交换机325或326。当这个拓扑通过胖树路由机制路由时,朝着连接到叶子交换机320和321的节点的路由被指派给根交换机,以使得叶子交换机间的流可以到达它们的目的地。为了负载平衡,朝着A和C的路由被指派给根交换机325(在图上示为链路p),而根交换机326将业务朝着节点B路由(在图上示为链路q)。类似地,对于叶子交换机321,朝着叶子交换机间分区2中的节点D和F的业务经由根交换机325被路由(在图上示为链路r),并且朝着节点E的业务经由根交换机326被路由(在图上示为链路s)。
根据实施例,根交换机上的结束端口选择被示为图中具有节点标识符的小圆圈。由于路由是在不考虑分区信息的情况下(使用胖树路由机制)进行的,因此子网中的路径不能被适当地平衡。链路p和r被超额订阅,而将永远没有叶子交换机内的流使用链路q或s。朝着节点B和E指派的路由不被利用(除了相对低的管理业务),因为这两个节点由于它们的分区而都不能从它们的叶子交换机外部接收任何通信。当分区的通信仅限于拓扑中的级别中的一些级别时,在胖树中这种平衡问题也会发生。
现在参考图4,图4示出了其中可以实践本公开的实施例的多租户集群环境中的路由的图示。更具体而言,图4详细说明了与胖树内的较差的隔离相关联的问题。
图4示出了具有四个交换机(根交换机425-426和叶子交换机420-421)以及八个端节点(节点A-G,401-408)的二级胖树拓扑。同样,端节点被划分成两个分区。分区1包括节点A 401、节点B 402、节点G 407和节点H 408。分区2包括节点C 403、节点D 404、节点E 405和节点F 406。
这些分区中的每个分区具有连接到两个叶子交换机中的每一个的两个节点。胖树路由机制指派根交换机425和426上的向下端口,如图所示。由于胖树路由机制的本质,每个根交换机将业务朝着属于两个分区的节点路由,这提供了差的隔离,在分区环境中这是不期望的。例如,朝着节点A和C的业务在共享链路p上被路由。不同分区的节点之间的中间链路的共享可以造成它们之间的干扰。尽管网络在根级别具有足够的资源以提供分区间的完全隔离,但是胖树路由机制不提供期望的隔离。
分区感知的胖树(pFTree)路由
根据实施例,分区感知的胖树路由机制(在本文中不同地被称为pFTree)可以实现与IB网络中的多租赁相关联的期望目标。例如,pFTree机制可以通过跨树中的链路均匀分布路由来为胖树拓扑提供良好平衡的线性转发表。此外,在维持链路上的路由平衡的同时,pFTree可以去除属于不同分区的路径之间的干扰。
根据实施例,pFTree机制可以使用关于子网的分区信息来确保分区中的节点接收不受其它分区中运行的工作负载影响的可预测的网络性能。在拓扑没有足够链路可用于在每个级别提供分区隔离(而不危及负载平衡)的情况下,pFTree可以指派VL,以减少干扰的影响。
根据实施例,pFTree机制可以递归地工作,以便对于与每个端节点相关联的LID在所有相关的交换机上设置LFT。这在下面的伪代码(在本文中被称为清单1)中示出:
Figure BDA0001445343760000111
Figure BDA0001445343760000121
根据实施例,ROUTEDOWNGOINGBYASCENDINGTD()在下面的伪代码(在本文中被称为清单2)中示例:
Figure BDA0001445343760000122
根据实施例,ROUTEUPGOINGBYDESCENDINGTD()在下面的伪代码(在本文中被称为清单3)中示例:
Figure BDA0001445343760000131
根据实施例,ASSIGNVIRTUALLANESTD()在下面的伪代码(在本文中被不同地被称为清单4)中示例:
Figure BDA0001445343760000132
Figure BDA0001445343760000141
根据实施例,在滤出单叶子交换机分区(即,可以完全在单个叶子交换机内通信的那些分区)之后,对于每个叶子交换机,该机制可以(例如,经由具有唯一分区次序号的每个分区)按特定于分区的次序对连接的端节点进行排序(上面清单1的第4行)。通过考虑在叶子交换机处可用的上行端口数,这种排序可以辅助确保根据节点的分区来路由节点。然后,pFTree机制可以调用诸如ROUTEDOWNGOINGBYASCENDINGTD(上面清单1的第9行)之类的函数,并且在树中向上移动,以选择处于下一级别的端口来路由LID,如清单2中所示。
根据实施例,端口选择基于已经被指派的路由的最少数量。这可以帮助确保跨可用的路径来散布负载。但是,当具有相同负载的若干端口可用时,该函数可以迭代通过(iterate through)这些负载最少的端口,并且选择连接到已经被标记有被路由的节点的分区键的交换机的端口(清单2的第3-9行)。如果没有交换机被标记(这可以指示用于这个分区的第一个节点正被路由),则系统可以默认选择具有最高全局唯一标识符(GUID)的端口(清单2的第2行)。当交换机针对分区第一次被选择时,用分区键在向下方向标记该交换机(清单2的第11行)。
根据实施例,在交换机处为LID设置下行端口之后,该机制可以通过使树调用(清单3的ROUTEUPGOINGBYDESCENDINGTD)下降来在所有连接的向下交换机上为它指派向上的端口。再次,上行端口的选择可以首先基于负载标准,然后基于远程交换机的在向上方向的分区标记。然后,可以通过向上移动到树中的下一个级别来重复该过程,直到所有LFT都被设置为止。应当指出,交换机可以被标记由多个分区键。pFTree机制可以为每个交换机维护存储用于每个分区的路由节点的计数的表。如果具有标记的分区的多个交换机可用于路由节点,则该计数器可以被用于决定端口的选择。可以选择对于分区具有最大数量的已经路由的节点的交换机。
根据实施例,一旦生成了路由表,从而保持分区隔离标准,则该机制可以继续检查链路中的一些链路是否被用于朝着不同分区中的节点的流。对于这些情况,该机制可以将VL指派给干扰的分区,以提供隔离。清单4中示出了VL指派机制的示例。
根据实施例,VL指派机制可以迭代通过分区并且检查由分区中的节点使用的任何中间通信链路是否与尚未被指派单独的VL的另一个分区共享中间链路。如果遇到这种情况,则可以指派新的VL。pFTree路由机制可以支持用于VL选择的两种模式:严格模式和正常模式。
根据实施例,在严格模式下,如果用于pFTree路由的所需VL的数量超过系统中的可用VL,则路由会失败(清单4的第10行)。
根据实施例,在正常模式下,算法可以从VL1重新开始将VL指派给分区(清单4的第8行)。
根据实施例,提供了用于基于IB的胖树网络(被不同地称为pFTree)的高效的分区感知路由机制。pFTree机制可以为胖树拓扑提供分区的全网隔离。此外,pFTree为交换机产生良好平衡的LFT。给定足够的网络资源,pFTree可以仅在物理链路级别隔离分区。例如,如果胖树具有两个不重叠的相等大小的分区,则pFTree可以基于路由本身将中间网络链路划分成两个相等大小的逻辑子网络。此外,如果网络没有足够的可用资源来提供完整的分区隔离,则pFTree可以采用与物理隔离相结合的互补的基于VL的隔离方案。
根据实施例,pFTree路由机制旨在实现两个主要目标。首先,通过跨树中的链路均匀地分布路由,该机制可以为胖树拓扑生成良好平衡的LFT。其次,在使链路上的路由维持平衡的同时,pFTree去除了属于不同分区的路径之间的干扰。pFTree可以使用关于子网的分区信息,并且确保分区中的节点接收不受其它分区中运行的工作负载的影响的、可预测的网络性能。如果拓扑没有足够的链路可用于在每个级别提供分区隔离(而不危及负载平衡),则pFTree可以使用VL来减少干扰的影响。
根据实施例,pFTree机制可以递归地工作,以对于与每个端节点相关联的LID在所有相关交换机上设置LFT。在滤出单叶子交换机分区之后,对于每个叶子交换机,该机制可以按特定于分区的次序对连接的端节点进行排序。通过考虑在叶子交换机处可用的上行端口数量,这种排序确保根据节点的分区对节点进行路由。在每个级别的端口选择可以基于已经指派的路由的最少数量,以确保跨可用路径散布负载。但是,当具有相同负载的若干端口可用时,该函数迭代通过这些负载最少的端口,并且选择连接到已经用正在被路由的节点的分区键标记的交换机的端口。如果没有交换机被标记(即,用于特定分区的第一个节点的路由),则pFTree可以开始默认选择具有最高全局唯一标识符(GUID)的端口。当交换机对于分区第一次被选择时,交换机可以用分区键来标记。以这种方式,该机制可以帮助确保如果足够的路径可用于平衡,则属于一个分区的节点将通过相同的交换机和对应的链路进行路由。一旦生成了路由表,从而保持分区隔离标准,该机制就可以继续检查是否链路中的一些链路正被用于朝着不同分区中的节点的流。对于这些情况,该机制可以将VL指派给干扰的分区,以提供隔离。
现在参考图5-图8,这些图是根据实施例的在多租户集群环境中支持分区感知的路由的图示。
根据实施例,pFTree路由中的端口选择机制通过超额订阅的胖树网络的简单部分在图5-图8中被示出。
现在参考图5,图5示出了具有四个交换机(根交换机525-526和叶子交换机520-521)以及八个端节点(节点A-G,501-508)的2级胖树拓扑。同样,端节点被划分成两个分区。分区1包括节点A 501、节点D 504、节点G 507和节点H 508。分区2包括节点B 502、节点C503、节点E 505和节点F 506。
根据实施例,如图5所示,示例部分由两个叶子交换机(520和521)组成,每个叶子交换机连接到四个端节点和位于叶子交换机上方的下一级别处的两个交换机,即,根交换机(525和526)。图中还指示了down(向下)和max(最大)的变量,它们分别表示在向下方向指派的路由数以及为了确保每个链路上的适当平衡而可以被路由的最大节点数。
根据实施例,假设在每个叶子交换机处存在两个上行端口,并且四个端节点要路由,则每条上行链路应当向下路由两个端节点,以确保链路是平衡的(即,max=2)。
根据实施例,对于叶子交换机520,前两个节点(节点A和节点B)的路由在图6中示出。路由机制可以选择根交换机525来朝着节点A路由业务并且用节点A的分区键来标记该交换机,节点A的分区键在图中被示为“(分区1)”。类似地,对于节点B,根交换机526可以被选择并且用节点B的分区键来标记,节点B的分区键在图中被示为“(分区2)”。变量down也被更新,以对两条向下链路中的每一条上的单个路由节点进行计数。
根据实施例,对于节点C和D,可以选择已经用对应的分区键标记的交换机,如图7中给出的。得到的路由利用通过根交换机525的相同链路流向属于第一分区的节点(即,节点A和D)。类似地,第二分区的节点(即,节点B和C)可以通过根交换机526被向下路由。路由的这种分离避免了两个分区的业务流之间的干扰。应当指出,在每条链路上向下路由的节点数不超过max变量,这意味着路由仍然是平衡的。
最后,根据实施例,图8示出了用于连接到叶子交换机521的端节点的路由。在这里同样,由于第二级交换机已经被标记有来自第一叶子交换机路由的分区键,因此对应的交换机可以被选择,以路由节点中的每一个节点(即,节点E、F、G和H)。如图所示,最终的路由可以通过基于路由将中间网络链路划分成两个相等大小的逻辑子网络来隔离两个分区。
扩展的pFTree
根据实施例,当网络没有足够的资源来仅在物理链路级别隔离分区时,pFTree路由算法使用VL来减少分区间干扰。但是,依赖于对应的SLA(服务级别协定)或QoS要求,不同的分区可以具有不同的隔离需求。例如,网络中的分区中的一些分区可能正在运行关键操作,并且可能在所有情况下都要求完全的物理隔离。类似地,在许多网络中,依赖于VL的可用性,一些分区可能必须与另一个分区共享VL,这对于通信密集型工作负载可能是不期望的。上文描述的pFTree算法无法在路由中指定上面提到的逐分区(partition-wise)的要求,并且,假设有类似的QoS要求,以相同的优先级来对待所有分区。
现在参考图9,图9是根据实施例的、在多租户集群环境中支持网络隔离的图示。更具体而言,图9表示具有(由不同的阴影示出的)在三个不同的租户分区中的九个节点(即,节点A-I、901-909)的胖树网络的示例。节点A 901和E 905属于分区1,节点B 902、F 906、G907和I 909属于分区2,节点C 903、D 904和H 908属于分区3。胖树网络还包含根交换机925和926、以及叶子交换机920、921和922。
根据实施例,分区1可以具有非常高的QoS要求,并且在这个分区中运行的工作负载不受任何分区间干扰的影响是至关重要的。但是,由于给定网络只有两个根交换机(根交换机925和根交换机926),同时具有三个不同的租户分区,因此不可能仅在物理级别隔离这些分区。如上所述,在这种情况下,pFTree路由算法可以继续使用VL来隔离分区。图中还示出了使用(上面的)缺省pFTree算法获得的路由,其中使用在交换机下方的小节点圆圈来表示朝着目的节点的流。可以看出,朝着分区1的节点A的业务当前与朝着属于不同分区(即,分区3)的节点C的业务共享在根交换机925和叶子交换机920之间的链路。类似地,朝着分区1(要求高QoS的分区)的E的业务与朝着分区2的节点F的业务共享链路。在这两个链路上,为了保持隔离,路由机制可以利用分开的虚拟通道。但是,即使VL的使用降低了干扰,它也没有完全消除这种干扰。
隔离策略
根据实施例,可以扩展pFTree路由机制,以包括逐分区的和全局的隔离策略。对于每个分区,隔离策略可以确定允许分区中的节点如何与属于其它分区的节点共享网络资源。全局策略可以确定如果对于给定网络所有的逐分区隔离策略不能被满足,那么路由将失败,还是继续尽力而为的隔离。
根据实施例,可以提供用于扩展的pFTree路由机制的各种策略参数。每个分区可以用三个逐分区策略参数之一进行标记。用phy-isolation(在本文中也称为严格参数)来标记分区可以保证路由算法专门为该分区保留网络资源,并且该分区中的任何节点都将不会与不同分区中的任何其它节点共享任何链路。用参数vlane-isolation(在本文中也称为严格虚拟通道参数)来标记分区允许标记的分区仅使用分开的VL与其它分区共享网络资源。用def-isolation(在本文中也称为尽力而为(best effort)参数)来标记分区的方案为标记的分区实现尽力而为的隔离。
根据实施例,策略参数还可以包括全局策略参数。全局策略参数(strict和best-effort)可以定义当给定子网中不能满足逐分区的策略参数时,路由机制是失败还是回退到尽力而为的路由。例如,当网络没有用于提供期望的隔离的足够的链路或VL时。可以使用分区配置文件将策略参数提供给路由机制。
扩展的pFTree机制
根据实施例,通过递归地遍历结构以对于与每个端节点相关联的LID在所有交换机中设置LFT,扩展的pFTree路由机制(在本文中不同地称为“pFTree-Ext”)以与(如上所述的)原始pFTree类似的方式工作。但是,与pFTree不同,pFTree-Ext在指派路由时还可以考虑定义的全局隔离策略和逐分区隔离策略。
根据实施例,pFTree-Ext路由机制的伪代码(在本文中不同地被称为清单5)如下所示:
确保:为交换机生成符合隔离策略的LFT
Figure BDA0001445343760000201
根据实施例,机制是确定性的,并且从目的地节点开始向后计算路由。该机制可以首先按特定于分区的次序对计算节点进行排序(清单5的第3行)。特定于分区的次序可以确保机制的更快执行,因为一旦节点被排序,它们就可以被迭代地路由,而无需在每个下行和上行端口上维护最大计数器。如下面用于ORDERCOPMUTENODES的伪代码中所示,对于每个叶子交换机,ORDERCOMPUTENODES首先按端节点的分区策略优先级的递增次序对端节点进行排序(清单6的第4行(见下文))。首先可以添加属于用phy-isolation参数标记的分区的节点,其次可以添加用vlane-isolation标记的分区。最后,具有def-isolation策略参数值的分区节点被添加到计算节点的列表。该机制然后使用节点的分区信息来生成路由次序,其中属于一个分区的节点在迭代路由上趋向于获得暗示(suggest)网络中的相同上行链路的索引。这是通过使用分区键表将可用的上行端口的数量添加到被选择用于路由属于分区的第一节点的索引来进行的(清单6的第14-28行)。但是,当这种索引已经被取得或索引超出计算数组边界时,第一个空闲索引可以被选择并且用分区键标记,以供稍后选择(清单6的第24行)。用于ORDERCOMPUTENODES的伪代码(在本文中不同地被称为清单6)如这里所示:
需要:交换机和附连的计算节点的列表
确保:对于pFTree-Ext路由算法来对计算节点进行排序
Figure BDA0001445343760000211
Figure BDA0001445343760000221
根据实施例,一旦节点被适当排序,pFTree-Ext机制就可以调用ROUTEDOWNGOINGBYASCENDING(清单5的第9行),并且在树中向上移动,以选择处于下一级的端口来在向下方向上路由LID,如下面在用于ROUTEDOWNGOINGBYASCENDING的伪代码(在本文中还被不同地称为清单7)中所例示的:
需要:交换机sw、端节点lid和partition_key
Figure BDA0001445343760000222
Figure BDA0001445343760000231
根据实施例,端口选择首先基于从排序的可用上行端口获得的负载最小的端口列表(清单7的第1-2行)。该函数迭代通过这些负载最小的端口,并且选择连接到已经用正被路由的节点的分区键标记的交换机的端口(清单7的第5-11行)。如果没找到被标记的交换机,那么算法迭代通过上行端口,以找到用于LID的合适路由。按照端口上的当前负载的升序对上行端口列表进行排序。对于具有相同负载的端口,按照它们的全局唯一标识符(GUID)的降序进行排序,以保持确定性。此外,该函数不选择已经用具有比被路由的节点更高的隔离策略参数的分区键标记的端口(清单7的第16-17行)。最后,当端口被选择时,对应的交换机用分区键在向下方向被标记(清单7的第24行)。
根据实施例,一旦在交换机处设置了用于LID的下行端口,pFTree-Ext机制就通过使树调用ROUTEUPGOINGBYDESCENDING(在本文中还被不同地称为清单8)下降而在所有连接的向下交换机上为它指派向上的端口。用于ROUTEUPGOINGBYDESCENDING的伪代码如这里所示:
需要:交换机sw、端节点lid和partition_key
Figure BDA0001445343760000241
Figure BDA0001445343760000251
根据实施例,上行端口的选择首先基于负载标准,然后基于远程交换机的这次在向上的方向的分区标记。然后通过在树中向上移动到下一级别来重复该过程,直到所有LFT都被设置为止。要注意的是,可以用多个分区键标记交换机。pFTree-Ext机制为每个交换机维护表,该表存储用于每个分区的路由节点的计数。如果具有标记分区的若干交换机可用于路由节点,那么这个计数器被用来决定端口的选择。对于分区具有最大数量的已经被路由的节点的交换机被选择。
根据实施例,一旦生成了路由表,从而保持分区隔离标准,pFTree-Ext机制就继续检查链路中的一些链路是否被用于朝着不同分区中的节点的流。对于这些情况,pFTree-Ext机制可以将VL指派给干扰分区,以提供隔离。以下示出用于VL指派函数(ASSIGNVIRTUALLANES)的伪代码(在本文中不同地被称为清单9):
需要:已生成pFTree-Ext路由表
需要:已用分区键标记交换机
需要:全局策略参数,strict或best-effort
确保:用vl-isolation标记的分区具有分开的VL
确保:具有相同SL的两个分区不共享链路
Figure BDA0001445343760000252
Figure BDA0001445343760000261
根据实施例,虚拟通道指派函数可以迭代通过所有分区,并且检查分区是否用vl_isolation策略参数标记,以及该分区中的节点使用的任何中间通信链路是否与尚未被指派分开的VL的另一个分区共享中间链路。如果是,那么指派新的VL。VL指派函数还可以使用具有两种模式的全局策略参数:strict(严格)和best-effort(尽力而为)。在strict模式下,如果用于pFTree-Ext路由机制的所需VL的数量超过系统中可用的VL的数量,那么路由失败(清单9的第10行)。在best-effort模式下,虚拟通道指派函数可以从VL1重新开始将VL指派给分区(清单9的第8行)。
根据实施例,可以容易地修改pFTree-Ext路由机制,以考虑特定的VL组,而不是所有可用的VL。类似地,为了使得具有较高隔离策略的分区不太可能共享VL,一旦所有可用的VL被使用,VL列表就可以按被指派的分区的降低的优先级被排序,以供选择(而不是选择VL1)。在指派VL之后,pFTree-Ext路由算法验证是否所有逐分区策略和全局策略都被满足(清单5的第13行)。
根据实施例,pFTree-Ext机制可以将隔离策略结合到路由算法中。与pFTree(pFTree对于每个叶子交换机,在路由之前按特定于分区的次序对端节点进行排序)不同的是,pFTree-Ext路由机制首先按端节点的分区优先级的次序对端节点进行排序。被标记有phy-isolation的分区中的端节点获得最大优先级。之后,该机制通过如前所述按特定于分区的次序对端节点进行排序而继续。预先完成附加的排序,以确保具有最高分区优先级的节点首先被路由。
根据实施例,pFTree-Ext机制还可以通过改变选择用于路由新节点的端口的方式来将隔离策略结合到路由算法中。例如,为了在若干候选端口中选择下行端口,pFTree-Ext除了检查端口上的当前负载之外,还移除对应的交换机已经用具有比当前被路由的节点的分区更高的优先级的分区的键被标记的任何端口组。
根据实施例,并且附加地,如果可用的网络资源不允许满足逐分区策略参数,那么pFTree-Ext路由机制可以失败或者根据全局策略参数继续进行。在这种情况下,原始的pFTree路由算法仅考虑可用的VL。
现在参考图10,图10是根据实施例的、在多租户集群环境中支持网络隔离的图示。更具体而言,图10表示具有在(由不同阴影示出的)三个不同的租户分区中的九个节点(即,节点A-I,901-909)的胖树网络的示例。节点A 901和E 905属于分区1,节点B 902、F 906、G907和I 909属于分区2,节点C 903、D 904和H 908属于分区3。胖树网络还包含根交换机925和926、以及叶子交换机920、921和922。
根据实施例,图10表示使用pFTree-Ext机制的子网路由,其中分区1(即,节点A901和节点E 905)已被标记为具有高优先级(诸如phy-isolation),这可以保证路由机制专门为该分区保留网络资源,并且该分区中的节点将都不会与不同分区中的任何其它节点共享任何链路。得到的路由在图10中示出。因为分区1已被标记为具有高优先级(诸如phy-isolation),所以分区1的节点(即,节点A和E)都不与任何其它分区共享链路。但是,由于没有对分区2和/或分区3应用这样的策略,因此这些分区共享来自交换机926的所有下行链路。
加权pFTree路由机制
根据实施例,pFTree路由机制的第二扩展可以考虑子网中的业务特性的权重。这可以被称为加权pFTree路由机制(pFTree-Wt)。pFTree-Wt基于与每个计算节点相关联的权重的概念。这些权重被用来在计算路由时考虑已知的或学习到的业务特性。不管分区如何,节点的权重反映了在计算路由表时朝着节点的流接收的优先级的程度。例如,可能的配置可以是依赖于已知节点在网络中接收多少业务来向节点指派在[1,100]范围中的权重。这种方案可以为接收非常少的业务的节点(例如主要是业务发生器)指派权重=1,并且为接收几乎链路容量的业务的节点指派权重=100。然后,1<x<100之间的值可以反映预期节点在网络中接收的业务的比例。
根据实施例,当关于计算节点的管理信息不可用时,可以使用基于端口数据计数器的方案来计算权重。例如,在OFED(OpenFabrics Enterprise Distribution,开放结构企业分发)中,被称为ibdatacounts的实用程序被提供以用于读取数据计数器。在将网络设置为对于所有节点具有相等的初始权重后,可以在指定的时间段之后学习新的权重。
根据实施例,如果B表示在一段时间内测量的、所有节点的接收带宽集合,那么通过使用如下的线性变换,可以在范围[a,b]中为指派每一个节点的权重:
Figure BDA0001445343760000281
根据实施例,通过使用pFTree-Wt路由机制,可以向每个计算节点指派参数(权重)。与原始pFTree路由(在原始pFTree路由中,端口上的负载表示在向上方向和向下方向朝着节点指派的路由的数量)不同,pFTree-Wt路由方案中的端口上的负载是在每个方向上从该端口路由的计算节点的累积权重。对于每个叶子交换机,一个分区中的节点在路由之前还按它们的权重进行排序。当选择交换机处的向下的端口来路由计算节点时,pFTree-Wt通过添加对应计算节点的权重来更新所选择的端口上的当前负载。类似地,对于向上的链路,在每个端口上维护向上的负载。端口选择标准类似于pFTree路由,并且也考虑节点的分区。但是,与端口计数器不同,pFTree-Wt中的每个级别的端口选择基于所有可用端口上的最小的累积权重。当具有相同负载的若干端口可用时,该机制在这些负载最小的端口上进行迭代,并且选择连接到已经用正在被路由的节点的分区键标记的交换机的端口。一旦生成路由表,pFTree-Wt就可以运行VL指派,以确保不同的VL被指派给共享网络中的链路的、与不同分区相关联的节点。
图11示出了根据实施例的、在多租户集群环境中支持加权的分区感知路由的图示。具体而言,图11示出了具有四个交换机(根交换机1125-1126和叶子交换机1120-1121)以及八个端节点(节点A-G,1101-1108)的2级胖树拓扑。同样,端节点被划分为两个分区。分区1包括节点A 1101、节点D 1104、节点G 1107和节点H 1108。分区2包括节点B 1102、节点C1103、节点E 1105和节点F 1106。
根据实施例,图11中的每一个节点已经被指派权重。已经为节点A 1101指派了权重100,而其余的节点已经被指派了权重1。使用pFTree-Wt的到叶子交换机1120的向下路由在图11中示出。当路由节点连接到叶子交换机1120时,两个上行端口分别可用于连接到交换机1125和1126。由于节点A具有等于100的权重,因此向节点A指派这些链路中的一条链路,交换机1125→交换机1120,而其它三个节点共享另一条链路,交换机1126→交换机1120。这是因为其它三个节点的权重的总和只有3,低于100。即使所选择的交换机被标记有分区键,但是由于加权的分区感知路由,仍然无法在子网中隔离分区。
图12示出了根据实施例的、在多租户集群环境中支持加权的分区感知路由的图示。具体而言,图12示出了具有四个交换机(根交换机1125-1126和叶子交换机1120-1121)以及八个端节点(节点A-G,1101-1108)的2级胖树拓扑。同样,端节点被划分为两个分区。分区1包括节点A 1101、节点D 1104、节点G 1107和节点H 1108。分区2包括节点B 1102、节点C1103、节点E 1105和节点F 1106。
根据实施例,图12中的每一个节点已经被指派了权重。节点A 1101已经被指派了权重100,而其余的节点已经被指派了权重1。使用pFTree-Wt的到叶子交换机1121的向下路由在图12中示出。与到叶子交换机1120的路由不同,连接到叶子交换机1121的每个节点具有相同的权重(即,1)。因此,分区可以在链路上保持隔离。属于相同分区的节点G和H在向下的方向可以路由通过交换机1125→交换机1121之间的链路。分区2的并且具有相同权重的节点E和F在向下的方向可以路由通过交换机1126→交换机1121之间的链路。
根据实施例,pFTree-Wt满足链路上的加权的负载平衡,同时保持分区尽可能的隔离。要注意的是,如图12中所示,最终路由仅具有由两个分区的节点共享的一条链路。
图13是根据实施例的、用于在多租户集群环境中支持网络隔离的方法的流程图。
在步骤1301,该方法可以支持多租户集群环境内的一个或多个租户。
在步骤1302,该方法可以将一个或多个租户中的每一个租户与多个分区中的分区相关联。
在步骤1303,该方法可以将多个分区中的每一个分区与多个节点中的一个或多个节点相关联,该多个节点中的每一个节点与多个交换机中的叶子交换机相关联,该多个交换机包括多个叶子交换机和处于另一级别的至少一个交换机。
在步骤1304,该方法可以用多个策略参数中的策略参数来标记多个分区中的每一个分区。
在步骤1305,该方法可以向多个节点中的每一个节点指派分区次序,其中该分区次序至少基于在与每个节点相关联的分区上标记的策略参数。
在步骤1306,至少基于对多个分区中的分区的标记,该方法可以生成用于在多租户集群环境中使用的一个或多个线性转发表。
图14是示出其中可以实现本发明的实施例的示例性计算机系统1400的框图。计算机系统1400被示为包括可以经由总线1490电耦接的硬件元件。硬件元件可以包括一个或多个中央处理单元1410、一个或多个输入设备1420(例如,鼠标、键盘,等等)和一个或多个输出设备1430(例如,显示设备、打印机等)。
计算机系统1400还可以包括一个或多个存储设备1440。作为示例,(一个或多个)存储设备1440可以是盘驱动器、光学存储设备、诸如随机存取存储器(“RAM”)和/或只读存储器(“ROM”)之类的固态存储设备,存储设备可以是可编程的、可闪存更新的等等)。存储设备可以包括但不限于任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微驱动器、以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪存存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC)、或适于存储指令和/或数据的任何类型的介质或设备。
计算机系统1400还可以包括计算机可读存储介质读取器1450、通信系统14140(例如,调制解调器、网卡(无线或有线的)、红外通信设备、蓝牙TM设备、蜂窝通信设备等)以及工作存储器1480,工作存储器1480可以包括如上所述的RAM和ROM设备。在一些实施例中,计算机系统1400还可以包括处理加速单元1470,处理加速单元1470可以包括数字信号处理器、专用处理器等。
计算机可读存储介质读取器1450还可以连接到计算机可读存储介质,从而一起(并且可选地与(一个或多个)存储设备1440组合)全面地表示远程存储设备、本地存储设备、固定存储设备和/或可移动存储设备加上用于临时地和/或更永久地包含计算机可读信息的存储介质。存储在机器可读介质(多个机器可读介质)中的任何一个上的本发明的特征可以被结合在软件和/或固件中,以用于控制计算机系统的硬件,以及用于使计算机系统能够利用本发明的结果与其它机制进行交互。这种软件或固件可以包括但不限于应用代码、设备驱动器、操作系统和执行环境/容器。通信系统1460可以允许与网络、系统、计算机和/或上文描述的其它部件交换数据。
计算机系统1400还可以包括被示为当前位于工作存储器1480内的软件元件,这些软件元件包括操作系统1488和/或其它代码1484。应当理解的是,计算机系统1400的替代实施例可以具有来自上文描述的许多变型。例如,还可以使用定制的硬件和/或特定的元件可以在硬件、软件(包括便携式软件,诸如小应用程序)或硬件和软件两者中实现。此外,还可以存在到其它计算设备(诸如网络输入/输出和数据获取设备)的连接。
计算机系统1400的软件可以包括用于实现本文描述的体系架构的各种元件的功能中的任何或全部功能的代码1484。例如,由计算机系统(诸如系统1400)存储和/或执行的软件可以提供本发明的功能和/或其它部件,诸如上面讨论的部件。上文已经较详细地讨论了能够在这些部件中的一些部件上由软件实现的方法。
本发明的特征还可以利用例如诸如专用集成电路(ASIC)之类的硬件部件在硬件中实现。为了执行本文所描述的功能的硬件状态机的实现对相关领域的技术人员将是明显的。
虽然上文已经描述了本发明的各种实施例,但是应该理解,它们是作为示例而不是作为限制给出的。对相关领域的技术人员来说,将明显的是,在不背离本发明的精神和范围的情况下,可以在其中做出形式和细节上的各种变化。
上文已经借助示出具体功能及其关系的执行的功能构建块描述了本发明。在本文中为了方便描述,通常任意定义这些功能构建块的边界。只要具体的功能及其关系被适当地执行,就可以定义可替代的边界。任何这种可替代的边界因此在本发明的范围和精神内。
为了说明和描述的目的提供了本发明的以上描述。它不旨在是穷尽的或者把本发明限制到所公开的精确形式。本发明的广度和范围不应当由上述示例性实施例中的任何实施例来限制。许多修改和变型对本领域技术人员来说将是明显的。修改和变型包括所公开的特征的任何相关组合。实施例被选择和描述以便最好地解释本发明的原理及其实践应用,从而使本领域其他技术人员能够对于各种实施例以及利用适于预期的特定用途的各种修改来理解本发明。旨在由以下权利要求及其等价物来定义本发明的范围。

Claims (22)

1.一种用于在多租户集群环境中支持网络隔离的方法,包括:
在所述多租户集群环境内支持一个或多个租户;
将所述一个或多个租户中的每一个租户与多个分区中的分区相关联;
将所述多个分区中的每一个分区与多个节点中的一个或多个节点相关联,其中所述多个节点中的每一个节点与多个交换机中的叶子交换机相关联,所述多个交换机包括多个叶子交换机和处于另一级别的至少一个交换机;
用多个策略参数中的策略参数来标记所述多个分区中的每一个分区;
向所述多个节点中的每一个节点指派分区次序,其中所述分区次序至少基于在与每个节点相关联的分区上标记的策略参数;以及
至少基于所述多个分区中的分区的标记来生成用于在所述多租户集群环境中使用的一个或多个线性转发表。
2.如权利要求1所述的方法,还包括:
用全局策略参数来标记所述多个分区中的每一个分区。
3.如权利要求1或2所述的方法,其中所述多个策略参数包括:
严格参数,
严格虚拟通道参数,以及
尽力而为参数。
4.如权利要求3所述的方法,其中与用严格参数标记的分区相关联的节点的分区次序在与用严格虚拟通道参数标记的分区相关联的节点的分区次序之前,并且其中与用严格虚拟通道参数标记的分区相关联的节点的分区次序在与用尽力而为参数标记的分区相关联的节点的分区次序之前。
5.如权利要求4所述的方法,其中生成一个或多个线性转发表包括:
对于所述多个叶子交换机中的每一个叶子交换机,根据每个节点的分区次序对所述多个节点进行排序;以及
按节点的次序来路由多个端节点,所述路由包括:
为每个节点选择至少一个下行端口和至少一个上行端口。
6.如权利要求5所述的方法,其中所述按节点的次序来路由多个端节点为与用严格参数标记的分区相关联的那些节点提供严格隔离。
7.如权利要求5或6所述的方法,其中所述按节点的次序来路由多个端节点为与用严格虚拟通道参数标记的分区相关联的那些节点提供在虚拟通道上的隔离。
8.一种在多租户集群环境中支持网络隔离的系统,所述系统包括:
一个或多个处理器;以及
存储器,所述存储器上存储有指令,所述指令当由所述一个或多个处理器执行时,使所述一个或多个处理器执行步骤,所述步骤包括:
在所述多租户集群环境内支持一个或多个租户;
将所述一个或多个租户中的每一个租户与多个分区中的分区相关联;
将所述多个分区中的每一个分区与多个节点中的一个或多个节点相关联,其中所述多个节点中的每一个节点与多个交换机中的叶子交换机相关联,所述多个交换机包括多个叶子交换机和处于另一级别的至少一个交换机;
用多个策略参数中的策略参数来标记所述多个分区中的每一个分区;
向所述多个节点中的每一个节点指派分区次序,其中所述分区次序至少基于在与每个节点相关联的分区上标记的策略参数;以及
至少基于所述多个分区中的分区的标记来生成用于在所述多租户集群环境中使用的一个或多个线性转发表。
9.如权利要求8所述的系统,其中所述一个或多个处理器操作以执行进一步的步骤,包括:
用全局策略参数来标记所述多个分区中的每一个分区。
10.如权利要求8或9所述的系统,其中所述多个策略参数包括:
严格参数,
严格虚拟通道参数,以及
尽力而为参数。
11.如权利要求10所述的系统,其中与用严格参数标记的分区相关联的节点的分区次序在与用严格虚拟通道参数标记的分区相关联的节点的分区次序之前,并且其中与用严格虚拟通道参数标记的分区相关联的节点的分区次序在与用尽力而为参数标记的分区相关联的节点的分区次序之前。
12.如权利要求11所述的系统,其中生成一个或多个线性转发表包括:
对于所述多个叶子交换机中的每一个叶子交换机,根据每个节点的分区次序对所述多个节点进行排序;以及
按节点的次序来路由多个端节点,所述路由包括:
为每个节点选择至少一个下行端口和至少一个上行端口。
13.如权利要求12所述的系统,其中所述按节点的次序来路由多个端节点为与用严格参数标记的分区相关联的那些节点提供严格隔离。
14.如权利要求12或13所述的系统,其中所述按节点的次序来路由多个端节点为与用严格虚拟通道参数标记的分区相关联的那些节点提供在虚拟通道上的隔离。
15.一种非暂态机器可读存储介质,所述非暂态机器可读存储介质上存储有指令,所述指令用于在多租户集群环境中支持网络隔离,所述指令当被执行时,使系统执行步骤,所述步骤包括:
在所述多租户集群环境内支持一个或多个租户;
将所述一个或多个租户中的每一个租户与多个分区中的分区相关联;
将所述多个分区中的每一个分区与多个节点中的一个或多个节点相关联,其中所述多个节点中的每一个节点与多个交换机中的叶子交换机相关联,所述多个交换机包括多个叶子交换机和处于另一级别的至少一个交换机;
用多个策略参数中的策略参数来标记所述多个分区中的每一个分区;
向所述多个节点中的每一个节点指派分区次序,其中所述分区次序至少基于在与每个节点相关联的分区上标记的策略参数;以及
至少基于所述多个分区中的分区的标记来生成用于在所述多租户集群环境中使用的一个或多个线性转发表。
16.如权利要求15所述的非暂态机器可读存储介质,所述步骤还包括:
用全局策略参数来标记所述多个分区中的每一个分区。
17.如权利要求15或16所述的非暂态机器可读存储介质,其中所述多个策略参数包括:
严格参数,
严格虚拟通道参数,以及
尽力而为参数。
18.如权利要求17所述的非暂态机器可读存储介质,其中与用严格参数标记的分区相关联的节点的分区次序在与用严格虚拟通道参数标记的分区相关联的节点的分区次序之前,并且其中与用严格虚拟通道参数标记的分区相关联的节点的分区次序在与用尽力而为参数标记的分区相关联的节点的分区次序之前。
19.如权利要求18所述的非暂态机器可读存储介质,其中生成一个或多个线性转发表包括:
对于所述多个叶子交换机中的每一个叶子交换机,根据每个节点的分区次序对所述多个节点进行排序;以及
按节点的次序来路由多个端节点,所述路由包括:
为每个节点选择至少一个下行端口和至少一个上行端口。
20.如权利要求19所述的非暂态机器可读存储介质,其中所述按节点的次序来路由多个端节点为与用严格参数标记的分区相关联的那些节点提供严格隔离。
21.如权利要求19或20所述的非暂态机器可读存储介质,其中所述按节点的次序来路由多个端节点为与用严格虚拟通道参数标记的分区相关联的那些节点提供在虚拟通道上的隔离。
22.一种用于在多租户集群环境中支持网络隔离的设备,所述设备包括用于执行如权利要求1至7中任一项所述的方法的装置。
CN201680024094.3A 2015-10-13 2016-09-09 用于多租户集群环境中的高效网络隔离和负载平衡的系统和方法 Active CN107533486B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011123283.0A CN112260970B (zh) 2015-10-13 2016-09-09 多租户集群环境中高效网络隔离和负载平衡的系统和方法

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201562240986P 2015-10-13 2015-10-13
US62/240,986 2015-10-13
US201562242211P 2015-10-15 2015-10-15
US62/242,211 2015-10-15
US15/182,383 US10187310B2 (en) 2015-10-13 2016-06-14 System and method for efficient network isolation and load balancing in a multi-tenant cluster environment
US15/182,397 2016-06-14
US15/182,383 2016-06-14
US15/182,397 US10033647B2 (en) 2015-10-13 2016-06-14 System and method for efficient network isolation and load balancing in a multi-tenant cluster environment
PCT/US2016/050992 WO2017065905A1 (en) 2015-10-13 2016-09-09 System and method for efficient network isolation and load balancing in a multi-tenant cluster environment

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202011123283.0A Division CN112260970B (zh) 2015-10-13 2016-09-09 多租户集群环境中高效网络隔离和负载平衡的系统和方法

Publications (2)

Publication Number Publication Date
CN107533486A CN107533486A (zh) 2018-01-02
CN107533486B true CN107533486B (zh) 2020-11-10

Family

ID=58499143

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201680024094.3A Active CN107533486B (zh) 2015-10-13 2016-09-09 用于多租户集群环境中的高效网络隔离和负载平衡的系统和方法
CN202011123283.0A Active CN112260970B (zh) 2015-10-13 2016-09-09 多租户集群环境中高效网络隔离和负载平衡的系统和方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202011123283.0A Active CN112260970B (zh) 2015-10-13 2016-09-09 多租户集群环境中高效网络隔离和负载平衡的系统和方法

Country Status (5)

Country Link
US (8) US10033647B2 (zh)
EP (1) EP3362894B1 (zh)
JP (1) JP6752815B2 (zh)
CN (2) CN107533486B (zh)
WO (1) WO2017065905A1 (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8776207B2 (en) * 2011-02-16 2014-07-08 Fortinet, Inc. Load balancing in a network with session information
US10198288B2 (en) 2014-10-30 2019-02-05 Oracle International Corporation System and method for providing a dynamic cloud with subnet administration (SA) query caching
KR102340683B1 (ko) * 2014-10-31 2021-12-20 오라클 인터내셔날 코포레이션 멀티-테넌트 클러스터 환경에서 파티션-인지 라우팅을 지원하기 위한 시스템 및 방법
US10033647B2 (en) 2015-10-13 2018-07-24 Oracle International Corporation System and method for efficient network isolation and load balancing in a multi-tenant cluster environment
US11271870B2 (en) * 2016-01-27 2022-03-08 Oracle International Corporation System and method for supporting scalable bit map based P_Key table in a high performance computing environment
US10200308B2 (en) 2016-01-27 2019-02-05 Oracle International Corporation System and method for supporting a scalable representation of link stability and availability in a high performance computing environment
US10581711B2 (en) 2016-01-28 2020-03-03 Oracle International Corporation System and method for policing network traffic flows using a ternary content addressable memory in a high performance computing environment
US10536334B2 (en) 2016-01-28 2020-01-14 Oracle International Corporation System and method for supporting subnet number aliasing in a high performance computing environment
EP3258382B1 (en) * 2016-06-14 2021-08-11 Arm Ltd A storage controller
WO2018039061A1 (en) * 2016-08-23 2018-03-01 Oracle International Corporation System and method for supporting fast hybrid reconfiguration in a high performance computing environment
US10652102B2 (en) * 2017-06-19 2020-05-12 Cisco Technology, Inc. Network node memory utilization analysis
US10320654B2 (en) * 2017-07-12 2019-06-11 International Business Machines Corporation Method for remote node discovery and communication channel validation and connection
US10574755B2 (en) * 2018-03-28 2020-02-25 Wipro Limited Method and high performance computing (HPC) switch for optimizing distribution of data packets
CN109547470B (zh) * 2018-12-20 2020-10-27 北京交通大学 保护网络空间安全的电子隔离墙方法、装置及系统
CN110336759B (zh) * 2018-12-26 2022-04-26 锐捷网络股份有限公司 基于rdma的协议报文转发方法及装置
CN111526113B (zh) 2019-02-02 2023-05-30 中兴通讯股份有限公司 协议处理方法及装置、存储介质
CN110381093B (zh) * 2019-09-03 2022-07-19 北京旷视科技有限公司 数据协议转换的方法、装置、数据传输的系统及电子设备
US11700206B2 (en) * 2019-11-19 2023-07-11 Oracle International Corporation System and method for supporting RDMA bandwidth restrictions in a private fabric in a high performance computing environment
CN111181866B (zh) * 2019-12-21 2023-06-30 武汉迈威通信股份有限公司 一种基于端口隔离的端口汇聚方法及系统
CN113190167A (zh) * 2020-01-14 2021-07-30 伊姆西Ip控股有限责任公司 用于管理计算设备的方法、电子设备和计算机存储介质
CN112866367A (zh) * 2021-01-12 2021-05-28 优刻得科技股份有限公司 基于可编程交换机的路由系统
US11483234B2 (en) * 2021-03-03 2022-10-25 Cisco Technology, Inc. Predictive routing-based policy adjustments in software-defined networks
US20230024349A1 (en) * 2021-07-21 2023-01-26 Infinera Corp Data center interconnect

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1487423A (zh) * 2002-09-30 2004-04-07 �Ҵ���˾ 用于计算机网络上复制的存储设备的安全系统和方法
CN101971147A (zh) * 2007-09-30 2011-02-09 甲骨文美国公司 基于操作系统虚拟化的虚拟集群
CN103647668A (zh) * 2013-12-16 2014-03-19 上海证券交易所 一种高可用集群内主机群体决策系统及切换方法
CN104394130A (zh) * 2014-11-12 2015-03-04 国云科技股份有限公司 一种多租户虚拟网络隔离方法

Family Cites Families (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4430993C1 (de) 1994-08-31 1995-10-26 Siemens Ag Verfahren zur adaptiven Wegesuche in einem Kommunikationsnetz
US7286544B2 (en) * 2002-07-25 2007-10-23 Brocade Communications Systems, Inc. Virtualized multiport switch
US7360030B1 (en) * 2004-06-01 2008-04-15 Sanbolic, Inc. Methods and apparatus facilitating volume management
US7979771B2 (en) 2006-04-04 2011-07-12 Permabit Technology Corporation Erasure coding technique for scalable and fault tolerant storage system
US8089904B2 (en) * 2006-08-01 2012-01-03 Opnet Technologies, Inc. Link inference in large networks based on incomplete data
US8670352B2 (en) * 2006-08-01 2014-03-11 Riverbed Technology, Inc. Link inference in large networks based on incomplete data
US8156107B2 (en) * 2007-02-02 2012-04-10 Teradata Us, Inc. System and method for join-partitioning for local computability of query over shared-nothing clusters
US9071608B2 (en) * 2008-04-28 2015-06-30 International Business Machines Corporation Method and apparatus for load balancing in network based telephony application
US20130129068A1 (en) * 2009-03-02 2013-05-23 Twilio, Inc. Method and system for a multitenancy telephone network
WO2011120620A1 (en) 2010-03-30 2011-10-06 Merck Patent Gmbh Method for producing multicoloured coatings
US8385356B2 (en) * 2010-03-31 2013-02-26 International Business Machines Corporation Data frame forwarding using a multitiered distributed virtual bridge hierarchy
EP2564561B1 (en) * 2010-04-30 2019-07-31 Hewlett-Packard Enterprise Development LP Method for routing data packets in a fat tree network
JP5476261B2 (ja) 2010-09-14 2014-04-23 株式会社日立製作所 マルチテナント型情報処理システム、管理サーバ及び構成管理方法
US8762323B2 (en) * 2011-02-10 2014-06-24 Nec Laboratories America, Inc. Replica based load balancing in multitenant databases
US8793684B2 (en) * 2011-03-16 2014-07-29 International Business Machines Corporation Optimized deployment and replication of virtual machines
JP5965478B2 (ja) 2011-06-03 2016-08-03 オラクル・インターナショナル・コーポレイション ネットワークにおけるコンポーネントを認証するためのシステムおよび方法
US8572091B1 (en) * 2011-06-27 2013-10-29 Amazon Technologies, Inc. System and method for partitioning and indexing table data using a composite primary key
US8601000B1 (en) * 2011-06-27 2013-12-03 Amazon Technologies, Inc. System and method for conditionally updating an item with attribute granularity
US8595267B2 (en) * 2011-06-27 2013-11-26 Amazon Technologies, Inc. System and method for implementing a scalable data storage service
US9052831B1 (en) * 2011-06-30 2015-06-09 Amazon Technologies, Inc. System and method for performing live partitioning in a data store
US8732517B1 (en) * 2011-06-30 2014-05-20 Amazon Technologies, Inc. System and method for performing replica copying using a physical copy mechanism
US8671407B2 (en) * 2011-07-06 2014-03-11 Microsoft Corporation Offering network performance guarantees in multi-tenant datacenters
WO2013020126A1 (en) * 2011-08-04 2013-02-07 Midokura Pte. Ltd. System and method for implementing and managing virtual networks
US10200493B2 (en) 2011-10-17 2019-02-05 Microsoft Technology Licensing, Llc High-density multi-tenant distributed cache as a service
US9014201B2 (en) 2011-11-09 2015-04-21 Oracle International Corporation System and method for providing deadlock free routing between switches in a fat-tree topology
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
US9325619B2 (en) * 2011-11-15 2016-04-26 Oracle International Corporation System and method for using virtual lanes to alleviate congestion in a fat-tree topology
WO2013071330A1 (en) * 2011-11-16 2013-05-23 Cheok Francis Smart system and method for dynamic strategies in statistical arbitrage trading
US8751650B2 (en) * 2012-05-10 2014-06-10 Cisco Technology, Inc. Method and apparatus for supporting access control lists in a multi-tenant environment
US9584605B2 (en) * 2012-06-04 2017-02-28 Oracle International Corporation System and method for preventing denial of service (DOS) attack on subnet administrator (SA) access in an engineered system for middleware and application execution
US8805990B2 (en) * 2012-07-12 2014-08-12 Microsoft Corporation Load balancing for single-address tenants
CN103227843B (zh) * 2012-08-31 2016-05-04 杭州华三通信技术有限公司 一种物理链路地址管理方法及装置
US10460270B2 (en) * 2012-09-12 2019-10-29 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing cross-organizational processing of business intelligence metrics
US9356886B2 (en) * 2012-10-05 2016-05-31 Cisco Technology, Inc. Techniques for scalable and foolproof virtual machine move handling with virtual port channels
US8862772B2 (en) * 2012-10-09 2014-10-14 Cisco Technology, Inc. System and method for implementing a multilevel data center fabric in a network environment
US9276866B2 (en) * 2012-11-30 2016-03-01 Microsoft Technology Licensing, Llc Tuning congestion notification for data center networks
TW201438471A (zh) * 2013-03-20 2014-10-01 Hon Hai Prec Ind Co Ltd 資料傳輸方法
US9495395B2 (en) 2013-04-11 2016-11-15 Oracle International Corporation Predictive diagnosis of SLA violations in cloud services by seasonal trending and forecasting with thread intensity analytics
CN103269282A (zh) 2013-04-25 2013-08-28 杭州华三通信技术有限公司 网络配置自动部署方法和装置
US9325636B2 (en) * 2013-06-14 2016-04-26 Cisco Technology, Inc. Scaling interconnected IP fabric data centers
US9055095B2 (en) * 2013-06-14 2015-06-09 Microsoft Technology Licensing, Llc DOS detection and mitigation in a load balancer
US9392079B2 (en) 2013-07-19 2016-07-12 International Business Machines Corporation Directory service discovery and/or learning
US9871749B2 (en) * 2013-08-09 2018-01-16 Hewlett Packard Enterprise Development Lp Switch assembly
US9973425B2 (en) * 2013-08-27 2018-05-15 Oracle International Corporation System and method for providing a data service in an engineered system for middleware and application execution
US9203765B2 (en) * 2013-08-30 2015-12-01 Cisco Technology, Inc. Flow based network service insertion using a service chain identifier
US9264351B2 (en) 2013-09-07 2016-02-16 Cisco Technology, Inc. System and method for utilization of a segmentation identification to support transmission of data to a destination node
US9621511B2 (en) * 2013-09-10 2017-04-11 Arista Networks, Inc. Method and system for auto-provisioning network devices in a data center using network device location in network topology
US9405568B2 (en) * 2013-09-13 2016-08-02 Microsoft Technology Licensing, Llc Multi-tenant network stack
US9917797B2 (en) * 2013-10-01 2018-03-13 Arista Networks, Inc. Method and system for managing switch workloads in a cluster
US9397946B1 (en) * 2013-11-05 2016-07-19 Cisco Technology, Inc. Forwarding to clusters of service nodes
US9686180B2 (en) * 2013-11-05 2017-06-20 Cisco Technology, Inc. Managing routing information for tunnel endpoints in overlay networks
WO2015068118A1 (en) * 2013-11-06 2015-05-14 Telefonaktiebolaget L M Ericsson (Publ) Enabling load balancing in a network virtualization overlay architecture
US9225597B2 (en) * 2014-03-14 2015-12-29 Nicira, Inc. Managed gateways peering with external router to attract ingress packets
CN104954265B (zh) 2014-03-25 2018-06-15 华为技术有限公司 发送组播报文的方法及交换机
JP6387777B2 (ja) * 2014-06-13 2018-09-12 富士通株式会社 評価プログラム、評価方法、および評価装置
CN105207798B (zh) * 2014-06-26 2020-03-13 中兴通讯股份有限公司 软件定义网络中的业务编排方法及装置
US9401858B2 (en) * 2014-06-30 2016-07-26 Cisco Technology, Inc. Loop avoidance during network convergence in switched networks
US10516568B2 (en) 2014-09-30 2019-12-24 Nicira, Inc. Controller driven reconfiguration of a multi-layered application or service model
US9774537B2 (en) * 2014-09-30 2017-09-26 Nicira, Inc. Dynamically adjusting load balancing
KR102340683B1 (ko) * 2014-10-31 2021-12-20 오라클 인터내셔날 코포레이션 멀티-테넌트 클러스터 환경에서 파티션-인지 라우팅을 지원하기 위한 시스템 및 방법
US9628334B2 (en) * 2014-12-19 2017-04-18 Cisco Technology, Inc. VLAN tagging in a virtual environment
US10222986B2 (en) * 2015-05-15 2019-03-05 Cisco Technology, Inc. Tenant-level sharding of disks with tenant-specific storage modules to enable policies per tenant in a distributed storage system
US9634893B2 (en) * 2015-07-21 2017-04-25 Cisco Technology, Inc. Auto-provisioning edge devices in a communication network using control plane communications
US9871731B2 (en) * 2015-09-30 2018-01-16 Microsoft Technology Licensing, Llc Data plane manipulation in a load balancer
US10033647B2 (en) * 2015-10-13 2018-07-24 Oracle International Corporation System and method for efficient network isolation and load balancing in a multi-tenant cluster environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1487423A (zh) * 2002-09-30 2004-04-07 �Ҵ���˾ 用于计算机网络上复制的存储设备的安全系统和方法
CN101971147A (zh) * 2007-09-30 2011-02-09 甲骨文美国公司 基于操作系统虚拟化的虚拟集群
CN103647668A (zh) * 2013-12-16 2014-03-19 上海证券交易所 一种高可用集群内主机群体决策系统及切换方法
CN104394130A (zh) * 2014-11-12 2015-03-04 国云科技股份有限公司 一种多租户虚拟网络隔离方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Weighted and constrained possibilistic C-means clustering for online fault detection and isolation";Soheil Bahrampour et al.;《Applied Intelligence》;20100313;全文 *
"基于SDN的数据中心网络资源调度机制";汪正康 等;《计算机系统应用》;20150831;第24卷(第8期);全文 *

Also Published As

Publication number Publication date
JP6752815B2 (ja) 2020-09-09
CN107533486A (zh) 2018-01-02
US20230308393A1 (en) 2023-09-28
US10033647B2 (en) 2018-07-24
US11356370B2 (en) 2022-06-07
WO2017065905A1 (en) 2017-04-20
EP3362894B1 (en) 2020-12-09
US20200259749A1 (en) 2020-08-13
US20170104817A1 (en) 2017-04-13
US11677667B2 (en) 2023-06-13
US20180343202A1 (en) 2018-11-29
EP3362894A1 (en) 2018-08-22
US20220109631A1 (en) 2022-04-07
CN112260970B (zh) 2022-09-06
US20170104682A1 (en) 2017-04-13
US11102128B2 (en) 2021-08-24
JP2018537004A (ja) 2018-12-13
US10187310B2 (en) 2019-01-22
US10673762B2 (en) 2020-06-02
US20200195559A1 (en) 2020-06-18
CN112260970A (zh) 2021-01-22
US20190149473A1 (en) 2019-05-16
US10616117B2 (en) 2020-04-07

Similar Documents

Publication Publication Date Title
CN107533486B (zh) 用于多租户集群环境中的高效网络隔离和负载平衡的系统和方法
CN107113233B (zh) 用于支持多租户集群环境中的分区感知路由的系统和方法
US11716293B2 (en) System and method for supporting efficient load-balancing in a high performance computing (HPC) 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