CN104321748B - 用于捕捉轻量虚拟机管理器中的错误条件的方法、系统和装置 - Google Patents

用于捕捉轻量虚拟机管理器中的错误条件的方法、系统和装置 Download PDF

Info

Publication number
CN104321748B
CN104321748B CN201280073598.6A CN201280073598A CN104321748B CN 104321748 B CN104321748 B CN 104321748B CN 201280073598 A CN201280073598 A CN 201280073598A CN 104321748 B CN104321748 B CN 104321748B
Authority
CN
China
Prior art keywords
vmm
further comprise
equipment
error
handler
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
CN201280073598.6A
Other languages
English (en)
Other versions
CN104321748A (zh
Inventor
B·朱
P·邹
M·塔拉姆
L·陈
K·王
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN104321748A publication Critical patent/CN104321748A/zh
Application granted granted Critical
Publication of CN104321748B publication Critical patent/CN104321748B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

公开了用于捕捉轻量虚拟机管理器中的错误条件的方法和装置。被公开的示例方法包括:在VMM和虚拟机(VM)之间定义共享的存储器结构;当VMM开辟VM时在与向量值相关联的VM上安装中止处理程序;作为对检测到错误的响应,将VMM状态信息转移到共享的存储器结构;以及调用VM上的中止处理程序以将共享的存储器结构的内容转移到非易失性存储器。

Description

用于捕捉轻量虚拟机管理器中的错误条件的方法、系统和 装置
技术领域
本公开一般涉及虚拟化,更具体地涉及捕捉轻量虚拟机管理器中的错误条件的方法、系统和装置。
背景技术
虚拟机管理器(VMM)促进虚拟机(VM)利用底层平台的资源。示例VMM可以允许一个或多个VM以保持跨VM安全和为每一个活跃的VM管理存储器、进程、中断和/或保护错误的方式共享这种资源。
附图说明
图1是根据本公开的教导的用于捕捉轻量虚拟机管理器中的错误条件的示例系统的示意图。
图2是图1所示的示例系统的示例主机错误处理程序的示意图。
图3是图1所示的示例系统的示例客户机中止处理程序的示意图。
图4-7是表示可被执行用于捕捉轻量虚拟机管理器中的错误条件的示例机器可读指令的流程图。
图8是可以执行图4-7所示的指令以实现图1-3所示的示例系统和装置的示例处理器平台的示意图。
具体实施方式
操作系统通常采用内置机制来检测无法恢复的错误并且提供存储器转储以便在调试操作期间辅助开发者。存储器转储提供指示计算机程序工作的存储器和/或寄存器被记录的状态的信息。此外,存储器转储可以包括计算机程序在其上执行的底层平台的通用寄存器信息。在操作系统崩溃之前,核心转储收集平台信息并将其存储到非易失性存储器,使得可以进行崩溃后的(有时也称作事后分析)回顾,以显示引起先前的崩溃的条件。
在操作系统(OS)以由虚拟机管理器(VMM)管理的虚拟化的方式运行的情况下,存储器转储可以以类似方式发生,而不影响一个或多个诸如其他OS那样的替换虚拟机(VM)。另一方面,在VMM经历内部错误(如:解除引用空指针、访问不存在的物理存储器、内部意外逻辑缺陷等)的情况下,VMM可能不具有足够的资源来执行一个或多个存储器转储。例如:一些VMM被称为缺少文件系统访问支持的”轻量VMMs”。为了最小化和/或甚至消除VMM攻击点,可以去除对VMM的一个或多个机制,例如文件系统访问支持。这样去除VMM的一个或多个机制也使VMM能消耗系统平台相对较小的配置文件,进而减少平台资源消耗。
本文中公开的方法、装置、系统和/或制品能促进轻量VMM执行期间的重大错误情况下的VMM故障检测。如下文进一步的详细描述所述,在重大VMM错误的情况下,一个或多个事件注入调用客户机OS,以将错误信息从共享的VMM/客户机存储器(如:易失性随机存取存储器(RAM))转移到非易失性存储(如:硬盘驱动器)。在一些示例中,VMM调用和/或以其它方式请求与由VMM管理的一个或多个活跃的客户机OS关联的一个或多个内置文件系统访问服务。在将错误信息(如:平台寄存器状态、存储器镜像等)转移到非易失性存储器后,每一个客户机OS可以以更优美的方式关闭和/或调用崩溃通知(如“死机蓝屏”等)。
图1示出包括VMM(如:有时称为根模式的主机)102、VM(如:有时称为非根模式的客户机OS)104和底层平台硬件106的示例虚拟化系统100。示例平台硬件106可以包括但不限于:处理器、盘驱动器、网络元件和/或存储器(如:RAM、只读存储器(ROM)、闪存等)。如下文进一步的详细描述所述,示例VMM 102包括异常处理程序108、主机错误处理程序110和包含任何数目VM进入控制字段(VECF)114的虚拟机控制数据结构(VMCS)112。
示例客户机104(或其他VM)包括客户机软件116、OS中断描述表(IDT)118、客户机中止处理程序120和崩溃通知122。在操作中,通信接口124促进VMM 102和每一个客户机(如图1所示的客户机104)之间的通信。通信接口124可以包括但不限于诸如在基于英特尔的虚拟化系统中的超级调用(HyperCall)或虚拟机调用(VMCALL)那样的管理程序调用系统。在示例客户机软件116产生被示例异常处理程序108检测到的异常的情况下,示例主机错误处理程序检测到该异常。在另一些示例中,该异常可以由VMM 102产生和/或以其它方式经历。VMM异常包括但不限于:除以零尝试和无效存储器访问尝试等。如上文讨论所讨论的那样,一些VMM不具有文件系统访问支持,这妨碍了对非易失性存储器的存储器转储。本文公开的方法、系统、装置和/或制品收集错误信息,并且将该错误信息存储到共享的易失性存储器中,并且调用一个或多个客户机以采用原生和/或定制的文件系统访问机制将共享的易失性存储器的内容转移到诸如盘驱动器那样的非易失性存储器中。平台状态的非易失性存储部分地允许用于调试的平台事后分析。
作为对检测到错误(如:重大错误)的响应,示例主机错误处理程序110将平台状态信息填入易失性共享存储器。示例易失性共享存储器可以是示例平台硬件106的RAM 126。示例主机错误处理程序110也将示例VMCS 112配置成启动一个或多个注入到诸如图1所示的示例客户机VM 104那样的一个或多个可用的客户机的事件注入。一般而言,VMM通过使用VM进入将控制转移到VM,这有时被称为VMX事务。VM进入的行为由VMCS控制,并且可以包括执行VM启动(VMLAUNCH)或VM恢复(VMRESUME)指令,相关联的数据结构位于仅对主机VMM可见的特定主机存储器区域中。这种对可以控制VM行为的机制的保护增强了VMM的安全性和/或由该VMM管理的一个或多个VM的安全性。上述示例VMM控制机制包括但不限于本文公开的VMX事务、方法、装置、系统和/或制品。例如:一些处理器采用安全虚拟机(SVM)架构,其具有用于管理操作模式控制、存储器管理、截取、中断、异常、状态变化管理、系统管理模式、处理器初始化和/或数据结构操作的相关联的SVM指令。
作为对调用一个或多个VM进入的响应,客户机104的示例OS IDT 118引用提供的向量值。在客户机事件注入期间由示例主机错误处理程序110提供的至少一个向量值启动客户机中止处理程序120。如下文进一步详细描述的那样,当VMM 102启动每一个新的和/或附加的VM时,示例主机错误处理程序110用至少一个附加向量值配置相关联的OS IDT。此外,示例主机错误处理程序向与新的向量值关联的客户机104增加对应的客户机中止处理程序120。当示例客户机中止处理程序120被调用时,其访问共享的易失性存储器(如:RAM126)并且采用文件访问服务以将共享的易失性存储器的内容转移到非易失性存储器(如:平台硬件106的硬驱动器128)。事实上,示例事件注入允许轻量VMM在利用一个或多个客户机VM的原生和/或定制的文件访问服务的同时在平台上被实现。此外,在任何易失性存储器的内容转移到非易失性存储器之后或转移期间,示例客户机中止处理程序120启动崩溃通知122(如:死机蓝屏、定制的错误消息等。)。
图2是图1所示的示例VMM主机错误处理程序110的示意图。在图2所示的示例中,主机错误处理程序110包括主机存储器管理器202、客户机OS监测器204、主机异常监测器206、客户中止处理程序的安装程序208、客户机OS向量表管理器210、主机状态收集器212、加密引擎214和异常事件注入程序216。在操作中,示例主机存储管理管理器202定义和/或以其它方式分配共享的存储器,使其被用作用于平台和/或客户机VM状态信息的储存库。可以将对诸如图1所示的示例RAM 126那样的共享的存储器的访问特权设置为对由示例VMM 102管理的一个或多个VM是只读的。
示例客户机OS监测器204检测和/或确定虚拟化系统100中新的和/或附加的VM何时启动。作为对检测诸如图1所示的示例客户机104那样的新VM的响应,示例客户机中止处理程序的安装程序208将客户机中止程序120安装到客户机104上。此外,示例客户机OS向量表管理器210将客户机104OS IDT 118配置成包括与被安装的客户机中止处理程序120相关联的新向量。相应地,如下文进一步的详细描述所述,当合适的向量被主机错误处理程序110呼叫和/或调用时,被安装的客户机中止程序120开始执行。
但是,在示例客户机OS监测器204没有检测到和/或没有确定新的和/或附加的VM在虚拟化系统100中被启动的情况下,示例主机异常监测器206确定是否有错误发生。如果没有错误发生,则示例客户机OS监测器204继续确定新的和/或附加的VM是否在示例虚拟化系统100中被启动。另一方面,如果标识到了错误,则示例主机异常监测器206确定发生了哪种类型的错误。例如,对于非重大错误,示例主机状态收集器212可以只揭示关于VMM状态的最小量信息。一般而言,VMM的安全性对于在虚拟化的环境中使攻击者可以利用的一个或多个弱点最小化是非常重要的。潜在的攻击者知道越多关于VMM寄存器状态和/或内容的信息,就为对VMM和/或由VMM管理的VM发起的非法攻击提供了越多机会。在另一些示例中,主机状态收集器212会存储详细的VMM状态信息,例如:发生重大错误时的寄存器值和/或共享的RAM 126的镜像。这些详细信息可以进一步由加密引擎214加密,以保护该详细信息不被攻击和/或公开。
如果示例虚拟化系统100具有诸如两个客户机OS那样的两个或多个执行VM,则示例VMM错误处理程序110确定是否为全部或部分客户机OSs启动事件注入。为了提高安全性,示例VMM错误处理程序110可以只选择一个客户机OS为主VM和/或以其它方式受信任的VM以处理被加密的VMM状态信息的文件系统存储。在另一些示例中,VMM错误处理程序110可以继续为系统100的所有正在操作的VM进行事件注入以收集尽可能多的调试信息。示例异常事件注入程序216配置VM进入中断信息字段、配置VM进入异常错误码信息和/或执行VM恢复(VMRESUME)VMX指令以完成将文件系统从易失性存储器转移到非易失性存储器。如上文所述,VECF控制VM进入行为,其中示例VM进入中断信息字段包含与表1格式一致的32位。
表1
在表1所示的示例中,位7:0确定客户机OS IDT中的哪个条目被用来调用示例客户机中止处理程序120,位10:8确定如何执行注入的细节,位11确定递送是否向客户机的栈推送错误码,位31设置为1时允许VM进入注入事件,有效位在每一次VM退出操作时被清除。除了表1所示的示例VM进入中断信息字段之外,示例主机错误处理程序110也可以修改VM进入异常错误码和VM进入指令长度字段以确定在客户机OS处理事件时被推送到栈上的指令指针寄存器的值。在配置完字段后,示例主机错误处理程序110可以调用VM恢复(VMRESUME)指令来执行VM进入操作。
图3是图1所示的示例VMM客户机中止处理程序120的示意图。在图3所示的示例中,客户机中止处理程序120包括客户机存储管理器302、客户机状态收集器304、错误通知引擎306和关闭管理器308。在操作中,示例OS IDT 118接收来自包含与示例客户机中止处理程序120相关联的值的示例主机错误处理程序110的向量。执行客户机中止程序120时,示例客户机存储管理器302将共享的存储器结构(如:RAM 126)的内容转移到非易失性存储器(如:硬驱动器128)。如上文所讨论的那样,示例主机错误处理程序110先前执行对VMM 102的状态检查,并将VMM的状态信息存储在共享的存储器中。示例客户机状态收集器304收集指示VM状态的信息(诸如寄存器值),示例客户机存储管理器302将该客户机VM状态信息转移到非易失性存储器。示例错误通知引擎306调用一个或多个通知屏幕,如:定制的错误屏幕、死机蓝屏和/或内核严重错误屏幕。示例关闭管理器308启动VM客户机关闭程序,允许客户机以尽可能优美的方式停止。
虽然图1-3示出了在轻量虚拟机管理器中实现示例虚拟化系统100、示例VMM主机错误处理程序110和示例客户机中止处理程序120以捕捉错误条件的示例方式,但是图1-3所示的一个或多个元件、进程和/或器件可以被组合、拆分、重新安排、省略、消除和/或以其他任何方式被实现。进一步说,可以通过硬件、软件、固件和/或其任意组合实现图1-3所示的示例虚拟化系统100、示例VMM 102、示例VM 104、示例异常处理程序108、示例主机错误处理程序110、示例VMCS 112、示例VECF 114、示例OS IDT 118、示例客户机中止处理程序120、示例崩溃通知122、示例主机存储管理器202、示例客户机OS监测器204、示例主机异常监测器206、示例客户机中止处理程序的安装程序208、示例客户机OS向量表管理器210、示例主机状态收集器212、示例加密引擎214、示例异常事件注入程序216、示例客户机存储管理器302、示例客户机状态收集器304、示例错误通知引擎306和/或示例关闭管理器308。此外,如下文所述,可以通过硬件、软件、固件和/或其任意组合实现图1-3所示的示例虚拟化系统100、示例VMM 102、示例VM 104、示例异常处理程序108、示例主机错误处理程序110、示例VMCS 112、示例VECF 114、示例OS IDT 118、示例客户机中止处理程序120、示例崩溃通知122、示例主机存储管理器202、示例客户机OS监测器204、示例主机异常监测器206、示例客户机中止处理程序的安装程序208、示例客户机OS向量表管理器210、示例主机状态收集器212、示例加密引擎214、示例异常事件注入程序216、示例客户机存储管理器302、示例客户机状态收集器304、示例错误通知引擎306和/或示例关闭管理器308。进一步说,可以通过一个或多个电路、可编程处理器、专用集成电路(ASIC)、可编程逻辑器件(PLD)和/或现场可编程逻辑器件(FPLD)等实现图1-3所示的示例虚拟化系统100、示例VMM 102、示例VM 104、示例异常处理程序108、示例主机错误处理程序110、示例VMCS 112、示例VECF 114、示例OSIDT 118、示例客户机中止处理程序120、示例崩溃通知122、示例主机存储管理器202、示例客户机OS监测器204、示例主机异常监测器206、示例客户机中止处理程序的安装程序208、示例客户机OS向量表管理器210、示例主机状态收集器212、示例加密引擎214、示例异常事件注入程序216、示例客户机存储管理器302、示例客户机状态收集器304、示例错误通知引擎306和/或示例关闭管理器308中的任何示例。当阅读到本专利的任何装置或系统权利要求纯粹覆盖软件和/或固件的实现时,如图1-3所示的示例虚拟化系统100、示例VMM 102、示例VM 104、示例异常处理程序108、示例主机错误处理程序110、示例VMCS 112、示例VECF114、示例OS IDT 118、示例客户机中止处理程序120、示例崩溃通知122、示例主机存储管理器202、示例客户机OS监测器204、示例主机异常监测器206、示例客户机中止处理程序的安装程序208、示例客户机OS向量表管理器210、示例主机状态收集器212、示例加密引擎214、示例异常事件注入程序216、示例客户机存储管理器302、示例客户机状态收集器304、示例错误通知引擎306和/或示例关闭管理器308中的至少一个由本文明确定义包括有形的计算机可读存储介质,例如:存储软件和/或固件的存储器、DVD、CD、蓝光等。更进一步说,如图1所示的示例系统100可以包括除图1-3所示对象之外的一个或多个元件、进程和/或器件或作为图1-3所示的对象的替代的一个或多个元件、进程和/或器件,并且/或者可以包括所有示出的元件、进程和/或器件中的一个或多个。
图4-7分别示出表示图1所示的实现系统100的示例机器可读指令的流程图、表示图1和图2所示的主机错误处理程序110的流程图以及表示图1和图3所示的客户机中止处理程序120的流程图。在本示例中,机器可读指令包括由联系图8在下文讨论中示出的示例计算机800中示出的处理器812那样的处理器执行的程序。程序可以被具体化在存储于诸如CD-ROM、软盘、硬驱动器、数字多功能盘(DVD)、蓝光盘或与处理器812关联的存储器那样的有形的计算机可读存储介质上的软件里,但是全部或部分程序可以替代地由除处理器812之外的器件执行,并且/或者可以具体化在固件或专用硬件里。进一步说,虽然参考图4-7所示的流程图描述了示例程序,但是也可以替代地使用实现示例系统100、示例错误处理程序110和示例客户机中止程序120的许多其他方法以捕捉轻量虚拟机管理器中的错误条件。例如,各个框的执行次序可以改变,并且/或者所描述的一些框可以被改变、消除、或组合。
如上文所述,可以使用存储于有形的计算机可读介质上的被编码的指令(如:计算机可读指令)实现图4-7所示的示例过程,有形的计算机可读介质例如:硬盘驱动器、闪存、只读存储器(ROM)、紧凑盘(CD)、数字多功能盘(DVD)、缓存、随机存取存储器(RAM)和/或其他任何在任何时长内(如:在扩展时间段内、永久地、在简短的实例期间、在临时缓冲和/或信息缓存期间)将信息存储于其内的存储介质。如本文所使用的那样,术语“有形的计算机可读存储介质”被明确地定义为包括任何类型的计算机可读存储,并且不包括传播的信号。可以附加地或替代地使用存储于非瞬时计算机可读存储介质上的被编码的指令(如:计算机可读指令)实现图4-7所示的示例过程,非瞬时计算机可读存储介质例如:硬盘驱动器、闪存、只读存储器、紧凑盘、数字多功能盘、缓存、随机存取存储器和/或其他任何在任何时长内(如:在扩展时间段内、永久地、在简短的实例期间、在临时缓冲和/或信息缓存期间)将信息存储于其内的存储介质。如本文所使用的那样,术语“非瞬时计算机可读介质”被明确地定义为包括任何类型的计算机可读存储,并且不包括传播的信号。如本文所使用的那样,当短语”至少”被用作与权利要求同步使用的转换术语时是和术语“包括”一样的开放式的。这样,将“至少”用作前序部分中的过渡术语的权利要求可以包括该权利要求明确所述之外的元素。
图4所示的程序400开始于框402,其中示例主机存储管理器定义一个或多个错误存储数据结构。在一些示例中,该错误存储数据结构包括诸如图1所示的示例RAM 126那样的底层硬件106的RAM。示例主机存储管理器202可以建立特权访问等级以改善对安全的顾虑,如:针对一个或多个VM(如:客户机104)建立只读特权和/或针对VMM(如:主机102)建立完全访问特权。示例客户机OS监测器204确定VMM 102是否开辟了新的VM(框404)。如果确定结果为是,则示例客户机中止处理程序的安装程序在被新开辟出来的VM中安装客户机中止处理程序(框406)。如上文所述,每一个VM(如:客户机OS 104)包括诸如图1所示的示例OSIDT 118那样的OS中断描述表。OS IDT 118通知控制处理器应当基于接收到的具体向量值执行哪个中断服务例程。示例客户机OS向量表管理器210更新、追加、替代和/或实现待存储于OS IDT 118中的唯一的向量值,以配置被新开辟出来的VM 104OS IDT 118(框408)。当OSIDT 118在运行期间接收到对该唯一的向量值的请求时,调用对应的客户机中止处理程序用于执行。
在新VM未被标识、可用和/或被新开辟出来的情况下(框404),示例主机异常监测机206监测错误实例中的主机VMM 102(框410)。如果没有检测和/或标识到错误(框410),则控制返回到客户机OS监测器204以确定VMM 102是否开辟了新的VM(框404)。但是,在示例主机异常监测器206检测到VMM错误的情况下(框410),示例主机异常监测器206启动错误信息捕捉(框412)。
图5所示的程序412开始于框502,其中示例主机异常监测器206确定被标识的错误是否是特定类型的,诸如是否是无法恢复的。为了最小化和/或消除安全风险,通常防止将详细的VMM状态信息存储在VMM框架的操作限制之外。在被标识的错误被视为重大和/或不可恢复的情况下(框502),示例主机状态收集器212收集与错误码和VMM的寄存器状态相关的详细日志,以更好地辅助事后的调试努力(框504)。另一方面,在被标识的错误被视为非重大和/或相对不严重的情况下,示例主机状态收集器212收集与在相对较高等级上的错误码相关的日志(框506)。一般而言,相比黑客利用详细的VMM状态信息可以造成的潜在破坏,示例主机状态收集器212收集的错误日志可以是相对无害的。这样,只有具有相对较高严重性(如严重的等级)的错误才能证明将详细的VMM状态信息存储到共享的RAM 126是正当的。在一些示例中,确定严重性和/或严重性的解析度并与阈值和/或错误类型表进行比较。具有第一解析度的错误可以与VMM状态信息收集的第一类型关联,具有第二解析度(如:错误严重性的更高程度)可以与VMM状态信息(如:详细的VMM状态信息收集)的第二类型关联。作为附加的保护,示例加密引擎214加密(框508)由主机错误处理程序110存储于共享的存储器126内(框510)的所有内容。
示例主机VMM 102可以管理除图1所示的示例VM 104之外的一个或多个VM。示例主机OS监测器204确定主机VMM 102是否正在管理多个VM(如:多个客户机OS)(框512),如果是这样,则示例主机错误处理程序110确定是否将所有的VM作为用于接收异常事件(框514)的候选对象包括进来。例如:当收集到尽可能多关于VMM 102和所有被开辟出来的VM的信息时,可以改善调试努力。如上文所述,虽然VMM 102可以揭示一个或多个错误码、寄存器状态和/或存储器镜像,但是每一个执行的VM也可以包括一个或多个错误码、寄存器状态和/或存储器镜像。在一些示例中,VMM主机错误处理程序110选择所有运行的VM以接收异常事件(框514),并且标记所有可用的活跃于数据收集(框516)的VM。
在另一些示例,例如涉及提高的安全顾虑的情形中,示例主机错误处理程序110减少在故障事件中存储系统信息的参与对象的数目。在这样的示例中,主机错误处理程序110不是授权所有可用的VM参与到事件注入(框514)中,而是选择主VM和/或以其它方式受信任的VM为重启中的事后活动进行调用(框518)。此外,示例主机错误处理程序110可以标识:只有被指定的主VM(如:图1所示的示例VM 104)被授权接收事件注入及随后执行直到完成了VMM 102和任何关联的错误信息的回顾和/或清除(框518)。
在示例VMM 102只具有单个活跃的VM的情况下(框512)、或所需要的VM被标记参与到事件注入程序(框516)、或选择了主VM之后(框518),调用示例异常事件注入程序216(框520)。在图6所示的示意性示例中,异常事件注入程序216配置VM进入中断信息字段(框602),并且配置VM字段异常错误码(框604)。每一个字段和/或错误码可以是根据实现特定的和/或对VMM类型、平台类型和/或操作系统的细微差别以其它方式定制的。当VM进入字段和/或错误码被配置时,示例异常事件注入程序216执行VM恢复(VMRESUME)指令以基于插入到VM进入字段中对应的向量值调用客户机中止处理程序120(框606)。在附加的VM被识别用于接收异常事件的情况下,对于每一个被标识的感兴趣的VM,控制返回框602。
图7所示的程序700开始于框702,其中示例VM 104监测示例OS IDT 118,以获取指示应当被执行的服务例程的向量。如果没有接收到向量值或者接收到的向量值不是与示例客户机中止处理程序120相关联的,则示例VM104继续监测接收到的向量值(框702)。另一方面,在接收到与示例客户机中止处理程序120相关联的向量值的情况下,客户机中止处理程序120被调用以在VM 104上执行(框704)。如上文所讨论的那样,主机错误处理程序110在VMM 102上标识错误并且执行一个或多个动作以捕捉可能有助于事后调试分析活动的错误细节。VMM 102的错误细节被收集和存储在共享的易失性存储器126内,在一些示例中,在存储前进行加密。
为了在允许VMM 102最小化其资源覆盖区域的同时允许其保留可能有助于事后分析的有价值的错误信息,调用示例客户机存储管理器302以使用系统文件访问机制,从而将共享的数据结构126的内容转移到一个或多个诸如硬盘驱动器128那样的非易失性存储器(框706)。此外,示例客户机状态收集器304收集与VMM管理的VM相关联的状态和/或错误信息(框708),示例客户机存储管理器302将任何这种收集到的信息转移到非易失性存储器128(框710)。由示例错误通知引擎306生成一个或多个错误通知(框712),例如:用于视频显示和/或音频提示的错误转储细节图像。当已收集(框708)、已存储(框710)所有需要的错误信息、并且已生成一个或多个错误通知(框712)时,示例关闭管理器308启动VM关闭程序(如:客户机OS关闭请求)(框714)。可以使用来自VMM 102和/或VM 104的错误信息进行一项或多项事后调试活动,以便标识导致VMM 102的一个或多个错误的一个或多个原因。
图8是能够执行图4-7所示的指令以实现图1所示的系统100、图1和图2所示的主机错误处理程序110和图1和图3所示的客户机中止处理程序120的示例处理器平台800的框图。处理器平台800可以是诸如服务器、个人电脑,因特网设备或其他任何类型的计算设备。
实例示例的系统800包括处理器812。例如:处理器812可以由来自任何所需要的家族或制造商的一个或多个微处理器或控制器实现。
处理器812包括本地存储器813(如:缓存),通过总线818与包括易失性存储器814和非易失性存储器816的主存储器通信。易失性存储器814可以通过下列各项实现:同步动态随机存取存储器(SDRAM)、动态随机存取存储器(DRAM)、RAMBUS动态随机存取存储器(RDRAM)和/或任何其他类型的随机存取存储器设备。非易失性储存器816可以由闪存和/或其他任何所需要类型的存储器设备实现。存储器控制器控制对主存储器814、存储器816的访问。
处理器平台800也包括接口电路820。接口电路820可以由任何类型的接口标准实现,如:以太网接口、通用串行总线(USB)和/或PCI Express接口。
将一个或多个输入设备822连接到接口电路820。输入设备822允许用户将数据和命令输入处理器812。输入设备可以由诸如键盘、鼠标、触屏、轨迹板、轨迹球、等点鼠标(isopoint)和/或语音识别系统实现。
将一个或多个输出设备824也连接到接口电路820。输出设备824可以由诸如显示设备(如:液晶显示、阴极射线管显示(CRT)、打印机和/或扬声器)实现。因此,接口电路820通常包括图形驱动器卡。
接口电路820也包括通信设备,如:通过网络826(如:以太网连接、数字用户线路(DSL)、电话线、同轴电缆、蜂窝电话系统等)连接以促进同外部计算机数据交换的调制解调器或网络接口卡。
处理器平台800也包括一个或多个用于存储软件和数据的大容量存储设备828。这种大容量存储设备的示例包括:软盘驱动器、硬盘驱动器、紧凑潘驱动器和数字多功能盘(DVD)驱动器。
图4-7所示的被编码的指令832可以被存储在大容量存储器828、易失性存储器814、非易失性存储器816和/或诸如CD或DVD那样的可移动存储介质内。
用于捕捉轻量虚拟机管理器中错误条件的方法、装置、系统和制品促进了在按比例缩小的VMM产品中的错误细节收集能力。虽然按比例缩小的VMM去除了一个或多个功能机制以减少黑客可以利用的候选钩、但是这种机制的去除通常也排除了在VMM崩溃时调试数据收集的机会。调用可用的VM文件系统机制使VMM能够保持最小化的覆盖区域,同时促进有价值的调试数据采集。
公开了用于捕捉轻量虚拟机管理器中错误条件的方法、系统、装置和制品。一些被公开的示例方法包括:在虚拟机管理器(VMM)和虚拟机(VM)之间定义共享的存储器结构,当VMM开辟VM时,在与向量值相关联的VM上安装中止处理程序,作为对检测到错误的响应,将VMM状态信息转移到共享的存储器结构,以及调用VM上的中止处理程序以将共享的存储器结构的内容转移到非易失性存储器。此外,示例方法包括没有文件系统访问支持的VMM。其他公开的示例方法包括:将随机存取存储器(RAM)用作共享的存储器结构并且针对该VM将该RAM配置为只读访问权限。在另一些示例中,方法包括配置中断描述表以存储向量值。一些示例包括操作存储器转储的VMM状态信息。另一些示例包括具有VMM寄存器状态信息的VMM状态信息。一些示例方法包括:确定错误的严重性,当严重性为第一等级时收集错误信息的第一解析度,当严重性为第二等级时收集错误信息的第二解析度。另一些示例方法包括VM具有客户机操作系统,另一些示例方法包括通过VMX指令调用中止处理程序,其中:VMX指令与进入中断信息字段相关联,并且定制该字段包括向量值。一些示例方法包括与受信任的VM关联的中止处理程序。
用于捕捉轻量虚拟机管理器中错误条件的示例装置包括:主机存储管理器,用于在VMM和虚拟机(VM)之间定义共享的存储器结构;客户机中止处理程序,用于当VMM开辟VM时在与向量值相关联的VM上安装中止处理程序、主机错误处理程序,用于响应于检测到错误将VMM状态信息转移到共享的存储器结构的;以及异常事件注入程序,用于调用VM上的客户机中止处理程序以将共享的存储器结构的内容转移到非易失性存储器。一些示例装置包括具有随机存取存储器(RAM)的共享的存储器结构和主机错误处理程序,该主机错误处理程序用于针对该VM将RAM配置为只读访问权限。另一些示例装置包括用于配置中断描述表以存储向量值的客户机操作系统(OS)向量表管理器。另一些示例装置包括:主机状态收集器,用于确定错误严重性,并当严重性为第一等级时收集错误信息的第一解析度,当严重性为第二等级时收集错误信息的第二解析度。
所公开的存储机器可读指令的一些示例制品被包括进来,使得当这些指令被执行时,使机器在虚拟机管理器(VMM)和VM之间定义共享的存储器结构,当VMM开辟VM时在与向量值相关联的VM上安装中止处理程序,作为对检测到错误的响应,将VMM状态信息转移到共享的存储器结构,以及调用VM上的中止处理程序以将共享的存储器结构的内容转移到非易失性存储器。另一些示例制品使机器将随机存取存储器(RAM)用作共享的存储器结构,并且针对该VM将RAM配置为只读访问权限。一些示例制品使机器配置中断描述表以存储向量表,而另一些示例制品使机器确定错误的严重性,在当严重性为第一等级时收集错误信息的第一解析度,在当严重性为第二等级时收集错误信息的第二解析度。在一些示例中,制品使机器通过VMX指令调用中止处理程序并且将VMX指令与进入中断信息字段关联。
尽管本文已描述了某些方法、装置和制品,但本专利覆盖的范围并不限于此。相反,本专利覆盖落入本专利权利要求范围内的全部方法、装置和制品。

Claims (29)

1.一种用于捕捉来自虚拟机管理器VMM的错误信息的方法,包括:
在所述VMM和虚拟机VM之间定义共享的存储器结构,其中所述VMM不具有文件系统访问支持;
当所述VMM开辟所述VM时,在与向量值相关联的所述VM上安装中止处理程序;
作为对后续检测到所述VMM的错误的响应,将VMM状态信息转移到所述共享的存储器结构;以及
调用在与向量值相关联的所述VM上的中止处理程序,以便经由对用于所述VMM的文件系统的访问来将存储在所述共享的存储结构中的所述VMM状态信息转移到非易失性存储器。
2.如权利要求1所述的方法,其特征在于,所述共享的存储器结构包括随机存取存储器RAM。
3.如权利要求2所述的方法,其特征在于,进一步包括针对所述VM将所述RAM配置为只读访问权限。
4.如权利要求1所述的方法,其特征在于,进一步包括配置中断描述表以存储所述向量值。
5.如权利要求1所述的方法,其特征在于,所述VMM状态信息包括存储器转储。
6.如权利要求1所述的方法,其特征在于,所述VMM状态信息包括VMM寄存器状态信息。
7.如权利要求1所述的方法,其特征在于,进一步包括确定所述错误的严重性。
8.如权利要求7所述的方法,其特征在于,进一步包括在当所述严重性为第一等级时收集所述错误信息的第一解析度,在当所述严重性为第二等级时收集所述错误信息的第二解析度。
9.如权利要求1所述的方法,其特征在于,所述VM包括客户机操作系统。
10.如权利要求1所述的方法,其特征在于,进一步包括通过VMX指令调用所述中止处理程序。
11.如权利要求10所述的方法,其特征在于,所述VMX指令与进入中断信息字段相关联。
12.如权利要求11所述的方法,其特征在于,定制所述字段以包括所述向量值。
13.如权利要求1所述的方法,其特征在于,所述中止处理程序与受信任的VM相关联。
14.一种用于捕捉来自虚拟机管理器VMM的错误信息的设备,包括:
主机存储管理器,用于在VMM和虚拟机VM之间定义共享的存储器结构,其中,所述VMM不具有文件系统访问支持;
客户机中止处理程序,用于当VMM开辟所述VM时在与向量值相关联的所述VM上安装中止处理程序;
主机错误处理程序,用于:作为对后续检测到所述VMM的错误的响应,将VMM状态信息转移到所述共享的存储器结构;以及
异常事件注入程序,用于调用在与向量值相关联的所述VM上的所述客户机中止处理程序,以便经由对用于所述VMM的文件系统的访问来将存储在所述共享的存储结构的所述VMM状态信息转移到非易失性存储器。
15.如权利要求14所述的设备,其特征在于,所述共享的存储器结构包括随机存取存储器RAM。
16.如权利要求15所述的设备,其特征在于,所述主机错误处理程序用于针对所述VM将所述RAM配置为只读访问权限。
17.如权利要求14所述的设备,其特征在于,进一步包括:客户机操作系统OS向量表管理器,用于配置中断描述表以存储所述向量值。
18.如权利要求14所述的设备,其特征在于,进一步包括:主机异常监测器,用于确定所述错误的严重性。
19.如权利要求18所述的设备,其特征在于,进一步包括:主机状态收集器,用于在所述严重性为第一等级时收集所述错误信息的第一解析度,并在所述严重性为第二等级时收集所述错误信息的第二解析度。
20.一种用于捕捉来自虚拟机管理器VMM的错误信息的设备,包括:
用于在VMM和虚拟机VM之间定义共享的存储器结构的装置,其中所述VMM不具有文件系统访问支持;
当所述VMM开辟所述VM时,用于在与向量值关联的所述VM上安装中止处理程序的装置;
作为对后续检测到所述VMM的错误的响应,用于将VMM状态信息转移到所述共享的存储器结构的装置;以及
用于调用在与向量相关联的所述VM上的中止处理程序以便经由对用于所述VMM的文件系统的访问来将存储在所述共享的存储结构的所述VMM状态信息转移到非易失性存储器的装置。
21.如权利要求20所述的设备,其特征在于,进一步包括用于将随机存取存储器RAM用作所述共享的存储器结构的装置。
22.如权利要求21所述的设备,其特征在于,进一步包括用于针对所述VM将所述RAM配置为只读访问权限的装置。
23.如权利要求20所述的设备,其特征在于,进一步包括用于配置中断描述表以存储所述向量值的装置。
24.如权利要求20所述的设备,其特征在于,进一步包括用于确定所述错误的严重性的装置。
25.如权利要求24所述的设备,其特征在于,进一步包括用于在所述严重性为第一等级时收集所述错误信息的第一解析度的装置,和用于在所述严重性为第二等级时收集所述错误信息的第二解析度的装置。
26.如权利要求20所述的设备,其特征在于,进一步包括用于通过VMX指令调用所述中止处理程序的装置。
27.如权利要求26所述的设备,其特征在于,进一步包括用于将所述VMX指令与进入中断信息字段相关联的装置。
28.如权利要求27所述的设备,其特征在于,进一步包括用于定制所述字段以包括所述向量值的装置。
29.一种机器可读介质,包括存储在所述机器可读介质上的指令,所述指令当被执行时使机器执行如权利要求1-13中任一项所述的方法。
CN201280073598.6A 2012-06-29 2012-06-29 用于捕捉轻量虚拟机管理器中的错误条件的方法、系统和装置 Expired - Fee Related CN104321748B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/077867 WO2014000253A1 (en) 2012-06-29 2012-06-29 Methods, systems and apparatus to capture error conditions in lightweight virtual machine managers

Publications (2)

Publication Number Publication Date
CN104321748A CN104321748A (zh) 2015-01-28
CN104321748B true CN104321748B (zh) 2018-02-02

Family

ID=49779557

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280073598.6A Expired - Fee Related CN104321748B (zh) 2012-06-29 2012-06-29 用于捕捉轻量虚拟机管理器中的错误条件的方法、系统和装置

Country Status (5)

Country Link
US (1) US9436576B2 (zh)
EP (1) EP2867770B1 (zh)
CN (1) CN104321748B (zh)
TW (1) TWI514283B (zh)
WO (1) WO2014000253A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102902599B (zh) * 2012-09-17 2016-08-24 华为技术有限公司 虚拟机内部故障处理方法、装置及系统
US9697102B2 (en) * 2012-11-21 2017-07-04 Sap Se Compare concurrent threads executions
JP5874879B2 (ja) * 2012-11-26 2016-03-02 株式会社日立製作所 I/oデバイスの制御方法及び仮想計算機システム
US9569223B2 (en) * 2013-02-13 2017-02-14 Red Hat Israel, Ltd. Mixed shared/non-shared memory transport for virtual machines
CN103559124B (zh) * 2013-10-24 2017-04-12 华为技术有限公司 故障快速检测方法及装置
US9400885B2 (en) 2014-01-10 2016-07-26 Bitdefender IPR Management Ltd. Computer security systems and methods using virtualization exceptions
GB2531770A (en) 2014-10-30 2016-05-04 Ibm Confidential Extracting System Internal Data
WO2017023270A1 (en) * 2015-07-31 2017-02-09 Hewlett Packard Enterprise Development Lp Data copy to non-volatile memory
US9747123B2 (en) * 2015-09-25 2017-08-29 Intel Corporation Technologies for multi-level virtualization
US20180336086A1 (en) * 2016-01-29 2018-11-22 Hewlett Packard Enterprise Development Lp System state information monitoring
US10031823B2 (en) 2016-03-21 2018-07-24 International Business Machines Corporation Dangerous system command detection
US9996440B2 (en) * 2016-06-20 2018-06-12 Vmware, Inc. Fault tolerance using shared memory architecture
US10061722B2 (en) 2016-10-17 2018-08-28 Qualcomm Incorporated Method to handle concurrent fatal events in a multicore execution environment
US10496425B2 (en) * 2017-02-21 2019-12-03 Red Hat, Inc. Systems and methods for providing processor state protections in a virtualized environment
US10169198B2 (en) * 2017-04-24 2019-01-01 International Business Machines Corporation Aggregating data for debugging software
US11347529B2 (en) 2019-03-08 2022-05-31 International Business Machines Corporation Inject interrupts and exceptions into secure virtual machine
US11308215B2 (en) 2019-03-08 2022-04-19 International Business Machines Corporation Secure interface control high-level instruction interception for interruption enablement
US10956188B2 (en) 2019-03-08 2021-03-23 International Business Machines Corporation Transparent interpretation of guest instructions in secure virtual machine environment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102207896A (zh) * 2010-03-31 2011-10-05 微软公司 虚拟机崩溃文件生成技术
CN102341789A (zh) * 2009-05-22 2012-02-01 国际商业机器公司 用于监视计算机系统的设备和方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5437033A (en) * 1990-11-16 1995-07-25 Hitachi, Ltd. System for recovery from a virtual machine monitor failure with a continuous guest dispatched to a nonguest mode
US7739684B2 (en) 2003-11-25 2010-06-15 Intel Corporation Virtual direct memory access crossover
US20060294518A1 (en) * 2005-06-28 2006-12-28 Richmond Michael S Method, apparatus and system for a lightweight virtual machine monitor
US8375386B2 (en) * 2005-06-29 2013-02-12 Microsoft Corporation Failure management for a virtualized computing environment
US8146082B2 (en) * 2009-03-25 2012-03-27 Vmware, Inc. Migrating virtual machines configured with pass-through devices
CN101872323A (zh) * 2009-04-22 2010-10-27 曾凡平 一种基于虚拟机的故障注入测试方法
CN101667144B (zh) 2009-09-29 2013-02-13 北京航空航天大学 一种基于共享内存的虚拟机通信方法
US8365020B2 (en) 2010-03-18 2013-01-29 Red Hat Israel, Ltd. Mechanism for saving crash dump files of a virtual machine on a designated disk

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102341789A (zh) * 2009-05-22 2012-02-01 国际商业机器公司 用于监视计算机系统的设备和方法
CN102207896A (zh) * 2010-03-31 2011-10-05 微软公司 虚拟机崩溃文件生成技术

Also Published As

Publication number Publication date
US9436576B2 (en) 2016-09-06
CN104321748A (zh) 2015-01-28
EP2867770A4 (en) 2016-02-10
TW201419156A (zh) 2014-05-16
EP2867770A1 (en) 2015-05-06
EP2867770B1 (en) 2020-05-27
US20140006877A1 (en) 2014-01-02
WO2014000253A1 (en) 2014-01-03
TWI514283B (zh) 2015-12-21

Similar Documents

Publication Publication Date Title
CN104321748B (zh) 用于捕捉轻量虚拟机管理器中的错误条件的方法、系统和装置
CN101454751B (zh) 在点对点互连中执行安全环境初始化的装置与方法
TWI544328B (zh) 用於經由背景虛擬機器的探測插入的方法及系統
US8826269B2 (en) Annotating virtual application processes
US8955108B2 (en) Security virtual machine for advanced auditing
RU2691187C1 (ru) Система и способы аудита виртуальной машины
US8387046B1 (en) Security driver for hypervisors and operating systems of virtualized datacenters
US10972475B1 (en) Account access security using a distributed ledger and/or a distributed file system
CN106055385B (zh) 监控虚拟机进程的系统和方法、过滤page fault异常的方法
CN104205113B (zh) 向操作系统报告恶意活动
CN103886259B (zh) 基于Xen虚拟化环境的内核级rootkit检测和处理方法
US20070083792A1 (en) System and method for error detection and reporting
WO2013061213A1 (en) Passive monitoring of virtual systems using extensible indexing
CN108959916A (zh) 用于访问安全世界的方法、装置和系统
CN105683985B (zh) 用于虚拟机内省的系统、方法及非暂时性计算机可读介质
CN104715202A (zh) 一种虚拟机中的隐藏进程检测方法和装置
CN107450962A (zh) 一种虚拟化运行环境下的异常处理方法、装置及系统
Chan A framework for live forensics
Wu et al. A secure and rapid response architecture for virtual machine migration from an untrusted hypervisor to a trusted one
CN107516039A (zh) 虚拟化系统的安全防护方法及装置
US7987391B2 (en) Fault tolerance using digests
Shropshire Hyperthreats: Hypercall-based dos attacks
Zhan et al. SAVM: A practical secure external approach for automated in‐VM management
US20230025126A1 (en) Virtualization layer assisted upgrading of in-guest agents
Nanavati Operator, number please: mediating access to shared resources for efficiency and isolation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
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: 20180202

Termination date: 20210629