CN107015761B - 使用链克隆进行存储拷贝的方法和系统 - Google Patents
使用链克隆进行存储拷贝的方法和系统 Download PDFInfo
- Publication number
- CN107015761B CN107015761B CN201610892297.6A CN201610892297A CN107015761B CN 107015761 B CN107015761 B CN 107015761B CN 201610892297 A CN201610892297 A CN 201610892297A CN 107015761 B CN107015761 B CN 107015761B
- Authority
- CN
- China
- Prior art keywords
- volume
- chain
- node
- copy
- sparse
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供一种使用链克隆进行存储拷贝的方法和系统,其包括:以依赖链的形式提供具有一个或多个快照的卷,其中所述卷和所述一个或多个快照是所述依赖链中的卷节点并且提供保持所述一个或多个快照所需的关联元数据;克隆所述依赖链以创建包括导致稀疏卷节点的所述卷和所述一个或多个快照的稀疏拷贝的至少一个稀疏拷贝链,导致卷节点的依赖链和被克隆卷节点的一个或多个稀疏拷贝链的网格结构。
Description
技术领域
本发明涉及计算机存储系统,并且更具体地,涉及用使用链克隆的时间点拷贝(point-in-time copy)进行存储。
背景技术
在计算机存储系统的领域中,对已被描述为“高级功能”的需求日益增长。这样的功能超过常规存储控制器系统的简单输入/输出(I/O)功能。高级功能取决于用于保持关于存储在系统中的真实或“用户”数据的状态数据的元数据的控制。使用高级功能可获得的操作能够将各种动作快速地应用于数据的虚拟图像,同时使真实数据可用于由用户应用程序使用。
一种这样的高级功能是时间点拷贝。时间点拷贝的一个例子是 IBM和FlashCopy是在世界上的许多管辖区注册的国际商业机器公司的商标。
时间点拷贝是在各种存储设备上支持的特征,其允许进行完整逻辑卷或数据集的近似即时时间点拷贝。时间点功能能够进行数据的完整卷拷贝,拷贝立即可用于读或写访问。拷贝可以与在计算环境中可用于在磁带上创建备份拷贝的标准备份工具一起使用。
“快照”是表示能够在任何指定时刻记录存储设备的状态并且将该快照保存为用于在其故障的情况下恢复存储设备的向导的一般行业术语。快照主要创建数据的时间点拷贝。典型地,快照拷贝立即完成并且可用于由其他应用程序使用,例如数据保护、数据分析和报告和数据复制应用程序。数据的原始拷贝继续可用于应用程序而不中断,而快照拷贝用于对数据执行其他功能。快照可以是依赖于主磁盘的时间点拷贝。
快照可以使用包括写时拷贝程序或重定向写程序的各种实现方式实现。如果有多层环境,则写时拷贝是相对于特定卷所使用的层提供最佳稳定性的解决方案。在写时拷贝程序中,当对主磁盘上的区域进行写时,主磁盘上的区域中的当前存在的数据写到备份磁盘。因此,备份磁盘将包含在主磁盘上被覆盖的数据,与主磁盘的完全拷贝不同。该类型的备份拷贝典型地导致可能减小存储的精简配置卷。
为了最小化每秒生产卷输入/输出操作(IOPs),解决方案使用‘级联’方法以允许进行单个生产卷的多个不同时间点拷贝而不导致物理存储的IOPs的增加。
一系列快照拷贝可以一起级联以表示各时间的主磁盘。然而,快照拷贝典型地依赖于主磁盘保持以重新组装主磁盘的完整拷贝。所以,快照是时间点拷贝,其中目标仅仅保持展现源的时间点拷贝所必需的变化数据。如果数据在源上变化,则数据仅仅拷贝到目标磁盘。目标磁盘一般依赖于源磁盘上的一些数据以便展现时间点拷贝。
本发明涉及克隆卷及其所有快照的问题。如果用户想要将卷及其所有快照移动到另一存储池或者如果他们想要卷及其快照的新拷贝,这将是需要的。目的是立即克隆卷、其快照(保持任何空间效率)和保持这些快照所需的所有元数据。由于这些操作不能自动执行但是可能似乎已自动完成,因此当拷贝过程进行时需要保持图像,同时也处理原始卷及其快照和克隆及其快照的I/O。
发明内容
根据本发明的第一方面提供一种使用链克隆进行存储拷贝的方法,其包括:以依赖链的形式提供具有一个或多个快照的卷,其中所述卷和所述一个或多个快照是所述依赖链中的卷节点并且提供保持所述一个或多个快照所需的关联元数据;克隆所述依赖链以创建包括导致稀疏卷节点的所述卷和所述一个或多个快照的稀疏拷贝的至少一个稀疏拷贝链,导致卷节点的依赖链和被克隆卷节点的一个或多个稀疏拷贝链的网格结构;限定从所述依赖链中的源和目标卷节点和所述稀疏拷贝链中的稀疏源和稀疏目标卷节点到卷节点的映射;以及限定每个卷节点的元数据,其包括指示数据是否在目标卷节点上的状态和指示如果数据不在目标卷上则转向所述依赖链和所述一个或多个稀疏拷贝链中的哪一个的高水印。
方法可以包括在卷节点操作期间保持所述映射和所述元数据,并且当所述卷是被克隆稀疏拷贝链的一部分时使用所述映射和所述元数据修改输入/输出操作。
所述元数据也可以包括用于在卷节点拷贝和清理操作期间使用的稀疏拷贝链的头卷节点的指示。所述元数据状态可以是如果数据在目标卷节点上则设置为真的位图。
方法可以包括重复克隆步骤以在原始卷依赖链和先前被克隆的镜链之间加入新的稀疏拷贝链。
所述网格结构可以具有在第一方向上的依赖链操作和在垂直于所述第一方向的第二方向上的稀疏拷贝链操作。
方法可以包括执行卷节点的读操作,包括:确定是否存在从源卷节点或稀疏拷贝卷节点到卷节点的映射;检查卷节点元数据以确定卷节点是否具有指示的目标状态;以及检查卷节点元数据以确定目标节点的正确链的高水印指示。
方法可以包括执行卷节点的写操作,包括:在执行写操作之前参考映射和元数据,如果需要则执行对映射的写操作;以及在写操作之后更新映射和元数据。
方法可以包括执行卷节点的拷贝操作,包括:需要时执行写操作以将卷节点的网格读写到卷节点。
方法可以包括执行卷节点的清理操作,包括执行写操作以清理元数据。
根据本发明的第二方面提供一种用链克隆进行存储拷贝的系统,其包括:处理器和存储器,所述存储器配置成将计算机程序指令提供给所述处理器以执行以下部件的功能;时间点拷贝部件,用于以依赖链的形式提供具有一个或多个快照的卷,其中所述卷和所述一个或多个快照是所述依赖链中的卷节点并且提供保持所述一个或多个快照所需的关联元数据;克隆部件,用于克隆所述依赖链以创建包括导致稀疏卷节点的所述卷和所述一个或多个快照的稀疏拷贝的至少一个稀疏拷贝链;网格结构部件,用于创建卷节点的依赖链和被克隆卷节点的一个或多个稀疏拷贝链的网格结构;映射部件,用于限定从所述依赖链中的源和目标卷节点和所述稀疏拷贝链中的稀疏源和稀疏目标卷节点到卷节点的映射;以及元数据部件,用于限定每个卷节点的元数据,其包括指示数据是否在目标卷节点上的状态和指示如果数据不在目标卷上则转向所述依赖链和所述一个或多个稀疏拷贝链中的哪一个的高水印。
所述映射部件和所述元数据部件可以在卷节点操作期间保持所述映射和所述元数据并且当所述卷是被克隆稀疏拷贝链的一部分时使用所述映射和所述元数据修改输入/输出操作。
所述元数据部件可以限定包括用于在卷节点拷贝和清理操作期间使用的稀疏拷贝链的头卷节点的指示的元数据。
所述克隆部件可以能够重复克隆步骤以在原始卷依赖链和先前被克隆的镜链之间加入新的稀疏拷贝链。
所述网格结构可以具有在第一方向上的依赖链操作和在垂直于所述第一方向的第二方向上的稀疏拷贝链操作。
系统可以包括用于执行卷节点的读操作的读操作部件。系统可以包括用于执行卷节点的写操作的写操作部件。系统可以包括用于执行卷节点的拷贝操作的拷贝操作部件。系统可以包括用于执行卷节点的清理操作的清理操作部件。
根据本发明的第三方面提供一种用链克隆进行存储拷贝的计算机程序产品,所述计算机程序产品包括具有随其体现的程序指令的计算机可读存储介质,所述程序指令由处理器可执行以导致所述处理器:以依赖链的形式提供具有一个或多个快照的卷,其中所述卷和所述一个或多个快照是所述依赖链中的卷节点并且提供保持所述一个或多个快照所需的关联元数据;克隆所述依赖链以创建包括导致稀疏卷节点的所述卷和所述一个或多个快照的稀疏拷贝的至少一个稀疏拷贝链,导致卷节点的依赖链和被克隆卷节点的一个或多个稀疏拷贝链的网格结构;限定从所述依赖链中的源和目标卷节点和所述稀疏拷贝链中的稀疏源和稀疏目标卷节点到卷节点的映射;以及限定每个卷节点的元数据,其包括指示数据是否在目标卷节点上的状态和指示如果数据不在目标卷上则转向所述依赖链和所述一个或多个稀疏拷贝链中的哪一个的高水印。
本发明的所述方面提供能够在保持元数据的同时克隆卷及其所有快照的优点。这使用户能够将卷及其所有快照移动到另一存储池,如果用户需要卷及其所有快照的新拷贝。
当拷贝过程进行时有利地保持拷贝图像,同时也能够处理原始卷及其快照和克隆及其快照的I/O。
附图说明
包括在本发明中的附图包含到说明书中并且形成说明书的一部分。它们示出本发明的实施例并且与描述一起用于解释本发明的原理。附图仅仅是某些实施例的举例说明并且不限制本发明。
图1A是显示根据各种实施例的使用存储控制器和两个存储磁盘的备份过程的示意图。
图1B是显示根据各种实施例的三个存储卷的时间点拷贝级联的示意图。
图1C是显示根据各种实施例的映射的级联的示意图。
图1D是显示根据各种实施例的映射的级联的示意图。
图2是根据各种实施例的方法的示例性实施例的流程图。
图3A是显示根据各种实施例的示例性网格结构的示意图。
图3B是显示根据各种实施例的卷的映射的示意图。
图3C至3F是显示根据各种实施例的卷的映射的示意图。
图4A和4B是根据各种实施例的读操作的流程图。
图5A至5C是根据各种实施例的方法的写操作的例子的流程图。
图6A和6B是根据各种实施例的方法的拷贝操作的流程图。
图7A和7B是根据各种实施例的方法的清理操作的流程图。
图8是根据各种实施例的系统的框图。
图9是根据各种实施例的计算环境中的存储系统的框图。
图10是根据各种实施例的计算机系统或云服务器的实施例的框图。
图11是根据各种实施例的云计算环境的示意图。
图12是根据各种实施例的云计算环境的抽象模型层的图。
尽管本发明易于进行各种修改和替代形式,但是其细节在附图中已通过例子被显示并且将详细地进行描述。然而应当理解,本发明不将本发明限制到所述的特定实施例。相反地,本发明将涵盖落在本发明的精神和范围内的所有修改、等效物和替代。
具体实施方式
所述的方法和系统通过将依赖链扩展到网格结构解决克隆卷及其所有快照的问题。而且,它实现该目标而不将元数据占位增加到超过已知方法。
时间点拷贝实现方式通过将寻址到第二图像(今后目标)的读I/O重定向到原始图像(今后源)获得第二图像的存在的幻觉,除非区域已受到写。在区域已成为写的对象(到源或目标)的情况下,然后为了保持源和目标都拥有它们自身的数据拷贝的幻觉,调用悬停写命令的操作的过程,并且在它不生效的情况下,发出从源读被影响区域,用写将读数据应用到目标,然后(并且只有在所有步骤成功的时候)释放悬停写。后续写到相同区域不需要被悬停,原因是目标将已经具有其自身的数据拷贝。可以在许多环境中使用该写时拷贝技术。
时间点的实现方式依靠管理上述决策(即,关于在目标处接收的读是发出到源还是目标的决策,和关于是否可以悬停写以允许发生写时拷贝的决策)的数据结构。数据结构实质上跟踪已从源拷贝到目标的数据的区域或颗粒,不同于还未拷贝的那些。在其最简单形式中,该数据结构以位图的形式被保持,其显示哪些颗粒已被写和哪些未被写活动触及。
一些存储控制器允许用户配置指定源的一个以上目标。这具有许多应用。例如,可以针对目标的每一个进行不同实验。在另一例子中,目标可以在不同时间(例如一周中的不同天)被获取,并且允许磁盘的历史访问,目的可能是从例如可能由病毒导致的一些数据损坏恢复。
美国专利No.7,386,695 B2(Fuente,Carlos F.“具有多个拷贝目标的存储系统(Storage System with Multiple Copy Targeting)”,2008年6月10日)中提供一种具有多个拷贝目标的存储系统,其公开与主计算机装置和多个受控存储装置可协作的存储控制器,其包括可操作地在多个受控存储装置的一个处将数据对象写到源数据图像的主机写部件:第一拷贝部件,其响应第一元数据状态并且可操作地控制在多个受控存储装置中的一个处将数据对象拷贝到第一目标数据图像;第二拷贝部件,其响应第二元数据状态并且可操作地执行下列中的一个:控制在多个受控存储装置中的一个处将数据对象拷贝到第二目标数据图像;以及导致第一拷贝部件执行第二目标数据图像拷贝到第一目标数据图像。
US 7,386,695 B2描述存储卷的级联配置,其包括实现以目标I/O为代价优化源写的时间点拷贝功能。
图1A描绘使用存储控制器8和两个存储磁盘10、12的备份过程。磁盘10和12可以形成磁盘的较大阵列的一部分,并且可以形成企业存储解决方案的一部分。例如,磁盘10和12可以是与商业网站相关的存储解决方案的一部分。如果在任何时间需要进行vdisk1的内容的备份,则时间点拷贝指令可以从存储卷控制器8发送到限定源磁盘10(vdisk1)的磁盘10,并且也发送到作为时间点拷贝的目标的目标磁盘12(vdisk2)。时间点拷贝指令创建作为源磁盘10的特定vdisk的图像的时间点拷贝。
在图1A的实施例中,第一时间点拷贝指令的源磁盘10是vdisk1,并且目标磁盘12是vdisk2。时间点拷贝指令开始时间点拷贝过程,其创建从源磁盘10到目标磁盘12的映射。该映射在图1中标示MAP1。在该特定时间点的vdisk1的图像现在在vdisk2可获得。这在vdisk1上创建数据的备份,并且可以允许在vdisk1的数据上进行测试和其他管理任务,而没有丢失任何原始数据的伴随风险,原因是它保存在原始源磁盘上。
当进行时间点拷贝时,它创建由映射14限定的两个磁盘10和12之间的链接。数据现在可以在背景中被交叉拷贝,附加要求是对vdisk2(作为目标磁盘12)的任何访问可以立即导致vdisk1的图像的相关部分被交叉拷贝,并且将导致由磁盘10存储的图像的变化的对vdisk1的任何访问也将导致未改变的数据在进行变化之前立即交叉拷贝到目标磁盘12。以该方式,到外部用户,vdisk2可以存储vdisk1的时间点拷贝,但是数据可以仅仅在上述的情况下物理地被交叉拷贝。
作为诸如时间点拷贝功能的备份过程的目标卷的存储卷也可以是另一备份过程的源卷,因此创建存储卷的级联。
图1B描绘由时间点拷贝映射14链接的三个存储卷10、12和16的时间点拷贝级联的例子。每个映射限定从源卷到目标卷的备份过程。磁盘B提供磁盘A 10的备份,并且磁盘C16也通过磁盘B 12提供磁盘A 10的备份。链接不同存储卷的时间点拷贝功能14可以在不同时间开始,其创建由相应存储卷存储的图像的不同时间点拷贝,或者可以同时开始。
在A→B→C的时间点拷贝级联中,其中A 10、B 12和C 16是级联中的磁盘,如图1B中所示,并且箭头是时间点拷贝映射,然后将(A,B)表示为从磁盘A 10到磁盘B 12的时间点拷贝映射,级联具有映射(A,B)和(B,C)。在级联的该实现方式中,对磁盘A 10的任何新数据写将根据保持磁盘B 12上的图像所需的相应的时间点拷贝功能导致对磁盘B 12的写,也就是“拷贝写”。该写到磁盘B 12将导致磁盘B 12的进一步读,常常称为“清理读”,接着是对磁盘C 16的另一拷贝写。以该方式对级联中的第一存储卷10的一次写可以导致遍布级联的多个I/O清理操作。
当创建级联时,新映射和新存储卷插入级联中,不加入到级联的末端。在图1B所示的级联中,开始的第一备份过程将是A→C。当然后开始备份过程A→B时,新目标存储卷B 12有效地“插入”现有的源存储卷A 10和现有的目标存储卷C 16之间。该“插入”是纯逻辑指令,表明磁盘C 16将接收来自磁盘B 12而不是磁盘A 10的数据写的事实。这是级联实现方式与将具有来自磁盘A 10的两个独立映射的常规布置的区别之处。
级联可以用于实现单个数据源的多个时间点拷贝。例如,对于数据源P和在时间t1、t2和t3获得的P的时间点拷贝,然后在时间t1使用数据目标T1获得时间点拷贝,导致级联:P→T1。然后在时间t2使用数据目标T2获得第二时间点拷贝,导致级联:P→T2→T1。实际上,T1作为T2的拷贝被建立,其在该时刻与P相同,并且T2是P的拷贝。描述其与P的区别的由T2保持的位图也正确地描述其与T1的区别。对P的更新仅仅需要从P拷贝到T2的拷贝操作。相反地,对T2的更新可能需要两个拷贝操作:从P到T2,和从T2到T1。这是由于对链的中间的更新强制对两侧的关系的拷贝。在t3加入第三备份T3产生级联:P→T3→T2→T1。
图1C是显示根据各种实施例的映射的级联的示意图。
更具体地,图1C描绘两个磁盘105和110的表示。如图1C中所示,磁盘的上部分指示从相应磁盘展现给例如主机的数据。展现给主机的磁盘被称为“vdisk”。vdisk是在存储虚拟化中用于表示主计算机或主计算机应用程序用其执行I/O操作的虚拟逻辑磁盘或卷的术语。图1C也描绘磁盘的表示的下部分,其指示实际包含在相应磁盘上的数据。磁盘的这些下部分被称为“pdisk”。pdisk是直接连接到物理存储的对象。熟练技术人员将理解pdisk可以自身是位于独立磁盘冗余阵列(RAID)上的虚拟卷。熟练技术人员也将领会存储控制器8在虚拟级管理拷贝,但是对逻辑磁盘的读和写不相应地导致对物理磁盘的读和写。磁盘1 105将四个数据颗粒(或磁道)A、B、C、D展现给用户并且实际上将那些颗粒A、B、C、D存储在磁盘1105上。相比之下,磁盘2 110将四个数据颗粒A、F、C、D展现给用户。然而,如磁盘2 110的底部分中所示,磁盘2 110可以实际上仅仅将颗粒二和四(相应地,F和D)存储在其上并且可以依靠存储在磁盘1 105中的数据来为主机展现颗粒A和C。第四颗粒(D)存储在磁盘2 110上,即使相同数据在磁盘1 105上可用,例如由于先前数据D重写到磁盘1 105上。
如图1C中附加地所示,映射2 120是磁盘1 105和磁盘2 110之间的增量。也就是说,映射2 120包括分裂位图(split)122和区别位图(diff)124。分裂位图122在时间点过程中用于跟踪数据的位置。更具体地,分裂位图122中的“0”指示数据位于源磁盘上并且分裂位图122中的“1”指示数据位于目标磁盘上。此外,区别位图124在时间点拷贝过程中用于跟踪源和目标磁盘(例如,虚拟磁盘)之间的区别。更具体地,区别位图421中的“0”指示位于源磁盘和目标磁盘上的数据之间没有区别,并且区别位图124中的“1”指示位于源磁盘上的数据和位于目标磁盘上的数据之间有区别。
因此,参照图1C的例子,映射2 120的分裂位图122指示颗粒A和C位于源磁盘(磁盘1 105)上并且颗粒F和D位于目标磁盘(磁盘2 110)上。而且,映射2 120的区别位图124指示源磁盘(磁盘1 105)和目标磁盘(磁盘2 110)的第一、第三和第四颗粒之间没有区别。也就是说,第一、第三和第四颗粒在源磁盘和目标磁盘之间保持相同,即,相应地,A、C和D。然而,映射2 120的区别位图124指示第二颗粒在源磁盘(磁盘1 105)和目标磁盘(磁盘2 110)之间有区别。也就是说,如图1中所示,第二颗粒已从磁盘1 105上的B变为磁盘2 110上的F。因此,指示器125示出目标磁盘110基于分裂位图122的内容指的是源磁盘105而不是映射2120的物理内容。
有利地,位图122、124的使用允许存储控制器8管理对存储磁盘卷的虚拟和物理拷贝的访问,包括当加入或从系统删除拷贝时管理数据内容。当从链删除拷贝时,表示数据更新的内容可以基于位图122、124的内容“清理”到剩余链中的另一拷贝上。
图1D是显示根据各种实施例的映射的级联的示意图。
参照图1D,A是源逻辑单元150,并且B和C显示在过去的某个时间获得的两个目标160、170,C比B时间更近。
假设A 150和B 160已经处于时间点关系,并且C 170作为A 150的拷贝被加入。描述其与A 150的区别的由B 160保持的位图161也正确地描述其与C 170的区别,原因是在该点C170与A 150相同,并且具有空位图171。
对A 150的更新可能需要从A 150到C 170拷贝数据的拷贝操作。相反地,对C 170的更新可能需要两个拷贝操作,从A到C,和从C到B。这是由于对链的中间的更新强制对两侧的关系的拷贝。
在B 160处的位图161和在C 170处的位图171可以被更新以指示数据映射并且跟踪每个时间点拷贝的进度。
在当前描述的方法和系统中,具有快照的级联的卷形成可能需要克隆的链。当具有快照的链的卷将被克隆时,链被镜象并且被克隆链被创建。重复该过程将新链加入源链和先前链之间,并且以该方式,可以构造网格。
图2是根据各种实施例的方法的示例性实施例的流程图200。
描述一种用链克隆进行存储拷贝的方法,其以依赖链或级联的形式提供201具有多个快照的卷。
卷及其快照的依赖链可以立即被克隆以创建202包括卷、多个快照和保持快照所需的关联映射和元数据的镜链。
重复203克隆步骤以加入新镜链,在原始卷依赖链和先前被克隆镜链之间加入新镜链。克隆的重复203可以根据需要发生多次。
克隆可以创建204原始依赖链和被克隆镜链的卷和快照的网格结构或表示。网格结构可以是虚拟结构,原因在于它不是卷和快照的物理布置,而是代表性布置。网格结构可以表示为具有在第一方向上的正常链操作和在垂直于第一方向的第二方向上的镜象拷贝链。镜象链被称为稀疏拷贝链。稀疏拷贝是物理地驻留在快照上的数据而不是快照的整个逻辑图像的拷贝。
卷节点被定义为卷、快照、稀疏拷贝卷和稀疏拷贝快照中的任何一个。每个卷节点具有针对依赖链中的源、依赖链中的目标、稀疏拷贝源和稀疏拷贝目标限定的关联映射205。
每个卷节点具有关联元数据206从而当执行操作时保证到网格中的正确源或目标的映射。元数据呈目标状态和高水印叙述的形式。每个卷节点的目标状态指示数据是否在目标卷节点上。目标状态可以作为位图被提供并且该元数据在本文中作为“.BIT”被参考。高水印是指示稀疏拷贝过程是否考虑磁盘的该区域的元数据。高水印用于指示转向链中的哪一个。如果仅仅有磁盘的一个颗粒,高水印可以作为位图被提供。对于多颗粒磁盘,高水印叙述将是不等式。高水印叙述元数据在本文中作为“.HWM”被参考。元数据可以附加地包括称为“SparseHead”的稀疏链的链头的指示,其用于背景拷贝和清理操作。
参考映射和元数据执行对卷节点的读和写的输入和输出操作207。另外,执行208背景拷贝和清理操作以保持卷节点的映射和元数据。
方法保持由网格中的卷节点展现的图像,同时匹配由每个快照及其克隆使用的空间。这可以被实现而不限制对网格中的任何卷的I/O访问。
图3A是显示根据各种实施例的示例性网格结构的示意图。
参照图3A,假设有具有两个快照A1 302和A2 303的卷A 301。如果链被克隆到链B311上并且然后被克隆到链C 321上,则将有如图3A中所示的网格。
‘正常’依赖链显示为水平,例如从A 301到A2 303到A1 302。用于链克隆的链显示为竖直,例如从A 301到C 321到B 311,从A2 303到C2 323到B2 313,和从A1 302到C1 322到B1 312。竖直链被称为稀疏拷贝链。稀疏拷贝是物理地驻留在快照上的数据而不是快照的整个逻辑图像的拷贝。
通过使用位图限定数据是否在目标卷节点上和附加高水印,该解决方案描述可以如何保持由网格中的所有卷展现的图像。
可以一次执行多个链克隆,导致稀疏拷贝链竖直向下定向和正常链操作水平的示例性网格结构。
图3B是显示根据各种实施例的卷的映射的示意图。操作的基本单元是图3B中所示的结构。
卷V 351是网格中的卷,S 352是正常依赖链中的源,并且T 353是正常依赖链中的目标。显示稀疏拷贝源bS 354和稀疏拷贝目标bT 355。因此基本单元或映射具有形式Map(V)=(S,T,bS,BT)。
在示例性网格中,如上面限定的映射是:
1.Map(A)=(Null,A2,Null,C)
2.Map(C)=(Null,C2,A,B)
3.Map(B)=(Null,B2,C,Null)
4.Map(A2)=(A,A1,Null,C2)
5.Map(C2)=(C,C1,A2,B2)
6.Map(B2)=(B,B1,C2,Null)
7.Map(A1)=(A2,Null,Null,C1)
8.Map(C1)=(C2,Null,A1,B1)
9.Map(B1)=(B2,Null,C1,Null)
在图3C至3F中显示以上映射。图3C显示沿着网格的水平链从源到卷的映射360。图3D显示沿着网格的水平链从目标到卷的映射370。
图3E显示沿着网格的竖直链从稀疏源到卷的映射380。图3F显示沿着网格的竖直链从稀疏目标到卷的映射390。
当卷是稀疏链的一部分时修改I/O操作。当卷V具有稀疏源卷时,元数据被提供并且解释为:
1.指示逻辑块地址(LBA)是否在目标上的分裂位图。
2.指示是读稀疏链(或读哪个稀疏链)还是正常链的高水印。
这意味着如果分裂位图中的位被设置,则数据在目标卷上。如果数据不在目标卷上,则高水印指示转向哪个链。
在网格中有多个高水印,在我们的例子中将有在A和C、C和B、A2和C2、C2和B2、A1和C1以及最后C1和B1之间的高水印。一般当稀疏拷贝进行时高水印将增加以指示物理磁盘的不同区域必要时已被拷贝并且因此改变未来I/O的决策。
在以下例子中,假设每个卷具有仅仅一个颗粒。可以进行该假设而不损失一般性,原因是所有颗粒彼此独立。另外,根据各种实施例,假设所有写是全颗粒写。将该算法扩展到部分颗粒写可能是简单的,但是这使基本算法被在该阶段不必要的细节遮掩。
对于多颗粒磁盘,高水印叙述将是不等式。例如,如果有3颗粒磁盘(颗粒0到2)并且如果在1颗粒处询问高水印,则询问将是HWM<1。类似地,如果在颗粒2处询问位图,则询问将考虑第二位是否被设置。
在以下示例性算法中,以下属性用于映射,Map(V)=(S,T,bS,bT):
1.Map(V).HWM指的是卷Map.bS和V之间的高水印。这可以是位图或实际高水印。由于在该解释中假设仅仅1个颗粒,因此可以假设位图。
如果Map(V).bS=Null则HWM返回真。
2.Map(V).BIT表示卷Map.S和V之间的位图的内容。如果位被设置则这返回真,否则为假。
如果Map(V).S=Null则BIT返回真。
3.Read(V)表示读卷V的内容。
4.Write(V,d)表示将d写到卷V。
5.如果X=Null则Empty(X)为真,否则为假。
针对卷V存储的映射和元数据可以包括:
映射Map(V)=(S,T,bS,bT),其元素可以写为:
Map(V).S
Map(V).T
Map(V).bS
Map(V).bT
分裂位图–如果‘数据’在目标上没有映射在目标上,包括下列:
Map(V).BIT–在卷源(Map.S)和V之间,用于网格读操作;
Map(Map(V).T).BIT–在卷目标(Map.T)和V之间,用于网格写操作;
Map(Map(V).bT).BIT–在卷稀疏目标(Map.bT)和V之间,用于网格写操作;
Map(Map(Map(V).T).bS).BIT–用于网格清理操作;以及
Map(SparseHead(V)).BIT–返回稀疏链的链头,用于网格拷贝操作。
高水印–指示使用稀疏链或正常链的哪个,包括:
Map(V).HWM–在卷稀疏源(Map.bS)和V之间,用于网格读操作;
Map(Map(V).T).HWM–在卷目标(Map.T)和V之间,用于网格写操作;
Map(Map(V).bT).HWM–在卷稀疏目标(Map.bT)和V之间,用于网格写操作。
读算法
当主机提交对网格中的卷的读时,使用读算法,其被称为网格读或lread。因此卷V的读的算法变为由下列限定的lread(V):
写算法
当主机提交对网格中的卷的写时,使用写算法,其被称为网格写或lwrite。数据x到卷V的写的算法变为由下列限定的lwrite(V,x):
背景拷贝算法
为了限定背景拷贝算法,可以首先介绍一些记法。需要返回该稀疏链的链头的功能,sparseHead(V)。在图3A中,这可以是:
sparseHead(B)=sparseHead(C)=sparseHead(A)=A
sparseHead(B2)=sparseHead(C2)=sparseHead(A2)=A2
sparseHead(B1)=sparseHead(C1)=sparseHead(A1)=A1
使用该功能,算法、网格拷贝或lcopy为
清理算法
网格清理算法或lclean保证颗粒不由任何其他目标卷依赖。lclean算法为
使用这些算法,卷及其快照的链可以在使用级联方法的写时拷贝环境中被克隆以便保持源卷I/O性能预期。
从这些算法,本领域的技术人员可以操作中间未克隆链元素。在链中可以有在该链的克隆中不需要的卷。
在稀疏拷贝过程完成之前也可以操作网格中的快照的停止。
在稀疏拷贝过程完成之前也可以恢复主卷。
参照图4A,流程图400示出根据各种实施例的读操作。
针对卷节点执行401网格读操作。可以确定402是否有从源或稀疏源节点到所需卷节点的映射。如果没有映射,则可以读403卷节点。
然而,如果有映射,可以读404卷节点的元数据以通过读分裂位图确认卷节点是否在目标上。元数据也可以指示可以根据需要读405元数据的高水印以确认读正确链。
参照图4B,流程图410示出根据上面给出的网格读算法和使用上面介绍的记法的读操作的详细示例性实施例。
针对卷V执行网格读操作,421。确定411 Empty(Map(V).S)是否为真。如果是,则没有从源到卷的映射。然后确定412 Empty(Map(V).bS)是否为真。如果是,则没有从稀疏源到卷的映射。所以读413卷,read(V)。
如果在412确定Empty(Map(V).bS)为假,则检查414 Map(V).BIT的位图和高水印并且如果任一为真则读413卷,read(V)。如果任一不为真,则读415被映射稀疏源的网格读,lread(Map(V).bS)。
如果在411确定Empty(Map(V).S)为假,则确定416 Empty(Map(V).bS)是否为真。如果是则检查417 Map(V).BIT的位图,并且如果为真,则读在目标上并且读卷413,read(V)。如果Map(V).BIT的位图417不为真,则读418的被映射源的网格读,lread(Map(V).S)。
如果在411确定Empty(Map(V).S)为假,并且然后确定416 Empty(Map(V).bS)为假,则检查419 Map(V).BIT的位图,并且如果为真,则读在目标上并且读卷413,read(V)。
如果在411确定Empty(Map(V).S)为假,并且然后确定416 Empty(Map(V).bS)为假,则检查419 Map(V).BIT的位图,并且如果为假,则读不在目标上并且检查420 Map(V).HWM的高水印,并且如果为真,则网格读被映射源418,lread(Map(V).S)。如果Map(V).HWM为假则方法网格读被映射稀疏源415,lread(Map(V).bS)。
参照图5A,流程图500示出根据各种实施例的写操作的例子。
针对卷节点执行501网格写操作。根据需要参考502呈目标位图和高水印的形式的映射和元数据。需要时这可以包括对映射的写操作503。更新505呈目标位图和高水印的形式的映射和元数据。
参照图5B和5C,流程图510和530示出根据上面给出的网格写算法和使用上面介绍的记法的写操作的详细示例性实施例。
针对卷节点V执行511网格写操作以写x。可以确定512Empty(Map(V).bS)是否为真。如果它为假,则方法进入下面所述的图5C。
如果确定512 Empty(Map(V).bS)为真,则可以确定513 Empty(Map(V).T)是否为真。如果Empty(Map(V).bT)为假,则确定514 Map(Map(V).T).BIT是否为真。如果它为真,则方法循环回到步骤517,但是如果它为假,则可以执行515 Write(Map(V).T,lread(V))的写操作。如果Map(Map(V).T).BIT设置516为真,则方法可以循环回到步骤517。
在步骤517,可以确定Empty(Map(V).bT)是否为真。如果在517 Empty(Map(V).bT)为真,则方法将x写到卷节点V 518,Write(V,x)。如果Empty(Map(V).bT)为假,则确定519Map(Map(V).bT).BIT是否为真。如果在519 Map(Map(V).bT).BIT为真,则方法将x写到卷节点V 518,Write(V,x)。如果在519 Map(Map(V).bT).BIT为假,则确定520 Map(Map(V).bT).HWM是否为真。如果在520 Map(Map(V).bT).HWM为真,则方法将x写到卷节点V 518,Write(V,x)。如果在520 Map(Map(V).bT).HWM为假,则执行521 Write(Map(V).bT,lread(V))的写操作并且设置522 Map(Map(V).bT).BIT,并且然后方法循环回到将x写到卷节点V 518,Write(V,x)。
一旦在518执行Write(V,x),确定523 Empty(Map(V).S)是否为真。如果它为真则在524确定Empty(Map(V).bS)是否为真。如果524为真,则方法结束526。如果523或524为假,则Map(V).BIT设置525为真并且然后方法结束526。
参照图5C,流程图530显示图5B内的方法,当在512确定Empty(Map(V).bS)为假时执行所述方法。
确定531 Empty(Map(V).T)是否为真。如果它为假,则确定532 Map(Map(V).T).BIT是否为真。如果它为真,则方法循环回到步骤533。如果它为假,则确定534 Map(Map(Map(V).T).bS).HWM是否为真。如果534为真则确定535 Map(Map(V).T).HWM是否为真。如果535为真或534为假则对Write(Map(V).T,lread(V))执行536写操作并且将Map(Map(V).T).BIT设置537为真。如果535为假,则方法进入步骤533。
如果在531 Empty(Map(V).T)为真,或在532 Map(Map(V).T).BIT为真,或在步骤537之后,方法进入步骤533。
步骤533确定Empty(Map(V).bT)是否为真。如果它为真,则方法进入图5B。如果Empty(Map(V).bT)为假,则确定538 Map(Map(V).bT).HWM是否为真,如果是则方法循环回到图5B。如果538为假,则对Write(Map(V).bT,lread(Map(V).bT)执行539写操作并且将Map(Map(V).bT).BIT设置540为真。然后方法循环回到图5B。
参照图6A,流程图600示出根据各种实施例的拷贝操作的一般化例子。
可以针对卷节点执行601网格背景拷贝操作。
如果有从稀疏源到卷的映射602并且卷不是高水印并且卷不是目标,则进行下一步骤。
如果有稀疏链的链头的空映射603并且源或稀疏链的链头在卷处的目标上,则进行下一步骤。
写操作604将卷的网格读写到卷。针对卷设置605位图和高水印。
参照图6B,流程图610示出根据上面给出的网格拷贝算法和使用上面介绍的记法的背景拷贝操作的详细示例性实施例。
可以针对卷V执行611网格拷贝操作。
确定612 Empty(Map(V).bS)是否为真,如果是则方法结束613。如果Empty(Map(V).bS)为假,则确定614 Map(V).HWM是否为真,如果是则方法结束613。如果Map(V).HWM为假,则确定615 Map(V).BIT是否为真,如果是则方法结束613。
如果Map(V).BIT为假,则确定616 Empty(Map(Map(SparseHead(V)).S)是否为真。这确定是否没有到稀疏链的链头的映射。如果是,则进行对卷V的lread(V)的写617,Write(V.lread(V))。另外,将Map(V).BIT设置为真618并且将Map(V).HWM设置为真619,并且方法结束613。
如果在616确定Empty(Map(Map(SparseHead(V)).S)为假,则确定620Map(SparseHead(V)).BIT是否为真。如果是,则进行对卷V的lread(V)的写617,Write(V.lread(V))。另外,将Map(V).BIT设置为真618并且将Map(V).HWM设置为真619,并且方法结束613。
如果在620确定Map(SparseHead(V)).BIT为假,则将Map(V).BIT设置为真619并且方法结束613。
参照图7A,流程图700示出根据各种实施例的方法的清理操作。
针对卷节点执行701网格清理操作。如果有从稀疏源节点到卷节点的映射和从稀疏目标或从目标节点到卷节点的映射,则需要清理操作702。清理操作包括写操作和元数据的更新703。
参照图7B,流程图720示出根据上面给出的网格清理算法和使用上面介绍的记法的清理操作的更详细示例性实施例。
可以针对卷节点V执行网格清理操作721。可以确定722 Empty(Map(V).bT)是否为真。如果它为真,则确定723 Empty(Map(V).T)是否为真。如果是,则方法结束723,原因是不需要清理。
如果确定722 Empty(Map(V).bT)为假,则确定723 Map(V).BIT是否为真。如果在733 Map(V).BIT为假,则方法循环回到723的下一步骤。如果在733 Map(V).BIT为真,则确定734(Map(V).bT).HWM是否为真,并且如果是,则方法循环回到723的下一步骤。如果在734Map(V).bT).HWM为假,则确定735(Map(V).bT).BIT是否为真,并且如果是,则方法循环回到723的下一步骤。如果在735(Map(V).bT).BIT为假,则方法执行Write(Map(V).bT,lread(V))的写736并且将Map(Map(V).bT).BIT设置737为真。然后方法循环回到723的下一步骤。
如果确定722 Empty(Map(V).bT)为真但是确定723 Empty(Map(V).T)为假,则方法进入步骤726。如果确定723 Empty(Map(V).T)为真,则方法在724结束。
在步骤726确定Map(Map(V).T).BIT是否为真。如果它为真,则方法结束724。
如果确定726 Map(Map(V).T).BIT为假,则确定727 Map(Map(V).T).HWM是否为假。如果它为假,则方法结束724。
然而,如果高水印为真,则确定728 Map(V).BIT是否为真。如果它为真则执行729Write(Map(V).T,lread(Map(V).T))的写操作。在步骤730,将Map(Map(V).T).BIT设置为真,并且方法结束724。
如果在728 Map(V).BIT为假,则确定731 Map(V).HWM是否为真,并且如果是,则方法结束724。如果Map(V).HWM为假,则确定732 Map(SparseHead(V)).BIT是否为真,指示节点是稀疏链的链头。如果为真,则方法继续写729和730,如果为假则方法结束724。
图8是根据各种实施例的系统的框图。框图示出包括所述的功能性的存储控制器800的示例性实施例。
存储控制器可以包括至少一个处理器801,硬件模块,或用于执行所述部件的功能的电路,所述部件可以是在至少一个处理器上执行的软件单元。存储器802可以配置成将计算机指令803提供给至少一个处理器801以执行部件的功能性。
存储控制器800可以包括用于创建卷节点的闪速拷贝图像的闪速拷贝部件810。
克隆部件811可以被提供用于克隆卷及其快照以创建包括保持快照所需的任何关联元数据的镜链。克隆部件811可以创建多个克隆。
网格结构部件812可以被提供用于结构化原始依赖链和被克隆镜链的卷和快照的网格。
映射部件813可以保持网格结构的节点之间的映射。元数据部件814可以保持和读与网格结构中的卷节点关联的元数据。元数据部件814可以包括目标指示器部件815和高水印元数据部件816。
读操作部件821可以被提供用于执行网格读操作。写操作部件822可以被提供用于执行网格写操作。拷贝操作部件823可以被提供用于执行网格拷贝操作。清理操作部件824可以被提供用于执行网格清理操作。
即时虚拟拷贝指令开始即时虚拟拷贝过程,其可以创建从源卷到目标卷的映射。在该特定时间点的源卷的图像现在在目标卷上可获得。这在源卷上创建数据的备份,并且也允许在源卷的数据上进行测试和其他管理任务,而没有丢失任何原始数据的伴随风险。
图9是根据各种实施例的计算环境中的存储系统的框图。
存储控制器900在网络990上接收来自生产计算机950a,b,…k的输入/输出(I/O)请求,其指向配置成相应地具有卷(例如,逻辑单元号,逻辑器件等)922a,b…n和942a,b…l的存储装置920、940,其中n和l可以是不同整数值或相同整数值。卷可以是存储装置的任何逻辑或物理元件。
存储控制器900还包括级联引擎910。级联引擎910执行数据(例如,从生产计算机950a、950b、950k)即时虚拟拷贝到存储装置920、940或存储装置920、940之间。在某些实施例中,级联引擎910可以在连接到存储控制器900的另一存储控制器处被执行,作为在存储控制器900处执行的替代或附加。
实施例可应用于在任何存储介质之间传送数据。例如,可以使用存储介质位于单个存储控制器处的某些实施例,然而,可以使用存储介质位于不同存储控制器、不同物理地点等处的某些替代实施例。每个存储设备可以是用于即时虚拟拷贝的源或目标。
在某些实施例中,可移动存储装置(作为存储装置920、940的替代或附加)可以用于保持拷贝。可移动存储装置可以位于存储控制器900处。
存储控制器900还可以包括处理器联合体(未显示)并且可以包括本领域中已知的任何存储控制器或服务器。
生产计算机950a,b,…k可以包括本领域中已知的任何计算设备。存储控制器900和(一个或多个)生产计算机系统950a,b,…k经由网络990通信,所述网络可以包括任何类型的网络,例如,存储区域网(SAN),局域网(LAN),广域网(WAN),因特网,内联网等。存储装置920、940均可以包括存储设备的阵列,例如直接存取存储设备(DASDs),简单磁盘捆绑(JBOD),独立磁盘冗余阵列(RAID),虚拟化设备等。
另外,尽管图9示出单个存储控制器900,但是本领域的技术人员将知道多个存储控制器可以经由网络(例如,局域网(LAN),广域网(WAN),因特网等)被连接,并且多个存储控制器中的一个或多个可以实现所述方法和系统。
用于实现所述系统的方面的计算系统可以被提供,如关于图10所述,其在云计算实现方式的背景下给出,但是同样可以适用于非云计算实现方式。
本发明可以被实现为系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
事先应当理解尽管本发明包括对云计算的详细描述,但是本文中所述的教导的实现方式不限于云计算环境。而是,本发明的实施例能够与现在已知或以后发展的任何其他类型的计算环境结合实现。
云计算是能够方便、按需网络访问可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储装置、应用程序、虚拟机和服务)的共享池的一种服务交付的模式,其可以快速地被提供和释放,管理工作或与服务提供商的交互很少。该云模式可以包括至少五个特性,至少三个服务模式,和至少四个部署模式。
特性如下:
按需自助服务:云顾客可以根据需要自动地单方提供计算能力,例如服务器时间和网络存储,而不需要与服务提供商人工交互。
宽网络访问:能力在网络上可用并且通过标准机构访问,其通过不同种类的瘦或胖客户平台(例如,移动电话、膝上型电脑和PDAs)促进使用。
资源池化:提供商的计算资源被池化以使用多用户模式服务多个顾客,动态地分配和根据需要重新分配不同物理和虚拟资源。有一种位置独立感,原因在于顾客一般不能控制或知道被提供资源的实际位置,但是可以能够以更高抽象水平指定位置(例如,国家、州或数据中心)。
快速弹性:能力可以快速地和弹性地并且在一些情况下自动地被提供以快速地向外扩展和快速地释放以快速地向内扩展。对于顾客,可用于提供的能力似乎不受限制并且可以在任何时间以任何量被购买。
计量服务:云系统通过以适合于服务类型(例如,存储、处理、带宽和活动用户帐户)的某个抽象水平杠杆调节计量能力自动地控制和优化资源使用。资源使用可以被监测、控制和报告,为被使用服务的提供商和顾客提供透明性。
服务模式如下:
软件即服务(SaaS):提供给顾客的能力是使用在云基础设施上运行的提供商的应用程序。应用程序通过诸如网页浏览器(例如,基于网页的电子邮件)的瘦客户接口从各种客户装置可访问。顾客不管理或控制包括网络、服务器、操作系统、存储乃至单独的应用能力的底层云基础设施,可能的例外是有限的用户特定应用配置设置。
平台即服务(Paas):提供给顾客的能力是将使用提供商支持的编程语言和工具创建的顾客创建的或获取的应用程序部署到云基础设施上。顾客不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但是能控制部署的应用程序和可能的应用托管环境配置。
基础设施即服务(Iaas):提供给顾客的能力是提供处理、存储、网络和其他基础计算资源,其中顾客能够部署和运行可以包括操作系统和应用程序的任意软件。顾客不管理或控制底层云基础设施,但是能控制操作系统、存储、部署的应用程序,并且可能有限控制选择联网部件(例如,主机防火墙)。
部署模式如下:
私有云:云基础设施仅仅供组织操作。它可以由组织或第三方管理并且可以以本地部署或外部部署存在。
团体云:云基础设施由若干组织共享并且支持具有共同关心的问题(例如,任务、安全性要求、政策和合规考虑)的特定团体。它可以由组织或第三方管理并且可以以本地部署或外部部署存在。
公共云:云基础设施可用于一般公众或大产业集群并且由销售云服务的组织拥有。
混合云:云基础设施是两个或更多个云(私有、团体或公共)的组合,其保持唯一实体,但是由允许数据和应用便携性的标准化或专有技术(例如,用于云之间的负荷平衡的云爆发)捆绑在一起。
云计算环境是目标集中于无国界、低耦合、模块性和语义互操作性的服务。云计算的核心是包括互连节点的网络的基础设施。
图10是根据各种实施例的计算机系统或云服务器的实施例的框图。
显示可以实现为云计算节点1000的计算机系统或服务器的例子的示意图。
云计算节点1000仅仅是合适的云计算节点的一个例子并且不旨在提出关于本文中所述的发明的实施例的使用或功能的范围的任何限制。无论如何,云计算节点1000能够实现和/或执行上文中所述的任何功能性。
在云计算节点1000中有计算机系统/服务器1012,其可用许多其他通用或专用计算系统环境或配置操作。可以适合与计算机系统/服务器1012一起使用的公知的计算系统、环境和/或配置的例子包括、但不限于个人计算机系统,服务器计算机系统,瘦客户端,胖客户端,手持式或膝上型设备,多处理器系统,基于微处理器的系统,机顶盒,可编程消费电子产品,网络PCs,微计算机系统,主计算机系统,和包括以上系统或设备的任何一个的分布式云计算环境,等等。
可以在由计算机系统执行的诸如程序模块的计算机系统可执行指令的一般背景下描述计算机系统/服务器1012。一般而言,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、部件、逻辑、数据结构等。计算机系统/服务器1012可以在分布式云计算环境中实施,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质中。
如图10中所示,以通用计算设备的形式显示云计算节点1000中的计算机系统/服务器1012。计算机系统/服务器1012的部件可以包括、但不限于一个或多个处理器或处理单元1016,系统存储器1028,和将包括系统存储器1028的各种系统部件联接到处理器1016的总线1018。
总线1018表示总线结构的若干类型中的任何一种或多种,包括存储器总线或存储器控制器,外围总线,加速图形端口,和处理器或本地总线,其使用各种总线架构中的任何一种。作为例子,并且非限制地,这样的架构包括工业标准架构(ISA)总线,微通道架构(MCA)总线,加强ISA(EISA)总线,视频电子标准协会(VESA)本地总线,和外围设备互连(PCI)总线。
计算机系统/服务器1012典型地包括各种计算机系统可读介质。这样的介质可以是由计算机系统/服务器1012可访问的任何可用的介质,并且它包括易失性和非易失性介质、可移动和不可移动介质。
系统存储器1028可以包括呈易失性存储器的形式的计算机系统可读介质,例如随机存取存储器(RAM)1030和/或高速缓冲存储器1032。计算机系统/服务器1012还可以包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。仅仅作为例子,存储系统1034可以被提供用于对不可移动、非易失性磁性介质(未显示并且典型地称为“硬盘驱动器”)进行读和写。尽管未显示,但是用于对不可移动、非易失性磁盘(例如,“软盘”)进行读和写的磁盘驱动器和用于对可移动、非易失性光盘(例如CD-ROM、DVD-ROM或其他光介质)进行读或写的光盘驱动器可以被提供。在这样的情况下,每个可以通过一个或多个数据媒体接口连接到总线1018。如下面将进一步所示和所述,存储器1028可以包括至少一个程序产品,其具有配置成执行各种实施例的功能的一组(例如,至少一个)程序模块。
作为例子并且非限制地,具有一组(例如,至少一个)程序模块1042的程序/实用程序1040可以存储在存储器1028中,以及操作系统,一个或多个应用程序,其他程序模块,和程序数据。操作系统、一个或多个应用程序、其他程序模块和程序数据或其某个组合的每一个可以包括联网环境的实现方式。程序模块1042一般执行实施例的功能和/或方法,如本文中所述。
计算机系统/服务器1012也可以与下列通信:一个或多个外部设备1014,例如键盘,定点设备,显示器1024等;能够使用户与计算机系统/服务器1012交互的一个或多个设备;和/或能够使计算机系统/服务器1012与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)。这样的通信可以经由输入/输出(I/O)接口1022发生。更进一步地,计算机系统/服务器1012可以经由网络适配器1020与一个或多个网络通信,例如局域网(LAN),广域网(WAN),和/或公用网(例如,因特网)。如图所示,网络适配器1020经由总线1018与计算机系统/服务器1012的其他部件通信。应当理解尽管未显示,其他硬件和/或软件部件可以与计算机系统/服务器1012结合使用。例子包括、但不限于:微码,设备驱动器,冗余处理单元,外部磁盘驱动阵列,RAID系统,磁带驱动器,和数据档案存储系统等。
图11是根据各种实施例的云计算环境的示意图。
描绘示例性云计算环境1150。如图所示,云计算环境1150包括一个或多个云计算节点1000,由云顾客使用的本地计算设备可以与其通信,例如,个人数字助理(PDA)或蜂窝电话1154A,桌上型计算机1154B,膝上型计算机1154C,和/或汽车计算机系统1154N。节点1000可以彼此通信。它们可以在一个或多个网络中物理地或虚拟地分组(未显示),例如,如上文中所述的私有、团体、公共或混合云,或它们的组合。这允许云计算环境1150提供基础设施、平台和/或软件作为服务,对于所述服务云顾客不需要保持本地计算设备上的资源。应当理解图11中所示的计算设备1154A-N的类型旨在仅仅是示例性的并且计算节点1000和云计算环境1150可以在任何类型的网络和/或网络可寻址连接上与任何类型的计算机化设备通信(例如,使用网页浏览器)。
图12是根据各种实施例的云计算环境的抽象模型层的图。
显示由云计算环境1150(图11)提供的一组功能抽象层。事先应当理解图12中所示的部件、层和功能旨在仅仅是示例性的并且本发明的实施例不限于此。如图所示,提供以下层和相应功能:
硬件和软件层1260包括硬件和软件部件。硬件部件的例子包括:主机1261;基于RISC(精简指令集计算机)架构的服务器1262;服务器1263;刀片式服务器1264;存储设备1265;以及网络和联网部件1266。在一些实施例中,软件部件包括网络应用服务器软件1267和数据库软件1268。
虚拟化层1270提供可以从其提供虚拟实体的以下例子的抽象层:虚拟服务器1271;虚拟存储装置1272;虚拟网络1273,其包括虚拟私有网络;虚拟应用和操作系统1274;以及虚拟客户端1275。
在一个例子中,管理层1280可以提供下面所述的功能。资源配置1281提供计算资源和用于在云计算环境中执行任务的其他资源的动态采购。计量和定价1282在云计算环境中使用资源时提供成本跟踪,并且为这些资源的消耗记帐或计价。在一个例子中,这些资源可以包括应用软件许可证。安全措施提供云顾客和任务的身份验证,以及数据和其他资源的保护。用户门户1283为顾客和系统管理员提供对云计算环境的访问。服务水平管理1284提供云计算资源分配和管理使得满足所需的服务水平。服务水平协议(SLA)计划和实施1285提供根据SLA预期未来需求的云计算资源的预先安排和采购。
工作负荷层1290提供可以使用云计算环境的功能性的例子。可以从该层提供的工作负荷和功能的例子包括:映射和导航1291;软件开发和生命周期管理1292;虚拟课堂教育交付1293;数据分析处理1294;交易处理1295;以及本发明的实施例的存储控制器900处理1296。替代地,存储控制器900处理可以在管理层1280被执行。
本发明的各种实施例的描述为了举例说明已被展现,但是不旨在穷尽或限制到所公开的实施例。许多修改和变化将是本领域普通技术人员显而易见的,而不脱离所述实施例的范围和精神。本文中使用的术语被选择以解释实施例的原理,技术应用或对市场中发现的技术的技术改进,或使本领域的普通技术人员能够理解本文中公开的实施例。
Claims (20)
1.一种使用链克隆进行存储拷贝的方法,其包括:
以依赖链的形式提供具有一个或多个快照的卷,其中所述卷和所述一个或多个快照是所述依赖链中的卷节点,并且提供保持所述一个或多个快照所需的关联元数据;
克隆所述依赖链以创建包括导致稀疏卷节点的所述卷和所述一个或多个快照的稀疏拷贝的至少一个稀疏拷贝链,导致卷节点的依赖链和被克隆卷节点的至少一个或多个稀疏拷贝链的网格结构;
限定从所述依赖链中的源和目标卷节点和所述至少一个稀疏拷贝链中的稀疏源和稀疏目标卷节点到卷节点的映射;以及
限定每个卷节点的元数据,其包括指示数据是否在目标卷节点上的状态和指示如果数据不在目标卷上则转向所述依赖链和所述至少一个稀疏拷贝链中的哪一个的高水印。
2.根据权利要求1所述的方法,其还包括:
在卷节点操作期间保持所述映射和所述元数据,并且当所述卷是被克隆稀疏拷贝链的一部分时,使用所述映射和所述元数据修改输入/输出操作。
3.根据权利要求1所述的方法,其中所述元数据包括用于在卷节点拷贝和清理操作期间使用的稀疏拷贝链的头卷节点的指示。
4.根据权利要求1所述的方法,其中所述元数据状态是如果数据在目标卷节点上则设置为真的位图。
5.根据权利要求1所述的方法,其还包括:
重复克隆步骤以在原始卷依赖链和先前被克隆的镜链之间加入新的稀疏拷贝链。
6.根据权利要求1所述的方法,其中所述网格结构具有在第一方向上的依赖链操作和在垂直于所述第一方向的第二方向上的稀疏拷贝链操作。
7.根据权利要求1所述的方法,其还包括:
执行卷节点的读操作,包括:
确定是否存在从源卷节点或稀疏拷贝卷节点到卷节点的映射;
检查卷节点元数据以确定卷节点是否具有指示的目标状态;以及
检查卷节点元数据以确定目标节点的正确链的高水印指示。
8.根据权利要求1所述的方法,其还包括:
执行卷节点的写操作,包括:
在执行写操作之前参考映射和元数据,如果需要则执行对映射的写操作;以及
在写操作之后更新映射和元数据。
9.根据权利要求1所述的方法,其还包括:
执行卷节点的拷贝操作,包括:
需要时执行写操作以将卷节点的网格读写到卷节点。
10.根据权利要求1所述的方法,其还包括:
执行卷节点的清理操作,包括:
执行写操作以清理元数据。
11.一种用链克隆进行存储拷贝的系统,其包括:
处理器和存储器,所述存储器配置成将计算机程序指令提供给所述处理器以执行以下部件的功能;
时间点拷贝部件,用于以依赖链的形式提供具有一个或多个快照的卷,其中所述卷和所述一个或多个快照是所述依赖链中的卷节点,并且提供保持所述一个或多个快照所需的关联元数据;
克隆部件,用于克隆所述依赖链以创建包括导致稀疏卷节点的所述卷和所述一个或多个快照的稀疏拷贝的至少一个稀疏拷贝链;
网格结构部件,用于创建卷节点的依赖链和被克隆卷节点的至少一个稀疏拷贝链的网格结构;
映射部件,用于限定从所述依赖链中的源和目标卷节点和所述至少一个稀疏拷贝链中的稀疏源和稀疏目标卷节点到卷节点的映射;以及
元数据部件,用于限定每个卷节点的元数据,其包括指示数据是否在目标卷节点上的状态和指示如果数据不在目标卷上则转向所述依赖链和所述至少一个稀疏拷贝链中的哪一个的高水印。
12.根据权利要求11所述的系统,其中所述映射部件和所述元数据部件在卷节点操作期间保持所述映射和所述元数据,并且当所述卷是被克隆稀疏拷贝链的一部分时使用所述映射和所述元数据修改输入/输出操作。
13.根据权利要求11所述的系统,其中所述元数据部件限定包括用于在卷节点拷贝和清理操作期间使用的稀疏拷贝链的头卷节点的指示的元数据。
14.根据权利要求11所述的系统,其中所述元数据状态是如果数据在目标卷节点上则设置为真的位图。
15.根据权利要求11所述的系统,其中所述克隆部件能够重复克隆步骤以在原始卷依赖链和先前被克隆的镜链之间加入新的稀疏拷贝链。
16.根据权利要求11所述的系统,其中所述网格结构具有在第一方向上的依赖链操作和在垂直于所述第一方向的第二方向上的稀疏拷贝链操作。
17.根据权利要求11所述的系统,其还包括读操作部件,其用于:
执行卷节点的读操作,包括:
确定是否存在从源卷节点或稀疏拷贝卷节点到卷节点的映射;
检查卷节点元数据以确定卷节点是否具有指示的目标状态;以及
检查卷节点元数据以确定目标节点的正确链的高水印指示。
18.根据权利要求11所述的系统,其还包括写操作部件,其用于:
执行卷节点的写操作,包括:
在执行写操作之前参考映射和元数据,如果需要则执行对映射的写操作;以及
在写操作之后更新映射和元数据。
19.根据权利要求11所述的系统,其还包括拷贝操作部件,其用于:
执行卷节点的拷贝操作,包括:
需要时执行写操作以将卷节点的网格读写到卷节点。
20.根据权利要求11所述的系统,其还包括清理操作部件,其用于:
执行卷节点的清理操作,包括:
执行写操作以清理元数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/880,716 US9632724B1 (en) | 2015-10-12 | 2015-10-12 | Point-in-time copy with chain cloning |
US14/880,716 | 2015-10-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107015761A CN107015761A (zh) | 2017-08-04 |
CN107015761B true CN107015761B (zh) | 2019-11-19 |
Family
ID=57610561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610892297.6A Active CN107015761B (zh) | 2015-10-12 | 2016-10-12 | 使用链克隆进行存储拷贝的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9632724B1 (zh) |
CN (1) | CN107015761B (zh) |
DE (1) | DE102016119298B4 (zh) |
GB (1) | GB2545055B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10846116B2 (en) * | 2016-03-11 | 2020-11-24 | Red Hat Israel, Ltd. | Correcting a volume chain after a volume creation failure is detected |
US9910620B1 (en) * | 2016-03-31 | 2018-03-06 | Emc Corporation | Method and system for leveraging secondary storage for primary storage snapshots |
US10083087B1 (en) | 2017-07-14 | 2018-09-25 | International Business Machines Corporation | Managing backup copies in cascaded data volumes |
CN109254874A (zh) * | 2018-08-29 | 2019-01-22 | 郑州云海信息技术有限公司 | 一种块存储数据快照类型的转化方法、装置及设备 |
CN109597707B (zh) * | 2018-10-25 | 2024-04-23 | 平安科技(深圳)有限公司 | 克隆卷数据拷贝方法、装置及计算机可读存储介质 |
CN109885551B (zh) * | 2019-01-04 | 2024-03-12 | 平安科技(深圳)有限公司 | 电子装置、元数据处理方法和计算机可读存储介质 |
CN110795389B (zh) * | 2019-10-28 | 2022-09-30 | 深信服科技股份有限公司 | 基于存储快照的拷贝方法、用户设备、存储介质及装置 |
CN111158593B (zh) * | 2019-12-26 | 2022-07-08 | 浪潮(北京)电子信息产业有限公司 | 一种多快照依赖关系处理方法、装置及相关组件 |
CN111581288B (zh) * | 2020-05-07 | 2023-01-06 | 苏州浪潮智能科技有限公司 | 一种对象克隆的方法、系统、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1704903A (zh) * | 2004-06-03 | 2005-12-07 | 华为技术有限公司 | 一种快照备份的方法 |
CN1794161A (zh) * | 2004-12-23 | 2006-06-28 | 国际商业机器公司 | 具有多个拷贝目标的存储系统 |
CN102834811A (zh) * | 2010-05-25 | 2012-12-19 | 国际商业机器公司 | 多级联备份过程 |
US9104544B1 (en) * | 2010-05-28 | 2015-08-11 | Bromium, Inc. | Mitigating eviction by maintaining mapping tables |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5761678A (en) * | 1996-06-26 | 1998-06-02 | International Business Machines Corporation | Creation of clone storage area with identification of base storage area and deferred cloning of metadata |
US6128016A (en) * | 1996-12-20 | 2000-10-03 | Nec Corporation | Graphic user interface for managing a server system |
US6868417B2 (en) * | 2000-12-18 | 2005-03-15 | Spinnaker Networks, Inc. | Mechanism for handling file level and block level remote file accesses using the same server |
US7302500B2 (en) * | 2003-04-30 | 2007-11-27 | Dynamic Network Factory, Inc. | Apparatus and method for packet based storage virtualization |
US8205189B2 (en) * | 2006-07-13 | 2012-06-19 | Oracle International Corporation | Method and system for definition control in a data repository application |
US7870356B1 (en) * | 2007-02-22 | 2011-01-11 | Emc Corporation | Creation of snapshot copies using a sparse file for keeping a record of changed blocks |
US8082407B1 (en) * | 2007-04-17 | 2011-12-20 | American Megatrends, Inc. | Writable snapshots for boot consolidation |
US7788244B2 (en) * | 2007-07-31 | 2010-08-31 | Hewlett-Packard Development Company, L.P. | Method and system for copying a snapshot tree |
US8195620B2 (en) | 2007-10-19 | 2012-06-05 | International Business Machines Corporation | Storage system with improved multiple copy targeting |
US7991973B2 (en) * | 2008-05-05 | 2011-08-02 | Panasas, Inc. | Data storage systems, methods and networks having a snapshot efficient block map |
JP4886918B1 (ja) | 2008-10-30 | 2012-02-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | フラッシュコピー・プロセスを処理する方法、ならびにそのためのシステム、およびコンピュータ・プログラム |
US8560787B2 (en) * | 2009-03-30 | 2013-10-15 | International Business Machines Corporation | Incremental backup of source to target storage volume |
GB0907171D0 (en) * | 2009-04-27 | 2009-06-10 | Springsource Ltd | Method and apparatus for automatically generating source code files in a storage unit |
US8788768B2 (en) | 2010-09-29 | 2014-07-22 | International Business Machines Corporation | Maintaining mirror and storage system copies of volumes at multiple remote sites |
US8868860B2 (en) * | 2011-09-23 | 2014-10-21 | International Business Machines Corporation | Restore in cascaded copy environment |
US8719523B2 (en) * | 2011-10-03 | 2014-05-06 | International Business Machines Corporation | Maintaining multiple target copies |
US9280396B2 (en) * | 2012-11-01 | 2016-03-08 | Netapp, Inc. | Lock state synchronization for non-disruptive persistent operation |
-
2015
- 2015-10-12 US US14/880,716 patent/US9632724B1/en active Active
-
2016
- 2016-10-10 GB GB1617177.9A patent/GB2545055B/en active Active
- 2016-10-11 DE DE102016119298.8A patent/DE102016119298B4/de active Active
- 2016-10-12 CN CN201610892297.6A patent/CN107015761B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1704903A (zh) * | 2004-06-03 | 2005-12-07 | 华为技术有限公司 | 一种快照备份的方法 |
CN1794161A (zh) * | 2004-12-23 | 2006-06-28 | 国际商业机器公司 | 具有多个拷贝目标的存储系统 |
CN102834811A (zh) * | 2010-05-25 | 2012-12-19 | 国际商业机器公司 | 多级联备份过程 |
US9104544B1 (en) * | 2010-05-28 | 2015-08-11 | Bromium, Inc. | Mitigating eviction by maintaining mapping tables |
Also Published As
Publication number | Publication date |
---|---|
GB201617177D0 (en) | 2016-11-23 |
DE102016119298B4 (de) | 2023-08-17 |
DE102016119298A1 (de) | 2017-04-13 |
US9632724B1 (en) | 2017-04-25 |
GB2545055B (en) | 2020-04-29 |
US20170102881A1 (en) | 2017-04-13 |
GB2545055A (en) | 2017-06-07 |
CN107015761A (zh) | 2017-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107015761B (zh) | 使用链克隆进行存储拷贝的方法和系统 | |
US11132264B2 (en) | Point-in-time copy restore | |
US10209910B2 (en) | Copy-redirect on write | |
US11079966B2 (en) | Enhanced soft fence of devices | |
US9514004B2 (en) | Restore in cascaded copy environment | |
US8838529B2 (en) | Applying replication rules to determine whether to replicate objects | |
JP2018531445A6 (ja) | コピーリダイレクト・オン・ライト | |
US9760449B2 (en) | Restoring a point-in-time copy | |
US20200081801A1 (en) | Performing a recovery copy command using a recovery copy data structure for a backup volume lookup | |
US11182081B2 (en) | Performing a recovery copy command to restore a safeguarded copy backup to a production volume | |
CN109906439A (zh) | 通过存储控制器向对象存储云的时间点备份 | |
US9710308B1 (en) | Workflow for migration planning of data storage systems | |
US9760450B2 (en) | Restoring a clone point-in-time copy | |
WO2015102033A1 (en) | Building an undo log for in-memory blocks of data | |
JP2023536896A (ja) | データの論理的破損保護 | |
US20200081793A1 (en) | Performing a recovery copy command to create a recovery volume for a consistency group | |
US10698631B2 (en) | Point-in-time copy with target write optimization | |
KR20220154822A (ko) | 분산 데이터 스토리지 환경들에서의 안전한 데이터 복제 | |
US11086559B2 (en) | Cloud based store and restore with copy services | |
US20210157486A1 (en) | Reducing data replications among storage locations | |
US20190155820A1 (en) | Consistent point-in-time copy of a consistent asynchronous mirror target without pausing a consistent asynchronous mirror copy | |
US11663181B2 (en) | Database replication using heterogenous encoding | |
Schulz | Data Infrastructure Management: Insights and Strategies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |