对图像级备份的文件系统对象的有效处理的制作方法

文档序号:11654115阅读:258来源:国知局
对图像级备份的文件系统对象的有效处理的制造方法与工艺

本发明一般涉及用于将物理机数据和虚拟机数据有效备份到图像级备份和复制品中的方法。



背景技术:

用于灾难恢复的图像级备份与传统文件系统级备份相比出现了新的挑战。具体地,需要备份的磁盘图像的尺寸需要更长的时间来备份。而且对大磁盘图像的备份显著地增加了备份文件存储要求。

与传统文件级备份(通常被设置为仅备份所需的文件系统对象)相比,图像级备份保存备份磁盘的完整图像。因此,与文件级备份不同,传统的图像级备份通常包括属于下述各项的不必要的数据块:对用户没有价值的文件系统对象、删除的文件系统对象、所标记的用于删除的文件系统对象、未分配的空间、以及未使用的空间。尽管当前可用的商业备份解决方案能够(例如,通过使用压缩和删除重复)有效移除空白空间,但上面提到的其它不需要的数据块仍作为图像级备份的一部分被处理。这降低了备份性能并且需要额外的备份存储空间。因此,存在针对用于从图像级备份中排除不必要的数据的方法的需求。



技术实现要素:

因此,需要这样的工具:使得备份操作者和管理者能够选择性地减少需要从源磁盘中读取并且被存储在相应的图像级备份中的数据量。还需要的是用于对图像级备份内的对象进行选择性处理(即,选择性处理)的系统、方法、和计算机程序产品。

本发明的实施例包括用于对图像级备份进行有效的选择性处理的方法、系统和计算机程序产品。相关技术领域的技术人员将理解的是,本文参照图像级备份描述的方法还可应用到其它图像级灾难恢复技术,例如经由对图像的复制和简单拷贝来创建复制品。

示例方法接收图像级备份的备份参数。备份参数包括对图像级备份中包括的至少一个文件系统对象的选择。方法附属于作为块设备的源磁盘。源磁盘与选定的至少一个文件系统对象相对应,并且文件系统包括文件分配表(fat)。该方法基于对至少一个文件系统对象的选择来确定针对图像级备份要排除的源磁盘的文件系统对象。该方法发出文件删除api调用以发起从源磁盘删除确定的文件系统对象。该方法存储由发出的对确定的文件系统对象的文件删除api调用引起的fat内容变化。该方法基于存储的fat内容变化从源磁盘创建重构造的磁盘图像。

附图说明

附图被合并于此并且构成了说明书的一部分,附图示出了本发明并且与描述一起进一步解释了本发明的原理并且使得相关领域技术人员能够完成并使用本发明。

图1示出了根据本发明的实施例的用于选择性备份处理的系统架构。

图2a和图2b是示出根据本发明的实施例的执行对图像级备份的选择性处理的步骤的流程图。

图3示出了根据本发明的实施例的示例性图形用户界面(gui),其中对象可被选择用于图像级备份处理。

图4描绘了其中可以实施本发明的实施例的示例计算机系统。

现在将参照附图描述本发明。在附图中,通常相似的标号指示相同或功能相似的元件。此外,通常标号最左边的(一个或多个)数字标识标号第一次出现的图示。

具体实施方式

本发明的下列详细描述参考附图,附图示出了符合本发明的示例性实施例。其它实施例是可能的,并且可以在本发明的精神和范围内对实施例做出修改。因此,详细描述不意味着限制本发明。相反,本发明的范围由所附权利要求定义。

对本领域技术人员将显而易见的是,如下面所描述的,本发明可以在软件、硬件、固件、其上存储有指令的非暂态计算机可读介质、和/或图中示出的实体的很多不同实施例中实现。具有对实现本发明的硬件的专门控制的任意实际的软件代码不限制本发明。因此,将在理解给定本文呈现的细节的等级、实施例的修改和变化是可能的情况下描述本发明的操作行为。

除非有不同的明确规定,用户、备份操作者、以及管理者在本文可互换使用,以标识人类用户、软件代理、或用户和/或软件代理组。除可执行选择性备份的人类用户外,软件应用或代理有时可以处理图像级备份。因此,除非明确规定,本文所使用的术语“备份操作者”、“管理者”、以及“用户”不限于人类。

如本文所使用的,在实施例中,术语“服务器”包含被设计为用作以下各项中的一个或多个的计算设备:文件服务器、电子邮件服务器、域名系统(dns)服务器、域控制器(dc)服务器、应用服务器、数据库服务器、web服务器、防火墙服务器、其它企业服务器、以及后端服务器。服务器可以包括一个或多个服务器机器。服务器可以被实现为服务器的集合,例如服务器场或服务器集群。例如,web服务器可以是具有一个或多个中央处理单元(cpu)的商业可用服务器机器。替代地,这些web服务器可以包括多个计算设备和/或多个服务器机器(即服务器场)上托管的计算功能。

本发明一般涉及用于对图像级备份进行选择性处理的系统、方法和计算机程序产品。对图像级备份进行选择性处理的实施例相比传统图像级备份优化技术实现了至少两个关键的改善。

