CN102915285A - 虚拟化环境中的应用加速 - Google Patents

虚拟化环境中的应用加速 Download PDF

Info

Publication number
CN102915285A
CN102915285A CN201210339548XA CN201210339548A CN102915285A CN 102915285 A CN102915285 A CN 102915285A CN 201210339548X A CN201210339548X A CN 201210339548XA CN 201210339548 A CN201210339548 A CN 201210339548A CN 102915285 A CN102915285 A CN 102915285A
Authority
CN
China
Prior art keywords
hardware
virtual machine
main frame
access
computer
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
CN201210339548XA
Other languages
English (en)
Other versions
CN102915285B (zh
Inventor
F·S·蒂利耶
T·法里希
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN102915285A publication Critical patent/CN102915285A/zh
Application granted granted Critical
Publication of CN102915285B publication Critical patent/CN102915285B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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/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/45541Bare-metal, i.e. hypervisor runs directly on hardware
    • 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/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • 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/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明涉及虚拟化环境中的应用加速。在此所示的一个实施例包括可以在计算环境中实施的方法。该方法包括向虚拟机提供对硬件的直接访问的动作。该方法包括:确定虚拟机应当具有对某件硬件的访问。方法还包括:虚拟机请求访问来自主机的硬件,其中主机是控制计算系统的物理硬件并管理虚拟机的特殊分区。该方法还包括:该主机将该硬件配置为通过该主机将硬件资源映射到虚拟机的地址空间来允许由该虚拟机直接访问该硬件。该方法还包括:一旦该硬件已经被该主机配置,该虚拟机就直接访问该硬件,而不经过该主机。

Description

虚拟化环境中的应用加速
技术领域
本发明涉及虚拟化环境中的应用加速。
背景
背景和相关技术
计算机和计算系统已经影响了现代生活的几乎每个方面。计算机通常在工作、休闲、保健、运输、娱乐、家政管理等中都有涉猎。
许多计算系统具有足够的硬件和资源来允许计算系统同时地执行多个函数或者以就好像函数同时被执行那样的方式来执行多个函数。这样的计算系统可以被认为是具有多线程,其中每个线程都执行任务。在一些实施例中,可以实现虚拟机。虚拟环境充分利用实际硬件资源来实现虚拟机,所述虚拟机在软件和硬件看来是实际硬件机。
在一些场景中,虚拟化环境中的硬件设备访问需要将硬件设备虚拟化以及使用虚拟设备来对向真实硬件设备的请求进行编组。具体而言,虚拟机通过与虚拟硬件设备通信来与真实硬件对接,其中所述虚拟硬件设备将消息路由到硬件机,然后与真实硬件设备(比如网卡、存储设备、视频卡、声卡等等)通信。以这种方式实现的虚拟设备可能是低效的并且提供低下的性能,因为它们不具有任何底层硬件,而是依靠虚拟机与主机操作系统之间的紧密协作。
在其他场景中,虚拟化感知的硬件设备和相关联的软件基础结构允许硬件设备及其驱动程序在虚拟机中操作。这些专门化的虚拟化感知的硬件设备是专门安装的,使得为了转换,现有技术可能需要将传统硬件设备替换为虚拟化感知的设备。完全的硬件虚拟化需要复杂的硬件和软件驱动程序和基础结构。
在此要求保护的主题不限于解决任何缺点或仅在诸如上述环境中操作的各个实施例。相反,提供该背景仅用以示出在其中可实践在此描述的部分实施例的一个示例性技术领域。
简要概述
在此所示的一个实施例包括可以在计算环境中实施的方法。该方法包括向虚拟机提供对硬件的直接访问的动作。该方法包括:确定虚拟机应当具有对某件硬件的访问。方法还包括:虚拟机请求访问来自主机的硬件,其中主机是控制计算系统的物理硬件并管理虚拟机的特殊分区。该方法还包括:该主机将该硬件配置为通过该主机将硬件资源映射到虚拟机的地址空间来允许由该虚拟机直接访问该硬件。该方法还包括:一旦该硬件已经被该主机配置,该虚拟机就直接访问该硬件,而不经过该主机。
提供本发明内容以便以简化形式介绍将在以下具体实施方式中进一步描述的一些概念。本概述并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
另外的特征和优点将在以下的描述中阐述,并且部分可从该描述中显而易见,或者可以从此处的教示实践中习得。本发明的特征和优点可以通过在所附权利要求中特别指出的手段和组合来实现并获取。本发明的特征将从以下描述和所附权利要求书中变得完全显而易见,或者可通过如下所述对本发明的实践而获知。
附图简述
为了描述可获得本主题的上述和其它优点和特征的方式,将通过参考附图中示出的本主题的具体实施例来呈现以上简要描述的本主题的更具体描述。应该理解,这些附图仅描绘了各典型实施例,因此其不应被认为是对范围的限制,各实施例将通过使用附图用附加特征和细节来描述并解释,在附图中:
图1示出了包括主机和多个虚拟机的计算环境;
图2示出了将资源从硬件映射到应用。
图3示出了将资源从应用映射到硬件;以及
图4示出了向虚拟机提供对硬件的直接访问的方法。
具体实施例
在此所示的一些实施例可以允许自然地提供多用户访问的设备在虚拟化环境中达到与在非虚拟化环境中运行时相同水平或几乎相同水平的I/O性能。在一些实施例中,这可以通过如下方式来实现:将驱动程序和API虚拟化、从而允许虚拟机与硬件设备直接交互,而不是将硬件设备虚拟化。与虚拟机硬件交互被截取并且被发送给真实机器以用于与实际硬件交互相比,这可以在虚拟机与实际硬件直接交互时允许本机、或接近本机的I/O性能。另外,各实施例可以用非虚拟化感知的硬件来实现。各实施例还可以允许现有硬件向虚拟机提供新的I/O设备,而不需要改变其他硬件组件,比如IOMMU(输入/输出存储器管理单元)或SR-IOV(单根输入/输出虚拟化)。仅仅添加新的I\O卡将足以向所托管的虚拟机展示相同的I\O功能。所得到的性能可超过通过模拟该设备所能达到的性能。
如上所示,各实施例可以允许虚拟机中的软件组件就好像物理硬件设备在该虚拟机中是可物理地访问的那样访问物理硬件设备。在一些实施例中,这可以使用远程直接存储器访问(RDMA)硬件102来完成,该硬件102促进从一个计算机的存储器到另一计算机的存储器的直接存储器访问,而不涉及任一计算机的操作系统。现在参考图1,示出了一个示例。图1在第一虚拟机104-1中示出了:从用户模式库118-1片段向内核模式设备驱动程序(比如设备驱动程序124)的输入/输出控制(IOCTL)请求106-1被虚拟机104-1中的虚拟机服务客户端108-1截取并且处理,所述虚拟机服务客户端108-1与运行在主机112中的虚拟服务提供者110协作,并且通过系统管理程序114和共享的虚拟机总线126进行通信。
通过将设备驱动程序API(例如IOCTL接口)虚拟化,设备的功能可以被映射到虚拟机,而不需要硬件设备(例如RDMA硬件102)处的虚拟化支持。带宽、等待时间、CPU利用率和抖动方面的优点允许虚拟环境中的计算和I/O工作量(比如云计算、启动诸如高性能计算之类的工作量)的更大的伸缩能力。
在图1所示的示例中,InfiniBand(无限带宽)RDMA网络硬件102在虚拟机环境100中可由诸如应用116-0、116-1和116-2(在此通称116)之类的应用访问。RDMA硬件102通常向应用116提供在不涉及操作系统的情况下执行I/O操作的能力。RDMA感知的应用通过向诸如驱动程序118-0、118-1和118-2(其在此可以通称为118)之类的RDMA硬件驱动程序作出请求来分配和设置硬件资源(比如RDMA硬件102)。这些硬件资源提供了用于通过以下方式发起I/O操作以及直接从系统存储器122中的应用的地址空间120中检测所述操作的完成的手段,其方式是将诸如寄存器之类的硬件资源映射到应用地址空间120和/或将应用存储器映射到硬件102中,使得硬件120可以读取和/或写入该存储器。这些存储器缓冲区和设备寄存器形成了应用116与设备硬件102之间的通信的基础,使得在运行时不需要内核转移。这样的设备的设备驱动程序118涉及运行在操作系统中的内核模式驱动程序124、以及实现到内核驱动程序(例如驱动程序124)的IOCTL接口的用户模式库118-0、118-1和118-2二者以用于分配和配置设备资源。硬件设备(例如RDMA硬件102)维护和实施应用隔离和安全性,从而防止应用116受到另一应用的资源和存储器的不利影响。
RDMA硬件102本机地允许多个不同的应用并发访问。一些实施例将运行在虚拟机104中的应用116看成是与运行在非虚拟化操作系统中的应用相同的应用。传统上由运行在应用的地址空间120中的驱动程序组件所使用的IOCTL接口被虚拟化,使得这些驱动程序组件在没有修改的情况下就好像它们与硬件102直接对接那样在虚拟化环境中工作。通过提供相关的存储器映射功能以将硬件资源映射到虚拟机104以及将虚拟机应用存储器映射到硬件102两者以用于DMA访问,各实施例允许运行在虚拟机104中的软件、运行在用户模式中的应用116以及运行在内核模式中的操作系统组件二者直接访问硬件102,它们从硬件102的角度被看成是任何其他应用。
如前所述,在传统硬件虚拟化解决方案中,I/O端口访问被模拟,从而导致在虚拟机与主机之间进行额外的通信,其中主机保持对设备硬件的完全控制。可替代地,硬件必须从客机物理地址翻译成主机物理地址(例如SRIOV)。相比之下,在此所述的一些实施例对API层进行抽象,使得硬件102保持对根操作系统的完全控制,而不需要翻译客机虚拟机地址。一些实施例可以与不包括任何虚拟化感知能力的硬件一起使用,而是虚拟化可以完全以软件来实现,而不需要硬件102知道虚拟机104正在访问硬件102。
如上面所讨论的那样,硬件资源可被从硬件映射到应用地址空间,并且应用存储器可被映射到硬件。图2和3示出了这些映射的示例。
具体而言,图2示出了将资源从硬件映射到应用地址空间。具体而言,在202,图2示出了:应用116-1将针对驱动程序124打开适配器的请求发送给硬件102(图1)。该请求被虚拟服务客户端108-1截取。
如在204所示,虚拟服务客户端108-1向虚拟服务提供者110发送请求分配覆盖(overlay)的请求。例如,分配覆盖将向虚拟机104-1提供到真实存储器中的偏移量以便将虚拟存储器映射到真实存储器。在204,预分配客机地址,虚拟服务提供者110可将主机地址映射到该客机地址。另外,如在206所示,虚拟服务客户端108-1将打开该适配器的请求发送给虚拟服务提供者110。如在208所示,虚拟服务提供者将打开该适配器的请求传递给IHV(独立硬件厂商)驱动程序124。
如在210所示,驱动程序124将硬件资源映射到存储器并且尤其是主机地址。在212,驱动程序124向虚拟服务提供者110提供对打开适配器的请求的确认。
在214,虚拟服务提供者110创建覆盖映射。该覆盖映射对真实存储器和虚拟机存储器进行映射。在210示出了将硬件资源映射到由在110所示的虚拟服务客户端所分配的覆盖。具体而言,主机地址被映射到客机地址。主机112控制所有存储器122,但是将存储器122的一部分分配给虚拟机104。虚拟服务提供者110可以使用VMBus(虚拟机总线)126与虚拟服务消费者108通信。因此,在所示的示例中,虚拟服务提供者110可以创建虚拟机存储器地址空间与物理存储器122(和/或设备寄存器空间)之间的映射,并且使用图1所示的VMBus 126将其传递给虚拟机。
在此返回到图2,在216,将打开适配器确认从虚拟服务提供者110发送给虚拟服务消费者108-1。虚拟服务消费者108-1现在也设置到应用的地址空间的合适映射覆盖。具体而言,在220,将客机地址映射到应用的地址空间。在222,将打开适配器确认返回给应用116-1。此时,应用116-1能够与硬件102通信,而不需要该通信首先经过主机112。更确切而言,驱动程序118-1可以使用虚拟机104-1的存储器映射通过直接与物理存储器通信来直接与硬件102通信。
现参考图3,示出了将资源从应用映射到硬件的示例。在302,应用116-1向驱动程序124发送对存储器进行注册以供与该应用一起使用的请求。注册存储器的请求被虚拟服务消费者108-1截取。如在304所示,虚拟服务消费者108-1为应用116-1钉住(pin)虚拟机中的存储器。
在306,虚拟服务客户端向虚拟服务提供者110发送指示为该应用映射该存储器的缓冲区的消息。另外,如在308所示,虚拟服务客户端108-1将注册存储器的请求转发给虚拟服务提供者110。
如在310所示,虚拟服务提供者将注册存储器转发给驱动程序124。在312,驱动程序312确认注册存储器的请求。在314,虚拟服务提供者110将所述确认转发给虚拟服务消费者108-1。在316,虚拟服务消费者将所述确认转发给应用116-1。
尽管上面的示例示出了使用RDMA硬件的虚拟化,但是类似的API虚拟化可以应用于其他技术。例如,一些实施例可以虚拟化在高性能计算应用中用作浮点协同处理器的通用图形处理单元(GPGPU)以使GPGPU资源对运行在虚拟化环境中的应用可用,而不需要硬件修改。具体而言,用于GPGPU计算的输入和输出缓冲区被映射到真实存储器,使得GPU可以访问该存储器并利用其操作。这实质上还通过提供近似本机的性能在API层将GPGPU虚拟化,而主机处于对硬件及其设备的策略设定的完全控制。
GPGPU感知的应用通常加载用于它们希望执行的数学运算的程序逻辑(GPU特有的编码)、以及被执行这些运算的数据。API通常用于执行这些运算,并且这些API可以在一些实施例中通过缓冲区映射来虚拟化,从而允许主机中的GPGPU对用户指定的数据执行用户指定的程序逻辑。
以下讨论现涉及可以执行的多种方法以及方法动作。虽然用特定次序讨论或用以特定次序发生的流程图示出了各个方法动作,但除非明确规定否则不需要特定次序,或因为一动作依赖于另一动作在执行该动作之前完成而需要特定次序。
现在参考图4,示出了方法400。方法400可以在计算环境中实施,并包括向虚拟机提供对硬件的直接访问的动作。这可以进行,以用于在较高API级、而不是设备级进行虚拟化。这可以简化策略实施,同时提供近似本机的性能。方法400包括:确定虚拟机应当具有对某件硬件的访问(动作402)。
方法400还包括:虚拟机请求访问来自主机的硬件,其中主机是控制计算系统的物理硬件并管理虚拟机的特殊分区(动作404)。
方法400包括:该主机将该硬件配置为通过该主机将硬件资源映射到虚拟机的地址空间来允许由该虚拟机直接访问该硬件(动作406)。
方法400还包括:一旦该硬件已经被该主机配置,该虚拟机就直接访问该硬件,而不经过该主机(动作408)。
方法400可以被实施为:将硬件资源映射到虚拟机的地址空间包括映射到运行在该虚拟机上的应用的地址空间。该上下文中的应用可以包括运行在虚拟机中的用户模式中的一个或多个传统应用。可替代或附加地,该上下文中的应用可以包括运行在虚拟机中的一个或多个内核模式驱动程序。
方法400可以被实施为:确定虚拟机应当具有对一件硬件的访问包括该主机基于该主机控制的策略来允许访问。
在某个实施例中,将该硬件配置为允许访问是基于主机应用策略的。例如,该策略可以包括服务质量规则。可替代或附加地,该策略可以包括访问检查。可替代或附加地,该策略可以实施分区。由于主机仍然对硬件具有完全访问,因此其可以规定:什么服务的策略被提供给虚拟机。其可以以比实例SR-IOV精细得多的粒度进行服务质量、访问检查、带宽控制、分区。
从联网角度而言,各实施例可以允许主机过滤连接请求以防止虚拟机获得对它们不应具有访问的其他机器的访问。通过在连接建立时间过滤访问,保留了完全的I/O性能,而不需要实际的网络分区(VLAN等等)或者网络通信量过滤。同样,该主机可以独立于虚拟机参与来实施特定的网络通信量优先级。
此外,各种方法可由包括一个或多个处理器和诸如计算机存储器等计算机可读介质的计算机系统来实施。具体而言,计算机存储器可存储计算机可执行指令,这些指令在由一个或多个处理器执行时使得诸如各实施例中所述的各个动作等各种功能被执行。
本发明的各实施例可以包括或利用包含计算机硬件的专用或通用计算机,这将在下文中更详细地讨论。本发明范围内的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:物理计算机可读存储介质和传输计算机可读介质。
物理计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储(如CD、DVD等)、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。
“网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于携带计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的网络和/或数据链路。以上介质的组合也被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件时,以计算机可执行的指令或数据结构的形式存在的程序代码装置可以自动地从传输计算机可读介质传输到物理计算机可读存储介质(或者反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终被传送到计算机系统RAM和/或计算机系统处的较不易失性的计算机可读物理存储介质。因此,计算机可读物理存储介质可被包括在同样(或甚至主要)利用传输介质的计算机系统组件中。
计算机可执行指令包括,例如使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。
本发明可具体化为其他具体形式而不背离其精神或特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变被权利要求书的范围所涵盖。

Claims (15)

1.一种在计算环境中用于向虚拟机提供对硬件的直接访问的方法,该方法包括:
确定:虚拟机(104-1)应当具有对一件硬件(102)的访问(402);
虚拟机(104-1)请求访问来自主机(112)的硬件(102),其中主机(112)是控制计算系统的物理硬件并管理虚拟机(104)的特殊分区(404);
主机(112)将硬件(102)配置为通过所述主机将硬件资源映射到所述虚拟机的地址空间来允许由虚拟机(104-1)直接访问硬件(102)(406);以及
一旦硬件(102)已经被主机(408)配置,虚拟机(104-1)就直接访问所述硬件,而不经过主机(112)(408)。
2.如权利要求1所述的方法,其特征在于,将硬件资源映射到所述虚拟机的地址空间包括:映射到在所述虚拟机上运行的应用的地址空间。
3.如权利要求1所述的方法,其特征在于,确定虚拟机应当具有对一件硬件的访问包括:所述主机基于所述主机控制的策略来允许访问。
4.如权利要求1所述的方法,其特征在于,将所述硬件配置为允许访问是基于所述主机应用策略的。
5.如权利要求4所述的方法,其特征在于,所述策略包括服务质量规则。
6.如权利要求4所述的方法,其特征在于,所述策略包括访问检查。
7.如权利要求4所述的方法,其特征在于,所述策略实施分区。
8.一种包括计算机可执行指令的计算机可读介质,所述计算机可读指令在被一个或多个处理器执行时使得以下动作被执行:
确定虚拟机(104-1)应当具有对一件硬件(102)的访问(402); 
虚拟机(104-1)请求访问来自主机(112)的硬件(102),其中主机(112)是控制计算系统的物理硬件(102)并管理虚拟机的特殊分区(404);
主机(112)将硬件(102)配置为通过所述主机(112)将硬件(102)资源映射到所述虚拟机的地址空间来允许由虚拟机(104-1)直接访问硬件(102)(406);以及
一旦硬件(102)已经被主机(112)配置,虚拟机(104-1)就直接访问硬件(102),而不经过主机(112)(408)。
9.如权利要求8所述的计算机可读介质,其特征在于,将硬件资源映射到所述虚拟机的地址空间包括:映射到在所述虚拟机上运行的应用的地址空间。
10.如权利要求8所述的计算机可读介质,其特征在于,确定虚拟机应当具有对一件硬件的访问包括:所述主机基于所述主机控制的策略来允许访问。
11.如权利要求8所述的计算机可读介质,其特征在于,将所述硬件配置为允许访问是基于所述主机应用策略的。
12.如权利要求11所述的计算机可读介质,其特征在于,所述策略包括服务质量规则。
13.如权利要求11所述的计算机可读介质,其特征在于,所述策略包括访问检查。
14.如权利要求11所述的计算机可读介质,其特征在于,所述策略实施分区。
15.一种计算机系统,该计算系统包括:
一个或多个处理器; 
耦合到所述一个或多个处理器的计算机可读存储器,其中所述计算机可读存储器包括可执行指令,所述计算机可执行指令在被所述一个或多个处理器执行时致使下面动作被执行:
确定虚拟机(104-1)被允许具有对一件硬件(102)的访问;
虚拟机(104-1)请求访问来自主机(112)的硬件(102),其中主机(112)是控制计算系统的物理硬件(102)并管理虚拟机的特殊分区;
主机(112)将硬件(102)配置为通过所述主机(112)将硬件资源映射到所述虚拟机的物理地址空间来允许由虚拟机(104-1)直接访问硬件(102);以及
一旦硬件(102)已经被主机(112)配置,虚拟机(104-1)就直接访问硬件(102),而不经过主机(112)。 
CN201210339548.XA 2011-09-14 2012-09-13 虚拟化环境中的应用加速 Active CN102915285B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/232,266 US9146785B2 (en) 2011-09-14 2011-09-14 Application acceleration in a virtualized environment
US13/232,266 2011-09-14

Publications (2)

Publication Number Publication Date
CN102915285A true CN102915285A (zh) 2013-02-06
CN102915285B CN102915285B (zh) 2016-12-21

Family

ID=47613657

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210339548.XA Active CN102915285B (zh) 2011-09-14 2012-09-13 虚拟化环境中的应用加速

Country Status (4)

Country Link
US (1) US9146785B2 (zh)
EP (1) EP2756394A4 (zh)
CN (1) CN102915285B (zh)
WO (1) WO2013039847A1 (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107209717A (zh) * 2015-02-13 2017-09-26 高通股份有限公司 针对存储器元件的分叉存储器管理
CN107924335A (zh) * 2015-08-10 2018-04-17 亚马逊科技公司 供应商网络中图形处理的虚拟化
CN108351859A (zh) * 2015-11-30 2018-07-31 英特尔公司 用于端点设备的直接存储器存取
CN108934013A (zh) * 2017-05-26 2018-12-04 中兴通讯股份有限公司 一种无线网络功能虚拟化方法及装置
CN109739615A (zh) * 2018-12-04 2019-05-10 联想(北京)有限公司 一种虚拟硬盘的映射方法、设备和云计算平台
CN109753341A (zh) * 2017-11-07 2019-05-14 龙芯中科技术有限公司 虚拟接口的创建方法和装置
CN110291502A (zh) * 2017-11-15 2019-09-27 华为技术有限公司 一种调度加速资源的方法、装置及加速系统
CN111966446A (zh) * 2020-07-06 2020-11-20 复旦大学 一种容器环境下rdma虚拟化方法
CN112416511A (zh) * 2016-06-13 2021-02-26 华为技术有限公司 用于虚拟硬件控制的系统和方法
US11210759B2 (en) 2015-11-11 2021-12-28 Amazon Technologies, Inc. Placement optimization for virtualized graphics processing
US11710206B2 (en) 2017-02-22 2023-07-25 Amazon Technologies, Inc. Session coordination for auto-scaled virtualized graphics processing

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130204924A1 (en) * 2012-02-03 2013-08-08 Nokia Corporation Methods and apparatuses for providing application level device transparency via device devirtualization
GB2502121B (en) * 2012-05-17 2014-07-02 Displaylink Uk Ltd Operation of a display system
US20140258577A1 (en) * 2013-03-11 2014-09-11 Futurewei Technologies, Inc. Wire Level Virtualization Over PCI-Express
US10452580B2 (en) * 2013-03-26 2019-10-22 Vmware, Inc. Method and system for providing remote direct memory access to virtual machines
US9841927B2 (en) * 2013-09-23 2017-12-12 Red Hat Israel, Ltd Remote direct memory access with copy-on-write support
US9548890B2 (en) 2014-03-17 2017-01-17 Cisco Technology, Inc. Flexible remote direct memory access resource configuration in a network environment
US9773292B2 (en) * 2014-06-26 2017-09-26 Intel Corporation Graphics workload submissions by unprivileged applications
US10447676B2 (en) 2014-10-10 2019-10-15 Adp, Llc Securing application programming interfaces (APIS) through infrastructure virtualization
US9646092B2 (en) 2014-10-10 2017-05-09 Adp, Llc Centralized application programming interface monitoring tool
CN106708619B (zh) * 2015-07-21 2021-01-15 华为技术有限公司 资源管理方法及装置
US10769212B2 (en) * 2015-07-31 2020-09-08 Netapp Inc. Extensible and elastic data management services engine external to a storage domain
US10176144B2 (en) 2016-04-12 2019-01-08 Samsung Electronics Co., Ltd. Piggybacking target buffer address for next RDMA operation in current acknowledgement message
CN113886018A (zh) * 2021-10-20 2022-01-04 北京字节跳动网络技术有限公司 虚拟机资源分配方法、装置、介质及设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050246453A1 (en) * 2004-04-30 2005-11-03 Microsoft Corporation Providing direct access to hardware from a virtual environment
CN1797345A (zh) * 2004-12-30 2006-07-05 微软公司 用于虚拟化图形子系统的系统和方法
CN1831790A (zh) * 2005-03-08 2006-09-13 微软公司 虚拟机环境中的客机物理地址虚拟化方法和系统
US20090006868A1 (en) * 2007-06-28 2009-01-01 Microsoft Corporation Secure storage for digital rights management
US20100082851A1 (en) * 2008-09-30 2010-04-01 Microsoft Corporation Balancing usage of hardware devices among clients
US20100138840A1 (en) * 2005-08-23 2010-06-03 Mellanox Technologies Ltd. System and method for accelerating input/output access operation on a virtual machine
US7954150B2 (en) * 2006-01-24 2011-05-31 Citrix Systems, Inc. Methods and systems for assigning access control levels in providing access to resources via virtual machines

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6393495B1 (en) 1995-11-21 2002-05-21 Diamond Multimedia Systems, Inc. Modular virtualizing device driver architecture
US5910180A (en) 1995-11-21 1999-06-08 Diamond Multimedia Systems, Inc. Context virtualizing device driver architecture
US7900017B2 (en) * 2002-12-27 2011-03-01 Intel Corporation Mechanism for remapping post virtual machine memory pages
AU2004280976A1 (en) 2003-10-08 2005-04-21 Unisys Corporation Computer system para-virtualization using a hypervisor that is implemented in a partition of the host system
US7467381B2 (en) 2003-12-16 2008-12-16 Intel Corporation Resource partitioning and direct access utilizing hardware support for virtualization
US7886126B2 (en) 2005-01-14 2011-02-08 Intel Corporation Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system
US7774556B2 (en) * 2006-11-04 2010-08-10 Virident Systems Inc. Asymmetric memory migration in hybrid main memory
US7793307B2 (en) 2007-04-06 2010-09-07 Network Appliance, Inc. Apparatus and method for providing virtualized hardware resources within a virtual execution environment
US8527673B2 (en) 2007-05-23 2013-09-03 Vmware, Inc. Direct access to a hardware device for virtual machines of a virtualized computer system
US8060876B2 (en) * 2007-08-10 2011-11-15 Intel Corporation Methods and apparatus for creating an isolated partition for a virtual trusted platform module
US8151265B2 (en) * 2007-12-19 2012-04-03 International Business Machines Corporation Apparatus for and method for real-time optimization of virtual machine input/output performance
US8527679B2 (en) 2008-06-16 2013-09-03 Samsung Electronics Co., Ltd. Apparatus and method for adaptation of input/output interface in virtualization environment
US8230155B2 (en) 2008-06-26 2012-07-24 Microsoft Corporation Direct memory access filter for virtualized operating systems
CN101739283B (zh) * 2008-11-20 2013-12-25 联想(北京)有限公司 一种计算机及虚拟系统直接访问计算机硬件的方法
US8146082B2 (en) * 2009-03-25 2012-03-27 Vmware, Inc. Migrating virtual machines configured with pass-through devices
US10089119B2 (en) 2009-12-18 2018-10-02 Microsoft Technology Licensing, Llc API namespace virtualization
EP2577936A2 (en) * 2010-05-28 2013-04-10 Lawrence A. Laurich Accelerator system for use with secure data storage
US9201677B2 (en) * 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050246453A1 (en) * 2004-04-30 2005-11-03 Microsoft Corporation Providing direct access to hardware from a virtual environment
CN1797345A (zh) * 2004-12-30 2006-07-05 微软公司 用于虚拟化图形子系统的系统和方法
CN1831790A (zh) * 2005-03-08 2006-09-13 微软公司 虚拟机环境中的客机物理地址虚拟化方法和系统
US20100138840A1 (en) * 2005-08-23 2010-06-03 Mellanox Technologies Ltd. System and method for accelerating input/output access operation on a virtual machine
US7954150B2 (en) * 2006-01-24 2011-05-31 Citrix Systems, Inc. Methods and systems for assigning access control levels in providing access to resources via virtual machines
US20090006868A1 (en) * 2007-06-28 2009-01-01 Microsoft Corporation Secure storage for digital rights management
US20100082851A1 (en) * 2008-09-30 2010-04-01 Microsoft Corporation Balancing usage of hardware devices among clients

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107209717A (zh) * 2015-02-13 2017-09-26 高通股份有限公司 针对存储器元件的分叉存储器管理
CN107924335A (zh) * 2015-08-10 2018-04-17 亚马逊科技公司 供应商网络中图形处理的虚拟化
US11145271B2 (en) 2015-08-10 2021-10-12 Amazon Technologies, Inc. Virtualizing graphics processing in a provider network
US11210759B2 (en) 2015-11-11 2021-12-28 Amazon Technologies, Inc. Placement optimization for virtualized graphics processing
CN108351859A (zh) * 2015-11-30 2018-07-31 英特尔公司 用于端点设备的直接存储器存取
CN108351859B (zh) * 2015-11-30 2021-12-14 英特尔公司 用于端点设备的直接存储器存取
CN112416511A (zh) * 2016-06-13 2021-02-26 华为技术有限公司 用于虚拟硬件控制的系统和方法
CN112416511B (zh) * 2016-06-13 2024-02-09 华为技术有限公司 用于虚拟硬件控制的系统和方法
US11710206B2 (en) 2017-02-22 2023-07-25 Amazon Technologies, Inc. Session coordination for auto-scaled virtualized graphics processing
CN108934013A (zh) * 2017-05-26 2018-12-04 中兴通讯股份有限公司 一种无线网络功能虚拟化方法及装置
CN108934013B (zh) * 2017-05-26 2023-05-26 中兴通讯股份有限公司 一种无线网络功能虚拟化方法及装置
CN109753341A (zh) * 2017-11-07 2019-05-14 龙芯中科技术有限公司 虚拟接口的创建方法和装置
CN110291502A (zh) * 2017-11-15 2019-09-27 华为技术有限公司 一种调度加速资源的方法、装置及加速系统
US11336521B2 (en) 2017-11-15 2022-05-17 Huawei Technologies Co., Ltd. Acceleration resource scheduling method and apparatus, and acceleration system
CN109739615A (zh) * 2018-12-04 2019-05-10 联想(北京)有限公司 一种虚拟硬盘的映射方法、设备和云计算平台
CN109739615B (zh) * 2018-12-04 2020-07-24 联想(北京)有限公司 一种虚拟硬盘的映射方法、设备和云计算平台
CN111966446A (zh) * 2020-07-06 2020-11-20 复旦大学 一种容器环境下rdma虚拟化方法

Also Published As

Publication number Publication date
CN102915285B (zh) 2016-12-21
WO2013039847A1 (en) 2013-03-21
EP2756394A1 (en) 2014-07-23
EP2756394A4 (en) 2015-08-05
US20130067468A1 (en) 2013-03-14
US9146785B2 (en) 2015-09-29

Similar Documents

Publication Publication Date Title
CN102915285A (zh) 虚拟化环境中的应用加速
EP3556081B1 (en) Reconfigurable server
CN104954356B (zh) 保护共享的互连以用于虚拟机
CN104428752B (zh) 将虚拟机流卸载至物理队列
CN108696461A (zh) 用于智能网络接口卡的共享存储器
WO2018119951A1 (zh) Gpu虚拟化方法、装置、系统及电子设备、计算机程序产品
US9639292B2 (en) Virtual machine trigger
US8484639B2 (en) Fine-grained cloud management control using nested virtualization
CN103530167A (zh) 一种虚拟机内存数据的迁移方法及相关装置和集群系统
CN103942087A (zh) 虚拟机热迁移方法及相关装置和集群系统
US9721091B2 (en) Guest-driven host execution
US20090006702A1 (en) Sharing universal serial bus isochronous bandwidth between multiple virtual machines
CN104094224A (zh) 超虚拟化非对称gpu处理器
US10713081B2 (en) Secure and efficient memory sharing for guests
CN109857517A (zh) 一种虚拟化系统及其数据交换方法
US20140245291A1 (en) Sharing devices assigned to virtual machines using runtime exclusion
US20200201691A1 (en) Enhanced message control banks
US11360824B2 (en) Customized partitioning of compute instances
US20160019398A1 (en) Hosting architecture
US11748285B1 (en) Transaction ordering management
US9021509B1 (en) Datacenter managed thread and multi-processing support
WO2020005984A1 (en) Virtualization under multiple levels of security protections
CN111158849A (zh) 支持虚拟机共享io设备的多机计算装置及其io设备共享方法
US20230418648A1 (en) Efficient network device failover management for virtual machines
US10922149B2 (en) System comprising a plurality of virtualization systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150805

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150805

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant