CN104272288B - 用于实现虚拟机vm平台通信回送的方法和系统 - Google Patents

用于实现虚拟机vm平台通信回送的方法和系统 Download PDF

Info

Publication number
CN104272288B
CN104272288B CN201280073068.1A CN201280073068A CN104272288B CN 104272288 B CN104272288 B CN 104272288B CN 201280073068 A CN201280073068 A CN 201280073068A CN 104272288 B CN104272288 B CN 104272288B
Authority
CN
China
Prior art keywords
platform
network
port
communication
virtual
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
CN201280073068.1A
Other languages
English (en)
Other versions
CN104272288A (zh
Inventor
J·鲍尔
J·R·赫恩
W·艾哈迈德
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN104272288A publication Critical patent/CN104272288A/zh
Application granted granted Critical
Publication of CN104272288B publication Critical patent/CN104272288B/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
    • 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
    • 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)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

用于产生虚拟机(VM)平台通信回送以及允许用户发起网络端口故障转移的方法、装置及系统。采用VM并且具有VM可访问的多个网络端口的平台中的网络通信被配置成用于被路由,从而使得平台内的VM之间的通信在平台内被回送,因此不要求通过外部交换机进行路由。这是通过动态地强制执行VM间流量以便确保同一物理端口内的内部回送的智能通道绑定驱动程序而促成的。在另一方面,允许用户在采用虚拟机管理器以及多个VM的平台上发起网络端口的故障转移,其中,经更新的配置信息被发送从而禁用与网络端口相关联的虚拟功能(VF)驱动程序。

Description

