用于确保物理端口内veb回送的sr-iov故障转移和聚合控制系统的制作方法

文档序号:6498610阅读:196来源:国知局
用于确保物理端口内veb回送的sr-iov故障转移和聚合控制系统的制作方法
【专利摘要】用于产生虚拟机(VM)平台通信回送以及允许用户发起网络端口故障转移的方法、装置及系统。采用VM并且具有VM可访问的多个网络端口的平台中的网络通信被配置成用于被路由,从而使得平台内的VM之间的通信在平台内被回送,因此不要求通过外部交换机进行路由。这是通过动态地强制执行VM间流量以便确保同一物理端口内的内部回送的智能通道绑定驱动程序而促成的。在另一方面,允许用户在采用虚拟机管理器以及多个VM的平台上发起网络端口的故障转移,其中,经更新的配置信息被发送从而禁用与网络端口相关联的虚拟功能(VF)驱动程序。
【专利说明】用于确保物理端口内VEB回送的SR-1OV故障转移和聚合控 制系统

【技术领域】
[0001] 本发明的领域总体上涉及计算机系统,并且更具体地但是非排他地涉及虚拟化环 境中的端口的聚合、路由和故障转移(failover)。

【背景技术】
[0002] 近些年,计算机系统的虚拟化已经快速增长,尤其是在服务器部署和数据中心方 面。常规的方法是,服务器直接在物理硬件资源(诸如CPU、RAM、存储设备(例如硬盘)、 网络控制器、I/O端口等等)上运行操作系统的单个实例。虚拟化方法是,物理硬件资源 用于支持相应的虚拟资源,从而使得多个虚拟机(VM)可在服务器的物理硬件资源上运行, 其中,每个虚拟机包括其自身的CPU分配、存储器分配、存储设备、网络控制器、I/O端口等 等。于是,相同或不同操作系统的多个实例可在多个VM上运行。而且,通过使用虚拟机管 理器(VMM)或"管理程序(hypervisor)",当服务器运行,可动态地分配虚拟资源,从而实现 可在不要求关闭服务器的情况下添加、关闭、或重设VM实例。这为服务器使用提供了更大 的灵活性以及更好地使用服务器处理资源,尤其是对于多核处理器和/或多处理器服务器 而Η。
[0003] 服务器架构的重要方面是对增强的可靠性、可用性、以及可服务性(RAS)的设计。 RAS服务器的目标是诸如要求RAS特征的服务器农场和数据中心等环境。为了支持这些特 征,RAS服务器硬件和软件都被设计成用于响应于检测到系统故障而支持冗余和自动故障。 这包括对冗余物理端口的支持。
[0004] 如上所述,虚拟化增加了服务器灵活性和使用率。为了将二者最大化,部署将通常 使用大多数或全部可用物理端口,不管这些端口被架构化为主端口还是备用端口(用于在 主端口故障的情况支持故障转移)。当采用虚拟化时,这些物理端口的聚合以及故障转移使 用变得更加复杂,因为虚拟化端口由虚拟化软件映射到物理端口。进一步详细地,典型的虚 拟化实现方式是虚拟化软件包括在物理硬件和在虚拟机上运行的操作系统之间的薄层。因 此,如果物理资源变得不可用,通过该物理资源实现的相应的虚拟服务可同样变得不可用。
[0005] 附图简要说明
[0006] 当结合附图时,前述方面和本发明的许多伴随优势将变得更加容易认识到,正如 通过参照以下详细说明更好地理解到的那样,其中,贯穿各种视图,类似的参考标号指代类 似的部件,除非另外指明。
[0007] 图1是示出被配置成用于支持访问多个PCIe设备的通用虚拟化平台的框图;
[0008] 图2是示出在机架服务器中的服务器上运行的多个VM之间的通信的高级视图的 组合式示意图和框图;
[0009] 图2a是示出机架服务器中的VM之间的通信的图2的抽象版本;
[0010] 图3是示出通用SR-I0V配置平台的示例的框图;
[0011] 图4是示出动态地强制执行VM间流量以便确保同一物理端口内的内部回送的智 能通道绑定驱动程序的实现方式的框图;
[0012] 图4a是采用经由分离的端口路由VM间流量(这需要使用外部交换机)的常规通 道绑定驱动器的平台配置的框图;
[0013] 图4b是在流量路由已经被重新配置成用于使用同一端口在第一和第二VM之间路 由流量之后的图4的平台配置的框图;
[0014] 图5是包括用于支持用户发起的端口故障转移的软件接口的平台配置的框图;以 及
[0015] 图5a是示出端口故障转移操作已经完成之后的平台配置的框图。
[0016] 实施方案描述
[0017] 在此描述了用于产生VM平台通信回送以及允许用户发起的网络端口故障转移的 方法、装置及系统的实施例。在以下说明中,列出了许多特定细节以便提供本发明实施例的 透彻理解。然而,本领域普通技术人员将认识到本发明可在没有这些特定细节中的一项或 多项或者在具有其他方法、组件、材料等等的情况下实践。在其他情况下,未详细地示出或 描述公知的结构、材料、或操作以便避免混淆本发明的方面。
[0018] 贯穿本说明书对"一个实施例"或"实施例"的引用是指在此结合该实施例所述的 特定特征、结构或特性包括在本发明的至少一个实施例中。因此,贯穿本说明书,短语"在一 个实施例中"或"在实施例中"在各种地方的出现并非必然全部指代相同的实施例。而且, 特定特征、结构或特性可在一个或多个实施例中以任意适当的方式组合。
[0019] 为了清晰,在此,附图中的单个组件还可通过其在附图中的标签而不是通过具体 的参考标号进行指代。附加地,指代具体类型的组件(而非具体的组件)的参考标号可以 被显示为"(TYP)"(意思是"典型的")加上随后的参考标号。将理解,出于简明和清晰的 目的,这些组件的配置将是可存在但未在附图中示出的类似组件的典型。
[0020] 图1示出被配置成用于支持根据外围组件互连(PCI)快速基础规范访问多个PCIe 设备的通用虚拟化平台。在虚拟化平台的中心处的是虚拟化中间程序(VI)100,该中间程 序可通常被实现为VMM或管理程序以及多个VM。VI 100对硬件资源进行抽象,如由处理器 102和存储器104所示例化的,以便通过其自身的虚拟资源集合展现多个系统映像(SI) 106 中的每一个。可用于给定SI 106的实际硬件资源(用于实现相应的虚拟资源)可基于VI 1〇〇所实现的工作负载或其他策略而不同。SI包括软件,诸如用于执行应用或受信任服务 (例如共享或非共享I/O设备驱动器)的操作系统。
[0021] 除处理器和存储器资源之外,VI 100可对包括用于支持PCIe设备的资源的其他 资源进行抽象。这些在图1中被描绘为PCIe根复合体110、PCIe根端口 112-1和112-2、 交换机114、以及PCIe设备116-1、116-2、和116-3。总体上,每个平台可支持一个或多个 根复合体,其中每个根复合体有一个或多个根端口。每个根端口表示按照PCI快速基础规 范的单独的层次(hierarchy)。每个层次被称作单个根层次,从而将其区别于根据多根I/O 虚拟技术定义的多层次技术
[0022] 图2示出在机架服务器200-1中的服务器上运行的多个VM之间的通信的高级视 图。机架服务器200-1是在高密度服务器农场和数据中心中实现的服务器的典型,并且包 括服务器202-1、202-2、202-3、和202-4安装在其中的机架,其中每个服务器被安装在机架 中的相应的槽道内。这些服务器通过以太网线缆等等与网络交换机203通信耦合。
[0023] 图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。
[0024] 通常,网络212是单独的网络,诸如LAN、WAN、或内部网,或者可以是LAN 208的一 部分。附加地,路由器210可连接到其他网络设备,以便促成与其他网络(未示出)(包括 互联网)的连接。
[0025] 如上所述,虚拟化中间程序层在SI (在VM上运行)和平台硬件之间提供抽象。在 图2的服务器配置中,所有流入和流出I/O操作必须由虚拟化软件组件(为了简明,总体上 被描绘为VMM)监听并处理,从而增加了显著的平台资源和延迟开销。而且,因为网络端口 由VM共享,瓶颈可来自对共享物理资源的竞争,从而致使数据包处理延迟增加。
[0026] 图2a示出图2的抽象化版本,其中,仅仅示出了虚拟机、VMM和LAN208以便更好 地示出由同一机架服务器中的服务器主控的VM之间的通信路径。需要注意,VM之间的任 何通信被路由通过服务器外部的网络设备(例如用于LAN 208的交换机203-1)。这适用于 同一服务器(在此被称为VM间流量(traffic))中的VMM之间的基于网络协议的通信,如图 2a中的VM 1-2和VM 1-4之间的连接路径214和216所示出的。
[0027] 为了降低与使用虚拟化相关联的资源开销,PCI-SIG?开发了单根虚拟1/ O(SR-IOV)规范。SR-I0V的使用提供了优于常规虚拟化中间程序方法的许多益处,包括 提供以下能力:清除主要数据移动动作(例如DMA、存储器空间访问、中断处理等等)中 的VI参与;清除每个I/O操作的VI监听和处理;提供标准化方法来通过单根PCI管理器 (SR-PCM)控制SR-I0V资源配置和管理;提供以下能力:降低硬件要求以及与在设备内配 给可能非常多的I/O功能相关联的成本;以及提供以下能力:将SR-I0V与其他I/O虚拟化 技术(诸如地址转换服务(ATS)、地址转换和保护表(ATPT)技术、以及中断重映射技术)进 行整合以便创建鲁棒的、完整的I/O虚拟化解决方案。
[0028] 图3示出通用SR-I0V配置平台的示例。除以上参照图1的通用平台配置描述的元 素之外,在图3中描绘的SR-I0V通用平台配置进一步包括单根PCI管理器(SR-PCM)300、 转换代理(ΤΑ) 302、以及地址转换和保护表(ATPT) 304。附加地,PCIe设备被重配置成用于 支持SR-I0V操作。如所描绘的,PCIe设备306-1、306-2、以及306-3各自包括地址转换高 速缓存(ATC) 308、物理功能(PF) 310、以及多个虚拟功能(VF) 312。
[0029] SR-PCM 300包括负责配置SR-I0V能力、管理物理功能和虚拟功能、以及处理相 关联的错误事件和总体设备控制(诸如功率管理和热插拔服务)的软件。如所示,其逻辑 地位于VI层中。
[0030] ΤΑ 302包括负责将PCIe事务中的地址转换为相关联的平台物理地址的硬件或硬 件与软件的组合。TA可包含地址转换高速缓存以便加速转换表访问。TA还可支持PCI - SIG地址转换服务规范,其允许PCIe功能获得对相关联的存储器的DMA访问的地址转换先 验知识。TA的使用在SR-I0V实现中是可选的。
[0031] ATPT 304包含由TA访问以便处理PCIe请求(DAM读、DMA写)或中断请求的地 址转换集合。在PCIe中,中断被视为存储器写操作。通过PCIe事务中所包含的请求者标 识符和地址的组合,中断可被路由到对相关联的I/O功能透明的任何目标(例如处理器内 核)。通过包含在PCIe事务中的路由ID和地址的组合转换来DMA读和写请求。ATPT的使 用在SR-I0V实现中是可选的。
[0032] ATC 308可存在于平台中的两个位置:在可被集成到根复合体中或位于其上的TA 中;或者在PCIe设备中,诸如图3中所描绘的。在根复合体中,ATC使加速的转换查找得以 出现。在PCIe设备中,通过ATS技术填充ATC。表明它们包含经转换地址的PCIe事务可绕 过平台的ATC,以便在不损害与ATPT技术相关联的益处的情况下改善性能。ATC的使用在 SR-I0V实现中是可选的。
[0033] PF 310是支持SR-I0V能力并且可由SR-PCM、VI、或SI访问的PCIe功能(按照 PCI快速基础规范)。VF 312是可由SI直接访问的"轻量级"PCIe功能(按照SR-I0V规 范)。在抽象水平,VF作为PF的虚拟实例进行操作,从而使得从SI视角看,VF像是PF的 实例。最低程度地,与功能的主要数据移动相关联的资源可用于SI。VF可串行地由不同的 SI共享,例如VF可被分配给一个SI并且然后被重置并且分配给另一个SI。VF可以可选地 从一个PF迁移到另一个PF。与PF相关联的所有VF必须与PF具有相同的设备类型,例如 相同的网络设备类型或相同的存储设备类型。在一个实施例中,可存在每物理功能高达63 个虚拟功能。
[0034] 在使用单根虚拟I/O的虚拟化环境中,虚拟机可实现软件合作驱动程序(诸如 Linux通道绑定驱动程序(CBD))以便实现多个物理以太网端口之间的聚合以及故障转移。 每个VM可运行CBD的单独的迭代,以便绑定来自两个不同的物理端口的两个或更多个虚拟 功能(VF)。为了确保VM到VM流量被路由通过以太网控制器的内部虚拟以太网桥(VEB)交 换机,可能需要将流量约束在来自同一物理端口的VF之间。然而,因为每个VM中的CBD异 步地运行,在任何给定时间,VM间流量可被从一个物理端口发送到不同的物理端口。因此, 使用常规的CBD不能保证能够将VM间流量路由通过同一物理端口。对于要求回送的系统 而言(为了低延迟,并且为了避免要求外部交换机),这是不可接受的。
[0035] 解决前述问题的一种方法是在以太网控制器中提供广泛的硬件支持,以便跨物理 端口扩展VEB能力。然而,这种方法是非常有限制性的,要求附加的成本并且提供的灵活性 有限。
[0036] 根据本发明实施例的方法,通过使用智能通道绑定驱动程序(Intelligent Channel 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 间数据交换实现了这一点,同时仍然保持基于软件的配置共享方法的灵活性。
[0037] 在图4中示出了前述方法的示例性平台配置实现方式。在图示的顶部是一对虚拟 机VM1和VM2。VM1位于经过滤通道绑定驱动程序400-1之上,该驱动程序400-1还被布置 在VM1和一对VF驱动程序0. 1和1. 1之间。采取类似的配置,VM2位于经过滤通道绑定驱 动程序400-2之上,该驱动程序400-2还被布置在VM2和一对VF驱动程序0. 2和1. 2之间。 硬件(HW)邮箱402由经过滤通道绑定驱动程序400-1和400-2共享,并且被描绘为在虚拟 机管理器404之上,该管理器404包括一对PF驱动程序406-1和406-2。
[0038] 图4中图示的下半部分包括一对具有SR-I0V块408和410的以太网功能。带 SR-I0V块408的以太网功能包括一对虚拟功能0. 1和0. 2、物理功能0、虚拟以太网桥和分 类器412、以及以太网端口 414 (也被称为端口 0)。带SR-I0V块410的以太网功能被类似 地配置并且包括一对虚拟功能1. 1和1. 2、物理功能1、虚拟以太网桥和分类器416、以及以 太网端口 418 (也被称为端口 1)。
[0039] 通过可应用的互连(其可被总体上描绘为互连块420)促成平台内的物理组件之 间的通信。虚拟组件之间的连接路径还被描绘为双头箭头;将理解,这些连接实际上是在 主控虚拟组件的物理硬件组件之间以及在使用可应用的协议的物理互连结构之上实现的。 在一个实施例中,互连结构包括多个PCIe链接。在一个实施例中,互连结构包括英特尔? 直接I/O虚拟技术(VT-d)互连以及相关联的功能,诸如通过直接指派实现的增强型I/O性 能。VT-d和SR-I0V的使用支持组件之间的直接连接,从而使得可以用绕过VMM的方式实现 组件之间的通信。
[0040] 图4的平台配置的方面表示用于RAS服务器的典型的平台架构。通过使用用于以 太网功能的冗余物理端口促成可靠性和可用性方面一如果一个失效,另一个仍可用于支持 端口故障转移。然而,不是将物理端口之一仅用作故障转移(即,备份)端口,而是在正常 操作期间使用两个物理端口。为了促成使用两个端口,虚拟功能和VF驱动程序中也存在冗 余性,如所示。类似地,存在物理功能和PF驱动程序的冗余性。附加地,使用多个端口支持 了可扩展性并且增强了性能。
[0041] 进一步详细地,用于VM1的VF驱动程序0. 1用于促成与以太网端口 0相对应的虚 拟功能〇. 1的操作,而用于VM1的VF驱动程序1. 1用于促成与以太网端口 1相对应的虚拟 功能〇. 1的操作。类似地,用于VM2的VF驱动程序0. 2用于促成与以太网端口 0相对应的 虚拟功能〇. 2的操作,而用于VM2的VF驱动程序1. 2用于促成与以太网端口 1相对应的虚 拟功能1. 2的操作。
[0042] Linux通道绑定的使用使得可以聚合与以太网端口 0和端口 1相关联的虚拟资源, 从而使得当以太网端口 〇和端口 1两者是可操作的时,VM的给定通信操作可被动态地分配 给以太网端口 0或端口 1中的任意一个。尽管这种动态分配是有利的,其还产生了通过不 同端口在同一平台上的VM之间路由VM间通信流量的潜在可能,从而致使进一步通过外部 交换机路由流量。
[0043] 图4a示出这种情况的示例。在这种常规的平台配置中,通道绑定驱动程序422-1 和422-2已经替换了图4的经过滤通道绑定驱动程序400-1和400-2,同时HW邮箱402已 经被移除。同样,VMM 404的阴影已经被变亮以便示出当采用通过SR-I0V实现的直接连接 时VMM被绕过了。
[0044] 图4a进一步示出VM1和VM2之间的通信流路径。VM1发起通信,其中通道绑定驱 动程序422-1选择采用VF驱动程序0. 1用于流出通信。因此,使用与物理功能0相关联的 虚拟功能0.1。这导致将端口 〇用于流出通信。同时,VM2被配置成用于使用端口 1接收下 一个(即,异步的)流入通信,这是通过使用VF驱动程序1. 2、虚拟功能1. 2、以及物理功能 1促成的。结果是,通信必须通过交换机203从端口 0流出到达端口 1,从而为通信流增加 了延迟。
[0045] 为了清除通过外部交换机在同一平台上的VM之间路由通信的可能,由经过滤通 道绑定驱动程序400-1和400-2使用的过滤操作,结合HW邮箱402中的VLAN网络端口到 VF驱动程序地址映射信息,确保同一平台上的VM之间的通信采用同一物理端口。进一步详 细地,标识用于访问每个网络端口信息的VF驱动程序的VLAN网络端口到VF驱动程序映射 信息被保持在HW邮箱402中。这种网络端口到VF驱动程序的映射信息由过滤通道绑定驱 动程序400-1和400-2所共享,从而允许以确保单个物理端口用于VM之间的通信的方式智 能地路由VM间流量。
[0046] 例如,在图4b中示出的配置中,确保从VM1到VM2的任何通信通过端口 1。通过符 号420和422描绘路由配置的效果,从而表明VF驱动程序0. 1和VF驱动程序0. 2的使用 被配置成不可用,因此禁用虚拟功能〇. 1和虚拟功能〇. 2 (如由符号424所描绘的)。结果 是,以太网端口 0不可用于路由,从而致使VM1和VM2之间的所有通信被路由到以太网端口 1。进而,虚拟以太网桥和分类器416被配置成用于执行通信回送功能,从而使得被路由到 同一端口的VM之间的通信被内部地回送,而不是从该端口发送流出。这提供了延迟的显著 降低并且增强了同一平台上的VM之间的通信带宽。
[0047] 在图4和图4b中示出的示例性平台配置中,仅示出了两个VM和两个网络端口。然 而,这是为了简明和清晰从而更好地理解用于实现平台组件的原理和教导,并且不是限制 性的。总体上,这些原理和教导可应用于采用VM可通过相应的VF驱动程序访问的两个或 更多个VM以及两个或更多个物理网络端口的平台。
[0048] 某些实施例的另一方面允许通过软件接口调用用户发起的(即,手动的)故障转 移过程,软件接口诸如为VMM监视器或允许访问VMM或管理程序的其他用户接口。这种手 动故障转移对于确认设计以及验证用于促成运行时故障转移(其是响应于检测到失效组 件或接口而发起的)的组件的正确操作而言是有用的。用户发起的故障转移的另一个场景 是其中操作员需要使网络之一离线的冗余系统的例程维护。
[0049] 图5示出用于支持用户发起的故障转移的示例性平台配置。如所描绘的,图5中 的各种软件和硬件组件类似于在图4、图4a和图4b中示出的那些,其中,共享相同参考标 号的组件执行类似的功能。在一个实施例中,用于实现手动故障转移的平台设施包括硬件 (HW)邮箱500、用户发起的故障转移接口 502、以及PF驱动程序506-1和506-2。
[0050] 图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的模拟 故障和所引起的到端口 〇的故障转移过程。在每次故障转移时,平台VM(例如在本示例中 VM1和VM2)将不知道任何可操作的变化,因为每个VM仅将其相关联的通道绑定驱动程序用 作其网络端口。
[0051] 除使得用户能发起故障转移之外,在一个实施例中,用户接口和相关联的组件可 被实现以便实现将禁用组件重新启用。这使得能够由用户发起故障转移,并且在验证了相 应的故障转移操作的结果或者执行了其他测试之后,允许用户从常规的用户接口将平台返 回到其原始可操作状态。
[0052] 可通过包括在物理或虚拟机上执行的指令的软件和/或固件组件实现上述实施 例的方面。因此,本发明实施例可用作或用于支持在某种形式的真实或虚拟机上执行的或 以其他方式在机器可读介质上或中实现或完成的指令。机器可读介质包括用于存储或传输 机器(例如,计算设备)可读形式的信息的任何机构。例如,机器可读介质可包括只读存储 器(ROM);随机存取存储器(RAM);磁盘存储介质;光学存储介质;闪存设备等等。
[0053] 本发明的所展示实施例的以上描述,包括在摘要中描述的内容,不旨在是排他性 的或者将本发明限制为所公开的精确形式。尽管在此为了示意性的目的描述了本发明的特 定实施例和示例,在本发明的范围内,各种等效修改是可能的,正如本领域普通技术人员将 认识到的那样。
[0054] 可见于以上细节描述对本发明做出这些修改。在以下权利要求中所使用的数据不 应被解释为将本发明先知道在说明书和附图中公开的特定实施例。而是,本发明的范围全 部由以下权利要求书确定,应当根据权利要求解释的确定条文对其进行解释。
【权利要求】
1. 一种方法,包括: 对采用了多个虚拟机(VM)和多个网络端口的平台内的网络通信的路由进行配置,其 中,第一 VM和第二VM中的每一个被配置成用于进行经由至少两个网络端口发送或接收通 信中的至少一项,并且其中,所述第一 VM和第二VM之间的网络通信被配置成用于在所述平 台内被回送。
2. 如权利要求1所述的方法,其中,所述至少两个网络端口包括以太网端口。
3. 如前述权利要求中任一项所述的方法,进一步包括采用经过滤通道绑定驱动程序来 过滤源自所述平台内的第一 VM并且目的地为所述平台内的第二VM的通信,从而使得从所 述第一 VM到所述第二VM的通信被经由同一网络端口路由。
4. 如权利要求3所述的方法,其中,所述经过滤通道绑定驱动程序包括Linux通道绑定 驱动程序。
5. 如前述权利要求中任一项所述的方法,进一步包括采用共享地址查找表,所述第一 VM和所述第二VM的虚拟网络地址被存储在其中。
6. 如权利要求5所述的方法,进一步包括采用基于硬件的设施来存储并访问所述共享 地址查找表。
7. 如前述权利要求中任一项所述的方法,进一步包括采用虚拟以太网桥来促成通信的 回送。
8. 如前述权利要求中任一项所述的方法,其中,所述平台采用虚拟机管理器(VMM),并 且其中,通信在与VM相关联的虚拟功能驱动程序与所述网络端口之间以绕过所述VMM的方 式被路由。
9. 如前述权利要求中任一项所述的方法,其中,所述至少两个网络端口由实现单根虚 拟I/0(SR-I0V)的至少一个PCIe网络设备主控。
10. 如前述权利要求中任一项所述的方法,进一步包括配置VM之间的通信路由,从而 使得采用与所述多个网络端口相对应的网络协议的VM之间的所有通信在所述平台内被回 送。
11. 一种被配置成用于实现与前述权利要求中任一项相对应的方法的计算机系统。
12. 至少一种机器可读介质,包括多个指令,响应于在计算设备上被执行,所述指令致 使所述计算设备执行根据权利要求1至10中任一项所述的方法。
13. -种在采用主控多个虚拟机(VM)的虚拟机管理器(VMM)并且具有多个网络端口的 计算机平台上实现的方法,所述方法包括: 展现用户接口以允许用户发起网络端口故障转移;以及 响应于此, 发送经更新的配置信息从而禁用与为其发起网络端口故障转移的网络端口相关联的 虚拟功能(VF)驱动程序。
14. 如权利要求13所述的方法,其中,所述用户接口是通过VMM软件接口实现的。
15. 如权利要求13或14中任一项所述的方法,进一步包括采用与所述经禁用网络端口 相关联的物理功能驱动程序以便发送经更新的配置信息以致使所述VF驱动程序中的每一 个被禁用。
16. 如权利要求13至15中任一项所述的方法,进一步包括: 维护网络端口到VF驱动程序映射信息,该映射信息为每个网络端口标识出用于访问 所述网络端口的VF驱动程序;以及 采用所述网络端口到VF驱动程序映射信息标识出哪些VF驱动程序要被禁用。
17. 如权利要求13至16中任一项所述的方法,进一步包括在基于硬件的组件中维护所 述网络端口到VF驱动程序映射信息。
18. 如权利要求13至17中任一项所述的方法,进一步包括: 展现用户接口从而允许用户选择性地重新启用被禁用的网络端口;以及 响应于此, 发送经更新的配置信息从而重新启用与被选择为重新启用的被禁用网络端口相关联 的虚拟功能(VF)驱动程序。
19. 一种被配置成用于实现与权利要求13至18中任一项相对应的方法的计算机系统。
20. 至少一种机器可读介质,包括多个指令,响应于在计算设备上被执行,所述指令致 使所述计算设备执行根据权利要求13至18中任一项所述的方法。
【文档编号】G06F9/44GK104272288SQ201280073068
【公开日】2015年1月7日 申请日期:2012年6月8日 优先权日:2012年6月8日
【发明者】J·鲍尔, J·R·赫恩, W·艾哈迈德 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1