利用变化跟踪进行系统恢复的技术的制作方法

文档序号:6349769阅读:171来源:国知局
专利名称:利用变化跟踪进行系统恢复的技术的制作方法
技术领域
本发明一般涉及系统恢复,更具体地,涉及利用变化跟踪进行系统恢复的技术。
背景技术
备份系统可以跟踪从先前的备份起的数据修改或写入请求,从而使得系统可以备份修改数据。例如,备份系统可以对修改数据进行定期增量备份。只备份修改数据可能比所有数据的完全备份使用更少的存储空间,并且可能需要较少的网络流量和磁盘输入/输出(I/O)处理。可以跟踪数据修改从而确定备份什么。已在存储器中修改但是还未写入磁盘的修改数据一般被称为“脏(dirty)”数据。修改数据被写入磁盘之后一般才被称为“干净 (clean)” 数据。被跟踪的数据修改或写请求可以被存储在存储器中或被写入磁盘。如果被跟踪的数据修改被写入磁盘,那么对于对磁盘的每次写入请求,它们会需要写入请求。这项开销和额外的I/O在性能方面是不可接受的。如果被跟踪的数据修改被存储在存储器中,那么它们可以在系统关机时被写入磁盘,从而避免被跟踪的数据修改丢失。如果系统崩溃、不正确地关闭或经历中断,那么被跟踪的数据修改将丢失。然后用户面临两个困难的选择。用户可以对所有数据执行完全备份,从而捕获所有可能的变化,这比增量备份需要更多的存储空间并且花费更长的时间。或者,用户可以执行调和操作(reconciliation operation), 其可以识别从上次备份起的数据修改(即丢失的跟踪修改)。通过比较使用的存储空间部分(例如磁盘的被使用块)与上次备份的部分,调和操作可以识别修改。在完成调和操作之后,可以执行增量备份。然而,与完全备份相比,调和操作可能需要一样长或更长的时间, 以及需要一样多或更多的I/O处理。鉴于前述内容,可以理解仍存在与当前的系统恢复技术相关的显著问题和缺点。