第一,与传统解决方案相比,本发明的实施例不依赖从源计算机、或从源计算机的快照图像中物理删除数据的潜在危险的方法。相反,数据删除请求在请求到达目标磁盘之前被拦截。拦截删除请求允许备份处理来执行对任意类型的源磁盘(包括作为只读块设备安装的用于备份目的的源磁盘)的备份处理。作为只读块设备的安装源磁盘是用于确保备份源图像的安全的很好的技术。

第二,与传统解决方案相比,本发明的实施例在备份计算机变得可用之前的备份计算机的恢复期间不要求额外的处理。额外的处理的示例包括从fat移除所删除的文件的文件记录,这可能花费很长的时间。在恢复期间的传统解决方案的额外处理可能显著地影响恢复时间,并且每次相同的备份图像被恢复都需要额外的处理。相反,本发明的实施例在备份阶段期间执行额外的处理。备份处理的结果是充分处理的、在恢复期间不要求额外处理的准备(ready-to-go)图像。

作为对图像级备份的选择性处理的一部分,备份磁盘图像通常包括修改的fat,修改的fat不同于源磁盘的fat。然而,算出对源磁盘中的fat的正确的改变以完成目的地备份磁盘图像中的fat可能是复杂的。

在备份磁盘图像中创建修改的fat的一种方式是首先从源磁盘取得fat的副本并且将取得的副本保存为备份fat用于备份磁盘图像。然后,备份过程可以通过移除对未选择用于备份的任意文件系统对象的参照来修改备份fat。然而,该方法可能要求暂停并行的对源磁盘的写操作,同时取得源磁盘中的fat的副本。此外,确定备份fat中要移除哪些参照(即,指向被排除用于备份的文件系统对象的参照)可能是很耗费时间的,并且可能要求对源磁盘和源磁盘中的fat的完整分析。

为了有效创建用于备份磁盘图像的备份fat,在一个实施例中,备份过程可以发出被排除用于备份的文件系统对象的文件删除api调用。然后,备份过程可以拦截所有要到源磁盘的fat部分的写请求。写请求由文件删除api调用触发,并且备份过程可以利用文件系统驱动器自动执行对源磁盘中的fat的修改,因此创建针对备份fat所需的内容。备份过程基于保存的对fat的变化(针对变化的部分)和源磁盘中的fat(针对未改变的部分)在备份磁盘图像中创建fat。保存的对fat的变化和源磁盘中的fat还允许备份过程避免从源磁盘拷贝不必要的磁盘块,进一步提高了备份过程的效率。

选择性备份系统架构

图1描绘了根据本发明的实施例的用于处理选择性图像级备份的系统架构100。操作者控制台110包括针对备份操作者和管理者的用户界面(ui)115。在实施例中,ui115可以在图4中所示的计算机显示器430上显示。ui115可用于添加和选择单独的文件系统对象以被包括在图像级备份中或从图像级备份中排除。如本文所使用的,图像级备份是与服务器或计算机相对应的物理机或虚拟机(vm)的磁盘图像的备份。因为任意物理机都可以(例如,通过利用代理)在图像级上备份,所以本发明应用到虚拟机和物理机二者的图像级备份。

如本文所使用的,“虚拟机”(vm)是机器(例如,服务器、计算机、或支持完整操作系统(os)的执行并且执行类似物理机的应用程序的其它计算设备之类)的软件实现方式。vm复制硬件和软件中实现的物理机的功能。在vm上运行的软件应用和os被限制于由vm提供的资源和抽象。在实施例中,虚拟机(vm)在总体虚拟基础设施内是可视的。根据本发明的实施例,被选择进行备份的备份文件系统对象可以位于生产磁盘存储130中,生产磁盘存储130包括一个或多个磁盘140,一个或多个磁盘140构成生产磁盘存储的一部分。如下面更详细描述的,本发明的实施例通过将磁盘140的图像附接到备份引擎120(在虚拟机的情况下)或通过利用每个处理的机器内部的代理从磁盘140获得数据(在物理机或虚拟机的情况下)来读取要备份的数据135。在本文中,短语“源磁盘”用于指代生产磁盘存储130中要备份的存储装置,例如磁盘140,磁盘140可以是物理机的磁盘或虚拟机的磁盘图像。

ui115还可用于从要处理的图像级备份中移除之前选定的文件系统对象。操作者控制台110还可用于输入和配置其它备份参数125用于图像级备份。例如,在图3中描绘的示例性实施例中,ui115可用于禁用备份的选择性图像级处理,以处理备份中除文件系统对象的选定子集外的所有文件系统对象、或以仅包括(拷贝)图像级备份中的选定文件系统对象。

在图1和图3中示出的示例性实施例中,操作者控制台110包括备份对象选择界面300,用于选择针对机器的图像级备份要备份的机器的文件系统对象。对要包括和排除的文件系统对象的选择作为备份参数125由备份引擎120接收。根据实施例,要包括的文件系统对象可以基于被选择要排除的文件系统对象以编程方式确定。在获取备份参数125后,备份引擎120连接到生产磁盘存储130并且发起块级访问,以从相应的磁盘140读取数据135。

