响应处理信息将大容量存储器恢复到先前状态的制作方法

文档序号:6476127阅读:230来源:国知局
专利名称:响应处理信息将大容量存储器恢复到先前状态的制作方法
背景技术
发明领域本发明涉及备份和恢复计算机数据。特别涉及当恢复由中断所导致的计算机数据损失时,最小化计算机数据损失的系统和方法。
现有技术随着个人计算机的出现,全球商业在执行日常商业活动中都依赖于计算机数据。但是,在计算机处理的过程中,可能发生大量的意外,如自然灾害、恐怖活动、或者更平常的事件,如计算机硬件和/或/软件故障。这些故障通常导致计算机数据损坏、不可靠,甚至丢失。数据损坏或数据丢失,如客户名单、金融交易,商业文档,商务交易等等,导致了大量的时间与/或金钱投资的损失,对商业造成严重破坏。
计算机数据的丢失或损坏在全球电子商务领域破坏性特别大。互联网允许世界上的每个人进行电子化交易,从而带来电子化订单连续不断的储入。但是,这些订单的所有拷贝都是电子化的,因此,电子计算机数据的损坏或丢失可以导致由这些丢失订单所带来的商业损失。由于意识到可靠计算机数据的商业价值,商业人士寻求保护他们数据以及重建被损坏、不可靠或被丢失数据的方法。传统的数据保护和重建方法包括建立该计算机数据的一个备份拷贝。尽管在一张软盘上保存一个个人文件的备份拷贝是一个简单的步骤,但随着数据量的增加,创建一个备份拷贝变得更加困难。
可能建立一个计算机数据的大容量备份拷贝的最简单的办法是,从一个大容量存储系统复制数据到一个数据设备,如一个或多个磁带。这种方法通过牺牲对数据的即时存储来存储大量的计算机数据。磁带可以存储在本地或远端,当大容量存储系统出现问题时,数据将从磁带中复制到大容量存储系统。
虽然使用数据设备来保护数据丢失具有相对简单和低廉的优点,但它也有严重的局限性。一个这样的制约是在创建备份拷贝时以及在重建数据时,禁止用户读取该计算机数据的时间长度。用户读取的禁止,一般是用来保证在这一过程中没有改变数据。因为不希望出现用户不无法存取数据的情况,就很少创建备份拷贝,从而导致备份拷贝中的计算机数据陈旧。类似的是,将计算机数据从一个磁带上复制到一个大容量存储系统里会非常耗时,因为该计算机数据是基于文件对文件模式传输。当大容量数据存储设备位于远距离,且不能通过一个网络访问时,这种耗时更多。这种冗长的重建时间导致计算机不可访问的时间增长,并使商务成本增加时间和金钱的数额。
传统方法的另一局限是备份拷贝表示的数据是之前某个时刻的,这意味着备份拷贝在源数据随后发生变化后没有更新。建立数据备份为在源数据发生损坏或丢失时恢复大部分计算机数据提供保证。这使得数据损失仅局限于最近一次备份拷贝后对源数据所做的改变。但是,在某些商业领域,如果计算机数据不是最新的,那么该数据就是陈旧的、不可靠的,甚至是无效的。在费率和信息急剧变化的金融领域,这尤其麻烦。因此,当计算机数据损失或丢失时,依赖于频繁变化的信息的商业,将面临丢失其所有有价值的计算机数据的危险。
因此,本发明阐述了该技术领域里的一种改进,以提供一种用于备份计算机数据的系统和方法,其可以最小化由于计算机故障或数据损坏所造成的计算机数据丢失量。本发明还阐述了该技术领域里的另一种改进,以提供一种不需要终止用户访问该大容量存储系统就可以备份数据的系统。

