CN100440155C - 用于创建虚拟数据拷贝的方法和系统 - Google Patents

用于创建虚拟数据拷贝的方法和系统 Download PDF

Info

Publication number
CN100440155C
CN100440155C CNB038105756A CN03810575A CN100440155C CN 100440155 C CN100440155 C CN 100440155C CN B038105756 A CNB038105756 A CN B038105756A CN 03810575 A CN03810575 A CN 03810575A CN 100440155 C CN100440155 C CN 100440155C
Authority
CN
China
Prior art keywords
memory
data
storer
volume
area
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.)
Expired - Lifetime
Application number
CNB038105756A
Other languages
English (en)
Other versions
CN1653427A (zh
Inventor
A·A·凯克
J·A·科尔格罗夫
O·基谢廖夫
R·S·卡尔
N·S·彭达卡尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Revivio Inc
Original Assignee
Veritas Operating Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Veritas Operating Corp filed Critical Veritas Operating Corp
Publication of CN1653427A publication Critical patent/CN1653427A/zh
Application granted granted Critical
Publication of CN100440155C publication Critical patent/CN100440155C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Abstract

公开了一种用于创建存储在第一存储器内的数据的虚拟拷贝的方法。响应创建存储在第一存储器内的全部数据的拷贝的请求,在第二存储器内创建存储在第一存储器内的数据的虚拟拷贝。在一个实施例中创建虚拟拷贝包括,在存储器中创建第一和第二表,每个表包括多个多位的表项。第一表的每个表项相应于第一存储器的各个存储器区域。第二表的每个表项相应于第二存储器的各个存储器区域。第一表的每个第一位指示着第一存储器的相应的存储器区域是否包含有效数据。第二表的每个第二位指示着自从第一表被创建以来,第一存储器的相应的存储器区域内的数据是否被修改过。第二表的每个第一位指示着自从第二表被创建以来,第二存储器的相应的存储器区域是否被修改过。此外,使用本发明,可以一次创建存储在第一存储器的数据的多于一个的虚拟拷贝。另外,使用本发明可以创建虚拟拷贝的虚拟拷贝。

Description

用于创建虚拟数据拷贝的方法和系统
技术领域
企业使用大型数据处理系统存储和处理他们的数据。图1表示了示例性数据处理系统10的有关组件,示例性数据处理系统10具有主计算机系统12、事务日志14和主数据存储系统16以及次数据存储系统18。主数据存储系统和次数据存储系统16和18分别包括数据存储器22和24,数据存储器22和24分别存储着主数据卷和备份数据卷,下面将更完整地说明它们。主数据卷是“工作中的”数据卷或数据内容,它们被主计算机系统12响应主计算机系统12对事务(例如,指令)的接收而访问,以便读、写或修改数据。备份数据卷是主数据卷的时点拷贝(point in time copy),并且在主数据存储系统出现故障时或在被包括在其中的主数据卷由于操作人员的错误或非法的软件行为在逻辑上受损或被破坏时使用。
主计算机系统12根据接收到的访问事务访问(例如,读、写或修改)存储器22的主数据卷中的数据。当计算机系统10接收到一个事务访问(例如)主数据卷中特定的数据文件时,主计算机12首先访问一个索引表,所述的索引表将文件的文件名映射到存储器22中的存储器的一个或多个物理块的位置。一旦存储器块的位置是已知的了,主计算机系统12就可以访问该存储器块,并且根据该事务向其读或写数据。
诸如图1中示出的数据处理系统通常会经历它们的主数据卷内的数据的逻辑受损或破坏,或是它们的主数据存储系统内的物理故障。当这些事件出现时,对主数据卷的访问将被拒绝。如果没有主数据的备份拷贝,依赖于其数据处理系统的企业将被这些事件严重地影响。
为了在主数据卷中出现逻辑损坏之后或是在它们的主数据存储系统中出现物理故障之后继续操作,企业通常创建主数据卷的时点“备份拷贝”。在图1中存储器22中的主数据卷的备份拷贝可以在次数据存储系统18的存储器24中被创建。创建主数据卷的备份拷贝是一个本领域公知的过程。主计算机系统12每次发出备份命令,就在存储器24中创建备份拷贝。事务日志14保持着在创建主卷的备份拷贝之后,修改主数据卷数据的全部事务的拷贝。应当注意,每次备份主卷时,不必将主数据卷的完整的内容拷贝到存储器24中。而仅有那些与存储器24的相应存储器块的内容不同的存储器22的存储器块的内容需要在每次主卷备份时被更新。此外,不是主计算机系统12每次写或修改存储器22中的主数据卷中的数据,都备份主数据卷。
当(例如)主数据存储系统16经历物理故障时,次数据存储系统18和创建于其上的备份拷贝可以被用于服务于向主计算机系统12所提供的读或写事务。然而,在备份拷贝可以使用之前,备份拷贝必须被从其创建的时间起进行更新,从而它的数据内容镜像了恰好是主数据存储系统16出现故障之前主数据卷的内容。在更新过程中,存储在日志14中的、发生在创建备份拷贝的时间和出现故障的时间之间的所有事务被主计算机系统12应用在次数据系统18的备份拷贝上。一旦所有的事务都被应用了,备份拷贝将和主数据卷恰好在出现故障以前是同样的,并且主计算机系统12可以使用更新过的备份拷贝继续处理接收到的事务,就像它是主数据卷一样。
不幸的是,在备份拷贝中更新数据导致原始主数据卷或主数据卷的稳定的时点拷贝的丢失。如果次数据存储系统18经历物理故障或如果因为(例如)操作人员的失误,更新后的备份拷贝中出现了逻辑上的数据损坏,主计算机系统12将不能(再次)处理接收到的事务请求。为了避免这种情况,实际上通常(优选地)在附加的数据存储系统中(未示出)创建备份拷贝数据的拷贝。此后,使用存储在日志14中的事务更新备份拷贝的拷贝。一旦完成更新,主计算机系统12就可以使用该备份拷贝的拷贝处理新接收到的事务。不幸的是,可能需要大量的时间拷贝备份拷贝的整个内容。这种时间延迟对于在(例如)其主数据存储系统16出现故障之后,一旦可能就试图继续处理事务的企业来说可能是不能接受的。
发明内容
公开于此的是一种用于创建存储在第一存储器中的数据的虚拟拷贝的方法。响应创建存储在第一存储器中的所有数据的拷贝的请求,在第二存储器中创建存储在第一存储器中的数据的虚拟拷贝。在一个实施例中,创建虚拟拷贝包括在存储器中创建第一和第二表,它们中的每个都包含多个多位表项。第一表的每个表项相应于第一存储器的各个存储器区域。第二表的每个表项相应于第二存储器的各个存储器区域。第一表的每个第一位指示着第一表的相应存储器区域是否包含有效的数据。第一表的每个第二位指示着自从第一表被创建以来,第一存储器的相应存储器区域中的数据是否被修改过。第二表的每个第一位指示着第二存储器的相应的存储器区域是否包含从第一存储器拷贝的数据。第二表的每个第二位指示着自从第二表被创建以来,第二存储器的相应存储器区域中的数据是否被修改过。此外,使用本发明,可以一次创建存储在第一存储器中的数据的多于一个的虚拟拷贝。另外,使用本发明,可以创建虚拟拷贝的虚拟拷贝。
附图说明
通过参考附图,可以更好地理解本发明,并且本领域的技术人员将明了其多个目的、特征和优点。
图1是使用了用于存储主数据卷和次数据卷的存储子系统的数据处理系统;
图2是使用了本发明的一个实施例的数据处理系统;
图3是说明了图2所示的存储系统的存储器结构的方块图;
图4A是说明了向图3的存储器40中写数据的操作方面的流程图;
图4B是说明了向图3的存储器42中写数据的操作方面的流程图;
图4C是说明了从图3的存储器42中读数据的操作方面的流程图;
图5以方块图的形式表示了根据本发明的一个实施例创建的有效性/修改表;
图6表示了使用本发明的一个实施例的数据处理系统;
图7是一个流程图,说明了修改图6的一个存储器中的数据的操作方面;
图8是一个流程图,说明了从图6的一个存储器中读数据的操作方面;
图9A是使用本发明的一个实施例的数据处理系统的方块图;
图9B是带有附加于其上的附加数据存储系统的图9A的数据处理系统;
图11是一个流程图,说明了将图6中的一个存储器的卷恢复到图6的另一存储器的卷的内容的操作方面;
图12A是说明验证/修改表的方块图;
图12B是说明修改/验证表的方块图;
图13是一个流程图,说明了向图6的存储器中的卷写数据的操作方面;
图14是说明了从图6的存储器中读数据的操作方面。
不同附图中使用同样的符号指示类似或同样的项。
具体实施方式
本发明涉及用于创建数据卷的虚拟拷贝的装置和方法,所述的虚拟拷贝在其创建之后可以被立刻访问。所述的虚拟拷贝最终可以被转换为数据卷的实际拷贝。然而,本发明允许在虚拟拷贝被转换为实际拷贝之前访问虚拟拷贝。下面将更全面地说明其含义。
图2示出了使用本发明的一个实施例的数据处理系统30的有关组件。数据处理系统30包括主计算机系统32和数据存储系统34、36和38。数据存储系统34、36和38分别包括数据存储器40、42和44。数据存储器40-44可以采用动态或静态随机访问存储器、磁性的或光学数据存储盘或磁性的或光学数据存储带的形式。应当理解,数据存储器40-44将不限于这些硬件组件。而是数据存储器40-44可以采用任何可以在其中存储数据和访问数据的硬件、软件或硬件和软件的组合。数据存储器可以采用在软件的指挥下工作的几个硬件组件的复合结构的形式。数据存储器可以采用镜像的硬件的形式。
图3以方块图的形式表示了数据存储器40-44的逻辑结构。如可以从图3中看出的,数据存储器40和42中的每个都包括nmax个存储器区域或块,其中存储着数据。如图3所示,存储器块不必是连续的。数据存储器40-44中相应的存储器块的大小是相等的。因此,存储器40的存储器块1的大小等于存储器42和44的存储器块1的大小。存储器40内的每个存储器块的大小彼此相等。可替换的,存储器40中的存储器块的大小可以改变。
出于说明的目的,假设存储器40包括在从存储器块1到nmax的每个存储器块间分布的数据卷,并且存储器42不包括数据。在一个实施例中,主计算机32响应一个请求,通过在存储器(或是主计算机32的存储器或是存储器42)中创建一对有效/已修改(V/M)表(诸如图5中的表52和54),在存储器42中创建存储在存储器40中的数据卷的虚拟拷贝。主计算机将表52和54分别与存储器40和42相关联。每个V/M表52和54具有nmax个表项,每个表项具有两位。表52的每个表项相应于存储器40的各自的存储器块,而表54的表项相应于存储器42的各自的存储器块。最初,表52的所有位和表54的全部m(n)个位可以被设置为逻辑0。最初,表52的全部v(n)个位可以被设置为逻辑1。
每个表的第一位被指定为v(n),而每个表的第二位被指定为m(n)。取决于表项的状态,每个表项中的v(n)指示着相关联的存储器的相应存储器块是否包含有效数据。例如,当被设置为逻辑1,表52的v(2)指示着存储器40的存储器块2包含有效数据,并且当被设置为逻辑0时,表52的v(2)指示着存储器40的存储器块2不包含有效数据。每个表项中的m(n),取决于表项的状态,指示着相关联的存储器的相应存储器块中的数据是否被修改过。例如,当被设置为逻辑1,表54的m(3)指示着存储器42的存储器块3包括修改后的数据,并且当被设置为逻辑0时,表54的m(3)指示着存储器42的存储器块3包括没有被修改的数据。
在创建虚拟拷贝之后,主计算机32可以运行后台处理,将存储器40中的存储器块的数据内容拷贝到存储器42的相应存储器块中。最后,这个后台处理将完整地将数据卷内容拷贝到存储器42,从而将虚拟拷贝转换为实际的拷贝。然而,在开始后台拷贝处理之前,或在完成后台拷贝处理之前,根据接收到的事务,主计算机32可以或是向存储器40中的数据卷,或是其在存储器42中的虚拟拷贝读或写数据。主计算机从存储器40的卷或其在存储器42中的虚拟拷贝中读或写数据的有关方面将参考图4A-4C说明。
图4A说明了主计算机系统32响应对一个请求的接收,在在存储器42中创建了其虚拟拷贝之后,执行写或修改包含在存储器40中的主数据卷的块n中的数据的操作方面。响应向存储器40的主数据卷的块n写数据的请求,主计算机为虚拟拷贝访问V/M表,以确定存储器42中的虚拟拷贝的相应块n是否包含有效数据。换言之,主计算机32确定v(n)是否被设置为1。如果存储器40的块n的内容以前通过上面提及的后台拷贝处理,或响应以前写或修改存储器40或42的块n中的数据的请求被拷贝到存储器42的块n中,存储器42的块n将包含有效数据(即,v(n)被设置为1)。
如果v(n)被设置为1,如步骤60所示,主计算机系统32修改存储器40的块n中的数据。然而如果主计算机系统32确定虚拟拷贝的v(n)被设置为0,则主计算机系统32将存储器40的块n的内容拷贝到存储器42的块n,并且为虚拟拷贝相应地设置v(n)。此后,主计算机系统32为数据卷将位m(n)修改为1。最后如步骤60所示,主计算机系统32修改存储器40的块n中的数据。应当注意,主计算机32可以在修改存储器40的块n中的数据之后,将位m(n)设置为1。然而,出于解释的目的,将假设主计算机系统32在修改相应的存储器块中的数据之前设置修改位,应当理解本发明将不限于此。
图4B说明了主计算机系统32响应对一个请求的接收,执行写或修改包含在存储器42中的虚拟拷贝的块n中的数据的操作方面。更具体地,在步骤62,响应主计算机系统32对请求的接收,主计算机系统32为虚拟拷贝确定有效位v(n)是否等于1。如果v(n)被设置为1,则如步骤64所示,主处理器32根据其接收到的写请求,修改存储器42中的块n的数据。然而如果v(n)位为虚拟拷贝设置为0,则主计算机在步骤66首先将存储器40中的块n的内容拷贝到存储器42的块n,并且为虚拟拷贝将v(n)设置为1。一旦v(n)被设置为1,主计算机系统32将m(n)设置为等于1。最后,如步骤64所示,主计算机修改存储器42中的块n的数据。
图4C说明了主计算机系统32响应对一个请求的接收,执行从包含在存储器42的虚拟拷贝的块n中读数据的操作方面。主计算机系统32响应对一个请求的接收,从存储器42的块n中读取数据,在步骤68为虚拟拷贝访问v(n)表,以便确定v(n)是否等于1。如果v(n)等于1,则从存储器42的块n中读数据。然而如果v(n)不等于1,则从存储器40的块n中读数据。
使用参考图4A-4C说明的方法,主计算机系统32,或可以分别访问存储器40和42以及它们相应的表52和54的任何其它计算机系统,可以在所有数据被从存储器40拷贝之前(一个取决于存储器40中的数据卷的大小,可能需要大量的时间来完成的处理),访问存储器42中的虚拟拷贝。如下面将更详细地说明的,修改位,诸如表52和54中的那些修改位,可以被用于快速地、有效地执行诸如卷恢复的功能。
在上面的一个扩展中,可以由主计算机系统32创建虚拟拷贝的虚拟拷贝。例如,在创建了包含在存储器40中的数据卷的虚拟拷贝之后,主计算机系统32可以接收命令以创建包含在存储器42中的虚拟拷贝的虚拟拷贝。这个虚拟拷贝的虚拟拷贝可以在图2所示的数据存储系统38的存储器44中被创建。在请求创建虚拟拷贝的虚拟拷贝之后,主计算机系统32创建表56,表56类似于图5中所示的表。最初,表56的全部表项被设置为逻辑0。与表52和54类似,表56中每个表项的第一位被指定为v(n),而表56中每个表项的第二位被指定为m(n)。与表52和54类似,表56的v(n)当被设置为1时指示着存储器44的块n包含有来自于存储器42的相应存储器块n的数据的有效拷贝。此外,与表52和54类似,表56的m(n)当被设置为1时指示着包含在存储器44的块n中的数据被修改过。
主计算机系统32对虚拟拷贝或虚拟拷贝的虚拟拷贝的访问与参考图4A-4C的说明类似。另外,主计算机系统32可以在创建了虚拟拷贝的虚拟拷贝之后立刻访问和修改它。例如,就在在存储器44中创建了虚拟拷贝的虚拟拷贝之后,主计算机系统42可能接收到了访问并修改包含在存储器44的块n中的数据的请求。主计算机响应这个访问请求,首先访问表56以确定v(n)是否被设置为1。如果v(n)被设置为逻辑0,则如果块n包含有效数据,块n的数据内容被从存储器42拷贝到存储器44。如果存储器的块n不包含有效数据(即,存储器42的块n的v(n)被设置为0),数据就被从存储器40的块n拷贝。一旦数据被拷贝到了块n,主计算机系统将v(n)更新为逻辑1。此后,主计算机系统32将m(n)设置为逻辑1,并且修改拷贝到存储器44的存储器块n的数据。图2所示的主计算机系统32能够访问由主计算机系统32创建的任意虚拟拷贝中的数据。
图6说明了具有附加于其上的附加数据存储系统70-74的图2所示的数据处理系统30。数据存储系统70-74分别包括存储器80-84,它们中的每个可以存储由主计算机系统32创建的数据的虚拟拷贝。主计算机系统32,或另一计算机系统(未示出),能够访问每个虚拟拷贝。
存储器42-44和70-74中的虚拟拷贝彼此相关。例如,存储器80包含存储器44中的数据卷的虚拟拷贝。从一个方面来说,包含在存储器80中的虚拟拷贝是包含在存储器44中的双亲数据卷的孩子。任何虚拟拷贝都具有称为双亲/孩子的关系,其中虚拟拷贝是被拷贝的双亲数据卷的孩子。存储器44包含存储器42中的数据卷的虚拟拷贝。存储器42包含存储器40中的数据卷的虚拟拷贝。存储器84包含存储器82中的数据卷的虚拟拷贝。最后,存储器82包含存储器40中的数据卷的虚拟拷贝。存储器42和82中的虚拟拷贝是存储器40的数据卷的孩子。
存储在存储器42-44和80中的虚拟拷贝是由主计算机系统32顺序地创建的,存储器80中的虚拟拷贝在存储器44中的虚拟拷贝的创建之后被创建。类似地,存储在存储器84中的虚拟拷贝被在包含在存储器82中的虚拟拷贝的创建之后被创建。存储器82和84中的虚拟拷贝可以在存储器80中的虚拟拷贝的创建之前或之后被创建。虽然没有示出,主计算机系统32在创建存储器80-84中的每个虚拟拷贝的同时,创建类似于图5示出的V/M表的V/M表。与存储器42和82相关联的V/M表将存储器42和82中的两个孩子虚拟拷贝与存储器40中的单个双亲数据卷关联起来。
提供图6以说明可以创建大量的虚拟拷贝,它们中的每个都可由主计算机系统32(或图6中未示出的另一计算机系统)在它们的创建之后立刻访问。下面,图6和图7说明了访问图6的任意数据卷的有关步骤。
图7是一个流程图,说明了当主计算机系统32接收到一个请求,修改存储器40中的数据卷中的数据,或包含在图6的存储器中的任意虚拟拷贝内的数据的主计算机系统32的操作方面。为了解释的简便,用卷(X)表示存储器X中的数据卷,其中X可以是存储器40-44或80-84中的任何一个。另外,vx(n)和mx(n)分别表示存储器X中块n的有效位和修改位,其中X可以是存储器40-44或80-84中的任何一个。
在步骤90,主计算机系统接收请求,修改存储在图6的一个存储器X内的数据卷(X)内的存储器块n的数据。作为响应,主计算机32为卷(X)访问V/Mx表以确定相应于卷(X)的块n的有效位vx(n)是否被设置为1。如果卷(X)的块n不包含有效拷贝(即,vx(n)被设置为0),则主计算机开始一组步骤94-104,以便从卷(X)的双亲数据卷拷贝数据到卷(X)的块n中。为了说明的简便,卷(X-1)被指定为卷(X)的双亲卷。
主计算机系统32在步骤94-104为卷(X)所依赖的相关数据卷顺序地访问V/M表,直到找到了所寻找的数据的有效拷贝为止。因此在步骤94,主计算机系统将虚拟变量a设置为X,即对存储器存储卷(X)的标识。此后,在步骤96,主计算机系统将该值减1。在a被减1之后,卷(a)是卷(X)的双亲。在步骤100,主计算机系统确定相应于卷(a)的V/Ma表是否指示着与卷(a)的块n相关联的有效位va(n)是否被设置为1。如果是的,如步骤102所示,主计算机系统32将卷(a)的块n的内容拷贝到卷(X)的块n。如果卷(a)的有效位va(n)被设置为0,因此指示着卷(a)不包含块n中的数据的有效拷贝,则重复步骤96和100直到发现在块n中包含有效数据的相关卷(例如,卷(a-1)、卷(a-2)等)。
一旦在步骤102来自相关卷的存储器块n的内容被拷贝到卷(X)的块n,如步骤104所示,主计算机系统32将卷(X)的有效位vx(n)设置为1。此后,或响应主计算机系统32在步骤92对卷(X)的有效位vx(n)被设置为1的确认,在步骤106主计算机32确定是否在卷(X)之后创建了孩子数据卷,数据卷(X+1)。如果主计算机系统32确定已经创建了卷(X+1),则主计算机系统32必须确定卷(X+1)的块n是否包含有效数据。在步骤110,主计算机系统32为卷(X+1)访问V/Mx+1表,并且检查有效位vx+1(n)的状态。如果有效位根据步骤110被设置为1,则主计算机系统32进入步骤112,并且设置卷(X)的修改位mx(n)为1,并且修改卷(X)的块n中的数据。然而如果在步骤110,主计算机系统32确定卷(X+1)的有效位vx+1(n)被设置为0,则如步骤116所示,主计算机拷贝卷(X)的块n的内容到卷(X+1)的存储器块n。此后,主计算机系统32将相应于卷(X+1)的V/M表的有效位vx+1(n)设置为1,并且如步骤112中所做的,修改卷(X)的块n的数据。
主计算机系统32被配置为读取图6中所示的存储器的任意数据卷中的数据。图8是一个流程图,说明了主计算机系统32响应接收到的事务请求从卷中读数据的操作方面。更具体的,如步骤120所示,主计算机32接收请求,读取图6中的一个卷(卷(X))内的存储器块n的数据。作为响应,主计算机系统32为卷(X)访问V/Mx表以确定有效位vx(n)是否被设置为1。如果有效位被设置为1,则主计算机系统从卷(X)的存储器块n中读取数据,并且处理结束。
然而如果卷(X)的有效位vx(n)被设置为0,则主计算机系统从卷(X)依赖的在前的卷中的一个卷的块n读取数据。在步骤124,与前面相一致,主计算机系统32将虚拟变量a设置为值X,并且在步骤126,主计算机系统32将该虚拟变量减1。在步骤130,主计算机系统32检查卷(a)的有效位va(n)。如果这个有效位被设置为1,则卷(a)包括所寻找的数据的拷贝。如果这个有效位被设置为0,则处理在步骤126-130重复,直到发现了在块n中包含数据的有效拷贝有关数据卷(例如,卷(a-1)、卷(a-2)等)。一旦发现了这个数据,在步骤132,主计算机系统32就从块n读数据,并且处理结束。
如在上面的背景技术中提到的,主数据存储系统故障、或包含在其中的主数据卷的逻辑损坏是必须快速纠正的问题。图9A示出了图2的数据处理系统30以及附加于其上的事务日志140。在图9A中,存储器40存储着可由主计算机系统32响应接收到的读和写事务请求而访问的主数据卷。存储器42存储着存储器40的主数据卷的备份卷。备份卷是每次发出备份命令,由主计算机系统32创建的。事务日志140存储着在存储器42中进行备份之后,修改主数据卷中的数据的所有事务请求的拷贝。
在现有技术中,用于从主数据存储系统故障或其中的数据损坏中恢复的优选方法涉及首先创建备份数据卷的内容的实际拷贝。包含在存储器42中的备份数据卷可以被完整地拷贝到(例如)存储器44。此后,可以使用包含在事务日志140中的事务更新存储器44中的实际拷贝。一旦被更新后,存储器44中的卷就镜像了刚好在主数据存储系统34出现故障之前或包含在其中的数据损坏之前的时刻存储器40中的主卷。此后主计算机系统32可以使用存储器44中更新的卷继续处理事务。如上面所提到的,这种用于响应主数据卷的故障或损坏的处理,极大地延迟了企业使用数据处理系统对事务处理的继续执行。
使用上面说明的方法,数据处理系统30可以从存储系统34的故障或主数据卷的损坏中以较短的时间得以恢复。为了进行说明,假设图9A中的主计算机系统32就在主数据存储34出现故障或其中的数据受损之后,使用上面说明的方法创建了包含在存储器42中的备份的虚拟拷贝。这个虚拟拷贝被立刻在存储器44中创建。
此后,主计算机系统32使用参考图4B说明的方法将存储在事务日志140中的事务应用到在存储器44中创建的虚拟拷贝上。如所预料的,在存储器44中的数据可以被日志140的事务修改之前,来自存储器42的某些存储器块的数据必须被首先拷贝到存储器44中它们相应的块内。一旦来自日志140的所有事务都被应用了,包含在存储器44中的数据的虚拟拷贝就可以被看成其内容镜像了存储系统34出现故障或其上的数据受损的时刻存储器40的内容。然后主计算机系统32可以在存储系统34出现故障或其上的主数据卷受损之后,根据接收到的事务访问存储器40。主计算机系统32不必等待存储器42中的备份卷的整个内容被实际地拷贝到存储器44。因此,当与现有技术比较时,主计算机系统32可以在主数据存储系统34出现故障或其上的数据受损之后不久就继续处理事务(使用参考图4B和4C所说明的方法)。
存储器44中的虚拟拷贝可以被用于恢复存储器40内的主卷的内容。假设主计算机系统32响应数据存储系统34的物理故障在存储器44中创建了虚拟拷贝。如上面提到的,可以在存储器44中创建备份的虚拟拷贝,所述的虚拟拷贝被根据日志140中的全部事件进行更新。然而,在如上所述出现物理故障之后,不是根据主计算机系统32接收到的事务修改存储器44中的虚拟拷贝的数据,而是由主计算机创建更新后的虚拟拷贝的虚拟拷贝。图9B是具有附加于其上的附加数据存储系统70的图9A的数据处理系统。参考图9B,可以根据上面的方法在数据存储系统70的存储器80中创建虚拟拷贝的虚拟拷贝。主计算机系统32为存储器80中的虚拟拷贝创建V/M表。此后,主计算机系统32根据主计算机系统32在数据存储系统34出现故障之后接收到的事务,修改存储器80的虚拟拷贝中的数据。主计算机使用图7中说明的方法修改存储器80中的数据。结果,新创建的V/M表的几个修改位m(n)将被设置为1。
还假设存储系统34最终被修复了,从而主计算机系统32可以继续访问它。当被修复时,存储器40可以被快速地恢复为存储器80的内容。恢复过程包括主计算机32以存储器80中相应的存储器块的内容(其具有相应的设置为1的修改位m(n))替换存储器40中的存储器块的内容。例如,假设只有存储器80的指定的存储器块3、4和9中的数据自从存储器80内的虚拟拷贝的创建以来被修改过。如新创建的V/M表中只有修改位m(3)、m(4)和m(9)被设置为1。为了将存储器40的内容恢复成存储器80的内容,主计算机系统32仅需要分别将存储器80的存储器块3、4和9的内容拷贝到存储器40的存储器块3、4和9。使用这种方法,在系统34从它的故障中恢复之后,存储器40的主数据卷可以被恢复。
图9B及其相应的描述说明了一种方法,通过该方法一个主数据卷可以被恢复为虚拟数据卷的内容。这种方法使用V/M表的修改位m(n)。一般地,V/M表的修改位使得一个卷可以被快速地恢复成另一个卷的内容。图11是一个流程图,说明了主计算机系统32将卷(X)恢复成卷(Z)的内容的操作方面。出于解释的目的,卷(X)和卷(Z)是包含在图6的存储器40-44和80-84中的两个数据卷。图12A示出了在主计算机系统32接收一个请求,将卷(X)恢复成卷(Z)的内容的时刻,分别相应于卷(X)和卷(Z)的V/M表120和122。在一个实施例中,主计算机系统32可以在发出命令以将卷(X)恢复为卷(Z)的内容之后,立刻访问卷(X)。为此,当发出恢复命令时,主计算机系统12在相应于卷(X)的V/M表中增加第三列。图12B说明了具有附加于其上的、被指定为rx(n)的第三列的表120。Rx(n)当被设置为1时,指示卷(X)的相应的存储器块n已经被恢复为卷(Z)的存储器块n的内容。一旦整个数据卷(X)都被恢复了,就可以从表120中删掉rx(n)列。然而,如下面将会更加明白的,列rx(n)允许在主计算机系统32发出了恢复命令之后立刻访问卷(X)。
参考图11,最初主计算机系统在步骤150将n设置为0。在步骤152,主计算机系统确定n的当前值是否等于nmax,如果是的,则恢复过程已经完成。然而最初n等于0,处理进入步骤152,其中主计算机系统32将n增加1。主计算机系统32在步骤154检查rx(n)的状态以确定它是被设置为1还是0。如果它被设置为1,则卷(X)的相应的存储器块n已经被恢复,并且处理可以进入下一存储器块。如果rx(n)被设置为0,则块n的内容没有被恢复,并且处理进入步骤156,在其中做出关于卷(Z)的有效位vz(n)是被设置为1还是0的确定。如果卷(Z)的vz(n)被设置为1,则处理进入步骤160,在其中确定卷(Z)中的块n的修改位mz(n)。如果卷(Z)内的块n中的数据被修改了,则mz(n)被设置为1,并且处理进入步骤162,在其中做出关于卷(Z)是否是卷(X)的虚拟拷贝的确定。如果卷(Z)不是卷(X)的虚拟拷贝,则因为卷(Z)的块n包含有效的并修改过的数据,在步骤166卷(Z)的块n的内容被拷贝到卷(X)的块n,并且rx(n)被设置为1,指示卷(X)的块n的内容已经被恢复。然后处理从步骤152开始重复进行。
然而如果在步骤162主计算机系统确定卷(Z)是卷(X)的虚拟拷贝,则主计算机在步骤164确定卷(X)的块n的数据是否被修改了。如果它没有被修改过,则卷(X)和卷(Z)的块n中的内容是相同的,并且不需要执行拷贝。然而,如果在步骤164,mx(n)被设置为1,则卷(X)和卷(Z)的块n中的内容不同,因此卷(Z)的块n中的数据内容需要被拷贝到卷(X)的块n。
回到步骤156,如果在该处理中主计算机系统32确定卷(Z)的块n不包含有效数据(即,vz(n)被设置为0),则处理进入步骤172,其中主计算机系统32将虚拟变量a设置为Z,即包含卷(Z)的存储器。此后主计算机系统32在步骤174将虚拟变量减1,并且在步骤176检查卷(a)的va(n)的状态。此时,卷(a)是卷(z)的双亲。如果卷(a)的va(n)被设置为0,则卷(a)的块n不包含有效数据,并且主计算机系统32重复步骤174和步骤176,直到主计算机系统32在相关卷的块n中发现有效数据为止。
一旦在有关的卷的块n中发现了有效数据,则处理进入步骤182,其中主计算机系统32确定卷(a)是否是卷(X)的虚拟拷贝。如果卷(a)不是卷(X)的虚拟拷贝,则因为卷(a)在块n中包含有效的并修改过的数据,卷(a)的块n的内容在步骤184被拷贝到卷(X)的块n,并且在步骤170主计算机系统32为卷(X)设置rx(n)为1。然而如果卷(a)是卷(X)的虚拟拷贝,则在步骤184主计算机系统32确定卷(X)的块n的数据是否修改过。如果是的,卷(a)和卷(X)的块n中的内容的内容不同,因此如步骤186所示,需要将数据从卷(a)的块n拷贝到卷(X)的块n。最后,在步骤170,主计算机系统32为卷(X)将rx(n)设置为1,并且处理进入步骤152以便确定卷(X)的所有块是否都已被恢复。
如前面提到的,主计算机系统32可以在发出恢复命令之后,并且在完成该恢复命令之前立刻访问恢复的卷(X)。图13说明了在发出恢复命令,以便将卷(X)恢复为卷(Z)的内容之后,而在完成卷(X)的恢复之前,写卷(X)的操作方面。更具体地,在步骤190,主计算机系统32确定相应于卷(X)的块n的恢复位rx(n)是否被设置为1。这假设在相应于卷(X)的表中出现了附加的列rx(n)。如果列rx(n)没有出现,则当主计算机系统32接收一个请求,写数据卷(X)的块n时,卷(X)不是恢复的对象。如果在步骤190,rx(n)被确定为是1,则处理进入步骤192,并且主计算机系统32根据主计算机系统32接收到的写命令,将数据写到卷(X)的块n。此时执行步骤192,因为卷(X)的块n以前已经被恢复了。如果在执行写命令之前块n没有被恢复,则卷(X)的块n内的数据可能会受到损坏。
在步骤190,确定了rx(n)没有被设置为1,因此指示着卷(X)的块n没有被恢复,处理进入步骤194,在其中检查卷(Z)中的块n的有效性。如果卷(Z)的块n包含有效数据,则处理进入步骤196,其中主计算机系统32确定卷(Z)的块n内的数据是否修改过。如果它被修改过,则卷(Z)的块n和卷(X)的块n中包含的数据之间存在着差别。结果,在步骤200主计算机系统从卷(Z)将块n的内容拷贝到卷(X)的块n。本质上,主计算机系统32在步骤200执行块n的恢复。当被恢复后,在步骤192根据主计算机系统32的命令,主计算机系统32可以向卷(X)的块n写数据。然而如果在步骤196,确定卷(Z)的块n中的有效数据已经修改过了,则主计算机在步骤202确定卷(Z)是否是卷(X)的虚拟拷贝。再次,如果卷(Z)不是卷(X)的虚拟拷贝,则主计算机系统32在步骤200拷贝该内容,并且主计算机系统32根据步骤192向卷(X)的块n写数据。如果在步骤222确定确定卷(Z)是卷(X)的虚拟拷贝,则在步骤204主计算机确定卷(X)的块n的数据是否被修改过。如果卷(X)的块n的数据被修改过,则卷(X)和Z的块n内的数据不同。同样的,卷Z的内容必须被拷贝到卷(X)的块n。在步骤200,在数据被写到卷(X)的块n之前根据主计算机系统32接收到的写命令。
如果在步骤194,主计算机系统确定卷(Z)的块n不包含有效数据,则主计算机系统32必须找到如果必要可以从其中拷贝数据的有关的卷。为此,主计算机系统32在步骤206将虚拟变量a设置为Z。然后主计算机在步骤212将该虚拟变量减1,并且访问相应于卷(a)的V/M表以确定其上的块n是否包含有效数据。如果卷(a)包含块n中的数据的有效拷贝,则主计算机在步骤214确定数据是否被修改过。如果根据步骤214所做出的确定,数据被修改过,则块n和卷(X)的内容是不同的,因此在步骤216需要将卷(a)的块n的数据内容拷贝到卷(X)的块n。此后,卷(X)的块n已经被恢复,并且主计算机系统32可以向卷(X)的块n写数据。如果在步骤214主计算机确定卷(a)的块n内的数据没有被修改过,则主计算机系统在步骤220确定卷(a)是否是卷(X)的虚拟拷贝。如果它不是,数据被从卷(a)的块n拷贝到卷(X)的块n。然而如果卷(a)是卷(X)的虚拟拷贝,则在步骤222主计算机确定卷(X)的块n中的数据是否被修改过。如果是的,卷(X)的块n中的数据内容与数据卷a内的块n中的数据内容不同,并且在步骤216主计算机32将卷(a)的块n的内容拷贝到卷(X)的块n。然而如果卷(X)的块n中的数据内容没有被修改过,则卷(a)和卷(X)的块n的内容是相同的,并且在步骤192的写操作之前不必被恢复。
如上所述,主计算机系统32可以执行一个请求,在已经启动卷(X)的恢复之后,但是在将卷(X)的整个卷被恢复成卷(Z)的内容之前读块n中的数据。图14是一个流程图,说明了用于在启动了将卷(X)恢复成卷(Z)的内容之后,从卷(X)的块n读数据的一个实施例的操作方面。在步骤230,主计算机系统32首先确定用于卷(X)的rx(n)是否被设置为1,或读命令的存储器块n以前是否被恢复成了卷(Z)的块n的内容。如果已经发生了卷(X)的块n的恢复,则如步骤232所示,主计算机可以执行读命令,并且因此从卷(X)的块n读数据。然而如果在步骤230确定了卷(X)的块n将被恢复,则在步骤234,主计算机32确定卷(Z)的块n是否包含有效数据。如果是的,则在步骤236主计算机从卷(Z)的块n中读取数据。然而如果在步骤234主计算机确定卷(Z)的存储器块n不包含有效的数据,则在步骤240主计算机将z减1,并且重复处理步骤234,直到发现了在块n中包含有效数据的中间卷为止。
虽然已经以几个实施例说明了本发明,但是本发明并不旨在限于此处提出的特定形式,而是相反地,旨在覆盖可以被合理地包括在由所附权利要求定义的本发明的范围内的替代方案、改型和等同方案。

Claims (12)

1.一种用于创建虚拟数据拷贝的方法,包括:
将数据从第一存储器的存储器区域拷贝到第二存储器的存储器区域,其中所述第一存储器的存储器区域与所述第二存储器的存储器区域的大小相等;
在相应于第二存储器的存储器区域的存储器中设置第一位,其中第一位被设置为指示着第二存储器的存储器区域存储着从第一存储器的存储器区域拷贝的数据;
在将数据从第一存储器的存储器区域拷贝到第二存储器的存储器区域之后,修改存储在第二存储器的存储器区域内的数据;
在存储器中设置第二位,其中第二位被设置为指示着自从存储在第二存储器的存储器区域内的数据被从第一存储器的存储器区域拷贝以来,存储在第二存储器的存储器区域内的数据已被修改过。
2.如权利要求1的方法,还包括:
从第一存储器的第二存储器区域将数据拷贝到第二存储器的第二存储器区域;
其中对存储在第二存储器的存储器区域内的数据的修改发生在将数据从第一存储器的第二存储器区域拷贝到第二存储器的第二存储器区域之前。
3.如权利要求1的方法,还包括:
产生将在第一存储器内的全部数据拷贝到第二存储器的请求;
其中,在产生了拷贝全部数据的请求之后,但是在第一存储器内的剩余数据被拷贝到第二存储器之前,修改存储在第二存储器的存储器区域内的数据。
4.如权利要求1的方法,还包括修改存储在第一存储器的存储器区域内的数据,其中在第一存储器的存储器区域内修改数据之前,数据被从第一存储器的存储器区域拷贝到第二存储器的存储器区域。
5.如权利要求1的方法,还包括:
在存储器中创建第一和第二表,所述每个表包括多个多位的表项;
其中,所述的第一和第二存储器中的每个存储器包括多个存储器区域;
其中,第一表的每个表项相应于第一存储器的各自的存储器区域;
其中,第二表的每个表项相应于第二存储器的各自的存储器区域;
其中,第一和第二位组成了第二表的一个表项;
其中,响应将第一存储器内的全部数据拷贝到第二存储器的请求,创建第二表。
6.如权利要求1的方法,还包括:
产生将第一存储器内的全部数据拷贝到第二存储器的请求;
其中在第一存储器内的全部数据被拷贝到第二存储器之前,从第一存储器拷贝到第二存储器的数据是可访问的或是可修改的。
7.一种用于创建虚拟数据拷贝的方法,包括:
创建存储在第一存储器内的数据的第一虚拟拷贝,其中第一虚拟拷贝是在第二存储器中被创建的;
创建存储在第一存储器内的数据的第二虚拟拷贝,其中第二虚拟拷贝是在第三存储器内被创建的,并且其中在创建了第一虚拟拷贝之后创建第二虚拟拷贝。
8.一种用于创建虚拟数据拷贝的方法,包括:创建存储在第一存储器内的数据的虚拟拷贝,其中响应创建存储在第一存储器内的全部数据的拷贝的请求,在第二存储器中创建存储在第一存储器内的数据的虚拟拷贝。
9.如权利要求8的方法,其中创建第一存储器内的数据的虚拟拷贝包括:
在存储器中创建第一和第二表,每个表包括多个多位的表项;
其中,第一表的每个表项相应于第一存储器的各自的存储器区域;
其中,第二表的每个表项相应于第二存储器的各自的存储器区域;
其中,第一表的每个第一位指示着第一存储器的相应的存储器区域是否包含数据;
其中,第一表的每个第二位指示着自从第一表被创建以来,第一存储器的相应的存储器区域内的数据是否修改过;
其中第二表的每个第一位指示着第二存储器的相应的存储器区域是否包含从第一存储器拷贝的数据;
其中第二表的每个第二位指示着自从第二表被创建以来,第二存储器的相应的存储器区域内的数据是否被修改过。
10.如权利要求9的方法,还包括:
响应修改第二存储器的存储器区域内的数据的请求,将数据从第一存储器的存储器区域拷贝到第二存储器的存储器区域;
设置相应于第二存储器的存储器区域的第二表的一个表项的第一位,其中第二表的一个表项的第一位被设置为指示着第二存储器的存储器区域存储着拷贝自第一存储器的存储器区域的数据;
在数据被从第一存储器的存储器区域拷贝到第二存储器的存储器区域之后,修改存储在第二存储器的存储器区域内的数据;
设置第二表的一个表项的第二位,其中第二表的一个表项的第二位被设置为指示着自从将数据从第一存储器的存储器区域拷贝到第二存储器的存储器区域以来,存储在第二存储器的存储器区域内的数据已经被修改过了。
11.如权利要求8的方法,还包括:
将数据从第一存储器的存储器区域拷贝到第二存储器的存储器区域;
在相应于第二存储器的存储器区域的存储器中设置第一位,其中第一位被设置为指示着第二存储器的存储器区域存储着拷贝自第一存储器的存储器区域的数据;
在将数据从第一存储器的存储器区域拷贝到第二存储器的存储器区域之后,修改存储在第二存储器的存储器区域内的数据;
在存储器中设置第二位,其中第二位被设置为指示着自从数据被从第一存储器的存储器区域拷贝到第二存储器的存储器区域以来,存储在第二存储器的存储器区域内的数据已经被修改过。
12.一种用于创建虚拟数据拷贝的系统,包括:
计算机系统;
第一数据存储系统,连接于所述的计算机系统上,其中第一数据存储系统包括第一存储器;
第二数据存储系统,连接到所述的计算机系统上,其中第二数据存储系统包括第二存储器;
其中,所述的计算机系统包括用于执行指令的处理器和存储可由处理器执行的指令以便执行一种用于创建虚拟数据拷贝的方法的存储器,所述的方法包括:
创建存储在第一存储器内的数据的虚拟拷贝,其中响应创建存储在第一存储器内的数据的拷贝的请求,在第二存储器内创建存储在第一存储器内的数据的虚拟拷贝。
CNB038105756A 2002-05-10 2003-05-09 用于创建虚拟数据拷贝的方法和系统 Expired - Lifetime CN100440155C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/143,059 2002-05-10
US10/143,059 US6785789B1 (en) 2002-05-10 2002-05-10 Method and apparatus for creating a virtual data copy

Publications (2)

Publication Number Publication Date
CN1653427A CN1653427A (zh) 2005-08-10
CN100440155C true CN100440155C (zh) 2008-12-03

Family

ID=29418441

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038105756A Expired - Lifetime CN100440155C (zh) 2002-05-10 2003-05-09 用于创建虚拟数据拷贝的方法和系统

Country Status (7)

Country Link
US (2) US6785789B1 (zh)
EP (1) EP1504346B1 (zh)
JP (1) JP4422016B2 (zh)
CN (1) CN100440155C (zh)
AU (1) AU2003228971A1 (zh)
CA (1) CA2487244C (zh)
WO (1) WO2003096157A2 (zh)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090259816A1 (en) * 2001-12-26 2009-10-15 Cisco Technology, Inc. Techniques for Improving Mirroring Operations Implemented In Storage Area Networks and Network Based Virtualization
US20070094466A1 (en) * 2001-12-26 2007-04-26 Cisco Technology, Inc., A Corporation Of California Techniques for improving mirroring operations implemented in storage area networks and network based virtualization
US9009427B2 (en) 2001-12-26 2015-04-14 Cisco Technology, Inc. Mirroring mechanisms for storage area networks and network based virtualization
US6785789B1 (en) * 2002-05-10 2004-08-31 Veritas Operating Corporation Method and apparatus for creating a virtual data copy
US6938135B1 (en) 2002-10-04 2005-08-30 Veritas Operating Corporation Incremental backup of a data volume
US7412433B2 (en) * 2002-11-19 2008-08-12 International Business Machines Corporation Hierarchical storage management using dynamic tables of contents and sets of tables of contents
US6907507B1 (en) * 2002-12-19 2005-06-14 Veritas Operating Corporation Tracking in-progress writes through use of multi-column bitmaps
US6880053B2 (en) * 2002-12-19 2005-04-12 Veritas Operating Corporation Instant refresh of a data volume copy
US6978354B1 (en) 2002-12-20 2005-12-20 Veritas Operating Corporation Method for creating a virtual data copy of a volume being restored
US6910111B1 (en) 2002-12-20 2005-06-21 Veritas Operating Corporation Volume restoration using an accumulator map
US6996687B1 (en) 2002-12-20 2006-02-07 Veritas Operating Corporation Method of optimizing the space and improving the write performance of volumes with multiple virtual copies
US7058773B1 (en) * 2003-01-16 2006-06-06 Cisco Technology, Inc. System and method for managing data in a distributed system
US20040163082A1 (en) * 2003-02-13 2004-08-19 Marc Tremblay Commit instruction to support transactional program execution
US7089374B2 (en) * 2003-02-13 2006-08-08 Sun Microsystems, Inc. Selectively unmarking load-marked cache lines during transactional program execution
US7269693B2 (en) 2003-02-13 2007-09-11 Sun Microsystems, Inc. Selectively monitoring stores to support transactional program execution
US7418577B2 (en) * 2003-02-13 2008-08-26 Sun Microsystems, Inc. Fail instruction to support transactional program execution
US6938130B2 (en) * 2003-02-13 2005-08-30 Sun Microsystems Inc. Method and apparatus for delaying interfering accesses from other threads during transactional program execution
US7398355B1 (en) 2003-02-13 2008-07-08 Sun Microsystems, Inc. Avoiding locks by transactionally executing critical sections
US7269694B2 (en) 2003-02-13 2007-09-11 Sun Microsystems, Inc. Selectively monitoring loads to support transactional program execution
US7269717B2 (en) * 2003-02-13 2007-09-11 Sun Microsystems, Inc. Method for reducing lock manipulation overhead during access to critical code sections
JP4283576B2 (ja) * 2003-03-27 2009-06-24 株式会社日立製作所 トランザクション同期方法、データベースシステム及びデータベース装置
US7103737B1 (en) 2003-07-01 2006-09-05 Veritas Operating Corporation Flexible hierarchy of relationships and operations in data volumes
US7664793B1 (en) 2003-07-01 2010-02-16 Symantec Operating Corporation Transforming unrelated data volumes into related data volumes
US20050010731A1 (en) * 2003-07-08 2005-01-13 Zalewski Stephen H. Method and apparatus for protecting data against any category of disruptions
US7580959B2 (en) * 2004-06-14 2009-08-25 International Business Machines Corporation Apparatus, system, and method for providing efficient disaster recovery storage of data using differencing
US7484051B2 (en) * 2004-06-14 2009-01-27 International Business Machines Corporation Apparatus, system and method for reliably updating a data group in a read-before-write data replication environment using a comparison file
US7313724B1 (en) 2004-07-01 2007-12-25 Symantec Operating Corporation Method and apparatus for synchronizing redundant data with a volume
US7409512B1 (en) 2004-07-01 2008-08-05 Symantec Operating Corporation Method and apparatus for maintaining information that indicates valid regions of a working volume and using that information to delay volume initialization
JP2006164162A (ja) * 2004-12-10 2006-06-22 Fujitsu Ltd コピー制御装置および方法
US7809691B1 (en) 2005-02-22 2010-10-05 Symantec Operating Corporation System and method of applying incremental changes prior to initialization of a point-in-time copy
US7243841B1 (en) * 2005-03-01 2007-07-17 Ba-Bing! Llc Enterprise polling system for electronic cash registers
US7930695B2 (en) * 2006-04-06 2011-04-19 Oracle America, Inc. Method and apparatus for synchronizing threads on a processor that supports transactional memory
JP4893214B2 (ja) * 2006-10-06 2012-03-07 富士通株式会社 記憶制御装置、記憶制御方法および記憶制御プログラム
US7480184B2 (en) 2007-01-07 2009-01-20 International Business Machines Corporation Maximum likelihood statistical method of operations for multi-bit semiconductor memory
US8151139B1 (en) 2009-03-27 2012-04-03 Symantec Corporation Preventing data loss from restore overwrites
US8219528B1 (en) 2009-03-31 2012-07-10 Symantec Corporation Method and apparatus for simultaneous comparison of multiple backup sets maintained in a computer system
US9934108B2 (en) * 2010-10-27 2018-04-03 Veritas Technologies Llc System and method for optimizing mirror creation
CN102065104A (zh) * 2011-01-10 2011-05-18 深信服网络科技(深圳)有限公司 一种异地文件访问方法、装置及系统
US9268596B2 (en) 2012-02-02 2016-02-23 Intel Corparation Instruction and logic to test transactional execution status
US10078856B2 (en) 2016-05-09 2018-09-18 Shadecraft, Inc. Mobile computing device control of shading object, intelligent umbrella and intelligent shading charging system
GB2527828A (en) 2014-07-03 2016-01-06 Ibm Copy-on-read process in disaster recovery
US10327521B2 (en) 2015-05-22 2019-06-25 Armen Sevada Gharabegian Intelligent shading objects
US10455395B2 (en) 2016-05-09 2019-10-22 Armen Sevada Gharabegian Shading object, intelligent umbrella and intelligent shading charging security system and method of operation
US10159316B2 (en) 2016-05-09 2018-12-25 Shadecraft, Inc. Intelligent shading charging systems
US9949540B2 (en) 2016-05-09 2018-04-24 Shadecraft, Inc. Automated intelligent shading objects and computer-readable instructions for interfacing with, communicating with and controlling a shading object
US10250817B2 (en) 2016-05-09 2019-04-02 Armen Sevada Gharabegian Shading object, intelligent umbrella and intelligent shading charging system integrated camera and method of operation
US10912357B2 (en) 2016-05-09 2021-02-09 Shadecraft, LLC Remote control of shading object and/or intelligent umbrella
US10349493B2 (en) 2017-07-07 2019-07-09 Shadecraft, Inc. Artificial intelligence (AI) computing device with one or more lighting elements
US10585756B2 (en) 2017-08-07 2020-03-10 International Business Machines Corporation Point-in-time copy on a remote system
US10795776B2 (en) * 2017-11-06 2020-10-06 International Business Machines Corporation Multiple point-in-time copies on a remote system
US10554436B2 (en) 2017-11-19 2020-02-04 Shadecraft, Inc. Intelligent umbrella and/or robotic shading system with ultra-low energy transceivers
US10519688B2 (en) 2018-01-06 2019-12-31 Shadecraft, Inc. Apparatus and method for identifying operational status of umbrella, parasol or shading system utilizing lighting elements
CN111176579B (zh) * 2019-12-30 2023-05-30 航天信息股份有限公司 使用norflash模拟eeprom的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5574874A (en) * 1992-11-03 1996-11-12 Tolsys Limited Method for implementing a checkpoint between pairs of memory locations using two indicators to indicate the status of each associated pair of memory locations
US5574847A (en) * 1993-09-29 1996-11-12 Evans & Sutherland Computer Corporation Computer graphics parallel system with temporal priority
US6061770A (en) * 1997-11-04 2000-05-09 Adaptec, Inc. System and method for real-time data backup using snapshot copying with selective compaction of backup data
US6341341B1 (en) * 1999-12-16 2002-01-22 Adaptec, Inc. System and method for disk control with snapshot feature including read-write snapshot half

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4096567A (en) * 1976-08-13 1978-06-20 Millard William H Information storage facility with multiple level processors
JPH0743676B2 (ja) 1988-03-11 1995-05-15 株式会社日立製作所 バツクアツプデータダンプ制御方法及び装置
US5146221A (en) 1989-01-13 1992-09-08 Stac, Inc. Data compression apparatus and method
US5532694A (en) 1989-01-13 1996-07-02 Stac Electronics, Inc. Data compression apparatus and method using matching string searching and Huffman encoding
US5155824A (en) * 1989-05-15 1992-10-13 Motorola, Inc. System for transferring selected data words between main memory and cache with multiple data words and multiple dirty bits for each address
US5210866A (en) * 1990-09-12 1993-05-11 Storage Technology Corporation Incremental disk backup system for a dynamically mapped data storage subsystem
US5263154A (en) 1992-04-20 1993-11-16 International Business Machines Corporation Method and system for incremental time zero backup copying of data
US5497483A (en) * 1992-09-23 1996-03-05 International Business Machines Corporation Method and system for track transfer control during concurrent copy operations in a data processing storage subsystem
US5610893A (en) * 1994-06-02 1997-03-11 Olympus Optical Co., Ltd. Information recording and reproducing apparatus for copying information from exchangeable master recording medium to a plurality of other exchangeable recording media
US5649152A (en) 1994-10-13 1997-07-15 Vinca Corporation Method and system for providing a static snapshot of data stored on a mass storage system
US5835953A (en) 1994-10-13 1998-11-10 Vinca Corporation Backup system that takes a snapshot of the locations in a mass storage device that has been identified for updating prior to updating
US5907672A (en) 1995-10-04 1999-05-25 Stac, Inc. System for backing up computer disk volumes with error remapping of flawed memory addresses
US5778395A (en) 1995-10-23 1998-07-07 Stac, Inc. System for backing up files from disk volumes on multiple nodes of a computer network
US6073209A (en) * 1997-03-31 2000-06-06 Ark Research Corporation Data storage controller providing multiple hosts with access to multiple storage subsystems
US6141734A (en) * 1998-02-03 2000-10-31 Compaq Computer Corporation Method and apparatus for optimizing the performance of LDxL and STxC interlock instructions in the context of a write invalidate protocol
US6189079B1 (en) * 1998-05-22 2001-02-13 International Business Machines Corporation Data copy between peer-to-peer controllers
US6269431B1 (en) * 1998-08-13 2001-07-31 Emc Corporation Virtual storage and block level direct access of secondary storage for recovery of backup data
US6353878B1 (en) 1998-08-13 2002-03-05 Emc Corporation Remote control of backup media in a secondary storage subsystem through access to a primary storage subsystem
US6564301B1 (en) * 1999-07-06 2003-05-13 Arm Limited Management of caches in a data processing apparatus
US6757797B1 (en) 1999-09-30 2004-06-29 Fujitsu Limited Copying method between logical disks, disk-storage system and its storage medium
US6434681B1 (en) * 1999-12-02 2002-08-13 Emc Corporation Snapshot copy facility for a data storage system permitting continued host read/write access
US6460054B1 (en) * 1999-12-16 2002-10-01 Adaptec, Inc. System and method for data storage archive bit update after snapshot backup
DE60039033D1 (de) * 2000-05-25 2008-07-10 Hitachi Ltd Speichersystem zur Bestätigung der Datensynchronisierung während des asynchronen Fernkopierens
EP1249744A1 (de) * 2001-08-23 2002-10-16 Siemens Aktiengesellschaft Verfahren zum Herstellen konsistenter Speicherinhalte in redundanten Systemen
US6785789B1 (en) * 2002-05-10 2004-08-31 Veritas Operating Corporation Method and apparatus for creating a virtual data copy
US6792518B2 (en) * 2002-08-06 2004-09-14 Emc Corporation Data storage system having mata bit maps for indicating whether data blocks are invalid in snapshot copies

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5574874A (en) * 1992-11-03 1996-11-12 Tolsys Limited Method for implementing a checkpoint between pairs of memory locations using two indicators to indicate the status of each associated pair of memory locations
US5574847A (en) * 1993-09-29 1996-11-12 Evans & Sutherland Computer Corporation Computer graphics parallel system with temporal priority
US6061770A (en) * 1997-11-04 2000-05-09 Adaptec, Inc. System and method for real-time data backup using snapshot copying with selective compaction of backup data
US6341341B1 (en) * 1999-12-16 2002-01-22 Adaptec, Inc. System and method for disk control with snapshot feature including read-write snapshot half

Also Published As

Publication number Publication date
CA2487244A1 (en) 2003-11-20
JP4422016B2 (ja) 2010-02-24
US6785789B1 (en) 2004-08-31
CA2487244C (en) 2014-12-02
US20040186970A1 (en) 2004-09-23
EP1504346A2 (en) 2005-02-09
AU2003228971A8 (en) 2003-11-11
JP2005525633A (ja) 2005-08-25
EP1504346B1 (en) 2014-07-02
CN1653427A (zh) 2005-08-10
WO2003096157A3 (en) 2004-10-28
AU2003228971A1 (en) 2003-11-11
US7310714B2 (en) 2007-12-18
WO2003096157A2 (en) 2003-11-20

Similar Documents

Publication Publication Date Title
CN100440155C (zh) 用于创建虚拟数据拷贝的方法和系统
KR100643179B1 (ko) 주 시스템 및 백업 시스템 간의 데이터 복원 시스템 및 그 방법
US7987158B2 (en) Method, system and article of manufacture for metadata replication and restoration
US8694700B1 (en) Using I/O track information for continuous push with splitter for storage device
CA2933790C (en) Apparatus and method for creating a real time database replica
US8214612B1 (en) Ensuring consistency of replicated volumes
US7577788B2 (en) Disk array apparatus and disk array apparatus control method
US7383293B2 (en) Database backup system using data and user-defined routines replicators for maintaining a copy of database on a secondary server
US5682513A (en) Cache queue entry linking for DASD record updates
US6701455B1 (en) Remote copy system with data integrity
US7743227B1 (en) Volume restoration using an accumulator map
EP1387269A1 (en) Backup system and method of generating a checkpoint for a database
KR100280221B1 (ko) 데이터 베이스에 있어서의 메모리 공간의 최적화 방법
US6912631B1 (en) Method and apparatus for restoring a corrupted data volume
US7457830B1 (en) Method and system of replicating data using a recovery data change log
CN101243446A (zh) 从数据库镜像进行在线页还原
US8010758B1 (en) System and method for performing secondary site synchronization based on a single change map
US20040225914A1 (en) Method, apparatus and program storage device for allowing continuous availability of data during volume set failures in a mirrored environment
US9424261B2 (en) Techniques to take clean database file snapshot in an online database
US6516394B1 (en) System and method for management of storage devices using labels
JPH1153239A (ja) データベースのロールバック処理方法及び前記ロールバック処理方法の手順を記録した記録媒体
JP2019168797A (ja) ストレージシステム、制御方法、及びプログラム
JPH04127242A (ja) パリティデータによるボリュームの自動修正方式

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
C56 Change in the name or address of the patentee

Owner name: REVIVIO INC.

Free format text: FORMER NAME: VERITAS SOFTWARE CORP.

CP01 Change in the name or title of a patent holder

Address after: California, USA

Patentee after: REVIVIO, Inc.

Address before: California, USA

Patentee before: VERITAS OPERATING Corp.

CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20081203