根据本发明的实施例,备份引擎120是包括被配置为处理选择性图像级备份的模块的应用。备份引擎120可以在备份服务器上运行。在图1中描绘的示例性实施例中,备份引擎120被配置为从备份操作者控制台110接收备份参数125。在实施例中,接收到的备份参数125由接收模块(未示出)获取。备份引擎120包括块处理模块(未示出),该块处理模块被配置为从生产磁盘存储130读取数据135,以便取回和解析磁盘140的文件分配表(fat)150,磁盘140构成生产磁盘存储的一部分。在实施例中,生产服务器使用磁盘140,并且位于磁盘140上的文件系统(未示出)包括fat150。在一个实施例中,fat150数据可以通过读取与fat数据位置相对应的磁盘数据块直接从存储装置中被取回。在另一实施例中,fat数据可以由安装在处理的虚拟机或物理计算机中的代理(未示出)取回。块处理模块还被配置为创建重构造的磁盘图像170,重构造的磁盘图像170包括经修改的备份fat160。块处理模块还被配置为将图像级备份175写入与重构造的磁盘图像170相对应的备份文件存储装置180。

备份引擎120还包括输入/输出(i/o)拦截模块190。备份引擎120可以初始化i/o拦截模块190。在初始化后,i/o拦截模块190可以拦截到源磁盘图像140的fat150的任意读或写请求。i/o拦截模块190还被配置为分析拦截的写请求并且将fat内容变化195存储在备份服务器上。在一个实施例中,i/o拦截模块190将fat内容变化195存储在备份服务器的随机存取存储器(ram)中。如图1中所示,i/o拦截模块190是备份引擎120的组件。在图1中未示出的另一实施例中,i/o拦截模块190是独立于备份引擎120在备份服务器上运行的独立的应用。

下面继续参照图1讨论备份引擎120的额外的功能和特征。

如图1中所示,生产磁盘存储130可以包括与由生产机器磁盘存储(与备份的机器相对应)使用的与每个磁盘相对应的一个或多个磁盘(或磁盘图像(在虚拟机的情况下))140。操作者控制台110可用于选择文件系统对象,例如但不限于目录、应用、数据文件、日志文件、以及与机器的应用相关联的其它文件系统对象。

如本文所使用的,“磁盘图像”指代已经从物理存储装置(例如,网络附接存储装置(nas)、文件服务器、磁盘、以及其它物理存储设备)中提取和分离的逻辑存储。在实施例中,磁盘图像经由虚拟存储逻辑实现并且在作为存储设备(包含一个或多个虚拟磁盘,其与物理存储磁盘分离)的虚拟基础设施内是可视的。

在实施例中,备份引擎120是用作备份代理的应用。根据实施例,备份引擎120被配置为取回存储文件系统的文件分配表(fat)150的磁盘块。备份引擎120还被配置为拦截到fat150的写请求,并且将fat内容变化195保存在备份服务器上。如本文所使用的,fat指代各种操作系统(os)的各种文件系统架构中使用的文件分配表,并且不限于microsofttmwindows中使用的fat文件系统。例如,fat可以是针对fat12、fat16、fat32、或exfat文件系统的文件分配表。在另一实施例中,fat可以是针对ntfs文件系统的主文件表(mft)。在又一额外的实施例中,fat可以是针对ext2、ext3、ext4、hfs或refs文件系统的分配表。根据本发明的实施例,fat150的内容和fat内容变化195被读取以确定被选择用于包括在图像级备份中的文件系统对象的块的位置,如由备份操作者使用操作者控制台110指定的。按这种方式,仅与选定的文件系统对象相对应的源磁盘140的磁盘块需要从磁盘或磁盘图像140中被读取。

根据本发明的实施例,fat150的内容的副本被制作成备份fat160,备份fat160可选择地修改。可选的修改可以包括每当操作者控制台110中做出选择时移除已经从备份中排除的对文件系统对象的参照。在另一实现方式中,fat160仍然作为fat150的未经修改的副本。在该情况下,某些不重要的文件(例如,临时文件、虚拟存储器文件(即pagefile.sys和其它页面文件)以及休眠文件(即hyberfil.sys))将仍在恢复的备份175的文件系统中表示,但是将具有空的内容(被归零的数据块)。不同于传统技术,本发明的实施例不查找或处理删除的数据信息。

备份引擎120被配置为动态有效地重构造经修改的、重构造的磁盘图像170,而同时将备份数据175压缩和保存到备份文件存储180。在替代实施例中,备份引擎120将重构造的磁盘图像170复制到复制品vm(未示出)。例如,重构造的磁盘图像170可以被复制到远程文件存储装置。备份引擎120还可以将重构造的磁盘图像170拷贝到另一本地或远程存储设备。例如,在备份175将用于执行在vm的复制品(例如,备用vm或失效备援vm)上的恢复的情况下,重构造的磁盘图像170被复制到由运行复制品vm的超级主机可访问的备份存储装置。