发明内容
本发明涉及备份和恢复计算机数据的系统和方法。当计算机数据发生损坏或丢失时,本发明能以一种增量的方法方式来恢复数据。特别是当数据损坏或丢失时,该数据能向越来越旧的状态增量地倒推,直到获得一个有效的数据集。通过此方法,数据可以到恢复到一个比该数据的完全镜像或其存档拷贝更新的状态。因此,进行大量数据的完全镜像或存档操作的频率可以降低,且不存在丢失最近完全镜像或存档操作后所作数据修改的危险。
根据本发明,一个大容量存储设备在时刻T0存储多个数据块。在T0时刻,可对存储在大容量存储设备中的数据进行镜像备份,以便在必要时,可方便地恢复T0时刻的数据。通常获得数据镜像拷贝是一个耗费时间和资源的过程,最好发生频率相对较低。为了保存从创建镜像拷贝之后到导致数据丢失的潜在事件之前修改的数据,在T0时刻之后将被覆盖的数据块被保存在一个保留存储器中。特别是,如果在T0后,一个特定的数据块作为一个写操作的部分需被覆盖,在大容量存储器中替换源数据块之前,该源数据块的一个拷贝被存储在保留存储器中。另外,存储在保留存储器中的该数据块需要加上时间戳或其他的标记,以标明写操作的发生时间,或者标明写操作在相关所有写操作中按时间先后顺序排列所处的位置。
T0时刻后,随着写操作的成功执行,需被覆盖的原始数据块被依次存储在保留存储器中并加上了相应的时间戳。因此,在T0后被覆盖或修改的数据块被存储在保留存储器中,且在大容量存储器中被覆盖的数据块里的时间或次序是特定的。
当大容量存储单元设备中的某数据块损坏或丢失时,存储在保留存储器中的这些数据块就可用来增量恢复或重建一个正确的数据集,而不需要将数据完全恢复到T0时刻的数据。例如,如果无效或损坏的数据在T0时刻之后被写到该大容量存储设备中的某些数据块里,则如上所述,原始、有效的数据块将被存储在一个保留存储器中。利用表示在大容量存储设备中存储在一个保留存储器里的数据块被覆盖的先后顺序的时间戳,保留存储器里的这些数据块可以写入该大容量存储设备中的当前数据。在该保留存储器中的一个或多个数据块按一个相反的先后顺序写回到该大容量存储设备后,在该大容量存储设备里,可以最终获得一个有效的数据集。因此,利用存储在该保留存储器中的数据块可以重建数据,且不要求将数据完全恢复到T0时刻的数据。
需要注意的是,根据本发明,对存储在该大容量存储设备里的所有数据进行完全镜像或存档操作的频率可以比没有利用本发明时所需要的频率低。利用存储在保留存储器中的数据块可以将损坏数据恢复到一个比最近完全镜像数据拷贝更新的状态。另需注意的是,在保留存储器中存储一系列已覆盖数据块显然比执行该大容量存储器数据的完全镜像操作具有更低的资源密集度(resource intensive)。另外,响应写操作、存储在保留存储器中的数据可以是一个相对于一个完整文件有良好粒度(granularity)的数据块。例如,在大容量存储设备中响应写操作、存储在保留存储器里的数据可以是该大容量存储设备中一个扇区、或是一个部分或片断。按照本方法,在一个保留存储器中存储数据可以避免响应写操作而复制整个文件,且允许数据可以独立于该数据的任何文件结构存储。本发明的其他特征和优点将在后面详细阐明,其中部分内容可以从该说明中显而易见,或者可以通过本发明的实践而了解。可以通过在附带权利要求中指出的方法和组合来了解和获得本发明的特征和优点。本发明的这些和其他特征通过后面的说明及附带的权利要求将更加清楚,或者也可通过在下文中介绍的本发明的应用来了解。
附图简述为了获得上述方法和本发明的其他优点和特征,一个如上所述的本发明的更具体描述将通过参考一个在附图中解释的具体的实施例来提供。应理解,这些图仅仅描述本发明的典型实施例,并不意味着限制本发明的范围,本发明将利用如下附图来详细描述和解释本发明

