CN103210373B - 管理嵌套虚拟化环境 - Google Patents

管理嵌套虚拟化环境 Download PDF

Info

Publication number
CN103210373B
CN103210373B CN201180055111.7A CN201180055111A CN103210373B CN 103210373 B CN103210373 B CN 103210373B CN 201180055111 A CN201180055111 A CN 201180055111A CN 103210373 B CN103210373 B CN 103210373B
Authority
CN
China
Prior art keywords
software
characteristic
hardware device
group
mode
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.)
Expired - Fee Related
Application number
CN201180055111.7A
Other languages
English (en)
Other versions
CN103210373A (zh
Inventor
A·戈登
S·本-耶胡达
N·Y·哈雷尔
B-A·亚苏尔
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103210373A publication Critical patent/CN103210373A/zh
Application granted granted Critical
Publication of CN103210373B publication Critical patent/CN103210373B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/45558Hypervisor-specific management and integration aspects
    • 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/45558Hypervisor-specific management and integration aspects
    • G06F2009/45566Nested virtual machines

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)
  • Debugging And Monitoring (AREA)

Abstract

一种用于管理虚拟化环境的方法,包括:由第一软件检测硬件设备支持的第一组特性,其中所述第一软件在所述硬件设备上运行;检测用于运行第二软件的第二组特性,其中由所述第一软件使用所述第二组特性启动所述第二软件;向所述第二软件公开所述第二组特性中的一个或多个特性,其中所述第二软件检测并启用所公开的特性以用于由所述第二软件启动的第三软件;以及响应于确定第一特性是未包括在所述第一组特性中的公开特性,在不导致捕获的情况下仿真所述第一特性,使得控制被转移到所述第二软件,其中一个或多个敏感事件与所述第一特性关联。

Description