根据实施例,重构造的磁盘图像170通过以下方式来创建:使用与备份fat160相对应的经修改的数据块,然后仅取回和应用磁盘140中与在ui115中被选择用于备份的文件系统对象相对应的那些图像块。替代包括磁盘图像140的所有顺序块,重构造的磁盘图像170基于操作者控制台110的ui115中提供的设置来跳过与被选择用于排除的文件系统对象相对应的块。根据实施例,排除可以是预配置的。例如,可以预配置始终从备份中排除诸如页面和虚拟存储器文件(例如,交换文件)之类的文件。

根据实施例,由于重构造的磁盘图像170使用备份fat160被创建,因此重构造的磁盘图像170同时作为备份数据175被压缩和存储在备份文件存储装置180中。在实施例中,包含将从处理中被排除的数据的磁盘图像数据块在重构造的磁盘图像170中由归零的数据块替代。因此,归零的数据块替代属于ui115中被选择用于排除的对象的实际的数据块被写到重构造的磁盘图像170。按这种方式,在数据在保存到备份文件之前被压缩和/或解除复制的情况下,备份文件存储装置180中存储重构造的磁盘图像170所需的存储空间是减少的。

在本发明的实施例中,备份数据175可以作为本地卷对数据消耗处理可用,以使得重构造的磁盘图像170可以在之后用于额外的处理、验证和/或恢复备份的文件系统对象。在替代实施例中,备份文件存储180作为远程存储经由公共或专有存储接入协议(例如,但不限于网络文件系统(nfs)、通用互联网文件系统(cifs)、以及互联网小型计算机系统接口(iscsi))对数据消耗处理可用。额外处理的示例包括将重构造的磁盘图像170作为卷安装到服务器,使用本地os和第三方工具创建、更新或删除某些文件系统对象,以及提交对备份数据175的变化。于2010年10月8日提交的、题为“从图像级备份中的项目级恢复(item-levelrestorationfromimagelevelbackups)”的美国专利申请no.12/901,233中描述了用于从图像级备份中恢复文件系统对象和项目的示例方法,该申请通过引用合并于2009年10月12日提交的、题为“从图像级备份中的项目级恢复(item-levelrestorationfromimagelevelbackups)”的美国专利临时申请no.61/250,586并且要求该临时申请的优先权。美国专利申请no.12/901,233和美国专利临时申请no.61/250,586通过引用以其整体合并于此。美国专利申请no.12/901,233中描述了用于从图像级备份中显示和验证文件系统对象而无需充分提取、解压缩或解密图像级备份的示例方法,该申请通过引用合并于2010年2月9日提交的、题为“用于验证图像级备份的系统、方法和计算机程序产品(systems,methods,andcomputerprogramproductsforverificationofimagelevelbackups)”的美国临时专利申请no.61/302,743并且要求该临时申请的优先权,这两个申请通过引用以其整体合并于此。于2011年2月4日提交的、题为“从图像级备份中的跨平台对象级恢复(cross-platformobjectlevelrestorationfromimagelevelbackups)”的美国专利申请no.13,021,312中描述了用于从图像级备份中恢复文件系统的文件系统对象而无需在运行支持图像级备份中备份的虚拟磁盘文件系统类型的操作系统(os)的计算机上执行恢复处理的示例方法,该申请通过引用合并于2010年2月9日提交的、题为“从图像级备份中的跨平台对象级恢复(cross-platformobjectlevelrestorationfromimagelevelbackups)”的美国临时专利申请no.61/302,877并且要求该临时申请的优先权。美国专利申请no.13,021,312和美国临时专利申请no.61/302,877二者通过引用以其整体合并于此。

选择性图像级备份方法

图2a和图2b是示出根据本发明的实施例的备份方法200用于处理选择性图像级备份的步骤的流程图。

更具体地,流程图示出了根据本发明的实施例的使用重构造的磁盘图像(例如,重构造的磁盘图像170)执行文件系统选择性图像级备份的步骤。图2a描述了在备份引擎120开始将数据保存到重构造的磁盘图像170之前的准备步骤。图2b是图2a的继续,图2b示出了备份引擎120使用在图2a中描述的准备步骤期间获得的信息将相关数据保存到重构造的磁盘图像170的步骤。继续参照图1中示出的实施例描述了图2a和图2b。然而,图2a和图2b不限于该实施例。注意的是,流程图中的步骤不一定必须按所示的顺序发生。

如相关领域技术人员将理解的是,下面描述的备份方法200的步骤可以经由执行计算机可执行指令来完成,响应于由计算设备执行计算机可执行指令,执行用于创建选择性图像级备份的算法。

方法在图2a中的步骤210处开始。在实施例中,备份应用在步骤210中开始。例如,备份引擎120和备份操作者控制台110可以在该步骤中开始。在备份应用开始后,方法继续到步骤220。

