虚拟化环境中的应用加速的制作方法

上传人:ting****789 文档编号:310043590 上传时间:2022-06-14 格式:DOCX 页数:4 大小:22.65KB
返回 下载 相关 举报
虚拟化环境中的应用加速的制作方法_第1页
第1页 / 共4页
亲,该文档总共4页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《虚拟化环境中的应用加速的制作方法》由会员分享,可在线阅读,更多相关《虚拟化环境中的应用加速的制作方法(4页珍藏版)》请在金锄头文库上搜索。

1、虚拟化环境中的应用加速的制作方法专利名称:虚拟化环境中的应用加速的制作方法技术领域:本发明涉及虚拟化环境中的应用加速。背景背景和相关技术计算机和计算系统已经影响了现代生活的几乎每个方面。计算机通常在工作、休闲、保健、运输、娱乐、家政管理等中都有涉猎。许多计算系统具有足够的硬件和资源来允许计算系统同时地执行多个函数或者以就好像函数同时被执行那样的方式来执行多个函数。这样的计算系统可以被认为是具有多线程,其中每个线程都执行任务。在一些实施例中,可以实现虚拟机。虚拟环境充分利用实际硬件资源来实现虚拟机,所述虚拟机在软件和硬件看来是实际硬件机。在一些场景中,虚拟化环境中的硬件设备访问需要将硬件设备虚拟

2、化以及使用虚拟设备来对向真实硬件设备的请求进行编组。具体而言,虚拟机通过与虚拟硬件设备通信来与真实硬件对接,其中所述虚拟硬件设备将消息路由到硬件机,然后与真实硬件设备匕如网卡、存储设备、视频卡、声卡等等)通信。以这种方式实现的虚拟设备可能是低效的并且提供低下的性能,因为它们不具有任何底层硬件,而是依靠虚拟机与主机操作系统之间的紧密协作。在其他场景中,虚拟化感知的硬件设备和相关联的软件基础结构允许硬件设备及其驱动程序在虚拟机中操作。这些专门化的虚拟化感知的硬件设备是专门安装的,使得为了转换,现有技术可能需要将传统硬件设备替换为虚拟化感知的设备。完全的硬件虚拟化需要复杂的硬件和软件驱动程序和基础结

3、构。在此要求保护的主题不限于解决任何缺点或仅在诸如上述环境中操作的各个实施例。相反,提供该背景仅用以示出在其中可实践在此描述的部分实施例的一个示例性技术领域。简要概述在此所示的一个实施例包括可以在计算环境中实施的方法。该方法包括向虚拟机提供对硬件的直接访问的动作。该方法包括确定虚拟机应当具有对某件硬件的访问。方法还包括虚拟机请求访问来自主机的硬件,其中主机是控制计算系统的物理硬件并管理虚拟机的特殊分区。该方法还包括该主机将该硬件配置为通过该主机将硬件资源映射到虚拟机的地址空间来允许由该虚拟机直接访问该硬件。该方法还包括一旦该硬件已经被该主机配置,该虚拟机就直接访问该硬件,而不经过该主机。提供本

4、发明内容以便以简化形式介绍将在以下具体实施方式中进一步描述的一些概念。本概述并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。另外的特征和优点将在以下的描述中阐述,并且部分可从该描述中显而易见,或者可以从此处的教示实践中习得。本发明的特征和优点可以通过在所附权利要求中特别指出的手段和组合来实现并获取。本发明的特征将从以下描述和所附权利要求书中变得完全显而易见,或者可通过如下所述对本发明的实践而获知。附图简述为了描述可获得本主题的上述和其它优点和特征的方式,将通过参考附图中示出的本主题的具体实施例来呈现以上简要描述的本主题的更具体描述。应该理解,这些附

5、图仅描绘了各典型实施例,因此其不应被认为是对范围的限制,各实施例将通过使用附图用附加特征和细节来描述并解释,在附图中图I示出了包括主机和多个虚拟机的计算环境;图2示出了将资源从硬件映射到应用。图3示出了将资源从应用映射到硬件;以及图4示出了向虚拟机提供对硬件的直接访问的方法。具体实施例在此所示的一些实施例可以允许自然地提供多用户访问的设备在虚拟化环境中达到与在非虚拟化环境中运行时相同水平或几乎相同水平的I/o性能。在一些实施例中,这可以通过如下方式来实现将驱动程序和API虚拟化、从而允许虚拟机与硬件设备直接交互,而不是将硬件设备虚拟化。与虚拟机硬件交互被截取并且被发送给真实机器以用于与实际硬件