用于实现虚拟机VM平台通信回送的方法和系统
技术领域
本发明的领域总体上涉及计算机系统,并且更具体地但是非排他地涉及虚拟化环境中的端口的聚合、路由和故障转移(failover)。
背景技术
近些年,计算机系统的虚拟化已经快速增长,尤其是在服务器部署和数据中心方面。常规的方法是,服务器直接在物理硬件资源(诸如CPU、RAM、存储设备(例如硬盘)、网络控制器、I/O端口等等)上运行操作系统的单个实例。虚拟化方法是,物理硬件资源用于支持相应的虚拟资源,从而使得多个虚拟机(VM)可在服务器的物理硬件资源上运行,其中,每个虚拟机包括其自身的CPU分配、存储器分配、存储设备、网络控制器、I/O端口等等。于是,相同或不同操作系统的多个实例可在多个VM上运行。而且,通过使用虚拟机管理器(VMM)或“管理程序(hypervisor)”,当服务器运行,可动态地分配虚拟资源,从而实现可在不要求关闭服务器的情况下添加、关闭、或重设VM实例。这为服务器使用提供了更大的灵活性以及更好地使用服务器处理资源,尤其是对于多核处理器和/或多处理器服务器而言。
服务器架构的重要方面是对增强的可靠性、可用性、以及可服务性(RAS)的设计。RAS服务器的目标是诸如要求RAS特征的服务器农场和数据中心等环境。为了支持这些特征,RAS服务器硬件和软件都被设计成用于响应于检测到系统故障而支持冗余和自动故障。这包括对冗余物理端口的支持。
如上所述,虚拟化增加了服务器灵活性和使用率。为了将二者最大化,部署将通常使用大多数或全部可用物理端口,不管这些端口被架构化为主端口还是备用端口(用于在主端口故障的情况支持故障转移)。当采用虚拟化时,这些物理端口的聚合以及故障转移使用变得更加复杂,因为虚拟化端口由虚拟化软件映射到物理端口。进一步详细地,典型的虚拟化实现方式是虚拟化软件包括在物理硬件和在虚拟机上运行的操作系统之间的薄层。因此,如果物理资源变得不可用,通过该物理资源实现的相应的虚拟服务可同样变得不可用。
附图简要说明
当结合附图时,前述方面和本发明的许多伴随优势将变得更加容易认识到,正如通过参照以下详细说明更好地理解到的那样,其中,贯穿各种视图,类似的参考标号指代类似的部件,除非另外指明。
图1是示出被配置成用于支持访问多个PCIe设备的通用虚拟化平台的框图;
图2是示出在机架服务器中的服务器上运行的多个VM之间的通信的高级视图的组合式示意图和框图;
图2a是示出机架服务器中的VM之间的通信的图2的抽象版本;
图3是示出通用SR-IOV配置平台的示例的框图;
图4是示出动态地强制执行VM间流量以便确保同一物理端口内的内部回送的智能通道绑定驱动程序的实现方式的框图;
图4a是采用经由分离的端口路由VM间流量(这需要使用外部交换机)的常规通道绑定驱动器的平台配置的框图;
图4b是在流量路由已经被重新配置成用于使用同一端口在第一和第二VM之间路由流量之后的图4的平台配置的框图;
图5是包括用于支持用户发起的端口故障转移的软件接口的平台配置的框图;以及
图5a是示出端口故障转移操作已经完成之后的平台配置的框图。
实施方案描述
在此描述了用于产生VM平台通信回送以及允许用户发起的网络端口故障转移的方法、装置及系统的实施例。在以下说明中,列出了许多特定细节以便提供本发明实施例的透彻理解。然而,本领域普通技术人员将认识到本发明可在没有这些特定细节中的一项或多项或者在具有其他方法、组件、材料等等的情况下实践。在其他情况下,未详细地示出或描述公知的结构、材料、或操作以便避免混淆本发明的方面。
贯穿本说明书对“一个实施例”或“实施例”的引用是指在此结合该实施例所述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,贯穿本说明书,短语“在一个实施例中”或“在实施例中”在各种地方的出现并非必然全部指代相同的实施例。而且,特定特征、结构或特性可在一个或多个实施例中以任意适当的方式组合。
为了清晰,在此,附图中的单个组件还可通过其在附图中的标签而不是通过具体的参考标号进行指代。附加地,指代具体类型的组件(而非具体的组件)的参考标号可以被显示为“(TYP)”(意思是“典型的”)加上随后的参考标号。将理解,出于简明和清晰的目的,这些组件的配置将是可存在但未在附图中示出的类似组件的典型。
图1示出被配置成用于支持根据外围组件互连(PCI)快速基础规范访问多个PCIe设备的通用虚拟化平台。在虚拟化平台的中心处的是虚拟化中间程序(VI)100,该中间程序可通常被实现为VMM或管理程序以及多个VM。VI 100对硬件资源进行抽象,如由处理器102和存储器104所示例化的,以便通过其自身的虚拟资源集合展现多个系统映像(SI)106中的每一个。可用于给定SI 106的实际硬件资源(用于实现相应的虚拟资源)可基于VI 100所实现的工作负载或其他策略而不同。SI包括软件,诸如用于执行应用或受信任服务(例如共享或非共享I/O设备驱动器)的操作系统。
除处理器和存储器资源之外,VI 100可对包括用于支持PCIe设备的资源的其他资源进行抽象。这些在图1中被描绘为PCIe根复合体110、PCIe根端口112-1和112-2、交换机114、以及PCIe设备116-1、116-2、和116-3。总体上,每个平台可支持一个或多个根复合体,其中每个根复合体有一个或多个根端口。每个根端口表示按照PCI快速基础规范的单独的层次(hierarchy)。每个层次被称作单个根层次,从而将其区别于根据多根I/O虚拟技术定义的多层次技术
图2示出在机架服务器200-1中的服务器上运行的多个VM之间的通信的高级视图。机架服务器200-1是在高密度服务器农场和数据中心中实现的服务器的典型,并且包括服务器202-1、202-2、202-3、和202-4安装在其中的机架,其中每个服务器被安装在机架中的相应的槽道内。这些服务器通过以太网线缆等等与网络交换机203通信耦合。
图2在机架服务器200-1下方描绘了服务器202-1、202-2、202-3、和202-4的进一步的细节,其中,每个服务器框图对应于机架服务器200-1中的共享同一参考标号的对应的服务器。服务器202-1、202-2、202-3、和202-4各自包括各种硬件组件,诸如用于主控对应的VMM 204实例和四个虚拟机的处理器和存储器(未示出)。例如,服务器202-1主控VMM 204-1以及虚拟机VM 1-1、VM 1-2、VM 1-3、和VM 1-4。每个服务器202还包括一个或多个网络端口206(例如,用于刀片服务器202-1的网络端口206-1)。网络端口表示可应用的PCIe接口和网络接口控制器(NIC)硬件和逻辑,以便促成通过采用用于路由和交换功能的交换机203的局域网208进行通信的。例如,NIC硬件可对应于有线以太网接口或无线接口,以便支持无线连接,诸如IEEE 802.11连接。进而,交换机208被描绘为连接到网络212中的路由器210。同样示出的是两个附加的机架服务器200-2和200-3,各自具有类似于机架服务器200-1的配置并且包括被示出为连接到路由器210的对应的网络交换机203-2和203-3。
通常,网络212是单独的网络,诸如LAN、WAN、或内部网,或者可以是LAN 208的一部分。附加地,路由器210可连接到其他网络设备,以便促成与其他网络(未示出)(包括互联网)的连接。
如上所述,虚拟化中间程序层在SI(在VM上运行)和平台硬件之间提供抽象。在图2的服务器配置中,所有流入和流出I/O操作必须由虚拟化软件组件(为了简明,总体上被描绘为VMM)监听并处理,从而增加了显著的平台资源和延迟开销。而且,因为网络端口由VM共享,瓶颈可来自对共享物理资源的竞争,从而致使数据包处理延迟增加。
图2a示出图2的抽象化版本,其中,仅仅示出了虚拟机、VMM和LAN 208以便更好地示出由同一机架服务器中的服务器主控的VM之间的通信路径。需要注意,VM之间的任何通信被路由通过服务器外部的网络设备(例如用于LAN 208的交换机203-1)。这适用于同一服务器(在此被称为VM间流量(traffic))中的VMM之间的基于网络协议的通信,如图2a中的VM1-2和VM 1-4之间的连接路径214和216所示出的。
为了降低与使用虚拟化相关联的资源开销,PCI-开发了单根虚拟I/O(SR-IOV)规范。SR-IOV的使用提供了优于常规虚拟化中间程序方法的许多益处,包括提供以下能力:清除主要数据移动动作(例如DMA、存储器空间访问、中断处理等等)中的VI参与;清除每个I/O操作的VI监听和处理;提供标准化方法来通过单根PCI管理器(SR-PCIM)控制SR-IOV资源配置和管理;提供以下能力:降低硬件要求以及与在设备内配给可能非常多的I/O功能相关联的成本;以及提供以下能力:将SR-IOV与其他I/O虚拟化技术(诸如地址转换服务(ATS)、地址转换和保护表(ATPT)技术、以及中断重映射技术)进行整合以便创建鲁棒的、完整的I/O虚拟化解决方案。
图3示出通用SR-IOV配置平台的示例。除以上参照图1的通用平台配置描述的元素之外,在图3中描绘的SR-IOV通用平台配置进一步包括单根PCI管理器(SR-PCIM)300、转换代理(TA)302、以及地址转换和保护表(ATPT)304。附加地,PCIe设备被重配置成用于支持SR-IOV操作。如所描绘的,PCIe设备306-1、306-2、以及306-3各自包括地址转换高速缓存(ATC)308、物理功能(PF)310、以及多个虚拟功能(VF)312。
SR-PCIM 300包括负责配置SR-IOV能力、管理物理功能和虚拟功能、以及处理相关联的错误事件和总体设备控制(诸如功率管理和热插拔服务)的软件。如所示,其逻辑地位于VI层中。
TA 302包括负责将PCIe事务中的地址转换为相关联的平台物理地址的硬件或硬件与软件的组合。TA可包含地址转换高速缓存以便加速转换表访问。TA还可支持PCI-SIG地址转换服务规范,其允许PCIe功能获得对相关联的存储器的DMA访问的地址转换先验知识。TA的使用在SR-IOV实现中是可选的。
ATPT 304包含由TA访问以便处理PCIe请求(DAM读、DMA写)或中断请求的地址转换集合。在PCIe中,中断被视为存储器写操作。通过PCIe事务中所包含的请求者标识符和地址的组合,中断可被路由到对相关联的I/O功能透明的任何目标(例如处理器内核)。通过包含在PCIe事务中的路由ID和地址的组合转换来DMA读和写请求。ATPT的使用在SR-IOV实现中是可选的。
ATC 308可存在于平台中的两个位置:在可被集成到根复合体中或位于其上的TA中;或者在PCIe设备中,诸如图3中所描绘的。在根复合体中,ATC使加速的转换查找得以出现。在PCIe设备中,通过ATS技术填充ATC。表明它们包含经转换地址的PCIe事务可绕过平台的ATC,以便在不损害与ATPT技术相关联的益处的情况下改善性能。ATC的使用在SR-IOV实现中是可选的。
PF 310是支持SR-IOV能力并且可由SR-PCIM、VI、或SI访问的PCIe功能(按照PCI快速基础规范)。VF 312是可由SI直接访问的“轻量级”PCIe功能(按照SR-IOV规范)。在抽象水平,VF作为PF的虚拟实例进行操作,从而使得从SI视角看,VF像是PF的实例。最低程度地,与功能的主要数据移动相关联的资源可用于SI。VF可串行地由不同的SI共享,例如VF可被分配给一个SI并且然后被重置并且分配给另一个SI。VF可以可选地从一个PF迁移到另一个PF。与PF相关联的所有VF必须与PF具有相同的设备类型,例如相同的网络设备类型或相同的存储设备类型。在一个实施例中,可存在每物理功能高达63个虚拟功能。
在使用单根虚拟I/O的虚拟化环境中,虚拟机可实现软件合作驱动程序(诸如Linux通道绑定驱动程序(CBD))以便实现多个物理以太网端口之间的聚合以及故障转移。每个VM可运行CBD的单独的迭代,以便绑定来自两个不同的物理端口的两个或更多个虚拟功能(VF)。为了确保VM到VM流量被路由通过以太网控制器的内部虚拟以太网桥(VEB)交换机,可能需要将流量约束在来自同一物理端口的VF之间。然而,因为每个VM中的CBD异步地运行,在任何给定时间,VM间流量可被从一个物理端口发送到不同的物理端口。因此,使用常规的CBD不能保证能够将VM间流量路由通过同一物理端口。对于要求回送的系统而言(为了低延迟,并且为了避免要求外部交换机),这是不可接受的。
解决前述问题的一种方法是在以太网控制器中提供广泛的硬件支持,以便跨物理端口扩展VEB能力。然而,这种方法是非常有限制性的,要求附加的成本并且提供的灵活性有限。
根据本发明实施例的方法,通过使用智能通道绑定驱动程序(IntelligentChannel Bonding Driver)解决上述缺陷,该智能通道绑定驱动程序动态地强制执行VM间流量以便确保同一物理端口内(并且因此在平台内,在不要求通过外部交换机进行路由的情况下)的内部回送。发送VM处的第一智能CBD检测目的VM的目标目的地址并且确保同一物理端口由在目的VM处的第二智能CBD所选中以递送该数据包。为了实现这一点,在一个实施例中,所有VM CBD动态地交换有关由每个CBD所使用的虚拟功能驱动程序的MAC地址和VLAN(虚拟局域网)的信息。实现简单的过滤器以便确保基于数据包的目的地正确地指引数据包。在一个实施例中,使用允许物理功能驱动程序与每个VF驱动程序通信的以太网控制器硬件邮箱(Hardware Mailbox)功能来交换查找表。PF驱动程序还用于分配VM间带宽。使用HW邮箱的优点是其允许在不涉及iCBD或基础驱动程序中的任何软件元素的情况下进行VF驱动程序间通信,并且可在高于VM的权限等级下控制该机制。一项关键的用户关切是VM不应当能够控制系统上超越该VM的权限等级的任何功能。将HW机制用于VM间数据交换实现了这一点,同时仍然保持基于软件的配置共享方法的灵活性。
在图4中示出了前述方法的示例性平台配置实现方式。在图示的顶部是一对虚拟机VM1和VM2。VM1位于过滤(filtered)通道绑定驱动程序400-1之上,该驱动程序400-1还被布置在VM1和一对VF驱动程序0.1和1.1之间。采取类似的配置,VM2位于过滤(filtered)通道绑定驱动程序400-2之上,该驱动程序400-2还被布置在VM2和一对VF驱动程序0.2和1.2之间。硬件(HW)邮箱402由过滤(filtered)通道绑定驱动程序400-1和400-2共享,并且被描绘为在虚拟机管理器404之上,该管理器404包括一对PF驱动程序406-1和406-2。
图4中图示的下半部分包括一对具有SR-IOV块408和410的以太网功能。带SR-IOV块408的以太网功能包括一对虚拟功能0.1和0.2、物理功能0、虚拟以太网桥和分类器412、以及以太网端口414(也被称为端口0)。带SR-IOV块410的以太网功能被类似地配置并且包括一对虚拟功能1.1和1.2、物理功能1、虚拟以太网桥和分类器416、以及以太网端口418(也被称为端口1)。
通过可应用的互连(其可被总体上描绘为互连块420)促成平台内的物理组件之间的通信。虚拟组件之间的连接路径还被描绘为双头箭头;将理解,这些连接实际上是在主控虚拟组件的物理硬件组件之间以及在使用可应用的协议的物理互连结构之上实现的。在一个实施例中,互连结构包括多个PCIe链接。在一个实施例中,互连结构包括直接I/O虚拟技术(VT-d)互连以及相关联的功能,诸如通过直接指派实现的增强型I/O性能。VT-d和SR-IOV的使用支持组件之间的直接连接,从而使得可以用绕过VMM的方式实现组件之间的通信。
图4的平台配置的方面表示用于RAS服务器的典型的平台架构。通过使用用于以太网功能的冗余物理端口促成可靠性和可用性方面-如果一个失效,另一个仍可用于支持端口故障转移。然而,不是将物理端口之一仅用作故障转移(即,备份)端口,而是在正常操作期间使用两个物理端口。为了促成使用两个端口,虚拟功能和VF驱动程序中也存在冗余性,如所示。类似地,存在物理功能和PF驱动程序的冗余性。附加地,使用多个端口支持了可扩展性并且增强了性能。
进一步详细地,用于VM1的VF驱动程序0.1用于促成与以太网端口0相对应的虚拟功能0.1的操作,而用于VM1的VF驱动程序1.1用于促成与以太网端口1相对应的虚拟功能0.1的操作。类似地,用于VM2的VF驱动程序0.2用于促成与以太网端口0相对应的虚拟功能0.2的操作,而用于VM2的VF驱动程序1.2用于促成与以太网端口1相对应的虚拟功能1.2的操作。
Linux通道绑定的使用使得可以聚合与以太网端口0和端口1相关联的虚拟资源,从而使得当以太网端口0和端口1两者是可操作的时,VM的给定通信操作可被动态地分配给以太网端口0或端口1中的任意一个。尽管这种动态分配是有利的,其还产生了通过不同端口在同一平台上的VM之间路由VM间通信流量的潜在可能,从而致使进一步通过外部交换机路由流量。
图4a示出这种情况的示例。在这种常规的平台配置中,通道绑定驱动程序422-1和422-2已经替换了图4的过滤(filtered)通道绑定驱动程序400-1和400-2,同时HW邮箱402已经被移除。同样,VMM 404的阴影已经被变亮以便示出当采用通过SR-IOV实现的直接连接时VMM被绕过了。
图4a进一步示出VM1和VM2之间的通信流路径。VM1发起通信,其中通道绑定驱动程序422-1选择采用VF驱动程序0.1用于流出通信。因此,使用与物理功能0相关联的虚拟功能0.1。这导致将端口0用于流出通信。同时,VM2被配置成用于使用端口1接收下一个(即,异步的)流入通信,这是通过使用VF驱动程序1.2、虚拟功能1.2、以及物理功能1促成的。结果是,通信必须通过交换机203从端口0流出到达端口1,从而为通信流增加了延迟。
为了清除通过外部交换机在同一平台上的VM之间路由通信的可能,由过滤(filtered)通道绑定驱动程序400-1和400-2使用的过滤操作,结合HW邮箱402中的VLAN网络端口到VF驱动程序地址映射信息,确保同一平台上的VM之间的通信采用同一物理端口。进一步详细地,标识用于访问每个网络端口信息的VF驱动程序的VLAN网络端口到VF驱动程序映射信息被保持在HW邮箱402中。这种网络端口到VF驱动程序的映射信息由过滤通道绑定驱动程序400-1和400-2所共享,从而允许以确保单个物理端口用于VM之间的通信的方式智能地路由VM间流量。
例如,在图4b中示出的配置中,确保从VM1到VM2的任何通信通过端口1。通过符号420和422描绘路由配置的效果,从而表明VF驱动程序0.1和VF驱动程序0.2的使用被配置成不可用,因此禁用虚拟功能0.1和虚拟功能0.2(如由符号424所描绘的)。结果是,以太网端口0不可用于路由,从而致使VM1和VM2之间的所有通信被路由到以太网端口1。进而,虚拟以太网桥和分类器416被配置成用于执行通信回送功能,从而使得被路由到同一端口的VM之间的通信被内部地回送,而不是从该端口发送流出。这提供了延迟的显著降低并且增强了同一平台上的VM之间的通信带宽。
在图4和图4b中示出的示例性平台配置中,仅示出了两个VM和两个网络端口。然而,这是为了简明和清晰从而更好地理解用于实现平台组件的原理和教导,并且不是限制性的。总体上,这些原理和教导可应用于采用VM可通过相应的VF驱动程序访问的两个或更多个VM以及两个或更多个物理网络端口的平台。
某些实施例的另一方面允许通过软件接口调用用户发起的(即,手动的)故障转移过程,软件接口诸如为VMM监视器或允许访问VMM或管理程序的其他用户接口。这种手动故障转移对于确认设计以及验证用于促成运行时故障转移(其是响应于检测到失效组件或接口而发起的)的组件的正确操作而言是有用的。用户发起的故障转移的另一个场景是其中操作员需要使网络之一离线的冗余系统的例程维护。
图5示出用于支持用户发起的故障转移的示例性平台配置。如所描绘的,图5中的各种软件和硬件组件类似于在图4、图4a和图4b中示出的那些,其中,共享相同参考标号的组件执行类似的功能。在一个实施例中,用于实现手动故障转移的平台设施包括硬件(HW)邮箱500、用户发起的故障转移接口502、以及PF驱动程序506-1和506-2。
图5中示出的故障转移处理结果对应于端口0的模拟故障,从而导致对于涉及VM1和VM2的所有通信故障转移到端口1。由用户通过用户发起的故障转移接口502发起该过程。作为响应,PF驱动程序506-1同时从一个物理端口向所有VF驱动程序发信号(例如,对应于与端口0相关联的虚拟功能0.1和0.2的VF驱动程序0.1和0.2),以便向CBD422-1和422-2告知端口0链路故障事件。每个CBD通过切换到可应用的备用端口(例如,两端口配置中的非失效端口)按正常操作进行响应。在图5a中示出了所得VF驱动程序、虚拟功能以及活动端口配置。可通过使用PF驱动程序506-2以类似的方式发起端口1的模拟故障和所引起的到端口0的故障转移过程。在每次故障转移时,平台VM(例如在本示例中VM1和VM2)将不知道任何可操作的变化,因为每个VM仅将其相关联的通道绑定驱动程序用作其网络端口。
除使得用户能发起故障转移之外,在一个实施例中,用户接口和相关联的组件可被实现以便实现将禁用组件重新启用。这使得能够由用户发起故障转移,并且在验证了相应的故障转移操作的结果或者执行了其他测试之后,允许用户从常规的用户接口将平台返回到其原始可操作状态。
可通过包括在物理或虚拟机上执行的指令的软件和/或固件组件实现上述实施例的方面。因此,本发明实施例可用作或用于支持在某种形式的真实或虚拟机上执行的或以其他方式在机器可读介质上或中实现或完成的指令。机器可读介质包括用于存储或传输机器(例如,计算设备)可读形式的信息的任何机构。例如,机器可读介质可包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光学存储介质;闪存设备等等。
本发明的所展示实施例的以上描述,包括在摘要中描述的内容,不旨在是排他性的或者将本发明限制为所公开的精确形式。尽管在此为了示意性的目的描述了本发明的特定实施例和示例,在本发明的范围内,各种等效修改是可能的,正如本领域普通技术人员将认识到的那样。
可见于以上细节描述对本发明做出这些修改。在以下权利要求中所使用的数据不应被解释为将本发明先知道在说明书和附图中公开的特定实施例。而是,本发明的范围全部由以下权利要求书确定,应当根据权利要求解释的确定条文对其进行解释。