在步骤220中,选择性备份参数125被接收。备份参数125可以包括以下各项中的一个或多个:要备份的物理机或虚拟机(vm)、以及要包括在图像级备份中或从图像级备份中排除的文件系统对象的列表。文件系统对象可包括单独指定的或使用文件名称掩模的目录和文件。在实施例中,如果目录被选择为包括在图像级备份中,则目录和选定的目录下的子目录中的所有数据文件被自动选择为包括在图像级备份中。在本发明的另一实施例中,如果诸如目录之类的文件系统对象被选择为从图像级备份中排除,则所有相关的文件系统对象(例如,所排除的目录和其所有子目录内的文件)将不在图像级备份中处理。根据实施例,要被包括在备份中的数据项的列表可以基于由用户选择的要从备份中排除的一个或多个数据项以编程方式确定。例如,可以以编程方式确定除用户选择的要被排除的一个或多个文件外的所有文件或文件的预定子集被枚举并且被包括在要备份的文件系统对象的列表中。根据实施例,备份参数125经由操作者控制台110内的ui115中的用户输入被接收。在接收到备份参数125后,方法继续到步骤230。

在步骤230中,备份引擎120连接到由计算机所使用的、被选择为要在步骤220中进行备份的生产磁盘存储装置130。如上面参照图1所讨论的,生产磁盘存储装置130包括要备份的机器的一个或多个磁盘(或磁盘图像)140。

在步骤240中,备份引擎120附接到所需的源磁盘140。在该步骤中,块级读访问被初始化为能够取回和处理步骤220中选定的对象的数据块。在针对物理机的备份处理的情况中,根据实施例,处理的物理机内部的代理可以被用于向备份代理120提供经处理的磁盘的数据。在某些实施例中,备份引擎120附接到为用于块级访问的块设备的所需的源磁盘140。因为所需的源磁盘140可以是生产磁盘存储装置130的一部分,因此备份过程不更改所需的源磁盘140的内容是重要的。在一个实施例中,备份引擎120附接到作为只读块设备的所需的源磁盘140,以使得备份引擎120在备份期间将不改变所需的源磁盘140的内容。在备份引擎120被附接到包含选定的文件系统对象的生产磁盘存储装置130和(一个或多个)磁盘140后,方法继续到步骤250。

在步骤250中,备份引擎120在备份服务器上对i/o拦截模块190进行初始化。在初始化后,i/o拦截模块190可以拦截到附接的源磁盘140的读请求或写请求。在针对虚拟机进行备份处理的情况中,根据实施例,i/o拦截模块190使用附接到虚拟磁盘的插件来拦截到源磁盘140的读请求或写请求。在针对物理机的备份处理的情况中,根据另一实施例,i/o拦截模块190可以利用在物理机上运行的代理来拦截到源磁盘140的读请求或写请求。

在步骤252中,备份引擎120确定针对备份要被排除的源磁盘140的文件系统对象。在某些实施例中,备份引擎120基于选择性备份参数125确定针对备份要被排除的文件系统对象。在一个实施例中,选择性备份参数125指定对要包括在图像级备份中的至少一个文件系统对象的选择。备份引擎120确定源磁盘中不在所选择的至少一个文件系统对象中的所有文件系统对象是要从图像级备份中排除的文件系统对象。在另一实施例中,选择性备份参数125已经指定对要在图像级备份中排除的至少一个文件系统对象的选择。备份引擎120然后确定由选择性备份参数125指定的所选择的至少一个文件系统对象中的所有文件系统对象是针对图像级备份要被排除的文件系统对象。

在步骤255中,备份引擎120发出文件删除api调用,以发起从源磁盘140中删除确定的文件系统对象。所确定的文件系统对象是针对图像级备份要被排除的文件系统对象。发出的文件删除api调用将触发到附接的源磁盘140的一系列写请求。因为备份引擎120已经对i/o拦截模块190进行了初始化,所以备份过程能够拦截由文件删除api调用引起的写请求。一系列写请求包括改变源磁盘140中的fat150的内容的写请求。改变fat内容的写请求由文件删除api调用触发。但是,如步骤240中所讨论的,源磁盘140是生产磁盘存储装置130的一部分,并且备份过程不更改源磁盘140的内容是很重要的。发出的文件删除api调用将尝试通过触发到源磁盘140的一系列写请求来删除确定的文件系统对象。重要的是,因为备份引擎120附接到作为只读块设备的源磁盘140,所以即使在i/o拦截模块190具有不期望的问题的情况下,发出的文件删除api调用实际上将不能从源磁盘140中删除确定的文件系统对象或改变源磁盘140中的fat150的内容。

在步骤260中,备份引擎120拦截到源磁盘140的写请求。在一个实施例中,备份引擎120使用i/o拦截模块190来拦截到源磁盘140的fat部分的所有写请求。改变fat内容的写请求是由文件删除api调用引起的,文件删除api调用尝试从源磁盘140中删除确定的文件系统对象。尽管文件删除api调用实际上将不删除确定的文件系统对象或改变源磁盘140的fat内容,但备份引擎120仍将拦截到源磁盘140的写请求,包括改变源磁盘140中的fat内容的写请求,因此使得文件删除api调用成功。

在某些实施例中,改变fat内容的写请求包括与源磁盘140中的fat150的变化相对应的磁盘块的块id(或块位置)。改变fat内容的写请求还包括与源磁盘140中的fat150的改变相对应的块的改变的内容。在步骤270中,备份引擎120提取与源磁盘140中的fat150的变化相对应的块id(或块位置)和块的改变的内容。备份引擎120然后在备份服务器上将提取的信息保存为fat内容变化195。在一个实施例中,备份引擎120在备份服务器的随机存取存储器(ram)中保存fat内容变化195。

