首页> 中国专利> 用于支持无限带网络中的虚拟机的动态迁移的系统和方法

用于支持无限带网络中的虚拟机的动态迁移的系统和方法

摘要

一种系统和方法可以支持在网络中的虚拟机动态迁移。多个主机可以经由网络互连。每个主机包含一个或多个虚拟机。至少一个虚拟机操作来执行从第一主机到第二主机的动态迁移。附接到队列对(QP)的虚拟功能可以由主机上的主机信道适配器(HCA)支持。

著录项

  • 公开/公告号CN104094231A

    专利类型发明专利

  • 公开/公告日2014-10-08

    原文格式PDF

  • 申请/专利权人 甲骨文国际公司;

    申请/专利号CN201380008060.1

  • 发明设计人 倪威麟;B·D·约翰森;

    申请日2013-03-25

  • 分类号G06F9/48(20060101);G06F9/50(20060101);

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人李晓芳

  • 地址 美国加利福尼亚

  • 入库时间 2023-12-17 02:34:24

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-12-01

    授权

    授权

  • 2014-10-29

    实质审查的生效 IPC(主分类):G06F9/48 申请日:20130325

    实质审查的生效

  • 2014-10-08

    公开

    公开

说明书

版权通知

本专利文件的公开的一部分包含受版权保护的材料。版权所有者 不反对任何人对专利文件或专利公开的传真复制,因为它出现在专利 商标局专利文档或记录中,但在别的方面保留所有任何版权。

技术领域

本发明一般涉及计算机系统,并且具体地涉及支持计算机系统虚 拟化。

背景技术

随着引入大型云计算架构,与传统网络和存储相关联的执行和管 理瓶颈已经变为显著问题。无限带(IB)技术已被视为增加的部署作 为用于云计算结构的基础。这是本发明的实施例意欲解决的一般领 域。

发明内容

这里描述的是用于支持网络中的虚拟机动态迁移的系统和方法。 多个主机可以经由网络互连。每个主机包含一个或多个虚拟机。至少 一个虚拟机操作来执行从第一主机到第二主机的动态迁移。连接到队 列对(QP)的虚拟功能可以由主机上的主机信道适配器(HCA)支 持。

附图说明

图1示出根据本发明的实施例的在虚拟化环境中虚拟机的动态 迁移的例示。

图2示出了根据本发明的实施例的用于支持在虚拟化环境中虚 拟机的动态迁移的示范性流程图。

图3示出根据本发明的实施例的进程ID(PID)到队列对数 (QPN)的转换表的例示。

图4示出了根据本发明的实施例的重新分配位置相关通信资源 的例示。

图5示出根据本发明的实施例的利用确定性状态来暂停并重新 开始队列对(QP)的例示。

图6示出根据本发明的实施例的利用自下向上方法的虚拟机的 动态迁移的例示。

图7示出根据本发明的实施例的在迁移之后重新激活虚拟机的 例示。

图8示出根据本发明的实施例的在虚拟机的动态迁移之前两个 队列对(QP)的例示。

图9示出根据本发明的实施例的在虚拟机的动态迁移之后通信 中的两个队列对(QP)的例示。

具体实施方式

本发明通过示例方式而不是通过限制方式来在附图的图示中示 出,其中相似的参考指示相似的元件。应当注意,在此公开中的参考 “一”或“一个”实施例或“一些”实施例不一定是指相同的实施例, 并且此类参考意味着至少一个。

下述发明的描述使用无限带(IB)网络作为高性能网络的示例。 对本领域技术人员来说,显而易见可以无限制地使用其它类型的高性 能网络。同样,下述发明的描述使用Xen虚拟化模型作为虚拟化模型 的示例。对本领域技术人员来说,显而易见可以无限制地使用其它类 型的虚拟化模型。

这里描述的是可以支持网络中虚拟机(VM)动态迁移的系统和 方法。

根据本发明的实施例,虚拟化可以有益于在云计算中高效的资源 利用和弹性的资源分配。动态迁移可以通过以应用透明的方式在物理 服务器之间移动虚拟机(VM)来优化资源使用。因此,虚拟化可以 实现资源的强化、按需提供、和通过动态迁移的弹性。

