CN108376109A - 卷和快照复制 - Google Patents
卷和快照复制 Download PDFInfo
- Publication number
- CN108376109A CN108376109A CN201810054360.8A CN201810054360A CN108376109A CN 108376109 A CN108376109 A CN 108376109A CN 201810054360 A CN201810054360 A CN 201810054360A CN 108376109 A CN108376109 A CN 108376109A
- Authority
- CN
- China
- Prior art keywords
- snapshot
- aerial array
- volume
- target aerial
- initiated
- 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
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
- G06F11/1448—Management of the data involved in backup or backup restore
-
- 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/1458—Management of the backup or restore process
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- 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
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
背景技术
存储技术方案可以被分配去存储高价值数据的任务。在许多实例中,可能至关重要的是即使在发生故障的情况下仍然可以很容易地访问数据。为了确保关键数据的高可用性,一些存储技术方案采用冗余或复制技术。
附图说明
下面的详细描述将参照附图,其中:
图1A和1B是用以把来源阵列处的卷复制到包括用户发起的快照和同步快照的目标阵列的示例性设备的框图;
图2A和2B是示例性机器可读存储介质的框图,示例性机器可读存储介质包括指令,用以把来源阵列处的卷复制到目标阵列,从而使得目标阵列具有来源阵列处的卷的复制品以及重新创建的快照列表;
图2C是用以把来源阵列处的卷递增地复制到目标阵列的示例性指令的框图;
图3A是把来源阵列处的卷复制到目标阵列从而使得目标阵列具有来源阵列处的卷的复制品以及重新创建的快照列表的示例性方法的流程图;
图3B是递增地复制卷的示例性方法的流程图;
图3C是把新卷添加到复制组中的卷集合的示例性方法的流程图;
图3D和3E是通过用户发起的读写快照把来源阵列处的卷复制到目标阵列的示例性方法的流程图;以及
图4和5是来源阵列处的卷到目标阵列的递增复制的示例性流程图。
具体实施方式
存储系统正越来越多地被要求以更少的故障和更高的关键数据可用性提供连续的操作。一些系统采用冗余,从而使得数据可以在多个位置处可用并且避免单点故障。这些系统在减少停机时间的同时也减少了数据损失。在一些示例中,可以通过其中数据被全部拷贝的克隆来实现冗余。在其他示例中,可以通过快照来实现冗余,其中快照在特定时间点捕获数据以及对于该数据的后续改变。
一些存储系统采用周期性复制,从而使得快照对于一个复制组内的所有卷同时发生。这些系统可能无法合并用户发起的按需快照或者取得复制组内的各个单独的卷或卷的子集的快照。其他存储系统可能涉及次要站点处的快照管理。然而,这样的系统可能不适合利用主要站点处的相关知识。
本文中所描述的示例可以改进来源阵列与目标阵列之间的快照的使用和管理方面的灵活性。可以与周期性地取得的卷的同步快照相结合来创建和复制卷的用户发起的快照。目标阵列还可以包括来源阵列处的卷的复制品以及与来源阵列处的快照列表完全相同的重新创建的快照列表,用以确保数据的高可用性,其计及在发生故障的情况下在各个时间点处对数据状态的选择。在一些示例中,可以在来源阵列处删除来自来源阵列和目标阵列这二者的快照。在其他示例中,可以取得复制组内的卷子集的快照。在再又的其他示例中,可以把新卷添加到复制组并且与任何已经存在的快照一起复制到目标阵列。
本文中所使用的术语仅仅是出于描述特定示例的目的,而不意图作出限制。除非上下文明确地另有所指,否则本文中所使用的单数形式“一”、“一个”和“该”也意图包括复数形式。本文中所使用术语“多个”被定义成两个或多于两个。还应当理解的是,虽然在本文中可能使用“第一”、“第二”、“第三”等术语来描述各种单元,但是这些单元不应当受限于这些术语,因为除非另行声明或者上下文另有所指,否则这些术语仅被用来把一个单元与另一个单元进行区分。本文中所使用的术语“包括”意味包括但不限于,术语“包括着”意味包括着但不限于。此外,在本文中所描述的示例中,被称为“基于”给定条件的确定、动作等等可以是单独基于该条件或者是基于该条件和其他(多项)条件。
现在参照附图,图1A和1B是使用用户发起的快照和同步快照把来源阵列的卷复制到目标阵列的示例性设备的框图。在本文中的示例中所使用的“阵列”可以是指被用于基于块、基于文件或者对象存储的数据存储系统,所述数据存储系统由存储驱动器(例如硬盘驱动器)、固态驱动器、任何类型的存储盘(例如紧致盘、DVD等等)和类似物或者其组合构成。本文中所使用的“来源阵列”可以是指第一域、主导或主要站点和类似处的阵列。本文中所使用的“目标阵列”可以是指第二域、从属或次要站点和类似处的阵列。在本文中所描述的示例中,“卷”可以是指来源阵列的一部分,并且可以由存储驱动器(例如硬盘驱动器)、固态驱动器、任何类型的存储盘(例如紧致盘、DVD等等)和类似物或者其组合构成。在一些示例中,大的卷可以被划分或分区成多个逻辑卷。
图1A描绘出包括引擎110、120、130、140、150和160的示例性设备100。设备100可以是适合于执行下面所描述的功能的任何联网或计算设备。本文中所使用的“设备”可以是台式计算机、膝上型(或笔记本)计算机、工作站、平板计算机、移动电话、智能设备、交换机、路由器、服务器、刀片外壳(enclosure)或者包括处理资源的任何其他处理设备或装备。在一些示例中,设备100可以位于来源阵列的控制器节点或处理资源处。
本文中所描述的引擎(例如引擎110、120、130、140、150、160、170等等)可以包括用以实施本文中所描述的引擎的功能的硬件与编程的任何组合(它包括硬件和编程全部二者)。在本文中所描述的示例中,硬件与编程(例如机器可读指令之类的软件)的这种组合可以通过若干种不同的方式来实施。举例来说,所述编程可以涉及存储在非瞬时性机器可读存储介质上的处理资源可执行指令,并且所述硬件可以包括用以执行那些指令的处理资源。在一些示例中,所述硬件还可以包括用以部分地实施设备100的至少一个引擎的其他电子电路。在一些示例中,机器可读存储介质可以存储指令,所述指令在由处理资源执行时部分地实施设备100的其中一些或所有引擎。在这样的示例中,设备100可以包括存储指令的机器可读存储介质以及用以执行指令的处理资源。
在其他示例中,可以至少部分地通过电子电路的形式来实施设备100的任何引擎的功能。在一些示例中,本文中关于图1A描述的功能可以与本文中关于图1B和2-5当中的任一幅所描述的功能相组合来提供。
本文中所使用的机器可读存储介质可以是用以包含或存储诸如可执行指令、数据和类似物之类的信息的任何电子、磁性、光学或其他物理存储装置。举例来说,本文中所描述的任何机器可读存储介质可以是任何RAM、易失性存储器、非易失性存储器、闪存、存储驱动器(例如硬盘驱动器)、固态驱动器、任何类型的存储盘(例如紧致盘、DVD等等)和类似物或者其组合。此外,本文中所描述的任何机器可读存储介质可以是非瞬时性的。
在本文中所描述的示例中,处理资源例如可以包括一个处理器或多个处理器,所述处理器被包括在单个设备中或者分布在多个设备上。本文中所使用的处理器可以是以下各项当中的至少一项:中央处理单元(CPU),基于半导体的微处理器,图形处理单元(GPU),用以取回并执行指令的现场可编程门阵列(FPGA),适于取回并执行存储在机器可读存储介质上的指令的其他电子电路,或者所述各项的组合。处理资源110可以获取、解码并且执行存储在存储介质120上的指令,以便实施上面关于指令130、140和160所描述的功能。在其他示例中,存储介质120的任何指令的功能可以通过电子电路的形式、编码在机器可读存储介质上的可执行指令的形式或者其组合来实施。在图1A的示例中,存储介质120可以通过一个机器可读存储介质或者多个机器可读存储介质来实施。
在图1A的示例中,设备100包括接收引擎110,用以接收用户快照请求,以创建用户发起的卷的快照。本文中所使用的“用户快照请求”是来自用户(例如管理员等)的按需快照请求,用以在用户快照请求的时间创建卷的快照。用户发起的快照的创建将不会因为周期性的复制过程而被延迟。在本文中所描述的示例中,快照可以是指在特定时间点对于数据状态的空间高效的捕获。在一些示例中,用户可以通过来源阵列处的用户界面生成并且向设备100发送用户快照请求。
卷是复制组中的卷集合的成员。本文中所使用的“复制组”可以是指包括一个复制对象集合的逻辑对象,其中的每一个复制对象标识将被复制到目标阵列的来源阵列处的卷。复制组可以对于目标阵列处的该组的所有成员表示一致的时间点。在一些示例中,所述卷集合当中的每一个卷可以与相应的复制对象相关联。复制对象是被用来标识来源阵列的卷的逻辑对象。在一些示例中,每一个复制对象可以具有唯一的标识符。
响应于接收引擎110接收到用户快照请求,创建引擎120可以创建用户发起的快照。在一些示例中,可以使用写时拷贝(copy-on-write)技术来创建用户发起的快照,从而使得快照通过拷贝操作捕获对于数据的修改或改变,所述拷贝操作在没有发生对于数据的改变时不会占用空间。在其他示例中,可以使用写时重定向(redirect-on-write)技术来创建用户发起的快照,从而使得快照通过重定向操作捕获对于数据的修改或改变,而不是通过拷贝操作创建拷贝。
在一些示例中,用户发起的快照可以是只读(RO)快照。RO快照可以通过异常表(exception table)来跟踪哪些数据块已发生改变。随着块被改变,在异常表中标记出这些改变,利用原始数据更新快照,并且利用新数据更新原始卷。在其他示例中,用户发起的快照可以是读写(RW)快照。与RO快照一样,RW快照也可以通过异常表来跟踪对于数据块的改变。此外,如果数据被写入到快照,则可以在异常表中将该块标记为被已使用,但是不会从原始卷拷贝该块。通过这种方式,可以创建和修改新卷。(至少部分地)基于用户快照请求,创建引擎120可以通过任何适当的技术把用户发起的快照创建成RO快照或RW快照。
创建引擎120可以把用户发起的快照的状态设定成待定。本文中所使用的“待定状态”指的是快照的复制状态,并且表明用户发起的快照尚未被复制到目标阵列。在一些示例中,用户发起的快照的状态可以被保存到持久性存储器,从而在发生崩溃或故障的情况下可以恢复复制状态。把状态设定成待定可以涉及加标志、加标签或者通过其他方式表明快照尚未被复制到目标阵列。该状态可以被设定在原始快照列表中。
创建引擎120还可以把复制对象与用户发起的快照相关联,并且把复制对象添加到复制组。在一些示例中,复制组可以包括复制对象的集合。在相同的周期性复制时间,可以为复制组当中的每一个复制对象创建相关联的同步快照并且相关联的同步快照可以递增地复制到目标阵列,以便对于复制组中的所有复制对象确保时间点一致性。
在一些示例中,用户发起的快照可以不与复制对象相关联或者不被添加到复制组。在一些这样的示例中,只有作为复制组的成员的那些复制对象可以被复制到目标阵列,并且用户发起的快照可以不被递增地复制到目标阵列。
同步引擎130可以在周期性的同步时间周期性地创建卷的同步快照。本文中所使用的“同步快照”可以是指通过周期性复制过程周期性地创建的快照。在一些示例中,用户可以鉴于多方面的考虑确定并且设定周期性同步时间,多方面的考虑包括成本、存储资源、数据的关键性、周期性同步之间的估计数据损失和类似项。相隔更远的周期性同步时间可能使用更少的资源,但是在系统崩溃的情况下导致更大的数据损失。类似地,在时间上更靠近的周期性同步时间可能使用更多的资源,但是在系统崩溃的情况下可能导致更少的数据损失。
与用户发起的快照一样,可以通过用于创建快照的任何适当的技术来创建同步快照,任何适当的技术包括写时拷贝技术、写时重定向技术和类似技术。在创建同步快照之后,同步引擎130可以把同步快照的状态设定成待定。在一些示例中,同步快照的状态可以被保存到持久性存储器,从而可以在发生崩溃或故障的情况下恢复复制状态。
设备100还包括用以存储来源阵列处的卷的每一个快照的存储引擎140。存储引擎140还通过来源阵列处的原始快照列表中的代表性条目来记录每一个快照。存储卷的每一个快照,以便允许将快照复制到目标阵列并且在发生崩溃的情况下促进卷的恢复。本文中所使用的“快照列表”是指表示对给定卷的快照的条目的收集。代表性条目是指与卷的快照相关联的快照列表中的条目或项。在一些示例中,快照列表是快照元数据的收集。在一些示例中,快照列表中的条目可以标识快照的时间顺序或状态。快照列表可以被存储在表结构、数据库结构或者任何其他适当的结构中。原始快照列表是指来源阵列处的卷的快照列表。
复制引擎150把卷递增地复制到目标阵列,从而使得目标阵列具有来源阵列处的卷的复制品。举例来说,来源阵列的卷可以被复制到目标阵列的目标卷。在一些示例中,复制可以在周期性同步时间发生,并且可以通过快照的方式把来源阵列处的卷中的改变拷贝到目标阵列。在一些示例中,复制可以是迭代性的,其中快照之间的改变在递增的基础上被复制到目标阵列。当目标阵列具有自从最近的快照以来的来源阵列处的卷的复制品时,复制结束。因此,在图1A的示例中,当目标阵列是来源阵列在其周期性同步时间的状态下的复制品时,来源阵列到目标阵列的复制将结束。
请求引擎160与复制引擎150一起操作,以便请求在每一次递增卷复制之后在目标阵列处创建相应的快照。相应地,在用每一个快照记载下的改变被从来源阵列处的卷复制到目标阵列之后,请求引擎160请求目标阵列在目标阵列处创建相应的快照,从而使得原始快照列表中所记录的每一个快照被重新创建并且存储在目标阵列处,并且将原始快照列表重新创建为目标阵列处的重新创建的快照列表。相应地,目标阵列存储在来源阵列处所存储的每一个快照的拷贝以及重新创建的快照列表(和存储在来源阵列处的原始快照列表一样)。在一些示例中,在目标阵列创建相应的快照之后,目标阵列可以对来源阵列作出应答以表明完成。在来源阵列处的快照已被复制到目标阵列并且目标阵列已创建了相应的快照之后,在一些示例中,来源阵列处的快照的待定状态可以被更新到已完成状态,从而表明复制完成。
图1B是使用用户发起的快照和同步快照把来源阵列的卷复制到目标阵列的示例性设备105的框图。与图1A的设备100一样,图1B的设备105也包括引擎110、120、130、140、150和160。设备105附加地包括引擎170。正如上面关于图1A所描述的那样,设备105可以是适合于执行本文中所描述的功能的任何联网或计算设备,并且引擎110、120、130、140、150、160和170可以包括用以实施本文中所描述的引擎的功能的硬件与编程的任何组合(它包括硬件和编程全部二者)。在一些示例中,本文中关于图1B描述的功能可以与本文中关于图1A和2-5当中的任一幅所描述的功能相组合来提供。
与图1A的设备100一样,图1B的设备105包括接收引擎100、创建引擎120、同步引擎130、存储引擎140、复制引擎150和请求引擎160。这些引擎按照与上面关于图1A所讨论的与它们类似地命名和编号的引擎相同的方式来实施功能和操作。
在一些示例中,接收引擎110可以接收用以创建用户发起的快照的用户快照请求,其中所述用户发起的快照是RO快照。创建引擎120可以创建用户发起的RO快照,把RO复制对象与用户发起的RO快照相关联,并且把RO复制对象添加到复制组。在一些这样的示例中,复制引擎150可以按照图4中所描绘的那样把来源阵列处的卷递增地复制到目标阵列。图4示出了来源阵列410处的卷到目标阵列450的示例性递增复制的流示意图。虽然在下面参照图4描述了复制引擎150,但是其他适当的配置和示例也可以适用(例如图5)。
复制引擎150可以通过识别来源阵列410处的卷的重新同步快照412来实施递增复制。本文中所使用的重新同步快照是指具有已完成状态的初始同步快照或者先前同步时间处的先前同步快照。换句话说,重新同步快照是先前被复制到目标阵列的同步快照。在图4的示例中,重新同步快照412被复制到了目标阵列450的目标卷(在本文中被称作目标阵列450或者目标阵列450的目标卷)以作为先前的周期性复制中的相应的重新同步快照452,因此它表示所述卷的状态的复制品,正如它在先前的周期性同步时间处的情况那样。
复制引擎150还可以识别来源阵列410处的具有待定状态的最老(也就是,最久(least recent))的快照。在图4的示例中,尚未被复制到目标阵列450并且因此具有待定状态的最老快照是用户发起的RO快照414。在其他示例中,来源阵列410处的具有待定状态的最老快照可以替换地是同步快照,比如同步快照416。
(至少部分地)基于识别出重新同步快照和具有待定状态的最老快照(也就是用户发起的RO快照),复制引擎150可以计算二者之间的数据增量418。本文中所使用的“数据增量”是指第一和第二快照之间的数据差异。在一些示例中,计算数据增量可以包括元数据,从而使得所述计算识别出数据和元数据全部二者中的差异。可以通过比较重新同步快照412与最老待定快照(用户发起的RO快照414)之间的差异来计算数据增量。在一些这样的示例中,可以将异常表用于比较。重新同步快照412可以提供用于数据增量计算的增量基础。
如箭头420所示,复制引擎150可以把最老待定快照(用户发起的RO快照414)与重新同步快照412之间的数据增量复制到目标阵列450。复制数据增量可以把取得用户发起的RO快照414时的卷状态复制到目标阵列450。换句话说,目标阵列450处的目标卷被带到与最老待定快照相同的镜像。复制可以通过任何适当的数据拷贝或数据传输技术发生。
一旦数据增量418已被复制到目标阵列450,请求引擎160则请求在目标阵列处创建相应的快照。在一些示例中,相应的快照可以被创建、存储并且记录在目标阵列处的重新创建的快照列表中。目标阵列450处的相应的用户发起的RO快照454是相应的最老快照。在一些示例中,目标阵列450可以向来源阵列410发送表明相应的最老快照已被创建的消息。在目标阵列处创建相应的最老快照之后,复制引擎150更新最老快照(也就是用户发起的RO快照414)的待定状态,从而表明最老快照到目标阵列450的复制完成。
复制引擎150还可以按照从最久(也就是最老)开始的时间顺序识别具有待定状态的下一个快照。在图4的示例中,一旦用户发起的RO快照414被复制到目标阵列450,最久的待定快照就是同步快照416。在其他示例中,最久的待定快照可以是另一个用户发起的RO快照或者甚至是用户发起的RW快照。(至少部分地)基于识别出最久的待定快照,复制引擎150可以计算最久的待定快照与最近完成的快照之间的数据增量。在图4的示例中,最近完成的快照是用户发起的RO快照414。可以通过比较用户发起的RO快照414与同步快照416之间的差异来计算数据增量424。用户发起的RO快照414可以提供用于数据增量计算的增量基础。
如箭头426所示,复制引擎150可以接下来把数据增量424复制到目标阵列450。这样就把目标阵列450处的目标卷带到与同步快照416相同的镜像。一旦数据增量424已被复制到目标阵列450,请求引擎160则请求在目标阵列处创建相应的快照。在一些示例中,相应的快照可以被创建、存储并且记录在目标阵列处的重新创建的快照列表中。目标阵列450处的相应的同步快照456是相应的最久的快照。在一些示例中,目标阵列450可以向来源阵列410发送表明相应的最久的快照已被创建的消息。在目标阵列处创建该相应的最久的快照之后,复制引擎150更新最久的快照(也就是同步快照416)的待定状态,从而表明最久的快照到目标阵列450的复制完成。
在其中存在多个用户发起的快照的示例中,复制引擎150可以迭代地识别下一个最久的待定快照,计算最久的待定快照与最近完成的快照之间的数据增量,把数据增量复制到目标阵列,并且更新最久的待定快照的待定状态以表明完成,直到每一个待定快照都已被更新到已完成状态为止。一旦每一个快照都已被复制并且更新到具有已完成状态,复制引擎150则可以把同步快照416标记成用于下一次周期性复制的重新同步快照。在一些示例中,这可以涉及加标志、加标签或者通过其他方式指示应当依赖同步快照416作为下一个周期性复制时间的重新同步快照。这一指示可以在原始快照列表中做出。
在一些示例中,接收引擎110可以接收用以创建用户发起的快照的用户快照请求,其中用户发起的快照是RW快照。创建引擎120可以创建用户发起的RW快照,把RW复制对象与用户发起的RW快照相关联,并且把RW复制对象添加到复制组。RW复制对象通过来源阵列标识用户发起的RW快照。在这样的示例中,在创建复制组内的其他卷的同步快照的相同的周期性同步时间,同步引擎130创建用户发起的RW快照的同步快照。创建引擎120附加地在创建用户发起的RW快照时创建卷的系统发起的RO快照。系统发起的RO快照也可以与复制对象相关联并且被添加到复制组。
在一些这样的示例中,复制引擎150可以把来源阵列处的卷递增地复制到目标阵列,正如图5中所描绘的那样。图5示出了通过用户发起的RW快照和系统发起的RO快照的来源阵列510处的卷到目标阵列550的目标卷(在本文中被称作目标阵列550或目标阵列550的目标卷)的示例性递增复制的流程图。虽然在下面参照图5描述了复制引擎150,但是其他适当的配置和示例也可以适用。
图5描绘出基于系统发起的RO快照514而实施第一递增复制,从而使得目标阵列550具有与系统发起的RO快照514相关联的卷的第一部分的复制品。复制引擎150按照从最久(也就是最老)开始的时间顺序识别与系统发起的RO快照相关联的每一个待定快照。在图5的示例中,与系统发起的RO快照相关联的最久的待定快照是系统发起的RO快照514本身。
(至少部分地)基于识别出最久的待定快照,复制引擎150可以计算与系统发起的RO快照相关联的最久的待定快照(系统发起的RO快照514本身)和与系统发起的RO快照相关联的最近完成的快照(重新同步快照512)之间的数据增量。在图5的示例中,最近完成的快照是重新同步快照512。可以通过比较系统发起的RO快照514与重新同步快照512之间的差异来计算数据增量518。重新同步快照512可以提供用于数据增量计算的数据基础。
如箭头520所示,复制引擎150可以把数据增量518复制到目标阵列550。这样就把目标阵列550处的目标卷带到与系统发起的RO快照514相同的镜像。一旦数据增量518已被复制到目标阵列550,请求引擎160则请求在目标阵列处创建相应的快照。在一些示例中,相应的快照可以被创建、存储并且记录在目标阵列处的重新创建的快照列表中。目标阵列450处的相应的系统发起的RO快照554是相应的最久的快照。在一些示例中,目标阵列450可以向来源阵列410发送表明相应的最久的快照已被创建的消息。
在目标阵列处创建相应的系统发起的RO快照554之后,复制引擎150更新最久的快照(也就是系统发起的RO快照554)的待定状态,从而表明最久的快照到目标阵列550的复制完成。
在一些示例中,当请求引擎160请求在目标阵列550处创建相应的系统发起的RO快照554时,请求引擎160还请求在目标阵列处创建相应的用户发起的RW快照。相应的快照可以被创建、存储并且记录在目标阵列处的重新创建的快照列表中。在一些示例中,目标阵列450可以向来源阵列410发送表明相应的用户发起的RW快照558已被创建的消息。在创建相应的用户发起的RW快照558之后,复制引擎150可以更新用户发起的RW快照530的待定状态,从而表明用户发起的RW快照530的复制完成。
在其中存在与系统发起的RO快照514相关联的多个快照的示例中,复制引擎150可以迭代地识别下一个最久的待定快照,计算最久的待定快照与最近完成的快照之间的数据增量,把数据增量复制到目标阵列,并且更新最久的待定快照的待定状态以表明完成,直到每一个待定快照都已被更新到已完成状态为止。一旦与系统发起的RO快照相关联的每一个快照都具有已完成状态,复制引擎150则可以把同步快照516标记成与系统发起的RO快照相关联的重新同步快照,以供在下一次周期性复制中使用。
在图5的示例中,复制引擎150可以识别与系统发起的RO快照相关联的下一个最久的待定快照,它是同步快照516。(至少部分地)基于识别出下一个最久的待定快照,复制引擎150可以计算下一个最久的待定快照(同步快照516)与最近完成的快照(系统发起的RO快照514)之间的数据增量524。
如箭头526所示,复制引擎150把数据增量524复制到目标阵列550。这样就把目标阵列550处的目标卷带到与同步快照516相同的镜像。一旦数据增量524已被复制到目标阵列550,请求引擎160则请求在目标阵列处创建相应的最久的快照。在一些示例中,相应的快照可以被创建、存储并且记录在目标阵列处的重新创建的快照列表中。目标阵列550处的相应的同步快照556是相应的最久的快照。在一些示例中,目标阵列550可以向来源阵列510发送表明相应的最久的快照已被创建的消息。在目标阵列处创建该相应的快照之后,复制引擎150更新最久的快照(同步快照516)的待定状态,从而表明最久的快照到目标阵列550的复制完成。
一旦与系统发起的RO快照相关联的每一个快照都已被复制并且更新成具有已完成状态,复制引擎150则可以把与系统发起的RO快照相关联的同步快照516标记成用于下一次周期性复制的与系统发起的RO快照相关联的重新同步快照。
除了第一递增复制之外,图5还描绘出基于用户发起的RW快照530实施第二递增复制,从而使得目标阵列550具有与用户发起的RW快照530相关联的卷的第二部分的复制品。复制引擎150按照从最久(也就是最老)开始的时间顺序识别与用户发起的RW快照相关联的待定快照。在图5的示例中,与系统发起的RW快照相关联的最久的待定快照是同步快照534。
(至少部分地)基于识别出最久的待定快照,复制引擎150可以计算最久的待定快照(同步快照534)和与用户发起的RW快照相关联的最近完成的快照(用户发起的RW快照530)之间的数据增量532。
如箭头536所示,复制引擎150把数据增量532复制到目标阵列550。这样就把目标阵列550处的目标卷带到与同步快照534相同的镜像。一旦数据增量532已被复制到目标阵列550,请求引擎160则请求在目标阵列处创建相应的最久的快照。相应的快照可以被创建、存储并且记录在目标阵列处的重新创建的快照列表中。目标阵列550处的相应的同步快照560是相应的最久的快照。在一些示例中,目标阵列550可以向来源阵列510发送表明相应的最久的快照已被创建的消息。在目标阵列处创建该相应的快照之后,复制引擎150更新最久的快照(同步快照534)的待定状态,从而表明最久的快照到目标阵列550的复制完成。
在其中存在与用户发起的RW快照530相关联的多个快照的示例中,复制引擎150可以迭代地识别下一个最久的待定快照,计算最久的待定快照与最近完成的快照之间的数据增量,把数据增量复制到目标阵列,并且更新最久的待定快照的待定状态以表明完成,直到每一个待定快照都已被更新到已完成状态为止。一旦与用户发起的RW快照相关联的每一个快照都具有已完成状态,复制引擎150则可以把同步快照534标记成与用户发起的RW快照相关联的重新同步快照,以供在下一次周期性复制中使用。
在一些示例中,接收引擎110可以接收用户删除请求,用以删除用户发起的快照,比如图4的用户发起的RO快照414或者图5的用户发起的RW快照530。举例来说,用户可以通过来源阵列处的用户界面生成并且向设备105发送用户删除请求。在图1B的示例中,响应于接收到用户删除请求,设备105的删除引擎170可以从来源阵列和从来源阵列处的原始快照列表中删除用户发起的快照。请求引擎160可以请求从目标阵列以及目标阵列处的重新创建的快照列表中删除相应的用户发起的快照。
在其他示例中,同步引擎130可以(至少部分地)基于复制组中的卷集合的用户定义的子集在周期性同步时间创建同步快照的子集。在一些示例中,接收引擎110可以接收标识应当被周期性地一起复制的卷子集的用户消息。把某些卷子集或卷组一起复制可以促进数据一致性。相应地,复制引擎150可以把卷子集递增地复制到目标阵列,从而使得目标阵列具有来源阵列处的卷子集的复制品。
在还有的其他示例中,接收引擎110可以接收用以把来源阵列处的新卷添加到复制组中的卷集合的添加请求。在一些示例中,该请求可以通过用户界面从用户接收。所述新卷可以包括将基于用户对现有快照的选择而被添加到复制组的现有快照的集合。这些现有快照可以是在新卷被添加到复制组之前创建的所述新卷的先前快照。用户可以例如通过用户界面选择一些现有快照、所有现有快照或者不选择任何现有快照以添加到复制组。
响应于添加请求,同步引擎130可以把新卷添加到复制组,并且除了创建复制组内的其他卷的同步快照之外,同步引擎130还可以在周期性同步时间创建新卷的新同步快照。所述新同步快照可以被设定成具有待定状态。
存储引擎140可以存储新卷的每一个新快照,其中每一个新快照包括用户选择的现有快照。在本文中的示例中所使用的“新快照”可以是指与新卷相关联的快照。存储引擎140还可以通过来源阵列处的新原始快照列表中的新代表性条目来记录每一个新快照。在本文中的示例中所使用的“新代表性条目”和“新原始快照列表”可以分别是指与来源阵列处的新卷相关联的代表性条目和原始快照列表。
复制引擎150可以把新卷递增地复制到目标阵列,从而使得目标阵列具有来源阵列处的新卷的复制品。在一些示例中,新卷可以包括现有的先前快照的集合。基于用户对现有快照集合的选择,可以把用户选择的现有快照递增地复制到目标阵列。在其他示例中,可以添加不包括现有快照的新卷。相应地,新同步快照可以包括新卷中的所有数据,并且新同步快照到目标阵列的复制可以复制新卷内的所有数据。
请求引擎160可以在新卷的每一次递增复制之后请求在目标阵列处创建相应的新快照,从而使得记录在新原始快照列表中的每一个新快照被重新创建并且存储在目标阵列处,并且将新原始快照列表重新创建为目标阵列处的重新创建的新快照列表。所述新原始快照列表和重新创建的新快照列表可以包括在所述卷被添加到复制组之前所创建的用户选择的现有快照的新代表性条目。
在本文中关于图2A-2C描述了另外的示例。图2A描绘出示例性机器可读存储介质220的框图,示例性机器可读存储介质220包括指令,用以把来源阵列处的卷复制到目标阵列,从而使得目标阵列具有来源阵列处的卷的复制品以及重新创建的快照列表。所述指令可以由处理资源110执行。
正如图2A中所描绘的那样,机器可读存储介质220包括(例如编码有)可由处理资源210执行来实施在本文中关于图2A描述的功能的指令225、230、235、240、245和255。在一些示例中,存储介质220可以包括附加的指令。在其他示例中,在本文中关于指令225、230、235、240、245、255以及在本文中关于存储介质220描述的任何附加指令所描述的功能可以至少部分地被(例如通过包括用以实施本文中所描述的功能的硬件与编程的任意组合的组件)实施在电子电路中。
本文中所使用的机器可读存储介质可以是用以包含或存储诸如可执行指令、数据和类似物之类的信息的任何电子、磁性、光学或其他物理存储装置。举例来说,本文中所描述的任何机器可读存储介质可以是任何随机存取存储器(RAM)、易失性存储器、非易失性存储器、闪存、存储驱动器(例如硬盘驱动器)、固态驱动器、任何类型的存储盘(例如紧致盘、DVD等等)和类似物或者其组合。此外,本文中所描述的任何机器可读存储介质可以是非瞬时性的。
在本文中所描述的示例中,处理资源例如可以包括一个处理器或多个处理器,所述处理器被包括在单个设备中或者分布在多个设备上。本文中所使用的处理器可以是以下各项当中的至少一项:中央处理单元(CPU),基于半导体的微处理器,图形处理单元(GPU),被配置成取回并执行指令的现场可编程门阵列(FPGA),适于取回并执行存储在机器可读存储介质上的指令的其他电子电路,或者所述各项的组合。处理资源210可以获取、解码并且执行存储在存储介质120上的指令,以便实施上面关于指令225、230、235、240、245和255所描述的功能。在其他示例中,存储介质220的任何指令的功能可以通过电子电路的形式、编码在机器可读存储介质上的可执行指令的形式或者其组合来实施。在图2A的示例中,存储介质220可以通过一个机器可读存储介质或者多个机器可读存储介质来实施。
在图2A的示例中,指令225可以在周期性同步时间创建卷的同步快照,正如上面关于图1的同步引擎130所描述的那样。卷的同步快照可以被设定成具有待定状态。指令230可以存储卷的每一个快照并且通过来源阵列处的原始快照列表中的代表性条目记录每一个快照,正如上面关于图1的存储引擎140所描述的那样。在一些示例中,快照的状态可以被存储在持久性存储器中,从而使得复制可以在发生故障的情况下畅通无阻地继续进行。
指令235可以确定是否存在卷的重新同步快照。重新同步快照是具有已完成状态的先前周期性同步时间的先前同步快照。在一些示例中,这一确定可以通过审视来源阵列处的原始快照列表以便确定是否存在重新同步快照而作出。指令240可以确定是否存在卷的用户发起的快照。在一些示例中,用户发起的快照可以是具有待定状态的最老快照。在一些示例中,这一确定可以通过审视来源阵列处的原始快照列表以便确定是否存在重新同步快照而作出。用户发起的快照可以是RO快照或RW快照。
正如上面关于图1的复制引擎150所描述的那样,指令245(至少部分地)基于重新同步快照和用户发起的快照把卷递增地复制到目标阵列,从而使得目标阵列具有来源阵列处的卷的复制品。在一些示例中,指令245还可以包括指令246、247、248、249、250、252、253和254,正如在图2C中所描绘的那样。
转向图2C,指令246(至少部分地)基于存在重新同步快照并且存在用户发起的快照而把用户发起的快照与重新同步快照之间的数据增量复制到目标阵列。举例来说,正如上面关于图4所描述的那样,用户发起的RO快照414与重新同步快照412之间的数据增量418被复制到目标阵列450。在图4的示例中,用户发起的RO快照414是来源阵列410处的最老待定快照。
图2C的指令247(至少部分地)基于不存在重新同步快照并且存在用户发起的快照而把用户发起的快照复制到目标阵列。在一些这样的示例中,不存在重新同步快照可以意味着原始快照列表不包含已完成的快照。如果最老快照是用户发起的快照,则用户发起的快照可以包括卷中的所有数据。相应地,递增复制可以涉及把用户发起的快照复制到目标阵列。
图2C的指令248(至少部分地)基于存在重新同步快照并且不存在用户发起的快照而把重新同步快照与同步快照之间的数据增量复制到目标阵列。在这样的示例中,重新同步快照是具有已完成状态的最近状态,并且同步快照是具有待定状态的最久的快照,并且按照上面关于图1的复制引擎150所描述的那样发生复制。
图2C的指令249(至少部分地)基于不存在重新同步快照并且不存在用户发起的快照而把同步快照复制到目标阵列。在这样的示例中,原始快照列表可以不包含已完成的快照,并且还确实包含用户发起的快照。因此,原始快照列表可以只包括同步快照。同步快照可以包括卷中的所有数据,并且递增复制可以涉及把同步快照复制到目标阵列。
在其中存在多个待定快照的示例中,指令250可以按照从最久开始的时间顺序识别具有待定状态的每一个快照,正如上面关于图1的复制引擎150所描述的那样。指令251可以计算具有待定状态的最久的快照与具有已完成状态的最近快照之间的每一个数据增量,正如上面关于图1的复制引擎150所描述的那样。指令252可以把每一个数据增量复制到目标阵列,正如上面关于图1的复制引擎150所描述的那样。指令253随后可以在目标阵列处已创建了相应的最久的快照之后,更新最久的快照的待定状态以表明完成。指令250、251、252和253可以迭代地执行,直到目标阵列具有来源阵列处的卷的复制品为止。一旦每一个快照都具有已完成状态,指令254就把同步快照标记成重新同步快照,正如上面关于图1的复制引擎150所描述的那样。
再次返回图2A,指令255可以在卷的每一次递增复制之后请求在目标阵列处创建相应的快照,从而使得记录在原始快照列表中的每一个快照被重新创建并且存储在目标阵列处,并且将原始快照列表重新创建为目标阵列处的重新创建的快照列表,正如上面关于请求引擎160所描述的那样。
在一些示例中,指令225、230、235、240、245和255可以是安装包的一部分,当被安装时,其可以由处理资源210执行来实施上面所描述的功能。在这样的示例中,存储介质220可以是便携式介质,比如CD、DVD或闪存驱动器,或者可以是由能够从该处下载并安装所述安装包的服务器所保持的存储器。在其他示例中,指令225、230、235、240、245和255可以是已经被安装在包括处理资源的设备(比如设备100)上的一个应用、多个应用或者(多个)组件的一部分。在这样的示例中,存储介质220可以包括诸如硬盘驱动器、固态驱动器或类似物之类的存储器。在一些示例中,本文中关于图2A描述的功能可以与本文中关于图1、2B-2C和3-5当中的任一幅所描述的功能相组合来提供。
在本文中关于图2B描述了另外的示例,图2B是示例性机器可读存储介质220的框图,示例性机器可读存储介质220包括指令,用以把来源阵列处的卷复制到目标阵列,从而使得目标阵列具有来源阵列处的卷的复制品以及重新创建的快照列表。图1B的示例包括处理资源210以及包括指令225、230、235、240、245和255的机器可读存储介质220,正如上文关于图2A所描述的那样。图2B的示例还包括机器可读存储介质220,机器可读存储介质220包括可由处理资源210执行来实施本文中关于图1B所描述的功能的指令221、222、223和260。
在一些示例中,存储介质220可以包括附加的指令。在其他示例中,在本文中关于指令221、222、223、225、230、235、240、245、255、260以及在本文中关于存储介质220描述的任何附加指令所描述的功能可以至少部分地被(例如通过包括用以实施本文中所描述的功能的硬件与编程的任意组合的组件)实施在电子电路中。
处理资源210可以获取、解码并且执行存储在存储介质220上的指令,以便实施上面关于指令221、222、223、225、230、235、240、245、255和260所描述的功能。在其他示例中,存储介质220的任何指令的功能可以通过电子电路的形式、编码在机器可读存储介质上的可执行指令的形式或者其组合来实施。在图2B的示例中,存储介质220可以通过一个机器可读存储介质或者多个机器可读存储介质来实施。
指令221接收用以创建用户发起的快照的用户快照请求,正如上面关于图1的接收引擎110所描述的那样。指令222创建用户发起的快照,正如上面关于图1的创建引擎120所描述的那样。用户发起的快照可以是RO快照或RW快照。指令223把用户发起的快照设定成具有待定状态,正如上面关于图1的创建引擎120所讨论的那样。上面关于图2A描述了图2B的指令225、230、235、240、245和255的功能。
指令260可以在来源阵列发生故障的情况下恢复来源阵列。在一些示例中,指令260可以附加地包括指令260a和260b。当来源阵列故障时,指令260a可以识别最久的待定快照以便继续复制到目标阵列。在一些示例中,识别最久的待定快照可以涉及从持久性存储恢复快照的状态并且确定仍然待定的最老快照。指令260b可以随后把最久的待定快照与最近完成的快照之间的数据增量递增地复制到目标阵列。目标阵列可以实施重复检测,以便识别数据增量是否先前已被重复并且防止重复复制。在包括多个待定快照的示例中,指令260a和260b可以进行迭代直到每一个待定快照都已被更新到已完成状态为止。
在一些示例中,指令221、222、223、225、230、235、240、245、255和260可以是安装包的一部分,当被安装时,其可以由处理资源210执行来实施上面所描述的功能。在这样的示例中,存储介质220可以是便携式介质,比如CD、DVD或闪存驱动器,或者可以是由能够从该处下载并安装所述安装包的服务器所保持的存储器。在其他示例中,指令221、222、223、225、230、235、240、245、255和260可以是已经被安装在包括处理资源的设备(比如设备100)上的一个应用、多个应用或者(多个)组件的一部分。在这样的示例中,存储介质220可以包括例如硬盘驱动器、固态驱动器或类似物的存储器。在一些示例中,本文中关于图2B描述的功能可以与本文中关于图1、2A、2C和3-5当中的任一幅所描述的功能相组合来提供。
图3A是用于把来源阵列的卷复制到目标阵列的示例性方法300的流程图。虽然在下面参照图1A和1B的设备100和105描述了方法300的执行,但是也可以利用其他适当的设备来执行方法300。此外,方法300的实施不限于这样的示例。
在方法300的310处,创建引擎120可以创建具有待定状态的卷的用户发起的快照,正如上面关于图1A的创建引擎120所描述的那样。卷可以是复制组中的卷集合的成员。用户发起的快照可以是RO快照或RW快照。在320处,同步引擎130可以在周期性同步时间创建卷的同步快照,正如上面关于图1A的同步引擎130所描述的那样。在330处,存储引擎140可以在来源阵列处存储卷的每一个快照并且通过原始快照列表中的代表性条目记录每一个快照,正如上面关于图1A的存储引擎140所描述的那样。
在340处,复制引擎150可以把卷递增地复制到目标阵列,从而使得目标阵列具有来源阵列处的卷的复制品,正如上面关于图1A的复制引擎150所描述的那样。在其中用户发起的快照是RO快照的一些示例中,340可以附加地包括341、342、343、344和345,正如在图3B中所描绘的那样。在341处,复制引擎150可以从最久开始的时间顺序识别每一个待定快照,正如上面关于图1B的复制引擎150所描述的那样。在342处,复制引擎150可以计算具有待定状态的最久的快照与具有已完成状态的最近快照之间的数据增量,正如上面关于图1B的复制引擎150所描述的那样。在343处,复制引擎150可以把每一个数据增量复制到目标阵列,正如上面关于图1B的复制引擎150所描述的那样。在344处,在目标阵列处创建了相应的最久的快照之后,复制引擎150可以更新最久的快照的待定状态以表明完成,正如上面关于图1B的复制引擎150所描述的那样。在345处,如果目标阵列不具有来源阵列处的卷的复制品(正如所述卷在周期性复制时间的情况那样),则方法340返回341以进行迭代。如果目标阵列确实具有来源阵列处的卷的复制品,则所述方法继续到350。
在350处,在卷的每一次递增复制之后,请求引擎160可以请求在目标阵列处创建相应的快照,从而使得记录在原始快照列表中的每一个快照被重新创建并且存储在目标阵列处,并且将原始快照列表重新创建为目标阵列处的重新创建的快照列表,正如上面关于图1A的请求引擎160所描述的那样。
虽然图3A的流程图示出了某些功能的具体实施顺序,但是方法300不限于该顺序。举例来说,在流程图中相继地示出的功能可以按照不同的顺序来实施,可以被并发地或者部分并发地执行,或者是所述情况的组合。在一些示例中,本文中关于图3A描述的功能可以与本文中关于图1-2、3B-D和4-5当中的任一幅所描述的功能相组合来提供。
图3C是可以跟在图3A的方法300之后的用于把来源阵列的卷复制到目标阵列的示例性方法302的流程图。虽然在下面参照图1B的设备105描述了方法302的执行,但是也可以利用其他适当的设备来执行方法302。此外,方法302的实施不限于这样的示例。
在355处,接收引擎110可以接收用以向复制组中的卷集合添加新卷的添加请求,正如上面关于图1B的接收引擎110所描述的那样。所述新卷可以包括将基于用户对现有快照的选择而被添加到复制组的现有快照的集合。在360处,同步引擎130可以在周期性同步时间创建新卷的新同步快照,正如上面关于图1B的同步引擎130所描述的那样。
在365处,存储引擎140可以存储新卷的每一个新快照,其中每一个新快照包括用户选择的现有快照,并且通过来源阵列处的新原始快照列表中的新代表性条目来记录每一个新快照,正如上面关于图1B的存储引擎140所描述的那样。在370处,复制引擎150可以把新卷递增地复制到目标阵列,从而使得目标阵列具有新卷的复制品,正如上面关于图1B的复制引擎150所描述的那样。在375处,请求引擎160可以在新卷的每一次递增复制之后请求在目标阵列处创建相应的新快照,从而使得记录在新原始快照树中的每一个新快照被重新创建并且存储在目标阵列处,并且将新原始快照列表重新创建为目标阵列处的重新创建的新快照树,正如上面关于图1B的请求引擎160所描述的那样。
虽然图3C的流程图示出了某些功能的具体实施顺序,但是方法302不限于该顺序。举例来说,在流程图中相继地示出的功能可以按照不同的顺序来实施,可以被并发地或者部分并发地执行,或者是所述情况的组合。在一些示例中,本文中关于图3C描述的功能可以与本文中关于图1-2、3A-B、3D和4-5当中的任一幅所描述的功能相组合来提供。
图3D和3E是与作为RW快照的用户发起的快照有关的示例性方法的流程图。图3D是当用户发起的快照是RW快照时用于把来源阵列的卷复制到目标阵列的示例性方法304的流程图。在一些示例中,可以与图3A的方法300的部分并发地、部分并发地、在其之前或之后执行方法304。虽然在下面参照图1A和1B的设备100和105描述了方法304的执行,但是也可以利用其他适当的设备来执行方法304。此外,方法304的实施不限于这样的示例。
在一些示例中,用户发起的快照可以是RW快照。在380处,创建引擎120可以在创建用户发起的RW快照时创建卷的系统发起的RO快照,正如上面关于图1的创建引擎120所描述的那样。本文中关于图3D描述的功能可以与本文中关于图1-2、3A-C和4-5当中的任一幅所描述的功能相组合来提供。
图3E是当用户发起的快照是RW快照时用于实施递增复制的示例性方法304的流程图。在其中用户发起的快照是RW快照的一些示例中,340可以附加地包括346和347,正如在图3E中所描绘的那样。在346处,复制引擎150基于系统发起的RO快照实施第一递增复制,直到目标阵列具有与系统发起的RO快照相关联的卷的第一部分的复制品为止,正如上面关于图1B的复制引擎150所描述的那样。在347处,复制引擎150基于用户发起的RW快照实施第二递增复制,直到目标阵列具有与用户发起的RW快照相关联的卷的第二部分的复制品为止,正如上面关于图1B的复制引擎150所描述的那样。
虽然图3E的流程图示出了某些功能的具体实施顺序,但是方法340不限于该顺序。举例来说,在流程图中相继地示出的功能可以按照不同的顺序来实施,可以被并发地或者部分并发地执行,或者是所述情况的组合。在一些示例中,本文中关于图3E描述的功能可以与本文中关于图1-2、3A-D和4-5当中的任一幅所描述的功能相组合来提供。
Claims (20)
1.一种用以把来源阵列处的卷复制到目标阵列的设备,所述设备包括:
用以接收用以创建卷的用户发起的快照的用户快照请求的接收引擎,其中所述卷是复制组中的卷集合的成员;
用以创建用户发起的快照的创建引擎,所述用户发起的快照具有待定状态;
用以在周期性同步时间创建卷的同步快照的同步引擎,所述同步快照具有待定状态;
用以在来源阵列处存储卷的每一个快照并且通过原始快照列表中的代表性条目记录每一个快照的存储引擎;
复制引擎,用以把卷递增地复制到目标阵列,从而使得目标阵列具有来源阵列处的卷的复制品;以及
请求引擎,用以在卷的每一次递增复制之后请求在目标阵列处创建相应的快照,从而使得记录在原始快照列表中的每一个快照被重新创建并且存储在目标阵列处,并且将原始快照列表重新创建为目标阵列处的重新创建的快照列表。
2.根据权利要求1所述的设备,还包括:
用以接收用以删除用户发起的快照的用户删除请求的接收引擎;
用以从来源阵列并且从来源阵列处的原始快照列表中删除用户发起的快照的删除引擎;以及
用以请求从目标阵列并且从目标阵列处的重新创建的快照列表中删除相应的用户发起的快照的请求引擎。
3.根据权利要求1所述的设备,其中,复制组包括卷集合,所述设备还包括:
用以基于复制组中的卷集合的用户定义的子集在周期性同步时间创建同步快照的子集的同步引擎;以及
复制引擎,用以把卷子集递增地复制到目标阵列,从而使得目标阵列具有来源阵列处的卷子集的复制品。
4.根据权利要求1所述的设备,其中,创建引擎还用来:
把复制对象与用户发起的快照相关联;以及
把复制对象添加到复制组,其中复制组包括复制对象的集合,并且在周期性同步时间对于复制对象集合当中的每一个复制对象创建相关联的同步快照。
5.根据权利要求1所述的设备,其中,用户发起的快照是只读(RO)快照,并且其中递增复制还包括:
识别卷的重新同步快照,其中重新同步快照是具有已完成状态的先前周期性同步时间的先前同步快照;
识别具有待定状态的最老快照,其中最老快照是复制卷的用户发起的快照;
针对目标阵列计算最老快照与重新同步快照之间的数据增量,其中所述数据增量包括元数据;
把最老快照与重新同步快照之间的数据增量复制到目标阵列;以及
在目标阵列处创建相应的最老快照之后,更新最老快照的待定状态以表明完成。
6.根据权利要求5所述的设备,其中,递增复制还包括:
迭代地
按照从最久开始的时间顺序识别具有待定状态的每一个快照;
计算具有待定状态的最久的快照与具有已完成状态的最近快照之间的每一个数据增量;
把每一个数据增量复制到目标阵列;以及
在目标阵列处创建相应的最久的快照之后,更新最久的快照的待定状态以表明完成;以及
一旦每一个快照都具有已完成状态,把同步快照标记成重新同步快照。
7.根据权利要求1所述的设备,其中,用户发起的快照是读写(RW)快照,所述设备还包括:
用以在创建用户发起的RW快照时创建卷的系统发起的只读(RO)快照的创建引擎;以及
用以递增地复制卷的复制引擎,其中递增复制包括:
基于系统发起的RO快照实施第一递增复制,直到目标阵列具有与系统发起的RO快照相关联的卷的第一部分的复制品为止;以及
基于用户发起的RW快照实施第二递增复制,直到目标阵列具有与用户发起的RW快照相关联的卷的第二部分的复制品为止。
8.根据权利要求7所述的设备,其中,第一递增复制还包括:
迭代地
按照从最久开始的时间顺序识别与系统发起的RO快照相关联的具有待定状态的每一个快照;
计算与系统发起的RO快照相关联的具有待定状态的最久的快照和与系统发起的RO快照相关联的具有已完成状态的最近快照之间的每一个RO数据增量;
把每一个RO数据增量复制到目标阵列;以及
在目标阵列处创建相应的最久的快照之后,更新最久的快照的待定状态以表明完成;
在目标阵列处创建相应的用户发起的RW快照之后,更新用户发起的RW快照的待定状态以表明完成;以及
一旦与系统发起的RO快照相关联的每一个快照都具有已完成状态,把与系统发起的RO快照相关联的同步快照标记成用作与系统发起的RO快照相关联的重新同步快照。
9.根据权利要求8所述的设备,其中,实施第二递增复制还包括:
迭代地
按照从最久开始的时间顺序识别与RW快照相关联的具有待定状态的每一个快照;
计算具有待定状态的最久的快照与具有已完成状态的最近快照之间的每一个RW数据增量;
把每一个RW数据增量复制到目标阵列;以及
更新与RW快照相关联的最久的快照的待定状态以表明完成;以及
一旦与RW快照相关联的每一个快照都具有已完成状态,把与RW快照相关联的同步快照标记成用作与RW快照相关联的重新同步快照。
10.根据权利要求1所述的设备,还包括:
用以接收用以向复制组中的卷集合添加新卷的添加请求的接收引擎,其中所述新卷包括将基于用户对现有快照的选择而被添加到复制组的现有快照的集合;
用以在周期性同步时间创建新卷的新同步快照的同步引擎,所述新同步快照具有待定状态;
用以在来源阵列处存储新卷的每一个新快照并且通过新原始快照列表中的新代表性条目来记录每一个新快照的存储引擎,其中每一个新快照包括用户选择的现有快照;
复制引擎,用以把新卷递增地复制到目标阵列,从而使得目标阵列具有来源阵列处的新卷的复制品;以及
请求引擎,用以在新卷的每一次递增复制之后请求在目标阵列处创建相应的新快照,从而使得记录在新原始快照列表中的每一个新快照被重新创建并且存储在目标阵列处,并且将新原始快照列表重新创建为目标阵列处的重新创建的新快照列表。
11.一种编码有指令的机器可读存储介质,所述指令可由处理资源执行来把来源阵列处的卷复制到目标阵列,所述机器可读存储介质包括指令,用以:
在周期性同步时间创建卷的同步快照,其中卷的同步快照具有待定状态;
在来源阵列处存储卷的每一个快照,并且通过来源阵列处的原始快照列表中的代表性条目记录每一个快照;
确定是否存在卷的重新同步快照,其中重新同步快照是具有已完成状态的先前周期性同步时间的先前同步快照;
确定是否存在卷的用户发起的快照,其中用户发起的快照是具有待定状态的最老快照;
基于重新同步快照和用户发起的快照,把卷递增地复制到目标阵列,从而使得目标阵列具有来源阵列处的卷的复制品;以及
在卷的每一次递增复制之后请求在目标阵列处创建相应的快照,从而使得记录在原始快照列表中的每一个快照被重新创建并且存储在目标阵列处,并且将原始快照列表重新创建为目标阵列处的重新创建的快照列表。
12.根据权利要求11所述的机器可读存储介质,还包括指令,用以:
接收用以创建用户发起的快照的用户快照请求;
创建用户发起的快照;以及
把用户发起的快照设定成具有待定状态。
13.根据权利要求11所述的机器可读存储介质,其中,用以基于重新同步快照和用户发起的快照把卷递增地复制到目标阵列的指令还包括指令,用以:
基于存在重新同步快照并且存在用户发起的快照,把用户发起的快照与重新同步快照之间的数据增量复制到目标阵列;
基于不存在重新同步快照并且存在用户发起的快照,把用户发起的快照复制到目标阵列;
基于存在重新同步快照并且不存在用户发起的快照,把重新同步快照与同步快照之间的数据增量复制到目标阵列;以及
基于不存在重新同步快照并且不存在用户发起的快照,把同步快照复制到目标阵列。
14.根据权利要求13所述的机器可读存储介质,其中,用以基于重新同步快照和用户发起的快照把卷递增地复制到目标阵列的指令还包括指令,用以:
迭代地
按照从最久开始的时间顺序识别具有待定状态的每一个快照;
计算具有待定状态的最久的快照与具有已完成状态的最近快照之间的每一个数据增量;
把每一个数据增量复制到目标阵列;以及
在目标阵列处已经创建了相应的最久的快照之后,更新最久的快照的待定状态以表明完成;以及
一旦每一个快照都具有已完成状态,把同步快照标记成重新同步快照。
15.根据权利要求11所述的机器可读存储介质,还包括用以在来源阵列发生故障的情况下恢复来源阵列的指令,其中所述恢复还包括指令,用以:
识别具有待定状态的最久的快照;
把具有待定状态的最久的快照与具有已完成状态的最近快照之间的数据增量递增地复制到目标阵列,其中目标阵列实施重复检测以便识别并且防止重复复制。
16.一种把来源阵列处的卷复制到目标阵列的方法,所述设备包括:
通过创建引擎创建具有待定状态的卷的用户发起的快照,其中所述卷是复制组中的卷集合的成员;
通过同步引擎在周期性同步时间创建卷的同步快照,所述同步快照具有待定状态;
通过存储引擎在来源阵列处存储卷的每一个快照,并且通过原始快照中的代表性条目记录每一个快照;
通过复制引擎把卷递增地复制到目标阵列,从而使得目标阵列具有来源阵列处的卷的复制品;以及
通过请求引擎在卷的每一次递增复制之后请求在目标阵列处创建相应的快照,从而使得记录在原始快照列表中的每一个快照被重新创建并且存储在目标阵列处,并且将原始快照列表重新创建为目标阵列处的重新创建的快照列表。
17.根据权利要求16所述的方法,还包括:
通过接收引擎来接收用以向复制组中的卷集合添加新卷的添加请求,其中所述新卷包括将基于用户对现有快照的选择而被添加到复制组的现有快照的集合;
通过同步引擎在周期性同步时间创建新卷的新同步快照,所述新同步快照具有待定状态;
通过存储引擎在来源阵列处存储新卷的每一个新快照并且通过新原始快照列表中的新代表性条目来记录每一个新快照,其中每一个新快照包括用户选择的现有快照;
通过复制引擎把新卷递增地复制到目标阵列,从而使得目标阵列具有来源阵列处的新卷的复制品;以及
通过请求引擎在新卷的每一次递增复制之后请求在目标阵列处创建相应的新快照,从而使得记录在新原始快照列表中的每一个新快照被重新创建并且存储在目标阵列处,并且将新原始快照列表重新创建为目标阵列处的重新创建的新快照列表。
18.根据权利要求16所述的方法,其中,用户发起的快照是只读(RO)快照,并且其中递增复制还包括:
迭代地
按照从最久开始的时间顺序识别具有待定状态的每一个快照;
计算具有待定状态的最久的快照与具有已完成状态的最近快照之间的数据增量;
把每一个数据增量复制到目标阵列;以及
在目标阵列处创建了相应的最久的快照之后,更新最久的快照的待定状态以表明完成。
19.根据权利要求16所述的方法,其中,用户发起的快照是读写(RW)快照,所述方法还包括:
通过创建引擎在创建用户发起的RW快照时创建卷的系统发起的只读(RO)快照。
20.根据权利要求19所述的方法,其中,递增复制还包括:
基于系统发起的RO快照实施第一递增复制,直到目标阵列具有与系统发起的RO快照相关联的卷的第一部分的复制品为止;以及
基于用户发起的RW快照实施第二递增复制,直到目标阵列具有与用户发起的RW快照相关联的卷的第二部分的复制品为止。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/421,149 US10261719B2 (en) | 2017-01-31 | 2017-01-31 | Volume and snapshot replication |
US15/421149 | 2017-01-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108376109A true CN108376109A (zh) | 2018-08-07 |
CN108376109B CN108376109B (zh) | 2022-02-18 |
Family
ID=62980564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810054360.8A Active CN108376109B (zh) | 2017-01-31 | 2018-01-19 | 将来源阵列的卷复制到目标阵列的设备和方法、存储介质 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10261719B2 (zh) |
CN (1) | CN108376109B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110795389A (zh) * | 2019-10-28 | 2020-02-14 | 深信服科技股份有限公司 | 基于存储快照的拷贝方法、用户设备、存储介质及装置 |
CN111125001A (zh) * | 2018-10-31 | 2020-05-08 | 伊姆西Ip控股有限责任公司 | 快照复制方法、电子设备和计算机程序产品 |
CN111857602A (zh) * | 2020-07-31 | 2020-10-30 | 重庆紫光华山智安科技有限公司 | 数据处理方法、装置、数据节点及存储介质 |
Families Citing this family (89)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8589640B2 (en) | 2011-10-14 | 2013-11-19 | Pure Storage, Inc. | Method for maintaining multiple fingerprint tables in a deduplicating storage system |
US11068363B1 (en) | 2014-06-04 | 2021-07-20 | Pure Storage, Inc. | Proactively rebuilding data in a storage cluster |
US11960371B2 (en) | 2014-06-04 | 2024-04-16 | Pure Storage, Inc. | Message persistence in a zoned system |
US11652884B2 (en) | 2014-06-04 | 2023-05-16 | Pure Storage, Inc. | Customized hash algorithms |
US9836234B2 (en) | 2014-06-04 | 2017-12-05 | Pure Storage, Inc. | Storage cluster |
US9003144B1 (en) | 2014-06-04 | 2015-04-07 | Pure Storage, Inc. | Mechanism for persisting messages in a storage system |
US9367243B1 (en) | 2014-06-04 | 2016-06-14 | Pure Storage, Inc. | Scalable non-uniform storage sizes |
US10574754B1 (en) | 2014-06-04 | 2020-02-25 | Pure Storage, Inc. | Multi-chassis array with multi-level load balancing |
US9218244B1 (en) | 2014-06-04 | 2015-12-22 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US9836245B2 (en) | 2014-07-02 | 2017-12-05 | Pure Storage, Inc. | Non-volatile RAM and flash memory in a non-volatile solid-state storage |
US11886308B2 (en) | 2014-07-02 | 2024-01-30 | Pure Storage, Inc. | Dual class of service for unified file and object messaging |
US8868825B1 (en) | 2014-07-02 | 2014-10-21 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US9021297B1 (en) | 2014-07-02 | 2015-04-28 | Pure Storage, Inc. | Redundant, fault-tolerant, distributed remote procedure call cache in a storage system |
US11604598B2 (en) | 2014-07-02 | 2023-03-14 | Pure Storage, Inc. | Storage cluster with zoned drives |
US10853311B1 (en) | 2014-07-03 | 2020-12-01 | Pure Storage, Inc. | Administration through files in a storage system |
US9747229B1 (en) | 2014-07-03 | 2017-08-29 | Pure Storage, Inc. | Self-describing data format for DMA in a non-volatile solid-state storage |
US9811677B2 (en) | 2014-07-03 | 2017-11-07 | Pure Storage, Inc. | Secure data replication in a storage grid |
US10983859B2 (en) | 2014-08-07 | 2021-04-20 | Pure Storage, Inc. | Adjustable error correction based on memory health in a storage unit |
US9082512B1 (en) | 2014-08-07 | 2015-07-14 | Pure Storage, Inc. | Die-level monitoring in a storage cluster |
US9495255B2 (en) | 2014-08-07 | 2016-11-15 | Pure Storage, Inc. | Error recovery in a storage cluster |
US9483346B2 (en) | 2014-08-07 | 2016-11-01 | Pure Storage, Inc. | Data rebuild on feedback from a queue in a non-volatile solid-state storage |
US10079711B1 (en) | 2014-08-20 | 2018-09-18 | Pure Storage, Inc. | Virtual file server with preserved MAC address |
US9940234B2 (en) | 2015-03-26 | 2018-04-10 | Pure Storage, Inc. | Aggressive data deduplication using lazy garbage collection |
US10178169B2 (en) | 2015-04-09 | 2019-01-08 | Pure Storage, Inc. | Point to point based backend communication layer for storage processing |
US9672125B2 (en) | 2015-04-10 | 2017-06-06 | Pure Storage, Inc. | Ability to partition an array into two or more logical arrays with independently running software |
US10846275B2 (en) | 2015-06-26 | 2020-11-24 | Pure Storage, Inc. | Key management in a storage device |
US10983732B2 (en) | 2015-07-13 | 2021-04-20 | Pure Storage, Inc. | Method and system for accessing a file |
US10108355B2 (en) | 2015-09-01 | 2018-10-23 | Pure Storage, Inc. | Erase block state detection |
US11341136B2 (en) | 2015-09-04 | 2022-05-24 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US10762069B2 (en) | 2015-09-30 | 2020-09-01 | Pure Storage, Inc. | Mechanism for a system where data and metadata are located closely together |
US10853266B2 (en) | 2015-09-30 | 2020-12-01 | Pure Storage, Inc. | Hardware assisted data lookup methods |
US9768953B2 (en) | 2015-09-30 | 2017-09-19 | Pure Storage, Inc. | Resharing of a split secret |
US9843453B2 (en) | 2015-10-23 | 2017-12-12 | Pure Storage, Inc. | Authorizing I/O commands with I/O tokens |
US10007457B2 (en) | 2015-12-22 | 2018-06-26 | Pure Storage, Inc. | Distributed transactions with token-associated execution |
US10261690B1 (en) | 2016-05-03 | 2019-04-16 | Pure Storage, Inc. | Systems and methods for operating a storage system |
US11861188B2 (en) | 2016-07-19 | 2024-01-02 | Pure Storage, Inc. | System having modular accelerators |
US10768819B2 (en) | 2016-07-22 | 2020-09-08 | Pure Storage, Inc. | Hardware support for non-disruptive upgrades |
US9672905B1 (en) | 2016-07-22 | 2017-06-06 | Pure Storage, Inc. | Optimize data protection layouts based on distributed flash wear leveling |
US11604690B2 (en) | 2016-07-24 | 2023-03-14 | Pure Storage, Inc. | Online failure span determination |
US11797212B2 (en) | 2016-07-26 | 2023-10-24 | Pure Storage, Inc. | Data migration for zoned drives |
US10203903B2 (en) | 2016-07-26 | 2019-02-12 | Pure Storage, Inc. | Geometry based, space aware shelf/writegroup evacuation |
US11886334B2 (en) | 2016-07-26 | 2024-01-30 | Pure Storage, Inc. | Optimizing spool and memory space management |
US10366004B2 (en) | 2016-07-26 | 2019-07-30 | Pure Storage, Inc. | Storage system with elective garbage collection to reduce flash contention |
US11734169B2 (en) | 2016-07-26 | 2023-08-22 | Pure Storage, Inc. | Optimizing spool and memory space management |
US11422719B2 (en) | 2016-09-15 | 2022-08-23 | Pure Storage, Inc. | Distributed file deletion and truncation |
US9747039B1 (en) | 2016-10-04 | 2017-08-29 | Pure Storage, Inc. | Reservations over multiple paths on NVMe over fabrics |
US11550481B2 (en) | 2016-12-19 | 2023-01-10 | Pure Storage, Inc. | Efficiently writing data in a zoned drive storage system |
US11307998B2 (en) | 2017-01-09 | 2022-04-19 | Pure Storage, Inc. | Storage efficiency of encrypted host system data |
US11955187B2 (en) | 2017-01-13 | 2024-04-09 | Pure Storage, Inc. | Refresh of differing capacity NAND |
US9747158B1 (en) | 2017-01-13 | 2017-08-29 | Pure Storage, Inc. | Intelligent refresh of 3D NAND |
US10528488B1 (en) | 2017-03-30 | 2020-01-07 | Pure Storage, Inc. | Efficient name coding |
US11016667B1 (en) | 2017-04-05 | 2021-05-25 | Pure Storage, Inc. | Efficient mapping for LUNs in storage memory with holes in address space |
US10141050B1 (en) | 2017-04-27 | 2018-11-27 | Pure Storage, Inc. | Page writes for triple level cell flash memory |
US10516645B1 (en) | 2017-04-27 | 2019-12-24 | Pure Storage, Inc. | Address resolution broadcasting in a networked device |
US11782625B2 (en) | 2017-06-11 | 2023-10-10 | Pure Storage, Inc. | Heterogeneity supportive resiliency groups |
US10425473B1 (en) | 2017-07-03 | 2019-09-24 | Pure Storage, Inc. | Stateful connection reset in a storage cluster with a stateless load balancer |
US10402266B1 (en) | 2017-07-31 | 2019-09-03 | Pure Storage, Inc. | Redundant array of independent disks in a direct-mapped flash storage system |
US10496330B1 (en) | 2017-10-31 | 2019-12-03 | Pure Storage, Inc. | Using flash storage devices with different sized erase blocks |
US10545687B1 (en) | 2017-10-31 | 2020-01-28 | Pure Storage, Inc. | Data rebuild when changing erase block sizes during drive replacement |
US10860475B1 (en) | 2017-11-17 | 2020-12-08 | Pure Storage, Inc. | Hybrid flash translation layer |
US20190155936A1 (en) * | 2017-11-22 | 2019-05-23 | Rubrik, Inc. | Replication Catch-up Strategy |
US10976948B1 (en) | 2018-01-31 | 2021-04-13 | Pure Storage, Inc. | Cluster expansion mechanism |
US10467527B1 (en) | 2018-01-31 | 2019-11-05 | Pure Storage, Inc. | Method and apparatus for artificial intelligence acceleration |
US11036596B1 (en) | 2018-02-18 | 2021-06-15 | Pure Storage, Inc. | System for delaying acknowledgements on open NAND locations until durability has been confirmed |
US11385792B2 (en) | 2018-04-27 | 2022-07-12 | Pure Storage, Inc. | High availability controller pair transitioning |
US10853389B2 (en) * | 2018-05-02 | 2020-12-01 | EMC IP Holding Company LLC | Efficient snapshot activation |
US11868309B2 (en) | 2018-09-06 | 2024-01-09 | Pure Storage, Inc. | Queue management for data relocation |
US11500570B2 (en) | 2018-09-06 | 2022-11-15 | Pure Storage, Inc. | Efficient relocation of data utilizing different programming modes |
US11354058B2 (en) | 2018-09-06 | 2022-06-07 | Pure Storage, Inc. | Local relocation of data stored at a storage device of a storage system |
US10769033B2 (en) | 2019-01-11 | 2020-09-08 | Cohesity, Inc. | Packet-based differential backup of network-attached storage device content |
US11032156B1 (en) * | 2019-03-29 | 2021-06-08 | Amazon Technologies, Inc. | Crash-consistent multi-volume backup generation |
US11099986B2 (en) | 2019-04-12 | 2021-08-24 | Pure Storage, Inc. | Efficient transfer of memory contents |
US10936231B2 (en) | 2019-04-22 | 2021-03-02 | EMC IP Holding Company LLC | Allocating snapshot group identifiers |
US11281394B2 (en) | 2019-06-24 | 2022-03-22 | Pure Storage, Inc. | Replication across partitioning schemes in a distributed storage system |
US11893126B2 (en) | 2019-10-14 | 2024-02-06 | Pure Storage, Inc. | Data deletion for a multi-tenant environment |
CN112749123A (zh) * | 2019-10-30 | 2021-05-04 | 伊姆西Ip控股有限责任公司 | 用于管理文件系统的方法、设备和计算机程序产品 |
US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
US11704192B2 (en) | 2019-12-12 | 2023-07-18 | Pure Storage, Inc. | Budgeting open blocks based on power loss protection |
US11847331B2 (en) | 2019-12-12 | 2023-12-19 | Pure Storage, Inc. | Budgeting open blocks of a storage unit based on power loss prevention |
US11354268B2 (en) * | 2020-01-08 | 2022-06-07 | EMC IP Holding Company LLC | Optimizing snapshot creation |
US11188432B2 (en) | 2020-02-28 | 2021-11-30 | Pure Storage, Inc. | Data resiliency by partially deallocating data blocks of a storage device |
US11099956B1 (en) * | 2020-03-26 | 2021-08-24 | Commvault Systems, Inc. | Snapshot-based disaster recovery orchestration of virtual machine failover and failback operations |
US11474986B2 (en) | 2020-04-24 | 2022-10-18 | Pure Storage, Inc. | Utilizing machine learning to streamline telemetry processing of storage media |
US11340804B2 (en) * | 2020-06-25 | 2022-05-24 | Netapp Inc. | Block allocation for persistent memory during aggregate transition |
US11487455B2 (en) | 2020-12-17 | 2022-11-01 | Pure Storage, Inc. | Dynamic block allocation to optimize storage system performance |
US11614880B2 (en) | 2020-12-31 | 2023-03-28 | Pure Storage, Inc. | Storage system with selectable write paths |
US11847324B2 (en) | 2020-12-31 | 2023-12-19 | Pure Storage, Inc. | Optimizing resiliency groups for data regions of a storage system |
US11507597B2 (en) | 2021-03-31 | 2022-11-22 | Pure Storage, Inc. | Data replication to meet a recovery point objective |
US11816129B2 (en) | 2021-06-22 | 2023-11-14 | Pure Storage, Inc. | Generating datasets using approximate baselines |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050187992A1 (en) * | 2003-11-13 | 2005-08-25 | Anand Prahlad | System and method for performing a snapshot and for restoring data |
CN1704903A (zh) * | 2004-06-03 | 2005-12-07 | 华为技术有限公司 | 一种快照备份的方法 |
CN101258472A (zh) * | 2005-09-06 | 2008-09-03 | 多特希尔系统公司 | 快照恢复方法和设备 |
CN101566959A (zh) * | 2008-03-26 | 2009-10-28 | 赛门铁克公司 | 利用卷快照防止在失败的恢复操作中的文件损坏 |
US8706833B1 (en) * | 2006-12-08 | 2014-04-22 | Emc Corporation | Data storage server having common replication architecture for multiple storage object types |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7043485B2 (en) | 2002-03-19 | 2006-05-09 | Network Appliance, Inc. | System and method for storage of snapshot metadata in a remote file |
US7225204B2 (en) | 2002-03-19 | 2007-05-29 | Network Appliance, Inc. | System and method for asynchronous mirroring of snapshots at a destination using a purgatory directory and inode mapping |
US7165156B1 (en) | 2002-09-06 | 2007-01-16 | 3Pardata, Inc. | Read-write snapshots |
MXPA05003735A (es) | 2002-10-07 | 2005-11-17 | Commvault Systems Inc | Sistema y metodo para manejar datos almacenados. |
US7035881B2 (en) * | 2003-09-23 | 2006-04-25 | Emc Corporation | Organization of read-write snapshot copies in a data storage system |
US7305530B2 (en) | 2004-11-02 | 2007-12-04 | Hewlett-Packard Development Company, L.P. | Copy operations in storage networks |
AU2006262045B2 (en) | 2005-06-24 | 2011-11-03 | Catalogic Software, Inc. | System and method for high performance enterprise data protection |
US8078816B1 (en) | 2009-04-07 | 2011-12-13 | Netapp, Inc. | Transparent transfer of qtree and quota metadata in conjunction with logical replication of user data |
US8805786B1 (en) | 2011-06-24 | 2014-08-12 | Emc Corporation | Replicating selected snapshots from one storage array to another, with minimal data transmission |
US10956041B2 (en) | 2014-06-26 | 2021-03-23 | Vmware, Inc. | Online snapshot consolidation using I/O mirroring |
-
2017
- 2017-01-31 US US15/421,149 patent/US10261719B2/en active Active
-
2018
- 2018-01-19 CN CN201810054360.8A patent/CN108376109B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050187992A1 (en) * | 2003-11-13 | 2005-08-25 | Anand Prahlad | System and method for performing a snapshot and for restoring data |
CN1704903A (zh) * | 2004-06-03 | 2005-12-07 | 华为技术有限公司 | 一种快照备份的方法 |
CN101258472A (zh) * | 2005-09-06 | 2008-09-03 | 多特希尔系统公司 | 快照恢复方法和设备 |
US8706833B1 (en) * | 2006-12-08 | 2014-04-22 | Emc Corporation | Data storage server having common replication architecture for multiple storage object types |
CN101566959A (zh) * | 2008-03-26 | 2009-10-28 | 赛门铁克公司 | 利用卷快照防止在失败的恢复操作中的文件损坏 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111125001A (zh) * | 2018-10-31 | 2020-05-08 | 伊姆西Ip控股有限责任公司 | 快照复制方法、电子设备和计算机程序产品 |
CN110795389A (zh) * | 2019-10-28 | 2020-02-14 | 深信服科技股份有限公司 | 基于存储快照的拷贝方法、用户设备、存储介质及装置 |
CN110795389B (zh) * | 2019-10-28 | 2022-09-30 | 深信服科技股份有限公司 | 基于存储快照的拷贝方法、用户设备、存储介质及装置 |
CN111857602A (zh) * | 2020-07-31 | 2020-10-30 | 重庆紫光华山智安科技有限公司 | 数据处理方法、装置、数据节点及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20180217756A1 (en) | 2018-08-02 |
US10261719B2 (en) | 2019-04-16 |
CN108376109B (zh) | 2022-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108376109A (zh) | 卷和快照复制 | |
AU2018324425B2 (en) | Restoring a database using a fully hydrated backup | |
US10621050B2 (en) | Method and apparatus for restoring data from snapshots | |
US9367598B2 (en) | Merging an out of synchronization indicator and a change recording indicator in response to a failure in consistency group formation | |
US10146633B2 (en) | Data recovery from multiple data backup technologies | |
US9430272B2 (en) | Efficiently providing virtual machine reference points | |
US8782005B2 (en) | Pruning previously-allocated free blocks from a synthetic backup | |
US10872017B2 (en) | Restoring a file system object | |
EP3796174B1 (en) | Restoring a database using a fully hydrated backup | |
CN105324757A (zh) | 具有分布式清单的去复制的数据存储系统 | |
US8966200B1 (en) | Pruning free blocks out of a decremental backup chain | |
KR20160030401A (ko) | 가상 데이터베이스 되감기 | |
CN109753381B (zh) | 一种基于对象存储的持续数据保护方法 | |
JP6070146B2 (ja) | 情報処理装置及びバックアップ方法 | |
US8732135B1 (en) | Restoring a backup from a deduplication vault storage | |
US8972353B1 (en) | System and method of enhanced backup and recovery configuration | |
CN110442645B (zh) | 数据索引方法及装置 | |
US10289495B1 (en) | Method and system for performing an item level restore from a backup | |
CN116755835B (zh) | 迁移虚拟机的方法、装置、计算机设备、介质和程序产品 | |
CN109298975A (zh) | 一种数据处理方法及装置 | |
CN109144774A (zh) | 用于在存储系统中进行复制控制的方法以及装置 | |
US10691370B2 (en) | Assignment of a data identifier to first and second volumes | |
US20160092457A1 (en) | Consolidating decremental backups in a decremental backup chain | |
CN109753228B (zh) | 快照删除方法、装置及系统 | |
WO2015037205A1 (ja) | データ処理システム、データ処理方法およびプログラム記録媒体 |
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 |