6、交互相比,这可以在虚拟机与实际硬件直接交互时允许本机、或接近本机的I/O性能。另外,各实施例可以用非虚拟化感知的硬件来实现。各实施例还可以允许现有硬件向虚拟机提供新的I/O设备,而不需要改变其他硬件组件,比如IOMMU (输入/输出存储器管理单元)或SR-IOV (单根输入/输出虚拟化)。仅仅添加新的10卡将足以向所托管的虚拟机展示相同的AO功能。所得到的性能可超过通过模拟该设备所能达到的性能。如上所示,各实施例可以允许虚拟机中的软件组件就好像物理硬件设备在该虚拟机中是可物理地访问的那样访问物理硬件设备。在一些实施例中,这可以使用远程直接存储器访问(RDMA)硬件102来完成,该硬件102促进

7、从一个计算机的存储器到另一计算机的存储器的直接存储器访问,而不涉及任一计算机的操作系统。现在参考图1,示出了一个示例。图I在第一虚拟机104 I中不出了 从用户模式库118 I片段向内核模式设备驱动程序(比如设备驱动程序124)的输入/输出控制(I0CTL)请求106 I被虚拟机104 I中的虚拟机服务客户端108 - I截取并且处理,所述虚拟机服务客户端108 - I与运行在主机112中的虚拟服务提供者110协作,并且通过系统管理程序114和共享的虚拟机总线126进行通信。 通过将设备驱动程序API (例如IOCTL接口)虚拟化,设备的功能可以被映射到虚拟机,而不需要硬件设备(例如RDMA硬

8、件102)处的虚拟化支持。带宽、等待时间、CPU利用率和抖动方面的优点允许虚拟环境中的计算和I/O工作量(比如云计算、启动诸如高性能计算之类的工作量)的更大的伸缩能力。在图I所示的示例中,InfiniBand (无限带宽)RDMA网络硬件102在虚拟机环境100中可由诸如应用116 - O、116 I和116 2 (在此通称116)之类的应用访问。RDMA硬件102通常向应用116提供在不涉及操作系统的情况下执行I/O操作的能力。RDMA感知的应用通过向诸如驱动程序118 - O、118 I和118 2 (其在此可以通称为118)之类的RDMA硬件驱动程序作出请求来分配和设置硬件资源(比如RD

9、MA硬件102)。这些硬件资源提供了用于通过以下方式发起I/o操作以及直接从系统存储器122中的应用的地址空间120中检测所述操作的完成的手段,其方式是将诸如寄存器之类的硬件资源映射到应用地址空间120和/或将应用存储器映射到硬件102中,使得硬件120可以读取和/或写入该存储器。这些存储器缓冲区和设备寄存器形成了应用116与设备硬件102之间的通信的基础,使得在运行时不需要内核转移。这样的设备的设备驱动程序118涉及运行在操作系统中的内核模式驱动程序124、以及 实现到内核驱动程序(例如驱动程序124)的IOCTL接口的用户模式库118 O、118 I和118 2 二者以用于分配和配置设备资

10、源。硬件设备(例如RDMA硬件102)维护和实施应用隔离和安全性,从而防止应用116受到另一应用的资源和存储器的不利影响。RDMA硬件102本机地允许多个不同的应用并发访问。一些实施例将运行在虚拟机104中的应用116看成是与运行在非虚拟化操作系统中的应用相同的应用。传统上由运行在应用的地址空间120中的驱动程序组件所使用的IOCTL接口被虚拟化,使得这些驱动程序组件在没有修改的情况下就好像它们与硬件102直接对接那样在虚拟化环境中工作。通过提供相关的存储器映射功能以将硬件资源映射到虚拟机104以及将虚拟机应用存储器映射到硬件102两者以用于DMA访问,各实施例允许运行在虚拟机104中的软件、

11、运行在用户模式中的应用116以及运行在内核模式中的操作系统组件二者直接访问硬件102,它们从硬件102的角度被看成是任何其他应用。如前所述,在传统硬件虚拟化解决方案中,I/O端口访问被模拟,从而导致在虚拟机与主机之间进行额外的通信,其中主机保持对设备硬件的完全控制。可替代地,硬件必须从客机物理地址翻译成主机物理地址(例如SRI0V)。相比之下,在此所述的一些实施例对API层进行抽象,使得硬件102保持对根操作系统的完全控制,而不需要翻译客机虚拟机地址。一些实施例可以与不包括任何虚拟化感知能力的硬件一起使用,而是虚拟化可以完全以软件来实现,而不需要硬件102知道虚拟机104正在访问硬件102。如

