CN101361047B - 用于存储系统中的数据保护的方法和系统 - Google Patents
用于存储系统中的数据保护的方法和系统 Download PDFInfo
- Publication number
- CN101361047B CN101361047B CN2006800434339A CN200680043433A CN101361047B CN 101361047 B CN101361047 B CN 101361047B CN 2006800434339 A CN2006800434339 A CN 2006800434339A CN 200680043433 A CN200680043433 A CN 200680043433A CN 101361047 B CN101361047 B CN 101361047B
- Authority
- CN
- China
- Prior art keywords
- data
- memory location
- write
- storage
- order
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Retry When Errors Occur (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Storage Device Security (AREA)
- Emergency Protection Circuit Devices (AREA)
Abstract
一种用于保护存储系统中数据的方法,包括收到用于将数据写到第一存储位置的命令。做出之前写入的数据被存储在第一存储位置的确定。为响应之前写入的数据存储在第一存储位置这一确定,将之前写入的数据复制到第二存储位置。为响应将之前写入的数据复制到第二存储位置,将数据写到第一存储位置。
Description
技术领域
本发明涉及存储系统中的数据的保护。
背景技术
某些存储环境可以将备份数据存储在一个或多个次级存储系统中。如果主存储系统中的数据丢失,存储在一个或多个次级存储系统中的备份数据可以用来恢复丢失的数据。在某些存储环境中,主存储系统可以存在于主存储点(storage site),而次级存储系统可以存在于次级存储点。主存储系统和次级储系统也可以称为存储系统或存储子系统。
例如,一个像IBM*企业级存储服务器*(ESS)这样的存储子系统,可以提供多级独立磁盘冗余阵列(RAID)以保证即使硬盘损坏,也可维持数据的可用性,用户可以继续使用存储子系统。此外,与带有单个集群的ESS相比,ESS内部的多个集群可以提高数据可用性。另外,例如FlashCopy(快速复制)、Metro Mirror(城域镜像)和Global Mirror(全球镜像)等功能(全部由IBM提供)可以提供提高的数据可用性。例如,Flashcopy可以提供数据的时间点备份,使得即使在整个RAID等级(rank)丢失时,也可以用由FlashCopy生成的数据备份来从丢失的RAID等级复原。以上技术可以说明存储环境的存储复原力方面。
驻留在存储系统中的数据可以依赖可用来复原丢失数据的时间点备份。时间点备份可以有一个具体时间或与时间点备份相关的其他独特的顺序实体(entity)。例如,在某些存储系统中,存储在主存储系统上的数据的时间点备份可以每隔一段时间做成磁带存储。在某些其他存储系统中,可以通过FlashCopy操作实时进行时间点备份。
存储系统中的数据损坏可能是由病毒、数据输入有缺陷、执行不正确的事务处理等原因引起的。当数据损坏时,某些存储系统可以首先恢复到数据损坏之前数据的最后时间点备份。随后,可以尝试重建自最后的时间点备份以来、除数据损坏引起的更新之外的所有更新。
发明内容
本发明提供了一种方法、系统和制品,其中收到用于将数据写到第一存储位置的命令。做出之前写入的数据被存储在第一存储位置的确定。为响应之前写入的数据存储在第一存储位置这一确定,将之前写入的数据复制到第二存储位置。为响应将之前写入的数据复制到第二存储位置,将数据写到第一存储位置。
在某些另外的实施例中,做出关于是否要用之前写入的数据覆盖写到第一存储位置的数据的确定。为响应要用之前写入的数据覆盖写到第一存储位置的数据这一确定,将存储在第二存储位置的之前写入的数据复制到第一存储位置以便覆盖写到第一存储位置的数据。
在进一步的实施例中,存储控制单元收到来自主机的命令,其中,确定、复制和写入操作由存储控制单元执行,并且该命令包含一个标识符,该标识符表示要在将数据写到第一存储位置之前复制任何之前写到第一存储位置的数据以供可能发生的恢复操作使用。
在另外的实施例中,第一和第二存储位置耦合到存储控制单元。为响应从主机收到的命令中没有指示第二存储位置,存储控制单元确定之前写入的数据将被复制到的第二存储位置。
在进一步的实施例中,该命令是由存储控制单元从主机收到的单命令,其中该单命令导致存储控制单元执行确定、复制和写入操作。
附图说明
现在将仅以示例的方式、并参照附图来描述本发明的实施例,其中:
图1依照某些实施例图解计算环境的方框图;
图2依照某些实施例图解由主机应用程序向数据保护应用程序发出的命令的方框图;
图3依照某些实施例图解第一流程图,该第一流程图中示出处理由数据保护应用程序收到的命令的操作;
图4依照某些实施例图解第二流程图,该第二流程图示出如何用在之前的时间点存在的数据恢复存储位置;
图5依照某些实施例图解第三流程图,该第三流程图示出如何在存储系统中保护数据;和
图6图解计算机系统的体系结构,其中,在某些实施例中,图1的计算环境的主机和存储控制单元可以依照计算机系统的体系结构执行。
具体实施方式
在以下描述中,参考了附图,其构成本说明书的一部分并图解几个实施例。很清楚,可以使用其他实施例并且可以进行结构和操作修改。例如,虽然以下说明是描述关于数据备份的实施例,但是很清楚,可以利用替代实施例进行数据归档、数据迁移等等。
通过撤消日志实现的数据保护
在某些远程数据复制解决方案中,可以保持一个“撤消日志(undo log)”使得数据复制解决方案能够撤消对次级存储点所做的一些更新。主存储点发生数据损坏时,可以用“撤消日志”来从数据损坏中复原。通过使用撤消日志,某些实施例允许次级存储点回复到发生损坏之前的时间点,从而提供一致的未损坏数据——虽然提供的数据可能是发生损坏之前存在的数据。
撤消日志可以通过使用“写前读(read before write)”技术创建。在写前读技术中,对于到达次级存储点的每次数据更新,该位置中数据的当前版本将在首次读出中被覆盖(overwritten)并写入撤消日志。如果要用数据复制解决方案来将存储在次级存储点上的数据回复到 之前的版本,数据复制解决方案用撤消日志取回存储在之前版本中的数据,然后将存储在次级存储点上的数据回复到之前的版本。
在某些系统中,创建撤消日志的应用程序可能必须对到达次级存储点的每个更新数据块执行三次不同的输入/输出(I/O)操作。三次不同的I/O操作可能必须按顺序和同步地执行以保证将有效数据同时存储在次级存储点的存储器和撤消日志中。三次不同I/O操作的顺序可以如下:(a)从新到数据将被写到的次级存储目标读取旧数据;(b)将旧数据写到撤消日志;(c)将新到数据写到次级存储目标。某些实施例允许创建将三次不同的I/O操作并入一个单命令的存储控制器命令。该单命令保证写前读是执行时运行至完成的原子操作,从而清除使写前读中断的任何其他更新。在某些另外的实施例中,可以用实施例提供的单命令扩展小型计算机系统接口(SCSI)写命令。
存储系统中的数据保护
图1依照某些实施例图解计算环境100的方框图。至少有一个存储控制单元102通过网络106耦合到一个或多个主机104.存储控制单元102可以包含存储控制器、存储系统、存储子系统等等,其中由存储控制单元102控制的存储器可以存储在一个或多个存储设备中。在某些实施例中,包含存储控制单元102的存储子系统可以包括一个或多个企业型存储服务器。在某些其他实施例中,存储控制单元102可以是存储备份数据的次级存储子系统。在某些另外的实施例中,存储控制单元102可以耦合到其他存储控制单元。
主机104可以包括任何适当的计算平台,包括本领域中目前已知的那些,例如个人计算机、工作站、大型机、中型机、网络家电、膝上型计算机、电话装置、刀片式计算机(blade computer)、手持式计算机,等等。主机能够通过网络106将命令发送到存储控制单元102。
存储控制单元102可以直接或通过本领域中已知的任何网络106耦合到主机,例如存储区域网络(SAN)、局域网(LAN)、广域网(WAN)、因特网、内部网,等等。
存储控制单元102可以耦合到数据保护应用程序108、一个或多个第一存储位置110、和撤消日志条目112。数据保护应用程序108允许由从主机104收到的命令执行原子写前读,其中收到的命令是用于将数据存储到耦合到存储控制单元102的第一存储位置110。第一存储位置110存储当前数据,即在当前时间点存储的数据。如果存储在第一存储位置110的当前数据被损坏或需要恢复到之前的时间点,那么数据保护应用程序108用撤消日志条目112将第一存储位置110恢复到之前的时间点。
撤消日志条目112可以通过任何适当的数据结构实现,例如数据库条目、指针、列表、阵列,等等。撤消日志条目112耦合到存储了之前写入第一存储位置110的数据的一个或多个第二存储位置114。撤消日志条目112存储第二存储位置114中所存储数据与第一存储位置110中所存储数据的通信116。例如,通信116可以包括已经将在T1时刻存储在第一存储位置110的地址A1中的数据保存在第二存储位置114的地址A2中的信息。撤消日志条目112还包括与数据保护应用程序执行的原子写前读操作的更新序列118相关的信息。例如,更新序列118可以指示已经在T1、T2、T3、T4和T5时刻执行了五次原子写前读操作。更新序列118还可以将指针存储到相关的第二存储位置114,该位置存储了之前写入的数据供可能发生的恢复操作使用。替代实施例可以使用不同的元素来执行撤消日志条目112。
在某些实施例中,主机104可以包括向存储控制单元102发送命令的主机应用程序120,其中该命令可以请求存储控制单元102执行原子写前读操作。存储控制单元102上的数据保护应用程序108可以翻译从主机应用程序120收到的命令,以便通过在覆盖存储在第一存储位置110的数据之前将之前写入的数据存储到撤消日志条目112、然后向主机应用程序指示已经成功执行命令来执行原子写前读操作。
图2依照某些实施例图解由主机应用程序120向数据保护应用程序108发出的命令200的方框图。
命令200可以包括数据202、第一存储位置字段204、指示符206、 及可选的第二存储位置字段208。主机应用程序102请求数据保护应用程序108将数据202写入第一存储位置110,其中第一存储位置110由命令200中的第一存储位置字段204指示出。
指示符字段206可以包括指示是否要开启写前读数据保护的标识。在某些实施例中,如果指示符字段206设置为指示写前读被开启,那么数据保护应用程序108将在执行命令200时进行写前读。
在某些实施例中,命令200还可以包括第二数据存储位置字段208,其指示第二存储位置114,其中数据保护应用程序108将备份覆写在第一存储位置110上的数据以供将来可能发生的索取使用。
因此,图2图解某些实施例,其中由主机应用程序120生成的单命令200导致数据保护应用程序108在存储控制单元102中执行原子写前读操作。写前读操作是原子性的,因为除非写前读操作成功,否则数据保护应用程序108不向主机应用程序120传递单命令200已经成功完成的消息。单命令200是一经执行就运行至完成的原子操作,从而清除使单命令200的执行中断的任何其他更新方案。
图3依照某些实施例图解第一流程图,该流程图中示出处理由数据保护应用程序108收到的命令200的操作。图3中图解的操作可以在耦合到存储控制单元102的数据保护应用程序108中执行。
控制在方框300处开始,在此处,存储控制单元102上的数据保护应用程序108从主机应用程序120处收到用于将数据写到第一存储位置110的单命令200,在此处,包含在单命令200中的第一存储位置字段204指示出第一存储位置110。
数据保护应用程序108确定(在方框302处)命令200是否包含指示写前读操作是否开启的指示符字段206。如果数据保护应用程序108根据指示符字段206确定写前读操作被开启,那么数据保护应用程序108确定(在方框304处)之前写入的数据是否存储在第一存储位置110处。如果是,数据保护应用程序108(在方框306处)将之前写入的数据复制到第二存储位置114,其中第二存储位置114可以选择性地在命令200的第二存储位置字段208中指示出。在某些实施 例中,其中第二存储位置字段208中没有指示第二存储位置114,数据保护应用程序108可以生成第二存储位置114的地址。数据保护应用程序108还更新撤消日志条目112,使得必要时,撤消日志条目112可以在收到命令200时用来回复到存储在第一存储位置110中的数据。随后,数据保护应用程序108(在方框308处)将数据202写到第一存储位置110并向主机应用程序120发送指示命令200成功完成的回复。
如果在方框302处,数据保护应用程序108根据指示符字段204确定写前读操作没有开启,那么数据保护应用程序108(在方框308处)将数据202写到第一存储位置110。在这种情况下,数据保护应用程序108不执行写前读操作,撤消日志条目112可以不更新。
如果数据保护应用程序108(在方框304处)确定没有之前写入的数据存储在第一存储位置字段204指示的第二存储位置110处,那么数据202(在方框308处)被写到第一存储位置110。由于没有数据覆写在第一存储位置110中,因此没有数据要保存在撤消日志条目112中。
因此,图3图解某些实施例,其中数据保护应用程序108收到可以请求执行写前读操作的单命令200。数据保护应用程序108可以在将数据写到存储控制单元102之前,把要覆写在存储控制单元102中的数据存储在撤消日志条目112中。
图4依照某些实施例图解第二流程图,该流程图示出如何用在刚好前一时间点存在的数据恢复存储位置,例如存储位置110。图4中图解的操作可以在耦合到存储控制单元102的数据保护应用程序108中执行。
控制在方框400处开始,在此处,数据保护应用程序108确定必须将第一存储位置110恢复到在之前的时间点存在的数据。例如,在某些实施例中,写到第一存储位置110的数据可能已经由于病毒或不正确的数据库事务处理被损坏。但是,存储管理员可能由于任何原因而非仅仅因为数据损坏而希望恢复存储控制单元102以便存储在之前 的时间点存在的数据。
数据保护应用程序108(在方框402处)根据撤消日志条目112确定第二存储位置114,在刚好前一时间点存在的数据可以从这些存储位置114恢复到相应的第一存储位置110。该确定可以通过使用第二存储位置112与第一存储位置110和更新序列118的通信执行。例如,如果当前时间点用T3表示,刚好前一时间点用T2表示,那么数据保护应用程序108可以确定已经在T2时刻存储数据的所选第二存储位置114,其中数据存储在所选的第二存储位置114以便保存在T2时刻覆写到第一存储位置110的数据。
控制进行到方框404,在此处,数据保护应用程序108将写到第二存储位置114的数据复制到第一存储位置110以便覆盖写到第一存储位置110的数据。在某些实施例中,当覆盖数据并恢复到之前的时间点时,可以在数据被之前的数据覆盖时执行写前读程序。在此类实施例中,当数据已经恢复到之前的时间点时,程序可以倒转,并且数据可以还原到最新的数据版本。例如,此类实施例可以由于数据损坏而在数据正在恢复以便取回删除的文件时执行,或者不是处在正在恢复时执行。在此类实施例中,倒转到文件被删除之前的状态,接着将文件复制到一些其他位置,然后用数据的最新版本进行更新,由此实现不丢失数据。
在替代实施例中,存储管理员可以确定必须将数据回复到T1表示的时间点,其中已经连续在T1、T2、T3时刻执行了三次写前读操作。在这种情况下,数据保护应用程序108可以首先将第一存储位置110恢复到T3时刻存在的数据,然后将第一存储位置110恢复到T2时刻存在的数据,最后将第一存储位置110恢复到T1时刻存在的数据。在某些实施例中,每个时间点T1、T2、T3都可以与单个更新相对应,即实施例可以实现到单个更新的粒度(granularity)。在某些实施例中,将数据从一个位置恢复到另一个位置时,恢复操作是按照适当的顺序执行的以便保持数据一致性。
因此,图4图解某些实施例,其中用撤消日志条目112将第一存 储位置110恢复到在之前的时间点存储的数据。
图5依照某些实施例图解第三流程图,该第三流程图示出如何在例如存储控制单元102的存储系统中保护数据。图5中图解的操作可以在耦合到存储控制单元102的数据保护应用程序108中执行。
控制在方框500处开始,在此处,数据保护应用程序108收到将数据写到第一存储位置110的命令200。在某些实施例中,命令200是一个单命令。数据保护应用程序108(在方框502处)确定之前写入的数据保存在第一存储位置110中。为响应之前写入的数据存储在第一存储位置110中这一确定,数据保护应用程序108(在方框504处)将之前写入的数据复制到第二存储位置114。为响应将之前写入的数据复制到第二存储位置114,数据保护应用程序108(在方框506处)将数据写到第一存储位置110。在某些实施例中,单命令200是导致由存储控制单元102执行确定、复制和写入操作的原子操作。
在后来的时间点,可能必须执行撤消操作(参考标号507)以便将第一存储位置110回复到在之前的时间点存储的数据。数据保护应用程序108(在方框508处)确定是否用之前写入的数据覆盖写入第一存储位置110的数据。为响应要用之前写入的数据覆盖写到第一存储位置110的数据这一确定,数据保护应用程序(在方框510处)将存储在第二存储位置114中的之前写入的数据复制到第一存储位置110以便覆盖写到第一存储位置110的数据。在某些实施例中,可以执行一系列撤消操作以便将第一存储位置110恢复到更早的时间点。
某些实施例将单命令200限定为由存储控制单元102发送。单命令200包括当前包含在写命令中的信息,包括数据本身和将要更新的数据单元的地址。单命令200还可以包含指示在更新数据覆盖旧版本之前要将旧版本数据写到何处的信息。
存储控制单元102在将控制权返回到主机104之前执行用于执行单命令200的所有操作。存储控制单元102负责保证将存储在要被覆盖的位置中的当前数据版本写到第二存储位置114并将包含在单命令200中的新数据写到第一存储位置110。在某些实施例中,存储控制 单元102也完成写入硬盘操作或将数据硬化到高速缓冲存储器和非易失性存储器中,以便向主机104保证在发生故障的情况下,数据的旧版本或当前版本都不会丢失。
通过将写前读操作压缩在单命令200中,与要求存储控制单元102包含每卷(volume)的每次更新相反,主应用程序120可以在每次输入/输出时控制哪些数据将被包含在撤消日志条目112中。
某些实施例允许将卷、逻辑单元号(LUN)、数据库表条目、数据集、文件系统条目等复原到允许实时访问其余数据库、文件系统数据集等的时间点。某些实施例还允许将存储系统从逻辑错误中恢复并可以允许更正错误达到特定水平的粒度。该粒度可以以一个或多个卷、LUN、文件、数据集等为基础。
虽然已经针对时间点更新描述了某些实施例,但替代实施例可以以区别数据更新的相对时间或序号为基础执行。此外,实现存储控制单元202中单命令200的执行可以通过允许存储控制单元200利用存储控制单元200的内部高速缓冲存储器将旧数据和新数据分级而不是将数据返回到主机应用程序120来提高写前读系统的性能。
另外的具体实施方式
已描述的技术可以作为方法、设备或包括软件、固件、微码、硬件在内的制品和/或其任何组合执行。如此处所使用的,术语“制品”指的是在媒体中实现的代码或逻辑,其中此类媒体可以包括硬件逻辑(例如集成电路片、可编程门阵列(PGA)、专用集成电路(ASIC)等)或计算机可读媒体,例如磁存储媒体(例如硬盘驱动器、软盘、磁带等)、光存储器(CD-ROM、光盘等)、易失性和非易失性存储器装置(例如电可擦可编程只读存储器(EEPROM)、只读存储器(ROM)、可编程制度存储器(PROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪盘、固件、可编程逻辑等)。计算机可读媒体中的代码可以通过处 理器存取和执行。代码或逻辑在其中被编码的媒体还可以包括穿过空间传播的传输信号或例如光学纤维、铜线等传输媒体。代码或逻辑在其中被编码的传输信号可以进一步包括无线电信号、卫星传输、无线电波、红外信号、蓝牙等。代码或逻辑在其中被编码的传输信号能够通过发送站发送并通过接收站接收,其中,传输信号中已编码的代码或逻辑被解码并存储在接收和发送站或装置处的计算机可读媒体或硬件中。另外,“制品”可以包括收录、处理并执行代码的硬件和软件成份的组合。当然,本领域的技术人员将承认可以在不脱离实施例范围的情况下做出很多修改且制品可以包括任何信息承载媒体。例如,制品包括其中存储着指令的存储媒体,机器执行该指令时导致操作被执行。
某些实施例可采取全部硬件实施例、全部软件实施例或包含硬件和软件元素的实施例的形式。在优选实施例中,本发明在软件中执行,其包括但不限于固件、常驻软件、微码等。
此外,某些实施例可以采取可从计算机可用或计算机可读媒体访问的计算机程序产品的形式,所述计算机可用或计算机可读媒体提供供计算机或任何指令执行系统使用或与之有关的程序代码。为此,计算机可用或计算机可读媒体可以是能包含、存储、传递、传播或传输供指令执行系统、设备、装置使用或与之有关的程序的任何设备。该媒体可以是电子、磁性、光学、电磁、红外线或半导体系统(或设备或装置)或传播媒体。计算机可读媒体的例子包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、刚性磁盘和光盘。光盘实例包括光盘只读存储器(CD-ROM)、光盘读/写(CD-R/W)存储器和DVD。
除非另外明确规定,否则术语“某些实施例”、“一个实施例”、“实施例”、“多个实施例”、“该实施例”、“该多个实施例”、“一个或多个实施例”、“一些实施例”、和“某一实施例”指的是一个或多个(但不是全部)实施例。除非另外明确规定,否则术语“包括”、“包含”、“具有”及其变体指的是“包括但不限于”。除非另外明确规定,否则列举 的项目列表并不意味着任何或全部项目是互相排斥的。除非另外明确规定,否则术语“一个”和“该”指的是“一个或多个”。
除非另外明确规定,否则相互通信的装置不必持续相互通信。另外,相互通信的装置可以直接或间接通过一个或多个媒介通信。此外,描述带有几个相互通信的成份的实施例并不意味着需要所有此类成份。相反,描述多种可选成份是为了举例说明可能存在的各种实施例。
更进一步地,虽然程序步骤、方法步骤、算法等可以按照相继次序描述,但此类程序、方法和算法可以经配置按照轮流次序工作。换句话说,可以描述的步骤的任何顺序或次序不一定表示要求这些步骤按照该次序执行。此处所述的程序步骤可以按照任何实用的次序执行。更进一步地,有些步骤可以同时、并行或并发执行。
此处描述单个装置或物件时,很显然,可以使用多个装置/物件(无论它们是否相互配合)代替单个装置/物件。同样,此处描述多个装置或物件时(无论它们是否相互配合),很显然,可以使用单个装置/物件代替所述多个装置或物件。装置的功能性和/或特征可以另外通过未明确描述为具有此类功能性/特征的一个或多个其他装置体现。因此,其他实施例不必包括该装置本身。
图6图解计算机系统600的体系结构,其中,在某些实施例中,图1的计算环境100的存储控制单元102和主机104可以按照计算机系统600的体系结构执行。系统600可以包括在某些实施例中可以包括处理器604的电路602。系统600还可以包括记忆装置606(例如易失性存储装置)和存储器608。系统600的某些组成部分可以在也可以不必在存储控制单元102和主机104中找到。存储器608可以包括非易失性存储装置(例如EEPOM、ROM、PROM、RAM、DRAM、SRAM、闪盘、固件、可编程序逻辑等)磁盘驱动器、光盘驱动器、磁带驱动器等等。存储器608可以包括内部存储装置、附式存储装置和/或网络可访问存储装置。系统600可以包括程序逻辑610,该程序逻辑610包括可以存入记忆装置606并由处理器604或电路602执行的代码612。在某些实施例中,包括代码612的程序逻辑610可以存 储在存储器608中。在某些其他实施例中,程序逻辑610可以在电路602中执行。因此,虽然图6示出分别来自其他元件的程序逻辑610,但程序逻辑610可以在记忆装置606和/或电路602中执行。
某些实施例可以指向用于通过人或自动化处理配置计算指令的方法,所述计算指令将计算机可读代码集成到计算系统中,其中与计算系统结合的代码能执行所述实施例的操作。
图3-5中图解的至少某些操作可以并行或相继执行。在替代实施例中,某些操作可以按照不同次序执行、修改或移动。
此外,已经在不同模块中描述了许多软件和硬件成份以便举例说明。此类成份可以集成为数目更少的成份,或者可以分成数目更多的成份。另外,描述为由特定成份执行的某些操作可以由其他成份执行。
图1-6中所示或提及的数据结构和成份被描述为具有特殊的信息类型。在替代实施例中,数据结构和成份可以有不同的结构并具有比图中所示或提及的那些更少、更多或与之不同的字段或不同的功能。因此,前面对实施例的描述是为举例说明和描述的目的而存在。其并不旨在具有排他性或将实施例限制为公开的精确形式。按照以上讲授内容可以进行很多修改和变更。
Claims (8)
1.一种用于存储系统中的数据保护的方法,其包括:
收到将数据写到第一存储位置的命令,其中该命令包含标识符;
确定所述命令中的标识符是否指示数据保护被开启,其中如果所述数据保护被开启,则在数据被写到第一存储位置之前,之前任何写到第一存储位置的数据要被复制以供可能发生的恢复操作使用;
如果数据保护被开启,则:
确定之前写入的数据存储在第一存储位置;
响应于之前写入的数据存储在第一存储位置这一确定,将之前写入的数据复制到第二存储位置;和
响应于将之前写入的数据复制到第二存储位置,将数据写到第一存储位置;
如果数据保护没有被开启,则将数据写到第一存储位置。
2.如权利要求1所述的方法,其进一步包括:
确定是否要用之前写入的数据覆盖写入第一存储位置的数据;和
响应于要用之前写入的数据覆盖写入第一存储位置的数据这一确定,将存储在第二存储位置的之前写入的数据复制到第一存储位置以便覆盖写到第一存储位置的数据。
3.如权利要求1所述的方法,该方法进一步包括:
响应于从主机收到的命令中没有指示第二存储位置,确定之前写入的数据将被复制到的第二存储位置。
4.如权利要求1所述的方法,其中,该命令是存储控制单元从主机收到的单命令,并且其中该单命令导致要由存储控制单元执行的确定、复制和写入。
5.一种用于存储系统中的数据保护的系统,所述系统包括:
用于收到将数据写到第一存储位置的命令的装置,其中该命令包含标识符;
用于确定所述命令中的标识符是否指示数据保护被开启的装置,其中如果所述数据保护被开启,则在数据被写到第一存储位置之前,之前任何写到第一存储位置的数据要被复制以供可能发生的恢复操作使用;
用于如果数据保护被开启,则:
确定之前写入的数据存储在第一存储位置,
响应于之前写入的数据存储在第一存储位置这一确定,将之前写入的数据复制到第二存储位置,
响应于将之前写入的数据复制到第二存储位置,将数据写到第一存储位置的装置,
用于如果数据保护没有被开启,则将数据写到第一存储位置的装置。
6.如权利要求5所述的系统,所述系统进一步包括:
用于确定是否要用之前写入的数据覆盖写入第一存储位置的数据的装置;和
用于响应于要用之前写入的数据覆盖写入第一存储位置的数据这一确定,将存储在第二存储位置的之前写入的数据复制到第一存储位置以便覆盖写到第一存储位置的数据的装置。
7.如权利要求5所述的系统,该系统进一步包括:
用于响应于从主机收到的命令中没有指示第二存储位置,确定之前写入的数据将被复制到的第二存储位置的装置。
8.如权利要求5所述的系统,其中,该命令是从主机收到的单命令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/297,126 US7761732B2 (en) | 2005-12-07 | 2005-12-07 | Data protection in storage systems |
US11/297,126 | 2005-12-07 | ||
PCT/EP2006/068570 WO2007065780A2 (en) | 2005-12-07 | 2006-11-16 | Data protection in storage systems |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101361047A CN101361047A (zh) | 2009-02-04 |
CN101361047B true CN101361047B (zh) | 2011-09-28 |
Family
ID=38100146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800434339A Active CN101361047B (zh) | 2005-12-07 | 2006-11-16 | 用于存储系统中的数据保护的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7761732B2 (zh) |
EP (1) | EP1960884A2 (zh) |
CN (1) | CN101361047B (zh) |
WO (1) | WO2007065780A2 (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8261133B1 (en) * | 2006-08-04 | 2012-09-04 | Oracle America, Inc. | Protection and recovery of non-redundant information stored in a memory |
US7664766B2 (en) * | 2006-09-12 | 2010-02-16 | International Business Machines Corporation | System, method and computer program product for managing data |
GB0625330D0 (en) * | 2006-12-20 | 2007-01-24 | Ibm | System,method and computer program product for managing data using a write-back cache unit |
US8095517B2 (en) * | 2007-02-08 | 2012-01-10 | Blue Coat Systems, Inc. | Method and system for policy-based protection of application data |
US8200914B2 (en) * | 2008-01-03 | 2012-06-12 | International Business Machines Corporation | Apparatus, system, and method for a read-before-write storage controller instruction |
WO2009113071A2 (en) * | 2008-03-12 | 2009-09-17 | Safend Ltd. | System and method for enforcing data encryption on removable media devices |
US7979735B2 (en) * | 2008-08-15 | 2011-07-12 | International Business Machines Corporation | Data storage with snapshot-to-snapshot recovery |
US20100049926A1 (en) * | 2008-08-21 | 2010-02-25 | International Business Machines Corporation | Enhancement of data mirroring to provide parallel processing of overlapping writes |
US20100049927A1 (en) * | 2008-08-21 | 2010-02-25 | International Business Machines Corporation | Enhancement of data mirroring to provide parallel processing of overlapping writes |
US10289523B2 (en) | 2010-07-12 | 2019-05-14 | International Business Machines Corporation | Generating an advanced function usage planning report |
US10169747B2 (en) | 2010-07-12 | 2019-01-01 | International Business Machines Corporation | Advanced function usage detection |
US20120011036A1 (en) * | 2010-07-12 | 2012-01-12 | International Business Machines Corporation | Advanced function usage-based billing |
GB2483081A (en) * | 2010-08-25 | 2012-02-29 | Sony Corp America | Tamper resistance in media processing using an obfuscated buffer handle |
US20120254118A1 (en) * | 2011-03-31 | 2012-10-04 | Microsoft Corporation | Recovery of tenant data across tenant moves |
JP5987913B2 (ja) * | 2012-09-26 | 2016-09-07 | 富士通株式会社 | 情報処理装置、情報処理方法、及び情報処理プログラム |
US8990533B1 (en) * | 2012-11-26 | 2015-03-24 | Emc Corporation | Crash consistency |
US8977830B1 (en) * | 2012-11-26 | 2015-03-10 | Emc Corporation | Crash consistency |
US9477558B2 (en) * | 2013-03-08 | 2016-10-25 | Intel Corporation | Hardware supported memory logging |
CN104035838B (zh) * | 2013-03-08 | 2018-08-14 | 英特尔公司 | 硬件支持的存储日志记录 |
US20150089118A1 (en) * | 2013-09-20 | 2015-03-26 | Sandisk Technologies Inc. | Methods, systems, and computer readable media for partition and cache restore |
US9535853B2 (en) * | 2013-12-30 | 2017-01-03 | International Business Machines Corporation | Building an undo log for in-memory blocks of data |
US11303668B2 (en) * | 2019-09-27 | 2022-04-12 | Veeam Software Ag | Secure restore |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1352769A (zh) * | 1999-06-10 | 2002-06-05 | 贝勒加特投资公司 | 在分离的存储区域中存储数据组的不同版本的装置和更新存储器中数据组的方法 |
US6594744B1 (en) * | 2000-12-11 | 2003-07-15 | Lsi Logic Corporation | Managing a snapshot volume or one or more checkpoint volumes with multiple point-in-time images in a single repository |
CN1464468A (zh) * | 2002-06-05 | 2003-12-31 | 中国科学院计算技术研究所 | 网络存储系统中的数据管理系统 |
US6799258B1 (en) * | 2001-01-10 | 2004-09-28 | Datacore Software Corporation | Methods and apparatus for point-in-time volumes |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4494226A (en) | 1981-10-15 | 1985-01-15 | Burroughs Corporation | Three beam optical memory system |
DE69126066T2 (de) | 1990-06-29 | 1997-09-25 | Oracle Corp | Verfahren und Gerät zur Optimierung des Logbuchaufhebungsgebrauchs |
US5333303A (en) | 1991-03-28 | 1994-07-26 | International Business Machines Corporation | Method for providing data availability in a transaction-oriented system during restart after a failure |
US5280611A (en) | 1991-11-08 | 1994-01-18 | International Business Machines Corporation | Method for managing database recovery from failure of a shared store in a system including a plurality of transaction-based systems of the write-ahead logging type |
US5278982A (en) | 1991-12-23 | 1994-01-11 | International Business Machines Corporation | Log archive filtering method for transaction-consistent forward recovery from catastrophic media failures |
US5832203A (en) | 1995-01-23 | 1998-11-03 | Tandem Computers Incorporated | Method for providing recovery from a failure in a system utilizing distributed audit |
KR19980024086A (ko) | 1996-09-03 | 1998-07-06 | 니시무로 타이조 | 컴퓨터 시스템 및 화일 관리 방법 |
US6067550A (en) | 1997-03-10 | 2000-05-23 | Microsoft Corporation | Database computer system with application recovery and dependency handling write cache |
US6216178B1 (en) | 1998-11-16 | 2001-04-10 | Infineon Technologies Ag | Methods and apparatus for detecting the collision of data on a data bus in case of out-of-order memory accesses of different times of memory access execution |
US6701456B1 (en) | 2000-08-29 | 2004-03-02 | Voom Technologies, Inc. | Computer system and method for maintaining an audit record for data restoration |
WO2002033551A1 (en) | 2000-10-18 | 2002-04-25 | Tricord Systems, Inc. | Controller fault recovery system for a distributed file system |
JP2002351685A (ja) * | 2001-05-22 | 2002-12-06 | Sankyo Seiki Mfg Co Ltd | 不揮発性メモリのデータ更新方法及び制御装置 |
US6976022B2 (en) | 2002-09-16 | 2005-12-13 | Oracle International Corporation | Method and mechanism for batch processing transaction logging records |
US7036044B1 (en) * | 2002-11-15 | 2006-04-25 | Microsoft Corporation | Identifying appropriate undo during a forward pass through a log |
US20050262148A1 (en) * | 2004-05-03 | 2005-11-24 | Davitt Harold H | Simplified, secure electronic project data exchange |
US7464219B2 (en) * | 2005-08-01 | 2008-12-09 | International Business Machines Corporation | Apparatus, system, and storage medium for data protection by a storage device |
-
2005
- 2005-12-07 US US11/297,126 patent/US7761732B2/en active Active
-
2006
- 2006-11-16 WO PCT/EP2006/068570 patent/WO2007065780A2/en active Application Filing
- 2006-11-16 EP EP06819547A patent/EP1960884A2/en not_active Withdrawn
- 2006-11-16 CN CN2006800434339A patent/CN101361047B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1352769A (zh) * | 1999-06-10 | 2002-06-05 | 贝勒加特投资公司 | 在分离的存储区域中存储数据组的不同版本的装置和更新存储器中数据组的方法 |
US6594744B1 (en) * | 2000-12-11 | 2003-07-15 | Lsi Logic Corporation | Managing a snapshot volume or one or more checkpoint volumes with multiple point-in-time images in a single repository |
US6799258B1 (en) * | 2001-01-10 | 2004-09-28 | Datacore Software Corporation | Methods and apparatus for point-in-time volumes |
CN1464468A (zh) * | 2002-06-05 | 2003-12-31 | 中国科学院计算技术研究所 | 网络存储系统中的数据管理系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2007065780A3 (en) | 2008-06-19 |
US20070168707A1 (en) | 2007-07-19 |
CN101361047A (zh) | 2009-02-04 |
US7761732B2 (en) | 2010-07-20 |
EP1960884A2 (en) | 2008-08-27 |
WO2007065780A2 (en) | 2007-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101361047B (zh) | 用于存储系统中的数据保护的方法和系统 | |
CN101840362B (zh) | 一种改进的写时拷贝快照的实现方法和装置 | |
US7689861B1 (en) | Data processing recovery system and method spanning multiple operating system | |
US8055631B2 (en) | Reducing data loss and unavailability by integrating multiple levels of a storage hierarchy | |
US7284150B2 (en) | System and method for reliably storing data and providing efficient incremental backup and asynchronous mirroring by preferentially handling new data | |
KR100643179B1 (ko) | 주 시스템 및 백업 시스템 간의 데이터 복원 시스템 및 그 방법 | |
CN102934114B (zh) | 用于文件系统的检查点 | |
US7111137B2 (en) | Data storage systems and processes, such as one-way data mirror using write mirroring | |
CN102012852B (zh) | 一种增量写快照的实现方法 | |
US7277997B2 (en) | Data consistency for mirroring updatable source data storage | |
EP1706822B1 (en) | Maintaining consistency for remote copy using virtualization | |
US20050071388A1 (en) | Asynchronous data mirroring with look-head synchronization record | |
US20130339569A1 (en) | Storage System and Method for Operating Thereof | |
US20050149683A1 (en) | Methods and systems for data backups | |
CN101008957A (zh) | 用于从备份数据映像建立数据库的方法和系统 | |
CN102460401A (zh) | 利用变化跟踪进行系统恢复的技术 | |
CN102323930B (zh) | 对数据库系统中的数据变更进行镜像 | |
KR100819022B1 (ko) | 하나의 타겟 볼륨과 하나의 소스 볼륨 사이의 관계 관리 | |
CN102667720A (zh) | 没有排序依赖的一致性 | |
US7549029B2 (en) | Methods for creating hierarchical copies | |
JP4937863B2 (ja) | 計算機システム、管理計算機及びデータ管理方法 | |
JP2006004031A (ja) | データ処理方法およびシステム並びにストレージ装置方法およびその処理プログラム | |
CN100403269C (zh) | 用于管理关于目标卷与源卷之间关系的信息的方法和系统 | |
US20090327601A1 (en) | Asynchronous data mirroring with look-ahead synchronization record | |
CN104903871A (zh) | 虚拟磁带库系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |