CN107003890A - 高效地提供虚拟机参考点 - Google Patents

高效地提供虚拟机参考点 Download PDF

Info

Publication number
CN107003890A
CN107003890A CN201580069480.XA CN201580069480A CN107003890A CN 107003890 A CN107003890 A CN 107003890A CN 201580069480 A CN201580069480 A CN 201580069480A CN 107003890 A CN107003890 A CN 107003890A
Authority
CN
China
Prior art keywords
virtual machine
data
point
reference point
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
CN201580069480.XA
Other languages
English (en)
Other versions
CN107003890B (zh
Inventor
A.贝斯巴鲁亚
L.罗伊特尔
T.O.布朗
J.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.)
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
Priority to CN202110227269.3A priority Critical patent/CN112988326A/zh
Publication of CN107003890A publication Critical patent/CN107003890A/zh
Application granted granted Critical
Publication of CN107003890B publication Critical patent/CN107003890B/zh
Active 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/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/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • 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/45575Starting, stopping, suspending or resuming virtual machine instances
    • 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/45579I/O management, e.g. providing access to device drivers or storage
    • 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/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)

Abstract

实施例针对的是建立高效的虚拟机器参考点以及指定虚拟机器参考点以查询递增改变。在一个场景中,计算机系统访问稳定虚拟机器检查点,所述稳定虚拟机器检查点包括存储在数据存储装置中的底层数据的部分,其中检查点与特定时间点相关联。计算机系统然后查询数据存储装置以确定参考与检查点相关联的时间点的数据存储标识符,并且将所确定的数据存储标识符存储为虚拟机器参考点,其中针对数据存储装置的每一个随后的改变导致对数据存储标识符的更新,使得虚拟机器参考点可用于标识从特定时间点开始的递增改变。

Description