Claims (19)

1.一种用于实现虚拟机VM平台通信回送的方法,包括:
对采用了多个VM和多个网络端口的平台内的网络通信的路由进行配置,其中,第一VM和第二VM中的每一个被配置成用于在正常操作期间经由至少两个网络端口进行发送或接收通信中的至少一项,并且其中,所述第一VM和第二VM之间的网络通信被配置成采用同一网络端口,从而在所述平台内被回送而并不要求通过外部交换机进行路由,不是第一VM和第二VM之间的网络通信被配置成动态分配给所述至少两个网络端口中的任一个,
所述方法进一步包括:
采用过滤通道绑定驱动程序来过滤源自所述平台内的第一VM并且目的地为所述平台内的第二VM的通信,从而使得从所述第一VM到所述第二VM的通信被经由同一网络端口路由。
2.如权利要求1所述的方法,其中,所述至少两个网络端口包括以太网端口。
3.如权利要求1所述的方法,其中,所述过滤通道绑定驱动程序包括Linux通道绑定驱动程序。
4.如权利要求1-3中任一项所述的方法,进一步包括采用共享地址查找表,所述第一VM和所述第二VM的虚拟网络地址被存储在其中。
5.如权利要求4所述的方法,进一步包括采用基于硬件的设施来存储并访问所述共享地址查找表。
6.如权利要求1-3中任一项所述的方法,进一步包括采用虚拟以太网桥来促成通信的回送。
7.如权利要求1-3中任一项所述的方法,其中,所述平台采用虚拟机管理器VMM,并且其中,通信在与VM相关联的虚拟功能驱动程序与所述网络端口之间以绕过所述VMM的方式被路由。
8.如权利要求1-3中任一项所述的方法,其中,所述至少两个网络端口由实现单根虚拟I/O(SR-IOV)的至少一个PCIe网络设备主控。
9.如权利要求1-3中任一项所述的方法,进一步包括配置VM之间的通信路由,从而使得采用与所述多个网络端口相对应的网络协议的VM之间的所有通信在所述平台内被回送。
10.一种用于实现虚拟机VM平台通信回送的系统,包括:
用于对采用了多个VM和多个网络端口的平台内的网络通信的路由进行配置的装置,其中,第一VM和第二VM中的每一个被配置成用于在正常操作期间经由至少两个网络端口进行发送或接收通信中的至少一项,并且其中,所述第一VM和第二VM之间的网络通信被配置成采用同一网络端口,从而在所述平台内被回送而并不要求通过外部交换机进行路由,不是第一VM和第二VM之间的网络通信被配置成动态分配给所述至少两个网络端口中的任一个,
所述系统进一步包括用于采用过滤通道绑定驱动程序来过滤源自所述平台内的第一VM并且目的地为所述平台内的第二VM的通信,从而使得从所述第一VM到所述第二VM的通信被经由同一网络端口路由的装置。
11.如权利要求10所述的系统,其中,所述至少两个网络端口包括以太网端口。
12.如权利要求10所述的系统,其中,所述过滤通道绑定驱动程序包括Linux通道绑定驱动程序。
13.如权利要求10-12中任一项所述的系统,进一步包括用于采用共享地址查找表的装置,所述第一VM和所述第二VM的虚拟网络地址被存储在其中。
14.如权利要求13所述的系统,进一步包括用于采用基于硬件的设施来存储并访问所述共享地址查找表的装置。
15.如权利要求10-12中任一项所述的系统,进一步包括用于采用虚拟以太网桥来促成通信的回送的装置。
16.如权利要求10-12中任一项所述的系统,其中,所述平台采用虚拟机管理器VMM,并且其中,通信在与VM相关联的虚拟功能驱动程序与所述网络端口之间以绕过所述VMM的方式被路由。
17.如权利要求10-12中任一项所述的系统,其中,所述至少两个网络端口由实现单根虚拟I/O(SR-IOV)的至少一个PCIe网络设备主控。
18.如权利要求10-12中任一项所述的系统,进一步包括用于配置VM之间的通信路由,从而使得采用与所述多个网络端口相对应的网络协议的VM之间的所有通信在所述平台内被回送的装置。
19.一种机器可读介质,包括多个指令,响应于在计算设备上被执行,所述指令致使所述计算设备执行根据权利要求1-9中任一项所述的方法。
CN201280073068.1A 2012-06-08 2012-06-08 用于实现虚拟机vm平台通信回送的方法和系统 Active CN104272288B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/041705 WO2013184141A1 (en) 2012-06-08 2012-06-08 Sr-iov failover & aggregation control system to ensure within-physical-port veb loopback

