CN109154903B - 用于虚拟机的恢复环境 - Google Patents

用于虚拟机的恢复环境 Download PDF

Info

Publication number
CN109154903B
CN109154903B CN201780027326.5A CN201780027326A CN109154903B CN 109154903 B CN109154903 B CN 109154903B CN 201780027326 A CN201780027326 A CN 201780027326A CN 109154903 B CN109154903 B CN 109154903B
Authority
CN
China
Prior art keywords
virtual machine
recovery
network
environment
access
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.)
Active
Application number
CN201780027326.5A
Other languages
English (en)
Other versions
CN109154903A (zh
Inventor
A·马歇尔
K·M·布罗斯
C·W·麦克龙
D·A·赫普金
M·约翰
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 Technology Licensing LLC
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 Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN109154903A publication Critical patent/CN109154903A/zh
Application granted granted Critical
Publication of CN109154903B publication Critical patent/CN109154903B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0793Remedial or corrective actions
    • 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/0709Error 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 distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server 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/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/0751Error or fault detection not based on redundancy
    • 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/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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/079Root cause analysis, i.e. error or fault diagnosis
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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/45583Memory management, e.g. access or allocation
    • 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/45587Isolation or security of virtual machine instances

Abstract

本文描述了用于虚拟机的恢复环境的技术。总体上,恢复环境提供了损坏的虚拟机能够在其中经历修复流程而不会降低损坏的虚拟机的安全性的安全环境。在至少一些实施方式中,恢复环境表示虚拟机的实例,虚拟机的实例被执行以包裹损坏的虚拟机来使得损坏的虚拟机能够被修复。

Description

用于虚拟机的恢复环境
背景技术
虚拟机(VM)表示计算机系统的仿真并且可以用于执行各种任务,诸如执行专用计算环境中的计算任务。VM可以以各种方式来实现,诸如本地生成的VM、远程托管的VM、等等。在远程托管的环境(例如,云环境)内运行的VM通常由其租户通过在VM的访客操作系统内起作用的网络连接来访问。由此带来的一个结果是访客操作系统内的错误配置或故障可以导致VM不可由其租户触及。一些托管环境试图提供对这样的VM的虚拟控制台访问以允许租户恢复它们。然而,虚拟控制台访问可能引起网络和安全性问题。另外,一些托管环境可以帮助租户进行VM恢复,然而这是复杂的并且扩展性较差。因此,当前VM恢复解决方案诸如从安全性、扩展性和资源使用的角度遭受许多缺点。
发明内容
提供本发明内容从而以简化的形式介绍下面在具体实施方式中进一步描述的一系列概念。本发明内容不旨在确定要求保护的主题的关键特征或必要特征,也不旨在用作确定要求保护的主题的范围的辅助。
本文描述了用于虚拟机的恢复环境的技术。总体上,恢复环境提供了损坏的虚拟机能够在其中经历修复流程而不会降低损坏的虚拟机的安全性的安全环境。在至少一些实施方式中,恢复环境表示被执行以包裹损坏的虚拟机来使得损坏的虚拟机能够被修复的虚拟机的实例。
附图说明
参考附图描述具体实施方式。在附图中,附图标记的最左边的(多个)数字标识该附图标记首次出现的附图。在说明书和附图中的不同实例中对相同附图标记的使用可以指示相似或相同的项。
图1是根据一个或多个实施例的可操作以采用本文讨论的技术的示例实施方式中的环境的图示。
图2描绘了根据一个或多个实施例的用于生成用于虚拟机的恢复环境的示例实施情形。
图3描绘了根据一个或多个实施例的用于将损坏的虚拟机返回到运行状态的示例实施情形。
图4描绘了根据一个或多个实施例的用于生成用于损坏的虚拟机的恢复环境的示例实施情形。
图5描绘了根据一个或多个实施例的用于实例化恢复环境的示例实施情形。
图6描绘了根据一个或多个实施例的用于试图修复损坏的虚拟机的示例实施情形。
图7描绘了根据一个或多个实施例的用于将损坏的虚拟机返回到运行状态的示例实施情形。
图8描绘了根据一个或多个实施例的用于生成用于屏蔽的虚拟机的恢复环境的示例实施情形。
图9是描述了根据一个或多个实施例的用于恢复损坏的虚拟机的方法中的步骤的流程图。
图10是描述了根据一个或多个实施例的用于生成用于损坏的虚拟机的虚拟机恢复环境的方法中的步骤的流程图。
图11是描述了根据一个或多个实施例的用于执行用于损坏的虚拟机的恢复流程的方法中的步骤的流程图。
图12图示了被配置为实现本文描述的技术的实施例的如参考图1所描述的示例系统和计算设备。
具体实施方式
概述
本文描述了用于虚拟机的恢复环境的技术。总体上,这些技术使得云托管环境能够创建被称为VM恢复环境的管理程序主机,VM恢复环境本身是虚拟机。虚拟机恢复环境可以被用于包裹损坏的虚拟机并且提供在其中可以在损坏的虚拟机中执行恢复过程的安全环境。在至少一些实施方式中,虚拟机恢复环境由VM主机托管,但是由租户拥有,并且有效地向该租户提供对管理程序的控制台访问和对虚拟机恢复环境的资产中的全部的完全控制。在VM存在于通常将阻挡从VM主机的环境对该VM的访问的增强安全环境中的实施方式中,这些控制由虚拟机恢复环境保留,由此确保修复环境不需要安全性的降低。
例如,本文描述的技术使得能够在由租户拥有的VM内创建高保真度VM托管环境。这允许租户对损坏的VM和其资产的扩展的访问,而不要求主机允许租户对主机的环境的任何提升的或特权的访问。
在至少一些实施方式中,这表示零复制模型,其允许租户拥有的VM恢复环境具有对诸如虚拟硬盘文件的资产的访问,而无需执行可能代价高且缓慢的额外复制操作。另外,VM租户可以拥有具有原始VM的安全保护的恢复环境,由此消除租户降低安全性和隔离以实现恢复的需要。
因此,本文描述的用于虚拟机的恢复环境的技术生成虚拟机恢复环境,虚拟机恢复环境包裹损坏的VM,并且使得损坏的VM能够降低它自己的访问保护,同时虚拟机恢复环境本身强制执行对损坏的VM的原始访问保护。这使得各种诊断和维护流程能够在损坏的VM上被执行,而不会使损坏的VM暴露于由诸如VM主机的外部方的未授权的访问。
示例环境
图1是可操作以采用本文讨论的用于虚拟机的恢复环境的技术的示例实施方式中的环境100的图示。环境100包括租户设备102,其可以被实现为任何适合的设备,诸如通过举例而非限制的方式,智能电话、平板计算机、便携式计算机(例如膝上型计算机)、台式计算机、可穿戴设备、等等。下面在图12中示出并且描述了租户设备102的各种不同示例中的一个示例。
环境100还包括虚拟机(“VM”)主机104,其表示包括VM模块106的基于网络的服务,VM模块106表示用于实现针对包括租户设备102的不同设备的虚拟机(“VM”)108的功能。一般地,VM模块106表示实例化并且管理VM 108的实例的功能。在至少一些实施方式中,VM模块106表示在VM主机104上运行的管理程序的实例。
为了使得租户设备102的用户能够与由VM主机104开发的VM 108交互,租户设备102包括VM接口110。根据各种实施方式,VM接口110表示将VM 108a暴露于租户设备102的功能。一般地,VM 108a表示由VM主机104托管的VM 108的实例。VM接口110例如生成图形用户接口(GUI)112,用户可以经由GUI 112与VM 108a交互,诸如向VM 108a提供输入并且消耗来自VM 108a的输出。
租户设备102还包括主机接口114,主机接口114表示使得租户设备102能够与VM108a外部的VM主机104对接的功能。主机接口114例如与VM主机104的租户接口116对接。在至少一些实施方式中,租户接口116表示实现在租户设备102与VM主机104之间的通信的应用编程接口(API)和/或其他端口。因此,主机接口114与租户接口116之间的通信使得租户设备102的用户能够请求VM主机104实例化针对租户设备102的VM 108a。主机接口114还向租户设备102提供其他功能,诸如使得不同VM 108的状态能够被查看和/或操纵。例如,主机接口114表示允许租户设备102可见的显示不同VM 108的状态的VM仪表板GUI 118。VM仪表板118例如指示VM 108a的操作状态,诸如可用于VM 108a的资源和VM 108a的健康状态。
一般地,VM 108a表示自包含的虚拟操作环境,其包括它自己的操作系统、应用、数据存储设备、接口等等。另外,VM 108a表示被保护免受VM主机104的访问的屏蔽的VM。例如,由VM 108a利用的盘被加密使得VM主机104不能够“以明文”(例如以未加密的形式)访问由VM 108a利用的数据。在至少一些实施方式中,由VM 108a采取措施来确保VM主机104的完整性,诸如通过与受信任平台模块(TPM)120交互以执行由VM主机104利用的主机操作系统(OS)122的代码的测量的启动来确保VM主机104尚未被未授权的和/或恶意的实体篡改。因此,VM 108a表示租户设备102可以在其中执行各种任务并且操纵数据而没有对VM主机104的访问和可见性的安全环境。
偶尔,使VM 108a发生故障的错误事件可能发生。例如,运行VM 108a的代码中的错误可能发生,租户设备102与VM主机104之间的网络连接性问题可能发生,等等。错误事件例如使VM 108a不对租户设备102的输入做出响应。因此,并且如下面进一步详述的,VM主机104的恢复模块124创建使得租户设备102能够在VM 108a上实现维护流程以试图将VM 108a返回到正常操作状态的恢复环境。恢复模块124例如表示用于执行本文描述的用于虚拟机的恢复环境的各种方面的功能。
在至少一些实施方式中,当关于VM 108a的错误事件发生时,租户设备102经由主机接口114与租户接口116对接以请求针对VM 108a生成恢复环境。因此,主机接口114表示与VM接口110分开的接口,使得即使在VM 108a变得没有响应的情况下,主机接口114与租户接口116之间的通信保持可操作(例如,可响应)。备选地或额外地,VM主机104(例如,VM模块106和/或恢复模块124)自动地检测VM 108a中的错误状况,并且生成用于VM 108a的恢复环境。
如下面进一步详述的,本文描述的用于虚拟机的恢复环境的技术可以被用于生成使得通常由VM 108a实现的安全保护能够被降低和/或消除的用于VM 108a的恢复环境,同时恢复环境强制执行安全保护来防止由诸如VM主机104的外部实体对VM 108a的访问。可以在恢复环境内执行各种维护和修复流程以试图修复和/或恢复损坏的VM 108a。下面呈现了涉及用于虚拟机的恢复环境的实施和操作的进一步细节。
环境100还包括租户设备102和VM主机104经由其与彼此交换数据的网络126。网络126可以以各种方式来实现,诸如不同有线和/或无线网络(例如互联网)的组合。备选地或额外地,网络126可以被实现为本地网络,诸如局域网(LAN)、公司网(corpnet)等等。
已经描述了本文描述的技术可以操作于其中的示例环境,现在考虑对根据一个或多个实施例的一些示例实施情形的讨论。示例流程可以被实现在以上讨论的环境100、下面描述的系统1200和/或任何其他适合的环境中。
图2描绘了根据一个或多个实施方式的用于生成用于VM的恢复环境的示例实施情形200。情形200包括租户设备102和以上介绍的VM主机104。在情形200的上部分中,针对租户设备102生成VM 108a。租户设备102的用户202例如与主机接口114交互以请求VM的实例。备选地或额外地,主机接口114发起自动过程来请求VM的实例,例如,独立于来自用户202的直接请求。因此,主机接口114经由主机接口114的租户接口116与VM模块106交互以请求VM的实例。因此,VM模块106生成VM 108a。
在至少一些实施方式中,VM 108a表示屏蔽的VM使得在租户设备102与VM 108a之间交换的数据被加密,并且不可以未加密的形式从VM 108a的外部访问。例如,租户设备102和VM 108a具有对可以用于对在租户设备102与VM 108a之间交换的数据进行加密和解密的密钥。然而,密钥不可由VM主机104访问,并且因此VM主机104不可以将在VM 108a与租户设备102之间交换的数据解密成未加密的形式。
前进到情形200的下部分,错误事件204发生,其使VM 108a对租户设备102不做出响应。例如,由于错误事件204,VM接口110不能够访问VM 108a。在本讨论中讨论了可以造成没有响应的VM的不同事件。因此,没有响应的VM 108a被描绘为损坏的VM 108b,其表示处于没有响应和/或以其他方式损坏的状态的VM 108a。因此,发起恢复过程206以试图将损坏的VM 108b恢复到响应状态。
一般地,恢复过程206可以以各种方式发起。用户202例如可以检测到VM 108a已经变得没有响应并且可以启动恢复过程206。例如,用户202可以诸如经由仪表板GUI 118与主机接口114交互以向VM主机104通知VM 108a没有响应并且请求发起恢复过程206。在另一实施方式中,VM接口110检测到VM 108a没有响应并且通知主机接口114。作为响应,主机接口114(例如,经由租户接口116)与VM主机104交互以使恢复过程206被发起。作为又一实施方式,主机接口114本身可以检测到VM 108a没有响应(例如,独立于来自租户设备102的通知),并且可以发起恢复过程206。
作为恢复过程206的一部分,恢复模块124生成可以用于在损坏的VM 108b上执行各种诊断和修复流程同时保护损坏的VM 108b的资产免受未授权的访问的恢复环境208。在至少一些实施方式中,恢复环境208被实现为包裹损坏的VM 108b并且代表损坏的VM 108b强制执行安全保护的单独的VM。例如,在恢复环境208被创建并且损坏的VM 108b被嵌入恢复环境208内之后,通常针对VM 108a强制执行的安全保护可以被降低和/或消除以使得能够在恢复环境208的上下文中在损坏的VM 108b上执行诊断和修复流程。当损坏的VM 108b被放置在恢复环境208内时,例如,损坏的VM 108b仍然过渡地(transitively)获得相同保护级别,即使它不需要具有来自其运行于其中的环境(即恢复环境208)的直接保护。为了实现这一点,在保护的环境外部访问损坏的VM 108b需要的加密密钥或其他秘密可以在恢复环境208内可获得。恢复环境208因此变得值得信任以访问并且作用于损坏的VM 108b。
因此,恢复环境208强制执行在其周边的安全保护以保护损坏的VM 108b免受未授权的访问,同时损坏的VM 108b的安全保护被降低为恢复过程206的一部分。VM主机104例如通过由恢复环境208施加的安全保护(例如,加密和解密)被阻止以明文访问损坏的VM 108b的数据。
图3描绘了根据一个或多个实施方式的用于将损坏的VM返回到运行状态的示例实施情形300。总体上,情形300表示情形200的继续。
在情形300的上部分中,损坏的VM 108b由恢复环境208包裹并且恢复过程206在进行中。在该讨论中稍后呈现恢复过程206的示例细节。
前进到情形300的下部分,损坏的VM 108b经由恢复过程206修复以生成恢复的VM108c。总体上,恢复的VM 108c表示原始VM 108ba的修复的版本,并且对来自VM接口110的输入做出响应。因此,恢复环境208被关闭并且恢复的VM 108c运行在VM主机104上。在至少一些实施方式中,当错误事件204发生时,用户202正在VM 108a上执行特定任务。因此,用户202可以使用恢复的VM 108c重新开始该特定任务,诸如从当错误事件204发生时存在的VM108a的任务状态。
尽管情形300表示损坏的VM 108b能够被修复并且恢复服务的实施方式,但是要认识到,在一些其他实施方式中,恢复过程600可能在修复损坏的VM 108b中未成功。如果恢复过程206未成功,则一个或多个取证过程可以被实现,诸如以恢复存储在由VM 108a使用的数据存储中的数据,获得指示错误事件204为什么发生(例如,故障转储)的数据,等等。
以上描述的情形提供本文描述的用于虚拟机的恢复环境的技术的总体概览。现在考虑对用于执行用于虚拟机的恢复环境的各种方面的详细方式的讨论。
图4描绘了根据一个或多个实施方式的用于生成用于损坏的VM的恢复环境的情形400。情形400包括VM 108a和VM 108a的各种属性,包括存储在VM数据存储404上的访客操作系统(OS)402以及连接性模块406。一般地,访客OS 402表示由VM主机104初始地生成并且被分配给VM 108a以使得VM 108a能够操作的OS。VM数据存储404表示VM主机104上的被分配给VM 108a的数据存储。在至少一些实施方式中,VM数据存储404表示由VM主机104针对VM108a生成的虚拟盘。
连接性模块406表示使得VM 108a能够访问网络连接性使得可以在租户设备102与VM 108a之间交换数据的功能。连接性模块406例如包括标识VM 108a被连接到的虚拟网络交换机和/或其他网络连接性点(诸如针对到网络126的连接性)的数据。
前进到情形400的下部分,错误事件204发生,其使VM 108a变成损坏的VM 108b。损坏的VM 108b例如不对来自租户设备102的通信做出响应。错误事件204的示例包括:
·防止租户设备102的远程连接性的访客OS 402的错误配置。
·防止访客OS 402启动的VM 108a的错误配置。
·致使访客OS 402不可启动和/或没有响应的对VM数据存储404的损坏。
·修改或损坏防止对密钥408和/或针对VM 108a的操作所需要的其他资产的访问。一般地,密钥408表示可以用于各种目的的密钥(例如,加密密钥),诸如对在VM 108a与租户设备102之间交换的数据进行加密和解密,解密访客OS 402,等等。
因此,恢复过程206被发起以生成恢复环境208以提供在其中可以试图对损坏的VM108b的修复的安全空间。恢复过程206可以以各种方式被发起,例如响应于从主机接口114到租户接口116的指示VM 108a被损坏的指令,并且请求针对损坏的VM 108b创建恢复环境208。
关于情形400进一步地,恢复模块124执行一组动作来生成恢复环境208。恢复模块124例如确定来自VM模块106的关于VM 108a的各种描述性信息,诸如要用于生成恢复环境208的信息。
在该特定示例中,恢复模块124创建表示要用于执行恢复环境208的OS的恢复操作系统(“OS”)410。在至少一些实施方式中,恢复OS 410是主机OS 122的实例和/或副本。例如,恢复OS 410表示主机OS 122的流水线版本,其省略了实现恢复环境208不需要的某些部件。
恢复模块124还创建了传输盘412,其表示可以用于存储针对恢复环境208的各种信息的虚拟存储位置。恢复模块124然后存储VM定义414作为传输盘412的一部分。一般地,VM定义414包括定义VM 108a的属性的各种状态信息,诸如固件状态、VM设置、在错误事件204的时间的VM执行状态等等。在至少一些实施方式中,从VM模块106获得VM定义414。恢复模块124然后列举与损坏的VM 108b有关的网络信息,并且将其写入到传输盘412作为网络信息416。网络信息416例如包括来自连接性模块406的信息,诸如针对虚拟网络交换机的标识符和由VM 108a利用的交换机扩展。
关于情形400进一步地,恢复模块124列举损坏的VM 108b的VM数据存储404以生成存储信息418。存储信息418包括各种类型的信息,诸如针对VM数据存储404的名称(例如,盘名称)、针对VM数据存储404的连接性信息(例如,小型计算机系统接口(SCSI)总线号和目标标识符,集成驱动电子(IDE)控制器位置,等等)、针对被包括为VM数据存储404的一部分的盘的盘位置路径等等。存储信息418然后被存储在传输盘412上。如在下面的情形中所描绘的,恢复模块124使用传输盘412作为实例化恢复环境208的一部分。
图5描绘了根据一个或多个实施方式的用于实例化恢复环境的示例实施情形500。情形500总体上表示以上描述的情形400的继续。
在情形500的上部分中,恢复模块124实例化恢复环境208。作为实例化恢复环境208的一部分,恢复模块124将包括恢复OS 410的启动盘502连接到恢复环境208。
恢复模块124然后将来自传输盘412的各种信息应用到恢复环境208。例如,恢复模块124使用网络信息416来生成用于恢复环境208的网络环境504。一般地,网络环境504复制VM 108a的原始网络环境的各种方面,诸如以向恢复环境208提供到租户设备102的网络连接性。在至少一个实施方式中,网络环境504包括将恢复环境连接到租户设备102被连接到的面向租户网络(诸如以上介绍的网络126)的虚拟网络交换机。
关于情形500进一步地,恢复模块124将VM数据存储404与损坏的VM 108b断开连接,并且然后将在传输盘412的存储信息418中标识的VM数据存储404连接到恢复环境208。恢复模块124然后在传输盘412中记录盘名称以及VM数据存储404如何被连接到恢复环境208(例如,SCSI总线和目标)作为更新的存储信息506。因此,恢复环境208具有对VM数据存储404和存储在VM数据存储404上的数据的访问。根据各种实施方式,将VM数据存储404与损坏的VM 108b断开连接,并且将VM数据存储404连接到恢复环境208使得恢复环境208能够具有对VM数据存储404的访问而无需将存储在VM数据存储404上的数据复制到恢复环境208。因此,用于虚拟机的恢复环境的技术提供“零复制”模型,其通过不要求为了使恢复环境具有对盘的访问而复制损坏的VM的盘而节省系统资源。
恢复模块124然后启动恢复环境208,其使用恢复OS 410来启动并执行。在至少一些实施方式中,恢复模块124直到恢复模块124被通知针对损坏的VM 108b的修复流程被完成和/或恢复环境208被关闭,才执行与恢复环境208的进一步交互。
因此,恢复代理508(例如,作为恢复OS 410的一部分)在恢复环境208内执行并且执行各种动作来使得恢复环境208能够执行并且访问原始VM 108a的各种资产。恢复代理508例如使得恢复环境208能够访问由网络环境504定义的网络连接性并且访问到VM数据存储404的连接性。另外,来自VM定义414的状态信息被映射到恢复环境208以使来自原始VM108a的各种状态信息被应用到恢复环境208。
恢复环境208还包括使得租户设备102能够访问恢复环境510的互联网协议(IP)地址510和证书512。恢复代理508因此将IP地址510和证书512传送到租户设备102。恢复环境208现在处于运行状态,其复制原始VM 108a的各种属性。另外,恢复环境208可由租户设备102经由IP地址510和证书512访问。
图6描绘了根据一个或多个实施方式的用于试图修复损坏的VM的示例实施情形600。情形600总体上表示以上描述的情形500的继续。
在情形600中,恢复环境207执行并且具有对诸如以上所描述的原始VM 108a的各种属性和资源的访问。另外,租户设备102通过经由IP地址510连接到恢复环境208并且经由证书512关于恢复OS 410进行认证而具有对恢复环境208的访问。在至少一些实施方式中,租户设备102具有对密钥602的访问,这使得能够在恢复环境208与租户设备102之间交换的数据被加密和解密。VM主机104不具有对密钥602的访问,并且因此不能够解密在恢复环境208与租户设备102之间交换的加密的数据。因此,这样的数据被保护免受恢复环境208外部对VM主机104内的未加密的形式的访问。
一般地,恢复环境208表示可由租户设备102的VM接口110访问的租户拥有的VM。因此,VM接口110发起修复流程604以试图将损坏的VM 108b返回到功能(例如响应)状态。修复流程604可以包括各种诊断和补救动作,诸如调试被包括为VM定义414的一部分的代码(例如,对访客OS 402的内核调试),数据存储404上的诊断(例如,盘诊断),验证网络环境504的网络设置正确,对存储在VM数据存储404上的数据的数据恢复,等等。
在情形600中,租户设备102标识错误事件204的来源并且成功地修复损坏的VM108b。一般地,修复可以采取各种形式,诸如调试损坏的VM 108b的代码,修复VM数据存储404上的盘错误,校正网络环境504的网络设置,等等。因此,VM接口110将指示修复流程604的成功状态的状态文件606写入到传输盘412。VM接口110还将定义损坏的VM 108b的修复的版本的修复的VM定义608连同将损坏的VM 108b返回到响应状态需要的其他信息写入到传输盘412。VM接口110可以然后发起恢复环境208的关闭,使得损坏的VM 108b的修复的版本能够被实例化。
尽管参考成功地修复了损坏的VM 108b讨论了情形600,但是在其他实施方式中修复流程604未成功。如果修复流程604未成功,则各种流程可以被执行以最小化由不能访问损坏的VM 108b的修复的版本造成的负面影响。例如,数据恢复可以被执行以试图恢复存储在VM数据存储404中的数据并且将数据存储在另一位置处,诸如在不同功能的VM中。另外,VM数据存储404可以被擦除以最小化对存储在盘中的数据的未授权的访问的风险。如果在修复流程604期间标识了损坏的VM 108b中的任何错误,则错误可以被写入到诊断文件以供未来参考。
图7描绘了根据一个或多个实施方式的用于将损坏的VM返回到运行状态的示例实施情形700。情形700总体上表示以上描述的情形600的继续。
在情形700中,VM主机104上的VM模块106检测到恢复环境208被关闭和/或修复的VM可用于被实例化。VM接口110例如关闭恢复环境208,并且VM模块106检测到恢复环境208被关闭。备选地或额外地,租户设备102向VM模块106通知恢复的VM可用于被实例化。
因此,VM模块106访问传输盘412并且读取状态文件606,其指示修复的VM定义608可用于实例化损坏的VM 108b的修复的版本。备选地,在修复流程604未成功的实施方式中,状态文件606可以指示损坏的VM 108b不能够被修复。在这样的情形中,VM模块106可以丢弃损坏的VM 108b。
关于情形700进一步地,VM模块106使用来自传输盘412的信息来生成恢复的VM108c。例如,VM模块106实例化恢复的VM 108c并且将修复的VM定义608写入到恢复的VM108c。在至少一些实施方式中,这利用修复的VM定义608重写损坏的VM 108b的定义。VM模块106然后验证修复的VM定义608符合由VM主机104强制执行的任何VM策略,诸如防止VM对VM主机104的受保护的资产的未授权的访问的安全策略。
为了使得能够访问由VM 108a原始使用的网络连接性,VM模块106基于在网络信息416中规定的连接性信息将恢复的VM 108c连接到一个或多个网络。VM模块106然后将恢复的VM 108c连接到在更新的存储信息506中标识的VM数据存储702。一般地,VM数据存储702是原始VM数据存储404的变本。在至少一些实施方式中,VM数据存储702包括原始存储在VM数据存储404中的相同数据和/或数据的副本。备选地或额外地,VM数据存储702表示VM数据存储404的修复的版本。在恢复过程206期间,VM数据存储404中的一个或多个的位置可能已经改变,并且因此更新的存储信息506反映位置(例如,盘位置)的任何变化,使得恢复的VM108c可以被连接到VM数据存储702。
关于情形700进一步地,VM主机将IP地址704和证书706传送到租户设备102。一般地,IP地址704表示恢复的VM 108c的地址。因此,租户设备102可以使用IP地址704来访问恢复的VM 108c的位置,并且可以使用证书706来对恢复的VM 108c的访问进行认证。因此,VM模块106开始对恢复的VM 108c的执行,使得租户设备102可以与恢复的VM 108c交互。在至少一些实施方式中,租户设备102可以重新开始当错误事件204发生时正在执行的任务。恢复的VM 108c例如开始以当错误事件204发生时和/或当VM 108a变得没有响应时原始VM108a正在执行的状态执行。
图8描绘了根据一个或多个实施方式的用于生成用于屏蔽的VM的恢复环境的示例实施情形800。情形800例如呈现可以被应用在以上描述的各种情形中的额外细节。
情形800包括以上描述的损坏的VM 108b。在该特定情形中,损坏的VM 108b包括访客OS 402和用于确保密钥802安全的虚拟信任平台模块(“vPTM”)802。vTPM 802例如表示保护对密钥804的访问的硬件TPM的虚拟版本。一般地,密钥804表示可以用于对与损坏的VM108b相关联的数据进行加密和解密的加密密钥。访客OS 402例如以加密的形式被存储。因此,密钥804可以用于解密访客OS 402以使得访客OS 402能够执行。如以上所讨论的,不具有对密钥804的访问的一方(例如,VM主机104)不能够访问处于未加密的形式的损坏的VM108b内的数据,并且因此损坏的VM 108b被保护免受未授权的访问。
为了生成用于损坏的VM 108b的恢复环境,恢复模块124使用恢复模板806。一般地,恢复模板806表示描述可以被实例化以创建用于损坏的VM 108b的恢复环境的虚拟机恢复环境的映像的数据。在该特定示例中,恢复模板806包括恢复OS 410和恢复密钥808。恢复OS 410例如以加密的形式被存储,并且因此恢复密钥808可以用于解密恢复OS 410以使得恢复OS 410能够执行。
前进到情形800的下部分,VM主机104基于恢复模板806来生成恢复环境208。在该特定示例中,恢复环境208表示使用恢复OS 410执行的屏蔽的VM。
关于情形800进一步地,恢复环境208利用损坏的VM 108b的vTPM 802来确保恢复密钥808安全并且访问恢复密钥808。vTPM 802例如包括使得vTPM能够解封恢复密钥808的资产(例如,另一密钥)使得恢复密钥808可以用于解密恢复OS 410,由此使得恢复OS 410能够执行并且实现针对恢复环境208的各种任务。
一旦创建并且运行了恢复环境208,针对损坏的VM 108b的数据保护可以被降低以使得能够执行各种修复流程,诸如以上所描述的。例如,恢复环境208可以在没有损坏的VM108b的原始数据保护的情况下实例化损坏的VM 108b以允许恢复环境208具有对损坏的VM108b的数据和功能的无阻碍访问。在至少一些实施方式中,如果损坏的VM 108b的原始保护被损坏(例如,丢失加密密钥),则恢复环境208仍然可以访问损坏的VM 108b,因为损坏的VM108b在没有其原始安全保护(例如数据加密)的情况下被实例化。
损坏的VM 108b的数据例如可以以未加密的形式由租户设备102访问,同时安全保护由恢复环境208强制执行以防止损坏的VM 108b的数据以明文被诸如VM主机104的其他实体访问。
根据各种实施方式,在以上的先前情形中讨论的恢复流程的各种方面可以经由恢复环境208被应用以试图恢复损坏的VM 108b。
已经讨论一些示例实施情形,现在考虑对根据一个或多个实施方式的一些示例流程的讨论。
以下讨论描述了根据一个或多个实施方式的用于虚拟机的恢复环境的一些示例流程。示例流程可以被采用在图1的环境100、图12的系统1200和/或任何其他适合的环境中。这些流程例如表示用于实现以上描述的实施情形的各方面的示例流程。在至少一些实施方式中,针对各种流程描述的步骤被自动实现并且独立于用户交互。
图9是描述了根据一个或多个实施方式的方法中的步骤的流程图。该方法描述了根据一个或多个实施方式的用于恢复损坏的虚拟机的示例流程。
步骤900检测与虚拟机有关的错误状况发生,虚拟机具有特定访问保护级别。错误状况可以由各种实体(诸如租户设备102、VM主机104、等等)检测。以上讨论了不同错误状况和错误状况的原因的示例。
步骤902生成对虚拟机强制执行特定访问保护级别并且使得虚拟机能够降低特定访问保护级别的虚拟机恢复环境。根据各种实施方式,虚拟机恢复环境在虚拟机经历修复流程的同时对虚拟机强制执行特定访问保护级别。
步骤904接收虚拟机被至少部分地恢复以生成恢复的虚拟机的指示。VM主机104例如接收指示。一般地,指示可以以各种方式来出现,诸如来自租户设备102的通知,恢复环境被关闭(例如,停止执行)的指示,等等。
步骤906使恢复的虚拟机被执行。在至少一些实施方式中,这包括将包括针对恢复的VM的状态信息的定义文件写入到存储位置,并且使得恢复的VM能够访问存储位置以使恢复的虚拟机能够至少部分地使用定义文件来执行。VM模块106例如使用针对恢复的VM生成的恢复的VM定义数据来实例化虚拟机。恢复的VM定义数据例如表示针对恢复的VM规定的不同状态信息,诸如OS状态、OS设置、应用设置、用户特定设置、对恢复的VM可用的设备、等等。在至少一些实施方式中,恢复的VM定义数据包括来自经历了错误状态并且被恢复的原始VM的定义数据。
一般地,恢复的VM表示原始损坏的VM的恢复的实例。用户例如可以在恢复的VM上重新开始在错误事件发生的情况下正在原始VM上执行的任务。
图10是描述了根据一个或多个实施方式的方法中的步骤的流程图。该方法描述了根据一个或多个实施方式的用于生成用于损坏的VM的虚拟机恢复环境的示例流程。
步骤1000将描述虚拟机的属性的描述数据保存到存储位置。一般地,属性包括关于损坏的VM的各种信息,诸如定义VM的状态的定义数据、定义VM的网络连接性的网络信息、标识针对VM的存储位置(例如,虚拟盘地址)的存储信息、等等。
步骤1002将虚拟机恢复环境实例化为不同的虚拟机的实例。VM模块106例如生成VM恢复环境作为不同的VM的实例,诸如使用描述数据来配置不同的VM的各种方面。
步骤1004基于描述数据来使不同的虚拟机的实例执行。一般地,这使得VM恢复环境能够具有对损坏的VM的不同资产的访问,诸如网络连接性、存储位置和存储在存储位置中的数据、VM设置、等等。
如以上所讨论的,VM恢复环境强制执行安全保护,其保护损坏的VM的数据不会以未加密的形式暴露于VM恢复环境外部的实体,诸如VM主机104。例如,VM恢复环境208和租户设备102包括使得它们能够对在它们之间交换的数据进行加密和解密的一组密钥。在至少一些实施方式中,这使得损坏的VM的数据能够在VM恢复环境内被解密,使得各种修复流程可以被执行在处于未加密的状态的损坏的VM上同时保护未加密的数据不被暴露于VM恢复环境外部。
图11是描述了根据一个或多个实施方式的方法中的步骤的流程图。该方法描述了根据一个或多个实施方式的用于执行用于损坏的VM的恢复流程的示例流程。
步骤1100确定关于虚拟机的错误状况发生。租户设备102例如确定VM经历错误状态。例如,VM变得不对租户设备102做出响应。备选地或额外地,VM主机104检测关于VM的错误状况。
步骤1102发起针对虚拟机生成虚拟机恢复环境的请求。在至少一些实施方式中,租户设备102请求VM主机102实例化VM恢复环境,诸如经由主机接口114与租户接口116之间的交互。备选地或额外地,VM主机104独立于来自租户设备102的查询而发起请求。VM主机104例如检测错误状况。
步骤1104接收针对虚拟机恢复环境的地址。例如,租户设备102接收由VM主机104分配给VM恢复环境的网络地址(例如,IP地址)。在至少一些实施方式中,VM主机104还将证书传送到租户设备102,证书可用于关于VM恢复环境对VM恢复环境的访问进行认证。证书的示例包括认证因素、用户名、密码、生物标识因素、等等。证书可以被加密使得租户设备102和VM恢复环境可以使用密钥来解密证书,但是VM主机本身不能。
步骤1106使用地址来访问虚拟机恢复环境以经由与虚拟机恢复环境的交互在虚拟机上执行修复流程。在至少一些实施方式中,主机接口114与VM恢复环境交互以执行各种流程来试图恢复损坏的VM。以上讨论了不同修复流程的示例。
步骤1108确定修复流程是否成功。租户设备102例如确定修复流程在恢复损坏的VM中成功,诸如生成了表示损坏的VM的修复的且可执行的版本的恢复的VM。
如果修复流程成功(“是”),则步骤1110与恢复的VM交互。VM主机104例如执行恢复的VM,并且使得租户设备102经由VM接口110与恢复的VM交互。在至少一些实施方式中,这包括VM主机104将针对恢复的VM的网络地址和证书传送到租户设备102。
如果修复流程未成功(“否”),则步骤1112试图恢复损坏的VM的数据。租户设备102例如试图恢复来自损坏的VM的存储位置的数据,并且将数据存储在可由租户设备102访问的不同的存储位置(例如存储盘)中。在至少一些实施方式中,租户设备102使损坏的VM被擦除以避免将损坏的VM的数据暴露于诸如VM主机104的未授权的实体。
因此,本文描述的用于虚拟机的恢复环境的技术提供了用于恢复损坏的虚拟机的方式,同时保护损坏的虚拟机免受未授权的访问和篡改。
已经讨论一些示例流程,现在考虑对根据一个或多个实施例的用于虚拟机的恢复环境可以被实现于其中的示例系统和设备的讨论。
示例系统和设备
图12图示了总体上在1200处的包括表示可以实现本文中描述的各种技术的一个或多个计算系统和/或设备的示例计算设备1202的示例系统。例如,以上参考图1讨论的租户设备102和/或VM主机104可以被实现为计算设备1202。计算设备1202可以例如为服务提供者的服务器、与客户端(例如,客户端设备)相关联的设备、片上系统、和/或任何其他适合的计算设备或计算系统。
如所图示的示例计算设备1202包括被通信地耦合到彼此的处理系统1204、一个或多个计算机可读介质1206以及一个或多个输入/输出(I/O)接口1208。尽管未示出,但是计算设备1202还可以包括将各种组件彼此进行耦合的系统总线或其他数据和命令传递系统。系统总线可以包括不同总线结构的任何一个或组合,诸如存储器总线或存储器控制器、外围总线、通用串行总线、和/或利用各种总线架构中的任何的处理器或本地总线。也预见到各种其他示例,例如控制和数据线路。
处理系统1204表示用于使用硬件来执行一个或多个操作的功能。因此,处理系统1204被图示为包括可以被配置为处理器、功能块等等的硬件元件1210。这可以包括作为专用集成电路或使用一个或多个半导体形成的其他逻辑器件的硬件实施方式。硬件元件1210不受它们所形成的材料或其中采用的处理机制限制。例如,处理器可以包括(多个)半导体和/或晶体管(例如,电子集成电路(IC))。在这样的上下文中,处理器可执行指令可以是电子可执行指令。
计算机可读介质1206被图示为包括存储器/存储设备1212。存储器/存储设备1212表示与一个或多个计算机可读介质相关联的存储器/存储设备容量。存储器/存储设备1212可以包括易失性介质(诸如随机存取存储器(RAM))和/或非易失性介质(诸如只读存储器(ROM)、闪存、光盘、磁盘、等等)。存储器/存储设备1212可以包括固定介质(例如,RAM、ROM、固定硬盘驱动器、等等)以及可移除介质(例如,闪存、可移除硬盘驱动器、光盘、等等)。计算机可读介质1206可以以如下面进一步描述的各种其他方式来配置。
(多个)输入/输出接口1208表示允许用户向计算设备1202输入命令和信息并且还允许使用各种输入/输出设备将信息呈现给用户和/或其他部件或设备的功能。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风(例如,用于语音识别和/或口头输入)、扫描仪、触摸功能(例如,被配置为检测物理触摸的电容性或其他传感器)、相机(例如,其可以采用可见光波长或不可见光波长(诸如红外频率)来检测不包含触摸的移动,如手势)等等。输出设备的示例包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网卡、触觉响应设备等等。因此,计算设备1202可以以如下面进一步描述的各种方式来配置以支持用户交互。
各种技术可以在软件、硬件元件或程序模块的总体上下文中进行描述。总体上,这样的模块包括例程、程序、对象、元件、组件、数据结构、以及类似物,其执行特定任务或实现特定抽象数据类型。如本文中所使用的术语“模块”、“功能”、“实体”和“组件”一般表示软件、硬件或其组合。本文中描述的技术的特征是平台无关的,意味着技术可以被实施在具有各种处理器的各种商用计算平台上。
所描述的模块和技术的实施方式可以被存储在某种形式的计算机可读介质上或跨某种形式的计算机可读介质被发送。计算机可读介质可以包括可以由计算设备1202访问的各种介质。通过举例而非限制性的方式,计算机可读介质可以包括“计算机可读存储介质”和“计算机可读信号介质”。
“计算机可读存储介质”可以是指实现对信息的永久存储(与仅仅信号传输、载波、或信号本身形成对比)的介质和/或设备。计算机可读存储介质不包括信号本身。计算机可读存储介质包括在适合于存储诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或其他数据的信息的方法或技术中的实施的诸如易失性介质和非易失性介质、可移除介质和不可移除介质和/或存储设备的硬件。计算机可读存储介质的示例可以包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多用盘(DVD)或其他光学存储装置、硬盘、磁带盒、磁带、磁盘存储装置或其他磁性存储设备、或其他存储设备、有形介质或者适合于存储期望信息并且可以由计算机访问的制品。
“计算机可读信号介质”可以是指被配置为将指令例如经由网络发送到计算设备1202的硬件的信号承载介质。信号介质通常可以将计算机可读指令、数据结构、程序模块、或其他数据实现在诸如载波、数据信号或其他传输机构的经调制的数据信号中。信号介质还包括任何信号递送介质。术语“经调制的数据信号”意指具有以使得在信号中编码信息的方式设置或改变的其特性中的一个或多个的信号。通过举例而非限制的方式,通信介质包括诸如有线网络或直接有线连接的有线介质和诸如声学、射频(RF)、红外和其他无线介质的无线介质。
如先前所描述的,硬件元件1210和计算机可读介质1206表示指令、模块、以硬件形式实现的可编程器件逻辑和/或固定器件逻辑,其可以在一些实施例中被采用于实现本文描述的技术的至少一些方面。硬件元件可以包括集成电路或片上系统、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)或硅或其他硬件设备中的其他实施方式的部件。在这种上下文中,硬件元件可以用作执行由指令、模块和/或由硬件元件以及用于存储用于执行的指令的硬件设备(例如先前描述的计算机可读存储介质)实现的逻辑定义的程序任务的处理设备。
前述的组合也可以被采用于实现本文描述的各种技术和模块。因此,软件、硬件或程序模块和其他程序模块可以被实现为被实现在某种形式的计算机可读存储介质上和/或由一个或多个硬件元件1210实现的一个或多个指令或逻辑。计算设备1202可以被配置为实现对应于软件和/或硬件模块的特定指令和/或功能。因此,可由计算设备1202执行为软件的模块的实施方式可以至少部分地采用硬件来实现,例如通过使用处理系统的计算机可读存储介质和/或硬件元件1210。指令和/或功能可以可由一款或多款制品(例如,一个或多个计算设备1202和/或处理系统1204)执行/操作以实现本文描述的技术、模块和示例。
如图12进一步所示,示例系统1200实现当在个人计算机(PC)、电视设备和/或移动设备上运行应用时的无缝用户体验的普适环境。服务和应用基本上在全部三个环境中类似地运行以在利用应用、播放视频游戏、观看视频、等等的同时在从一个设备转变到下一个时获得共同的用户体验。
在示例系统1200中,多个设备通过中央计算设备相互连接。中央计算设备可以在多个设备本地或者可以与多个设备远程地定位。在一个实施例中,中央计算设备可以是通过网络、互联网或其他数据通信链接被连接到多个设备的一个或多个服务器计算机的云。
在一个实施例中,该相互连接架构使得功能能够跨多个设备被递送以向多个设备的用户提供共同和无缝的体验。多个设备中的每个可以具有不同的物理要求和功能,并且中央计算设备使用平台来使得能够将既是对设备定制的还是所有设备共有的体验递送到设备。在一个实施例中,创建目标设备的类别并且对通用类设备定制体验。设备的类别可以由物理特征、用途类型或设备的其他常见特性定义。
在各种实施方式中,计算设备1202可以呈现各种不同配置,诸如用于计算机1214、移动设备1216和电视1218用途。这些配置中的每个包括可以具有总体上不同的结构和功能的设备,并且因此计算设备1202可以根据不同设备类中的一个或多个来配置。例如,计算设备1202可以被实现为计算机1214类设备,其包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等等。
计算设备1202还可以被实现为移动设备1216类设备,其包括移动设备,诸如移动电话、便携式音乐播放器、便携式游戏设备、平板计算机、可穿戴设备、多屏幕计算机等等。计算设备1202还可以被实现为电视1218类设备,其包括具有或连接到休闲观看环境中的一般较大屏幕的设备。这些设备包括电视、机顶盒、游戏控制台等等。
本文中描述的技术可以由计算设备1202的这些各种配置支持并且不限于本文描述的技术的具体示例。
云1220包括和/或表示针对资源1224的平台1222。平台1222抽象云1220的硬件(例如,服务器)和软件资源的底层功能。资源1224可以包括可以在计算机处理在计算设备1202的远程的服务器上执行时被利用的应用和/或数据。资源1224也可以包括通过互联网和/或通过用户网络(诸如蜂窝或Wi-Fi网络)提供的服务。
平台1222可以抽象资源和功能以将计算设备1202与其他计算设备连接。平台1222也可以用于抽象资源的扩展以提供对应扩展水平来满足对经由平台1222实现的资源1224的需求。因此,在相互连接的设备实施例中,本文描述的功能的实现可以被分布在系统1200中。例如,功能可以部分地被实现在计算设备1202上以及经由抽象云1220的功能的平台1222。在至少一些实施方式中,本文描述的用于虚拟机的恢复环境的功能可以通过云1220来实现,诸如通过平台1222和资源1224来实现。
本文讨论了可以被实现以执行本文讨论的技术的许多方法。方法的各方面可以采用硬件、固件、或软件、或其组合来实现。方法被示出为规定由一个或多个设备执行的操作并且不必限于被示出用于执行相应框的操作的顺序的一组步骤。另外,关于特定方法示出的操作可以与根据一个或多个实施方式的不同方法的操作进行组合和/或相互交换。方法的各方面可以经由以上参考环境100讨论的各种实体之间的交互来实现。
描述了用于虚拟机的恢复环境的技术。尽管已经以对结构特征和/或方法动作特定的语言描述了实施例,但是应理解在权利要求中限定的实施例不必限于所描述的特定特征或动作。相反,特定特征和动作被公开为实施要求保护的实施例的示例形式。
在本文中的讨论中,描述了各种不同的实施例。要认识到并理解,本文中描述的每个实施例可以独自地或者结合本文中描述的一个或多个其他实施例来使用。本文中描述的技术的另外的方面涉及以下实施例中的一个或多个。
一种系统,包括:一个或多个处理器;以及一个或多个计算机可读存储介质,其存储计算机可执行指令,计算机可执行指令响应于由一个或多个处理器执行而使系统执行包括以下的操作:检测与虚拟机有关的错误状况发生,虚拟机具有特定访问保护级别;以及生成对虚拟机强制执行特定访问保护级别并且使得虚拟机能够降低特定访问保护级别的虚拟机恢复环境,虚拟机恢复环境在虚拟机经历修复流程的同时对虚拟机强制执行特定访问保护级别。
除了以上描述的系统中的任何,还有以下中的任何一个或其组合:其中虚拟机恢复环境包括虚拟机的不同实例;其中虚拟机和虚拟机恢复环境由基于网络的服务托管,虚拟机是针对在基于网络的服务远程的租户设备而生成的,并且虚拟机恢复环境是可由租户设备访问的;其中虚拟机和虚拟机恢复环境由基于网络的服务托管,虚拟机是针对在基于网络的服务远程的租户设备而生成的,虚拟机恢复环境是租户设备可访问的,并且基于网络的服务被阻止访问处于未加密形式的虚拟机和虚拟机恢复环境的数据;其中虚拟机包括虚拟存储位置,并且其中生成虚拟机恢复环境使得虚拟机恢复环境能够连接到虚拟存储位置而不将虚拟存储位置的数据复制到虚拟机恢复环境;其中虚拟机和虚拟机恢复环境由基于网络的服务托管,虚拟机是针对在基于网络的服务远程的租户设备而生成的,并且其中检测包括从租户设备接收错误事件的指示;其中生成虚拟机恢复环境包括:将描述虚拟机的属性的描述数据保存到存储位置;将虚拟机恢复环境实例化为不同的虚拟机;以及使存储位置可由不同的虚拟机访问,使得不同的虚拟机能够基于虚拟机的属性中的一个或多个属性来执行以实现虚拟机恢复环境;其中生成虚拟机恢复环境包括:将描述虚拟机的属性的描述数据保存到存储位置,属性包括针对虚拟机的网络信息和存储信息;将虚拟机恢复环境实例化为不同的虚拟机;以及使在网络信息中标识的网络连接性可由不同的虚拟机访问并且使存储位置可由不同的虚拟机访问,使得不同的虚拟机能够基于虚拟机的属性中的一个或多个属性来执行以实现虚拟机恢复环境。
一种方法,包括:检测与虚拟机有关的错误状况发生,虚拟机具有特定访问保护级别;生成对虚拟机强制执行特定访问保护级别并且使得虚拟机能够降低特定访问保护级别的虚拟机恢复环境,虚拟机恢复环境在虚拟机经历修复流程的同时对虚拟机强制执行特定访问保护级别;接收虚拟机被至少部分地恢复以生成恢复的虚拟机的指示;以及使恢复的虚拟机被执行。
除了以上描述的方法中的任何,还有以下中的任何一个或其组合:其中检测包括从与虚拟机相关联的租户设备接收错误状况的通知;其中生成虚拟机恢复环境包括使虚拟机恢复环境具有对针对虚拟机定义的网络连接性的访问;其中生成虚拟机恢复环境包括:将描述虚拟机的属性的描述数据保存到存储位置;将虚拟机恢复环境实例化为不同的虚拟机;以及使存储位置可由不同的虚拟机访问,使得不同的虚拟机能够基于虚拟机的属性中的一个或多个属性来执行以实现虚拟机恢复环境;其中生成虚拟机恢复环境包括:将描述虚拟机的属性的描述数据保存到存储位置,属性包括针对虚拟机的网络信息和存储信息;将虚拟机恢复环境实例化为不同的虚拟机;以及使存储位置可由不同的虚拟机访问,使得不同的虚拟机能够基于虚拟机的属性中的一个或多个属性来执行以实现虚拟机恢复环境;其中虚拟机被至少部分地恢复的指示包括虚拟机恢复环境被关闭的指示;其中使恢复的虚拟机被执行包括实例化恢复的虚拟机并且使用针对恢复的虚拟机生成的修复的虚拟机定义来使恢复的虚拟机执行;其中使恢复的虚拟机被执行包括实例化恢复的虚拟机并且使用以下项来使恢复的虚拟机执行:针对恢复的虚拟机生成的修复的虚拟机定义;以及先前在错误状况之前被分配给虚拟机的数据存储位置;还包括:将包括针对恢复的虚拟机的状态信息的定义文件写入到存储位置;以及使得恢复的虚拟机能够访问存储位置以使恢复的虚拟机能够至少部分地使用定义文件来执行。
一种方法,包括:确定关于虚拟机的错误状况发生;发起针对虚拟机生成虚拟机恢复环境的请求;接收针对虚拟机恢复环境的地址;以及使用地址来访问虚拟机恢复环境以经由与虚拟机恢复环境的交互在虚拟机上执行修复流程。
除了以上描述的方法中的任何,还有以下中的任何一个或其组合:还包括接收证书,并且使用证书来对虚拟机恢复环境的访问进行认证;其中发起包括将请求传送到远程服务,并且其中针对虚拟机的地址包括从远程服务接收到的针对虚拟机的互联网协议(IP)。