无限带(IB)架构

IB架构是串行点对点全双工技术。IB网络可以被称为子网,其 中子网由利用交换机和点到点链路互连的一组主机构成。IB子网可以 包括至少一个子网管理器(SM),其负责初始化和提出网络,包括 子网中的所有交换机、路由器和主机信道适配器(HCA)的配置。

IB支持丰富的传输服务集合,以便提供远程直接存储器存取 (RDMA)和传统的发送/接收语义。独立于使用的传输服务,IB HCA 利用队列对(QP)进行通信。QP在通信建立期间创建,并且可以具 有诸如QP号码、HCA端口、目的地LID、队列大小、和提供的传输 服务之类的初始属性集合。HCA可以处理许多QP,每个QP由一对 队列构成,诸如发送队列(SQ)和接收队列(RQ),并且存在一个 这样的对呈现在参与通信的每个终端节点处。发送队列保存要被传送 到远程节点的工作请求,而接收队列保存关于对从远程节点接收的数 据做什么的信息。除了QP之外,每个HCA具有与发送和接收队列 的集合相关联的一个或多个完成队列(CQ)。CQ保存用于发布给发 送和接收队列的工作请求的完成通知。即使通信的复杂度对用户隐 藏,QP状态信息也被保存在HCA中。

输入/输出(I/O)虚拟化

I/O虚拟化(IOV)可以通过允许VM访问下层物理资源提供I/O 的可用性。存储业务和服务器间通信的组合施加增加的负载,可能压 垮单个服务器的I/O资源,在它们等待数据时导致积压和空闲的处理 器。随着I/O请求的号码增加,IOV可以提供可用性;并且可以改善 (虚拟化的)I/O资源的性能、可分级性和灵活性以匹配在现代CPU 虚拟化中看到的性能水平。

可以存在不同类型IOV技术,诸如仿真、半虚拟化、直接分配 (DA)、和单一根-I/O虚拟化(SR-IOV)。在这些IOV技术当中, SR-IOV可以扩展快速PCI(PCIe)规范,意味着允许从多个VM直 接存取单个物理设备同时维持接近固有性能。因此,SR-IOV可以提 供良好性能和可分级性。

SR-IOV允许PCIe设备暴露可以通过将一个虚拟设备分配到每 个访客在多个访客之间共享的多个虚拟设备。每个SR-IOV设备具有 至少一个物理功能(PF)和一个或多个关联的虚拟功能(VF)。PF 是由虚拟机监控器(VMM)、或超控制器控制的正常PCIe功能,而 VF是轻型PCIe功能。每个VF具有它自己的基局部址(BAR)并且 被分配有使得I/O存储器管理单元(IOMMU)在业务流与不同的VF 之间进行区分的唯一的请求者ID。IOMMU也在PF与VF之间应用 存储器和中断转换。

可以存在不同类型的SR-IOV模型,例如共享端口模型和虚拟交 换机模型。在共享端口模型中,所有VF可以共享单个端口地址和单 个QP名称空间,并且仅仅单个HCA端口暴露于网络。在虚拟交换 机模型中,每个VF是包含唯一端口地址和唯一QP名称空间的虚拟 HCA,并且用于设备上的每个VF的一个HCA暴露于网络。因此, 虚拟交换机模型可以简化具有多个复杂硬件的IOV。

SR-IOV能力设备的使用可以输出接近固有的性能和改善的可 分级性。另一方面,SR-lOV可以不是与动态迁移和检查点/重新开始 机制完全不兼容的。

动态迁移

根据本发明的实施例,虚拟化环境允许虚拟机的动态迁移,即在 不干扰运行在VM上的应用的情况下将运行的VM从一个机器移动到 另一个机器。

图1示出根据本发明的实施例的在虚拟化环境中虚拟机的动态 迁移的例示。如图1所示,多个主机,例如主机A-B 101-102,可以 经由IB网络100互连。VM,例如VMa 103可以从例如主机A 101 的主机迁移到例如主机B 102(如VMa 104)的另一个主机。

还如图1所示,每个主机可以包括使用HCA的VMM。例如, 主机A 101中的VMM A 115使用HCA 117并且主机B 102中的VMM  B 116使用HCA 118。另外,VMa 103可以与VF,例如VF 105连接 VF连接到队列对,例如QPa 107。