在由备份引擎120发出的文件删除api调用完成后,在步骤275中,备份引擎120通过分析fat结构标识源磁盘140的未使用的磁盘块。未使用的磁盘块是将与重构造的磁盘图像170中的任意文件系统对象都不对应的磁盘块。在某些实施例中,文件删除将产生未使用的磁盘块。例如,在某些文件系统中,文件删除api调用实际上将不重置源磁盘中的相应块的内容。替代地,文件删除api调用仅仅将相应的磁盘块标记为删除,而不改变磁盘块的内容。将这些未使用的磁盘块的内容从源磁盘140拷贝到重构造的磁盘170可能浪费不必要的存储资源和阻碍备份过程的性能。

在一个实施例中,未使用的磁盘块包括在备份方法200开始之前由生产服务器发起的文件删除api调用标记为删除的磁盘块。备份引擎120可以分析源磁盘140中的fat15的未改变的部分,以将磁盘块标识为删除。此外,未使用的磁盘块可以包括与确定的要从重构造的磁盘图像170中排除的文件系统对象(如步骤252中确定的)相对应的磁盘块。备份引擎120可以分析保存的fat内容变化195以标识要排除的未使用的块,因为备份引擎120拦截由要排除的文件系统对象的文件删除api调用触发的写请求。因此,fat结构是来自两个源的信息的组合:(1)附接的源磁盘140中的fat150的未改变的部分,其标识由生产服务器发出的文件删除api调用引起的未使用的磁盘块;以及(2)保存的fat内容变化195(即改变的部分),其标识由备份引擎120发出的文件删除api调用引起的未使用的磁盘块。在某些实施例中,备份引擎120通过从源磁盘140读取fat150的未改变的部分、以及从来自备份服务器的ram的保存的fat内容变化195读取改变的部分来分析fat结构。在一个实施例中,备份引擎120通过从源磁盘140读取fat150的未改变的部分、以及从来自备份服务器的ram的保存的fat内容变化195读取改变的部分来生成fat结构。备份引擎120然后可以使用fat结构来标识源磁盘140的未使用的磁盘块。

在步骤280中,备份引擎120开始处理源磁盘140的所有磁盘块。在某些实施例中,备份引擎120开始顺序处理源磁盘140的所有磁盘块。在一个实施例中,备份引擎120使用块读取器来顺序处理源磁盘140的每个磁盘块。

备份方法200在图2b中继续。在步骤282中,在处理源磁盘140的每个遇到的磁盘块期间,备份引擎120决定遇到的磁盘块是否被追踪为由步骤255中的文件删除api调用引起的修改的磁盘块。如上面所描述的,由备份引擎120发出的文件删除api调用触发尝试改变源磁盘140中的fat150的写请求。然而,改变被保存到备份服务器上的fat内容变化195,而不是被保存到源磁盘140。因为fat内容变化195包括块id(或块位置)和与对源磁盘140中的fat150尝试的变化相对应的块的改变的内容,备份引擎120可以分析fat内容变化以决定遇到的磁盘块是否被追踪为修改的磁盘块。

在步骤283中,如果备份引擎120决定遇到的磁盘块被追踪为修改的磁盘块,则备份引擎120将与遇到的磁盘块相关联的fat内容变化195的块内容存储到重构造的磁盘图像170中的相应的块。通过存储fat内容变化195的块内容而不是存储来自源磁盘140的块内容,重构造的磁盘图像170的fat160包括正确的改变的块内容,这是因为fat160将不包括标明与要排除的文件系统对象相关联的磁盘块的块内容。

在步骤284中,备份引擎120决定遇到的磁盘块是否是如步骤275中标识的未使用的磁盘块之一。在步骤285中,如果备份引擎120决定遇到的磁盘块是未使用的磁盘块,则备份引擎120将零存储到重构造的磁盘图像170中的相应块,而不是存储来自源磁盘的内容。在这样做的过程中,备份方法200还改善备份过程的性能,这是因为备份引擎120不需要从源磁盘140读取未使用的块的内容。此外,步骤285可以帮助降低压缩的图像级备份的尺寸,这是因为未使用的磁盘块中的连续的零值通过大部分压缩技术(例如,运行长度编码(rle)和高级运行长度限制(arll))压缩地非常好。

在步骤286中,如果遇到的磁盘块既不是追踪为修改的磁盘块也不是未使用的磁盘块,则备份引擎120从源磁盘140读取到的磁盘块的内容并将遇到的磁盘块的内容存储到重构造的磁盘170中的相应块。在一个实施例中,如果遇到的磁盘块既不是追踪为修改的磁盘块也不是未使用的磁盘块,则遇到的磁盘块与被选择用于备份的文件系统对象相关联,或遇到的磁盘块与源磁盘140中的fat的未经修改的部分相关联,然后备份引擎120将遇到的磁盘块的内容存储到重构造的磁盘170中的相应块。

