高效地提供虚拟机参考点的制作方法

文档序号:25543228发布日期:2021-06-18 20:40
高效地提供虚拟机参考点的制作方法

相关申请

本申请是国际申请号为pct/us2015/063565、国际申请日为2015年12月3日、于2017年06月19日进入中国国家阶段、中国国家申请号为201580069480.x、发明名称为“高效地提供虚拟机参考点”的发明专利申请的分案申请。



背景技术:

计算系统已经变得无处不在,其范围从小型嵌入式设备到手机和平板电脑到pc和后端服务器。这些计算系统中的每一个被设计为处理软件代码。软件允许用户执行功能,从而与由计算系统提供的硬件交互。在一些情况下,这些计算系统允许用户建立并且运行虚拟机。这些虚拟机可以提供没有由主机操作系统提供的功能性,或者可以一起包括不同的操作系统。以该方式,虚拟机可以用于扩展计算系统的功能性。虚拟机可以备份在虚拟存储设备上,虚拟存储设备本身可以备份到物理或虚拟存储设备。虚拟机主机还可以配置为获取快照,该快照表示虚拟机的时间点映像(image)。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标识的数据来执行至少一个操作。如上文所提到,这些数据相关任务可以包括备份数据,恢复数据,复制数据,以及向用户或其他指定实体(诸如第三方服务或客户端)提供数据。

由所存储的数据存储标识符以及当前数据存储标识符所标识的数据可以与之前生成的检查点(初始备份404)组合,其中数据存储标识符“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,其中对数据存储装置的每一个随后改变导致对数据存储标识符的更新,使得虚拟机参考点可用于标识从特定时间点开始的递增改变。虚拟机参考点信息连同虚拟机而转移,使得如果虚拟机移动到新的计算系统,则由虚拟机参考点标识的数据可恢复。

相应地,提供了建立高效虚拟机参考点的方法、系统和计算机程序产品。此外,提供了指定虚拟机参考点以查询递增改变的方法、系统和计算机程序产品。

本文描述的概念和特征可以以其他特定形式体现而不脱离其精神或描述性特性。所述实施例要在所有方面中视为仅说明性而非限制性的。本公开的保护范围因此由随附权利要求而不是前面的说明书来表示。落入权利要求的等同方案的含义和范围内的所有改变要涵盖在其保护范围内尽管尽力在前述说明书中引起对被认为是重要的这些特征的注意,但是应当理解,本申请人可以通过权利要求书来寻求关于在此之前参考和/或在附图中示出的任何可获专利的特征或特征组合的保护,无论是否已经将重点放在其上。

再多了解一些
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1