从VMM角度,三阶段迁移进程可以被执行以将与VF 105连接 的VMa 103从主机A 101迁移到主机B 102。

阶段1:将VF 105从VMa 103分离。

阶段2:将VMa 103从主机A 101迁移到主机B 102(如VMa 104)。

阶段3:将新的VF 106连接到VMa 104。

利用Xen虚拟化模型,每个主机可以包括特许域和包括一个或 多个访客VM的访客域。例如,主机A 101可以包括特权域,Dom0111, 和访客域,Dom U 113,并且主机B 102可以包括特权域,Dom0112, 和访客域,Dom U 114。

如图1所示,特权域,Dom0111,可以生成对访客域DomU 113 的虚拟中断,以用于通过卸载它的设备驱动器来分离VF 105。例如, 由超控制器支持以断开PCle设备的热插拔机制可以用于分离VF 105。

根据本发明的实施例,系统可以使用PID-QPN转换表以用于从 VMa 103分离VF 105。当QPa 107被创建时,用户应用110的PID 可以被登记在PID-QPN转换表中,该表驻留在VMa 103的内核空间 中。然后,基于可以是图3所示的PID-QPN转换表,在例如QPa 107 的有效QP存在并且连接到VF105时的情况中,VF 105可以被成功 地分离。此外,VF 106,其包含新的虚拟全球唯一标识符(vGUID) 和新的局部标识符(LID),在VMa 103从主机A 101迁移到主机B 104(如VMa 104)之后,可以附接于VMa 104。

在IB网络中,QP资源可以由硬件直接管理,并且仅仅可以由 软件通过不透明的处理访问。因此,当VF 106附接于VMa 104时, 用户应用可以具有指向QPa 107的无效不透明处理。这是因为用于由 用户进程固定的物理存储器的虚拟地址已经变化并且在存储器登记 期间创建的不透明处理可以变得无效。

根据本发明的实施例,转换机制可以用于处理用于QP的位置相 关资源。每个QP上下文包含与HCA和主机相关联的位置相关属性。 利用转换机制,这些位置相关属性可以在迁移之后被再创建。此外, 为了维持应用透明性,在用户进程中的虚拟地址可以在迁移之后被重 新分配以便让他们固定到新位置处的正确的物理存储器。

另外,IB网络可以在VM的动态迁移之前和之后使用用于暂停 和重新开始QP的确定性状态。此确定性状态可以用于在两个不同物 理设备之间迁移QP状态并且阻止可以引起可以是无损网络的IB网 络100中的致命错误的任何丢失的分组或乱序分组。然后,在迁移时, 迁移VMa 103可以迁移还没有被通过线路转移的每个QP中未完成的 分组。

图2示出了根据本发明的实施例的用于支持在虚拟化环境中虚 拟机的动态迁移的示范性流程图。如图2所示,在步骤201处,包含 一个或多个虚拟机的多个主机经由网络互连。然后,在步骤202处, 至少一个虚拟机连接到与队列对(QP)相关联的虚拟功能,其中QP 由主机上的主机信道适配器(HCA)支持。此外,在步骤203处,所 述至少一个虚拟机可以执行从第一主机到第二主机的动态迁移。

进程ID(PID)到队列对号码(QPN)的转换表

图3示出根据本发明的实施例进程ID(PID)到队列对号码 (QPN)的转换表的例示。如图3所示,虚拟机(VM)环境300可 以包括内核空间301和用户空间302。

用户空间302可以包括一个或多个用户进程,例如用户进程A-C 311-313,每个可以被分配有进程ID(PID)。例如,进程ID(PID) 321可以分配给用户进程A 311。

此外,每个用户进程A-C 311-313,可以使用一个或多个队列对 (QP)以与系统中的其它进程进行通信。例如,用户进程A 311可以 使用QPa 322,其与队列对号码(QPN)332相关联。

为了在虚拟机300的动态迁移之前和之后识别正确的用户进程, 内核空间301可以维护使得用于虚拟机300的QP和使用QP的不同 用户进程相关联的转换表310。