Claims (19)

1.一种用于配置恢复虚拟机的系统,所述系统包括:
一个或多个处理器;以及
一个或多个计算机可读存储介质,其存储计算机可执行指令,所述计算机可执行指令响应于由所述一个或多个处理器执行而使所述系统执行包括以下的操作:
检测与虚拟机有关的错误状况发生,所述虚拟机具有特定访问保护级别;以及
配置所述恢复虚拟机,所述恢复虚拟机在所述虚拟机在所述恢复虚拟机内执行的同时针对所述虚拟机强制执行所述特定访问保护级别并且使得所述虚拟机能够降低所述特定访问保护级别,所述恢复虚拟机当在所述恢复虚拟机内执行的所述虚拟机经历修复流程的同时针对所述虚拟机强制执行所述特定访问保护级别。
2.根据权利要求1所述的系统,其中所述虚拟机和所述恢复虚拟机由基于网络的服务托管,所述虚拟机针对在所述基于网络的服务远程的租户设备被生成,并且所述恢复虚拟机由所述租户设备可访问。
3.根据权利要求1所述的系统,其中所述虚拟机和所述恢复虚拟机由基于网络的服务托管,所述虚拟机针对在所述基于网络的服务远程的租户设备被生成,所述恢复虚拟机由所述租户设备可访问,并且所述基于网络的服务被阻止访问处于未加密形式的所述虚拟机和所述恢复虚拟机的数据。
4.根据权利要求1所述的系统,其中所述虚拟机包括虚拟存储位置,并且其中所述配置所述恢复虚拟机使得所述恢复虚拟机能够连接到所述虚拟存储位置而不将所述虚拟存储位置的数据复制到所述恢复虚拟机。
5.根据权利要求1所述的系统,其中所述虚拟机和所述恢复虚拟机由基于网络的服务托管,所述虚拟机针对在所述基于网络的服务远程的租户设备被生成,并且其中所述检测包括从所述租户设备接收错误事件的指示。
6.根据权利要求1所述的系统,其中所述配置所述恢复虚拟机包括:
将描述所述虚拟机的属性的描述数据保存到存储位置;
实例化所述恢复虚拟机;以及
使所述存储位置由所述恢复虚拟机可访问,使得所述恢复虚拟机能够基于所述虚拟机的所述属性中的一个或多个属性来执行。
7.根据权利要求1所述的系统,其中所述配置所述恢复虚拟机包括:
将描述所述虚拟机的属性的描述数据保存到存储位置,所述属性包括针对所述虚拟机的网络信息和存储信息;以及
使在所述网络信息中标识的网络连接性由所述恢复虚拟机可访问,并且使所述存储位置由所述恢复虚拟机可访问,使得所述恢复虚拟机能够基于所述虚拟机的所述属性中的一个或多个属性来执行以实现所述恢复虚拟机。
8.一种用于执行虚拟机的方法,所述方法包括:
检测与由在主机上执行的管理程序执行的所述虚拟机有关的错误状况发生,所述虚拟机具有由安全密钥保护的特定访问保护级别,其中特定访问保护级别在所述错误状况发生之前保护对所述虚拟机的访问;
基于所述错误状况的所述检测,配置由所述管理程序执行的恢复虚拟机,所述恢复虚拟机在所述虚拟机在所述恢复虚拟机内执行的同时针对所述虚拟机强制执行所述特定访问保护级别,其中所述虚拟机被重新配置为当在所述恢复虚拟机内执行的同时禁用或降低所述特定访问保护级别,所述恢复虚拟机在所述虚拟机在所述恢复虚拟机内执行的同时、在所述虚拟机经历修复流程的同时、针对所述虚拟机强制执行所述特定访问保护级别;以及
接收所述虚拟机被至少部分地恢复的指示,以及基于所述指示使至少部分地恢复的所述虚拟机要被所述管理程序而非所述恢复虚拟机执行。
9.根据权利要求8所述的方法,其中所述检测包括从与所述虚拟机相关联的租户设备接收所述错误状况的通知。
10.根据权利要求8所述的方法,其中所述配置所述恢复虚拟机包括使所述恢复虚拟机具有对针对所述虚拟机定义的网络连接性的访问。
11.根据权利要求8所述的方法,其中所述配置所述恢复虚拟机包括:
将描述所述虚拟机的属性的描述数据保存到存储位置;以及
使所述存储位置由所述恢复虚拟机可访问,使得所述恢复虚拟机能够基于所述虚拟机的所述属性中的一个或多个属性来执行以实现所述恢复虚拟机。
12.根据权利要求8所述的方法,其中所述配置所述恢复虚拟机包括:
将描述所述虚拟机的属性的描述数据保存到存储位置,所述属性包括针对所述虚拟机的网络信息和存储信息;以及
使所述存储位置由所述恢复虚拟机可访问,使得所述恢复虚拟机能够基于所述虚拟机的所述属性中的一个或多个属性来执行。
13.根据权利要求8所述的方法,其中所述恢复虚拟机使用所述安全密钥保护对所述虚拟机的访问。
14.根据权利要求8所述的方法,其中所述使至少部分地恢复的所述虚拟机被执行包括实例化至少部分地恢复的所述虚拟机并且使用针对至少部分地恢复的所述虚拟机生成的修复的虚拟机定义来使至少部分地恢复的所述虚拟机执行。
15.根据权利要求8所述的方法,其中所述使至少部分地恢复的所述虚拟机被执行包括使用以下项来使至少部分地恢复的所述虚拟机执行:
针对至少部分地恢复的所述虚拟机生成的修复的虚拟机定义;以及
先前在所述错误状况之前被分配给所述虚拟机的数据存储位置。
16.根据权利要求8所述的方法,还包括:
将包括针对至少部分地恢复的所述虚拟机的状态信息的定义文件写入到存储位置;以及
使得至少部分地恢复的所述虚拟机能够访问所述存储位置以有效地使至少部分地恢复的所述虚拟机至少部分地使用所述定义文件而被执行。
17.一种用于访问恢复虚拟机的方法,包括:
确定关于虚拟机发生错误状况,所述虚拟机具有特定访问保护级别;
发起所述恢复虚拟机被配置用于执行所述虚拟机的请求;
接收针对所述恢复虚拟机的网络地址;以及
使用所述网络地址来访问所述恢复虚拟机以经由与在其中执行所述虚拟机的所述恢复虚拟机的交互在所述虚拟机上执行修复流程。
18.根据权利要求17所述的方法,所述配置包括接收证书,并且使用证书来认证对所述恢复虚拟机的访问。
19.根据权利要求17所述的方法,其中所述发起包括将所述请求传送到远程服务,并且其中针对所述虚拟机的所述地址包括从所述远程服务接收到的针对所述虚拟机的互联网协议(IP)地址。
CN201780027326.5A 2016-05-02 2017-04-26 用于虚拟机的恢复环境 Active CN109154903B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662330745P 2016-05-02 2016-05-02
US62/330,745 2016-05-02
US15/447,928 2017-03-02
US15/447,928 US10296413B2 (en) 2016-05-02 2017-03-02 Recovery environment for a virtual machine
PCT/US2017/029542 WO2017192325A1 (en) 2016-05-02 2017-04-26 Recovery environment for a virtual machine