管理嵌套虚拟化环境
技术领域
本发明一般地涉及计算系统中的虚拟化,更具体地说,涉及在嵌套虚拟化环境中提高性能。
背景技术
在计算系统中,主机软件或系统管理程序(hypervisor)可以为系统管理程序上运行的来宾(guest)软件提供仿真计算环境或虚拟机(VM)。VM允许来宾软件执行,好像来宾软件直接在底层硬件或物理机器上运行那样。
典型的物理机器(例如,处理器)以至少两种模式运行:非根模式和根模式。物理机器通常以非根模式运行以便执行来宾软件的非特权指令,但是在检测到要由系统管理程序管理的特权指令时可以切换到根模式。模式之间的切换通常称为捕获(trapping)。
VM通常根据传统的软件虚拟化概念实现以便支持虚拟化特性,例如服务器整合、故障包容、安全性和资源管理。大多数所述虚拟化特性的实现以显著的性能开销为代价,这是因为来宾软件每次访问虚拟化特性时导致捕获。
发明内容
本发明涉及促进在嵌套虚拟化环境中提高性能的方法、系统和计算机程序产品。
根据一个实施例,提供了一种用于在嵌套虚拟化环境中提高性能的方法。所述方法包括:由第一软件检测硬件设备支持的第一组特性,其中所述第一软件在所述硬件设备上运行;检测用于运行第二软件的第二组特性,其中由所述第一软件使用所述第二组特性启动所述第二软件;向所述第二软件公开所述第二组特性中的一个或多个特性,其中所述第二软件检测并启用所公开的特性以用于由所述第二软件启动的第三软件;以及响应于确定第一特性是未包括在所述第一组特性中的公开特性,在不导致捕获的情况下仿真所述第一特性,使得控制被转移到所述第二软件,其中一个或多个敏感事件与所述第一特性关联。
根据一个或多个实施例,提供了一种包括一个或多个逻辑单元的系统。所述一个或多个逻辑单元被配置为执行与上面公开的方法关联的功能和操作。在另一个实施例中,提供了一种计算机程序产品,其包括具有计算机可读程序的计算机可读存储介质。当在计算机上执行时,所述计算机可读程序导致计算机执行与上面公开的方法关联的功能和操作。
下面参考附图,进一步详细地提供了上面公开的一个或多个实施例以及某些备选实施例。但是,所公开的主题并不限于所公开的任何特定实施例。
附图说明
现在仅通过实例的方式参考附图描述本发明的实施例,这些附图是:
图1A和1B是根据一个实施例的示例性嵌套虚拟化环境的示意图;
图2是根据一个实施例的用于针对来宾软件启用虚拟化特性的方法的流程图;
图3是根据一个实施例的用于访问虚拟化特性的方法的流程图;
图4和5是根据一个或多个实施例的其中可以运行本发明的系统的硬件和软件环境的示意图。
根据一个或多个实施例,不同图中的相同标号引用的特性、元素和方面表示相同、等效或类似的特性、元素或方面。
具体实施方式
以下说明了许多具体细节以便提供对各种实施例的详尽描述。某些实施例可以在没有这些具体细节的情况下实现,或者可以具有细节的变化。在某些情况下,并未详细描述某些特性以免使其它方面模糊不清。与每个元素或特性关联的细节级别不应被解释为限定某个特性较之其它特性的新颖性或重要性。
参考图1A,在嵌套虚拟化环境中,多个系统管理程序和来宾软件以嵌套方式在物理机器上运行。例如,第一系统管理程序可以直接在物理机器上运行,第二系统管理程序可以作为第一来宾软件在所述第一系统管理程序上运行,第二来宾软件可以在所述第二系统管理程序上运行。在此类环境中,不同级别软件之间的交互会增加软件虚拟化引入的性能开销。
硬件辅助虚拟化可以减少软件虚拟化引入的性能开销。在硬件辅助虚拟化中,由物理机器(而不是软件)支持一个或多个虚拟化特性,因此减少在嵌套虚拟化环境中导致的捕获的数量。希望实现这样的系统:其中硬件辅助虚拟化技术充分减少软件虚拟化引入的性能开销(如果使用软件实现许多虚拟化特性)。
参考图1B,根据一个实施例,示例性嵌套虚拟化环境100包括物理机器110和三个级别的虚拟化。根级别(L0)包括系统管理程序120;级别1(L1)包括来宾系统管理程序130;以及级别2(L2)包括来宾软件140。L0系统管理程序120直接在物理机器110上运行,并实现用于L1来宾系统管理程序130的VM。L1来宾系统管理程序130在L0系统管理程序120上运行,并实现用于L2来宾140的VM。L1来宾系统管理程序130和L2来宾140可以均使用一组虚拟化特性来启动。可以通过硬件(即,物理机器110)或软件(即,底层主机系统管理程序)支持这些特性中的每个特性。
参考图1B和2,根据一个实施例,L0系统管理程序120可以被配置为检测物理机器110支持的第一组特性(P200)。L0系统管理程序120可以使用第二组特性启动L1来宾系统管理程序130(P210)。在一个实施例中,所述第二组特性可以包括未包括在所述第一组中的特性,只要L0系统管理程序120被配置为仿真这些特性。
对于所述第二组中未包括在所述第一组中的每个特性(即,不受物理机器110支持),L0系统管理程序120可选地向L1系统管理程序130公开该特性(P220)。如在本上下文中所使用的,公开特性指使得可由下一级别的系统管理程序检测到该特性。如果向L1系统管理程序130公开该特性,则L1系统管理程序130检测并启用该特性以运行L2来宾140(即,当运行L2来宾140时,使该特性可用)(P230)。通过这种方式,L1系统管理程序使用该特性,其中L1系统管理程序指示物理机器处理对应于该特性的敏感事件而不产生捕获。
参考图1B和3,根据一个实施例,物理机器110被配置为以至少L0模式、L1模式和L2模式运行(P300)。响应于L1系统管理程序启动L2来宾140,物理机器110以L2模式执行L2来宾140(P310)。当以L2模式运行时,物理机器110可以被指示执行与第一特性关联的第一事件(即,敏感事件或特权指令)(P320)。如果物理机器110支持虚拟化特性以处理该第一事件(P330),则物理机器110处理该第一事件而不触发捕获(P340)。
否则,物理机器110捕获到L0模式,并且L0系统管理程序120通过仿真该第一特性管理该第一事件,而不导致捕获到L1模式(即,无需来自L1系统管理程序130的干预)(P350)。换言之,需要执行物理机器110不支持的特权指令时,导致将控制转移到L0系统管理程序120,以便物理机器110恢复到执行L0系统管理程序120。此外,由于为L1系统管理程序130提供该第一特性存在的错觉,因此不需要在L1和L2模式之间捕获。
尽管仿真特性将消耗处理器周期,但是向L1系统管理程序130公开该特性以便仿真可以明显减少虚拟化级别L0、L1和L2之间的捕获导致的性能开销。通过公开所请求的特性并在L0级别仿真该特性,在一个实施例中,L0系统管理程序有效地跨多个虚拟化级别多路复用对该特性的单级别支持,由此减少否则将随之发生的多个嵌套级别之间的交互量。换言之,在硬件不支持虚拟化特性的情况下,上述系统和方法可以提高性能。
在一种实施方式中,可以将上面参考图2和3提供的过程应用于扩展页表或嵌套页表(EPT/NPT)。EPT/NPT是硬件支持的特性,其提供存储器管理单元(MMU)的虚拟化。某些处理器使用仅软件机制(称为影子页表)提供MMU的虚拟化。影子页表可以导致高性能开销,这是因为页错误、页表更新和页表指针寄存器访问会导致捕获。
可以通过配置L0系统管理程序以检测处理器是否支持EPT/NPT特性来减少影子页表导致的性能开销。如果处理器不支持EPT/NPT特性,则L0系统管理程序向L1系统管理程序公开EPT/NPT特性,并且L1系统管理程序检测并启用EPT/NPT特性以运行L2来宾(即,当运行L2来宾时,使EPT/NPT特性可用)。
在处理器执行L2来宾期间,处理器可以被指示创建与EPT/NPT特性关联的事件(例如,页错误、页表更新、页表指针寄存器访问或其它相关事件)并捕获到L0模式,在L0模式中,L0系统管理程序通过构造影子页表仿真EPT/NPT特性,以便使用L1系统管理程序提供的L2页表运行L2来宾。与L0系统管理程序使用第一组影子页表运行L1系统管理程序并且L1系统管理程序使用第二组影子页表运行L2来宾的情景相比,上面提供的过程允许L0系统管理程序提供MMU虚拟化以用于L2来宾而无需来自L1系统管理程序的干预。
在其它实施方式中,可以将上面参考图2和3提供的过程应用于诸如但不限于单根输入/输出虚拟化(SR-IOV)、硬件虚拟化(VMX/SVM)扩展和中断重映射之类的特性。例如,在一种实施方式中,即使没有SR-IOV设备,L0系统管理程序也可以向L1系统管理程序公开此类设备。公开所述设备可以有助于L0系统管理程序直接管理L2输入/输出(I/O)操作,而无需例如L1系统管理程序的干预。
在另一种实施方式中,当在x86处理器或没有VMX/SVM扩展的低范围(low range)x86处理器上运行时,L0系统管理程序可以向L1系统管理程序公开VMX/SVM扩展。尽管使用旧的二进制转换机制来虚拟化x86体系结构,但是L0系统管理程序可以向L1系统管理程序公开VMX/SVM扩展。使用此类配置,可以由L0系统管理程序完全支持二进制转换,并且通过确定L0系统管理程序要管理L2来宾导致的哪些事件来改进二进制转换。
如上面所提供的,被限制为在具有VMX/SVM扩展的硬件上运行的系统管理程序(例如,KVM和Hyper-V)可以作为来宾系统管理程序在没有VMX/SVM扩展的平台上运行。此外,如果更新VMX/SVM扩展以便添加有关将中断直接重定向到来宾的支持,则L0系统管理程序可以向L1系统管理程序公开这些特性,以便将中断直接注入到L2来宾而无需L1系统管理程序干预。
在不同的实施例中,所要求保护的主题可以实现为硬件和软件元素两者的组合,或者备选地完全以硬件形式或完全以软件形式实现。此外,在此公开的计算系统和程序软件可以包括受控计算环境,其可以根据执行的硬件组件或逻辑代码提供,这些硬件组件或逻辑代码用于执行获得在此构想的结果的方法和过程。当由通用计算系统或机器执行时,所述方法和过程将通用机器转换为专用机器。
参考图4和5,根据一个示例性实施例的计算系统环境可以包括硬件环境1110和软件环境1120。硬件环境1110可以包括逻辑单元、电路或其它机器和设备,它们为软件环境1120的组件提供执行环境。反过来,软件环境1120可以为硬件环境1110的各种组件提供执行指令,包括底层操作设置和配置。
参考图4,在此公开的应用软件和逻辑代码可以以计算机可读代码的形式实现,所述计算机可读代码在示例性硬件环境1110表示的一个或多个计算系统上执行。如图所示,硬件环境1110可以包括处理器1101,其通过系统总线1100耦合到一个或多个存储元件。所述存储元件例如可以包括本地存储器1102、存储介质1106、高速缓冲存储器1104或其它计算机可用或计算机可读介质。在本公开的上下文中,计算机可用或计算机可读存储介质可以包括任何可以用于包含、存储、发送、传播或传输程序代码的可记录制品。
计算机可读存储介质可以是电、磁、光、电磁、红外线或半导体介质、系统、装置或设备。所述计算机可读存储介质还可以以传播介质实现(没有限制),程度为此类实现被视为法定主题。计算机可读存储介质的实例可以包括半导体或固态存储器、磁带、可移动计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘、光盘或载波(如果适用)。光盘的当前实例包括光盘-只读存储器(CD-ROM)、光盘-读/写(CD-R/W)、数字视频盘(DVD)、高清晰度视频盘(HD-DVD)或Blue-rayTM盘。
在一个实施例中,处理器1101将可执行代码从存储介质1106加载到本地存储器1102。高速缓冲存储器1104通过提供临时存储优化处理时间,此类临时存储有助于减少加载代码以便执行的次数。一个或多个用户接口设备1105(例如,键盘、指点设备等)和显示屏1107例如可以直接或通过中间I/O控制器1103耦合到硬件环境1110中的其它元件。可以提供通信接口单元1108(例如网络适配器),以使硬件环境1110能够通过中间专用或公共网络(例如,因特网)与本地或远程计算系统、打印机和存储设备通信。有线或无线调制解调器和以太网卡是网络适配器的几种示例性类型。
注意,在某些实施方式中,硬件环境1110可能不包括上面的部分或全部组件,或者可能包括其它组件以提供补充功能或效用。取决于构想的使用和配置,硬件环境1110可以是台式或膝上型计算机,或者可选地包含在嵌入式系统中的其它计算设备,例如机顶盒、个人数字助理(PDA)、个人媒体播放器、移动通信单元(例如,无线电话),或者具有信息处理或数据存储能力的其它类似的硬件平台。
在某些实施例中,通信接口1108用作数据通信端口,以便通过发送和接收数字、电、电磁或光信号提供与一个或多个计算系统通信的手段,这些信号承载表示各种类型信息(包括程序代码)的模拟或数字数据流。所述通信可以通过本地或远程网络建立,或者备选地通过空气传输或其它介质传输(包括但不限于载波传播)建立。
如在此所提供的,根据本质上是示例性的逻辑或功能关系定义在所示硬件元件上执行的所公开的软件元素。但是,应当指出,通过所述示例性软件元素实现的相应方法还可以例如通过配置和编程的处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)和数字信号处理器(DSP)被编码在所述硬件元件中。
参考图5,软件环境1120通常可以分为两类,包括在一个或多个硬件环境1110上执行的系统软件1121和应用软件1122。在一个实施例中,在此公开的方法和过程可以实现为系统软件1121、应用软件1122或它们的组合。系统软件1121可以包括诸如操作系统(OS)和信息管理系统之类的控制程序,它们指示硬件环境1110中的一个或多个处理器1101(例如,微处理器)如何运行和处理信息。应用软件1122可以包括但不限于程序代码、数据结构、固件、驻留软件、微代码,或者可以由处理器1101读取、分析或执行的任何其它形式的信息或例程。
换言之,应用软件1122可以实现为程序代码,其以计算机可用或计算机可读存储介质的形式包含在计算机程序产品中,所述计算机程序产品提供程序代码以便由计算机或任何指令执行系统使用或者与其结合使用。此外,应用软件1122可以包括一个或多个计算机程序,这些计算机程序在从存储介质1106加载到本地存储器1102之后,在系统软件1121之上执行。在客户端-服务器体系结构中,应用软件1122可以包括客户端软件和服务器软件。例如,在一个实施例中,客户端软件可以在客户端计算系统上执行,该客户端计算系统不同于并独立于执行服务器软件的服务器计算系统。
软件环境1120还可以包括浏览器软件1126以便访问通过本地或远程计算网络提供的数据。此外,软件环境1120可以包括用户界面1124(例如,图形用户界面(GUI))以便接收用户命令和数据。有必要重申,上面描述的硬件和软件体系结构和环境用于实例目的。因此,可以在任何类型的系统体系结构、功能或逻辑平台或处理环境上实现一个或多个实施例。
还应理解,所述逻辑代码、程序、模块、过程、方法,以及每种方法的相应过程的执行顺序完全是示例性的。取决于实施方式,所述过程或任何底层子过程和方法可以以任何顺序执行或同时执行,除非本公开中另有所指。此外,除非明确地另有所指,否则本公开的上下文中的逻辑代码定义并不与任何特定程序设计语言相关或限于任何特定程序设计语言,并且可以包括一个或多个模块,它们可以在分布式、非分布式、单处理或多处理环境中的一个或多个处理器上执行。
所属技术领域的技术人员知道,软件实施例可以包括固件、驻留软件、微代码等。包括软件或硬件或者组合软件和硬件方面的某些组件在此通常可以统称为“电路”、“模块”或“系统”。此外,所公开的主题可以实现为包含在一个或多个计算机可读存储介质中的计算机程序产品,这些介质在其中包含计算机可读程序代码。可以使用一个或多个计算机可读存储介质的任意组合。所述计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是—但不限于—电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者上述的任意合适的组合。
在此文档的上下文中,计算机可读存储介质可以是任何能够包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。计算机可读信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读程序代码。此类传播的信号可以采用多种形式,包括—但不限于—电磁信号、光信号或它们的任意合适的组合。计算机可读信号介质可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括—但不限于—无线、有线、光缆、RF等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行所公开的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。
程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
将参考根据各实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图公开某些实施例。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读存储介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读存储介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article ofmanufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
附图中的流程图和框图显示了根据多个实施例的系统、方法和计算机程序产品的可能实现的体系结构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、组件段或代码的一部分,所述模块、组件段或代码的一部分包括一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。
例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在此参考一个或多个特性或实施例提供了所要求保护的主题。所属技术领域的技术人员将认识到并理解,尽管在此提供了示例性实施例的细节,但是可以向所述实施例应用更改和修改而不会限制或偏离预期的范围。在此提供的实施例的这些和各种其它改变和组合,均在权利要求及其全部等效物限定的所公开的主题的范围之内。