例如,转换表310可以将用于QPa 322的QPN 332(具有值x) 映射到分配给用户进程A 311的PID 321(具有值0xA)。另外,转 换表310可以具有用于将QP映射到诸如用户进程B-C 312-313之类 的其它用户进程的条目。

根据本发明的实施例,当QPa 322被创建时,用于用户进程A 311 的PID 321可以利用转换表310登记,并且当QPa 322被毁坏时,用 于用户进程A 311的PID 321可以被取消登记。

在基于Xen的架构的示例中,当登记的QPN 332存在时,通过 触发用于通知具有登记的PID 321的用户进程A 311释放固定的存储 器的事件,虚拟机300中的特权域可以尝试分离IB VF。在由用户进 程A 311固定的存储器被释放之后,属于用户进程A 311的QPa 322 可以被暂停直到它接收到重新开始事件。结果,内核空间301模块可 以被卸载并且连接到QPa 322的VF可以从VM 300成功地分离。

此外,为了解决用户空间302与内核空间301之间缺乏交互,系 统可以配置用户空间回调功能,其可以在取消登记PCI IB模块之前 由内核空间301触发。

位置相关通信资源

图4示出了根据本发明的实施例的重新分配位置相关通信资源 的例示。如图4所示,虚拟机环境400可以包括内核空间410,和具 有例如用户进程A-C 411-413的一个或多个用户进程的用户空间401。

为了避免在迁移之后在目的地处与其它QPN的冲突,每个用户 进程A-C 411-413可以具有可以最小化搜索和检索更新的QP属性的 时间的映射表。

用户进程A 411可以具有映射表433,其可以被实施为用于用户 进程A 411的用户空间库的一部分,例如用户空间设备驱动器422。 另外,映射表433的大小可以维持在相对小的尺寸,因为每个用户进 程A-C 411-413可以具有它自己的映射表。

此外,映射表433可以在新的IB VF在目的地主机处附接之后 用于检索更新的位置相关QP属性。例如,代替利用一个映射表用于 每个QP属性,映射表433仅仅可以包含指向存储在存储器(具有用 作密钥的旧的QPN)中的新QP属性的指针。如图4所示,在映射表 433中,第一QPN值x与QP上下文指针,0xaa,相关联,QP上下 文指针存储位置相关属性432的地址431。

根据本发明的实施例,QP上下文可以包括若干位置相关属性 432,诸如局部标识符(LID)、队列对号码(QPN)、远程密钥(rkey)、 和本地密钥(Ikey)。LID是由子网管理器在子网初始化期间分配给 每个HCA端口的局部地址。QPN是表示QP的标识符并且它在HCA 之内是仅仅唯一的。本地密钥(lkey)和远程密钥(rkey)都是需要 在迁移之后变化的位置相关属性。他们是分别访问本地和远程存储器 区域的授权密钥。

可替换地,可以存在用于重新映射这些QP属性的其它方法。一 个方法是将重新映射机制卸载到硬件。此方法可以需要修改硬件和软 件架构。另一个可替换是在内核中放置映射表并且在VF被重新附接 之后将高速缓存的QP属性重新映射到新的QP属性集合。此方法可 以需要用于每个属性的映射表:LID、rkey、Ikey和QPN。另外, QPN在子网之内可以不是唯一的并且在迁移之后可能引起冲突。

因此,诸如QP属性432之类的位置相关资源可以由用户应用 421高速缓存。此外,在QP被建立之后,由用户应用421对时间关 键的操作可以在不从内核410拦截的情况下基于用户空间401中的库 被直接执行。

队列对(QP)状态

图5示出根据本发明的实施例的利用确定性状态来暂停并重新 开始队列对(QP)的例示。如图5所示,网络模型500允许队列对(QP) 处于各种定义的状态,诸如准备读取(RTS)状态501和发送队列排 出(SQD)状态502。另外,网络模型500可以使用确定性状态,例 如暂停状态503,以在动态迁移之前和之后暂停并且重新开始QP。

根据本发明的实施例,暂停状态503可以基于发送队列排出 (SQD)状态502。在QP被允许从RTS状态501转变到SQD状态 502之前,QP的工作队列中的所有未完成的操作被成功地排出。因 此,SQD状态502可以保证所有未完成的发送操作在QP可以被临时 暂停之前完成。利用此方法,QP可以处于确定性状态,其中没有运 行中的分组存在并且QP可以安全地被暂停并迁移。