高效地提供虚拟机参考点
背景技术
计算系统已经变得无处不在,其范围从小型嵌入式设备到手机和平板电脑到PC和后端服务器。这些计算系统中的每一个被设计为处理软件代码。软件允许用户执行功能,从而与由计算系统提供的硬件交互。在一些情况下,这些计算系统允许用户建立并且运行虚拟机。这些虚拟机可以提供没有由主机操作系统提供的功能性,或者可以一起包括不同的操作系统。以该方式,虚拟机可以用于扩展计算系统的功能性。虚拟机可以备份在虚拟存储设备上,虚拟存储设备本身可以备份到物理或虚拟存储设备。虚拟机主机还可以配置为获取快照,该快照表示虚拟机的时间点图像。VM快照或“检查点”包括CPU状态、存储器状态、存储状态以及向该时间点完全地重新创建或恢复虚拟机所必要的其它信息。
发明内容
本文描述的实施例针对的是建立高效的虚拟机参考点以及指定虚拟机参考点以查询递增改变。如本文中使用的,虚拟机参考点允许计算机系统标识从特定时间点开始的递增改变。例如,在一个实施例中,计算机系统访问稳定虚拟机检查点,所述稳定虚拟机检查点包括存储在数据存储装置中的底层数据的部分,其中检查点与特定时间点相关联。然后计算机系统查询数据存储装置以确定参考与检查点相关联的时间点的数据存储标识符,并且将所确定的数据存储标识符存储为虚拟机参考点或者虚拟机参考点伪像,其中针对数据存储装置的每一个随后的改变导致对数据存储标识符的更新,使得虚拟机参考点可用于标识从特定时间点开始的递增改变。虚拟机参考点伪像允许其中虚拟机具有两个(或更多)虚拟盘的情况。每一个虚拟盘可以具有用于相同时间点的不同标识符,并且参考点伪像允许计算机系统将那两个时间点关联为公共点。这将在下文进一步解释。
在另一个实施例中,计算机系统执行一种用于指定虚拟机参考点以查询递增改变的方法。计算机系统建立虚拟机内的稳定、非改变状态,其中稳定状态与包括对应状态数据和存储数据的检查点相关联。计算机系统访问之前生成的参考点以标识当前稳定状态与所选过去稳定时间点之间的虚拟机状态中的差异。计算机系统还复制当前稳定状态与所选过去稳定时间点之间的虚拟机状态之间的差异。所述差异可以作为递增备份复制到数据存储设备,或者可以用于远程复制或者灾难恢复目的。
提供该发明内容来以简化系统引入以下在具体实施方式中进一步描述的概念的选择。该发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用作帮助确定所要求保护的主题的范围。
附加特征和优点将在接下来的描述中阐述,并且将从该描述而对于一个本领域普通技术人员部分地显而易见,或者可以通过本文教导的实践而获知。本文描述的实施例的特征和优点可以借助于在随附权利要求中特别指出的设备和组合而实现和获得。本文描述的实施例的特征将从以下描述和随附权利要求变得更加全面地显而易见。
附图说明
为了进一步澄清本文描述的实施例的以上及其它特征,将通过参考附图来再现更特别的描述。要领会到,这些图仅仅描绘了本文描述的实施例的示例并且因此不应视为限制其范围。实施例将以附加的特征和细节通过使用随附各图来描述和解释,其中:
图1图示了本文描述的实施例可以在其中操作的计算机架构,所述操作包括建立高效的虚拟机参考点。
图2图示了用于建立高效的虚拟机参考点的示例方法的流程图。
图3图示了用于指定虚拟机参考点以查询递增改变的示例方法的流程图。
图4图示了实施例可以在其中操作的计算机架构,所述操作包括指定虚拟机参考点以查询递增改变。
具体实施方式
本文描述的实施例针对的是建立高效的虚拟机参考点以及指定虚拟机参考点以查询递增改变。在一个实施例中,计算机系统访问稳定虚拟机检查点,所述稳定虚拟机检查点包括存储在数据存储装置中的底层数据的部分,其中检查点与特定时间点相关联。计算机系统然后查询数据存储装置以确定参考与检查点相关联的时间点的数据存储标识符,并且将所确定的数据存储标识符存储为虚拟机参考点,其中对数据存储装置的每一个随后改变导致对数据存储标识符的更新,使得虚拟机参考点可用于标识从特定时间点开始的递增改变。
在另一个实施例中,计算机系统执行一种用于指定虚拟机参考点以查询递增改变的方法。计算机系统建立虚拟机内的稳定、非改变状态,其中稳定状态与包括对应状态数据和存储数据的检查点相关联。计算机系统访问之前生成的参考点以标识当前稳定状态与所选过去稳定时间点之间的虚拟机状态中的差异。计算机系统然后复制当前稳定状态与所选过去稳定时间点之间的虚拟机状态中的差异。所述差异可以作为递增备份而复制到数据存储设备,或者可以用于远程复制或灾难恢复目的。
以下讨论现在引用可以执行的数个方法和方法动作。应当指出,尽管方法动作可以以某一次序进行讨论或者在流程图中图示为以特定次序发生,但是除非特别指明,否则不是必然地要求特定排序,或者因为一动作取决于另一个动作在该动作执行之前完成而要求。
本文描述的实施例可以实现各种类型的计算系统。这些计算系统现在越来越多地采取各种形式。计算系统可以例如是手持式设备,诸如智能电话或特色电话机、家电、膝上型计算机、可穿戴设备、台式计算机、大型机、分布式计算系统、或者甚至常规地尚未视为计算系统的设备。在该描述中以及在权利要求中,术语“计算系统”宽泛地定义为包括任何设备或系统(或其组合),该设备或系统包括至少一个物理和有形处理器,以及能够在其上具有计算机可执行指令的物理和有形存储器,所述计算机可执行指令可以由处理器执行。计算系统可以通过网络环境进行分布,并且可以包括多个组成的计算系统。
如在图1中图示,计算系统101典型地包括至少一个处理单元102和存储器103。存储器103可以是物理系统存储器,其可以是易失性、非易失性或者二者的某种组合。术语“存储器”还可以在本文中用于指代非易失性大容量存储装置(诸如物理存储介质)。如果计算系统是分布式的,则处理器和/或存储能力也可以是分布式的。
如本文中使用的,术语“可执行模块”或“可执行组件”可以指代可以在计算系统上执行的软件对象、例程或方法。本文描述的不同组件、模块、引擎和服务可以实现为在计算系统上执行的对象或过程(例如,作为分离线程)。
在接下来的描述中,参照由一个或多个计算系统执行的动作来描述实施例。如果这样的动作在软件中实现,则执行动作的相关联的计算系统的一个或多个处理器响应于已经执行计算机可执行指令而引导计算系统的操作。例如,这样的计算机可执行指令可以体现在形成计算机程序产品的一个或多个计算机可读介质上。这样的操作的示例涉及数据的操控。计算机可执行指令(和所操控的数据)可以存储在计算系统101的存储器103中。计算系统101还可以包含通信信道,所述通信信道允许计算系统101通过有线或无线网络与其它消息处理器进行通信。
本文描述的实施例可以包括或者利用包括计算机硬件的专用或通用计算机系统,如在下文更加详细地讨论,所述计算机硬件诸如例如一个或多个处理器和系统存储器。系统存储器可以包括在总存储器103内。系统存储器还可以称为“主存储器”,并且包括由所述至少一个处理单元102通过存储器总线可寻址的存储器位置,在该情况下,地址位置在存储器总线自身上确定(assert)。系统存储器传统地已经是易失性的,但是本文描述的原理还适用于其中系统存储器部分地或者甚至完全地非易失性的情况。
本发明的范围内的实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其它计算机可读介质。这样的计算机可读介质可以是可以由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令和/或数据结构的计算机可读介质是计算机存储介质。承载计算机可执行指令和/或数据结构的计算机可读介质是传输介质。因而,作为示例而非限制,本发明的实施例可以包括至少两种明显不同类型的计算机可读介质:计算机存储介质和传输介质。
计算机存储介质是存储计算机可执行指令和/或数据结构的物理硬件存储介质。物理硬件存储介质包括计算机硬件,诸如RAM、ROM、EEPROM、固态驱动器(“SSD”)、闪存、相变存储器(“PCM”)、光盘存储装置、磁盘存储装置或其它磁性存储设备、或者可以用于以计算机可执行指令或数据结构的形式存储程序代码的(多个)任何其它硬件存储设备,该其它硬件存储设备可以由通用或专用计算机系统访问和执行以实现本发明的所公开的功能性。
传输介质可以包括网络和/或数据链路,该链路可以用于以计算机可执行指令或数据结构的形式承载程序代码,并且该链路可以由通用或专用计算机系统访问。将“网络”定义为一个或多个数据链路,该数据链路使得能够在计算机系统和/或模块和/或其它电子设备之间输运电子数据。当通过网络或者另一个通信连接(硬布线、无线、或者硬布线或无线的组合)向计算机系统转移或提供信息时,计算机系统可以将连接视为传输介质。以上的组合也应当包括在计算机可读介质的范围内。
另外,在到达各种计算机系统组件时,以计算机可执行指令或者数据结构的形式的程序代码可以自动地从传输介质转移到计算机存储介质(或者反之亦然)。例如,通过网络或者数据链路接收的计算机可执行指令或数据结构可以缓存在网络接口模块(例如,“NIC”)内的RAM中,并且然后最终转移到计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解到,计算机存储介质可以包括在也(或者甚至主要地)利用传输介质的计算机系统组件中。
计算机可执行指令例如包括指令和数据,该指令和数据在一个或多个处理器处执行时使通用计算机系统、专用计算机系统或者专用处理设备实施某一功能或者一组功能。计算机可执行指令例如可以是二进制数、中间格式指令(诸如汇编语言或者甚至源代码)。
本领域技术人员将领会到,本文描述的原理可以在具有许多类型的计算机系统配置的网络计算环境中实践,该环境包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器或可编程的消费电子器件、网络PC、小型计算机、大型计算机、移动电话、PDA、平板电脑、传呼机、路由器、开关等。本发明还可以在分布式计算环境中实践,其中本地和远程计算系统二者执行任务,所述本地和远程计算系统通过网络链接(通过硬布线数据链路、无线数据链路、或者硬布线和无线数据链路的组合)。因此,在分布式计算环境中,计算机系统可以包括多个组成的计算机系统。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。
本领域技术人员还将领会到,本发明可以在云计算环境中实践。云计算环境可以是分布式的(尽管不要求如此)。当是分布式的时,云计算环境可以在国际上分布于组织内和/或具有跨多个组织拥有的组件。在该描述和以下权利要求中,将“云计算”定义为用于使得能够实现对可配置计算资源(例如,网络、服务器、存储装置、应用和服务)的共享池的按需网络访问的模型。“云计算”的定义不限于可以在恰当部署时从这样的模型获得的其它众多优点中的任一个。
又进一步地,本文描述的系统架构可以包括多个独立组件,每一个组件对系统作为整体的功能性有贡献。这种模块化在面对平台可缩放性问题时允许增加的灵活性,并且为此目的,这种模块化提供各种各样的优点。系统复杂性和增长可以通过使用有限功能范围内的较小规模的部分而更加容易地管理。平台故障容忍性通过使用这些松散耦合的模块而增强。各个组件可以因为商业需要支配而以递增方式增长。模块化发展还转化成针对新功能性而推向市场的减少时间。可以添加或减除新功能性而不会影响核心系统。
图1图示了至少一个实施例可以在其中实现的计算机架构100。计算机架构100包括计算机系统101。计算机系统101可以是任何类型的本地或分布式计算机系统,包括云计算系统。计算机系统101包括用于执行各种不同功能的模块。例如,通信模块104可以配置为与其它计算系统进行通信。通信模块104可以包括任何有线或无线通信部件,该部件可以从其它计算系统接收数据和/或向其它计算系统传输数据。通信模块104可以配置为与数据库、移动计算设备(诸如移动电话或平板电脑)、嵌入式或其它类型的计算系统进行交互。
图1的计算机系统101可以进一步包括检查点生成模块105。由模块105生成的检查点106(或本文中的“快照”)可以包括可以存储在数据仓库115中的对应检查点数据116的各种部分。检查点数据可以例如包括状态数据117和存储数据118。状态数据117可以包括用于各种计算机系统设备的CPU状态、存储器状态和设备状态。存储数据118可以包括数据文件、应用文件、操作系统文件、备份文件或者与检查点相关联的其它数据。因此,与检查点106相关联的检查点数据116包括执行从数据的完全恢复或者备份的充足数据。然而,用于给定计算机系统或虚拟机的存储和状态数据可以包括显著的数据量。
在一些情况下,多个检查点可以存储用于单个计算机系统或者虚拟机(VM)。每一个检查点可以在不同时间段处生成。然后,一旦已经生成两个或更多检查点,就可以将它们相互比较以确定它们之间的差异。这些差异然后应用于差分备份,该差分备份仅备份两个检查点之间的差异。本文描述的实施例在本文中引入了“参考点”、“虚拟机参考点”或“VM参考点”的概念。VM参考点允许删除与检查点相关联的之前存储、存储器和设备状态,而同时仍然留存创建差分备份的能力。这通过记录用于状态转变的序列号而完成。
虚拟机的递增备份涉及追踪对虚拟机存储装置的那些改变,这些改变已经自之前指定的VM时间点(或者多个时间点)起而发生。传统上,VM的时间点快照由VM检查点表示。如上文所提及,存储完整的检查点可能在VM的I/O吞吐量上引入大量开销,这是因为通常使用写时复制(copy-on-write)(或类似)技术来维持虚拟存储装置的时间点图像。仅仅出于参考之前的时间点以用于查询递增改变而维持VM检查点在资源使用方面是浪费的并且不利地影响在VM中运行的应用的性能。
本文描述的VM参考点不需要维持VM状态(例如,存储、存储器、设备状态)的精确时间点图像。VM参考点提供VM的之前时刻的表示。参考点可以由唯一标识符(其可以是全局唯一标识符(GUID))、序列号或其它标识符来表示。
在一个实施例中,VM参考点(例如,图1的110)以下列方式生成:首先,针对VM生成时间点图像(检查点106)。这提供了从中备份的稳定副本。连同该图像的创建,触发追踪对虚拟存储装置的改变的机制。触发机制可以是基于用户交互、来自应用或其它源的输入,或者可以是手动触发。其次,一旦计算机系统或VM得到备份,就将检查点转换/降级成参考点(即,只是没有由对应机器状态备份的时间点表示)。这释放了与检查点相关联的开销而同时允许追踪最后备份的时间点。第三,在接下来的备份期间,用户可以指定参考点以查询自指定时间点起发生的对VM的递增改变。
VM参考点110包括最小元数据,该元数据使得能够查询自由参考点表示的时间点起对虚拟存储设备的递增改变。示例改变追踪技术涉及用于跨由序列号表示的离散时间点而维持经改变的块列表的虚拟存储子系统。在这样的系统中,用于该VM的VM参考点将仅仅包括对应于该离散时间点的虚拟存储设备的序列号。序列号将在存储器寄存器每一次发生改变时递增。因为序列号对应于用于检查点的时间点,所以当向盘写入数据时,序列号针对写入到的每一个存储器块而增加。至少在一些实施例中,序列号是存储在VM参考点中的仅有内容。
当将VM检查点(例如,106)转换成VM参考点(例如,110)时,系统释放已经用于维持VM检查点的时间点图像的所有(或基本上所有)资源。例如,在一种场景中,系统可以释放用于维持检查点的时间点图像的差异化虚拟硬盘,从而消除在差异化虚拟硬盘(VHD)上执行I/O的开销。该开销的VM状态数据通过关于参考点的元数据来替换。参考点元数据仅包含对应于针对虚拟硬盘的时间点的标识符(例如,序列号)。这使得之后能够使用参考点以便查询从该时间点起的递增改变。
因此,在图1中,一旦检查点生成模块105已经生成用于物理或虚拟计算机系统的检查点106,则查询生成模块108生成查询113以便标识哪些数据存储标识符114参考与检查点106相关联的时间点。这些数据存储标识符114被发送给计算机系统101并且由VM参考点生成模块109实现以生成VM参考点110。此处应当理解到,数据仓库115可以在计算机系统101内部或外部,并且可以包括单个存储设备(例如,硬盘或光盘)或者可以包括许多存储设备,并且实际上可以包括存储网络(诸如云存储网络)。因而,用于查询113和数据存储标识符114的数据转移可以在内部(例如,通过硬件总线)或者可以通过计算机网络在外部。
VM参考点110因而包括指向特定时间点的那些数据存储标识符。对数据存储装置的每一个随后改变导致对数据存储标识符的更新。因此,虚拟机参考点110可用于标识从特定时间点开始的递增改变。这些概念将在下文分别关于图2和3的方法200和300以及在图4中图示的实施例而进一步解释。
鉴于以上描述的系统和架构,可以依照所公开的主题实现的方法可以参照图2和3的流程图更好地被领会。出于解释简单的目的,将方法示为和描述为块序列。然而,应当理解和领会到,所要求保护的主题不受块的次序所限制,这是因为一些块可以以与本文描绘和描述的情况不同的次序和/或与其它块并发地发生。此外,可以不要求所有图示的块以实现在此之后描述的方法。
图2图示了用于建立高效的虚拟机参考点的方法200的流程图。现在将频繁参照环境100的组件和数据来描述方法200。
方法200包括访问稳定虚拟机检查点,所述稳定虚拟机检查点包括存储在数据存储装置中的底层数据的一个或多个部分,检查点与特定时间点相关联(210)。例如,检查点访问模块107可以访问检查点106。检查点106可以基于运行的计算机系统或虚拟机而生成。检查点可以包括操作系统文件、应用文件、寄存器文件、数据文件、或者任何其它类型的数据(包括当前存储在RAM或其它存储器区域中的数据)。检查点106因而具有在其底层检查点数据116中的不同状态数据117和存储数据118。检查点数据116可以存储在数据仓库115中或者某种其它数据仓库中。数据仓库可以包括光学存储装置、固态存储装置、磁性存储装置、或者任何其它类型的数据存储硬件。
方法200接下来包括查询数据存储装置以确定参考与检查点相关联的时间点的一个或多个数据存储标识符(220)以及将所确定的数据存储标识符存储为虚拟机参考点,其中对数据存储装置的每一个随后改变导致对数据存储标识符的更新,使得虚拟机参考点可用于标识从特定时间点开始的递增改变(230)。例如,查询生成模块108可以生成查询113,所述查询113查询数据仓库115以便确定哪些数据存储标识符参考与检查点106相关联的时间点。这些数据存储标识符114然后被存储为虚拟机参考点110。VM参考点生成模块109因而可以访问现有检查点并且将其从完全由状态数据117和存储数据118支持的检查点降级或者向下转换为仅包括标识符的VM参考点。在一些情况下,这些标识符可以简单地是存储设备的序列号。可以存在用于单个盘的多个数据存储标识符,或者仅存在用于盘的数据存储标识符。这些概念可以参照图4的计算架构400更好地理解。然而将理解到,在图4中示出的示例仅是一个实施例,并且可以实现许多不同的实施例。
图4图示了计算系统420,该计算系统允许对数据存储装置的每一个随后改变导致对数据存储标识符409的更新,并且由此允许虚拟机参考点可用于标识从特定时间点开始的递增改变。例如,假设图4的原始数据401存储在数据仓库(例如,图4的数据仓库408)中的不同数据块中。原始数据401可以本地存储在本地盘403上,或者可以存储在外部数据仓库上。该数据(例如通过备份生成模块411)备份在初始备份404中并且存储为完整备份410。完整备份410因而包括原始数据401的每一个块。这类似于创建检查点106,其中检查点的所有数据116存储在数据仓库115中。
原始数据401的部分当前可以在存储器402中并且其它部分可以在盘403上。因为自完整备份410起已经没有做出改变,所以存储器和盘是空的。在做出改变时,那些改变出现在原始数据401中。这可以类似于对数据文件、操作系统文件、或者物理或虚拟机上的其它数据的任何改变。包括经更新的数据的存储器402中的存储器块可以利用“1”或者其它经改变的块数据标识符409进行标记。再次,将理解到,尽管在该示例中将序列号用作标识符,但是可以使用基本上任何类型的标识符,该标识符包括用户选择的名称、GUID、位图或其它标识符。这些标识符与时间点相关联。然后,使用该时间点,虚拟机参考点可以用于标识该时间点开始的递增改变。
如果在之后的时间点对原始数据401做出附加改变,则存储器402以及盘上标识符将指示已经发生新的改变。标识符(例如,“1”)指示在第一时间点处改变的存储器块,并且“2”可以指示该存储器块已经在第二时间点处改变。如果存储器块包括“1,2”标识符,则这可以指示该存储器块在第一时间点和第二时间点二者处改变。如果在该点处发生电力失灵,则盘上的数据将很可能得到保存,而存储器中(例如,RAM中)的任何内容将丢失。
如果在该阶段处执行备份,鉴于电力失灵,原始数据401将备份为差分406,并且将包括第二时间点处的经改变的数据块中的所有数据(如由标识符“2”指示)。因此,差分406将包括自完整备份起已经发生的数据改变,并且完整的合并的备份407将包括与完整备份410组合的差分406。参考点不需要维持物理或虚拟机状态(例如,存储、存储器、设备状态)的精确时间点图像。其仅仅是物理或虚拟机的之前时刻的表示。使用该VM参考点412,可以执行数据备份,可以执行数据迁移,可以执行数据恢复以及其它数据相关任务。
在一些实施例中,图1的状态管理模块111可以用于在当前时间建立虚拟机内的稳定非改变状态。稳定非改变状态意味着所有适当的缓存器已经清空,没有交易待决,并且状态不经受改变。稳定状态可以通过执行以下中的任一个而建立:在虚拟机内缓存随后的数据改变,实现用于虚拟机内的随后数据改变的临时写时复制,以及针对包括底层数据的一个或多个部分的虚拟机生成检查点。
该稳定状态然后与虚拟机参考点110相关联,虚拟机参考点110包括对应于特定的稳定时间点(诸如当前时间点)的数据存储标识符114。计算机系统101然后可以访问之前生成的虚拟机参考点以便标识当前稳定状态与所选过去稳定时间点之间的虚拟机状态中的差异,并且使用由所存储的数据存储标识符和当前数据存储标识符114标识的数据来执行至少一个操作。如上文所提到,这些数据相关任务可以包括备份数据,恢复数据,复制数据,以及向用户或其它指定实体(诸如第三方服务或客户端)提供数据。
由所存储的数据存储标识符以及当前数据存储标识符所标识的数据(例如,由“1”数据存储标识符所标识的图4E的)可以与之前生成的检查点(初始备份404)组合,这正如在图4K中所示,其中数据存储标识符“1,2”用于组合由所存储的数据存储标识符标识的数据和初始备份404。以该方式,可以简单地使用数据存储标识符提供差分备份以便更新状态改变。
在一些实施例中,可以提供应用编程接口(API),该应用编程接口允许第三方将数据存储标识符存储为虚拟机参考点。以该方式,VM参考点功能性可以以统一方式扩展到第三方。这些VM参考点可以指代完整备份以及递增备份。使用这些API,多个销售商可以同时执行数据备份。每一个VM参考点(例如,110)包括元数据,该元数据包括数据存储标识符114。因此,虚拟机参考点是轻量的并且没有由检查点数据116支持,该检查点数据116包括数据存储、存储器或虚拟机状态。在一些情况下,VM参考点可以从检查点来转换,并且因此,可以从具有作为检查点的数据存储、存储器或虚拟机状态到仅具有包括数据存储标识符的元数据。
在一些情况下,数据支持的检查点可以使用在虚拟机参考点110和未来时间点之间标识的改变进行重构。例如,计算机系统101可以使用VM参考点加上改变日志(具有描述什么发生改变的纯粹元数据,而不是数据本身)以通过从监控改变的服务取得数据来创建完整检查点。又进一步地,至少在一些情况下,如果虚拟机被迁移,则虚拟机参考点信息可以连同VM而转移。因此,如果虚拟机移动到不同的计算系统,则由虚拟机参考点标识的数据在新的计算系统处可恢复。相应地,描述了各种实施例,其中可以创建并且使用VM参考点来备份数据。
图3图示了用于指定虚拟机参考点以查询递增改变的方法300的流程图。现在将频繁参照图1的环境100的组件和数据来描述方法300。
方法300包括建立虚拟机内的稳定非改变状态,稳定状态与包括对应状态数据和存储数据的检查点相关联(310)。例如,图1的状态管理模块111可以建立虚拟机内的稳定非改变状态。稳定状态可以与包括对应状态数据117和存储数据118的检查点106相关联。稳定状态可以通过缓存虚拟机内的任何随后数据改变,通过针对虚拟机内的随后数据改变实现临时写时复制使得所有随后的数据改变得以存储,和/或通过针对包括底层检查点数据116的虚拟机生成检查点来建立。
方法300还包括访问一个或多个之前生成的参考点以标识当前稳定状态与所选过去稳定时间点之间的虚拟机状态中的一个或多个差异(320),以及复制当前稳定状态与所选过去稳定时间点之间的虚拟机状态之间的差异(330)。计算机系统101可以配置为访问VM参考点110以标识所建立的稳定状态与另一个稳定时间点(由VM参考点的数据存储标识符所标识的)之间的VM状态中的差异。计算机系统101的复制模块112然后可以复制当前稳定状态与所选过去稳定时间点之间的所标识的差异。这些经复制的差异可以形成递增备份。该递增备份可以用于远程复制、灾难恢复或其它目的。
在一些实施例中,计算机系统101可以配置为缓存在确定虚拟机状态中的差异时发生的任何数据改变。然后,一旦已经确定VM状态中的差异,该差异就可以与缓存的数据合并到实况虚拟机状态中,所述实况虚拟机状态包括从所选时间点备份的数据。这允许用户选择基本上任何过去的稳定时间点(自检查点的创建起)并且确定该点处的状态,以及将其与当前状态合并以形成实况虚拟机,所述实况虚拟机包括从所选时间点备份的数据。所选的过去稳定时间点因而可以包括由虚拟机参考点(其不必是紧接前面的参考点)所表示的任何可用的之前稳定时间点。
差异化虚拟硬驱动可以配置为保持追踪在确定虚拟机状态中的差异时发生的数据改变。还应当注意到,方法300的建立、访问和复制步骤(310,320和330)各自可以在存储操作期间(包括在检查点的创建期间)继续操作。因而,在正执行实况存储操作的同时,本文中的实施例仍然可以建立稳定状态,访问之前生成的检查点,以及复制当前状态与所选过去稳定状态之间的VM状态中的差异。
在以上描述的实施例中,参照图4,将序列号用作数据存储标识符。在其中以该方式使用序列号的一些情况下,可以将分离的序列号分配给与虚拟机相关联的每一个物理或虚拟盘。因此,可以针对多个盘(包括异步的盘)创建参考点。弹性改变追踪理解序列号并且可以同时创建用于许多盘的可用VM参考点。每一个VM参考点具有引用针对该盘做出的改变的序列号。对于异步的多个盘(例如,在不同时间添加的),每一个盘具有其自身的序列(参考)号,但是VM参考点追踪用于VM的所有盘的序列号。与检查点相关联的任何数据可以移动到恢复存储装置,使得数据不必位于生产服务器上。这减少了生产服务器上的负载,并且增加了其更高效地处理数据的能力。
权利要求支持:在一个实施例中,提供了一种计算机系统,包括至少一个处理器。计算机系统执行一种计算机实现的方法以用于建立高效的虚拟机参考点,其中方法包括以下步骤:访问包括存储在数据存储装置115中的底层数据116的一个或多个部分的稳定虚拟机检查点116,检查点与特定时间点相关联,查询数据存储装置以便确定参考与检查点106相关联的时间点的一个或多个数据存储标识符114,以及将所确定的数据存储标识符存储为虚拟机参考点110,其中对数据存储装置的每一个随后改变导致对数据存储标识符的更新,使得虚拟机参考点可用于标识从特定时间点开始的递增改变。
方法还包括在当前时间建立虚拟机内的稳定非改变状态,稳定状态与虚拟机参考点相关联,所述虚拟机参考点包括对应于特定的稳定时间点的一个或多个数据存储标识符,访问一个或多个之前生成的虚拟机参考点以便标识当前稳定状态与所选过去稳定时间点之间的虚拟机状态中的一个或多个差异,以及使用由所存储的数据存储标识符和当前数据存储标识符标识的数据来执行至少一个操作。
在一些情况下,所述至少一个操作包括以下中的一个或多个:备份数据,恢复数据,复制数据,以及向用户或其它指定实体提供数据。由所存储的数据存储标识符和当前数据存储标识符标识的数据与之前生成的检查点组合。通过执行以下中的至少一个来建立稳定状态:缓存虚拟机内的随后数据改变,针对虚拟机内的随后数据改变实现临时写时复制,以及针对包括底层数据的一个或多个部分的虚拟机而生成检查点。
在一些情况下,一个或多个所提供的应用编程接口(API)允许多个不同的第三方将数据存储标识符存储为虚拟机参考点。虚拟机参考点包括元数据,所述元数据包括数据存储标识符,使得虚拟机参考点是轻量的并且没有通过包括数据存储、存储器或虚拟机状态的检查点数据而支持。将包括数据存储、存储器或虚拟机状态的虚拟机检查点转换成单独包括元数据的虚拟机参考点。此外,使用虚拟机参考点与未来时间点之间的一个或多个所标识的改变来重构数据支持的检查点。
在另一个实施例中,提供一种计算机系统,包括至少一个处理器。计算机系统执行一种计算机实现的方法以用于指定虚拟机参考点来查询递增改变,其中方法包括以下步骤:建立虚拟机内的稳定非改变状态,稳定状态与包括对应状态数据117和存储数据118的检查点106相关联,访问一个或多个之前生成的参考点110以标识当前稳定状态与所选过去稳定时间点之间的虚拟机状态中的一个或多个差异,以及复制当前稳定状态与所选过去稳定时间点之间的虚拟机状态中的差异。
在一些情况下,所选过去稳定时间点包括由虚拟机参考点表示的任何可用的之前稳定时间点。又另外地,差异化虚拟硬驱动保持追踪在确定虚拟机状态中的差异时发生的数据改变。数据存储标识符包括序列号,该序列号在存储器寄存器每一次改变时递增。
在又一个实施例中,提供了一种计算机系统,包括以下:一个或多个处理器,用于访问包括存储在数据存储装置115中的底层数据116的一个或多个部分的稳定虚拟机检查点106的检查点访问模块107,检查点与特定时间点相关联,用于生成查询113的查询生成模块108,所述查询113查询数据存储装置以确定参考与检查点相关联的时间点的一个或多个数据存储标识符114,以及用于将所确定的数据存储标识符存储为虚拟机参考点110的虚拟机参考点生成模块109,其中对数据存储装置的每一个随后改变导致对数据存储标识符的更新,使得虚拟机参考点可用于标识从特定时间点开始的递增改变。虚拟机参考点信息连同虚拟机而转移,使得如果虚拟机移动到新的计算系统,则由虚拟机参考点标识的数据可恢复。
相应地,提供了建立高效虚拟机参考点的方法、系统和计算机程序产品。此外,提供了指定虚拟机参考点以查询递增改变的方法、系统和计算机程序产品。
本文描述的概念和特征可以以其它特定形式体现而不脱离其精神或描述性特性。所述实施例要在所有方面中视为仅说明性而非限制性的。本公开的保护范围因此由随附权利要求而不是前面的说明书来表示。落入权利要求的等同方案的含义和范围内的所有改变要涵盖在其保护范围内。