Publications (2)

Publication Number Publication Date
CN109154903A CN109154903A (zh) 2019-01-04
CN109154903B true CN109154903B (zh) 2022-09-23

Family

ID=60158375

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780027326.5A Active CN109154903B (zh) 2016-05-02 2017-04-26 用于虚拟机的恢复环境

Country Status (4)

Country Link
US (1) US10296413B2 (zh)
EP (1) EP3452911B1 (zh)
CN (1) CN109154903B (zh)
WO (1) WO2017192325A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10360012B2 (en) 2017-11-09 2019-07-23 International Business Machines Corporation Dynamic selection of deployment configurations of software applications
US11093333B1 (en) * 2019-04-05 2021-08-17 EMC IP Holding Company LLC Efficient recovery of multiple virtual machines
US11106482B2 (en) 2019-05-31 2021-08-31 Microsoft Technology Licensing, Llc Connectivity migration in a virtual execution system
US20230083083A1 (en) * 2021-09-14 2023-03-16 International Business Machines Corporation Storing diagnostic state of secure virtual machines

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8538919B1 (en) * 2009-05-16 2013-09-17 Eric H. Nielsen System, method, and computer program for real time remote recovery of virtual computing machines
CN104520873A (zh) * 2012-04-06 2015-04-15 安全第一公司 用于保护和恢复虚拟机的系统和方法
CN105007261A (zh) * 2015-06-02 2015-10-28 华中科技大学 一种虚拟化环境下镜像文件的安全防护方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060036830A1 (en) 2004-07-31 2006-02-16 Dinechin Christophe De Method for monitoring access to virtual memory pages
US20080162483A1 (en) 2006-12-29 2008-07-03 Becker Wolfgang A Methods and systems for protecting shared tables against unauthorized overwriting from a tenant space in a mega-tenancy environment
US7844954B2 (en) * 2007-11-06 2010-11-30 Vmware, Inc. Using branch instruction counts to facilitate replay of virtual machine instruction execution
CN101872323A (zh) * 2009-04-22 2010-10-27 曾凡平 一种基于虚拟机的故障注入测试方法
US8443261B2 (en) * 2009-12-11 2013-05-14 Vmware, Inc. Transparent recovery from hardware memory errors
US8566640B2 (en) 2010-07-19 2013-10-22 Veeam Software Ag Systems, methods, and computer program products for instant recovery of image level backups
US20120151209A1 (en) 2010-12-09 2012-06-14 Bae Systems National Security Solutions Inc. Multilevel security server framework
US9176829B2 (en) 2011-07-01 2015-11-03 Microsoft Technology Licensing, Llc Managing recovery virtual machines in clustered environment
US8935375B2 (en) 2011-12-12 2015-01-13 Microsoft Corporation Increasing availability of stateful applications
WO2013138979A1 (en) 2012-03-19 2013-09-26 Empire Technology Development Llc Hybrid multi-tenancy cloud platform
US9218246B2 (en) 2013-03-14 2015-12-22 Microsoft Technology Licensing, Llc Coordinating fault recovery in a distributed system
US9652178B2 (en) 2013-09-10 2017-05-16 Veritas Technologies Systems and methods for protecting virtual machine data
CN103902885B (zh) * 2014-03-04 2017-11-17 重庆邮电大学 面向多安全等级虚拟桌面系统虚拟机安全隔离系统及方法
US9619342B2 (en) 2014-06-24 2017-04-11 International Business Machines Corporation Back up and recovery in virtual machine environments
EP3183655B1 (en) * 2014-08-21 2019-02-20 Veeam Software Ag User authorization for file level restoration from image level backups
GB2539428B (en) * 2015-06-16 2020-09-09 Advanced Risc Mach Ltd Data processing apparatus and method with ownership table
CN105281949B (zh) * 2015-09-09 2018-06-15 浪潮(北京)电子信息产业有限公司 混合存储模式中主机的隔离方法和隔离装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8538919B1 (en) * 2009-05-16 2013-09-17 Eric H. Nielsen System, method, and computer program for real time remote recovery of virtual computing machines
CN104520873A (zh) * 2012-04-06 2015-04-15 安全第一公司 用于保护和恢复虚拟机的系统和方法
CN105007261A (zh) * 2015-06-02 2015-10-28 华中科技大学 一种虚拟化环境下镜像文件的安全防护方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
System Monitoring and Controlling Mechanism Based on Hypervisor;Qingbo Wu等;《2009 IEEE International Symposium on Parallel and Distributed Processing with Applications》;20090818;第549-554页 *
虚拟机动态迁移方法;常德成等;《计算机应用研究》;20121128;第30卷(第4期);第971-976页 *

Also Published As

Publication number Publication date
EP3452911A1 (en) 2019-03-13
CN109154903A (zh) 2019-01-04
WO2017192325A1 (en) 2017-11-09
EP3452911B1 (en) 2020-03-11
US10296413B2 (en) 2019-05-21
US20170315859A1 (en) 2017-11-02

Similar Documents

Publication Publication Date Title
CN109416720B (zh) 跨重置维护操作系统秘密
US10885189B2 (en) Isolated container event monitoring
CN110178136B (zh) 现场可编程门阵列程序的签名验证的方法和设备
EP3265950B1 (en) Device attestation through security hardened management agent
EP3120291B1 (en) Rapid data protection for storage devices
EP2681689B1 (en) Protecting operating system configuration values
US9762396B2 (en) Device theft protection associating a device identifier and a user identifier
US10423791B2 (en) Enabling offline restart of shielded virtual machines using key caching
CN110663027A (zh) 使用硬件保护操作系统配置
CN109154903B (zh) 用于虚拟机的恢复环境
CN107077567B (zh) 标识计算设备上的安全边界
US10229272B2 (en) Identifying security boundaries on computing devices
US10691447B2 (en) Writing system software on an electronic device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant