用于直接分配的设备的虚拟化操作制造技术

技术编号:24335022 阅读:74 留言:0更新日期:2020-05-29 21:54
实施例涉及实现对已经直接分配有硬件设备的虚拟机(VM)的状态操纵。管理程序利用访客操作系统来管理VM的执行。管理程序将物理的(非虚拟的)硬件设备直接分配给VM,使得VM拥有硬件设备的排他使用并且访客操作系统使用硬件,而无需管理程序进行虚拟化抽象/映射。当需要暂停、挂起、恢复或以类似方式操纵VM时,管理程序与VM通信以引起访客操作系统执行对硬件设备来说可能是必要的任何操作。管理程序和VM/访客可以通过各种机制进行通信,诸如与访客驱动程序通信的主机驱动程序、由计算机的硬件总线支持的虚拟总线服务、虚拟总线通道等。

Virtualization operations for directly allocated devices

【技术实现步骤摘要】
【国外来华专利技术】用于直接分配的设备的虚拟化操作
技术介绍
在很多形式的计算机虚拟化中,由于许多已知的优点,机器或系统虚拟化已经变得很普遍。系统虚拟化涉及抽象计算机的硬件资源,并且将计算机呈现为虚拟机。被称为管理程序(hypervisor)或虚拟机监测器(VMM)的软件层直接运行在计算机的硬件上。管理程序通过虚拟机(VM)管理对计算机的硬件的访问,这些VM也称为分区、域或访客(guest)。每个VM是能够托管其自己的访客操作系统的软件环境或构造。管理程序管理VM对计算机的硬件、特别是处理硬件和存储器的共享。访客操作系统与计算机硬件之间的软件管理程序层的存在对访客操作系统几乎是透明的。用于机器虚拟化的正在开发中的技术是将硬件设备直接分配给VM的能力。该技术(称为直接设备分配(DDA))允许虚拟化层(“具体实施方式”中讨论的术语)将硬件设备移交给VM并且然后VM直接使用硬件设备而无需实质性(如果有的话)参与虚拟化层以访问和使用硬件设备。也就是说,硬件设备由VM使用,而无需虚拟化层进行虚拟化抽象或映射,并且在一些情况下,即使虚拟化层已经暂停VM或尚未调度CPU时间用于VM,主机和其他VM也都不使用硬件设备。尽管DDA为VM提供了快速的性能,但是存在只有本专利技术人才意识到的一些缺点。大多数机器虚拟化系统具有控制VM的执行状态的功能。用于控制VM状态的典型操作包括暂停、保存、恢复、迁移等。这样的操作在云环境中特别有用。云提供商可能需要对租户或访客透明地改变VM的状态。例如,主机可能需要对主机/虚拟化软件进行安全更新。正如只有专利技术人才意识到的,不同于通知租户或客户需要保存或关闭VM才允许重新启动主机,云提供商偏好能够透明地挂起租户的VM,使得主机能够被更新和重新启动,而不会显著干扰租户的VM的操作并且也不需要租户采取任何措施。尽管从理论上讲虚拟化系统可以保留或暂停由管理程序虚拟化的VM的硬件状态(参见例如美国专利公开2014/0157264),但是虚拟化系统不可能在管理程序的权限范围之外在直接分配给VM的硬件上执行这样的操作。也就是说,由于直接分配的设备归VM所有,因此无法在直接分配有硬件的VM上执行用于控制VM状态的操作。需要使得机器虚拟化系统能够控制VM的状态并且,其考虑了直接分配给VM的硬件的存在。
技术实现思路
包括以下
技术实现思路
仅是为了介绍下面的具体实施方式中讨论的一些概念。该概述不是全面的,并非旨在描述由最后提出的权利要求书阐明的所要求保护的主题的范围。实施例涉及实现对已经直接分配有硬件设备的虚拟机(VM)的状态操纵。管理程序利用访客操作系统来管理VM的执行。管理程序将物理的(非虚拟的)硬件设备直接分配给VM,使得VM拥有硬件设备的排他使用并且访客操作系统使用物理硬件设备,而无需管理程序进行虚拟化抽象/映射。当需要暂停、挂起、恢复或以类似方式操纵VM时,管理程序与VM通信以引起访客操作系统执行对硬件设备来说可能是必要的任何操作。管理程序和VM/访客可以通过各种机制进行通信,诸如与访客驱动程序通信的主机驱动程序、由计算机的硬件总线支持的虚拟总线服务、虚拟总线通道等。下面参考结合附图考虑的以下具体实施方式来解释许多附带特征。附图说明根据参考附图阅读的以下就同时实施方式,将能够更好地理解本说明书,其中在附图中,相似的附图标记用于指示相似的部分。图1示出了包括已知类型的管理程序的示例虚拟化环境。图2示出了用于促进具有直接分配的硬件设备的VM上进行状态操作的一般过程。图3示出了VM和虚拟化层如何协作以使得VM上的状态操作能够在直接分配的硬件上执行。图4示出了适用于某些类型的硬件设备的实施例。图5示出了与图4相对应的过程。图6示出了由驱动程序之间的通信执行的暂停操作的示例。图7示出了可以在其上实现上述实施例的计算设备的细节。具体实施方式图1示出了包括已知类型的管理程序100的示例虚拟化环境。计算机102具有硬件104,包括中央处理单元(CPU)106、存储器108、网络接口卡(NIC)110、非易失性存储装置112、以及未示出的其他组件,诸如总线、显示器和/或显示适配器等。管理程序100管理和促进虚拟机(VM)114、116的执行。每个虚拟机114、116通常已经对设备进行虚拟化,包括其中存储有访客/主机操作系统118、120的虚拟盘。管理程序100与在特权VM116中执行的主机操作系统120协作,提供机器或系统虚拟化。虚拟化的任务可以以已知方式在管理程序100与主机操作系统120之间被分布。在某些情况下,主机操作系统120可能仅包含最少的虚拟化元素,诸如用于管理管理程序100的工具和用户界面。在其他情况下,主机操作系统120可能包括以下一项或多项:设备虚拟化管理、VM间通信设施、运行设备驱动程序、启动或停止其他VM。在一些实施例中,虚拟化可能主要发生在管理程序内核(或插入到现成的内核(stockkernel)的虚拟化模块)内,并且不存在特权VM116。图2示出了用于促进对已经直接分配有硬件设备的VM进行执行状态操作的一般过程。假设主机计算机具有虚拟化层(以下称为“管理程序”)、VM114和直接可分配给VM的硬件设备。硬件设备可以是任何类型的设备,包括图形处理单元(GPU)、诸如固态驱动程序(SSD)等的存储设备、NIC等。硬件设备可以是本地附接到主机102的物理总线的设备(例如,外围连接接口(PCI)或PCI-e)、经由数据网络可访问的设备等。在步骤140,管理程序100将硬件设备直接分配给VM114。如下面参考图3所描述的,这可以涉及诸如向VM114提供设备的标识符以及注册设备与VM114的关联等步骤。在步骤142,VM114的访客操作系统118通过将设备并入其设备管理堆栈中(例如将设备连接到其虚拟总线)来对设备分配进行响应。在步骤144,在硬件设备已经被附接到VM114并且VM114直接使用硬件设备之后,虚拟化层指示VM执行诸如暂停、保存、恢复等的状态操作。该请求可以以下面描述的不同方式而被呈现和实现。例如,可以在虚拟总线上向VM发送适当的信号,该虚拟总线提供管理程序与VM之间的通信。在步骤146,VM的访客操作系统通过在直接分配的硬件设备上执行相关状态操作来对来自虚拟化层的信号进行响应。图3示出了VM114和虚拟化层160如何协作以使得对VM114的状态操作在直接分配的硬件上被执行。虚拟化层160是I型管理程序或虚拟化内核模块以及可能的其他特权组件(诸如主机操作系统120)的任何组合。虚拟化层可以包括灵活的设备管理器162。如果存在,则灵活的设备管理器162处理标签跟踪硬件设备到VM的直接分配。尽管直接分配的硬件设备是由VM使用的,而不是由主机使用的,但是主机或虚拟化层160仍然需要知道哪些硬件已经被直接分配,使得其可以避免与已经分配给其的VM发生冲突。因此,灵活的设备管理器162可以维持设备映射164以跟踪哪些硬件设备已经被分配给哪些VM。初始地,虚拟化层160将硬件设备166分配给VM114本文档来自技高网
...