Claims (10)

1.一种用于建立高效的虚拟机参考点的计算机实现的方法,所述计算机实现的方法通过一个或多个处理器执行用于所述计算机实现的方法的计算机可执行指令而实施,并且所述计算机实现的方法包括:
访问包括存储在数据存储装置中的底层数据的一个或多个部分的稳定虚拟机检查点,检查点与特定时间点相关联;
查询数据存储装置以便确定参考与检查点相关联的时间点的一个或多个数据存储标识符;以及
将所确定的数据存储标识符存储为虚拟机参考点,其中对数据存储装置的每一个随后改变导致对数据存储标识符的更新,使得虚拟机参考点可用于标识从特定时间点开始的递增改变。
2.权利要求1所述的计算机实现的方法,还包括:
在当前时间建立虚拟机内的稳定非改变状态,稳定状态与虚拟机参考点相关联,所述虚拟机参考点包括对应于特定的稳定时间点的一个或多个数据存储标识符;
访问一个或多个之前生成的虚拟机参考点以便标识当前稳定状态与所选过去稳定时间点之间的虚拟机状态中的一个或多个差异;以及
使用由所存储的数据存储标识符和当前数据存储标识符标识的数据,来执行至少一个操作。
3.权利要求2所述的计算机实现的方法,其中所述至少一个操作包括以下中的一个或多个:备份数据,恢复数据,复制数据,以及向用户或其它指定实体提供数据。
4.权利要求2所述的计算机实现的方法,其中由所存储的数据存储标识符和当前数据存储标识符标识的数据与之前生成的检查点组合。
5.一种用于指定虚拟机参考点以查询递增改变的计算机实现的方法,所述计算机实现的方法通过一个或多个处理器执行用于所述计算机实现的方法的计算机可执行指令而实施,并且所述计算机实现的方法包括:
建立虚拟机内的稳定非改变状态,稳定状态与包括对应状态数据和存储数据的检查点相关联;
访问一个或多个之前生成的参考点,以标识当前稳定状态与所选过去稳定时间点之间的虚拟机状态中的一个或多个差异;以及
复制当前稳定状态与所选过去稳定时间点之间的虚拟机状态中的差异。
6.权利要求5所述的计算机实现的方法,其中所选过去稳定时间点包括由虚拟机参考点表示的任何可用的之前稳定时间点。
7.权利要求5所述的计算机实现的方法,其中差异化虚拟硬驱动保持追踪在确定虚拟机状态中的差异时发生的数据改变。
8.权利要求5所述的计算机实现的方法,其中数据存储标识符包括序列号,所述序列号在存储器寄存器每一次改变时递增。
9.一种计算机系统,包括:
包含计算机可执行指令的计算机可读介质;
一个或多个处理器,所述一个或多个处理器在执行计算机可执行指令时,使计算机系统配置有一种用于执行计算机实现的方法以用于建立高效的虚拟机参考点的架构,并且当配置有所述架构时,计算机系统包括:
用于访问包括存储在数据存储装置中的底层数据的一个或多个部分的稳定虚拟机检查点的检查点访问模块,检查点与特定时间点相关联;
用于生成查询的查询生成模块,所述查询查询数据存储装置以确定参考与检查点相关联的时间点的一个或多个数据存储标识符;以及
用于将所确定的数据存储标识符存储为虚拟机参考点的虚拟机参考点生成模块,其中对数据存储装置的每一个随后改变导致对数据存储标识符的更新,使得虚拟机参考点可用于标识从特定时间点开始的递增改变。
10.权利要求9所述的计算机系统,其中虚拟机参考点信息连同虚拟机而转移,使得如果虚拟机移动到新的计算系统,则由虚拟机参考点标识的数据可恢复。
CN201580069480.XA 2014-12-17 2015-12-03 高效地提供虚拟机参考点 Active CN107003890B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110227269.3A CN112988326A (zh) 2014-12-17 2015-12-03 高效地提供虚拟机参考点

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/573976 2014-12-17
US14/573,976 US9430272B2 (en) 2014-12-17 2014-12-17 Efficiently providing virtual machine reference points
PCT/US2015/063565 WO2016099902A2 (en) 2014-12-17 2015-12-03 Efficiently providing virtual machine reference points

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202110227269.3A Division CN112988326A (zh) 2014-12-17 2015-12-03 高效地提供虚拟机参考点