12、上面所讨论的那样,硬件资源可被从硬件映射到应用地址空间,并且应用存储器可被映射到硬件。图2和3示出了这些映射的示例。具体而言,图2示出了将资源从硬件映射到应用地址空间。具体而言,在202,图2示出了 应用116 I将针对驱动程序124打开适配器的请求发送给硬件102 (图I)。该请求被虚拟服务客户端108 - I截取。如在204所示,虚拟服务客户端108 I向虚拟服务提供者110发送请求分配覆盖(overlay)的请求。例如,分配覆盖将向虚拟机104 I提供到真实存储器中的偏移量以便将虚拟存储器映射到真实存储器。在204,预分配客机地址,虚拟服务提供者110可将主机地址映射到该客机地址。另外,

13、如在206所示,虚拟服务客户端108 - I将打开该适配器的请求发送给虚拟服务提供者110。如在208所示,虚拟服务提供者将打开该适配器的请求传递给IHV (独立硬件厂商)驱动程序124。如在210所示,驱动程序124将硬件资源映射到存储器并且尤其是主机地址。在212,驱动程序124向虚拟服务提供者110提供对打开适配器的请求的确认。在214,虚拟服务提供者110创建覆盖映射。该覆盖映射对真实存储器和虚拟机存储器进行映射。在210示出了将硬件资源映射到由在110所示的虚拟服务客户端所分配的覆盖。具体而言,主机地址被映射到客机地址。主机112控制所有存储器122,但是将存储器122的一部分分配给

14、虚拟机104。虚拟服务提供者110可以使用VMBus (虚拟机总线)126与虚拟服务消费者108通信。因此,在所示的示例中,虚拟服务提供者110可以创建虚拟机存储器地址空间与物理存储器122 (和/或设备寄存器空间)之间的映射,并且使用图I所示的VMBus 126将其传递给虚拟机。在此返回到图2,在216,将打开适配器确认从虚拟服务提供者110发送给虚拟服务消费者108 - I。虚拟服务消费者108 - I现在也设置到应用的地址空间的合适映射覆盖。具体而言,在220,将客机地址映射到应用的地址空间。在222,将打开适配器确认返回给应用116 I。此时,应用116 I能够与硬件102通信,而不需

15、要该通信首先经过主机112。更确切而言,驱动程序118 - I可以使用虚拟机104 - I的存储器映射通过直接与物理存储器通信来直接与硬件102通信。现参考图3,示出了将资源从应用映射到硬件的示例。在302,应用116 I向驱动程序124发送对存储器进行注册以供与该应用一起使用的请求。注册存储器的请求被虚拟服务消费者108 - I截取。如在304所示,虚拟服务消费者108 I为应用116 I钉住(pin)虚拟机中的存储器。在306,虚拟服务客户端向虚拟服务提供者110发送指示为该应用映射该存储器的缓冲区的消息。另外,如在308所示,虚拟服务客户端108 - I将注册存储器的请求转发给虚拟服务提

16、供者110。如在310所示,虚拟服务提供者将注册存储器转发给驱动程序124。在312,驱动程序312确认注册存储器的请求。在314,虚拟服务提供者110将所述确认转发给虚拟服务消费者108 I。在316,虚拟服务消费者将所述确认转发给应用116 I。尽管上面的示例示出了使用RDMA硬件的虚拟化,但是类似的API虚拟化可以应用于其他技术。例如,一些实施例可以虚拟化在高性能计算应用中用作浮点协同处理器的通用图形处理单元(GPGPU)以使GPGPU资源对运行在虚拟化环境中的应用可用,而不需要硬件修改。具体而言,用于GPGPU计算的输入和输出缓冲区被映射到真实存储器,使得GPU可以访问该存储器并利用其操作。这实质上还通过提供近似本机的性能在API层将GPGPU虚拟化,而主机处于对硬件及其设备的策略设定的完全控制。GPGPU感知的应用通常加载用于它们希望执行的数学运算的程序逻辑(GPU特有的编码)、以及被执行这些运算的数据。API通常用于执行这些运算,并且这些API可以在一些实施例中通过

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号