【技术保护点】
1.一种由包括处理硬件、存储硬件和硬件设备的计算机执行的方法,所述方法包括:/n提供虚拟化层,所述虚拟化层被配置为将设备直接分配给由所述虚拟化层管理的虚拟机(VM),所述虚拟化层包括管理程序,其中所述硬件设备被直接分配给VM,使得所述VM直接而不是通过所述虚拟化层访问所述硬件设备,所述VM包括访客操作系统,所述硬件设备被排他性地附接到所述访客操作系统;/n由所述虚拟化层接收或者生成对所述VM执行状态操作的第一请求,所述状态操作与所述VM的执行状态有关;/n在所述虚拟化层与所述VM之间建立通信通道;/n通过所述通信通道将所述第一请求从所述虚拟化层传递到所述VM;以及/n由所述访客操作系统通过以下来对所述第一请求进行响应:发信号通知直接附接的所述硬件设备,以在这样附接的同时与所述操作相一致地改变状态。/n

【技术特征摘要】
【国外来华专利技术】20171023 US 15/790,5981.一种由包括处理硬件、存储硬件和硬件设备的计算机执行的方法,所述方法包括:
提供虚拟化层,所述虚拟化层被配置为将设备直接分配给由所述虚拟化层管理的虚拟机(VM),所述虚拟化层包括管理程序,其中所述硬件设备被直接分配给VM,使得所述VM直接而不是通过所述虚拟化层访问所述硬件设备,所述VM包括访客操作系统,所述硬件设备被排他性地附接到所述访客操作系统;
由所述虚拟化层接收或者生成对所述VM执行状态操作的第一请求,所述状态操作与所述VM的执行状态有关;
在所述虚拟化层与所述VM之间建立通信通道;
通过所述通信通道将所述第一请求从所述虚拟化层传递到所述VM;以及
由所述访客操作系统通过以下来对所述第一请求进行响应:发信号通知直接附接的所述硬件设备,以在这样附接的同时与所述操作相一致地改变状态。