后期分离迁移处理

根据本发明的实施例,虚拟环境可以在VM迁移期间利用后期 分离方法减少服务停止时间。

图6示出根据本发明的实施例的利用自下向上方法的虚拟机动 态迁移的例示。如图6所示,例如主机A-B 601-602的多个主机可以 经由IB网络600互连。每个主机A-B 601-602可以包括一个或多个虚 拟机监控器(VMM),诸如VMM 615-616,其管理一个或多个虚拟 机(VM)。

例如DomU 613中的VMa 603的虚拟机(VM)可以与HCA 617 上的连接到队列对(QP),例如QPa 607,的虚拟功能(VF)605 附接。特权域Dom0611可以发起VMa 603从主机A 601到主机B 602 (如VMa 604)的迁移。

如图6所示,系统允许VMa 603在不首先分离VF 605的情况下 迁移。然后,系统可以在VMa 604被在目的地主机B 602上建立(其 包括特权域Dom0612、和访客域DomU 614,由VMM616和HCA 618 支持)之后分离VF 605。

因此,服务停止时间可以被减少,因为IB设备可以保持操作直 到VM被暂停。例如,HCA 617上的QPa 607可以保持工作直到停 止和复制阶段开始。

图7示出根据本发明的实施例的在迁移之后重新激活虚拟机的 例示。如图7所示,例如主机A-B 701-702的多个主机可以经由IB网 络700互连。每个主机A-B 701-702可以包括一个或多个虚拟机监控 器(VMM),诸如主机A 701上的VMM 615和主机B 702上的VMM 716,其管理一个或多个虚拟机(VM)。另外,每个主机A-B 701-702 可以包括一个或多个HCA,诸如主机A 701上的HCA 717和主机B 702上的HCA 718。

在VMa 704迁移到目的地主机B 702之后,在重新开始VMa 704 之前,新的VF 706可以附接(或再附接)到VMa 704。新的VF 706 可以连接到HCA 718上新创建的QPa’708。

利用Xen虚拟化模型,在主机B 702上的例如Dom0712的特权 域可以在访客域,DomU 714中VMa 704的恢复的最后阶段处连接新 的VF 706,而不是在早期恢复期间初始化VF 706。此外,Dom0712 可以执行重新配置进程,其可以包括再创建硬件相关资源和重建与远 程QP的连接。

重建远程连接

IB网络可以提供多个面向连接的传输服务。在VM迁移发生在 两个QP都仍然在操作中(例如在RTS状态中)时的情况中,系统可 以在迁移完成之后再创建目的地主机上的QP并且重建与远程QP的 连接。

图8示出根据本发明的实施例的在虚拟机动态迁移之前两个队 列对(QP)的例示。如图8所示,例如主机A-B 801-802的多个主机 可以经由IB网络800互连。每个主机A-B 801-802可以包括诸如VMM 815-816之类的一个或多个虚拟机监控器(VMM),和诸如HCA 817-818之类的一个或多个HCA。

在如图8所示的示例中的,在VMa 803从主机A 801到主机B 802的动态迁移之前,与主机A 801上的VMa 803相关联的QPa 808 可以与例如与VMc 805相关联的QPc 807的对等方QP进行通信。

在VMa 803的动态迁移期间,通信管理器(CM)810可以被配 置为容许设备删除事件,以便成功地迁移VMa 803。CM 810可以在 设备被删除之后断开连接并且一旦新的设备被再附接后可以重新开 始连接。另外,系统可以实施重新连接机制,例如在用户空间库中。

如图8所示,在基于Xen的架构的示例中,主机A 801上的特 权域Dom0811可以发起访客域DomU 813中的VMa 803到主机B 802的迁移。同样,主机B 802可以包括特权域Dom 0812,和访客 域DomU 814,其包括一个或多个VM(例如VMx 804)。