Claims (15)

1.一种用于管理嵌套虚拟化环境的计算机实现的方法,所述方法包括:
由第一软件检测硬件设备支持的第一组特性,其中所述第一软件在所述硬件设备上运行;
检测用于运行第二软件的第二组特性,其中由所述第一软件使用所述第二组特性启动所述第二软件;
向所述第二软件公开所述第二组特性中的一个或多个特性,其中所述第二软件检测并启用所公开的特性以用于由所述第二软件启动的第三软件;以及
响应于确定第一特性是未包括在所述第一组特性中的公开特性,在不导致捕获到第一模式的情况下仿真所述第一特性,使得控制被转移到所述第二软件,其中所述硬件设备以第一模式执行所述第一软件,其中一个或多个敏感事件与所述第一特性关联。
2.根据权利要求1的方法,其中所述硬件设备以第二模式执行所述第二软件,以及以第三模式执行所述第三软件。
3.根据权利要求2的方法,其中响应于由所述第二软件启动所述第三软件,所述硬件设备以所述第三模式执行所述第三软件。
4.根据权利要求3的方法,其中响应于被指示创建与所述第一特性关联的敏感事件,所述硬件设备捕获到所述第一模式。
5.根据权利要求3的方法,其中响应于被指示创建第二特性处理的敏感事件,所述硬件设备捕获到所述第一模式。
6.根据权利要求5的方法,其中响应于确定所述第一特性未包括在所述第一组特性中,所述硬件设备捕获到所述第一模式。
7.根据权利要求6的方法,其中所述硬件设备捕获到所述第一模式,使得控制被转移到所述第一软件。
8.根据任一上述权利要求的方法,其中所述第一特性是存储器管理虚拟化特性。
9.根据权利要求1至7中的任一权利要求的方法,其中所述第一特性是硬件虚拟化扩展特性。
10.根据权利要求1至7中的任一权利要求的方法,其中所述第一特性是中断虚拟化特性。
11.一种用于管理嵌套虚拟化环境的计算机实现的系统,所述系统包括:
第一软件,其被操作以检测硬件设备支持的第一组特性,其中所述第一软件在所述硬件设备上执行;
逻辑单元,其被操作以检测用于运行第二软件的第二组特性,其中由所述第一软件使用所述第二组特性启动所述第二软件;
逻辑单元,其被操作以向所述第二软件公开所述第二组特性中的一个或多个特性,其中所述第二软件被操作以检测并启用所公开的特性以用于由所述第二软件启动的第三软件;以及
逻辑单元,其被操作以响应于确定第一特性是未包括在所述第一组特性中的公开特性,在不导致捕获到第一模式的情况下仿真所述第一特性,使得控制被转移到所述第二软件,其中所述硬件设备以第一模式执行所述第一软件,其中一个或多个敏感事件与所述第一特性关联。
12.根据权利要求11的系统,其中所述硬件设备被操作以便以第二模式执行所述第二软件,以及以第三模式执行所述第三软件。
13.根据权利要求12的系统,其中所述硬件设备被操作以便响应于由所述第二软件启动所述第三软件而以所述第三模式执行所述第三软件。
14.根据权利要求13的系统,其中所述硬件设备被操作以响应于被指示创建与所述第一特性关联的敏感事件而捕获到所述第一模式。
15.根据权利要求13的系统,其中所述硬件设备被操作以响应于被指示创建第二特性处理的敏感事件而捕获到所述第一模式。
CN201180055111.7A 2010-11-18 2011-10-26 管理嵌套虚拟化环境 Expired - Fee Related CN103210373B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/948,796 2010-11-18
US12/948,796 US8458698B2 (en) 2010-11-18 2010-11-18 Improving performance in a nested virtualized environment
PCT/EP2011/068714 WO2012065817A1 (en) 2010-11-18 2011-10-26 Managing a nested virtualized environment