在一个实施例中,在处理一个磁盘块后,备份引擎120继续顺序处理源磁盘140的下一磁盘块。当备份引擎120在步骤281中完成对附接的源磁盘140的最后一个磁盘块的处理时,备份方法200在步骤290处结束。

因为对图像级备份的选择性处理通常不将来自源磁盘的所有文件系统对象包括在目的地磁盘图像(即重构造的磁盘图像)中,所以目的地磁盘中的fat通常不同于源磁盘中的fat。算出对目的地磁盘图像中的fat的正确的变化可能是复杂的并且易于出错的。某些备份方法可能要求数次处理源磁盘和源磁盘中的fat。另一方面,如示例性图2a和图2b中所示出的,备份方法200描述了用于图像级备份的选择性处理的有效方式。通过发出文件删除api调用并且拦截由文件删除api调用触发的写请求,备份过程利用操作系统自动算出fat的变化以便创建正确的重构造的磁盘图像。备份方法可以将变化保存到本地位于备份服务器上的fat。备份方法基于fat的保存的变化和源磁盘中的fat来创建重构造的磁盘图像中的fat。fat的保存的变化和源磁盘中的fat还允许备份方法避免从源磁盘拷贝不必要的磁盘块。在某些实施例中,备份方法200仅需要在单次过程中顺序处理源磁盘的所有磁盘块。此外,附接到作为只读设备的源磁盘在即使文件删除api调用被发出的情况下确保备份过程将不更改磁盘的内容。

示例选择性处理用户界面

图3示出了根据本发明的实施例的图形用户界面(gui)。参照图1和图2的实施例描述了图3中描绘的gui。然而,gui不限于那些示例实施例。例如,gui可以是用于选择选择性备份参数125(如上面参照图2在步骤220中所述)的操作者控制台110内的ui115。

尽管在图3中描绘的示例性实施例中gui作为在计算机终端上运行的界面被示出,但可以理解的是gui可以很容易适用于在其它平台(例如,运行各种操作系统的移动设备平台)的显示器、或另外的计算设备显示器上执行。例如,在本发明的实施例中,图3中所示的gui可以被显示在具有输入设备和显示器的移动设备上。

图3示出了示例性备份对象选择界面300,其中来自要备份的物理机或虚拟机的生产磁盘存储装置130的一个或多个文件系统的文件系统对象可以由备份操作者显示和选择。如下面所描述的和在图3中所示出的,备份对象选择界面300可用于选择包括在备份数据175中或从备份数据175中排除的文件系统对象。

根据实施例,通过使用输入设备(未示出)点击包括按钮306,备份操作者可以浏览来自选定机器的生产磁盘存储装置130的显示的文件系统对象的列表。在实施例中,备份操作者使用输入设备(未示出)选择添加(add)按钮308来在显示的文件系统对象中选择要包括在备份175中的一个或多个文件系统对象。例如,通过在由于点击包括按钮306和随后选择添加按钮308而显示的文件系统对象内移动指针或光标,备份操作者从生产磁盘存储装置130中选择要处理的和要包括在重构造的磁盘图像170中的一个或多个文件系统对象。根据本发明的实施例,备份操作者可以通过输入(一个或多个)对象名称或浏览生产磁盘存储装置130内的(一个或多个)文件系统对象的位置来选择一个或多个文件系统对象(例如,图3的示例性实施例中的“d:\share\homefolders”)。备份操作者可以通过点击移除(remove)按钮310来从备份中移除之前添加的文件系统对象。

可以通过点击备份对象选择界面300内显示的文件系统对象并且点击添加按钮308来选择用于包括在备份175中的一个或多个文件系统对象。一旦备份操作者已经完成选择文件系统对象,通过点击确认(ok)按钮312来保存备份参数。根据实施例,一旦备份操作者点击确认按钮312,备份参数125被保存为由备份引擎120使用的vm处理设置。可以通过点击取消(cancel)按钮314来取消当前的文件系统对象选择。

在实施例中,可以通过点击排除按钮304来选择要从备份175中排除的文件系统对象。通过使用输入设备(未示出)点击包括按钮306,备份操作者可以浏览来自选定机器的生产磁盘存储装置130的显示的文件系统对象的列表。添加按钮308允许备份操作者向要从备份175中排除的文件系统对象的列表添加一个或多个文件系统对象或环境变量(例如,图3的示例性实施例中的“c:\pagefile.sys”、“c:\hyberfil.sys”和“%temp%”)。在实施例中,备份操作者使用输入设备(未示出)选择添加(add)按钮308来在显示的文件系统对象中选择要从备份175中排除的一个或多个文件系统对象。例如,通过在由于点击排除按钮304和随后选择添加按钮308而显示的文件系统对象内移动指针或光标,备份操作者选择将不从生产磁盘存储装置130中读取的、并且要从重构造的磁盘图像170中排除的一个或多个文件系统对象。备份操作者可以通过点击移除(remove)按钮310来从备份中移除之前添加的文件系统对象。

根据实施例,如果备份操作者不希望选择要包括在备份175中或要从备份175中排除的单独的文件系统对象,则可以选择禁用按钮302。