根据本发明的实施例,在诸如Xen模型之类的虚拟化模型中可 以存在VM与访客域(即DomU)之间的一对一关系。此外,在 VMM/Dom0的控制下托管VM的物理服务器上的资源容器DomU可 以用于表示VM的Xen概念。另外,在其它虚拟化模型中,在VM与 的访客域之间可以无限制地存在一对多、或多对一关系。例如,访客 域可以能够托管不同的VM。

此外,Dom 0811可以运行PCI分离脚本以从VMa 803中拔去 VF。此操作也可以触发暂停阶段,其中VMa 803上的内核IB PCI 模块可以验证PID存在于QPN-PID映射表310中并且可以发暂停事 件信号以通知VMa 803中的用户进程。

迁移VMa 808可以在固定的存储器被释放之前保存QP属性和 带外套接字地址到VMc 807。在这里,套接字地址可以用作用于VM 的位置独立地址,其在迁移之后不变化。当贯穿VM生命周期vGUID 不被用作唯一和静态的“名称”时,位置独立套接字地址可以用于识 别VM。

然后,在固定的存储器被释放之后,VF可以被成功地从VMa 808 处分离并且与VMa 808相关联的用户进程可以保持在暂停状态中直 到它接收重新开始事件。

当用户进程接收暂停事件时,它可以设置暂停标记并且停止剩余 的发送操作。然后,用户进程可以利用可靠的连接生成暂停消息以通 知VMc 807上的用户库,QPa 808将要被暂停。当QP 807-808上的 工作队列都已被排出时,VMc 805可以复位QPc 807并且可以等待新 的CM事件。

此外,在动态迁移期间,迁移的VMa 803可以阻止QPc 807发 送数据到迁移的VMa 803,并且可以转发可靠连接(RC)暂停消息 以通知QPc 807关于迁移。在QPc 807接收消息之后,它可以保证所 有工作队列被成功地排出。然后,QPc 807可以转变到复位状态并且 等待新的CM事件以便重新开始通信。

因此,系统可以在迁移之后维护VMa 808与VMc 805之间的连 接。

图9示出根据本发明的实施例的在虚拟机动态迁移之后通信中 的两个队列对(QP)的例示。如图9所示,例如主机A-B 901-902的 多个主机可以经由IB网络900互连。

主机B 902上的VMa 904被从主机901迁移。然后,系统可以 连接新的VF到VMa 904,并且可以触发重新开始阶段。系统可以发 送重新开始事件信号以用于通知VMa 904中的用户进程设置重新开 始标记并且创建新的QP,例如QPa’908。此外,指向新的QP属性 的指针可以被增加给具有用作检索密钥的先前QPN的映射表。

在CM 910利用用于VM的位置独立地址重建与VMc 905(或 图8中的VMc 805)的连接之后,可以通过交换QP属性并将QP 907-908传送到RTS状态中来重新开始通信。在这一点上,应用可以 继续使用高速缓存QP属性,其中用户库拦截的所有操作从映射表中 检索正确的QP属性。

可以使用一个或多个传统的通用或专门号码计算机、计算设备、 机器或微处理器方便地实现本发明,包括一个或多个处理器、存储器 和/或根据本公开的教导编程的计算机可读存储介质。合适的软件编码 能够容易地由熟练的程序员基于本公开的教导来准备,这对软件领域 的技术人员将是明显的。

在一些实施例中,本发明包括计算机程序产品,其是上面或其中 存储指令的存储介质或计算机可读介质(介质),指令可以用于编程 计算机来执行本发明的处理中的任何一个。存储介质能够包括以下中 的一个或多个:任何类型的盘,包括软盘、光盘、DVD、CD-ROM、 微驱动器、和磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、 VRAM、闪速存储器件、磁或光卡、纳米系统(包括分子存储器IC) 或适合于存储指令和/或数据的任何类型的介质或设备,但是不局限于 此。

本发明的上面的描述是为了说明和描述的目的而提供的。它不意 欲是穷举的或将本发明限制于公开的精确的形式。许多修改和变化能 够对本领域的实践者是明显的。选择并且描述实施例以便最佳地说明 本发明的原理和它的实际应用,从而使得本领域技术人员能够理解用 于各个实施例中的并且具有适合于预期的特定使用的各种修改的本 发明。预期本发明的范围由以下权利要求书和它们的等价物定义。

去获取专利,查看全文>
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号