Publications (2)

Publication Number Publication Date
CN107003890A true CN107003890A (zh) 2017-08-01
CN107003890B CN107003890B (zh) 2021-03-16

Family

ID=55025395

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202110227269.3A Pending CN112988326A (zh) 2014-12-17 2015-12-03 高效地提供虚拟机参考点
CN201580069480.XA Active CN107003890B (zh) 2014-12-17 2015-12-03 高效地提供虚拟机参考点

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202110227269.3A Pending CN112988326A (zh) 2014-12-17 2015-12-03 高效地提供虚拟机参考点

Country Status (4)

Country Link
US (2) US9430272B2 (zh)
EP (2) EP3234772B1 (zh)
CN (2) CN112988326A (zh)
WO (1) WO2016099902A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112559253A (zh) * 2020-12-24 2021-03-26 科东(广州)软件科技有限公司 一种计算机系统数据备份与还原的方法及装置

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9037547B1 (en) * 2010-09-15 2015-05-19 Symantec Corporation Backup time deduplication of common virtual disks from virtual machine backup images
US9524215B1 (en) * 2013-07-30 2016-12-20 Veritas Technologies Llc Systems and methods for managing virtual machine backups
US10620979B2 (en) * 2014-10-08 2020-04-14 Intel Corporation Techniques for checkpointing/delivery between primary and secondary virtual machines
US9430272B2 (en) * 2014-12-17 2016-08-30 Microsoft Technology Licensing, Llc Efficiently providing virtual machine reference points
US9547555B2 (en) * 2015-01-12 2017-01-17 Microsoft Technology Licensing, Llc Change tracking using redundancy in logical time
US20160283145A1 (en) * 2015-03-24 2016-09-29 Lenovo (Beijing) Co., Ltd. Electronic Device, Power Failure Protection Method and Data Recovery Method
KR20160145250A (ko) * 2015-06-09 2016-12-20 한국전자통신연구원 가상 머지를 지원하는 셔플 내장형 분산 스토리지 시스템 및 그 방법
US10346062B2 (en) * 2016-11-16 2019-07-09 International Business Machines Corporation Point-in-time backups via a storage controller to an object storage cloud
US11126505B1 (en) * 2018-08-10 2021-09-21 Amazon Technologies, Inc. Past-state backup generator and interface for database systems
US10846011B2 (en) 2018-08-29 2020-11-24 Red Hat Israel, Ltd. Moving outdated data from a multi-volume virtual disk to a backup storage device
US10949412B2 (en) 2018-09-21 2021-03-16 Microsoft Technology Licensing, Llc Log marking dependent on log sub-portion
CN113296872B (zh) * 2020-04-13 2022-05-06 阿里巴巴集团控股有限公司 容器状态查询方法、装置、设备、存储介质和系统
US11836052B2 (en) * 2021-07-27 2023-12-05 Rubrik, Inc. Data backup and recovery management using allocated data blocks

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080140963A1 (en) * 2006-12-11 2008-06-12 Thomason Ronald G Methods and systems for storage system generation and use of differential block lists using copy-on-write snapshots
US8443166B2 (en) * 2009-03-06 2013-05-14 Vmware, Inc. Method for tracking changes in virtual disks
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
CN103562878A (zh) * 2011-05-23 2014-02-05 国际商业机器公司 在镜像虚拟机系统中的存储器检查点设置
US20140236892A1 (en) * 2013-02-21 2014-08-21 Barracuda Networks, Inc. Systems and methods for virtual machine backup process by examining file system journal records

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5721915A (en) 1994-12-30 1998-02-24 International Business Machines Corporation Interaction between application of a log and maintenance of a table that maps record identifiers during online reorganization of a database
US6795966B1 (en) 1998-05-15 2004-09-21 Vmware, Inc. Mechanism for restoring, porting, replicating and checkpointing computer systems using state extraction
US6411964B1 (en) 1998-12-23 2002-06-25 International Business Machines Corporation Methods for in-place online reorganization of a database
US7249262B2 (en) 2002-05-06 2007-07-24 Browserkey, Inc. Method for restricting access to a web site by remote users
US6981114B1 (en) 2002-10-16 2005-12-27 Veritas Operating Corporation Snapshot reconstruction from an existing snapshot and one or more modification logs
US7328366B2 (en) 2003-06-06 2008-02-05 Cascade Basic Research Corp. Method and system for reciprocal data backup
US7162662B1 (en) 2003-12-23 2007-01-09 Network Appliance, Inc. System and method for fault-tolerant synchronization of replica updates for fixed persistent consistency point image consumption
US7769709B2 (en) 2004-09-09 2010-08-03 Microsoft Corporation Method, system, and apparatus for creating an archive routine for protecting data in a data protection system
US7567974B2 (en) 2004-09-09 2009-07-28 Microsoft Corporation Method, system, and apparatus for configuring a data protection system
US7865470B2 (en) 2004-09-09 2011-01-04 Microsoft Corporation Method, system, and apparatus for translating logical information representative of physical data in a data protection system
US8145601B2 (en) 2004-09-09 2012-03-27 Microsoft Corporation Method, system, and apparatus for providing resilient data transfer in a data protection system
US7516286B1 (en) 2005-08-31 2009-04-07 Symantec Operating Corporation Conversion between full-data and space-saving snapshots
US7447854B1 (en) 2005-12-30 2008-11-04 Vmware, Inc. Tracking and replicating changes to a virtual disk
US7882071B2 (en) 2006-08-18 2011-02-01 Isilon Systems, Inc. Systems and methods for a snapshot of data
US7519858B2 (en) 2006-08-18 2009-04-14 Computer Associates Think, Inc. Selective file restoration from incremental backups
US8364648B1 (en) * 2007-04-09 2013-01-29 Quest Software, Inc. Recovering a database to any point-in-time in the past with guaranteed data consistency
US8055613B1 (en) 2008-04-29 2011-11-08 Netapp, Inc. Method and apparatus for efficiently detecting and logging file system changes
US8046550B2 (en) 2008-07-14 2011-10-25 Quest Software, Inc. Systems and methods for performing backup operations of virtual machine files
US8495316B2 (en) 2008-08-25 2013-07-23 Symantec Operating Corporation Efficient management of archival images of virtual machines having incremental snapshots
US8499297B2 (en) 2008-10-28 2013-07-30 Vmware, Inc. Low overhead fault tolerance through hybrid checkpointing and replay
US20100262797A1 (en) 2009-04-10 2010-10-14 PHD Virtual Technologies Virtual machine data backup
US8996826B2 (en) 2009-04-28 2015-03-31 Symantec Corporation Techniques for system recovery using change tracking
US8805788B2 (en) * 2009-05-04 2014-08-12 Moka5, Inc. Transactional virtual disk with differential snapshots
US8782086B2 (en) 2009-08-27 2014-07-15 Cleversafe, Inc. Updating dispersed storage network access control information
US8356148B2 (en) 2009-09-22 2013-01-15 Lsi Corporation Snapshot metadata management in a storage system
US8726273B2 (en) 2009-12-03 2014-05-13 Vmware, Inc. Space efficient virtual machines
US8549241B2 (en) 2010-01-06 2013-10-01 Vmware, Inc. Method and system for frequent checkpointing
JP5060572B2 (ja) 2010-03-09 2012-10-31 株式会社東芝 データ通信装置及び方法
US9558074B2 (en) 2010-06-11 2017-01-31 Quantum Corporation Data replica control
US9081715B2 (en) 2011-02-01 2015-07-14 Cleversafe, Inc. Utilizing a dispersed storage network access token module to retrieve data from a dispersed storage network memory
US8769533B2 (en) * 2011-07-18 2014-07-01 International Business Machines Corporation Check-point based high availability: network packet buffering in hardware
US9003103B2 (en) 2011-09-12 2015-04-07 Microsoft Technology Licensing, Llc Nonvolatile media dirty region tracking
US8793451B2 (en) 2012-03-29 2014-07-29 International Business Machines Corporation Snapshot content metadata for application consistent backups
US8751515B1 (en) 2012-03-30 2014-06-10 Emc Corporation System and method for file-based virtual machine incremental backup
US9600206B2 (en) 2012-08-01 2017-03-21 Microsoft Technology Licensing, Llc Request ordering support when switching virtual disk replication logs
US9106721B2 (en) 2012-10-02 2015-08-11 Nextbit Systems Application state synchronization across multiple devices
US9053064B2 (en) * 2012-12-10 2015-06-09 Vmware, Inc. Method for saving virtual machine state to a checkpoint file
CN103946807B (zh) 2013-11-20 2016-03-09 华为技术有限公司 一种生成快照的方法、系统和装置
US9430272B2 (en) * 2014-12-17 2016-08-30 Microsoft Technology Licensing, Llc Efficiently providing virtual machine reference points
US9547555B2 (en) 2015-01-12 2017-01-17 Microsoft Technology Licensing, Llc Change tracking using redundancy in logical time

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080140963A1 (en) * 2006-12-11 2008-06-12 Thomason Ronald G Methods and systems for storage system generation and use of differential block lists using copy-on-write snapshots
US8443166B2 (en) * 2009-03-06 2013-05-14 Vmware, Inc. Method for tracking changes in virtual disks
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
CN103562878A (zh) * 2011-05-23 2014-02-05 国际商业机器公司 在镜像虚拟机系统中的存储器检查点设置
US20140236892A1 (en) * 2013-02-21 2014-08-21 Barracuda Networks, Inc. Systems and methods for virtual machine backup process by examining file system journal records

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112559253A (zh) * 2020-12-24 2021-03-26 科东(广州)软件科技有限公司 一种计算机系统数据备份与还原的方法及装置