Publications (2)

Publication Number Publication Date
CN104272288A CN104272288A (zh) 2015-01-07
CN104272288B true CN104272288B (zh) 2018-01-30

Family

ID=49712396

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280073068.1A Active CN104272288B (zh) 2012-06-08 2012-06-08 用于实现虚拟机vm平台通信回送的方法和系统

Country Status (3)

Country Link
US (1) US9600309B2 (zh)
CN (1) CN104272288B (zh)
WO (1) WO2013184141A1 (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012151392A1 (en) * 2011-05-04 2012-11-08 Citrix Systems, Inc. Systems and methods for sr-iov pass-thru via an intermediary device
CN104272288B (zh) 2012-06-08 2018-01-30 英特尔公司 用于实现虚拟机vm平台通信回送的方法和系统
US9424219B2 (en) * 2013-03-12 2016-08-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Direct routing between address spaces through a nontransparent peripheral component interconnect express bridge
US9569242B2 (en) * 2014-07-16 2017-02-14 International Business Machines Corporation Implementing dynamic adjustment of I/O bandwidth for virtual machines using a single root I/O virtualization (SRIOV) adapter
US9699060B2 (en) * 2014-12-17 2017-07-04 Vmware, Inc. Specializing virtual network device processing to avoid interrupt processing for high packet rate applications
US9594592B2 (en) * 2015-01-12 2017-03-14 International Business Machines Corporation Dynamic sharing of unused bandwidth capacity of virtualized input/output adapters
US10223159B2 (en) * 2015-02-18 2019-03-05 Red Hat Israel, Ltd. Configuring virtual machine interfaces to provide access to a requested logical network based on virtual function availability and a virtual function capability option
US9921759B2 (en) 2015-10-22 2018-03-20 Red Hat, Inc. Multithreaded memory manager to de-allocate memory objects using private freelists
CN106656539A (zh) * 2015-11-04 2017-05-10 中兴通讯股份有限公司 一种网口状态检测和同步方法及装置
US10248447B2 (en) 2015-11-25 2019-04-02 Red Hat, Inc. Providing link aggregation and high availability through network virtualization layer
US10423437B2 (en) 2016-08-17 2019-09-24 Red Hat Israel, Ltd. Hot-plugging of virtual functions in a virtualized environment
CN106533825A (zh) * 2016-10-25 2017-03-22 广东浪潮大数据研究有限公司 一种基于Linux系统SR‑IOV功能的测试方法
CN107992352A (zh) * 2016-10-26 2018-05-04 阿里巴巴集团控股有限公司 用于虚拟化场景的数据交互方法及设备
US10176061B2 (en) 2016-11-14 2019-01-08 Nutanix, Inc. Handling migration in a virtualization environment
US20190044809A1 (en) 2017-08-30 2019-02-07 Intel Corporation Technologies for managing a flexible host interface of a network interface controller
EP3531633B1 (en) * 2018-02-21 2021-11-10 Intel Corporation Technologies for load balancing a network
CN110752937B (zh) * 2018-07-23 2022-04-15 中兴通讯股份有限公司 一种物理功能复用方法、装置和计算机存储介质
US11201811B2 (en) 2019-03-18 2021-12-14 International Business Machines Corporation Multiport network adapter loopback hardware
US11537548B2 (en) 2019-04-24 2022-12-27 Google Llc Bandwidth allocation in asymmetrical switch topologies
US11265247B2 (en) 2019-05-14 2022-03-01 Red Hat, Inc. Downtime reduction with VF MAC filter programming by hypervisors
CN114008599B (zh) * 2019-06-24 2023-02-17 亚马逊技术股份有限公司 具有自动故障转移的远程控制平面
US11228521B2 (en) * 2019-11-04 2022-01-18 Schweitzer Engineering Laboratories, Inc. Systems and method for detecting failover capability of a network device
CN111866209A (zh) * 2020-07-07 2020-10-30 上海云轴信息科技有限公司 一种为云主机分配网卡的方法与设备
CN114070755B (zh) * 2020-07-29 2023-08-01 中移(苏州)软件技术有限公司 虚拟机网络流量确定方法、装置、电子设备和存储介质
US11809889B2 (en) 2020-08-11 2023-11-07 International Business Machines Corporation Intelligent connection placements on SR-IOV virtual functions
US11775328B2 (en) 2020-08-17 2023-10-03 Red Hat, Inc. Virtual bond for efficient networking of virtual machines
US11928070B2 (en) 2021-04-13 2024-03-12 SK Hynix Inc. PCIe device
KR102570943B1 (ko) 2021-04-13 2023-08-28 에스케이하이닉스 주식회사 PCIe 디바이스 및 그 동작 방법
CN114691558B (zh) * 2021-10-20 2023-06-20 澜起电子科技(上海)有限公司 低延迟重定时器及延迟控制方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7522532B2 (en) * 2003-11-24 2009-04-21 At&T Intellectual Property I, L.P. Layer 2/layer 3 interworking via physical loopback
US7466646B2 (en) 2004-04-22 2008-12-16 At&T Intellectual Property I, L.P. Method and system for automatically rerouting logical circuit data from a logical circuit failure to dedicated backup circuit in a data network
US9043792B1 (en) * 2004-11-17 2015-05-26 Vmware, Inc. Virtual local area network (vlan) coordinator providing access to vlans
US7831820B2 (en) 2005-06-23 2010-11-09 Microsoft Corporation System and method for converting a target computing device to a virtual machine in response to a detected event
US8060875B1 (en) * 2006-05-26 2011-11-15 Vmware, Inc. System and method for multiple virtual teams
US7899848B2 (en) * 2006-11-12 2011-03-01 Dell Products L.P. Methods to model NIC teaming and load balancing
US8037180B2 (en) 2008-08-27 2011-10-11 Cisco Technology, Inc. Centralized control plane appliance for virtual infrastructure
US8990801B2 (en) * 2009-01-30 2015-03-24 Hewlett-Packard Development Company, L.P. Server switch integration in a virtualized system
CN102334112B (zh) 2009-02-27 2014-06-11 美国博通公司 用于虚拟机网络的方法和系统
US8265075B2 (en) * 2009-03-16 2012-09-11 International Business Machines Corporation Method and apparatus for managing, configuring, and controlling an I/O virtualization device through a network switch
US9769016B2 (en) 2010-06-07 2017-09-19 Brocade Communications Systems, Inc. Advanced link tracking for virtual cluster switching
US8989186B2 (en) * 2010-06-08 2015-03-24 Brocade Communication Systems, Inc. Virtual port grouping for virtual cluster switching
WO2012151392A1 (en) * 2011-05-04 2012-11-08 Citrix Systems, Inc. Systems and methods for sr-iov pass-thru via an intermediary device
US20130042238A1 (en) * 2011-08-12 2013-02-14 International Business Machines Corporation Optimized Virtual Function Translation Entry Memory Caching
US9083651B2 (en) * 2011-12-07 2015-07-14 Citrix Systems, Inc. Controlling a network interface using virtual switch proxying
US9092274B2 (en) * 2011-12-07 2015-07-28 International Business Machines Corporation Acceleration for virtual bridged hosts
US20130159572A1 (en) * 2011-12-16 2013-06-20 International Business Machines Corporation Managing configuration and system operations of a non-shared virtualized input/output adapter as virtual peripheral component interconnect root to multi-function hierarchies
CN104272288B (zh) 2012-06-08 2018-01-30 英特尔公司 用于实现虚拟机vm平台通信回送的方法和系统
US9003071B2 (en) * 2013-03-13 2015-04-07 Futurewei Technologies, Inc. Namespace access control in NVM express PCIe NVM with SR-IOV
US9350666B2 (en) * 2013-07-22 2016-05-24 Vmware, Inc. Managing link aggregation traffic in a virtual environment

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
串口监视过滤驱动及应用系统开发;孙雪松;《电脑编程技巧与维护》;20100326(第3期);第1.1节第1、2段 *

Also Published As

Publication number Publication date
WO2013184141A1 (en) 2013-12-12
CN104272288A (zh) 2015-01-07
US20130339955A1 (en) 2013-12-19
US9600309B2 (en) 2017-03-21

Similar Documents

Publication Publication Date Title
CN104272288B (zh) 用于实现虚拟机vm平台通信回送的方法和系统
US10997106B1 (en) Inter-smartNIC virtual-link for control and datapath connectivity
Egi et al. Towards high performance virtual routers on commodity hardware
JP6016984B2 (ja) ソフトウェア確定ネットワークにおける仮想マシンと仮想化コンテナを用いたローカルサービスチェーン
CN104320350B (zh) 用于提供基于信用的流控制的方法及系统
US8776090B2 (en) Method and system for network abstraction and virtualization for a single operating system (OS)
CN103942087B (zh) 虚拟机热迁移方法及相关装置和集群系统
US8144582B2 (en) Differentiating blade destination and traffic types in a multi-root PCIe environment
US20180357086A1 (en) Container virtual switching
US11269801B2 (en) System decoder for training accelerators
CN104025063A (zh) 用于共享网络接口控制器的方法和装置
CN116260776A (zh) 硬件辅助的虚拟交换机
US11949559B2 (en) Composed computing systems with converged and disaggregated component pool
CN109617735A (zh) 云计算数据中心系统、网关、服务器及报文处理方法
CN109739618A (zh) 虚拟机迁移方法及装置
US20210034546A1 (en) Transparent encryption
CN110636139A (zh) 一种云负载均衡的优化方法及系统
Tripathi et al. Crossbow: from hardware virtualized nics to virtualized networks
US11343176B2 (en) Interconnect address based QoS regulation
US11003618B1 (en) Out-of-band interconnect control and isolation
US20220166718A1 (en) Systems and methods to prevent packet reordering when establishing a flow entry
CN107683593A (zh) 网络线卡(lc)与主机操作系统(os)集成
US20220283866A1 (en) Job target aliasing in disaggregated computing systems
CN108885599B (zh) 用于串行附连小型计算机系统接口链路的方法和设备
CN105684378A (zh) 在网络安全装置中高效地复制分组

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant