CN107111513A - 为高性能云计算环境提供InfiniBand SR‑IOV vSWITCH体系架构的系统和方法 - Google Patents

为高性能云计算环境提供InfiniBand SR‑IOV vSWITCH体系架构的系统和方法 Download PDF

Info

Publication number
CN107111513A
CN107111513A CN201680003773.2A CN201680003773A CN107111513A CN 107111513 A CN107111513 A CN 107111513A CN 201680003773 A CN201680003773 A CN 201680003773A CN 107111513 A CN107111513 A CN 107111513A
Authority
CN
China
Prior art keywords
management program
channel adapter
lid
host channel
virtual machine
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
Application number
CN201680003773.2A
Other languages
English (en)
Other versions
CN107111513B (zh
Inventor
E·塔索拉斯
B·D·约翰森
E·G·格兰
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
Oracle America Inc
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
Publication of CN107111513A publication Critical patent/CN107111513A/zh
Application granted granted Critical
Publication of CN107111513B publication Critical patent/CN107111513B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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]
    • 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
    • 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
    • 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
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Arrangements For Transmission Of Measured Signals (AREA)
  • Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
  • Information Transfer Systems (AREA)

Abstract

提供了用于实现支持透明虚拟化和实时迁移的虚拟交换机(vSwitch)体系架构的系统和方法。在实施例中,vSwitch具有预填充的本地标识符(LID)。另一实施例提供具有动态LID分配的vSwitch。另一实施例提供具有预填充LID和动态LID分配的vSwitch。此外,本发明的实施例提供使得能够在网络环境中进行VM的实时迁移的可扩展动态网络重新配置方法。

Description