Publications (2)

Publication Number Publication Date
CN103210373A CN103210373A (zh) 2013-07-17
CN103210373B true CN103210373B (zh) 2016-10-12

Family

ID=44872339

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180055111.7A Expired - Fee Related CN103210373B (zh) 2010-11-18 2011-10-26 管理嵌套虚拟化环境

Country Status (5)

Country Link
US (1) US8458698B2 (zh)
CN (1) CN103210373B (zh)
DE (1) DE112011103845B4 (zh)
GB (1) GB2499942B (zh)
WO (1) WO2012065817A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130145363A1 (en) * 2011-12-05 2013-06-06 Ravello Systems Ltd. System and method thereof for running an unmodified guest operating system in a para-virtualized environment
WO2013091221A1 (en) * 2011-12-22 2013-06-27 Intel Corporation Enabling efficient nested virtualization
US9292316B2 (en) * 2012-03-01 2016-03-22 International Business Machines Corporation Cloud of virtual clouds for increasing isolation among execution domains
US9152450B2 (en) * 2013-03-12 2015-10-06 International Business Machines Corporation Offloading service requests to a second guest hypervisor in a logical partition shared by a plurality of guest hypervisors
US9342343B2 (en) * 2013-03-15 2016-05-17 Adventium Enterprises, Llc Wrapped nested virtualization
US9798567B2 (en) 2014-11-25 2017-10-24 The Research Foundation For The State University Of New York Multi-hypervisor virtual machines
CN107220074B (zh) * 2016-03-21 2020-10-20 阿里巴巴集团控股有限公司 对支撑层软件功能的访问、升级方法及装置
US10942757B2 (en) * 2017-02-27 2021-03-09 Red Hat, Inc. Virtual machine security through guest-side emulation
US11880704B2 (en) 2020-06-24 2024-01-23 Red Hat, Inc. Nested virtual machine support for hypervisors of encrypted state virtual machines
US11900142B2 (en) * 2021-06-16 2024-02-13 Red Hat, Inc. Improving memory access handling for nested virtual machines
US11816363B2 (en) 2021-11-04 2023-11-14 International Business Machines Corporation File based virtual disk management

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101253481A (zh) * 2005-08-30 2008-08-27 微软公司 具有多层虚拟化机制的分层虚拟化
CN102103517A (zh) * 2009-12-22 2011-06-22 英特尔公司 高效嵌套虚拟化

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7191440B2 (en) 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
US20050076186A1 (en) 2003-10-03 2005-04-07 Microsoft Corporation Systems and methods for improving the x86 architecture for processor virtualization, and software systems and methods for utilizing the improvements
US7685635B2 (en) * 2005-03-11 2010-03-23 Microsoft Corporation Systems and methods for multi-level intercept processing in a virtual machine environment
US9785485B2 (en) * 2005-07-27 2017-10-10 Intel Corporation Virtualization event processing in a layered virtualization architecture
US8479195B2 (en) 2007-05-16 2013-07-02 Vmware, Inc. Dynamic selection and application of multiple virtualization techniques
US8151264B2 (en) * 2007-06-29 2012-04-03 Intel Corporation Injecting virtualization events in a layered virtualization architecture
US8180944B2 (en) * 2009-01-26 2012-05-15 Advanced Micro Devices, Inc. Guest interrupt manager that records interrupts for guests and delivers interrupts to executing guests
US8359422B2 (en) * 2009-06-26 2013-01-22 Vmware, Inc. System and method to reduce trace faults in software MMU virtualization
US8479196B2 (en) * 2009-09-22 2013-07-02 International Business Machines Corporation Nested virtualization performance in a computer system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101253481A (zh) * 2005-08-30 2008-08-27 微软公司 具有多层虚拟化机制的分层虚拟化
CN102103517A (zh) * 2009-12-22 2011-06-22 英特尔公司 高效嵌套虚拟化