发明内容
本发明公开了一种利用变化跟踪进行系统恢复的技术。在一个具体的示例性的实施例中,该技术可以实现为利用变化跟踪提供系统恢复的计算机实现方法,该方法包含接收对电子存储装置的写入请求,识别电子存储区域中与写请求相关联的区域,设置区域指示符以识别电子存储区域为脏的,以及设置一个或多个部分指示符以识别电子存储区域的一个或多个脏部分。根据该具体的示例性实施例的其他方面,利用变化跟踪进行系统恢复可以进一步包含确定是否要设置区域指示符以识别电子存储区域,以及在确定要设置区域指示符的情况下设置区域指示符。根据该具体的示例性实施例的更多方面,确定是否要设置区域指示符以识别电子存储区域可以至少部分地基于确定当前设置指示符。根据该具体的示例性实施例的额外方面,利用变化跟踪进行系统恢复可以进一步包含确定是否要设置一个或多个部分指示符以识别一个或多个脏部分,以及在要设置一个或多个部分指示符的情况下设置一个或多个部分指示符。根据该具体的示例性实施例的额外方面,确定是否要设置一个或多个部分指示符以识别一个或多个脏部分可以至少部分地基于以下至少之一确定当前设置一个或多个部分指示符;确定当前设置电子存储区域的每个部分指示符;确定捕获电子存储区域的分配部分;以及确定还原(restore)电子存储区域的分配部分。根据该具体的示例性实施例的额外方面,设置区域指示符可以包含在易失性电子存储装置中设置指示符和在非易失性电子存储装置中设置指示符。根据该具体的示例性实施例的额外方面,设置一个或多个部分指示符可以包含在易失性电子存储装置中设置指示符和在非易失性电子存储装置中设置指示符。根据该具体的示例性实施例的额外方面,识别在非易失性电子存储装置中设置一个或多个部分指示符的时间可以基于以下至少之一确定在特定时间段内未设置额外的部分指示符;确定已经设置电子存储区域的所有部分指示符;以及与识别时间处的区域相关联的较低水平的磁盘活动性。根据该具体的示例性实施例的额外方面,利用变化跟踪进行系统恢复可以进一步包含在非易失性电子存储装置中已经设置一个或多个部分指示符之后清除区域指示符。根据该具体的示例性实施例的额外方面,一个或多个部分指示符可以包含以下至少之一位图、运行表、范围和数据结构,用于识别一个或多个脏数据部分。根据该具体的示例性实施例的额外方面,利用变化跟踪进行系统恢复可以进一步包含利用多个等级的区域指示符,其中所述多个等级的区域指示符能够进一步对电子存储装置的变化跟踪进行细分。根据该具体的示例性实施例的额外方面,脏部分可以包含以下至少之一块、扇区和簇。根据该具体的示例性实施例的额外方面,脏区域可以包含段。根据该具体的示例性实施例的额外方面,利用变化跟踪进行系统恢复进一步包含创建电子存储装置的映像,利用区域指示符将电子存储装置的映像与电子存储装置的备份相比较从而识别电子存储装置的脏区域,以及基于确定在备份之后修改了与部分指示符相对应的电子存储装置的一个或多个部分,更新识别的脏区域的一个或多个部分指示符。根据该具体的示例性实施例的额外方面,利用变化跟踪进行系统恢复进一步包含利用区域指示符创建增量备份从而识别电子存储装置的脏区域,其中增量备份捕获被指示为脏区域的分配部分,且增量备份只捕获干净区域中经修改的数据部分。根据该具体的示例性实施例的额外方面,利用变化跟踪进行系统恢复进一步包含利用区域指示符从备份中还原一个或多个数据部分,从而识别电子存储装置中的脏区域, 其中对识别的脏区域的分配部分进行还原,以及其中对干净区域的一个或多个经修改的部分进行还原。根据该具体的示例性实施例的额外方面,该技术可以实现为用于存储计算机指令程序的至少一个处理器可读介质,该计算机指令程序被配置为能够由至少一个处理器读取以指示至少一个处理器执行计算机处理,从而执行权利要求1中所述的方法。在另一个具体的示例性实施例中,该技术可以实现为提供利用变化跟踪进行系统恢复的制造品,该制造品包含至少一个处理器可读介质和所述至少一个介质上承载的指令,其中所述指令被配置为能够由至少一个处理器从至少一个介质上读取,因而引起至少一个处理器运行以执行接收对电子存储装置的写请求,识别电子存储装置中与写请求相关联的区域,设置区域指示符以识别电子存储区域为脏的,以及设置一个或多个部分指示符以识别电子存储区域的一个或多个脏部分。在另一个具体的示例性实施例中,该技术可以实现为提供利用变化跟踪进行系统恢复的系统,该系统包含一个或多个通信地耦合到网络的处理器,其中一个或多个处理器被配置为接收对电子存储装置的写入请求,识别电子存储装置中与写入请求相关联的区域,设置区域指示符以识别电子存储区域为脏的,以及设置一个或多个部分指示符以识别电子存储装置的一个或多个脏部分。根据该具体的示例性实施例的其他方面,一个或多个处理器可以被进一步配置为利用区域指示符执行以下至少之一系统调和、系统备份和系统还原。参考示例性的实施例及其附图将更详细地描述本公开。尽管下面参考示例性的实施例描述了本公开,但是应当理解,本公开并不限于这些示例性的实施例。接触本文教导的本领域的普通技术人员将认识到额外的实现方式、改进和实施例以及其他使用领域,上述的额外实现方式、改进和实施例均在本文所描述的本公开的范围内,并且相对于本公开具有显著的效用。


