CN102483711A - 对复制顺序访问存储组件进行同步 - Google Patents
对复制顺序访问存储组件进行同步 Download PDFInfo
- Publication number
- CN102483711A CN102483711A CN201080034872XA CN201080034872A CN102483711A CN 102483711 A CN102483711 A CN 102483711A CN 201080034872X A CN201080034872X A CN 201080034872XA CN 201080034872 A CN201080034872 A CN 201080034872A CN 102483711 A CN102483711 A CN 102483711A
- Authority
- CN
- China
- Prior art keywords
- rst
- subclauses
- clauses
- source instance
- copy instances
- 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.)
- Granted
Links
- 238000003860 storage Methods 0.000 title claims abstract description 36
- 230000010076 replication Effects 0.000 claims abstract description 61
- 238000000034 method Methods 0.000 claims description 86
- 230000001360 synchronised effect Effects 0.000 claims description 71
- 238000004590 computer program Methods 0.000 claims description 34
- 238000004364 calculation method Methods 0.000 claims description 19
- 238000012546 transfer Methods 0.000 claims description 18
- 230000000295 complement effect Effects 0.000 claims 3
- 230000008569 process Effects 0.000 description 28
- 230000006870 function Effects 0.000 description 12
- 230000007246 mechanism Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 238000013500 data storage Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 239000000835 fiber Substances 0.000 description 4
- 230000002349 favourable effect Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 239000013307 optical fiber Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000007430 reference method Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1456—Hardware arrangements for backup
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
Abstract
提供了用于通过处理器装置对在计算环境中的顺序访问存储组件的源实例和复制实例进行同步的各种实施方式。为源实例配置复制同步表(RST)。RST适合于记录对应用在源实例上的截尾操作和擦除操作的至少一个的压缩信息。使用压缩信息更新在源组件处的源实例的RST。将已更新的RST从源实例传输至复制实例。基于源实例的RST以及复制实例的RST,确定表示在源组件上的最新近位置的数据,从最新近位置处开始的数据应当传输至复制组件以实现完全同步。
Description
申请相关的交叉引用
本申请涉及同此同时提交的代理人案号为TUC9-2009-0047-US1的名称为“REPLICATION OF DEDUPLICATED DATA”的美国申请12/539,109,以及涉及同此同时提交的代理人案号为TUC9-2009-0045-US1的名称为“DEDUPLICATED DATA PROCESSING RATECONTROL”的美国申请12/539,085,在此引用这两者作为参考。
技术领域
本发明总体上涉及计算机,并且更具体涉及用于对计算环境中的复制顺序访问存储组件进行同步的设备、方法以及计算机程序产品实施例。
背景技术
顺序访问存储组件存在于多种计算环境中。典型的顺序访问存储组件是经由磁带驱动器使用的磁带盒。磁带库中可以包含多个磁带驱动器、以及用于保持磁带盒的多个插槽、用于标识磁带盒的条形码读取器、以及用于将磁带盒载入到磁带驱动器和插槽的自动化方法(也即机械手)。最近,进一步提出了虚拟磁带库。这些数据存储系统利用存储组件(通常为直接访问存储设备,诸如盘阵列)以虚拟地呈现磁带库或磁带驱动器。这两种类型的技术均普遍地用于备份和恢复目的。虚拟磁带库与现有的备份软件以及现有的备份与恢复方法整合,通常使得能够更快地进行备份与恢复操作。
发明内容
计算环境中的顺序访问存储组件由以下特征表征。这些组件存储储可以对应于用户的写入操作的可变大小的数据块。这种组件的数据内的位置根据这些数据块来指定。术语“数据结束”(EOD)在此指代紧随写入在组件上的最后的数据块之后的位置。这些组件支持设置位置(小于或等于EOD),并且继而从该位置向着EOD(也即向着之后块)顺序地读取或写入数据块。当将位置设置为等于EOD并且在该位置中写入新的数据块时,EOD的值递增1。当将位置设置为小于EOD并且在该位置中写入新的数据块时,使先前位于该位置处的数据块以及所有连续的数据块均无效,并且EOD的值被设置为比新写入块的位置大1。
为了增强对数据的可访问性以及容错能力,将顺序访问存储组件的数据复制到经常位于地理上遥远地点处的远程系统可以是有利的。例如,可以将虚拟磁带盒复制到远程虚拟磁带系统。对于该复制,有利的是复制的存储组件与存储组件的源实例保持同步,这允许对其数据内容的修改(而复制实例仅仅支持对数据内容的读取)。同步的组件被定义为包含相同的用户数据。这种同步可以通过重复地传输源实例的全部数据内容来简易地实施。然而,期望的是使该过程更有效,从而使得仅仅传输同步所需的最少(即必需的和足够的)数据,从而减小数据传输的所需带宽,并且减小对源系统和目的地系统的处理需求。如在此讨论的术语“同步所需的最少数据”在以下描述和所要求保护的主题中意在指代与包含在复制实例中的数据相比而言修改的和添加的数据。
鉴于前述内容,假定顺序访问存储组件的源实例以及该组件的多个复制实例,并且假定包含在组件的源实例中的数据的持续修改,对每个复制实例而言,存在以下需求,即对从源实例传输所需的最少数据,以使得复制实例与源实例保持同步进行有效计算的需求。此外,为了支持源实例与复制实例之间以及复制实例自身之间的完全独立,使源实例不知道复制实例的同步状态是有利的,并且使复制实例不知道相互的同步状态也是有利的。也要注意到,假设在任意给定时间存在单个源实例,则源实例可以沿着时间线位于不同的物理系统处(也即复制实例可以变成源实例)。
因此,为了有效地解决这些问题,提供了用于通过处理器装置对计算环境中的顺序访问存储组件的源实例和复制实例进行同步的各种实施例。这些实施例旨在使用于传输用于同步的数据的带宽最小化、降低对源系统和目的地系统的处理需求、确保完全的数据完整性、并且支持源实例与复制实例之间的完全独立,而同时利用了顺序访问存储组件的特定特性。
仅仅为了示例,在一个这种实施例中,为源实例配置了复制同步表(RST)。RST适于记录对应用在源实例上的截尾和擦除操作的至少一个操作的压缩信息。使用压缩信息在源组件处更新源实例的RST。将已更新的RST从源实例传输至复制实例。基于源实例的RST以及复制实例的RST,确定表示在源组件上最新近位置的数据,数据应当从该最新近位置处开始传输至复制组件以实现完全同步。将表示最新近位置的数据从复制实例传输至源实例。基于表示最新近位置的数据,将复制实例与源实例进行同步,而同时利用表示最新近位置的数据更新复制实例的RST以反映同步状态。
提供了附加的示例性系统以及计算机产品实施例并且提供了相关的优点。
附图说明
仅仅为了示例,现在将参照附图描述本发明的实施例,在附图中:
图1图示了其中可以实施本发明的各个方面的示例性计算环境;
图2图示了复制同步表(RST)中条目的示例性结构;
图3图示了用于对顺序访问存储组件的源实例与复制实例进行同步的示例性方法;
图4图示了用于更新源组件处的RST的示例性方法;
图5图示了用于更新源组件处和复制组件处的RST、确定表示最新近位置的数据以及更新在复制组件处的RST以及复制组件与源组件之间的同步的示例性方法;
图6图示了用于计算在源组件上的最新近位置以用于与复制组件进行同步的示例性方法;以及
图7图示了包括在诸如图1中所示的计算环境之类的计算环境中的处理器装置的示例性计算装置。
具体实施方式
现在转到图1,其描述了计算环境中的数据存储系统(例如虚拟磁带系统)的示例性架构10。架构10为本地主机18和20提供存储服务,并且为如所示的远程数据存储系统提供复制数据。与盘存储装置14通信的本地存储系统服务器12通过包括诸如光纤通道交换机16之类的组件的网络连接至本地主机18和20。光纤通道交换机16能够例如执行用于磁带装置的命令(诸如小型计算机系统接口(SCSI)命令)。本地存储系统服务器12通过网络22连接到远程存储系统服务器24。远程服务器24与本地连接的盘存储装置26进行通信,并且经由另一个网络以及网络组件28(诸如光纤通道交换机28)与本地连接的主机30和32进行通信。熟练技术人员将理解,网络22可以包括多种网络拓扑,诸如广域网(WAN)、局域网(LAN)、存储区域网络(SAN)以及其他配置。类似地,交换机16和28可以包括其他类型的网络装置。
如前所述,架构10为本地主机提供本地存储服务,并且为远程数据存储系统提供复制数据(如由使用箭头34的数据复制功能表示)。如将要描述的,本发明的各种实施例以及所要求保护的主题可以在诸如架构10之类的架构上实施。
对于数据复制存在若干主要方法,其可以用于设计并且实施用于诸如架构10所表示的存储系统的复制机制。然而,本领域中当前已知的每种方法并未被特定地设计以有效地利用顺序访问存储组件的特定特征。这种方法之一是使用数学强健的摘要(例如MD和SHA散列函数集)以基于它们的内容来标识数据段。可以通过在源系统和目标系统之间交换要被复制的数据的这些摘要值来实现带宽减小。但是,由于依赖于摘要值而不是真实数据,使用这种方法将使得复制过程处于数据的源拷贝与复制拷贝之间非零概率的不一致的影响之下。此外,该方法将需要针对所有存储的数据计算该强健摘要值并且可能需要对它们进行存储,因此需要相当多的附加处理和存储资源。
盘复制通常基于从源组件至其目标组件的传播写入操作。同步复制意味着在源组件上的写入操作仅当其被所有目标组件应答时,才将其视为完成。该方法确保源组件和目标组件之间的完全一致性。然而,这对性能通常具有重大降低影响。异步复制意味着只要本地操作完成,则源组件上的写入操作就被视为完成。对写入操作的复制在后台异步地执行。该方法提高了性能,然而,一旦源组件故障,则可能丢失大多数新近的写入操作。该方法的重大缺点源于以下事实,即源组件保持对目标组件的同步追踪。源组件接收对于由目标组件接收到的写入操作的应答,并且不能进入到对下一个写入操作的复制,直至已经接收到所有应答为止。因此,一个或多个目标组件的故障可能影响对整组目标组件的进行同步的能力。
在以下所示的、也实施了异步功能的实施例中,目标组件计算它们相对于源组件的同步状态,从而实现了在每个目标组件的同步状态之间的独立。本领域中当前已知的盘复制方法将在源组件上生成(可能由数据块汇集)的所有写入操作复制至目标组件。相比而言,由针对顺序访问存储组件的特定特性而特定地设计的所示实施例所提供的机制支持避免对在源组件上生成的、(在传输之前)在具体目标组件的背景中变得不相关的(可能影响多个数据块的)写入操作的传输。
对事项数据的复制通常基于源系统记录更新并且继而将记录的数据复制至目标系统。目标系统应答接收到复制的更新,从而允许进入到对随后更新的复制。也存在支持经由多个存储系统而不是一个存储系统在数据实体上执行更新的协议。在该类别中的方法通常在数据库系统中使用。然而,在可能是非事项性的顺序访问存储系统的背景中,可能没有更新的记录待复制,因此使得该方法不适用。此外,因为该更新的记录可能通常与大于或者在其他方面不同于应当被复制的数据实体的数据实体相关联,所以可能复制附加的非相关数据块,从而增大网络带宽以及用于复制的存储资源。通常,所有这些方法并非针对顺序访问存储组件而设计。相反地,所示的实施例利用了顺序访问存储组件的特定行为和特性,以利用复制方法的效率,从而减小网络带宽和处理资源需求这两者、确保完全的数据完整性、以及支持源实例和复制实例之间完全的独立性。
所示的实施例提供了一种用于对顺序访问存储组件进行复制和同步的新颖方法,该方法针对顺序访问存储组件的特定特性而特别地设计,从而减小了网络带宽以及用于该组件的复制和同步过程的处理资源这两者,并且因此改进了用于对该组件的复制的现有方法。
贯穿以下描述和所要求保护的主题,描述了与顺序访问存储组件有关的以下术语。“写入操作”意在指代在顺序访问存储组件内写入用户提供的数据块。“截尾操作”意在指代当顺序访问存储组件内的当前位置设置在其EOD之前时所执行的写入操作。截尾操作使得先前位于该位置处的数据块以及所有后续数据块无效。“擦除操作”在顺序访问存储组件内的当前位置设置在其EOD之前时执行,并且其意在指代擦除位于该位置处的数据块以及所有后续数据块。
如将贯穿以下所见,所示的实施例提供了对在此标记为复制同步表(RST)的数据结构的维护,该复制同步表记录了关于对该实例应用的截尾操作和擦除操作的高度压缩信息。对于对复制实例的同步而言,将大小上非常紧凑的源实例的RST传输至复制实例,并且使用基于源实例和复制实例这两者的RST的有效计算,而由复制实例确定用于进行同步所需的最少数据(其是源组件上的、数据传输从其开始的位置)。该高度压缩信息继而被传输回至源实例,该源实例因此仅将用于其同步所需的最少数据传输至复制实例。在接收到该数据后,复制组件与源组件同步,而同时也相应地更新其RST以以反映其新的同步状态。
当复制组件与源组件同步而复制组件的RST被更新时,如将进一步描述的(例如以下图4中的步骤94和步骤96),检验至RST的附加条目的位置字段,以确定该位置字段值是否小于或等于RST中最新近现存条目的位置字段值。如果结果为真,则移除RST中其位置字段值大于或等于附加条目的位置字段值的那些所有现存条目(除了附加条目自身)。在源组件和复制组件之间的同步过程完成之后,源RST和复制RST条目是相同的。
由所示的实施例的机制提供的优点包括以下。作为特定地设计以利用顺序访问存储组件的特定特性的首要问题,所示的实施例的机制有效地最小化用于顺序访问存储组件的复制和同步的网络带宽以及对源系统和目标系统两者上的处理资源。由所示的实施例提供的机制对于其自身操作要求非常少的存储、处理和网络资源。各个实施例确保了顺序访问存储组件的源实例和复制实例之间的完全的数据完整性,并且支持每个复制组件的同步状态之间的完全独立,这是因为复制组件按照异步方式计算它们相对于源组件的同步状态。该机制对在同步过程期间的故障能有效地容忍。当在故障之后重启时,同步将从故障点开始。该机制通过执行复制过程的再同步而允许有效地处理在源组件的复制期间源组件上的数据修改。最后,该机制适于任何类型和实现方式的顺序访问存储组件。
顺序访问存储组件的每个实例(即源实例与复制实例)维护其当前数据结束(EOD)位置,并且维护对应用在该实例上的截尾操作和擦除操作的信息进行记录的复制同步表(RST)。在一个实施例中,RST中的条目由以下字段构成。首先,操作标识值唯一地标识在特定存储组件的背景中的操作(不存在具有相同标识值的两个操作)。对于新操作,可以通过递增与存储组件相关联的标识变量而生成该标识值。为决不再重复利用的这些标识值以及它们的相关联变量分配足够的位以在给定操作的预定速率和时间长度的情况下适应于连续操作。
附加字段被配置为针对反映组件内的位置的值或位置值。位置根据包含在组件内的数据块来指定,该数据块通常通过用户写入操作生成并且与用户写入操作相关联。条目内的该数据指定了组件内截尾或擦除操作所应用的位置(还无效或者擦除该位置随后的数据块)。最终,配置唯一的系统标识值字段。利用该数据标识的系统是包含了相关存储组件的系统。由于组件可能在系统之间移植这一事实,在某些实施例中,唯一的系统标识可能是必需的。
现参照图2,其描述了在RST中的条目的示例性数据结构50的方块图。该数据结构包括针对操作id值的操作标识(id)值字段52、针对位置值的设备字段内的位置54、以及针对系统id值的唯一系统id值字段56。
以下,图3描述了用于通过处理器装置对在计算环境中的顺序访问存储组件的源实例和复制实例进行同步的示例性方法60。如本领域技术人员将理解的,方法60中的各个步骤可以按照不同方式实施以适应于特定应用。此外,所描述的方法可以由各种机制实施,诸如可以对存储环境进行操作的或以其他方式与存储环境相关联的硬件、软件、固件或其组合。例如,该方法可以部分或全部实施为计算机程序产品,该计算机程序产品包括其中存储有计算机可读程序代码部分的计算机可读存储介质。计算机可读存储介质可以包括盘驱动器、闪存、数字多用途盘(DVD)、压缩盘(CD)、以及其他类型的存储介质。
方法60开始(步骤62)于为在源存储组件处的源实例配置RST(步骤64)。在接收到被确定为是如将进一步描述的擦除和/或截尾操作的操作后,通过将新的条目添加至RST来更新源组件处的源实例的RST(步骤66)。以下将进一步详细描述该过程。作为下一个步骤,将经更新的RST从源实例传输至复制实例(步骤68)。基于源实例和复制实例的RST,确定源组件上最新近位置,数据应当从该最新近位置处开始传输至复制组件以实现完全同步(步骤70)。以下也将进一步详细描述该确定步骤。继而,将表示该最新近位置的数据从复制实例传输至源实例(步骤72)。基于该数据,对复制实例与源实例进行同步,而使用该数据更新复制实例的RST以反映同步状态(步骤74)。方法60继而结束(步骤76)。
具体地参照方法60中的步骤66,现在更具体描述用于更新在源组件处的RST的示例性方法。作为首要问题,针对每个截尾操作和擦除操作将条目附加至表。如果写入操作应用到的位置小于EOD,则写入操作被确定为截尾操作。非空擦除操作应用到的位置也必须小于EOD。在对源组件应用截尾操作或擦除操作之后,生成条目。操作所应用至的组件内的位置被设定为操作在条目中的位置。包含了源组件的系统的该系统id值被设定为操作在条目中的系统id。将所生成的条目附加至源实例的复制同步表。
如果附加条目的位置字段值小于或等于表中现存的最新近条目的位置字段值,则从表中移除位置字段值大于或等于附加条目的位置字段值的那些所有现存条目(除了附加条目)。因为由附加条目表示的操作和用户数据替代了移除的条目代表的操作和用户数据,所以以上是可能的。
现在参照图4,其描绘了一种用于更新源组件上的源实例的RST的示例性方法80。方法80开始(步骤82)于考虑源组件上的新操作(例如读取、写入、截尾操作)的特性,考虑到EOD(方块84和86)而进至判定88,判定88判定新操作是否是写或擦除操作以及所应用到的位置是否小于EOD。如果不是这种情况,则方法80结束(步骤98)。然而,如果是这种情况,则方法80进至步骤90,在步骤90处生成新的RST条目。尽管没有在所示的判定88中特定标记,此外还需要注意的是,当复制实例将第一写入命令作为新的源实例接收时(即使第一写入命令位于EOD处),将生成RST条目。
继而,将生成的RST条目附加至RST(步骤92)。作为下一步,判定94询问附加条目的位置字段值是否小于或等于RST中最新近现存条目的位置字段值。如果不是这种情况,则方法80结束(再次,步骤98)。如果是这种情况,则移除位置字段值大于或等于附加条目的位置字段值的那些所有现存条目(除了附加条目自身之外)(步骤96)。方法80继而结束(再次,步骤98)。
返回参照方法60的步骤68-74(再次,图3),现在将在以下更详细描述各个过程。可以通过复制组件或者通过源组件来启动源组件和复制组件之间的同步(例如基于所应用的操作的量)。源组件将其复制同步表传输至应当被同步的每个复制组件。作为下一步骤,复制组件接收源组件的复制同步表,并且执行以下计算以确定源组件上的最新近位置,数据应当从该最新近位置处开始传输至目的组件以便实现完全同步。
具体地参照该计算,作为首要问题,在源组件的复制同步表中定位标记为Es的条目,该条目在该表中的那些具有与复制组件的复制同步表中相同的条目(即,其字段值相同)的所有条目之中具有最大操作id值。将复制组件的复制同步表中的与Es相同的条目记做Er。注意,直到Es和Er之前,源组件和复制组件的RST的内容是相同的。将相应地紧随在源组件和复制组件的RST中的Es和Er之后的条目记做Es’和Er’。如果Es和Es’存在,则源组件上数据应当从其开始传输的位置是Es’的位置值、复制组件的EOD的值、以及如果存在的话Er’的位置值之间的最小值。如果Es存在而Es’不存在,则源组件上数据应当从其开始传输的位置是复制组件的EOD的值、以及如果存在的话Er’的位置值之间的最小值。如果Es不存在,则源组件上数据应当从其开始传输的位置是零。
作为下一步骤,将源组件上数据应当从其开始传输的位置传输至源组件。源组件接收该位置、定位该位置、从该位置读取数据以及可能的元数据(如果存在)并且将数据/元数据传输至复制组件。可以并行地完成源组件上数据的读取和传输(在从复制组件接收的位置处开始),从而使得源组件上的多个数据段被并行地读取并且传输至复制组件。如果在该过程期间源组件的数据被修改,则源组件可以重启用于同步的程序。
复制组件接收由源组件传输的数据(如果存在的话则包括元数据)并且如下更新复制组件的数据(再次包括任何存在的元数据)和复制同步表。作为首要问题,接收之后(数据可能按照非顺序方式接收)将接收到的数据写入永久存储设备。如果存在元数据,则尽管元数据可能按照非顺序方式接收,在元数据的关联的数据段已写入永久存储设备之后,仍然将元数据顺序地写入永久存储设备。当数据的顺序段写入永久存储设备时,EOD值相应地增长。一旦EOD达到或者超过源组件的复制同步表中的条目的位置(该位置在复制组件的复制同步表中尚未存在(因为EOD顺序增长,所以该位置必须是在源组件表中的这些条目的最早条目)),则将该条目添加至复制组件的复制同步表,从而使得该条目的所有字段值与那些出现在源组件的复制同步表中的字段值相同。
如果附加条目的位置字段值小于或等于表中最新近现存条目的位置字段值,则从表中移除位置字段值大于或等于附加条目的位置字段值的那些所有现存条目(除了附加条目)。因为由附加条目表示的操作和用户数据替换了移除的条目表示的操作和用户数据,所以这是可能的。完成该过程之后,源组件和复制组件这两者的复制同步表的内容均相同,并且它们的EOD值也相同。可以使用诸如CRC之类的数学摘要来验证所接收到的数据和元数据(如果存在的话)。该过程对在同步过程期间的故障是容错的。当故障之后重启时,同步将从故障点开始。
现在转至图5,在方块图100中图示了分别根据前述描述的源存储组件102和复制存储组件104之间的同步的过程。如过程106中所示,将经更新的源复制同步表从源组件102传输至复制组件104。在过程108处,复制组件104确定源组件102上数据应当从其开始传输至复制组件104以便实现完全同步的最新近位置。表示该最新近位置的压缩数据继而被传输回到源组件102,如过程110中所示。如过程112中所示,定位数据并且从最新近位置读取数据。作为下一步,如过程114中所示,从同步位置处开始的数据被传输至复制组件104。当复制组件104与源组件102同步时,复制组件104的数据被更新,而此时复制组件104的RST被更新以反映新的同步状态,如过程116中所示。
现在转至图6,其图示了用于计算用于同步目的的源组件上最新近位置的示例性方法120的流程图。方法120开始(步骤122)于在步骤128考虑复制装置124的RST信息以及源装置126的RST信息,该考虑在源组件的复制同步表中定位标记为Es的条目,该条目Es在表中的那些具有与复制组件的复制同步表中相同的条目(也即字段值是相同的)的所有条目之中具有最大操作id值。Er被指定为在复制组件的复制同步表中与Es相同的条目。此外,注意,直至Es和Er之前,源组件和复制组件两者的RST的内容是相同的。Es’和Er’被指定为相应地紧随在源组件和复制组件的RST中的Es和Er之后的条目。
如果Es和Es’存在(判定130和134),则继而将源组件上数据应当从其开始传输的位置(标记为“P”)计算作为Es’的位置值、复制组件的EOD的值以及如果存在的话Er’的位置值之间的最小值(判定142,步骤146)。如果Er’不存在,则将P计算作为Es’的位置值、以及复制组件的EOD的值之间的最小值(判定142,步骤144)。如果Es存在而Es’不存在(判定130,判定134),则将P计算作为复制组件的EOD值、以及如果存在的话Er’的位置值之间的最小值(判定136,步骤140)。如果Er’不存在,则将P计算作为复制组件的EOD值(判定136,步骤138)。如果Es不存在(判定130),则将P计算为零(步骤132)。作为下一步骤,将源组件上数据应当从其开始传输的位置传输至源组件(步骤148)。方法120随后结束(步骤150)。
图7在下文中提供了在图1描绘的计算机环境10的一部分的示例,其中可以实施前述实施例的机制。但是,应当理解,图7仅为示例性的并且并非意在陈述或暗示对于各种实施例的示例性方面可以在其中实施的特定架构的限制。可以不脱离以下描述和所要求保护的主题的范围和精神实质的情况下而对于图7中所示的架构做出多种修改。
图7图示了可以用于实施本发明的实施例的示例性计算机环境的一部分200。计算机202包括处理器204以及存储器206,存储器206诸如随机访问存储器(RAM)。在一个实施例中,存储系统服务器12(图1)可以包括与计算机202中的所示的组件相同的组件。计算机202可操作地耦合至显示器219,显示器219在图形用户界面218上向用户呈现诸如窗口之类的图像。计算机202可以耦合至其他装置,诸如键盘216、鼠标装置220、打印机228等等。当然,本领域技术人员将认识到,计算机202可以使用上述组件的任意组合、或任意数目的不同组件、外设以及其他装置。
通常,计算机202在存储在存储器206中的操作系统(OS)208(例如z/OS、OS/2、LINUX、UNIX、WINDOWS、MAC OS)的控制下工作,并且与用户交互以接收输入和命令,并且例如通过图形用户界面(GUI)模块232呈现结果。在本发明一个实施例中,OS 208促进了备份机制。尽管GUI模块232被描绘为分立的模块,但是执行GUI功能的指令可以驻留或分布在操作系统208、计算机程序/应用程序210,或使用专用存储器和处理器来实施。OS 208包括同步模块240,同步模块240可以适用于执行前述示例性方法中的各种过程和机制。
计算机202也实现了编译器212,编译器212允许将按照例如COBOL、PL/1、C、C++、JAVA、ADA、BASIC、VISUAL BASIC或其他任何编程语言的编程语言编写的应用程序210转换为处理器204可读的代码。完成之后,计算机程序210使用通过使用编译器212生成的关系和逻辑来访问并且操作存储在计算机202的存储器206中的数据。
在如前所述的复制同步表(RST)242中的多个条目214存储在存储器206上。计算机202也可选地包括外部数据通信装置230,诸如调制解调器、卫星链路、以太网卡、无线链路或用于例如经由因特网或其他网络与其他计算机通信的其他装置。
数据存储装置222是直接访问存储装置(DASD)222,其包括一个或多个保持多个数据集的主卷(primary volume)。DASD 222可以包括多个存储介质,诸如硬盘驱动器(HDD)、磁带等等。数据存储装置236也可以包括类似于装置222的多个存储介质。装置236可以被指定作为用于保持主要存储在装置222上的多个数据集的备份版本的备份装置236。如本领域技术人员将理解的,装置222和装置236无需位于相同的机器上。装置222可以位于地理上不同的区域处,并且通过诸如以太网之类的网络链路连接。装置222和装置236可以包括一个或多个卷,针对每个卷具有相应的卷目录表(VTOC)。
在一个实施例中,实施操作系统208、计算机程序210、编译器212以及RST242中的条目214的指令有形地体现在计算机可读介质中,计算机可读介质例如数据存储装置222,其可以包括一个或多个固定或可移动的数据存储装置,诸如zip驱动器、盘224、硬盘驱动器、DVD/CD-ROM、数字磁带等等,它们通常表示为盘224。此外,操作系统208和计算机程序210包括当由计算机202读取并且执行时、使得计算机202执行用于实施和/或使用本发明所必须的步骤的指令。计算机程序210和/或操作系统208指令也可以有形地体现在存储器206中和/或通过数据通信装置230传输或访问。如此,如可以在此使用的术语“制品”、“程序存储装置”以及“计算机程序产品”意在涵盖从任何计算机可读装置或介质可访问的和/或可操作的计算机程序。
本发明的实施例可以包括一个或多个相关联的软件应用程序210,该软件应用程序210包括例如管理包括计算装置的网络的分布式计算机系统的功能,计算装置的网络诸如存储区域网络(SAN)。因此,处理器204可以包括存储管理处理器(SMP)。程序210可以在单个计算机202中运行,或者作为包括计算装置的网络的分布式计算机系统的一部分而运行。网络可以涵盖经由局域网和/或因特网连接(可以是公用的或安全的,例如通过虚拟专用网络(VPN)连接)、或者经由光纤通道SAN或本领域技术人员将知晓的其他已知类型网络连接的一个或多个计算机。(需要注意的是,光纤通道SAN通常仅用于计算机与存储系统通信,而不是用于计算机之间相互通信。)
如本领域技术人员将知晓的,本发明的各个方面可以体现为系统、方法或计算机程序产品。因此,本发明的各个方面可以采取完全硬件实施例的形式、完全软件实施例(包括固件、驻留软件、微代码等等)的形式或组合了软件方面与硬件方面的实施例的形式,这些通常可以在此称作“电路”、“模块”或“系统”。此外,本发明的各个方面可以采取体现在其上体现有计算机可读程序代码的一个或多个计算机可读介质中的计算机程序产品的形式。
可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电子的、磁的、光学的、电磁的、红外的或半导体系统、设备或装置、或前述的任何合适的组合。计算机可读存储介质的更具体示例(非穷举列表)将包括以下:具有一个或多个引线的电连接、便携式计算机软盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式压缩盘只读存储器(CD-ROM)、光学存储装置、磁性存储装置、或前述的任意合适的组合。在本文档的上下文中,计算机可读存储介质可以是能够包含或存储供指令执行系统、设备或装置所用的或与其结合使用的程序的有形介质。
体现在计算机可读介质上的程序代码可以使用任何适当的介质来传输,包括但不限于无线、有线、光纤电缆、RF等等、或前述的任意合适的组合。用于执行本发明的各个方面的操作的计算机程序代码可以用一种或多种编程语言的任意组合来编写,这些编程语言包括诸如Java、Smalltalk、C++等面向对象的编程语言以及诸如“C”编程语言或类似编程语言的传统过程编程语言。程序代码可以完全在用户的计算机上执行,作为独立软件包部分地在用户计算机上执行,部分地在用户计算机上并且部分地在远程计算机上或者完全在远程计算机或服务器上执行。在后一种情况中,远程计算机可以通过任何类型的网络连接至用户的计算机,这些网络包括局域网(LAN)或广域网(WAN),或者可以连接至外部计算机(例如通过使用互联网服务提供商的互联网)。
参照根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图图示和/或方块图描述了本发明的各个方面。应当理解,流程图图示和/或方块图的每个块、以及流程图图示和/或方块图中的块的组合可以由计算机程序指令实施。这些计算机程序指令可以被提供至通用计算机、专用计算机、或其他可编程数据处理设备的处理器以产生机器,从而使得经由计算机或其他可编程数据处理设备的处理器执行的指令生成用于实施在流程图和/或方块图的块中所指定的功能/动作的装置。
这些计算机程序指令也可以存储在能够引导计算机、其他可编程数据处理设备、或其他装置以特定方式实现功能的计算机可读介质中,从而使得存储在计算机可读介质中的指令产生包括实施在流程图和/或方块图的块中所指定的功能/动作的指令的制品。计算机程序指令也可以载入到计算机、其他可编程数据处理设备、或其他装置中,以使得在计算机、其他可编程设备或其他装置上执行一系列操作步骤,以便产生计算机实施的步骤,从而使得在计算机或其他可编程设备上执行的指令提供用于实施在流程图和/或方块图方块中所指定的功能/动作的过程。
以上附图中的流程图和方块图图示了根据本发明各个实施例的系统、方法和计算机程序产品的可能的实现方式的架构、功能以及操作。在这点上,流程图或方块图中每个方块可以代表包括一个或多个用于实施指定逻辑功能的可执行指令的模块、片段或代码的一部分。注意,在某些备选实现方式中,块中所示的功能可以按照与图中所示不同的顺序发生。例如,取决于所涉及的功能,被示出为连续的两个块实际上可以大致同时执行,或者有时以相反顺序执行。还将注意,方块图和/或流程图图示的每个块以及方块图和/或流程图图示的块的组合可以由执行指定功能或动作的专用基于硬件的系统实施,或者可以由专用硬件与计算机指令的结合来实施。
尽管已经详细说明了本发明的一个或多个实施例,但是本领域技术人员应理解,可以在不脱离如以下权利要求所述的本发明的范围的情况下对这些实施例做出修改和适应。
Claims (42)
1.一种用于通过处理器装置对在计算环境中的顺序访问存储组件的源实例和复制实例进行同步的方法,包括:
为所述源实例配置复制同步表(RST),其中所述RST适用于记录对应用在所述源实例上的截尾操作和擦除操作的至少一个的压缩信息;
使用所述压缩信息更新在源组件处的所述源实例的所述RST;以及
基于所述源实例的所述RST以及所述复制实例的所述RST,确定表示在所述源组件上的最新近位置的数据,从所述最新近位置处开始的数据应当传输至复制组件以实现完全同步。
2.根据权利要求1所述的方法,进一步包括,基于表示所述最新近位置的所述数据,对所述复制实例与所述源实例进行同步,而同时使用表示所述最新近位置的所述数据来更新所述复制实例的所述RST以反映同步状态。
3.根据权利要求2所述的方法,进一步包括:
在使用所述压缩信息更新在所述源组件处的所述源实例的所述RST之后,将经更新的RST从所述源实例传输至所述复制实例;以及
在确定了表示在所述源组件上的所述最新近位置的所述数据之后,将表示所述最新近位置的所述数据从所述复制实例传输至所述源实例。
4.根据前述权利要求的任一项所述的方法,其中,配置所述源实例的所述RST包括,维护针对所述源实例与所述复制实例的每个的当前数据结束(EOD)位置。
5.根据前述权利要求的任一项所述的方法,其中,为所述源实例配置所述RST包括,配置在所述RST中的条目以包括针对操作标识值、位置值以及唯一系统标识值的每一个的字段。
6.根据前述权利要求的任一项所述的方法,其中,使用所述压缩信息更新在所述源组件处的所述源实例的所述RST包括:
对于所述截尾操作和所述擦除操作的至少一个,生成所述源实例的所述RST的新条目,
如果写入操作应用的位置小于所述源实例的所述当前EOD位置,则确定所述写入操作为所述截尾操作,
将所述新条目附加至所述源实例的所述RST,以及
如果基于所述新条目的第一位置值小于或等于基于最新近现存条目的第二位置值,则移除位置值大于或等于所述第一位置值的所有现存条目。
7.根据权利要求6所述的方法,其中,生成所述新条目进一步包括执行以下步骤的至少一个:
将所述第一位置值设定为在所述新条目中的位置,以及
将所述新条目的生成器的新唯一系统标识值设定为在所述新条目中的系统标识。
8.根据前述权利要求的任一项所述的方法,其中,基于所述源实例的所述RST以及所述复制实例的所述RST,确定表示在所述源组件上的最新近位置的数据,从所述最新近位置处开始的数据应当传输至所述复制组件以实现完全同步,上述步骤包括:
定位在所述源组件处的所述源实例的所述RST中的奇异条目,所述奇异条目在所述RST中所有具有与所述复制组件处的所述复制实例的所述RST中相同条目的那些条目中具有最大操作标识值,
如果在所述源实例的所述RST中存在所述奇异条目以及后续条目的每一个,并且在所述复制实例的所述RST中存在所述奇异条目的相同条目的后续条目,则将所述最新近位置计算为所述源实例的所述RST中的所述后续条目的位置值、所述复制实例的所述当前EOD位置、以及在所述复制实例的所述RST中的所述奇异条目的所述相同条目的所述后续条目的位置值之间的第一最小值。
9.根据权利要求8所述的方法,其中,所述确定进一步包括,如果在所述复制实例的所述相同条目的所述RST中不存在所述后续条目,则将所述最新近位置计算为所述源实例的所述RST中的所述后续条目的所述位置值与所述复制实例的所述当前EOD位置之间的第二最小值。
10.根据权利要求8或9所述的方法,其中,所述确定进一步包括,如果存在所述奇异条目而在所述源实例的所述RST中不存在所述后续条目,并且在所述复制实例的所述RST中存在所述奇异条目的所述相同条目的所述后续条目,则将所述最新近位置计算为所述复制实例的所述当前EOD位置与在所述复制实例的所述RST中所述奇异条目的所述相同条目的所述后续条目的所述位置值之间的第三最小值。
11.根据权利要求10所述的方法,其中,所述确定进一步包括,如果存在所述奇异条目而不存在所述源实例的所述RST中的所述后续条目与所述复制实例的所述RST中的所述奇异条目的所述相同条目的所述后续条目的每个,则将所述最新近位置计算为所述复制实例的所述当前EOD位置。
12.根据权利要求11所述的方法,其中,所述确定进一步包括,如果不存在所述奇异条目,则将所述最新近位置计算为0。
13.根据权利要求4所述的方法,其中,对所述复制实例与所述源实例进行同步,而同时使用表示所述最新近位置的所述数据来更新所述复制实例的所述RST以反映所述同步状态,上述步骤包括执行以下步骤的至少一个:
将表示所述最新近位置的数据写入永久存储位置,以及
增长所述复制实例的所述当前EOD位置。
14.根据权利要求13所述的方法,其中,对所述复制实例与所述源实例进行同步,而同时使用表示所述最新近位置的所述数据来更新所述复制实例的所述RST以反映所述同步状态,上述步骤进一步包括使用数学摘要验证表示所述最新近位置的所述数据。
15.根据权利要求13所述的方法,其中,对所述复制实例与所述源实例进行同步,而同时使用表示所述最新近位置的所述数据来更新所述复制实例的所述RST以反映所述同步状态,上述步骤进一步包括执行以下步骤的至少一个:
如果所述复制实例的所述当前EOD位置超过所述源实例的第一位置值,则将新条目附加至所述复制实例的所述RST,从而使得针对所述复制实例的所述RST的所述新条目的操作标识值、位置值、以及唯一系统标识值的每一个与所述源实例的所述RST的所述新条目相匹配,以及
如果所述源实例的所述第一位置值小于或等于所述第二位置值,则从所述复制实例的所述RST中移除位置值大于或等于所述第一位置值的所有条目。
16.一种用于对计算环境中的顺序访问存储组件的源实例和复制实例进行同步的系统,包括:
处理器,可操作于所述计算环境中,其中所述处理器适用于:
为所述源实例配置复制同步表(RST),其中所述RST适用于记录对应用在所述源实例上的截尾操作和擦除操作的至少一个的压缩信息,
使用所述压缩信息更新在源组件处的所述源实例的所述RST,
将经更新的RST从所述源实例传输至所述复制实例,
基于所述源实例的所述RST以及所述复制实例的所述RST,确定表示在所述源组件上的最新近位置的数据,从所述最新近位置处开始的数据应当传输至所述复制组件以实现完全同步,
将表示所述最新近位置的所述数据从所述复制实例传输至所述源实例,以及
基于表示所述最新近位置的所述数据,对所述复制实例与所述源实例进行同步,而同时使用表示所述最新近位置的所述数据来更新所述复制实例的所述RST以反映同步状态。
17.根据权利要求16所述的系统,其中,所述处理器进一步适用于,根据为所述源实例配置所述RST,针对所述源实例和复制实例的每一个维护当前数据结束(EOD)位置。
18.根据权利要求16或17所述的系统,其中,所述处理器进一步适用于,根据为所述源实例配置所述RST,配置在所述RST中的条目以包括针对操作标识值、位置值、以及唯一系统标识值的每一个的字段。
19.根据权利要求16至18的任一项所述的系统,其中,所述处理器进一步适用于,根据使用所述压缩信息更新所述源组件处的所述源实例的所述RST:
针对所述截尾操作和所述擦除操作的至少一个,生成所述源实例的所述RST的新条目,
如果写入操作应用的位置小于所述源实例的所述当前EOD位置,则确定所述写入操作为所述截尾操作,
将所述新条目附加至所述源实例的所述RST,以及
如果基于所述新条目的第一位置值小于或等于基于最新近现有条目的第二位置值,则移除位置值大于或等于所述第一位置值的所有现有条目。
20.根据权利要求19所述的系统,其中,所述处理器进一步适用于,根据所述生成所述新条目,执行以下步骤的至少一个:
将所述第一位置值设定为所述新条目中的位置,以及
将所述新条目的生成器的新唯一系统标识值设定为所述新条目中的系统标识。
21.根据权利要求16至20的任一项所述的系统,其中,所述处理器进一步适用于,根据所述基于所述源实例的所述RST以及所述复制实例的所述RST,确定表示在所述源组件上的最新近位置的数据,从所述最新近位置处开始的数据应当传输至所述复制组件以实现完全同步:
定位在所述源组件处的所述源实例的所述RST中的奇异条目,所述奇异条目在所述RST中所有具有与所述复制组件处的所述复制实例的所述RST中相同条目的那些条目中具有最大操作标识值,
如果在所述源实例的所述RST中存在所述奇异条目以及后续条目的每一个,并且在所述复制实例的所述RST中存在所述奇异条目的相同条目的后续条目,则将所述最新近位置计算为在所述源实例的所述RST中的所述后续条目的位置值、所述复制实例的所述当前EOD位置、以及在所述复制实例的所述RST中的所述奇异条目的所述相同条目的所述后续条目的位置值之间的第一最小值。
22.根据权利要求21所述的系统,其中,所述处理器进一步适用于,根据所述确定,如果在所述复制实例的所述相同条目的所述RST中不存在所述后续条目,则将所述最新近位置计算为所述源实例的所述RST中的所述后续条目的所述位置值与所述复制实例的所述当前EOD位置之间的第二最小值。
23.根据权利要求21所述的系统,其中,所述处理器进一步适用于,根据所述确定,如果存在所述奇异条目而在所述源实例的所述RST中不存在所述后续条目,并且在所述复制实例的所述RST中存在所述奇异条目的所述相同条目的所述后续条目,则将所述最新近位置计算为所述复制实例的所述当前EOD位置与在所述复制实例的所述RST中所述奇异条目的所述相同条目的所述后续条目的所述位置值之间的第三最小值。
24.根据权利要求22所述的系统,其中,所述处理器进一步适用于,根据所述确定,如果存在所述奇异条目而不存在所述源实例的所述RST中的所述后续条目与所述复制实例的所述RST中的所述奇异条目的所述相同条目的所述后续条目的每个,则将所述最新近位置计算为所述复制实例的所述当前EOD位置。
25.根据权利要求24所述的系统,其中,所述处理器进一步适用于,根据所述确定,如果不存在所述奇异条目,则将所述最新近位置计算为0。
26.根据权利要求20所述的系统,其中,所述处理器进一步适用于,根据所述对所述复制实例与所述源实例进行同步,而同时使用表示所述最新近位置的所述数据来更新所述复制实例的所述RST以反映同步状态,执行以下步骤的至少一个:
将表示所述最新近位置的数据写入永久存储位置,以及
增长所述复制实例的所述当前EOD位置。
27.根据权利要求26所述的系统,其中,所述处理器进一步适用于,根据所述对所述复制实例与所述源实例进行同步,而同时使用表示所述最新近位置的所述数据来更新所述复制实例的所述RST以反映同步状态,使用数学摘要验证表示所述最新近位置的所述数据。
28.根据权利要求26所述的系统,其中,所述处理器进一步适用于,根据所述对所述复制实例与所述源实例进行同步,而同时使用表示所述最新近位置的所述数据来更新所述复制实例的所述RST以反映同步状态,执行以下步骤的至少一个:
如果所述复制实例的所述当前EOD位置超过所述源实例的第一位置值,则将新条目附加至所述复制实例的所述RST,从而使得针对所述复制实例的所述RST的所述新条目的操作标识值、位置值、以及唯一系统标识值的每一个与所述源实例的所述RST的所述新条目相匹配,以及
如果所述源实例的所述第一位置值小于或等于所述第二位置值,则从所述复制实例的所述RST中移除位置值大于或等于所述第一位置值的所有条目。
29.一种用于通过处理器装置对在计算环境中的顺序访问存储组件的源实例和复制实例进行同步的计算机程序产品,所述计算机程序产品包括其上存储有计算机可读程序代码部分的计算机可读介质,所述计算机可读程序代码部分包括:
第一可执行部分,用于为所述源实例配置复制同步表(RST),其中所述RST适用于记录对应用在所述源实例上的截尾操作和擦除操作的至少一个的压缩信息;
第二可执行部分,用于使用所述压缩信息更新在源组件处的所述源实例的所述RST;
第三可执行部分,用于将经更新的RST从所述源实例传输至所述复制实例;
第四可执行部分,用于基于所述源实例的所述RST以及所述复制实例的所述RST,确定表示在所述源组件上的最新近位置的数据,从所述最新近位置处开始的数据应当传输至所述复制组件以实现完全同步;
第五可执行部分,用于将表示所述最新近位置的所述数据从所述复制实例传输至所述源实例;以及
第六可执行部分,用于基于表示所述最新近位置的所述数据,对所述复制实例与所述源实例进行同步,而同时使用表示所述最新近位置的所述数据来更新所述复制实例的所述RST以反映同步状态。
30.根据权利要求29所述的计算机程序产品,进一步包括,第七可执行部分,用于根据所述为所述源实例配置所述RST,针对所述源实例与所述复制实例的每个维护当前数据结束(EOD)位置。
31.根据权利要求30所述的计算机程序产品,进一步包括,第八可执行部分,用于根据所述为所述源实例配置所述RST,配置在所述RST中的条目以包括针对操作标识值、位置值以及唯一系统标识值的每一个的字段。
32.根据权利要求31所述的计算机程序产品,进一步包括,第九可执行部分,用于根据所述使用所述压缩信息更新在所述源组件处的所述源实例的所述RST:
针对所述截尾操作和所述擦除操作的至少一个,生成所述源实例的所述RST的新条目,
如果写入操作应用的位置小于所述源实例的所述当前EOD位置,则确定所述写入操作为所述截尾操作,
将所述新条目附加至所述源实例的所述RST,以及
如果基于所述新条目的第一位置值小于或等于基于最新近现存条目的第二位置值,则移除位置值大于或等于所述第一位置值的所有现存条目。
33.根据权利要求32所述的计算机程序产品,进一步包括,第十可执行部分,用于根据所述生成所述新条目,执行以下步骤的至少一个:
将所述第一位置值设定为在所述新条目中的位置,以及
将所述新条目的生成器的新唯一系统标识值设定为在所述新条目中的系统标识。
34.根据权利要求31所述的计算机程序产品,进一步包括,第九可执行部分,用于根据所述基于所述源实例的所述RST以及所述复制实例的所述RST,确定表示在所述源组件上的最新近位置的数据,从所述最新近位置处开始的数据应当传输至所述复制组件以实现完全同步:
定位在所述源组件处的所述源实例的所述RST中的奇异条目,所述奇异条目具有在所述RST中具有与所述复制组件处的所述复制实例的所述RST中相同条目的所有条目的最大操作标识值,
如果在所述源实例的所述RST中存在所述奇异条目以及后续条目的每一个,并且在所述复制实例的所述RST中存在所述奇异条目的相同条目的后续条目,则将所述最新近位置计算为所述源实例的所述RST中的所述后续条目的位置值、所述复制实例的所述当前EOD位置、以及在所述复制实例的所述RST中的所述奇异条目的所述相同条目的所述后续条目的位置值之间的第一最小值。
35.根据权利要求34所述的计算机程序产品,进一步包括,第十可执行部分,用于根据所述确定,如果在所述复制实例的所述相同条目的所述RST中不存在所述后续条目,则将所述最新位置计算为所述源实例的所述RST中的所述后续条目的所述位置值与所述复制实例的所述当前EOD位置之间的第二最小值。
36.根据权利要求35所述的计算机程序产品,进一步包括,第十一可执行部分,用于根据所述确定,如果存在所述奇异条目而在所述源实例的所述RST中不存在所述后续条目,并且在所述复制实例的所述RST中存在所述奇异条目的所述相同条目的所述后续条目,则将所述最新近位置计算为所述复制实例的所述当前EOD位置与在所述复制实例的所述RST中所述奇异条目的所述相同条目的所述后续条目的所述位置值之间的第三最小值。
37.根据权利要求36所述的计算机程序产品,进一步包括,第十二可执行部分,用于根据所述确定,如果存在所述奇异条目而不存在所述源实例的所述RST中的所述后续条目与所述复制实例的所述RST中的所述奇异条目的所述相同条目的所述后续条目的每个,则将所述最新近位置计算为所述复制实例的所述当前EOD位置。
38.根据权利要求37所述的计算机程序产品,进一步包括,第十三可执行部分,用于根据所述确定,如果不存在所述奇异条目,则将所述最新近位置计算为0。
39.根据权利要求32所述的计算机程序产品,进一步包括,第十可执行部分,用于根据所述对所述复制实例与所述源实例进行同步,而同时使用表示所述最新近位置的所述数据来更新所述复制实例的所述RST以反映同步状态执行以下步骤的至少一个:
将表示所述最新近位置的数据写入永久存储位置,以及
增长所述复制实例的所述当前EOD位置。
40.根据权利要求39所述的计算机程序产品,进一步包括,第十一可执行部分,用于根据所述对所述复制实例与所述源实例进行同步,而同时使用表示所述最新近位置的所述数据来更新所述复制实例的所述RST以反映同步状态,使用数学摘要验证表示所述最新近位置的所述数据。
41.根据权利要求39所述的计算机程序产品,进一步包括,第十一可执行部分,用于根据所述对所述复制实例与所述源实例进行同步,而同时使用表示所述最新近位置的所述数据来更新所述复制实例的所述RST以反映同步状态,执行以下步骤的至少一个:
如果所述复制实例的所述当前EOD位置超过所述源实例的第一位置值,则将新条目附加至所述复制实例的所述RST,从而使得针对所述复制实例的所述RST的所述新条目的操作标识值、位置值、以及唯一系统标识值的每一个与所述源实例的所述RST的所述新条目相匹配,以及
如果所述源实例的所述第一位置值小于或等于所述第二位置值,则从所述复制实例的所述RST中移除位置值大于或等于所述第一位置值的所有条目。
42.一种计算机程序,包括当所述程序在计算机上运行时适用于执行权利要求1至权利要求15的所有步骤的程序代码装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/539,066 US8296536B2 (en) | 2009-08-11 | 2009-08-11 | Synchronization of replicated sequential access storage components |
US12/539,066 | 2009-08-11 | ||
PCT/EP2010/060960 WO2011018338A1 (en) | 2009-08-11 | 2010-07-28 | Synchronization of replicated sequential access storage components |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102483711A true CN102483711A (zh) | 2012-05-30 |
CN102483711B CN102483711B (zh) | 2015-01-28 |
Family
ID=43003401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080034872.XA Active CN102483711B (zh) | 2009-08-11 | 2010-07-28 | 对复制顺序访问存储组件进行同步 |
Country Status (5)
Country | Link |
---|---|
US (3) | US8296536B2 (zh) |
CN (1) | CN102483711B (zh) |
DE (1) | DE112010003262B4 (zh) |
GB (1) | GB2484835B (zh) |
WO (1) | WO2011018338A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111475340A (zh) * | 2015-12-30 | 2020-07-31 | 伊姆西Ip控股有限责任公司 | 用于创建复制品的方法、装置和计算机程序产品 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8671308B2 (en) | 2011-05-02 | 2014-03-11 | International Business Machines Corporation | Optimizing disaster recovery systems during takeover operations |
US8850139B2 (en) * | 2011-05-11 | 2014-09-30 | International Business Machines Corporation | Changing ownership of cartridges |
US9715507B2 (en) | 2013-03-28 | 2017-07-25 | Ctera Networks, Ltd. | Techniques for reconciling metadata and data in a cloud storage system without service interruption |
US9607068B2 (en) * | 2013-10-18 | 2017-03-28 | Sybase, Inc. | Parallel truncation point management for log based replication |
US9542468B2 (en) * | 2014-03-24 | 2017-01-10 | Hitachi, Ltd. | Database management system and method for controlling synchronization between databases |
JP5963324B2 (ja) * | 2014-08-11 | 2016-08-03 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 仮想シーケンシャルアクセスボリュームのデータのコピー方法、システム |
US10083216B2 (en) | 2015-05-08 | 2018-09-25 | International Business Machines Corporation | Idling individually specified objects during data replication |
US11669546B2 (en) * | 2015-06-30 | 2023-06-06 | Pure Storage, Inc. | Synchronizing replicated data in a storage network |
US10846115B1 (en) * | 2015-08-10 | 2020-11-24 | Amazon Technologies, Inc. | Techniques for managing virtual instance data in multitenant environments |
US10168920B2 (en) * | 2015-08-21 | 2019-01-01 | International Business Machines Corporation | Duplexing file system data |
US11914883B2 (en) | 2022-03-04 | 2024-02-27 | International Business Machines Corporation | Copy from LTFS to disk |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5608865A (en) * | 1995-03-14 | 1997-03-04 | Network Integrity, Inc. | Stand-in Computer file server providing fast recovery from computer file server failures |
US20050216788A1 (en) * | 2002-11-20 | 2005-09-29 | Filesx Ltd. | Fast backup storage and fast recovery of data (FBSRD) |
CN100502389C (zh) * | 2004-06-28 | 2009-06-17 | 上海理工大学 | 一种基于ogsa规范的网格计算过程表示系统及其实现方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5583995A (en) * | 1995-01-30 | 1996-12-10 | Mrj, Inc. | Apparatus and method for data storage and retrieval using bandwidth allocation |
US5819020A (en) * | 1995-10-16 | 1998-10-06 | Network Specialists, Inc. | Real time backup system |
US5870759A (en) * | 1996-10-09 | 1999-02-09 | Oracle Corporation | System for synchronizing data between computers using a before-image of data |
EP1244221A1 (en) * | 2001-03-23 | 2002-09-25 | Sun Microsystems, Inc. | Method and system for eliminating data redundancies |
US20040193952A1 (en) * | 2003-03-27 | 2004-09-30 | Charumathy Narayanan | Consistency unit replication in application-defined systems |
US7752387B2 (en) * | 2006-03-21 | 2010-07-06 | International Business Machines Corporation | Offloading firmware update tasks from RAID adapter to distributed service processors in switched drive connection network enclosure |
US8301589B2 (en) * | 2006-05-10 | 2012-10-30 | Sybase, Inc. | System and method for assignment of unique identifiers in a distributed environment |
US7921077B2 (en) * | 2006-06-29 | 2011-04-05 | Netapp, Inc. | System and method for managing data deduplication of storage systems utilizing persistent consistency point images |
US7504969B2 (en) * | 2006-07-11 | 2009-03-17 | Data Domain, Inc. | Locality-based stream segmentation for data deduplication |
US7827137B2 (en) * | 2007-04-19 | 2010-11-02 | Emc Corporation | Seeding replication |
US8204866B2 (en) * | 2007-05-18 | 2012-06-19 | Microsoft Corporation | Leveraging constraints for deduplication |
US8074103B2 (en) * | 2007-10-19 | 2011-12-06 | Oracle International Corporation | Data corruption diagnostic engine |
US7870105B2 (en) * | 2007-11-20 | 2011-01-11 | Hitachi, Ltd. | Methods and apparatus for deduplication in storage system |
US20090132534A1 (en) * | 2007-11-21 | 2009-05-21 | Inventec Corporation | Remote replication synchronizing/accessing system and method thereof |
US7539710B1 (en) * | 2008-04-11 | 2009-05-26 | International Business Machines Corporation | Method of and system for deduplicating backed up data in a client-server environment |
-
2009
- 2009-08-11 US US12/539,066 patent/US8296536B2/en not_active Expired - Fee Related
-
2010
- 2010-07-28 DE DE112010003262.9T patent/DE112010003262B4/de active Active
- 2010-07-28 WO PCT/EP2010/060960 patent/WO2011018338A1/en active Application Filing
- 2010-07-28 GB GB1119247.3A patent/GB2484835B/en active Active
- 2010-07-28 CN CN201080034872.XA patent/CN102483711B/zh active Active
-
2012
- 2012-04-27 US US13/458,741 patent/US8533412B2/en not_active Expired - Fee Related
-
2013
- 2013-01-17 US US13/743,791 patent/US8706994B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5608865A (en) * | 1995-03-14 | 1997-03-04 | Network Integrity, Inc. | Stand-in Computer file server providing fast recovery from computer file server failures |
US20050216788A1 (en) * | 2002-11-20 | 2005-09-29 | Filesx Ltd. | Fast backup storage and fast recovery of data (FBSRD) |
CN100502389C (zh) * | 2004-06-28 | 2009-06-17 | 上海理工大学 | 一种基于ogsa规范的网格计算过程表示系统及其实现方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111475340A (zh) * | 2015-12-30 | 2020-07-31 | 伊姆西Ip控股有限责任公司 | 用于创建复制品的方法、装置和计算机程序产品 |
CN111475340B (zh) * | 2015-12-30 | 2023-07-11 | 伊姆西Ip控股有限责任公司 | 用于创建复制品的方法、装置和计算机程序产品 |
Also Published As
Publication number | Publication date |
---|---|
DE112010003262B4 (de) | 2014-05-15 |
WO2011018338A1 (en) | 2011-02-17 |
US8706994B2 (en) | 2014-04-22 |
GB2484835A (en) | 2012-04-25 |
US20120215999A1 (en) | 2012-08-23 |
DE112010003262T5 (de) | 2013-01-10 |
US20130132343A1 (en) | 2013-05-23 |
US20110040942A1 (en) | 2011-02-17 |
CN102483711B (zh) | 2015-01-28 |
GB201119247D0 (en) | 2011-12-21 |
GB2484835B (en) | 2016-10-19 |
US8533412B2 (en) | 2013-09-10 |
US8296536B2 (en) | 2012-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102483711B (zh) | 对复制顺序访问存储组件进行同步 | |
CN101996233B (zh) | 用于对经重复删除的数据进行复制的方法和系统 | |
US8689047B2 (en) | Virtual disk replication using log files | |
US8117168B1 (en) | Methods and systems for creating and managing backups using virtual disks | |
CN101479944B (zh) | 基于采样消除重复数据的系统和方法 | |
KR101694984B1 (ko) | 비대칭 클러스터링 파일시스템에서의 패리티 산출 방법 | |
US8667330B1 (en) | Information lifecycle management assisted synchronous replication | |
CN102782639B (zh) | 使复制目标能够回收瘦供给存储系统上未使用的存储空间的系统和方法 | |
CN106407040A (zh) | 一种远程数据复制方法及系统 | |
US20080168218A1 (en) | Backup system with continuous data protection | |
US8438353B1 (en) | Method, system, and computer readable medium for asynchronously processing write operations for a data storage volume having a copy-on-write snapshot | |
US8205041B2 (en) | Virtual tape apparatus, control method of virtual tape apparatus, and control section of electronic device | |
CN106919465B (zh) | 用于存储系统中多重数据保护的方法和装置 | |
US20120179867A1 (en) | Tape data management | |
WO2015054897A1 (zh) | 数据存储方法、数据存储装置和存储设备 | |
CN102576323B (zh) | 一种促进存储系统中的数据的复制的方法和系统 | |
CN103562878A (zh) | 在镜像虚拟机系统中的存储器检查点设置 | |
JP2012507788A (ja) | ストレージ・エリア・ネットワークを使用してコンピュータシステムを復旧するための方法およびシステム | |
WO2015085529A1 (zh) | 数据复制方法、数据复制装置和存储设备 | |
CN103530204A (zh) | 一种实时数据备份方法及系统 | |
JP2021522577A (ja) | ホスト認識更新書き込みの方法、システム、およびコンピュータ・プログラム | |
CN104067241A (zh) | 同步本地存储设备和远程存储设备 | |
CN109416617A (zh) | 异构存储系统之间的复制 | |
CN105760456A (zh) | 一种保持数据一致性的方法和装置 | |
EP2135166B1 (en) | Service workload identification in a data storage system |
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 |