图1是表示带有相连大容量存储设备和保留存储器、可以实现本发明的计算机系统框图。
图2是图1中计算机系统的框图,显示在T0时刻存储在大容量存储设备中的数据。
图3说明一系列写操作,其中被覆盖的数据块被存储在一个保留存储器。
图4说明一个操作,其中在大容量存储设备中的数据在一个数据损坏的情况下被增量恢复。
图5说明一个虚拟设备的操作,该操作显示在一个大容量存储设备中包括一个数据之前状态的拷贝。
图6说明一个表示实现本发明相宜的操作环境的计算机系统。
优选实施例详述本发明涉及计算机数据的备份与恢复。具体而言,本发明能够恢复已损坏数据,而不需要将该数据完全恢复到最近的完全镜像数据拷贝。在创建该数据的一个镜像拷贝后,将要被覆盖的数据块被存储在一个保留存储器中。这些数据块都关联一个时间戳或标志时间的信息,或者是这些数据块被覆盖或在该大容量存储设备中原始数据被覆盖的先后顺序的信息。一般而言,术语“时间戳”指任何用来表示存储在保留存储器中数据块的先后顺序或时间的信息当发生数据损坏时,保留存储器中的数据块可以用来将在该大容量存储设备中该数据当前的损坏拷贝增量修复为一个有效数据集。图1解释一个可以用来实现本发明的计算机系统。图1中的计算机系统包括一个计算机10,一个大容量存储器12,一个保留存储器14以及一个I/O设备16。计算机10可以是管理、生成、存储及其他数据处理的任一计算机或其他处理设备。例如,计算机10可以是一台传统的个人电脑,一台服务器,特定用途的计算机等等类似的设备。后文将讲解的图6中详细介绍了一个可以应用本发明的计算机实例。
大容量存储设备12和计算机10相连,用于存储从计算机10中获得的数据。一般而言,大容量存储器12是一个可写的、稳定的大容量存储设备。具体而言,大容量存储器12可以是连接在传统个人计算机上的硬盘,或任何其他用于存储从计算机10上所获得数据的存储设备。
保留存储器14是一个和计算机10相连的物理或逻辑设备,用以保存在大容量存储器12中将被覆盖的数据块。保留存储器14可以是一易失性存储设备,例如随机存储器(RAM),或其他任何用于存储大容量存储器12中将被覆盖数据块的设备。尽管在图1中保留存储器被表示成一个独立的设备,但该保留存储器可以是大容量存储器12的一部分。
如图1所示,计算机10还可包括一个允许用户操作由计算机10处理且存储在该大容量存储器12中的数据输入/输出(I/O)设备16。另外,典型的计算机10包括由该大容量存储设备12来满足的数据存储要求的应用或软件。但是一般而言,本发明可以充分扩展应用于任何带软、硬件的计算机10,只要其中包含一个用于存储数据的大容量存储器12和一个用于存储覆盖数据块的保留存储器14。
图2表示了图1中的计算机系统处于T0时刻,此时大容量设备12包括一个存储给定数据的数据块集。在图2示例中,为便于说明,大容量存储器12显示为包含五个数据块,分别定义为数据块A、B、C、D、E。假设在T0时刻已建立并存储了大容量存储器中的所有数据的镜像或其他形式的备份拷贝。可以通过任何方式产生在T0时刻获得的数据的镜像或备份拷贝,包括传统的方式。
根据大容量存储器12中数据的特性,获得时刻T0包括逻辑一致的数据的镜像或备份拷贝是有益的。当存储在大容量设备12中的数据表示处理时,其中为了获得一个有效或有用的数据集,每个处理都要求多个写操作或要求其他多个I/O操作,这尤为重要。当一个处理中的所有必需的操作或所需的一系列I/O操作未全部完成,数据就是逻辑上不一致的。因此,根据大容量存储器12中的数据的特性,T0时刻数据的镜像或备份拷贝必须是逻辑上一致的数据。
在T0时刻获得的该数据镜像或备份拷贝,使得T0时刻大容量存储器12上的数据块A、B、C、D、E可以通过存取该数据的镜像或备份拷贝来重建。但如上所述,完全镜像或备份操作会耗费较多的时间与带宽,因此这种操作需要以较低频率进行。如上所述,且在后面还会更详细的介绍,本发明利用保留存储器14来存储数据块,使得大容量存储设备12中的数据可以在不需要将数据完全恢复到T0时刻,通过一个相反的先后顺序增量恢复。尽管大容量存储设备12中数据的定期镜像或备份拷贝通常是有利的,但本发明可以仅依靠存储在保留存储器14中的数据而不需要定期的镜像或备份拷贝。
为了描述时刻T0之后数据是如何存储在保留存储器中的,图3表示在大容量存储设备中的一个数据块集的一个特定实例与应用其上的多个写操作。如图3所示,在时刻T0保存在大容量存储器中的数据块20表示为(A,B,C,D,E)。在时刻T1.0,图2中的计算机10发出一个写请求,借此用数据块30 A1来覆盖已存在的数据块A,并形成一个新的数据块集20a(A1,B,C,D,E)。一般而言,响应此写请求之后,在用新的数据块来覆盖该大容量存储设备中的数据块之前,现存的数据块被存储在保留存储器里,并带上一个时间戳。
在这个例子里,在T10时刻,数据块A被写入到该保留存储器中,并如40a所示,带有一个表示T1.0时刻的时间戳。因此,尽管在大容量存储器中数据块A被覆盖,但数据块A已被存储在该保留存储器中,以备将来某个时间用于重建被损坏的数据。
在T1.1时刻,数据块30b(D1)被存储到大容量存储设备中,从而形成新的数据块集20b(A1,B,C,D1,E)数据集。在此写操作之前,将要被覆盖的数据块D存储在该保留存储器中,并如40b所示,带有一个表示T1.1时刻的时间戳。在T1.2时刻,发生一个数据损坏事件,导致数据块30c(Dx)被写入存储在该大容量存储设备中的数据。如本例中所使用的,下标“x”和“y”表示损坏的数据。可能有多种原因导致数据损坏,如数据输入问题、软件问题、硬件问题,等等。T1.2时刻的数据损坏事件导致新的数据块集20c(A1,B,C,Dx,E)。在写操作之前,将被覆盖的数据块D1被存储在保留存储器中,并如40c所示,带有一个表示T1.2时刻的时间戳。
在T1.3时刻,数据块30d(B1)被写入存储在大容量存储器中的数据,并形成新的数据集20d(A1,B1,C,Dx,E)。在写操作之前,将被覆盖的数据块B被存储在该保留存储器,并如40d所示,带有一个表示T1.3时刻的时间戳。
最后,在T1.4时刻,发生另一次数据损坏事件,导致数据块30e(Dy)被写入存储在大容量存储器中的数据。T1.4时刻的数据损坏事件形成了新的数据块集20e(A1,B1,C,Dy,E)。在写操作之前,将被覆盖的数据块Dx存储在该保留存储器,并如40e所示,带上一个表示T1.4时刻的时间戳。
因此,在T1.4时刻,在大容量存储器中现存的数据块集20e是(A1,B1,C,Dy,E)。如上所述,数据块Dy表示损坏的数据,它可能使大容量存储器中所有数据块都失效。在T1.4时刻,保留存储器中存储了数据块集合(A,D,D1,B,Dx),及相应的时间戳(T1.0,T1.1,T1.2,T1.3,T1.4)。
因为在T0时刻之后发生了数据损坏事件,所以可以通过存取T0时刻创建的所有数据的任何镜像或备份拷贝完全恢复到在该大容量存储器中存在过的数据来获得一个数据的有效集。但是,完全恢复到T0时刻的数据将导致丢失在T0后写入该大容量存储设备的所有数据。因此,根据本发明,存储在保留存储器中的数据块被用来以一个相反的先后顺序增量恢复该大容量存储设备中的数据到一个如图4所示的有效、无损坏的数据状态。图4中的保留存储器在T2时刻包括在T1.4时刻时刻存储在保留存储器中的数据块集和相应的时间戳。依此类推,图4中的大容量存储器在时刻T2包括图3中T1.4时刻的数据块集20e(A1,B1,C,Dy,E)。
在图4所示的数据恢复操作,开始于当前的可能损坏数据块集20e和存储在保留存储器中的数据块集40e。时间戳T1.0-T1.4用来以相反的先后顺序重建在大容量存储设备中之前存在的数据。因此,在保留存储器(Dx)中最近的存储数据块被写入T2时刻存在的数据集以回滚该大容量存储设备中的数据集到T3时刻的状态,产生一个数据块集(A1,B1,C,Dx,E)。
需要注意的是,图4中说明的这种回滚该大容量存储设备中数据的操作可以利用存储在该大容量存储设备的数据集或该数据集的拷贝来执行。
回滚到T1.3时刻之后,通过计算机或手动,根据数据块Dx被损坏来确定T1.3时刻的数据集20d依表示损坏的数据。因为数据块依然有损坏,则利用该保留存储器中带时间戳T1.3的数据块B来进一步回滚该大容量存储设备中的数据到T1.2时刻的状态。因此,产生表示T1.2时刻时大容量存储器中存储的数据块集20c(A1,B,C,Dx,E)。因为数据块集20c也包含损坏的数据块Dx,所以可以确定该数据块表示损坏数据。相应的,继续按照相反的先后顺序写入在该大容量存储设备中的数据来将数据进一步回滚到T1.1时刻的状态。其中,带有时间戳T1.2的数据块D1被写入到大容量存储器中,产生大容量存储设备T1.1时刻的数据块集20b(A1,B,C,D1,E)
此时,可确定数据集数据集20b(A1,B,C,D1,E)是一个有效且未损坏的数据集。因此,该保留存储器中的数据块被用于按相反的先后顺序来增量恢复该大容量存储设备中的数据,直至获得一个有效的数据集。必须指出,此时数据块20b(A1,B,C,D1,E)包含特定数据(例如A1和D1),这些特定数据本不应包括在已将数据完全还原到T0时刻所镜像或备份的拷贝数据的被恢复数据中。而且恢复这种更新的数据块并不需要在T0之后再做完全数据镜像或备份。
如前所述,恢复数据的操作一般包括以相反的顺序应用该保留存储器中的数据块到该大容量存储设备中数据块的现存拷贝上,直到这些数据块表示有效、没有损失的数据。
由此可见,当写操作数量较多或者较频繁时,保留存储器中的数据块数目会快速上升。因此,在实践中,要在数据完全镜像或备份操作频率与保留存储器中存储数据块数目之间折衷。在一个实施例中,完全镜像或备份操作的频率由保留存储器被填满或到达某一存储量的频率决定。换言之,当保留存储器中的数据量到达保留存储器的容量上限时,就对大容量存储器进行完全镜像或备份操作。同时丢弃保留存储器中所有的数据,因为大容量存储器中最新的数据的完全镜像或备份已创建起来,所以不需要保留存储器中的数据。
虽然本发明已经描述一种在数据损坏事件发生时,按相反先后顺序来增量恢复损坏数据的方法,但本发明还有其他的用途。例如,可以根据其他原因而用保留存储器中的数据块将大容量存储器中的数据恢复到之前某个状态。实际上,很多场合中用户会希望获得大容量存储器中之前某时刻存储的数据。
在另一个实施例中,将保存在保留存储器中的数据和一些有选择的时间点上的数据的镜像或备份相结合,以用于将数据恢复到建立镜像或备份之前的某个状态。如上图4中所述,在保留存储器中存储的,比大容量存储器中被覆盖的数据更早的数据块可以用来将大容量存储器的状态增量式地恢复。所以,如果在保留存储器中存储了一系列在时间上比大容量存储器数据的完全数据镜像或备份副本还早的数据块,就可以用保留存储器中的这一系列数据块将数据的镜像或备份考本的状态增量式地恢复到所需时刻的状态。
通过保留存储器中的已覆盖数据块,本发明可用来创建一个虚拟的大容量存储器(“虚拟设备”),从而允许访问大容量存储器中以前保存的数据。图5中的虚拟设备50,从访问虚拟设备的用户或应用,即数据访问程序60的角度来看,虚拟设备就如保存了过去保存过的数据一般。例如,可以通过操作系统及其文件系统来访问虚拟设备,这时虚拟设备就如安装在图1的计算机10上的另一个硬盘。
图5中说明了一种利用虚拟设备50来存取在过去某个时间点存在的数据的方法例子,该方法利了用图3和图4中所描述的数据集。在图5的例子中,图4中已说明可通过使用保留存储器14中的数据块40e,把大容量存储器12中的数据块20e回滚到T1.1时刻所处的状态,以获得有效未损坏的数据块集。
当利用虚拟设备50访问数据时,数据访问程序60向虚拟设备50发送一个读取请求70,而不是向大容量存储器12或保留存储器14的相应地址发送请求。在例子中,用读请求访问在造成损坏数据块Dx和Dy的数据损坏事件发生之前的大容量存储器12中最新的数据。如前所述,在受损数据块Dx写入之前存在一个正确的数据块集合,此集合是可以获得的。换言之,就在发生数据损坏的时刻T1.2之前的时刻T1.1,就可以获得其正确的数据集合。
在接收到读数据的请求后,因所请求读取的数据存在于先前的、未损坏的状态中,虚拟设备将确定满足读请求的数据是从大容量存储器12中还是从保留存储器14中获得。如果读请求被指向保留存储器中数据损坏事件发生时刻或之后(也即T1.2时刻或之后)的某个无损坏版本的数据块,则用访问到的所述的数据块中最旧的一个来响应读请求。例如,如果数据访问程序60要求访问“D”位置上最新的正确的数据,则用保留存储器中T1.2时刻或之后最旧的未损坏数据块来响应读取请求。在接到读“D”数据块的请求之后,虚拟设备就访问图5中用阴影标示的数据块D1。与此类似,在处理读取“B”数据块的请求时,则访问保留存储器(14)中如图五中阴影标示的数据块B。
但是,如果读取请求要读取的数据块在保留存储器中没有保存相应的、数据损坏时刻或之后(即T1.2时刻或之后)的未损坏的数据块的备份,则需要根据读取请求访问大容量存储器12中的相应数据块。例如,读“A”、“C”、“E”位置数据块的读请求就会访问到大容量存储器12中如图五中阴影标示的A1、C和E数据块。按上述方法,数据访问程序60就可以通过虚拟设备来访问之前某时刻存储过的全部数据块集,例如上述例子,就是(A1,B,C,D1,E)数据块集。其中由虚拟设备确定读取哪个数据块,以及是从大容量存储器12还是从保留存储器14读取数据块。因此,数据访问程序60就可以在不需要知道大容量存储器12、保留存储器14及它们上面存储的数据细节的条件下,仅通过简单的向虚拟设备50发送读请求就可获得数据,就如虚拟设备中保存了以往的数据集一般。
在一个实施例中,也可以通过图5所示的方式来重建一个以往的数据集。具体而言,即可以按如上所述方法,通过虚拟设备读取到以往某时刻的未损坏的数据块集。这样数据访问程序60就获得了一个以往某时刻的无损坏的数据,以做他用。
本发明的实施例可以包括一个包含多个部件的特殊用途或一般用途的计算机,这将在下文中详述。本发明领域内的实施例可能包含用来存储或携带计算机可执行指令或数据结构的计算机可读媒介。这种计算机可读媒介可以是任何一般用途计算机或特殊用途计算机可访问的媒介。试举几例,但并不局限于此,上述的计算机可读媒介可以是RAM(随机访问存储器)、ROM(只读存储器)、EEPROM(电可擦只读存储器)、CD-ROM(只读光盘)或者其他的光盘存储器、磁盘存储器及其他磁存储器,或者其他任何可以用于存放和携带计算机可执行指令形式的特定程序代码装置或可被一般用途计算机或者特殊用途计算机访问的数据结构的媒介。
当通过网络或其他通讯连接(如如有线、无线或有线无线的结合)给计算机发送或提供信息时,计算机把该连接也视为一个计算机可读媒介。也即任何上述的通讯连接都被称为计算机可读媒介。如果系统中包含上述连接方式的结合体,则结合体也应被视为计算机可读媒介。而计算机可执行指令则由比如指令和数据组成,它可以使一般用途计算机、特殊用途计算机或特殊用途处理器完成一个或多个函数。
图6及后文将对可以运用本发明的适合的计算环境做一个简单的、一般性的介绍。尽管不是必须的,但本发明可以表示成一般的计算机可执行命令形式,如程序模块形式,并由网络环境中的计算机调用。一般而言,程序模块包括完成特殊任务或实现特定抽象数据类型的例程、程序、对象、组件和数据结构等等。下文将介绍计算机可执行指令及其相关的数据结构,以及本文所披露发明的执行步骤例程的程序模块示例。并用一个可执行命令的特定序列来表示实现本发明上述功能步骤的特定操作。
本领域一般技术人员可理解本发明在包含了各种计算机系统配置,如个人计算机、手提设备、移动电话、个人数字助理(“PDAs”)、多处理器系统、基于微处理器的或用户可编程的电子设备、网络PCs、小型计算机、大型计算机等等类似图1所例示系统的网络计算机环境下实施。本发明也可应用在分布式计算环境中,即本地的处理设备和远端的处理设备通过通讯网络(有线的,或无线的,或有线无线相结合的)相连并共同完成各种任务的环境。
如图6所示,一个实现本发明的系统包括了一个以计算机120表示的一般用途的计算设备,该设备包括一个处理单元121,一个系统存储器122,一个将各系统部件,包括系统存储器122和处理单元121相连的系统总线123。图6中所示的计算机120及其相关部件是图1中的计算机10的详细说明。系统总线123可以是任意一种总线体系结构,其中包括存储器总线或存储控制器、外围总线和局部总线。系统存储器可以包括只读存储器(“ROM”)124和随机访问存储器(“RAM”)125。ROM124中可以有基本输入/输出系统(“BIOS”)126,其中包含了用于如在启动时计算机120内各部件间传送信息的例程。
计算机120还可以包括一个硬盘驱动器127用于从硬盘139上读写数据,一个硬盘驱动器128用于从可移动硬盘129读写数据,一个光盘驱动器130用于从可移动光盘131,比如CD-ROM或其他光媒介上读写数据。硬盘驱动器127、磁盘驱动器128和光盘驱动器130分别由硬盘驱动器接口132、磁盘驱动器接口133和光盘驱动器接口134连接到系统总线123上。这些驱动器及其相连的计算机可读媒介为计算机120用于稳定地存储计算机的可执行指令、数据结构、程序模块及其他数据。尽管本文所举的示例系统中采用的是硬盘139,可移动软盘129和可移动光盘131,但也可以采用其他类型的用于存储数据的计算机可读媒介,包括磁带机、闪存卡、通用数字盘、贝努里(Bernoulli)编码磁带盒、RAM、ROM等等。
程序代码装置包含了存放在硬盘139、光盘131、ROM124或RAM125上的一个或多个程序模块,其由一个操作系统135、一个或多个应用程序136、其他程序模块137及程序数据138组成。用户可以通过键盘140、定点设备142或其他输入设备(未图示)比如话筒、游戏杆、游戏柄、碟形卫星天线、扫描仪等等之类的设备来将命令和信息输入计算机120。上述这些输入设备通常都通过连在系统总线123上的一个串行接口146连接到处理单元121。当然,它们也可通过其他接口连接到计算机,比如说并行接口、游戏端口或通用串行总线(“USB”)。监视器147或其他显示设备通过一个接口,比如说视频适配器148,连接到系统总线123上。除了显示器,个人计算机通常还包括其他输出设备(未图示),例如扬声器和打印机。
计算机120可以利用连接到一个或多个远程计算机的逻辑连接,如图6中的远端计算机149a和149b,工作在一个网络环境中。远端计算机149a和149b可以分别是其他的个人计算机,或服务器、路由器、网络PC、同级(peer)设备及其他常见的网络节点设备。远端计算机149a和149b可以包含计算机120所包含的部分或所有部件,尽管在图6中它们分别只包含了内存存储器150a和150b及其相关的应用程序136a和136b。图6中举例显示的逻辑连接方式有局域网(LAN)151和广域网(WAN)152,但实际中并不限于此两种。上述的网络环境在办公室网络、企业计算机网络、企业内部互联网及国际互联网中很常见。
在局域网环境中,计算机120通过一个网络接口适配器153或类似的适配器连接到局域网151。在广域网环境中,计算机可能要包括一个调制解调器154,一个无线链路或其他的设备以连接上广域网152,如国际互联网。内置式或外置式的调制解调器154通过一个串行接口146连接到系统总线123。在网络环境中,关于计算机120的程序模块,或其中部分模块可以存放在远端的内存存储器上。显示的本网络连接只是示范性的,其他获得广域网连接的方法也可使用。
本发明亦可用其他形式来说明,且并不违背它的本质特性。上述的实施例从各方面来考虑仅仅是说明性的,并不严谨。所以,本发明的范围将通过后面附带的权利要求书来表述,而非以上说明。所有在等同于权利要求书的方法和范围中出现的修改,都将包含在它们的范围里。
权利要求
1.在包含有存储多个数据块的大容量存储设备的计算机系统中,一种在允许访问大容量存储设备先前状态的同时更新数据块的方法,包括以下操作接收用新数据块覆盖大容量存储器中现有数据块的写请求;在执行所述写操作之前,将现有数据块的拷贝保存到与所述计算机系统相关的一个保留存储器中并将保留存储器中的该数据块拷贝与一个时间戳关联;及执行写操作,使得新的数据块覆盖大容量存储器中的现有数据块。
2.如权利要求1中所述的方法,其特征在于所述保留存储器包括一个易失性的存储设备。
3.如权利要求1中所述的方法,其特征在于所述保留存储器包括大容量存储器的一部分。
4.如权利要求1中所述的方法,还包括在执行接收写请求前创建该大容量存储设备中多个数据块的一个备份拷贝的操作。
5.如权利要求6中所述的方法,其特征在于当所述多个数据块是逻辑上一致的数据时才创建这些数据的备份拷贝。
6.如权利要求1中所述的方法,还包括利用存储在所述保留存储器中的现有数据块备份,将大容量存储器中存储的所述多个数据块恢复到先前所处的状态的操作。
7.如权利要求1中所述的方法,还包括响应一个或多个要覆盖现有数据块的写请求而将一个现有数据块序列存储到保留存储器中,并将该序列的每一个现有数据块与一个时间戳关联的操作。
8.如权利要求7中所述的方法,还包括利用所述保留存储器中存储的所述数据块序列将大容量存储器中的多个数据块恢复到先前状态的操作。
9.如权利要求8中所述的方法,还包括在大容量存储器中遭受数据损坏事件,其中执行恢复所述多个数据块的操作以获得无损坏数据。
10.如权利要求8中所述的方法,其特征在于恢复数据操作包括按照相反的先后顺序用保留存储器中存储的现有数据块序列来施加给大容量存储器中存储的所述多个数据块的最新版本。
11.如权利要求9中所述的方法,其特征在于,恢复所述大容量存储器中多个数据块以获得无损坏数据的操作,其中恢复数据的操作中还包括确定是否已获得无损坏数据的操作。
12.如权利要求1中所述的方法,还包括在计算机系统中建立虚拟设备的操作,该虚拟设备就如保存了该大容量存储器之前某时刻状态的多个数据块一般。
13.如权利要求12中所述的方法,还包括如下操作虚拟设备接收读取某特定数据块的请求;响应该读请求;若保留存储器中存在之前某时刻及其后时间存入保留存储器中的,所需读取数据块的无损坏拷贝,则用保留存储器中这些无损坏数据块版本中最旧的数据块来处理读取请求;若保留存储器中不包含所述的之前某时刻及其后时间的所需读取数据块的无损坏数据块拷贝,则用大容量存储器中保存的所被请求的数据块的一个数据块版本来处理读取请求。
14.一个提供访问之前某时刻的数据块的计算机系统,包括一个保存多个响应写请求而将被覆盖的数据块的大容量存储器;一个在大容量存储器中某数据块响应写请求而将被覆盖之前,接收并存储该数据块的拷贝,并在每一个所述拷贝上加上相应时间戳的保留存储器;一个可以用来访问大容量存储器中的当前版本数据块及保留存储器中数据块拷贝的虚拟设备,其特征在于该虚拟设备在响应访问之前某时刻的某特定数据块数据的读取请求后,确定是应从大容量存储器中读取特定数据块的当前版本还是从保留存储器中读取特定数据块的一个拷贝。
15.如权利要求14中所述的计算机系统,其特征在于所述保留存储器包括大容量存储器的一部分。
16.如权利要求14中所述的计算机系统,其特征在于所述虚拟设备从数据访问程序的角度来看,就如保存了之前某时刻大容量存储器中的数据一般。
17.如权利要求14中所述的计算机系统,其特征在于所述虚拟设备在响应读取请求,并执行如下操作若保留存储器中保存了在之前某时刻及其后时间存入到保留存储器中的特定数据块的无损坏版本,则用保留存储器中特定数据块的这些数据块版本中最旧的一个数据块来处理读取请求;若保留存储器中没保存所述的之前某时刻及其后时间存入到保留存储器中的特定数据块的无损坏版本,则用大容量存储器中特定数据块的一个数据块版本处理读取请求。
18.如权利要求15中所述的计算机系统,还包括在接收写请求之前建立数据块备份拷贝的方法。
全文摘要
将一个大容量存储设备12,其中包括一个存储其上相应的数据块20,恢复到一个先前时刻所处的状态,来最小化由于数据块20损坏或丢失所造成的数据损失。在完成一个镜像或备份拷贝后,响应一个写请求而将被修改的数据块40,在修改之前,存储在一个保留存储器14中。存储在该保留存储器14中的该数据块40带有时间戳,以标明该数据块40被修改的时间顺序。如果数据损坏,将保留存储器14中的数据块40按相反的时间顺序应用到该已损坏的数据20中,直到获得一个没有损坏的数据集。利用这种方式,可以重建比完全镜像或备份拷贝更新的数据。
文档编号G06F3/06GK1483164SQ01821116
公开日2004年3月17日 申请日期2001年12月21日 优先权日2000年12月21日
发明者理查德·S·奥赫拉恩, 理查德 S 奥赫拉恩, R 奥赫拉恩, 迈克尔·R·奥赫拉恩 申请人:雷卡托系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1