Also Published As

Publication number Publication date
GB201309929D0 (en) 2013-07-17
US8458698B2 (en) 2013-06-04
DE112011103845B4 (de) 2020-02-20
DE112011103845T5 (de) 2013-10-31
US20120131571A1 (en) 2012-05-24
WO2012065817A1 (en) 2012-05-24
GB2499942A (en) 2013-09-04
GB2499942B (en) 2019-11-13
CN103210373A (zh) 2013-07-17

Similar Documents

Publication Publication Date Title
CN103210373B (zh) 管理嵌套虚拟化环境
KR101296025B1 (ko) 컴퓨터 시스템에서의 네스티드 가상화 성능의 개선
US9454676B2 (en) Technologies for preventing hook-skipping attacks using processor virtualization features
US20180074843A1 (en) System, method, and computer program product for linking devices for coordinated operation
US20100180277A1 (en) Platform Independent Replication
US10162657B2 (en) Device and method for address translation setting in nested virtualization environment
CN103201719B (zh) 虚拟化计算环境中的设备仿真
Lim et al. NEVE: Nested virtualization extensions for ARM
CN103500137A (zh) 虚拟化性能计数器
US20130117549A1 (en) Method for executing multiple operating systems and electronic apparatus
Hung Varmosa: just-in-time binary translation of operating system kernels
CN110597597B (zh) 硬件的虚拟化方法、系统、装置及存储介质
Ming Analysis and a case study of transparent computing implementation with UEFI
Bian Implement a virtual development platform based on QeMU
CN107861795B (zh) 模拟物理tcm芯片的方法、系统、装置及可读存储介质
US11500661B2 (en) Performing an application snapshot using process virtual machine resources
CN108255570A (zh) 异构虚拟机监视器平台间的虚拟机迁移方法、装置和系统
Rechert et al. Towards a Risk Model for Emulation-based Preservation Strategies: A Case Study from the Software-based Art Domain
Fannon An analysis of hardware-assisted virtual machine based rootkits
Nguyen Fast delivery of virtual machines and containers: understanding and optimizing the boot operation
Verboven et al. Evaluating Nested Virtualization Support
Spink Efficient cross-architecture hardware virtualisation
Corsi et al. A virtual graphics card for teaching device driver design
Gallard et al. Refinement proposal of the Goldberg’s theory
US10592142B2 (en) Toggling modal transient memory access state

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20161012

Termination date: 20181026