为了便于更全面地理解本公开,现在参考附图,在附图中相似的元件用相似的数字标记。这些附图不应当解释为限制本公开,而意在仅仅作为示例。图1示出了根据本公开的实施例的提供系统恢复的系统。图2示出了根据本公开的实施例的提供系统恢复的模块。图3描绘根据本公开的实施例的提供系统恢复的方法。图4描绘根据本公开的实施例的提供系统调和的方法。图5描绘根据本公开的实施例的提供增量备份的方法。图6描绘根据本公开的实施例的提供系统还原的方法。
具体实施例方式参考图1,其示出了根据本公开的实施例的提供系统恢复的系统100。图1是系统 100的简化视图,系统100可以包括未描绘的额外元件。网络元件104和110可以通信地耦合到网络102。网络元件104可以含有修改跟踪模块114。计算机108可以通信地耦合到网络102。数据106可以通信地耦合到网络元件104。存储装置112可以通信地耦合到网络元件110。网络102可以是局域网(LAN)、广域网(WAN)、因特网、蜂窝网、卫星网络或允许在网络元件104和110、计算机108和通信地耦合到网络102的其他设备之间通信的其他网络。网络元件104和110可以是应用服务器、备份服务器、网络存储设备、媒体服务器或通信地耦合到网络102的其他设备。网络元件104和110可以利用存储装置112存储应用数据、备份数据或其他数据。网络元件104和110可以是主机,例如应用服务器,其可以对在其本身和备份设备、备份处理器和/或存储装置之间传递的数据进行处理。网络元件110可以是连接到存储装置112的备份服务器。在一个或多个实施例中, 网络元件Iio能够对从存储装置112接收的数据或发送至存储装置112的数据进行处理。 在其他的实施例中,网络元件110可以表示连接存储区域网的网络装置。计算机108可以是台式计算机、便携式计算机、服务器或其他计算机。计算机108 可以从用户输入、数据库、文件、网络服务和/或应用编程接口接收数据。计算机108可以询问其他系统和/或本地的或远程的存储装置,例如数据106、网络元件104和110以及存储装置112。计算机108可以提供用户接口给备份系统、数据恢复系统或其他数据管理系统。数据106可以是网络可访问的存储装置,并且可以是网络元件104和110的本地存储装置、远程存储装置或其组合。数据106可以使用磁带、磁盘、存储区域网(SAN)或其他计算机可访问的存储装置。在一个或多个实施例中,数据106可以表示数据库或另一个应用实例。在一个或多个实施例中,存储装置112中的数据可以是映像,例如快照或其他文件系统块级备份。网络元件110可以是备份服务器,其可以处理备份数据的请求。网络元件104可以含有修改跟踪模块114。修改跟踪模块114可以跟踪对数据106 的写请求。在一个或多个实施例中,修改跟踪模块114可以是变化跟踪驱动器。修改跟踪模块114可以跟踪存储器中的写请求或可以发送写请求至备份服务器或其他网络元件,例如网络元件110。修改跟踪模块114跟踪的修改可以被存储在存储器中和/或诸如磁盘的非易失性存储装置中。根据一个或多个实施例,修改跟踪模块114可以利用多个等级的变化跟踪。例如, 修改跟踪模块114可以含有将诸如数据106的存储空间逻辑细分为区域的逻辑或数据。存储单元可以存在多个区域,诸如卷。区域的数量可以取决于卷的大小或其他因素。在一些实施例中,区域的数量可以是可配置的。区域可以是存储空间的逻辑划分(诸如,段)。区域可以由多个数据存储部分例如块、扇区和/或簇构成。数据存储部分(诸如,块)的大小可以取决于操作系统或其他因素。在一些实施例中,该大小是可配置的。修改跟踪模块114 可以在区域等级和在更细的粒度等级(诸如,块)跟踪变化。修改跟踪模块114可以创建多个数据结构从而跟踪变化,该数据结构诸如为位图、运行表(例如,可以提供使用的第一存储部分的地址和所用的存储单元的长度或数量的数据结构)、阵列、指针、范围和用于有效识别所用的电子存储部分的其他数据结构。修改跟踪模块114可以使用第一数据结构来识别已经修改过的电子存储区域,这可以被称为 “脏区域映射(map)”。脏区域映射可以含有针对由修改跟踪模块114跟踪的存储单元上的每个区域(诸如卷)的一个位(bit)或其他指示符。脏区域映射可以保持在易失性存储装置和非易失性存储装置中。对于每个区域,修改跟踪模块114可以保持含有针对该区域的每个数据存储部分 (诸如块)的一个位或其他指示符的数据结构。这可以被称为“块映射(map)”。当修改跟踪模块114检测到写请求时,修改跟踪模块114可以识别与写请求相对应的区域,并且设置脏区域映射中与该区域相对应的合适的位或其他指示符。修改跟踪模块114也可以设置存储器中一个或多个块映射中的合适的位或指示符,合适的位或指示符可以识别每个脏区域的修改部分。如上所述,脏区域映射可以保持在易失性存储装置和非易失性存储装置中。例如, 在写之前,可以设置存储器中和磁盘上的脏区域映射中的合适的位。也可以设置存储器中的一个或多个块映射的(多个)合适的位。因此,如果发生系统崩溃、不正确的关闭或其他中断,那么指示一个或多个经修改的区域的脏区域映射可以被保存在非易失性存储装置中。然而,根据某些实施例,在处理跟踪的写请求期间,不向非易失性存储装置写入块映射。例如,写请求可以被写入磁盘,但是用于系统恢复的经修改的块的跟踪可以被写入存储器(例如,写入一个或多个块映射)。一旦已经完成写请求,经修改的块的跟踪可以被写入磁盘。写请求一般可以成组地出现,因此许多写请求可以顺序地出现在相同区域。对于对该区域的每个随后的写请求,修改跟踪模块114可以检验存储器中脏区域映射中合适的位被设置以及在不需要额外写入的情况下可以处理写请求,从而跟踪修改。一旦对区域的写请求已经停止或暂停,对于在脏区域映射中标志的或标出的一个或多个区域,修改跟踪模块114可以对非易失性存储装置上的块映射进行写入(例如,将块映射刷新到磁盘),表明已经修改过哪些块。一旦区域的块映射已经写入非易失性存储装置,就可以更新脏区域映射以不设置或清除该区域的指示符(即,将该区域标记为干净的)。修改跟踪模块114可以使用额外的标志或指示符。例如,可以为每个区域提供两个额外的指示符。如果之前区域还未脏(例如,自从上次备份以后区域的块未发生任何变化),那么可以设置第一指示符。这可以使得修改跟踪模块114将该区域的块映射从存储器直接写入磁盘,而无需首先检查磁盘上是否存在需要更新的块映射。如果区域中的每个块均已被修改过,那么可以设置第二指示符。如果区域中的每个块均已被修改过,那么修改跟踪模块114可以停止跟踪区域中块的变化(即,随后的操作例如备份操作可以获知需要捕获所有的块)。如果发生系统崩溃或中断,那么备份部件或过程(例如在网络元件110上运行的备份过程)可以利用脏区域映射执行调和操作,下面将参考图4更地详细描述。这可以使得修改变化跟踪继续进行。备份过程或部件可以执行除了调和操作以外或作为调和操作的可替换操作的其他操作。例如,备份过程或部件也可以利用脏区域映射和一个或多个块映射执行增量备份,下面将参考图5更详细地描述。备份过程或部件可以进一步利用脏区域映射和一个或多个块映射执行还原操作,下面将参考图5更详细地描述。现在参考图2,其示出根据本公开实施例的提供系统恢复的恢复变化跟踪模块 210。如图所示,恢复变化跟踪模块210可以含有一个或多个部件,所述一个或多个部件包括写跟踪模块212、调和模块214、增量备份模块216、还原模块218和错误处理模块220。写跟踪模块212可以检测对非易失性存储装置(例如,磁盘)的中断或写入请求。 写跟踪模块212可以确定与写请求相关联的区域,并设置位、标志或其他指示符来表示该区域是脏的(例如,已经对该区域写入,但是被跟踪的用于系统恢复的块修改变化还未保存到非易失性存储装置中的块映射中)。指示符、位或标志可以被设置在存储器中,并被写入磁盘。
写跟踪模块212可以跟踪诸如块的区域的部分。可以通过设置存储器中一个或多个块映射中的标志、指示符或位来跟踪这些修改。一旦对区域的写请求已经消失,那么写跟踪模块212可以将一个或多个块映射写入非易失性存储装置中(例如,将块映射刷新到磁盘)。可以基于各种算法确定何时将块映射写入非易失性存储装置。根据某些实施例,可以监控对区域的写入等级,并且在对区域的写入等级已经降到特定阈值以下之后的一段特定时间段将一个或多个块映射写入非易失性存储装置。例如,在对区域的写请求已经停止三十秒以后可以将块映射写入存储装置。一旦区域的一个或多个块映射已经被写入非易失性存储装置,写跟踪模块212可以将该区域标记为干净的。写跟踪模块212可以通过清除或设置与脏区域映射中合适区域相对应的指示符、标志或位,将区域标记为干净的。脏区域映射可以含有多个区域指示符。 根据某些实施例,写跟踪模块212可以管理多个等级的脏区域映射。例如,最高等级映射可以含有与次等级的脏区域映射相对应的指示符。这些脏区域映射中的每一个都可以包含多个块映射。区域的块映射数、区域的层数或等级数、块映射的大小以及脏区域映射的大小可以由许多因素决定,包括存储空间大小、可用存储器、用户偏好和计算的备份系统操作的处理时间。调和模块214能够在系统崩溃、不正确地关闭、断电或其他系统中断之后对修改跟踪进行调和。这种调和能够使得脏区域中的修改被识别并被写入非易失性存储装置中的一个或多个块映射,以便将脏区域设置为干净的(例如,可以重新设置脏区域映射中对应的指示符)。调和模块214可以创建映像(image),例如在系统崩溃或其他断电之后的存储装置的快照。然后调和模块214可以利用脏区域映射将该映像与最近的备份进行比较。调和模块214可以检查与最近备份的相应部分相对的一个或多个部分的映像,例如块。调和模块214可以只检查由脏区域映射标记为脏的区域内一个或多个部分的映像和/或备份。 可以更新与不同于映像的备份部分相对应的一个或多个块映射,从而表明已经修改过这些部分(例如,这些区域可能已经被指示为脏的,因为调和操作可能旨在调和标记为脏的区域)。一旦已经在脏区域的相应块映射中合适地指明脏区域的经修改部分,那么对于那个区域而言调和过程已经完成。当所有的脏区域都已被调和时,调和过程完成。取决于用户偏好、系统设置或其他因素,调和过程可以只在存储器中对脏区域内的块映射执行更新。根据对非易失性存储区域(例如,磁盘的扇区)的写活动等级,稍后可以执行对块映射的非易失性拷贝的写入。在一个或多个实施例中,当调和模块214创建映像时,可以创建第二组变化跟踪映射。利用先前的变化跟踪映射组(即,一个或多个脏区域映射和一个或多个块映射),调和过程可以继续。修改跟踪可以继续,并可以使用第二组变化跟踪映射。在调和过程结束之后,先前的脏区域映射可能不需要,并可以丢弃。先前的块映射可以与稍后时间(例如, 备份时)的新的块映射组合起来。增量备份模块216能够在系统崩溃、断电或其他中断之后进行增量备份。对于脏区域映射中指示为干净的一个或多个区域(例如,脏区域映射中未标志的区域),可以备份一个或多个区域的一个或多个块映射中标记为经过修改的部分(例如,块)。对于脏区域映射中标记为脏的一个或多个区域,可以备份一个或多个区域中所有使用过的存储部分。这比完全备份快得多,并且与对于每次写入标志非易失性存储装置中每个经修改的部分(例如,块)的情况相比较,使用更少的空间和需要更少的花销和I/O处理。还原模块218能够在系统崩溃、断电或其他中断之后进行数据还原。用户可能希望倒转数据或将系统返回至更早的状态(例如,系统崩溃是由于软件升级或软件安装导致的,并且还原可以回到更早的稳定版本)。还原模块218可以直接使用脏区域映射和一个或多个块映射来识别要还原的变化数据。在脏区域映射中指示为干净的一个或多个区域中, 还原模块218可以只还原由一个或多个块映射指示的自从上次备份之后修改的数据部分。 在脏区域映射中标记为脏的一个或多个区域中,还原模块218可以还原数据的所有部分或块。脏区域的数量一般可能是较小的,并且干净区域中的变化部分的数量可能明显小于整个区域。因此,还原时间和I/O处理明显小于进行完全还原的还原时间和I/O处理。错误处理模块220可以执行与修改跟踪、修改跟踪的调和、备份和还原相关的错误。错误处理模块220可以记录错误,例如在修改跟踪期间发生的错误和与事件相关的其他错误。参考图3,其描绘了根据本公开实施例的提供系统恢复的方法300。方法300可以在方框302处开始。在方框304处,方法300可以包含接收对存储装置的写入请求。可以由跟踪对存储装置(诸如,磁盘、磁带或其他存储介质)的写请求的设备驱动器来接收该请求。在方框306处,方法300可以包含识别与写请求的目标存储区相关联的区域。存储区的一个或多个区域(诸如卷)的大小和数量可以根据存储区的大小、操作系统或其他因素而变化。一旦已经识别与写请求相对应的区域,则可以识别与脏区域映射对应的相应指示符、标志或位。在一些实施例中,可能存在多个脏区域映射,并可以识别合适的脏区域映射(例如,最高等级的脏区域映射可以含有多个较低等级的脏区域映射的指示符,其可以提供对存储装置的进一步细分)。在方框308处,方法300可以包含确定是否需要设置脏区域指示符、位或标志。在自从区域的一个或多个块映射被刷新到磁盘之后第一次对该区域写入期间,该区域可能在脏区域映射上被指示为干净的,并且该区域可能需要设置指示符来表示该区域是脏的。如果在该区域出现过其他写入并且未记录在非易失性存储装置中的一个或多个块映射中,那么该区域可能已经在脏区域映射中被指示为脏的。当确定是否要设置区域为脏时可以考虑其他因素。例如,如果区域的每个部分均已经在非易失性存储装置中相应的块映射中被指示为经过修改,那么在一些实施例中不需要将区域标记为脏的。如果要设置相应的区域指示符,那么方法300可以在方框310处继续。如果不需要设置相应的区域指示符,那么方法 300可以在方框312处继续。在方框310处,方法300可以包含设置对应于要标记为脏的区域(即接收到写请求的区域)的合适的标志、位或指示符。可以在存储器中设置该标志、位或其他指示符,然后将脏区域映射的更新部分写入诸如磁盘的非易失性存储装置。在将脏区域映射更新写入非易失性存储装置之后,方法300可以在方框311处继续。在方框311处,可以完成写请求。在写请求中识别的数据可以被写入诸如磁盘的非易失性存储装置。在方框312处,方法300可以包含确定是否要向非易失性存储装置写入与写请求期间经修改的存储部分相对应的一个或多个块指示符。块指示符可以设置在存储器的块映射中。然而,也可以确定是否要将块映射从存储器写入诸如磁盘的非易失性存储装置。基于存储装置I/O处理等级可以做出确定,例如与磁盘相应的区域相关联的I/O处理等级。在一个或多个实施例中,可以考虑其他因素。例如,当区域的每个部分已被指示为在非易失性存储装置上经过修改时(例如,先前在非易失性存储装置中已经设置该区域的所有块映射位,并且该区域先前已经被标记为干净的),可以设置标志或指示符。如果因为已经设置区域的所有块指示符或因为其他因素而不需要设置该区域的一个或多个块指示符,那么方法 300可以在方框320处结束。如果由于存储装置I/O处理等级或其他因素而在目前不需要设置区域的一个或多个块指示符,那么方法300可以在方框314处继续。如果要设置区域的一个或多个块指示符,那么方法300可以在方框316处继续。在方框314处,方法300可以包含等待。等待时段可以由用户指定、由系统指定、 由算法确定或作为输入被接收。在等待时段终止之后,方法300可以返回至方框312。在方框316处,方法300可以包含设置与经修改的块相对应的块指示符。一个或多个块映射可以被写入非易失性存储装置。这可以包括从非易失性存储装置中读取先前的块映射,并将其更新。在一些实施例中,可以使用额外的指示符。例如,可以具有在区域先前还未脏的情况下为该区域设置的指示符。如果该指示符被设置,那么在更新块映射之前, 对该区域的块的更新不需要从非易失性存储装置中读取到块映射中,因为该区域的块映射先前并未设置指示符。在方框318处,方法300可以包含清除一个或多个区域指示符。一旦区域的所有块映射已经被写入存储装置,那么可以清除相应的脏区域映射中的区域指示符。在方框320处,方法300结束。参考图4,其描绘根据本公开实施例的提供系统调和的方法400。方法400可以在方框402处开始。在方框404处,方法400可以包含确定或接收关于是否要继续变化跟踪或执行另一行动(例如备份或还原)的输入。如果继续进行变化跟踪,那么方法400可以在方框414 处继续。否则,方法400可以在方框406处继续。在方框406处,方法400可以包含确定或接收关于要采取的进一步行动的输入。如果要进行备份,那么方法400可以在方框410处继续。如果要执行还原操作,那么方法400 可以在方框408处继续。在方框408处,方法400可以包含执行还原操作。下面参考图6将更详细地描述利用变化跟踪执行还原操作。在方框410处,方法400可以包含执行备份,例如增量备份。下面参考图5将更详细地描述利用变化跟踪执行增量备份。在方框414处,方法400可以包含创建存储装置的映像,例如快照。根据一个或多个实施例,一旦已经创建映像,就可以继续进行变化跟踪。在方框416处,方法400可以包含将区域中由脏区域映射指示为脏的映像部分与备份中的相应部分进行比较。该比较可以识别自从创建备份以后已经修改过的脏区域的一个或多个部分。在方框418处,方法400可以包含更新一个或多个块映射上的一个或多个标志、位或其他指示符。该更新可以对应于在方框416中识别为经修改的部分。
在方框420处,方法400可以包含继续进行变化跟踪。在方框422处,方法400结束。参考图5,其描绘根据本公开实施例的提供增量备份的方法500。方法500可以开始于方框502处。在方框504处,方法500可以包含确定区域是干净的还是脏的。方法500可以包含利用一个或多个脏区域映射来识别映射上相应的脏区域指示符。如果相应的指示符被设置,那么方法500可以在方框508处继续。如果相应的指示符未被设置,那么方法500可以在方框506处继续。在方框506处,方法500可以包含捕获指示为在被指示为干净的区域中改变的备份块。可以只捕获改变的块的子集,即由文件系统分配的块。在方框508处,方法500可以包含捕获在被指示为脏的区域中由文件系统分配的备份块。在方框510处,方法500可以包含确定是否存在更多要备份的区域。如果存在更多要备份的区域,那么方法500可以返回至方框504。如果不存在要备份的区域,那么方法 500可以在方框512继续。在方框512处,方法500可以包含复制备份数据。这种复制可以减少和/或去除冗余数据,并可以降低备份数据所需的存储空间和I/O处理。例如,如果在方框508处捕获的某些块自从先前的备份之后还未改变,那么该步骤可以识别出那些块是先前已经备份过的。这可以防止对这些块进行二次存储(即冗余存储)。在方框514处,方法500可以结束。参考图6,其描绘了根据本公开实施例的提供系统还原的方法600。方法600可以在方框602处开始。在方框604处,方法600可以包含确定区域是干净的还是脏的。方法600可以包含利用一个或多个脏区域映射来识别映射上相应的脏区域指示符。如果设置了相应的指示符,那么方法600可以在方框608处继续。如果并未设置相应的指示符,那么方法600可以在方框606处继续。在方框606处,方法600可以包含还原备份部分,例如指示为在被指示为干净的区域中改变的块。在方框608处,方法600可以包含还原在被指示为脏的区域中的所有备份块。在方框610处,方法600可以包含确定是否需要还原额外的区域。如果需要还原额外的区域,那么方法600可以返回至方框604。如果不需要还原额外的区域,那么方法600 可以在方框612处继续。在方框612处,方法600结束。此时,应注意,如上所述的根据本公开的提供系统恢复一般包括处理输入数据和在某种程度上产生输出数据。该输入数据处理和输出数据生成可以实现为硬件或软件。例如,特定电子部件可以被用于系统恢复模块或相似电路或相关电路,以实现与如上所述的根据本公开的提供系统恢复相关联的功能。可替换地,根据指令运行的一个或多个处理器可以实现与如上所述的根据本公开的提供系统恢复相关联的功能。如果是这种情况,那么这些指令可以存储在一个或多个处理器可读介质(例如,磁盘或其他存储介质)上,或者这些指令经由包含在一个或多个载波中的一个或多个信号发送至一个或多个处理器中,以上均在本公开的范畴内。 本公开的范围并不由此处描述的具体实施例限定。事实上,根据前述的说明书和附图,除了此处所描述的实施例以外的本公开的其他各种实施例及其改进对本领域技术人员来说显而易见的。因此,这些其他实施例和其改进落在本公开的范围内。进一步,尽管为了特定的目的在具体环境的具体实现方式的背景下,在本文已经描述了本公开,但是本领域技术人员将认识到其有用性并不限于此,以及可以在为了许多目的的许多环境中有利地实施本公开。因此,应从本公开的完整宽度和精神角度解释所附的权利要求。
权利要求
1.一种利用变化跟踪提供系统恢复的计算机实施方法,所述方法包含 接收对电子存储装置的写入请求;识别电子存储区域中与所述写入请求相关联的的区域; 设置识别所述电子存储区域为脏的区域指示符;设置识别所述电子存储区域的一个或多个脏部分的一个或多个部分指示符。
2.根据权利要求1所述的方法,其进一步包含确定是否要设置识别所述电子存储区域的所述区域指示符;和在确定要设置所述区域指示符的情况下,设置所述区域指示符。
3.根据权利要求2所述的方法,其中所述确定至少部分地基于确定当前设置所述区域指示符。
4.根据权利要求1所述的方法,其进一步包含确定是否要设置识别所述一个或多个脏部分的所述一个或多个部分指示符;和在确定要设置所述一个或多个部分指示符的情况下,设置所述一个或多个部分指示符。
5.根据权利要求4所述的方法,其中所述确定至少部分地基于以下至少之一确定当前要设置所述一个或多个部分指示符;确定当前要设置所述电子存储区域的每个部分指示符;确定捕获所述电子存储区域的分配部分;以及确定还原所述电子存储区域的分配部分。
6.根据权利要求1所述的方法,其中设置区域指示符包含在易失性电子存储装置中设置指示符和在非易失性电子存储装置中设置指示符。
7.根据权利要求1所述的方法,其中设置一个或多个部分指示符包含在易失性电子存储装置中设置指示符和在非易失性电子存储装置中设置指示符。
8.根据权利要求7所述的方法,其进一步包含基于以下至少之一识别用于在非易失性电子存储装置中设置所述一个或多个部分指示符的时间确定在特定时间段内未设置额外的部分指示符;确定已经设置所述电子存储区域的所有部分指示符;以及与识别时间处的所述区域相关联的较低等级的磁盘活动性。
9.根据权利要求7所述的方法,其进一步包含在非易失性电子存储装置中已经设置所述一个或多个部分指示符之后,清除区域指示符。
10.根据权利要求1所述的方法,其中所述一个或多个部分指示符包含以下至少之一 位图、运行表、范围和用于识别一个或多个脏数据部分的数据结构。
11.根据权利要求1所述的方法,其进一步包含利用多个等级的区域指示符,其中所述多个等级的区域指示符能够进一步细分所述电子存储装置的变化跟踪。
12.根据权利要求1所述的方法,其中所述脏部分包含以下至少之一块、扇区和簇。
13.根据权利要求1所述的方法,其中所述脏区域包含段。
14.根据权利要求1所述的方法,其进一步包含 创建所述电子存储装置的映像;将所述电子存储装置的所述映像与所述电子存储装置的备份进行比较,利用所述区域指示符识别所述电子存储装置的脏区域;和基于确定在所述备份之后修改了与所述部分指示符相对应的电子存储装置的一个或多个部分,更新所识别的脏区域的所述一个或多个部分指示符。
15.根据权利要求1所述的方法,其进一步包含创建增量备份,利用所述区域指示符识别电子存储装置的脏区域,其中所述增量备份捕获被指示为脏的区域的分配部分,并且所述增量备份只捕获干净区域中的经修改的数据部分。
16.根据权利要求1所述的方法,其进一步包含从所述备份中还原一个或多个数据部分,利用所述区域指示符识别所述电子存储装置的脏区域,其中对经识别的脏区域的分配部分执行还原,以及其中对干净区域的一个或多个经修改的部分执行还原。
17.至少一个处理器可读介质,其用于存储计算机程序指令,该计算机程序指令被配置为能够由至少一个处理器读取以指示所述至少一个处理器执行计算机处理,从而实施如权利要求1所述的方法。
18.一种用于利用变化跟踪提供系统恢复的制造品,所述制造品包含 至少一个处理器可读介质;和所述至少一个介质上承载的指令;其中所述指令被配置为能够由至少一个处理器从所述至少一个介质上读取,因而引起所述至少一个处理器运行以执行 接收对电子存储装置的写入请求; 识别所述电子存储装置中与所述写入请求相关联的区域; 设置识别电子存储区域为脏的区域指示符;和设置识别所述电子存储区域的一个或多个脏部分的一个或多个部分指示符。
19.一种利用变化跟踪提供系统恢复的系统,所述系统包含通信地耦合到网络的一个或多个处理器;其中所述一个或多个处理器被配置为接收对电子存储装置的写请求;识别所述电子存储装置中与所述写请求相关联的区域;设置识别电子存储区域为脏的区域指示符;和设置识别所述电子存储区域的一个或多个脏部分的一个或多个部分指示符。
20.根据权利要求19所述的系统,其中所述一个或多个处理器进一步被配置为利用所述区域指示符执行系统调和、系统备份和系统还原中的至少之一。
全文摘要
本发明公开了一种利用变化跟踪进行系统恢复的技术。在一个具体的示例性实施例中,该技术可以实现为利用变化跟踪进行系统恢复的计算机实现方法,该方法包含接收对电子存储装置的写入请求,识别电子存储区域中与写请求相关联的区域,设置区域指示符来识别电子存储区域为脏的,以及设置一个或多个部分指示符来识别电子存储区域的一个或多个脏部分。
文档编号G06F12/00GK102460401SQ201080029047
公开日2012年5月16日 申请日期2010年4月22日 优先权日2009年4月28日
发明者R·斯卓哈姆 申请人:赛门铁克公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1