Also Published As

Publication number Publication date
EP4141667A1 (en) 2023-03-01
EP3234772A2 (en) 2017-10-25
US9430272B2 (en) 2016-08-30
WO2016099902A3 (en) 2016-08-18
CN107003890B (zh) 2021-03-16
US9875160B2 (en) 2018-01-23
CN112988326A (zh) 2021-06-18
US20170109240A1 (en) 2017-04-20
EP3234772B1 (en) 2022-10-19
US20160179568A1 (en) 2016-06-23
WO2016099902A2 (en) 2016-06-23

Similar Documents

Publication Publication Date Title
CN107003890A (zh) 高效地提供虚拟机参考点
US11520755B2 (en) Migration of a database management system to cloud storage
US11650885B2 (en) Live browsing of granular mailbox data
US11797569B2 (en) Configurable data replication
US11669414B2 (en) External dynamic virtual machine synchronization
US11575747B2 (en) Enhanced network attached storage (NAS) services interfacing to cloud storage
US20210374016A1 (en) Synchronization of a database by restoring copies of changed database objects
US20220019367A1 (en) Migrating Data In And Out Of Cloud Environments
US11513922B2 (en) Systems and methods for change block tracking for backing up changed data
US11625416B1 (en) Uniform model for distinct types of data replication
DE112020003420T5 (de) Datenwiederherstellung in einem virtuellen Speichersystem
US20180285202A1 (en) External fallback system for local computing systems
US20150172120A1 (en) Managing non-conforming entities in information management systems, including enforcing conformance with a model entity
US20220188342A1 (en) Targeted search of backup data using calendar event data
CN104769555A (zh) 增强型数据管理虚拟化系统
CN105378725B (zh) 虚拟数据库倒退
CN109313538A (zh) 内联去重
CA3236542A1 (en) Coordinated checkpoints among storage systems implementing checkpoint-based replication
US20240256484A1 (en) Cloud-based file and object archive

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