为高性能云计算环境提供InfiniBand SR-IOV vSWITCH体系 架构的系统和方法
版权声明
本专利文档公开内容的一部分包含受版权保护的素材。版权拥有者不反对任何人对专利文档或专利公开内容按照在专利商标局的专利文件或记录中出现得那样进行的传真复制,但是除此之外在任何情况下都保留所有版权。
技术领域
本发明一般而言涉及计算机系统,并且具体而言涉及使用SR- IOV vSwitch体系架构来支持计算机系统虚拟化和实时迁移。
背景技术
随着更大的云计算体系架构的引入,与传统网络和存储相关联的性能和管理瓶颈成为重要的问题。人们越来越感兴趣使用InfiniBand (IB)技术作为云计算结构的基础。这是本发明的实施例旨在解决的一般领域。
发明内容
本文描述了用于支持子网中的虚拟机迁移的系统和方法。示例性方法可以在包括一个或多个微处理器的一个或多个计算机处提供:一个或多个交换机,该一个或多个交换机至少包括叶交换机,其中一个或多个交换机中的每一个包括多个端口;多个主机通道适配器,其中多个主机通道适配器经由一个或多个交换机互连;多个管理程序,其中多个管理程序中的每一个与多个主机通道适配器中的一个相关联;以及多个虚拟机。该方法还可以为多个主机通道适配器布置具有预填充的本地标识符(LID)体系架构的虚拟交换机或具有动态LID分配体系架构的虚拟交换机中的一个或多个。该方法可以附加地将多个虚拟机中的、在多个管理程序中的第一管理程序上运行的第一虚拟机实时迁移到多个管理程序中的第二管理程序;并且其中第一管理程序与多个主机通道适配器中的第一主机通道适配器相关联,并且第二管理程序与多个主机通道适配器中的第二主机通道适配器相关联。
附图说明
图1示出了根据实施例的InfiniBand环境的图示。
图2示出了根据实施例的网络环境中的树状拓扑的图示。
图3示出了根据实施例的示例性共享端口体系架构。
图4示出了根据实施例的示例性vSwitch体系架构。
图5示出了根据实施例的具有预填充LID的示例性vSwitch体系架构。
图6示出了根据实施例的具有动态LID分配的示例性vSwitch 体系架构。
图7示出了根据实施例的具有动态LID分配和预填充LID的 vSwitch的示例性vSwitch体系架构。
图8示出了根据实施例的在虚拟机迁移之前具有预填充LID的示例性vSwitch体系架构。
图9示出了根据实施例的在虚拟机迁移之后具有预填充LID的示例性vSwitch体系架构。
图10示出了根据实施例的具有潜在虚拟机迁移路径的具有预填充LID的示例性vSwitch体系架构。
图11是根据实施例的用于支持子网中的虚拟机迁移的方法的流程图。
具体实施方式
通过示例而非限制的方式在附图的各图中图示本发明,附图中相同的标号指示类似的元件。应当注意的是,在本公开中对“一个”或“一些”实施例的引用不一定是相同的实施例,并且这种引用意味着至少一个。虽然讨论了特定的实现,但是要理解的是,特定实现仅仅是为了说明性目的而提供。相关领域的技术人员将认识到,在不背离本发明的范围和精神的情况下,可以使用其它部件和配置。
贯穿附图和具体实施方式可以使用共同的标号来指示相同的元件;因此,如果元件在其它地方进行了描述,那么在图中使用的标号可以或可以不在特定于该图的具体描述中引用。
本文描述的是可以支持网络中的虚拟机(VM)迁移的系统和方法。
本发明的以下描述使用InfinibandTM(IB)网络作为高性能网络的示例。对于本领域技术人员将显而易见的是,可以使用其它类型的高性能网络而没有限制。以下描述还使用胖树拓扑作为结构拓扑的示例。对于本领域技术人员将显而易见的是,可以使用其它类型的结构拓扑而没有限制。
根据本发明的实施例,虚拟化可以有益于云计算中的高效资源利用和弹性资源分配。实时迁移使得有可能通过以应用透明的方式在物理服务器之间移动虚拟机(VM)来优化资源使用。因此,虚拟化可以使得能够通过实时迁移进行合并、资源的按需供应以及弹性。
InfiniBandTM
InfiniBandTM(IB)是由InfiniBandTM贸易协会开发的开放标准无损网络技术。该技术是基于串行点对点全双工互连,其提供高吞吐量和低延迟通信,特别适用于高性能计算(high-performance computing,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可以重新配置网络。重新配置步骤可以包括在网络初始化期间执行的步骤。此外,重新配置可以具有限于其中发生网络变化的子网的局部范围。此外,具有路由器的大型结构的分段可以限制重新配置的范围。
根据实施例,IB网络可以支持分区作为安全机制,以提供共享网络结构的系统的逻辑组的隔离。结构中的节点上的每个HCA端口可以是一个或多个分区的成员。分区成员由集中式分区管理器管理,集中式分区管理器可以是SM的一部分。SM可以将每个端口上的分区成员身份信息配置为16位分区密钥(P密钥)表。SM还可以用包含与LID相关联的P密钥信息的分区实施表来配置交换机和路由器。此外,在一般情况下,交换机端口的分区成员身份可以表示与在出口(朝链路)方向经由端口路由的LID间接相关联的所有成员身份的联合。
根据实施例,对于节点之间的通信,除管理队列对(QP0和 QP1)以外,队列对(QP)和端到端上下文(EEC)可以被分配给特定分区。然后,P密钥信息可以被添加到发送的每个IB传输分组。当分组到达HCA端口或交换机时,可以针对由SM配置的表验证其 P密钥值。如果找到无效的P密钥值,那么立即丢弃分组。以这种方式,只有在共享分区的端口之间才允许通信。
图1中示出了示例InfiniBand结构,其示出了根据实施例的InfiniBand环境100的图示。在图1所示的示例中,节点A-E、101- 105使用InfiniBand结构120经由相应的主机通道适配器111-115通信。根据实施例,各种节点(例如,节点A-E、101-105)可以由各种物理设备来表示。根据实施例,各种节点(例如,节点A-E、101- 105)可以由诸如虚拟机的各种虚拟设备来表示。
InfiniBand中的虚拟机
在过去十年中,虚拟化高性能计算(HPC)环境的前景已得到相对大提高,因为CPU开销已通过硬件虚拟化支持被实际上消除;存储器开销已通过虚拟化存储器管理单元被显著降低;存储装置开销已通过使用快速SAN存储装置或分布式联网文件系统被减少;并且网络I/O开销已通过使用比如单根输入/输出虚拟化(SR-IOV)的设备直通技术被减少。现在,云有可能使用高性能互连解决方案来适应虚拟HPC(vHPC)集群,并提供必要的性能。
但是,当与诸如InfiniBand(IB)的无损网络耦合时,由于在这些解决方案中使用的复杂寻址和路由方案,某些云功能(诸如虚拟机 (VM)的实时迁移)仍然是个问题。IB是提供高带宽和低延迟的互连网络技术,因此,非常适合HPC和其它通信密集型工作负载。
用于将IB设备连接到VM的传统方法是通过利用具有直接分配的SR-IOV。但是,为了实现分配有IB主机通道适配器(HCA)的 VM的实时迁移,使用SR-IOV已被证明是具有挑战性的。每个IB 连接的节点具有三个不同的地址:LID、GUID和GID。当发生实时迁移时,这些地址中的一个或多个改变。与迁移中的VM(VM-in- migration)通信的其它节点会丢失连接性。当发生这种情况时,通过向IB子网管理器(SM)发送子网管理(SA)路径记录查询来定位要重新连接到的虚拟机的新地址,可以尝试更新丢失的连接。
IB使用三种不同类型的地址。第一种类型的地址是16位本地标识符(LID)。SM向每个HCA端口和每个交换机分配至少一个唯一的LID。LID用于在子网内路由流量。由于LID为16位长,因此可以做出65536个唯一地址组合,其中只有49151个(0x0001- 0xBFFF)可以用作单播地址。因此,可用单播地址的数量限定了IB 子网的最大大小。第二种类型的地址是制造商分配给每个设备(例如 HCA和交换机)和每个HCA端口的64位全局唯一标识符(GUID)。SM可以向HCA端口分配附加的子网唯一GUID,其在使用SR-IOV时是有用的。第三种类型的地址是128位全局标识符 (GID)。GID是有效的IPv6单播地址,并且向每个HCA端口分配至少一个。GID通过组合由结构管理员分配的全局唯一64位前缀和每个HCA端口的GUID地址形成。
胖树(FTree)拓扑和路由
根据实施例,基于IB的HPC系统中有一些采用胖树拓扑来利用胖树提供的有用属性。由于每个源-目的地对之间有多条路径可用,因此这些属性包括完全的二分带宽和固有的容错。胖树背后的最初想法是,当树朝着拓扑的根移动时,在节点之间采用具有更多可用带宽的较胖的链路。较胖的链路可以帮助避免上层交换机中的拥塞并维持二分带宽。
图2示出了根据实施例的网络环境中的树状拓扑的图示。如图2 所示,一个或多个端节点201-204可以在网络结构200中连接。网络结构200可以基于胖树拓扑,其包括多个叶交换机211-214以及多个脊交换机或根交换机231-234。此外,网络结构200可以包括一个或多个中间交换机,诸如交换机221-224。
还如图2所示,端节点201-204中的每一个可以是多归属节点,即,通过多个端口连接到网络结构200的两个或更多个部分的单个节点。例如,节点201可以包括端口H1和H2,节点202可以包括端口H3和H4,节点203可以包括端口H5和H6,并且节点204可以包括端口H7和H8。
此外,每个交换机可以具有多个交换机端口。例如,根交换机 231可以具有交换机端口1-2,根交换机232可以具有交换机端口3-4,根交换机233可以具有交换机端口5-6,并且根交换机234可以具有交换机端口7-8。
根据实施例,胖树路由机制是用于基于IB的胖树拓扑的最流行的路由算法之一。胖树路由机制也在OFED(开放结构企业分发–用于构建和部署基于IB的应用的标准软件栈)子网管理器OpenSM 中实现。
胖树路由机制旨在生成在网络结构中跨链路均匀传播最短路径路由的LFT。该机制按索引次序遍历结构并将端节点的目标LID(以及因此对应的路由)分配给每个交换机端口。对于连接到相同叶交换机的端节点,索引次序可以取决于端节点连接到的交换机端口(即,端口编号顺序)。对于每个端口,该机制可以维护端口使用计数器,并且可以在每次添加新路由时使用这个端口使用计数器来选择最少使用的端口。
如以上所提到的,在分区的子网中,不允许不是公共分区的成员的节点通信。在实践中,这意味着由胖树路由算法分配的一些路由不用于用户流量。当胖树路由机制以与它针对其它功能路径所做的相同的方式为那些路由生成LFT时,会出现该问题。由于节点按索引的次序进行路由,因此这种行为会导致链路上降级的平衡。由于路由是在不知道分区的情况下完成的,因此胖树路由的子网通常在分区间提供较差的隔离。
输入/输出(I/O)虚拟化
根据实施例,I/O虚拟化(IOV)可以通过允许虚拟机(VM) 访问底层物理资源来提供I/O的可用性。存储流量和服务器间通信的组合强加了可能淹没单个服务器的I/O资源的增加的负载,从而导致积压以及在等待数据时的空闲处理器。随着I/O请求数量的增加,IOV可以提供可用性;并且可以提高(虚拟化)I/O资源的性能、可扩展性和灵活性,以匹配现代CPU虚拟化中看到的性能水平。
根据实施例,IOV是期望的,因为它可以允许I/O资源的共享并且提供对来自VM的资源的受保护的访问。IOV将暴露于VM的逻辑设备与其物理实现分离。当前,可以有不同类型的IOV技术,诸如仿真、半虚拟化、直接分配(DA)和单根I/O虚拟化(SR- IOV)。
根据实施例,一种类型的IOV技术是软件仿真。软件仿真可以允许分离的前端/后端软件体系架构。前端可以是置于VM中、与管理程序(hypervisor)实现的以提供I/O访问的后端通信的设备驱动程序。物理设备共享比高,并且VM的实时迁移可能只需几毫秒的网络停机时间。但是,软件仿真引入了附加的、不期望的计算开销。
根据实施例,另一种类型的IOV技术是直接设备分配。直接设备分配涉及将I/O设备耦合到VM,其中在VM之间没有设备共享。直接分配或设备直通以最小的开销提供接近原生的性能。物理设备绕过管理程序,并直接附连到VM。但是,这种直接设备分配的缺点是有限的可扩展性,因为在虚拟机之间没有共享——一个物理网卡与一个VM耦合。
根据实施例,单根IOV(SR-IOV)可以允许物理设备通过硬件虚拟化显示为相同设备的多个独立的轻量级实例。这些实例可以被分配给VM作为直通设备,并作为虚拟功能(Virtual Function,VF) 被访问。管理程序通过唯一的(每设备)、全特征物理功能(Physical Function,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模型,例如,共享端口模型和虚拟交换机模型。
图3示出了根据实施例的示例性共享端口体系架构。如图所示,主机300(例如,主机通道适配器)可以与管理程序310交互,管理程序310可以将各种虚拟功能330、340、350分配给多个虚拟机。同样,物理功能可以由管理程序310处理。
根据实施例,当使用诸如图3所示的共享端口体系架构时,主机 (例如,HCA)在网络中呈现为具有单个共享LID和在物理功能 320和虚拟功能330、340、350之间的共享队列对(QP)空间的单个端口。但是,每个功能(即,物理功能和虚拟功能)可以具有其自己的GID。
如图3所示,根据实施例,可以将不同的GID分配给虚拟功能和物理功能,并且特殊队列对QP0和QP1(即,用于InfiniBand管理分组的专用队列对)由物理功能拥有。这些QP也被暴露给VF,但是VF不被允许使用QP0(从VF到QP0的所有SMP都被丢弃),并且QP1可以充当由PF拥有的实际QP1的代理。
根据实施例,共享端口体系架构可以允许不受(通过分配给虚拟功能附连到网络的)VM的数量限制的高度可扩展的数据中心,因为LID空间仅被网络中的物理机器和交换机消耗。
但是,共享端口体系架构的缺点是无法提供透明的实时迁移,从而阻碍了灵活的VM布置的潜力。由于每个LID与特定管理程序相关联,并且在驻留在管理程序上的所有VM之间共享,因此迁移的 VM(即,迁移到目的地管理程序的虚拟机)必须将其LID改变为目的地管理程序的LID。此外,由于受限的QP0访问,子网管理器不能在VM内部运行。
InfiniBand SR-IOV体系架构模型-虚拟交换机(vSwitch)
可以存在不同类型的SR-IOV模型,例如,共享端口模型和虚拟交换机模型。
图4示出了根据实施例的示例性vSwitch体系架构。如图所示,主机400(例如,主机通道适配器)可以与管理程序410交互,管理程序410可以将各种虚拟功能430、440、450分配给多个虚拟机。同样,物理功能可以由管理程序410处理。虚拟交换机415也可以由管理程序401处理。
根据实施例,在vSwitch体系架构中,每个虚拟功能430、440、 450是完整的虚拟主机通道适配器(vHCA),这意味着分配给VF 的VM被分配完整的IB地址集合(例如,GID、GUID、LID)和硬件中的专用QP空间。对于网络的其余部分和SM,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体系架构模型-具有预填充LID的vSwitch
根据实施例,本公开提供了用于提供具有预填充LID的vSwitch 体系架构的系统和方法。
图5示出了根据实施例的具有预填充LID的示例性vSwitch体系架构。如图所示,多个交换机501-504可以在结构(诸如 InfiniBand结构)的成员之间提供网络交换环境500(例如,IB子网) 内的通信。该结构可以包括多个硬件设备,诸如主机通道适配器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分配给虚拟功能2515,并且将虚拟机3 552分配给虚拟功能3 516。管理程序531又可以将虚拟机4 553分配给虚拟功能1 534。管理程序可以通过每个主机通道适配器上的全特征物理功能513、523、533访问主机通道适配器。
根据实施例,交换机501-504中的每一个可以包括多个端口(未示出),其用于设置线性转发表以便引导网络交换环境500内的流量。
根据实施例,虚拟交换机512、522和532可以由其各自的管理程序511、521、531来处理。在这种vSwitch体系架构中,每个虚拟功能是完整的虚拟主机通道适配器(vHCA),这意味着分配给VF 的VM被分配完整的IB地址集合(例如,GID、GUID、LID)和硬件中的专用QP空间。对于网络的其余部分和SM(未示出),HCA 510、520和530看起来像经由虚拟交换机、具有连接到它们的附加节点的交换机。
根据实施例,本公开提供了用于提供具有预填充LID的vSwitch 体系架构的系统和方法。参考图5,LID被预填充到各种物理功能 513、523、533以及虚拟功能514-516、524-526、534-536(甚至那些当前未与活动虚拟机相关联的虚拟功能)。例如,物理功能513用LID 1预填充,而虚拟功能1 534用LID 10预填充。当网络被启动 (boot)时,LID在启用SR-IOV vSwitch的子网中被预填充。即使并非所有的VF都在网络中被VM占用,填充的VF也被分配LID,如图5所示。
根据实施例,非常类似于物理主机通道适配器可以具有多于一个端口(为了冗余,两个端口是常见的),虚拟HCA也可以用两个端口表示,并且经由一个、两个或更多个虚拟交换机连接到外部IB子网。
根据实施例,在具有预填充LID的vSwitch体系架构中,每个管理程序可以通过PF为自己消耗一个LID,并为每个附加的VF再多消耗一个LID。在IB子网中的所有管理程序中可用的所有VF的总和给出了允许在子网中运行的VM的最大数量。例如,在子网中每管理程序具有16个虚拟功能的IB子网中,那么每个管理程序在子网中消耗17个LID(16个虚拟功能中的每个虚拟功能一个LID加上用于物理功能的一个LID)。在这种IB子网中,对单个子网的理论管理程序限制由可用单播LID的数量决定,并且是:2891个(49151 个可用LID除以每管理程序17个LID),并且VM的总数(即,限制)是46256个(2891个管理程序乘以每管理程序16个VF)。 (现实中,这些数字实际上较小,因为IB子网中的每个交换机、路由器或专用SM节点也消耗LID)。注意的是,vSwitch不需要占用附加的LID,因为它可以与PF共享LID。
根据实施例,在具有预填充LID的vSwitch体系架构中,当网络被启动时,一次为所有LID计算通信路径。当需要启动新的VM 时,系统不必在子网中添加新的LID,否则该动作将导致网络完全重新配置,包括路径重新计算,这是最耗时的部分。作为替代,在管理程序之一中定位用于VM的可用端口(即,可用的虚拟功能),并且将虚拟机附连到该可用的虚拟功能。
根据实施例,具有预填充LID的vSwitch体系架构还允许计算和使用不同路径以到达由同一管理程序托管的不同VM的能力。本质上,这允许这样的子网和网络使用类似LID-掩码控制(LID- Mask-Control-like,LMC-like)特征向一个物理机器提供替代路径,而不受LMC要求LID必须是顺序的限制。当需要迁移VM并将其相关联的LID携带到目的地时,自由使用非顺序LID尤其有用。
根据实施例,以及以上示出的具有预填充LID的vSwitch体系架构的优点,可以考虑某些注意事项。例如,因为当网络被启动时, LID在启用SR-IOV vSwitch的子网中被预填充,因此初始路径计算(例如,在启动时)会比如果LID没有被预填充所花费的时间更长。
InfiniBand SR-IOV体系架构模型-具有动态LID分配的vSwitch
根据实施例,本公开提供了用于提供具有动态LID分配的 vSwitch体系架构的系统和方法。
图6示出了根据实施例的具有动态LID分配的示例性vSwitch 体系架构。如图所示,多个交换机501-504可以在结构(诸如 InfiniBand结构)的成员之间提供网络交换环境600(例如,IB子网) 内的通信。该结构可以包括多个硬件设备,诸如主机通道适配器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分配给虚拟功能2515,并且将虚拟机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体系架构的系统和方法。参考图6,LID被动态分配给各种物理功能513、523、533,其中物理功能513接收LID 1、物理功能 523接收LID 2并且物理功能533接收LID 3。与活动虚拟机相关联的那些虚拟功能也可以接收动态分配的LID。例如,由于虚拟机1 550是活动的并且与虚拟功能1514相关联,因此虚拟功能514可以被分配LID 5。同样,虚拟功能2 515、虚拟功能3 516和虚拟功能 1 534每个与活动虚拟功能相关联。由此,这些虚拟功能被分配LID,其中LID 7被分配给虚拟功能2 515、LID 11被分配给虚拟功能 3 516、并且虚拟功能9被分配给虚拟功能1535。不同于具有预填充 LID的vSwitch,那些当前未与活动虚拟机相关联的虚拟功能不接收 LID分配。
根据实施例,利用动态LID分配,可以显著减少初始的路径计算。当网络第一次启动并且不存在VM时,那么可以使用相对较少数量的LID用于初始的路径计算和LFT分发。
根据实施例,非常类似于物理主机通道适配器可以具有多于一个端口(为了冗余,两个端口是常见的),虚拟HCA也可以用两个端口表示,并且经由一个、两个或更多个虚拟交换机连接到外部IB子网。
根据实施例,当在利用具有动态LID分配的vSwitch的系统中创建新的VM时,找到空闲的VM时隙,以便决定在哪个管理程序上启动新添加的VM,并且也找到唯一的未使用的单播LID。但是,在网络中没有已知的路径和交换机的LFT用于处理新添加的LID。为了处理新添加的VM而计算一组新的路径在其中每分钟可以启动若干VM的动态环境中是不期望的。在大型IB子网中,计算一组新的路由会花费几分钟,并且这个过程将在每次启动新的VM时必须重复。
有利地,根据实施例,由于管理程序中的所有VF与PF共享相同的上行链路,因此不需要计算一组新的路由。只需要遍历网络中所有物理交换机的LFT、将转发端口从属于管理程序(其中创建VM) 的PF的LID条目复制到新添加的LID、并且发送单个SMP以更新特定交换机的对应LFT块。因此,该系统和方法避免了计算一组新的路由的需要。支持动态LID分配的vSwitch系统和方法的进一步细节在附录A中被描述,附录A通过引用被结合于此。
根据实施例,在具有动态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
图7示出了根据实施例的具有动态LID分配和预填充LID的 vSwitch的示例性vSwitch体系架构。如图所示,多个交换机501- 504可以在结构(诸如InfiniBand结构)的成员之间提供网络交换环境500(例如,IB子网)内的通信。该结构可以包括多个硬件设备,诸如主机通道适配器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。管理程序521可以将虚拟机3 552分配给虚拟功能3 526。管理程序531又可以将虚拟机4 553分配给虚拟功能2 535。管理程序可以通过每个主机通道适配器上的全特征物理功能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分配和预填充LID的混合vSwitch体系架构的系统和方法。参考图7,管理程序 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被附连,因此虚拟功能3526具有动态分配的LID 11)。最后,与管理程序3 531相关联的功能(物理功能和虚拟功能)可以使其LID被动态分配。这使得虚拟功能1和3、534和536可用于动态LID分配,而虚拟功能2 535具有动态分配的LID 9,因为虚拟机4 553被附连到那里。
根据诸如图7所示的实施例,其中(在任何给定管理程序内独立地或组合地)利用了具有预填充LID的vSwitch和具有动态LID分配的vSwitch,每主机通道适配器的预填充LID的数量可以由结构管理员定义,并且可以在0<=预填充的VF<=总VF(每主机通道适配器)的范围内,并且可用于动态LID分配的VF可以通过从VF的总数(每主机通道适配器)减去预填充VFS的数量找到。
根据实施例,非常类似于物理主机通道适配器可以具有多于一个端口(为了冗余,两个端口是常见的),虚拟HCA也可以用两个端口表示,并且经由一个、两个或更多个虚拟交换机连接到外部IB子网。
利用vSwitch进行动态重新配置
根据实施例,本公开提供了用于利用vSwitch进行动态网络重新配置的系统和方法。在动态云环境中,可以处理实时迁移并且实时迁移可以是可扩展的。当迁移VM并且必须将其地址携带到目的地时,需要进行网络重新配置。虚拟或别名GUID(vGUID)以及因此GID的迁移不会造成很大的负担,因为它们是不影响底层IB路由(例如,线性转发表和路由)的高层地址。为了迁移vGUID,必须将SMP发送到目的地管理程序,以便向当完成迁移时将在VM上分配的VF设置与传入VM相关联的vGUID。但是,LID的迁移并不是那么简单,因为必须重新计算路由,并且需要重新配置物理交换机的LFT。路由重新计算和分发需要相当长的时间,其在大型子网上是分钟的数量级,从而对可扩展性带来挑战。
根据实施例,vSwitch具有通过vSwitch访问的所有VF与PF共享相同上行链路的属性。拓扑不可知动态重新配置机制可以利用该属性使重新配置在动态迁移环境中可行。可以通过消除路径计算和减少路径分发来最小化LID重新配置时间。对于以上讨论的两种vSwitch 体系架构(LID的预填充和动态LID分配),该方法略有不同,但是基础是相同的。
根据实施例,动态重新配置方法包括两个通用步骤:(a)更新参与管理程序中的LID:一个子网管理分组(SMP)被发送到参与实时迁移的每个管理程序,指示它们向对应的VF设置/取消设置正确的LID;以及(b)更新物理交换机上的线性转发表(LFT):在一个或多个交换机上发送一个或最多两个SMP,从而强制它们更新其对应的LFT条目以反映迁移的虚拟机的新位置。这在下面迁移虚拟机和重新配置网络的过程中更具体地示出:
1:procedure UPDATELFTBLOCK(LFTBlock,Switch)
2://如果需要更新LFT块,那么在交换机上发送SMP以
3://更新LFT块。当交换LID时,每交换机可能需要更新
4://所有LFT块中的1或2个LFT块。当复制
5://LID时,每交换机可能只需要更新所有LFT块中的1个
6://LFT块
7:if LFTBlock in Switch needs to be updated then
8:Send SMP on Switch to update LFTBlock
9:end if
10:end procedure
11:procedureUPDATELFTBLOCKSONALLSWITCHES
12:/*遍历所有交换机上的所有LFT块
13:*并且如果需要,那么更新LFT块。*/
14:for LFTBlock in All_LFTBlocks do
15:for sw in All_switches do
16:UPDATELFTBLOCK(LFTBlock,sw)
17:end for
18:end for
19:end procedure
20:procedure MIGRATEVM(VM,DestHypervisor)
21:Detach IB VF from VM
22:Start live migration of VM to the DestHypervisor
23:/*网络的重新配置如下*/
24://LID地址迁移过程在具有预填充LID的vSwitch
25://和具有动态LID分配的vSwitch中略微不同。
26:/*在更新参与管理程序中的LID中描述的步骤*/
27:Migrate the IB addresses of VM
28:/*在更新物理交换机上的线性转发表(LFT)中描述的步骤*/
29:UPDATELFTBLOCKSONALLSWITCHES
30:end procedure
31:procedure MAIN
32:MIGRATEVM(VM_to_be_Migrated,toHypervisor)
33:end procedure
具有预填充LID的vSwitch中的重新配置
图8示出了根据实施例的在虚拟机迁移之前具有预填充LID的示例性vSwitch体系架构。如图所示,多个交换机501-504可以在结构(诸如InfiniBand结构)的成员之间提供网络交换环境800(例如, IB子网)内的通信。该结构可以包括多个硬件设备,诸如主机通道适配器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访问主机通道适配器。
根据实施例,虚拟交换机512、522和532可以由其各自的管理程序511、521、531来处理。在这种vSwitch体系架构中,每个虚拟功能是完整的虚拟主机通道适配器(vHCA),这意味着分配给VF 的VM被分配完整的IB地址集合(例如,GID、GUID、LID)和硬件中的专用QP空间。对于网络的其余部分和SM(未示出),HCA 510、520和530看起来像经由虚拟交换机、具有连接到它们的附加节点的交换机。
根据实施例,交换机501-504中的每一个可以包括多个端口(未示出),其用于设置线性转发表(诸如与交换机501相关联的线性转发表810)以便引导网络交换环境800内的流量。如图所示,线性转发表810通过交换机501的端口2转发寻址到虚拟机2 551(即, LID 3)的流量。同样,因为即使VM没有运行,也存在用于所有 LID的路径,因此线性转发表可以定义通过交换机501的端口4到 LID 12的转发路径。
图9示出了根据实施例的在虚拟机迁移之后具有预填充LID的示例性vSwitch体系架构。如图所示,多个交换机501-504可以在结构(诸如InfiniBand结构)的成员之间提供网络交换环境900(例如, IB子网)内的通信。该结构可以包括多个硬件设备,诸如主机通道适配器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访问主机通道适配器。
根据实施例,虚拟交换机512、522和532可以由其各自的管理程序511、521、531来处理。在这种vSwitch体系架构中,每个虚拟功能是完整的虚拟主机通道适配器(vHCA),这意味着分配给VF 的VM被分配完整的IB地址集合(例如,GID、GUID、LID)和硬件中的专用QP空间。对于网络的其余部分和SM(未示出),HCA 510、520和530看起来像经由虚拟交换机、具有连接到它们的附加节点的交换机。
根据实施例,交换机501-504中的每一个可以包括多个端口(未示出),其用于设置线性转发表(诸如与交换机501相关联的线性转发表910)以便引导网络交换环境900内的流量。
根据实施例,如果虚拟机2 551需要从管理程序511迁移到管理程序531,并且管理程序531上的虚拟功能3 536可用,那么虚拟机 2可以附连到虚拟功能3 536。在这种情况下,LID可以交换(即,分配给迁移的VM的LID的条目可以与在实时迁移完成之后将在目的地管理程序处使用的VF的LID进行交换)。交换机501上的线性转发表910可以如图所示被更新,即,到LID 3的流量现在通过端口4转发(以前通过端口2),并且到LID 12的路径现在通过端口2 转发(以前通过端口4)。
根据实施例,对于具有预填充LID的vSwitch体系架构,即使 VM没有运行,也存在用于所有LID的路径。为了迁移LID并保持初始路由的平衡,所有交换机上的两个LFT条目可以交换——分配给迁移的VM的LID的条目与在实时迁移完成之后将在目的地管理程序处使用的VF的LID(即,在目的地管理程序处迁移的虚拟机附连到的虚拟功能)。再次参考图7和图8,如果具有LID 2的VM1 550需要从管理程序551迁移到管理程序531,并且在管理程序531 上具有LID 12的VF3 536可用并且被确定附连到迁移的虚拟机1 551,那么交换机501的LFT可以被更新。在迁移之前,LID 2是通过端口2转发的,并且LID 12是通过端口4转发的。在迁移之后, LID 2通过端口4转发,并且LID 12通过端口2转发。在这种情况下,只需要为这个更新发送一个SMP,因为LFT在每块64个LID 的块中更新,并且LID 2和LID 12两者都是包括LID 0-63的同一块的一部分。如果管理程序531上的VF3的LID替代地为64或更大,那么将需要发送两个SMP,因为两个LFT块将必须被更新:包含 LID 2的块(VM LID)和包含要交换的大于63的LID块。
具有动态LID分配的vSwitch中的重新配置
根据实施例,对于具有动态LID分配的vSwitch体系架构,VF 的路径遵循与其中当前托管VM的管理程序的对应PF的路径相同的路径。当VM移动时,系统必须找到分配给目的地管理程序的PF的 LID,并且遍历所有交换机的所有LFT,并且用目的地管理程序的路径更新VM LID的路径。与在具有预填充LID的重新配置中使用的 LID交换技术相反,始终只需要向需要被更新的交换机发送一个 SMP,因为该处理中只涉及一个LID。
重新配置的传统成本
根据实施例,全网络重新配置方法所需的时间RCt是路径计算所需的时间PCt加上LFT分发到所有交换机所需的时间LFTDt之和,如等式1所示:
RCt=PCt+LFTDt (1)
根据实施例,路径的计算复杂度随子网的大小呈多项式增长,并且PCt在大型子网上是几分钟的数量级。
在计算路径之后,可以更新网络(诸如IB子网)中的交换机的 LFT。LFT分发时间LFTDt随子网的大小和交换机的数量呈线性增长。如上所述,LFT在64个LID的块上更新,因此在具有少量交换机和至多64个消耗的LID的小型子网中,在路径分发期间只需要向每个交换机发送一个SMP。在其中诸如具有消耗了49151个LID的完全填充的IB子网的其它情况下,在传统模型中的路径分发期间,需要每交换机发送768个SMP。
SMP可以使用定向路由或基于目的地的路由。当使用定向路由时,每个中间交换机必须在将分组转发到下一跳之前,用当前跳指针处理和更新分组的报头并且反转路径。在基于目的地的路由中,每个分组被立即转发。自然地,定向路由会向转发的分组添加延迟。但是无论如何,OpenSM为所有传统SMP使用定向路由。对于其中LFT 尚未分发到交换机的初始拓扑发现处理,或者当正在发生重新配置和到交换机的路由正在改变时,这是必需的。
假定n是网络中的交换机的数量;m是由消耗的LID数量确定的、将在每个交换机上更新的所有LFT块的数量;k是在到达每个交换机之前,每个SMP遍历网络所需的平均时间;以及r是由于定向路由而对每个SMP添加的平均时间。假设没有流水线,那么LFT 分发时间LFTDt可以在等式2中被进一步分解:
LFTDt=n·m·(k+r) (2)
通过组合等式1和2,等式3是全网络重新配置所需的时间的结果:
RCt=PCt+n·m·(k+r) (3)
在大型子网中,传统上,路径计算所需的时间PCt远远大于 LFT分发所需的时间LFTDt,即使(当使用更多的LID,并且因此每交换机m使用更多的LFT块时,以及当网络中存在更多的交换机 n时)LFTDt变大。等式2和3中的n·m部分定义了为重新配置需要发送的SMP的总数。
利用vSwitch体系架构进行实时迁移的重新配置成本
使用传统的重新配置技术将使VM迁移无法使用。在大型子网中,等式3中的PCt变得非常大并且主导RCt。如果实时迁移触发了完全的传统重新配置,那么它通常将花费几分钟的时间才能完成。
根据实施例,通过利用具有预填充LID的vSwitch或具有动态 LID分配的vSwitch,可以基本上消除重新配置时间的PCt部分,因为已经计算了路径以交换或复制每个交换机的LFT中的LID条目。此外,不需要每交换机发送m个SMP,因为当迁移VM时,取决于使用所建议的哪个vSwitch方案,只有一个或最多两个LID受到影响,而与LFT块的总数无关。因此,对于每个迁移,只有m'∈{1,2} 个SMP需要发送到交换机(如果当LID被预填充时两个LID条目不位于同一LFT块中,则m'=2,否则m'=1)。同样,存在某些情况,需要更新0<n'<n个交换机。
根据实施例,现在参考图10,其示出了根据实施例的具有潜在虚拟机迁移路径的具有预填充LID的示例性vSwitch架构。如图所示,多个交换机501-504可以在结构(诸如InfiniBand结构)的成员之间提供网络交换环境1000(例如,IB子网)内的通信。该结构可以包括多个硬件设备,诸如主机通道适配器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访问主机通道适配器。
根据实施例,虚拟交换机512、522和532可以由其各自的管理程序511、521、531来处理。在这种vSwitch体系架构中,每个虚拟功能是完整的虚拟主机通道适配器(vHCA),这意味着分配给VF 的VM被分配完整的IB地址集合(例如,GID、GUID、LID)和硬件中的专用QP空间。对于网络的其余部分和SM(未示出),HCA 510、520和530看起来像经由虚拟交换机、具有连接到它们的附加节点的交换机。
根据实施例,交换机501-504中的每一个可以包括多个端口(未示出),其用于设置线性转发表(诸如与交换机501相关联的线性转发表1010)以便引导网络交换环境1000内的流量。
根据实施例,图10绘出了在其中VM2 551可以潜在地从管理程序511迁移到管理程序521(其中存在三个可用的虚拟功能)的网络交换环境1000中的情况。如果LID 3与管理程序521中的任何可用的LID(6、7或8)进行了交换,那么交换机501将根本不需要更新,因为初始路由已经路由共享交换机501上的相同端口(端口2)的 LID 3和LID 6、7和8。特别地,对于该示例,n'=1,因为只有交换机503(即,叶交换机)将需要被更新。
根据实施例,最终,所公开的重新配置机制的成本vSwitch RCt在等式4中找到,并且在大型子网中,vSwitch RCt远小于RCt
vSwitch_RCt=n′·m′·(k+r) (4)
根据实施例,可以使用针对SMP分组的基于目的地的路由。当迁移VM时,属于交换机的LID的路由将不受影响。因此,基于目的地的路由可以保证向交换机正确地交付SMP,并且r可以从等式4 中消除,从而给出等式5:
vSwitch_RCt=n′·m′·k (5)
根据实施例,流水线可以用于更进一步减少vSwitch重新配置时间。
图11是根据实施例的用于支持网络中的虚拟机迁移的方法的流程图。在步骤1110处,该方法可以在包括一个或多个微处理器的一个或多个计算机处提供一个或多个交换机,该一个或多个交换机至少包括叶交换机,其中一个或多个交换机中的每一个包括多个端口;多个主机通道适配器,其中主机通道适配器中的每一个包括至少一个虚拟功能,并且其中多个主机通道适配器经由一个或多个交换机互连;多个管理程序,其中多个管理程序中的每一个与多个主机通道适配器中的至少一个相关联;以及多个虚拟机,其中多个虚拟机中的每一个与至少一个虚拟功能相关联。
在步骤1120处,该方法可以利用具有预填充的本地标识符 (LID)体系架构的虚拟交换机或具有动态LID分配体系架构的虚拟交换机中的一个或多个布置多个主机通道适配器。
在步骤1130处,该方法可以将在多个管理程序中的第一管理程序上运行的多个虚拟机的第一虚拟机实时迁移到多个管理程序中的第二管理程序;并且其中第一管理程序与多个主机通道适配器中的第一主机通道适配器相关联,并且第二管理程序与多个主机通道适配器中的第二主机通道适配器相关联。
本发明可以使用一个或多个常规的通用或专用数字计算机、计算设备、机器或微处理器(包括一个或多个处理器、存储器和/或根据本发明的教导编程的计算机可读存储介质)来方便地实现。如对于软件领域的技术人员将显而易见,基于本公开的教导,熟练的编程人员可以容易地准备适当的软件编码。
在一些实施例中,本发明包括计算机程序产品,该计算机程序产品是具有存储在其上/其中可以用于对计算机进行编程以执行本发明的任何处理的指令的存储介质或计算机可读介质。存储介质可以包括但不限于,任何类型的盘(包括软盘、光盘、DVD、CD-ROM、微驱动器和磁光盘)、ROM、RAM、EPROM、EEPROM、DRAM、 VRAM、闪存存储器设备、磁或光卡、纳米系统(包括分子存储器 IC)或适于存储指令和/或数据的任何类型的介质或设备。
已经为图示和描述的目的提供了本发明的前述描述。它不是穷尽的或者要把本发明限定到所公开的精确形式。许多修改和变化对本领域技术人员来说将显而易见。修改和变化包括所公开特征的任何相关组合。实施例的选择与描述是为了最好地解释本发明的原理及其实践应用,从而使本领域其他技术人员能够理解本发明用于各种实施例并且可以进行适于预期特定用途的各种修改。本发明的范围要由以下权利要求及其等价物来定义。

Claims (32)

1.一种用于支持子网中的虚拟机实时迁移的系统,包括:
一个或多个微处理器;
一个或多个交换机,所述一个或多个交换机至少包括叶交换机,其中所述一个或多个交换机中的每个交换机包括多个端口;
多个主机通道适配器,其中所述主机通道适配器中的每个主机通道适配器包括至少一个虚拟功能,并且其中所述多个主机通道适配器经由所述一个或多个交换机互连;
多个管理程序,其中所述多个管理程序中的每个管理程序与所述多个主机通道适配器中的至少一个主机通道适配器相关联;以及
多个虚拟机,其中所述多个虚拟机中的每个虚拟机与至少一个虚拟功能相关联;
其中所述多个主机通道适配器布置有具有预填充的本地标识符(LID)体系架构的虚拟交换机或具有动态LID分配体系架构的虚拟交换机中的一个或多个;
其中所述多个虚拟机中的、在所述多个管理程序中的第一管理程序上运行的第一虚拟机操作以执行到所述多个管理程序中的第二管理程序的实时迁移;以及
其中所述第一管理程序与所述多个主机通道适配器中的第一主机通道适配器相关联,并且所述第二管理程序与所述多个主机通道适配器中的第二主机通道适配器相关联。
2.如权利要求1所述的系统,其中所述多个主机通道适配器中的每个主机通道适配器包括物理功能,所述物理功能与LID相关联。
3.如权利要求2所述的系统,其中所述多个管理程序中的每个管理程序被配置为通过所述物理功能访问相关联的主机通道适配器。
4.如前述权利要求中任何一项所述的系统,其中所述多个主机通道适配器布置有具有预填充的LID体系架构的虚拟交换机;
其中所述一个或多个交换机中的每个交换机与线性转发表相关联;
其中,在所述第一虚拟机操作以执行从所述第一管理程序到所述第二管理程序的实时迁移之后,所述系统被配置为向所述第一管理程序发送第一子网管理分组和向所述第二管理程序发送第二子网管理分组,以更新与迁移的第一虚拟机相关联的LID;以及
其中最多两个子网管理分组被发送到所述一个或多个交换机,从而指示所述一个或多个交换机更新所述线性转发表。
5.如权利要求4所述的系统,其中最多一个子网管理分组被发送到所述一个或多个交换机,从而指示所述一个或多个交换机更新所述线性转发表。
6.如前述权利要求中任何一项所述的系统,其中,在所述第一虚拟机操作以执行从所述第一管理程序到所述第二管理程序的实时迁移之后,所述系统被配置为确定不需要所述子网的重新路由。
7.如权利要求4所述的系统,其中,在所述第一虚拟机操作以执行从所述第一管理程序到所述第二管理程序的实时迁移之后,所述系统被配置为指示所述一个或多个交换机的子集更新所述线性转发表。
8.如权利要求1、2或3中任何一项所述的系统,其中所述多个主机通道适配器布置有具有动态LID分配体系架构的虚拟交换机;
其中所述一个或多个交换机中的每个交换机与线性转发表相关联;
其中,在所述第一虚拟机操作以执行从所述第一管理程序到所述第二管理程序的实时迁移之后,所述系统被配置为向所述第一管理程序发送第一子网管理分组和向所述第二管理程序发送第二子网管理分组,以更新与迁移的第一虚拟机相关联的LID;以及
其中一个子网管理分组被发送到所述一个或多个交换机,从而指示所述一个或多个交换机更新所述线性转发表。
9.如权利要求1、2、3或8中任何一项所述的系统,其中,在所述第一虚拟机操作以执行从所述第一管理程序到所述第二管理程序的实时迁移之后,所述系统被配置为确定不需要子网的重新路由。
10.如权利要求1、2、3、8或9中任何一项所述的系统,其中,在所述第一虚拟机操作以执行从所述第一管理程序到所述第二管理程序的实时迁移之后,所述系统被配置为指示所述一个或多个交换机的子集更新所述线性转发表。
11.如前述权利要求中任何一项所述的系统,其中所述子网包括InfiniBand子网。
12.一种用于支持子网中的虚拟机实时迁移的方法,包括:
在包括一个或多个微处理器的一个或多个计算机处提供
一个或多个交换机,所述一个或多个交换机至少包括叶交换机,其中所述一个或多个交换机中的每个交换机包括多个端口,
多个主机通道适配器,其中所述主机通道适配器中的每个主机通道适配器包括至少一个虚拟功能,并且其中所述多个主机通道适配器经由所述一个或多个交换机互连,
多个管理程序,其中所述多个管理程序中的每个管理程序与所述多个主机通道适配器中的至少一个主机通道适配器相关联,以及
多个虚拟机,其中所述多个虚拟机中的每个虚拟机与至少一个虚拟功能相关联;
为所述多个主机通道适配器布置具有预填充的本地标识符(LID)体系架构的虚拟交换机或具有动态LID分配体系架构的虚拟交换机中的一个或多个;以及
将所述多个虚拟机中的、在所述多个管理程序中的第一管理程序上运行的第一虚拟机实时迁移到所述多个管理程序中的第二管理程序;以及
其中所述第一管理程序与所述多个主机通道适配器中的第一主机通道适配器相关联,并且所述第二管理程序与所述多个主机通道适配器中的第二主机通道适配器相关联。
13.如权利要求12所述的方法,其中所述多个主机通道适配器中的每个主机通道适配器包括物理功能,所述物理功能与LID相关联。
14.如权利要求13所述的方法,其中所述多个管理程序中的每个管理程序被配置为通过所述物理功能访问相关联的主机通道适配器。
15.如权利要求12、13或14中任何一项所述的方法,其中所述多个主机通道适配器布置有具有预填充的LID体系架构的虚拟交换机,所述方法还包括:
将所述一个或多个交换机中的每个交换机与线性转发表相关联;
在所述第一虚拟机从所述第一管理程序实时迁移到所述第二管理程序之后,向所述第一管理程序发送第一子网管理分组和向所述第二管理程序发送第二子网管理分组,以更新与迁移的第一虚拟机相关联的LID;以及
向所述一个或多个交换机发送最多两个子网管理分组,从而指示所述一个或多个交换机更新所述线性转发表。
16.如权利要求15所述的方法,其中最多一个子网管理分组被发送到所述一个或多个交换机,从而指示所述一个或多个交换机更新所述线性转发表。
17.如权利要求12、13、14或15中任何一项所述的方法,还包括:
在所述第一虚拟机从所述第一管理程序实时迁移到所述第二管理程序之后,确定不需要所述子网的重新路由。
18.如权利要求15所述的方法,还包括:
在所述第一虚拟机从所述第一管理程序实时迁移到所述第二管理程序之后,指示所述一个或多个交换机的子集更新所述线性转发表。
19.如权利要求12、13或14中任何一项所述的方法,其中所述多个主机通道适配器布置有具有动态LID分配体系架构的虚拟交换机,所述方法还包括:
将所述一个或多个交换机中的每个交换机与线性转发表相关联;
在所述第一虚拟机从所述第一管理程序实时迁移到所述第二管理程序之后,向所述第一管理程序发送第一子网管理分组和向所述第二管理程序发送第二子网管理分组,以更新与迁移的第一虚拟机相关联的LID;以及
向所述一个或多个交换机发送一个子网管理分组,从而指示所述一个或多个交换机更新所述线性转发表。
20.如权利要求12、13、14或19中任何一项所述的方法,还包括:
在所述第一虚拟机从所述第一管理程序实时迁移到所述第二管理程序之后,确定不需要所述子网的重新路由。
21.如权利要求12、13、14、19或20中任何一项所述的方法,还包括:
在所述第一虚拟机从所述第一管理程序实时迁移到所述第二管理程序之后,指示所述一个或多个交换机的子集更新所述线性转发表。
22.如权利要求12至21中任何一项所述的方法,其中所述子网包括InfiniBand子网。
23.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质包括存储在其上、用于支持子网中的虚拟机实时迁移的指令,所述指令在由一个或多个计算机读取并执行时使得所述一个或多个计算机执行包括以下的步骤:
在包括一个或多个微处理器的一个或多个计算机处提供
一个或多个交换机,所述一个或多个交换机至少包括叶交换机,其中所述一个或多个交换机中的每个交换机包括多个端口,
多个主机通道适配器,其中所述主机通道适配器中的每个主机通道适配器包括至少一个虚拟功能,并且其中所述多个主机通道适配器经由所述一个或多个交换机互连,
多个管理程序,其中所述多个管理程序中的每个管理程序与所述多个主机通道适配器中的至少一个主机通道适配器相关联,以及
多个虚拟机,其中所述多个虚拟机中的每个虚拟机与至少一个虚拟功能相关联;
为所述多个主机通道适配器布置具有预填充的本地标识符(LID)体系架构的虚拟交换机或具有动态LID分配体系架构的虚拟交换机中的一个或多个;以及
将所述多个虚拟机中的、在所述多个管理程序中的第一管理程序上运行的第一虚拟机实时迁移到所述多个管理程序中的第二管理程序;以及
其中所述第一管理程序与所述多个主机通道适配器中的第一主机通道适配器相关联,并且所述第二管理程序与所述多个主机通道适配器中的第二主机通道适配器相关联。
24.如权利要求23所述的非暂态计算机可读存储介质,其中所述多个主机通道适配器中的每个主机通道适配器包括物理功能,所述物理功能与LID相关联。
25.如权利要求24所述的非暂态计算机可读存储介质,其中所述多个管理程序中的每个管理程序被配置为通过所述物理功能访问相关联的主机通道适配器。
26.如权利要求23、24或25中任何一项所述的非暂态计算机可读存储介质,其中所述多个主机通道适配器布置有具有预填充的LID体系架构的虚拟交换机,所述方法还包括:
将所述一个或多个交换机中的每个交换机与线性转发表相关联;
在所述第一虚拟机从所述第一管理程序实时迁移到所述第二管理程序之后,向所述第一管理程序发送第一子网管理分组和向所述第二管理程序发送第二子网管理分组,以更新与迁移的第一虚拟机相关联的LID以更新与迁移的第一虚拟机相关联的LID;以及
向所述一个或多个交换机发送最多两个子网管理分组,从而指示所述一个或多个交换机更新所述线性转发表。
27.如权利要求26所述的非暂态计算机可读存储介质,其中最多一个子网管理分组被发送到所述一个或多个交换机,从而指示所述一个或多个交换机更新所述线性转发表。
28.如权利要求23、24、25或26中任何一项所述的非暂态计算机可读存储介质,所述步骤还包括:
在所述第一虚拟机从所述第一管理程序实时迁移到所述第二管理程序之后,确定不需要所述子网的重新路由。
29.如权利要求26所述的非暂态计算机可读存储介质,所述步骤还包括:
在所述第一虚拟机从所述第一管理程序实时迁移到所述第二管理程序之后,指示所述一个或多个交换机的子集更新所述线性转发表。
30.如权利要求23、24或25中任何一项所述的非暂态计算机可读存储介质,其中所述多个主机通道适配器布置有具有动态LID分配体系架构的虚拟交换机,所述方法还包括:
将所述一个或多个交换机中的每个交换机与线性转发表相关联;
在所述第一虚拟机从所述第一管理程序实时迁移到所述第二管理程序之后,向所述第一管理程序发送第一子网管理分组和向所述第二管理程序发送第二子网管理分组,以更新与迁移的第一虚拟机相关联的LID;以及
向所述一个或多个交换机发送一个子网管理分组,从而指示所述一个或多个交换机更新所述线性转发表。
31.如权利要求23、24、25或30中任何一项所述的非暂态计算机可读存储介质,所述步骤还包括:
在所述第一虚拟机从所述第一管理程序实时迁移到所述第二管理程序之后,确定不需要所述子网的重新路由。
32.如权利要求23、24、25、30或31中任何一项所述的非暂态计算机可读存储介质,所述步骤还包括:
在所述第一虚拟机从所述第一管理程序实时迁移到所述第二管理程序之后,指示所述一个或多个交换机的子集更新所述线性转发表。
CN201680003773.2A 2015-03-06 2016-02-24 为高性能云计算环境提供InfiniBand SR-IOV vSWITCH体系架构的系统和方法 Active CN107111513B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201562129273P 2015-03-06 2015-03-06
US62/129,273 2015-03-06
US201562161078P 2015-05-13 2015-05-13
US62/161,078 2015-05-13
US15/050,901 2016-02-23
US15/050,901 US9990221B2 (en) 2013-03-15 2016-02-23 System and method for providing an infiniband SR-IOV vSwitch architecture for a high performance cloud computing environment
PCT/US2016/019370 WO2016144547A1 (en) 2015-03-06 2016-02-24 SYSTEM AND METHOD FOR PROVIDING AN INFINIBAND SR-IOV vSWITCH ARCHITECTURE FOR A HIGH PERFORMANCE CLOUD COMPUTING ENVIRONMENT

Publications (2)

Publication Number Publication Date
CN107111513A true CN107111513A (zh) 2017-08-29
CN107111513B CN107111513B (zh) 2020-11-03

Family

ID=56850564

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680003773.2A Active CN107111513B (zh) 2015-03-06 2016-02-24 为高性能云计算环境提供InfiniBand SR-IOV vSWITCH体系架构的系统和方法

Country Status (6)

Country Link
US (4) US9990221B2 (zh)
EP (1) EP3265912B1 (zh)
JP (1) JP6763860B2 (zh)
KR (1) KR102445870B1 (zh)
CN (1) CN107111513B (zh)
WO (1) WO2016144547A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113535630A (zh) * 2021-09-14 2021-10-22 苏州浪潮智能科技有限公司 一种跨节点通信方法、装置、设备及可读存储介质

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9990221B2 (en) 2013-03-15 2018-06-05 Oracle International Corporation System and method for providing an infiniband SR-IOV vSwitch architecture for a high performance cloud computing environment
US10397105B2 (en) * 2014-03-26 2019-08-27 Oracle International Corporation System and method for scalable multi-homed routing for vSwitch based HCA virtualization
US9866474B2 (en) * 2015-12-01 2018-01-09 Quanta Computer Inc. Centralized server switch management
US10355992B2 (en) 2016-01-27 2019-07-16 Oracle International Corporation System and method for supporting router SMA abstractions for SMP connectivity checks across virtual router ports 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
US10402207B2 (en) 2016-06-16 2019-09-03 Quanta Computer Inc. Virtual chassis management controller
US10423437B2 (en) * 2016-08-17 2019-09-24 Red Hat Israel, Ltd. Hot-plugging of virtual functions in a virtualized environment
CN107783834B (zh) * 2016-08-30 2021-05-07 伊姆西公司 用于处理数据的方法和系统
US10176122B2 (en) * 2016-10-19 2019-01-08 Advanced Micro Devices, Inc. Direct memory access authorization in a processing system
US10552265B1 (en) * 2017-09-14 2020-02-04 EMC IP Holding Company LLC Method of tracking and analyzing data integrity issues by leveraging cloud services
US10795717B2 (en) * 2018-09-18 2020-10-06 Microsoft Technology Licensing, Llc Hypervisor flow steering for address sharing
US10963283B2 (en) * 2018-12-27 2021-03-30 Nutanix, Inc. Configuration management for hybrid cloud
CN111506385A (zh) * 2019-01-31 2020-08-07 Ati科技无限责任公司 引擎抢占和复原
US11121960B2 (en) * 2019-05-30 2021-09-14 International Business Machines Corporation Detecting and managing relocation of network communication endpoints in a distributed computing environment
US11734036B2 (en) * 2021-03-03 2023-08-22 Dell Products L.P. System and method to monitor and manage a passthrough device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101206623A (zh) * 2006-12-19 2008-06-25 国际商业机器公司 迁移虚拟端点的系统和方法
US20130254321A1 (en) * 2012-03-26 2013-09-26 Oracle International Corporation System and method for supporting live migration of virtual machines in a virtualization environment
US20130262937A1 (en) * 2012-03-27 2013-10-03 Oracle International Corporation Node death detection by querying

Family Cites Families (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6055532A (en) 1996-05-14 2000-04-25 Soeder; Thomas B. Method and apparatus for recording and reading date data having coexisting formats
US20030208572A1 (en) 2001-08-31 2003-11-06 Shah Rajesh R. Mechanism for reporting topology changes to clients in a cluster
US7093024B2 (en) 2001-09-27 2006-08-15 International Business Machines Corporation End node partitioning using virtualization
US6988161B2 (en) 2001-12-20 2006-01-17 Intel Corporation Multiple port allocation and configurations for different port operation modes on a host
US20030120585A1 (en) 2001-12-21 2003-06-26 Richard Rosenblatt Confidential electronic trading and matching system incorporating execution via an auction market
KR20050002865A (ko) * 2002-04-18 2005-01-10 인터내셔널 비지네스 머신즈 코포레이션 인피니밴드 채널 어댑터 장애용 리던던시 제공 방법 및 컴퓨터 시스템
US7484208B1 (en) 2002-12-12 2009-01-27 Michael Nelson Virtual machine migration
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
US7283473B2 (en) 2003-04-10 2007-10-16 International Business Machines Corporation Apparatus, system and method for providing multiple logical channel adapters within a single physical channel adapter in a system area network
US8776050B2 (en) 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
US7934020B1 (en) 2003-09-19 2011-04-26 Vmware, Inc. Managing network data transfers in a virtual computer system
US7555002B2 (en) 2003-11-06 2009-06-30 International Business Machines Corporation Infiniband general services queue pair virtualization for multiple logical ports on a single physical port
US8335909B2 (en) 2004-04-15 2012-12-18 Raytheon Company Coupling processors to each other for high performance computing (HPC)
US7200704B2 (en) 2005-04-07 2007-04-03 International Business Machines Corporation Virtualization of an I/O adapter port using enablement and activation functions
US7581021B2 (en) 2005-04-07 2009-08-25 International Business Machines Corporation System and method for providing multiple virtual host channel adapters using virtual switches
US7574536B2 (en) 2005-04-22 2009-08-11 Sun Microsystems, Inc. Routing direct memory access requests using doorbell addresses
US7565463B2 (en) 2005-04-22 2009-07-21 Sun Microsystems, Inc. Scalable routing and addressing
US7620741B2 (en) 2005-04-22 2009-11-17 Sun Microsystems, Inc. Proxy-based device sharing
US7293129B2 (en) 2005-04-22 2007-11-06 Sun Microsystems, Inc. Flexible routing and addressing
US7613864B2 (en) 2005-04-22 2009-11-03 Sun Microsystems, Inc. Device sharing
US7478178B2 (en) 2005-04-22 2009-01-13 Sun Microsystems, Inc. Virtualization for device sharing
JP4883979B2 (ja) 2005-10-11 2012-02-22 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および通信制御方法
US7996583B2 (en) 2006-08-31 2011-08-09 Cisco Technology, Inc. Multiple context single logic virtual host channel adapter supporting multiple transport protocols
US9712486B2 (en) 2006-09-25 2017-07-18 Weaved, Inc. Techniques for the deployment and management of network connected devices
US20080189432A1 (en) 2007-02-02 2008-08-07 International Business Machines Corporation Method and system for vm migration in an infiniband network
US20080186990A1 (en) * 2007-02-02 2008-08-07 International Business Machines Corporation Translation module, method and computer program product for providing multiple infiniband address support for vm migration using infiniband address translation
US7836332B2 (en) 2007-07-18 2010-11-16 Hitachi, Ltd. Method and apparatus for managing virtual ports on storage systems
WO2009012453A1 (en) 2007-07-19 2009-01-22 The University Of North Carolina At Chapel Hill Stationary x-ray digital breast tomosynthesis systems and related methods
US20090077268A1 (en) 2007-09-14 2009-03-19 International Business Machines Corporation Low Latency Multicast for Infiniband Host Channel Adapters
US8798056B2 (en) 2007-09-24 2014-08-05 Intel Corporation Method and system for virtual port communications
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
CN101227298B (zh) 2008-01-09 2010-06-02 南京大学 基于片上网络的路由器功耗确定方法
US7962564B2 (en) 2008-02-25 2011-06-14 International Business Machines Corporation Discovery of a virtual topology in a multi-tasking multi-processor environment
US20090222640A1 (en) 2008-02-28 2009-09-03 Bauman Ellen M Memory Migration in a Logically Partitioned Computer System
JP4591571B2 (ja) 2008-08-04 2010-12-01 株式会社デンソー 電源装置
JP2010039730A (ja) 2008-08-05 2010-02-18 Fujitsu Ltd ネットワーク設定プログラム,ネットワーク設定方法及びネットワーク設定装置
US8739269B2 (en) 2008-08-07 2014-05-27 At&T Intellectual Property I, L.P. Method and apparatus for providing security in an intranet network
JP5172545B2 (ja) 2008-09-01 2013-03-27 ヤンマー株式会社 過給機の冷却構造
JP5272265B2 (ja) 2008-09-29 2013-08-28 株式会社日立製作所 Pciデバイス共有方法
US7996484B2 (en) 2008-12-11 2011-08-09 Microsoft Corporation Non-disruptive, reliable live migration of virtual machines with network data reception directly into virtual machines' memory
US8862538B2 (en) 2008-12-18 2014-10-14 International Business Machines Corporation Maintaining a network connection of a workload during transfer
US7970913B2 (en) 2008-12-31 2011-06-28 International Business Machines Corporation Virtualizing sockets to enable the migration of a system environment
CN102334112B (zh) 2009-02-27 2014-06-11 美国博通公司 用于虚拟机网络的方法和系统
US9817695B2 (en) 2009-04-01 2017-11-14 Vmware, Inc. Method and system for migrating processes between virtual machines
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
US8150971B2 (en) 2009-05-31 2012-04-03 Red Hat Israel, Ltd. Mechanism for migration of client-side virtual machine system resources
US8489744B2 (en) 2009-06-29 2013-07-16 Red Hat Israel, Ltd. Selecting a host from a host cluster for live migration of a virtual machine
JP5375403B2 (ja) * 2009-07-23 2013-12-25 富士通株式会社 仮想マシン移動制御プログラム,仮想マシン移動制御方法および仮想マシン移動制御装置
EP2309680B1 (en) 2009-10-08 2017-07-19 Solarflare Communications Inc Switching API
US8370560B2 (en) 2009-11-16 2013-02-05 International Business Machines Corporation Symmetric live migration of virtual machines
US8327060B2 (en) 2009-11-30 2012-12-04 Red Hat Israel, Ltd. Mechanism for live migration of virtual machines with memory optimizations
US8589921B2 (en) 2009-11-30 2013-11-19 Red Hat Israel, Ltd. Method and system for target host optimization based on resource sharing in a load balancing host and virtual machine adjustable selection algorithm
EP3001326B1 (en) 2009-12-14 2017-07-26 Citrix Systems Inc. Methods and systems for communicating between trusted and non-trusted virtual machines
US9389895B2 (en) 2009-12-17 2016-07-12 Microsoft Technology Licensing, Llc Virtual storage target offload techniques
JP5190084B2 (ja) 2010-03-30 2013-04-24 株式会社日立製作所 仮想マシンのマイグレーション方法およびシステム
US8700811B2 (en) 2010-05-25 2014-04-15 Microsoft Corporation Virtual machine I/O multipath configuration
US8989187B2 (en) 2010-06-04 2015-03-24 Coraid, Inc. Method and system of scaling a cloud computing network
US8873551B2 (en) 2010-07-30 2014-10-28 Cisco Technology, Inc. Multi-destination forwarding in network clouds which include emulated switches
US8489699B2 (en) 2010-08-13 2013-07-16 Vmware, Inc. Live migration of virtual machine during direct access to storage over SR IOV adapter
US20120173757A1 (en) 2011-01-05 2012-07-05 International Business Machines Corporation Routing optimization for virtual machine migration between geographically remote data centers
US8407182B1 (en) 2011-01-21 2013-03-26 Symantec Corporation Systems and methods for facilitating long-distance live migrations of virtual machines
US9015709B2 (en) 2011-03-08 2015-04-21 Rackspace Us, Inc. Hypervisor-agnostic method of configuring a virtual machine
US8935506B1 (en) 2011-03-31 2015-01-13 The Research Foundation For The State University Of New York MemX: virtualization of cluster-wide memory
WO2012143965A1 (en) 2011-04-18 2012-10-26 Hitachi, Ltd. Plurality of coupled storage subsystems and method for setting port access limitation in a storage subsystem when migrating a logical volume
US9130935B2 (en) 2011-05-05 2015-09-08 Good Technology Corporation System and method for providing access credentials
US20120287931A1 (en) 2011-05-13 2012-11-15 International Business Machines Corporation Techniques for securing a virtualized computing environment using a physical network switch
US20120291024A1 (en) 2011-05-13 2012-11-15 International Business Machines Corporation Virtual Managed Network
US9218195B2 (en) 2011-05-17 2015-12-22 International Business Machines Corporation Vendor-independent resource configuration interface for self-virtualizing input/output device
US9225628B2 (en) 2011-05-24 2015-12-29 Mellanox Technologies Ltd. Topology-based consolidation of link state information
US10063544B2 (en) 2011-06-03 2018-08-28 Oracle International Corporation System and method for supporting consistent handling of internal ID spaces for different partitions in an infiniband (IB) network
WO2012170016A1 (en) 2011-06-07 2012-12-13 Hewlett-Packard Development Company, L.P. A scalable multi-tenant network architecture for virtualized datacenters
WO2012176278A1 (ja) 2011-06-21 2012-12-27 富士通株式会社 情報処理装置、仮想マシン制御方法およびプログラム
JP5643990B2 (ja) 2011-07-29 2014-12-24 株式会社日立製作所 ネットワーク装置及びネットワークシステム
US8656389B2 (en) 2011-08-22 2014-02-18 Vmware, Inc. Virtual port command processing during migration of virtual machine
JP5776600B2 (ja) 2011-09-05 2015-09-09 富士通株式会社 データ中継装置、データ中継プログラムおよびデータ中継方法
US20130083690A1 (en) 2011-10-04 2013-04-04 International Business Machines Corporation Network Adapter Hardware State Migration Discovery in a Stateful Environment
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
US9083651B2 (en) 2011-12-07 2015-07-14 Citrix Systems, Inc. Controlling a network interface using virtual switch proxying
US8930690B2 (en) 2012-03-21 2015-01-06 Microsoft Corporation Offloading packet processing for networking device virtualization
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
US9201679B2 (en) 2012-05-31 2015-12-01 Red Hat Israel, Ltd. Multiple destination live migration
CN104272281A (zh) 2012-06-25 2015-01-07 株式会社日立制作所 计算机系统和应用程序运行环境转移方法
US9104645B2 (en) 2012-07-27 2015-08-11 Dell Products, Lp System and method of replicating virtual machines for live migration between data centers
US20140052877A1 (en) 2012-08-16 2014-02-20 Wenbo Mao Method and apparatus for tenant programmable logical network for multi-tenancy cloud datacenters
US9130858B2 (en) 2012-08-29 2015-09-08 Oracle International Corporation System and method for supporting discovery and routing degraded fat-trees in a middleware machine environment
CN102968344A (zh) 2012-11-26 2013-03-13 北京航空航天大学 一种多虚拟机迁移调度的方法
US8937949B2 (en) 2012-12-20 2015-01-20 Oracle International Corporation Method and system for Infiniband host channel adapter multicast packet replication mechanism
US9485188B2 (en) 2013-02-01 2016-11-01 International Business Machines Corporation Virtual switching based flow control
US9990221B2 (en) 2013-03-15 2018-06-05 Oracle International Corporation System and method for providing an infiniband SR-IOV vSwitch architecture for a high performance cloud computing environment
US10230794B2 (en) 2013-03-15 2019-03-12 Oracle International Corporation System and method for efficient virtualization in lossless interconnection networks
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
US10454991B2 (en) 2014-03-24 2019-10-22 Mellanox Technologies, Ltd. NIC with switching functionality between network ports
CN104184642B (zh) 2014-08-31 2017-05-10 西安电子科技大学 多级星型交换网络结构及优化方法
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
US9898430B2 (en) 2014-11-12 2018-02-20 Vmware, Inc. Tracking virtual machine memory modified by a single root I/O virtualization (SR-IOV) device
EP3245763B1 (en) 2015-01-14 2019-08-21 Signify Holding B.V. Adaptive recovery from node failures in a network system
US10142353B2 (en) 2015-06-05 2018-11-27 Cisco Technology, Inc. System for monitoring and managing datacenters
US10536357B2 (en) 2015-06-05 2020-01-14 Cisco Technology, Inc. Late data detection in data center
US10063446B2 (en) 2015-06-26 2018-08-28 Intel Corporation Netflow collection and export offload using network silicon
US10432650B2 (en) 2016-03-31 2019-10-01 Stuart Staniford System and method to protect a webserver against application exploits and attacks
US11409619B2 (en) 2020-04-29 2022-08-09 The Research Foundation For The State University Of New York Recovering a virtual machine after failure of post-copy live migration

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101206623A (zh) * 2006-12-19 2008-06-25 国际商业机器公司 迁移虚拟端点的系统和方法
US20130254321A1 (en) * 2012-03-26 2013-09-26 Oracle International Corporation System and method for supporting live migration of virtual machines in a virtualization environment
US20130262937A1 (en) * 2012-03-27 2013-10-03 Oracle International Corporation Node death detection by querying

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
AURELIO BERMÚDEZ等: ""Evaluation of a Subnet Management Mechanism for InfiniBand Networks"", 《PROCEEDINGS OF THE 2003 INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING (ICPP’03)》 *
WEI LIN GUAY等: ""A Scalable Signalling Mechanism for VM Migration with SR-IOV over InfiniBand"", 《2012 IEEE 18TH INTERNATIONAL CONFERENCE ON PARALLEL AND DISTRIBUTED SYSTEMS》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113535630A (zh) * 2021-09-14 2021-10-22 苏州浪潮智能科技有限公司 一种跨节点通信方法、装置、设备及可读存储介质

Also Published As

Publication number Publication date
KR20170125790A (ko) 2017-11-15
JP2018508856A (ja) 2018-03-29
JP6763860B2 (ja) 2020-09-30
US11740922B2 (en) 2023-08-29
CN107111513B (zh) 2020-11-03
US10514946B2 (en) 2019-12-24
US9990221B2 (en) 2018-06-05
KR102445870B1 (ko) 2022-09-21
US20210389969A1 (en) 2021-12-16
EP3265912B1 (en) 2022-04-20
US20160259661A1 (en) 2016-09-08
US20180285142A1 (en) 2018-10-04
US11132216B2 (en) 2021-09-28
US20200110630A1 (en) 2020-04-09
EP3265912A1 (en) 2018-01-10
WO2016144547A1 (en) 2016-09-15

Similar Documents

Publication Publication Date Title
CN107111513A (zh) 为高性能云计算环境提供InfiniBand SR‑IOV vSWITCH体系架构的系统和方法
CN107852339B (zh) 用于无损网络中的高效虚拟化的系统和方法
JP7241146B2 (ja) 高性能コンピューティング環境での線形転送テーブル(lft)探索のためにグローバルルートヘッダ(grh)におけるサブネットプレフィックス値を用いるためのシステムおよび方法
CN107852376A (zh) 用于支持高性能计算环境中跨虚拟路由器端口的smp连接性检查的路由器sma抽象的系统和方法
CN108141415A (zh) 用于支持高性能计算环境中的双端口虚拟路由器的系统和方法
CN107851034B (zh) 用于定义虚拟机的虚拟机构架简档的系统和方法
JP7282840B2 (ja) 高性能コンピューティング環境における高速ハイブリッド再構成をサポートするためのシステムおよび方法
CN107852377B (zh) 用于在高性能计算环境中支持交换机端口状况的可伸缩表示的系统和方法
CN107852378A (zh) 用于在高性能计算环境中支持可伸缩的基于位图的P_Key表的系统和方法
CN110505095A (zh) 一种使用少量服务器搭建大规模虚拟数据中心的方法
IX 13th USENIX Symposium on Networked Systems Design and Implementation

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