2.根据权利要求1所述的方法,其中所述状态操作包括挂起、保存或恢复所述VM的执行状态。


3.根据权利要求1所述的方法,其中所述通信通道在虚拟机总线上被建立,所述虚拟机总线提供VM与所述管理程序之间以及VM之间的通信通道,其中所述发信号通知在所述访客操作系统的虚拟总线设备上被执行,其中所述虚拟总线设备的通信由所述虚拟机总线传送,并且其中所述方法还包括经由所述通信通道来提供所述硬件设备的操作的成功或失败的指示,所述虚拟总线设备通过所述虚拟化层被映射到物理总线。


4.根据权利要求1所述的方法,还包括由所述虚拟化层维持指示哪些硬件设备被直接分配给哪些VM的分配信息,所述分配信息包括所述硬件设备已经被直接分配给所述VM的记录,并且其中所述第一请求根据所述分配信息中的所述记录而被引导到所述VM。


5.根据权利要求1所述的方法,其中被发信号通知到所述硬件设备的所述状态操作包括引起所述硬件设备至少部分停止执行的功率改变状态,并且其中由所述虚拟化层对所述VM执行的所述状态操作包括挂起或暂停所述VM。


6.根据权利要求5所述的方法,还包括:根据所述硬件设备的所述改变状态来保存所述硬件设备的状态,重新启动所述计算机,以及然后通过将所述硬件设备的保存的所述状态加载回所述硬件设备中来恢复所述VM的执行。


7.一种由包括处理硬件和存储硬件的计算设备执行的方法,所述方法包括:
执行管理程序,所述管理程序管理虚拟机在所述计算设备上的执行,包括硬件设备被直接分配给的虚拟机(VM),使得所述硬件设备被直接映射到所述VM,并且所述VM直接访问所述硬件设备而没有所述管理程序的介入,并且同时所述管理程序正管理所述VM在所述处...

【专利技术属性】
技术研发人员:H·M·霍佩特
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1