如上面参照图1、图2a和图2b所描述的,随后基于备份对象选择界面300中选定和保存的备份参数125来执行选择性图像级备份。在实施例中,显示器可以是图4中所示的计算机显示器430,并且备份对象选择界面300可以是显示器界面402。根据本发明的实施例,输入设备可以是但不限于例如触摸屏、键盘、定点设备、追踪球、触摸板、操纵杆、语音激活控制系统、或用于在备份操作者和备份对象选择界面300之间提供交互的其它输入设备。

示例计算机系统实现方式

本发明的各方面可以通过软件、固件、硬件或其组合来实现。图4示出了示例计算机系统400,其中本发明或本发明的一部分可以被实现为计算机可读代码。例如,图2a和图2b的流程图所示出的方法可以在系统400中被实现。图1的选择性备份处理架构100也可以在系统400中被实现。根据该示例计算系统400描述了本发明的各个实施例。在阅读该说明书后,如何使用其它计算机系统和/或计算机架构来实现本发明对相关领域技术人员将变得显而易见。

计算机系统400包括一个或多个处理器,例如处理器404。处理器404可以是专用处理器或通用处理器。处理器404被连接至通信基础设施406(例如,总线或网络)。

计算机系统400还包括主存储器408(优选随机存取存储器(ram)),并且还可以包括辅助存储器410。辅助存储器410可以包括例如硬盘驱动412、可移动存储驱动414、闪速存储器、存储器棒、和/或任意类似的非易失性存储机制。可移动存储驱动414可以包括软盘驱动、磁带驱动、光盘驱动、闪速存储器等。可移动存储驱动414以熟知的方式从可移动存储单元418进行读取或者写入至可移动存储单元418。可移动存储单元418可以包括软盘、磁带、光盘等,其由可移动存储驱动414读取和写入。(一个或多个)相关领域技术人员将理解的是,可移动存储单元418包括其中存储有计算机软件和/或数据的非暂态计算机可用存储介质。

在替代实现方式中,辅助存储器410可以包括用于允许计算机程序或其它指令加载到计算机系统400中的其它类似装置。这些装置可以包括例如可移动存储单元422和接口420。这类装置的示例可以包括程序盒和盒式接口(例如,视频游戏设备中发现的那些)、可移动存储器芯片(例如,eprom或prom)和相关联的插槽(socket)、和允许软件和数据从可移动存储单元422传送到计算机系统400的其它可移动的存储单元422和接口420。

计算机系统400还可以包括通信接口424。通信接口424允许软件和数据在计算机系统400和外部设备之间传送。通信接口424可以包括调制解调器、网络接口(例如,以太网卡)、通信端口、pcmcia槽和卡等。

计算机系统400可以额外地包括计算机显示器430。根据实施例,计算机显示器430结合显示器接口402可用于在操作者控制台110上显示ui115。计算机显示器430还可用于显示图3中描绘的备份对象选择界面300。

在该文档中,术语“计算机程序介质”、“非暂态计算机可读介质”、以及“计算机可用介质”通常用于指代诸如可移动存储单元418、可移动存储单元422、以及硬盘驱动412中安装的硬盘之类的介质。计算机程序介质、计算机可读存储介质、以及计算机可用介质还可指代存储器,例如主存储器408和辅助存储器410,其可以是存储器半导体(例如,dram等)。这些计算机程序产品是用于向计算机系统400提供软件的装置。

计算机程序(还称为计算机控制逻辑)被存储在主存储器408和/或辅助存储器410中。计算机程序还可以经由通信接口424来接收。这类计算机程序在被执行时使得计算机系统400能够实现本文所讨论的本发明。具体地,计算机程序在被执行时使得处理器404能够实现本发明的处理,例如图2a和图2b的流程图所示出的方法中的步骤、以及上面讨论的图1的系统架构100。因此,这类计算机程序表示计算机系统400的控制器。其中使用软件实现本发明,软件可以被存储在计算机程序产品中,并使用可移动存储驱动414、接口420、硬驱动412、或通信接口424加载到计算机系统400中。

本发明还针对包括任意计算机可用介质上存储的软件的计算机程序产品。这类软件在一个或多个数据处理设备中被执行时,使得(一个或多个)数据处理设备如本文所述的进行操作。本发明的实施例采用现在已知的或未来的任意计算机可用或可读介质。计算机可用介质的示例包括但不限于主存储设备(例如,任意类型的随机存储存储器)、辅助存储设备(例如,硬盘、软盘、cdrom、zip磁盘、磁带、磁存储设备、光存储设备、mems、纳米技术存储设备等)、以及通信介质(例如,有线和无线通信网络、局域网、广域网、内联网等)。

总结

尽管上面已经描述了本发明的各个实施例,应该理解的是仅通过示例的方式而非限制的方式呈现了这些实施例。(一个或多个)相关领域技术人员将理解的是,在不脱离由所附权利要求定义的本发明的精神和范围的情况下,可以在形式和细节上做出各种变化。应该理解的是,本发明不限于这些示例。本发明可应用到按本文所描述的进行操作的任意元件。因此,本发明的宽度和范围不应该受任何上述的示例性实施例的限制,而是只根据所附权利要求和其等同物来定义。

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