CN112912853B - 到云的任何时间点复制 - Google Patents

到云的任何时间点复制 Download PDF

Info

Publication number
CN112912853B
CN112912853B CN201980070627.5A CN201980070627A CN112912853B CN 112912853 B CN112912853 B CN 112912853B CN 201980070627 A CN201980070627 A CN 201980070627A CN 112912853 B CN112912853 B CN 112912853B
Authority
CN
China
Prior art keywords
data
metadata
volume
production
objects
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
Application number
CN201980070627.5A
Other languages
English (en)
Other versions
CN112912853A (zh
Inventor
I·阿扎里亚
K·沃尔夫森
J·舍默尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Publication of CN112912853A publication Critical patent/CN112912853A/zh
Application granted granted Critical
Publication of CN112912853B publication Critical patent/CN112912853B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2053Error 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/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2053Error 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/2056Error 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
    • G06F11/2071Error 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 using a plurality of controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

用于到云的任何时间点复制的系统、装置和方法。通过将数据复制到云中的远程存储器或数据存储区来复制数据。同时,生成并存储元数据流。元数据流在生产卷中建立数据与数据的偏移量之间的关系。这允许连续复制而不必维持副本卷。可以在使用元数据流从云数据构造生产卷的重新补充操作期间生成副本卷。

Description

到云的任何时间点复制
技术领域
本发明的实施方式涉及用于将数据复制到云并恢复数据的系统、装置和方法。更具体地,本发明的实施方式涉及用于执行到存储位置(例如云或数据中心)的任何时间点复制的系统和方法。本发明的实施方式还涉及连续复制,而不必在云中维持副本卷。
背景技术
数据保护是实体保护其数据的过程。数据经常例如通过创建备份而受到保护。通过执行备份操作来创建备份,实体能够在丢失生产数据时从备份副本恢复其生产数据。
数据保护系统通常与恢复点目标(recovery point objective,RPO)相关联。RPO可以以多种方式表示,但通常是指可以恢复数据的时间点。例如,一个小时的RPO意味着如果生产数据发生问题,则该实体很可能会丢失一个小时的数据。
某些实体可以选择将其数据复制到云中,而不是在本地备份数据。这通常是使用基于快照的方法执行的。然而,基于快照的系统的RPO通常不令人满意。更具体地说,基于快照的应用程序中的RPO受到限制。只能对最新的快照执行恢复,该最新的快照可能是在过去的几分钟或几小时的快照。
此外,传统的镜像(如在一级复制中所做的那样)需要远程站点上的计算资源,以便处理数据并维持副本卷或镜像卷。
附图说明
为了描述可以获得本发明的至少一些方面的方式,将通过参考在附图中示出的本发明的特定实施方式来进行更具体的描述。将理解,这些附图仅描绘了本发明的示例性实施方式,因此不应被认为是对本发明的范围的限制,将通过使用附图以附加的特征和细节来描述和解释本发明的实施方式,其中:
图1示出了用于在云中复制数据的系统、装置和方法的示例;
图2示出了用于通过将对象存储在数据存储区中并维持对象的元数据流来在云中复制数据的系统、装置和方法的示例;
图3示出了元数据流与生产卷和/或存储在云中的对象之间的关系的示例;
图4示出了用于复制生产数据的方法的示例;
图5示出了用于将来自数据存储区的数据重新补充到副本生产卷的系统、装置和方法的示例;
图6示出了用于使用元数据流和数据存储区重新补充生产卷的方法的示例;以及
图7示出了在复制系统中合并数据的示例。
具体实施方式
本发明的实施方式涉及用于保护数据的系统、装置和方法。更具体地,本发明的实施方式涉及数据保护操作,其可以包括但不限于,备份操作、复制操作、恢复操作、重新补充操作、重复数据删除操作、元数据操作等或其组合。
本发明的实施方式涉及数据保护系统、装置和方法,其允许在云(例如,数据中心)中保护数据,同时实现数秒的RPO并且具有任何时间点粒度。本发明的实施方式也可以应用在本地备份的情况中。为了实现任何时间点粒度和数秒的或更小的RPO,本发明的实施方式将生产数据复制到对象存储器(云)并生成元数据流。元数据流存储复制的数据和生产卷之间的关系。
通过将元数据流应用于云数据,可以将生产数据恢复到任何时间点。在一个示例中,通过连续地复制数据并通过提供元数据流,实施方式允许(对于连续复制系统)将云数据存储在除第一级存储器之外的其他存储器中。此外,在一个实施方式中,可以仅在需要恢复时才需要计算资源。换句话说,仅当以连续方式保护数据时,才有必要将数据写入云。还可以通过执行重复数据删除操作来降低存储需求。
在本发明的实施方式中,连续复制涉及将生产数据(生产卷)上的每个IO(输入/输出)镜像或复制到远程站点。被复制或镜像的数据可以作为对象存储在数据存储区中。将数据复制到远程站点可以实现接近零的RPO。
传统镜像的缺点是经常需要一级存储。此外,在远程站点处需要计算时间来处理数据并维持副本卷。在一个示例中,本发明的实施方式能够连续地复制数据,并且无需维持副本卷即可实现接近零的RPO。相反,仅在恢复或重新补充操作期间才需要计算时间。
数据可以以不同的方式存储在数据中心中,不同的方式包括对象存储、文件存储和块存储。本文中使用术语数据或对象,并且本发明还可以利用文件或块或其他数据存储配置来执行。在基于对象的存储的情况中,每个对象可以包括例如数据、可变数量的元数据和/或全局唯一标识符。
本发明的实施方式提出将生产数据连续复制到远程站点,例如数据中心或云存储器(在本文中也称为在其中存放数据的数据存储区)。
使用元数据流进行连续复制
图1示出了在其中执行数据保护操作的计算环境的示例。图1示出了与生产数据106(例如,生产卷)相关联的客户端102。客户端102可以是虚拟机、计算设备(诸如计算机、膝上型计算机、平板电脑、智能电话、服务器计算机等)。生产数据106可以驻留在存储设备(存储阵列或其他存储布置)上。生产数据106可以是客户端102本地的(例如,在同一网络中)或远离客户端102。生产数据106还可以是基于云的存储数据。
客户端102与生产数据106交互,并且可以写入数据或读取数据或执行其他动作。在保护数据或数据复制的情况中,输入/输出(IO)可以指导致对生产数据106进行更改的动作或命令。无论何时写入(删除、移动、修改、复制等)数据到生产数据106,复制引擎104都复制数据。更具体地,复制引擎104可以复制动作。复制引擎104可以合并到生产数据106中,可以是服务器或其他设备,或者是配置为检测某些命令(包括写入)并相应地复制数据的软件层。
因此,在该示例中,复制引擎104将数据复制或写入到远程存储器108,远程存储器108可以是数据中心、云存储器等。复制引擎还可以生成元数据流并将元数据流写入远程元数据流存储器110。流存储器110可以与远程存储器108位于相同的位置(例如,相同的存储系统、相同的数据中心)。流存储器110和远程存储器108也可以是分开的存储器。
图2进一步示出了图1中所示的复制。在一个示例中,复制引擎202(复制引擎104的示例)可以检测正在被写入到生产卷208中的IO 210,生产卷208可以存储生产数据106。复制引擎202可以确定IO 210包括数据A,并且正在将其写入被标识为偏移量X的位置。偏移量X代表数据A在生产卷208或生产数据106中的位置。可以用其他术语来指示偏移量X,这可以取决于生产卷208的配置。
然后,复制引擎将IO 210复制到数据存储区204,数据存储区204是远程存储器108的一个示例。在一个示例中,数据存储区204是键值型存储器。因此,复制引擎202可以向数据存储区204提供数据A,并且诸如标识符10和IO 210之类的键将被存储在数据存储区204中。为了检索数据A,向数据存储区提供标识符10。使用标识符10,数据存储区204可以检索并返回数据A。
在将IO 210或数据A复制到数据存储区204的同时,复制引擎202还可以生成元数据流206(或流中的针对每个IO的条目),该元数据流206在传输时被存储在流存储器110中。元数据流206通常包括与诸如IO 210之类的每个IO相关联的元数据。在该示例中,元数据流206中的针对IO 210的条目212包括偏移量X和标识符10。元数据流206中包括的偏移量X指的是在生产卷208中的偏移量。该信息允许在必要时恢复生产卷,如下面更详细描述的。
另外,以这种方式复制计算系统的IO可以实现接近零的RPO,而不必在云上维持副本卷,从而节省了计算资源。而且,本发明的实施方式允许时间点复原。在一个示例中,时间点复原通常部分与特定的IO相关联,原因是元数据流206与在生产卷208处发生的IO有关。通过标识时间或IO,本发明的实施方式允许将生产卷恢复到该时间点或特定IO。
在一个示例中,与每个IO相关联的数据在生产卷208上作为对象存储在数据存储区204中。例如,IO 210可以被划分为8KB的多个块。本发明的实施方式考虑了可变大小的块。但是,固定大小的对象需要较少的处理开销,包括IO重叠的固有处理。块或对象的实际大小通常很小(例如4KB、8KB)。即使较大的对象大小可能需要较少的上载,但如果仅写入了对象或块的一部分,则较大大小的对象也可能需要完成该对象或块。而且,跟踪以较大大小的块或对象写入的区域会增加复杂性。
因此,图2说明了在复制(包括连续复制)期间,数据A可以被存储为对象A。更具体地,数据A实际上可以被分块为块A1、A2等。因此,对象A1、A2等将被存储在数据存储区204中,并且每个块将具有其自己的标识符。元数据流206存储标识符(其允许识别和检索数据存储区204中的相应对象)与生产卷中的偏移量之间的关系。在恢复期间,元数据流中的偏移量和标识符允许检索对象并将其写入生产卷中的适当偏移量,从而恢复生产卷。
由于在将数据存储到数据存储区之前先对数据进行了分块,因此一旦所有块都已恢复,则基于偏移量来恢复对象的能力就可以有效地恢复数据。
图3更具体地示出了元数据流与生产卷之间的关系的示例。图3示出了与生产卷302相关联的元数据流304。在一个示例中,元数据流304是IO元数据序列或条目序列(其中每个条目对应于一个IO)。元数据流304中的条目与存储在生产卷302中的数据有关。每个条目存储在生产卷中的偏移量和标识符。元数据流中的条目与在对数据进行分块之后的数据有关。因此,偏移量0和标识符10对应于生产卷302中的数据A(或对象A)。因此,数据A位于生产卷302中为0的偏移量处。类似地,对象B、C、D、E和F分别位于偏移量为1、2、3、4和5处,并具有标识符20、30、40、50和60。标识符可以是代表相应数据的任何数据。通常,标识符唯一地标识数据。例如,标识符可以是相应数据(对象、块等)的散列。标识符也可以用于对数据进行重复数据删除。
图4示出了用于执行诸如数据复制之类的数据保护应用的方法的示例。在一个示例中,该方法可以由复制设备或其他服务器或设备执行。在图4中,捕获IO流402。该IO流被连续捕获并且是连续复制的一个示例。例如,将数据写入生产卷时,将捕获IO。
接下来,复制IO流404。复制设备或复制引擎可以将与IO流相关联的数据分块为块。如前所述,这些块可以具有预定大小。在一个示例中,IO流被分块成8KB的块。然后,复制设备将这些块作为对象上载到数据存储区。于是将这些对象存储在数据存储区中。在一个示例中,使用键值布置将对象存储在数据存储区中。
接下来(或基本同时),将与对象或IO流相关联的元数据聚集406并存储在元数据流中。因此,在一个示例中,元数据流是已针对生产卷捕获的IO流的顺序列表。在一个示例中,基于元数据流的大小、基于期望的RPO和/或基于另一阈值,将元数据流发送到元数据存储器。例如,如果元数据流的大小达到阈值大小(例如8KB),则将元数据流发送并存储在元数据存储器中。因此,元数据流也可以被作为对象存储。可替选地,一旦已通过RPO的四分之一(或其他阈值),就发送元数据流。
图4说明了通过将数据(或对象)复制到数据存储区以及通过生成和存储与写入数据存储区的对象相关联的元数据流来连续复制生产卷的能力。这进一步允许连续复制,而不必维持和消耗云计算资源来在云中维持副本卷。相反,仅当需要从备份(存储在数据存储区中的对象和元数据流)恢复或重新补充生产卷时,才需要云计算资源。
生产数据重新补充
可以使用存储在远程存储器(或数据存储存储区)中的对象和存储在流存储器中的元数据流来重新补充生产卷(或生产数据)。通常,通过创建空白的元数据卷来重新补充或恢复生产卷。一旦创建了元数据卷,则通过将标识符写入元数据卷中的偏移量,来使用元数据流将元数据卷滚动到所需的时间点。这是通过从元数据流的尾部向前移动并根据遇到的每次写入更新元数据卷来实现的。
元数据卷中的每个条目都指向存储的对象中的IO。因此,在一个示例中,元数据卷包括分别指向对象存储器中的对象的条目。在一个示例中,在元数据卷中仅更新每个IO的第一个遇到的实例。更具体地,如先前所讨论的,用每个遇到的IO来更新元数据卷。如果要在达到所需的时间点之前覆写特定的偏移量,则这允许避免将实际的IO数据复制到恢复的卷中。因此,在一个示例中,查看从所需时间点到尾部的元数据流,每个偏移量仅复制一个IO。
一旦在元数据流中达到了适当的时间点,并且元数据流中的所有必要条目已被写入元数据卷,则对元数据卷进行组织。此时实际数据尚未移动或复制。然而,本发明的实施方式考虑了在组织元数据卷的同时复制数据。
一旦已准备好元数据卷,则可以使用元数据卷和数据存储区来重新补充生产卷。重新补充后的生产卷是在请求的时间点的原始生产卷(例如虚拟机的磁盘)的副本。在一个示例中,仅当像常规卷一样访问得到的副本卷时,才需要实际生成副本生产卷。如果存在中介体,则可以按需使用元数据卷和数据存储区,而无需再次复制用户数据。在一个示例中,元数据卷允许或防止关于如前所述将被覆写的数据的不必要的读取。
图5示出了重新补充生产卷的示例。图5示出了从元数据流502和数据存储区510重新补充生产卷506的过程,所述元数据流502和数据存储区510是先前描述的元数据流和数据存储区的示例。
在图5中,在一个示例中,首先从空白的元数据卷开始生成元数据卷504。在该示例中,读取元数据流502的尾端512。尾端512对应于元数据流502中的一个条目。在一个示例中,尾端的条目是元数据流502中最旧的条目。在该示例中,新条目被推到元数据流的头部。然而,元数据流可以以另一种方式布置,以使最旧的条目位于元数据流的头部。通过读取以最旧的条目开始的元数据流502,然后在时间上向回追溯,可以在与生产卷中的偏移量相对应的偏移量处用对象或数据标识符填充元数据卷504。
在一个示例中,初始化的生产卷可以是可用的。该生产卷可以对应于恰好在元数据流中最旧的条目之前的时间点。使用已从元数据流中加载了信息的元数据卷,可以将初始生产卷向前滚动到选定的时间点。在一个示例中,可以直接从元数据流生成生产卷。
在该示例中,将标识符10复制到对应于偏移量0的位置。当时间到达准备生产卷504的时候,存储在偏移量0处的元数据卷504中的标识符用于从数据存储区510中检索对象,然后将从数据存储区510中检索到的对象写入到生产卷506中的与偏移量0相对应的位置,生产卷506可以是副本卷。
更具体地,读取元数据流502,直到到达时间点514,并且如果需要,将每个条目写入元数据卷。时间点514是预期恢复的时间点。在该示例中,有六个条目要写入元数据卷504。因此,标识符10、20、30、40、50和60被写入存储在元数据卷504中的相应位置或偏移量。这会得到元数据卷504,其包括分别在偏移量0、1、2、3、4和5处写入的标识符10、20、30、40、50和60。
在此阶段,还没有数据从数据存储区510复制到生产卷506。然而,由于正在生成元数据卷504,因此可以恢复或重新补充生产卷。
一旦针对时间点514生成了元数据卷504,则可以用来自数据存储区510的数据来填充生产卷506。因为元数据卷504存储了标识符或键,所以这些标识符可用于访问数据存储区510,以检索相应的对象,这些对象被写入生产卷506中的相同或相对应的偏移量。因此,元数据卷504中的标识符10用于检索对象A。然后,将对象A写入到生产卷中的偏移量0,对象A对应于标识符10,该标识符10被写入元数据卷中的偏移量0。一旦完成该过程,则生产卷506准备好被使用,并且可以在需要时被安装。元数据卷504可以保留一段时间或被删除。
可替选地,如果有中介体,则可能不需要重新补充的卷或副本卷。例如,可以请求对偏移量1处的数据的请求。中介体可以访问元数据卷以确定偏移量1处的标识符,然后访问数据存储区510以检索与检索到的标识符相对应的数据。然后将检索到的数据返回给请求者。
图6示出了用于重新补充生产卷的方法的示例。一旦开始重新补充操作,则创建空白的元数据卷602。然后通过将元数据滚动到所需的时间点来填充元数据卷604。这可以通过从元数据流的尾部开始填充元数据卷并根据元数据流中的写入更新元数据卷来执行。这允许将元数据组织到元数据卷中。
接下来,使用元数据卷和数据存储区来重新补充606生产卷。在一个示例中,被补充的生产卷可以具有存储在其上的一组初始数据。元数据卷中的条目允许从数据存储区中检索对象并将其写入生产卷中的特定偏移量。这允许将生产卷向前滚动到所选或所确定的时间点。
在一个示例中,可能需要初始化阶段以获得第一个一致的时间点。这可以通过读取和发送整个生产卷作为IO来执行。一旦在元数据流和数据存储区中实现了此目的,则可以执行本文讨论的连续复制。因此,系统可以回滚到的第一个时间点是与初始化过程相关联的第一个一致的时间点。这是应用元数据卷的副本生产卷的一个示例。在另一个示例中,初始化的生产卷可以周期性地更新。
为了节省空间,可以合并存储在数据存储区中的数据。这可能减小过去的时间点的粒度,但是可以节省空间。可以定义合并窗口,并且可以合并该窗口内的数据。
图7示出了合并的示例。图7示出了在其中合并数据的合并间隔702或窗口。在图7中,合并间隔702的最新端在左侧。在合并期间,可以创建位图。位图中的每个位可以对应于生产卷中的偏移量。在时间上向后移动通过合并间隔702,为遇到的每个IO元数据设置一个位(如果未设置该位)。如果该位已设置,则可以删除相应的IO。特别地,可以从元数据流中删除IO元数据条目,并且可以从数据存储区中删除数据。
图7中示出的合并间隔包括5个条目。合并间隔702可以具有变化的大小和范围。此外,合并间隔702可以与不同的时间段相关联。例如,合并间隔702可以应用于一个月或类似的条目。
在该示例中,这些条目从最近开始评估。合并间隔702中的最新条目706参考偏移量5。因此,设置了位图704中的对应位。从合并间隔702中的IO A移至IO C,设置偏移量5、4和3的位。当遇到条目708时,将删除条目708(和相应的数据),因为在遇到条目710时已经设置了偏移量4的位。条目712和714在合并间隔702之外,因此被保留。
在一个示例中,将历史限制到预定的保护窗口可以在必要时将任何副本磁盘的大小保持在所需的限制之下。在连续复制中,通常根据时间来定义保护窗口。因此,合并窗口可以应用于元数据流的尾部。可以周期性地合并数据。
在另一个示例中,可以对数据存储区中的数据进行重复数据删除。例如,可以维持对象的散列图,以使块或对象在可能的情况下仅存储一次。元数据流中的新IO元数据将指向数据存储区中已经存在的现有对象或块。另外,可以周期性地执行垃圾收集以移除未被任何IO或元数据流中的条目使用的块。
以这种方式进行重复数据删除不仅减少了数据存储区的使用,而且减少了通信开销。不传输被重复数据删除的数据。这减少了带宽需求并提高了RPO。
使用如本文讨论的到云的连续复制,可以实现数秒(或更短)的RPO。此外,粒度处于IO水平。因此,可以将生产卷恢复到任何时间点。此外,通过将数据和元数据保存为对象,允许使用更便宜的存储器。仅在需要恢复时才可能需要更昂贵的存储器,例如一级(Tier1)存储器。
应当理解,本发明可以以多种方式实现,包括作为以下方式来实现:进程、装置、系统、设备、方法、或诸如计算机可读存储介质之类的计算机可读介质、或计算机网络,其中,通过光学或电子通信链路发送计算机程序指令。应用可以采取在通用计算机上执行的软件的形式,也可以采用硬件方式进行硬连线或硬编码。在本说明书中,这些实现方式或本发明可以采用的任何其他形式可以被称为技术。通常,可以在本发明的范围内改变所公开的过程的步骤的顺序。
本文公开的实施方式可以包括使用包括各种计算机硬件或软件模块的专用或通用计算机,如下面更详细地讨论的。计算机可以包括处理器和承载指令的计算机存储介质,该指令在由处理器执行和/或使得由处理器执行时执行本文公开的任何一种或多种方法。
如上所述,本发明范围内的实施方式还包括计算机存储介质,其是用于承载或具有在其上存储的计算机可执行指令或数据结构的物理介质。这样的计算机存储介质可以是可由通用或专用计算机访问的任何可用物理介质。
作为示例而非限制,这种计算机存储介质可以包括:诸如固态磁盘(SSD),RAM、ROM、EEPROM、CD-ROM、闪存、相变存储器(“PCM”),或其他光盘存储设备,磁盘存储设备或其他磁性存储设备之类的硬件,或可用于存储计算机可执行指令或数据结构形式的程序代码的任何其他硬件存储设备,这些代码可由通用或专用计算机系统访问和执行以实现本发明公开的功能。以上各项的组合也应包括在计算机存储介质的范围内。这样的介质也是非暂时性存储介质的示例,并且非暂时性存储介质也包括基于云的存储系统和结构,然而本发明的范围不限于非暂时性存储介质的这些示例。
计算机可执行指令包括例如使得通用计算机、专用计算机或专用处理设备执行特定功能或一组功能的指令和数据。尽管已经用特定于结构特征和/或方法动作的语言描述了主题,但是应该理解,所附权利要求书中定义的主题不必限于上述特定特征或动作。而是,本文中公开的特定特征和动作被公开为实现权利要求的示例形式。
如本文所使用的,术语“模块”或“组件”可以指在计算系统上执行的软件对象或例程。本文描述的不同组件、模块、引擎和服务可以被实现为在计算系统上执行的对象或进程,例如,被实现为单独的线程。尽管本文描述的系统和方法可以以软件实现,但是以硬件、或软件和硬件的组合实现也是可能的并且是可以预期的。在本发明中,“计算实体”可以是如本文先前所述的任何计算系统,或者可以是在计算系统上运行的任何模块或模块的组合。
在至少一些实例中,提供硬件处理器,该硬件处理器可操作以执行用于执行方法或过程(例如,本文公开的方法和过程)的可执行指令。硬件处理器可以包括或可以不包括其他硬件的要素,例如本文公开的计算设备和系统。
就计算环境而言,本发明的实施方式可以在客户端-服务器环境中(无论是在网络还是本地环境中)执行,或者在任何其他合适的环境中执行。用于本发明的至少一些实施方式的合适的操作环境包括客户端、服务器或目标虚拟机中的一者或多者可以驻留并在云环境中操作的云计算环境。
在不脱离本发明的精神或本质特性的情况下,本发明可以以其他特定形式来体现。所描述的实施方式在所有方面仅应被认为是说明性的而非限制性的。因此,本发明的范围由所附权利要求书而不是前面的描述说明。落入权利要求等同含义和范围内的所有改变均应包含在其范围之内。

Claims (17)

1.一种用于复制数据的方法,所述方法包括:
捕获在生产数据上发生的处理,其中,所述处理与所述生产数据的变化有关;
通过将与所述处理相关联的数据作为对象传输到远程存储器使得能够从所述对象复制所述生产数据,来连续地复制所述生产数据,从而能够以单个IO粒度水平将生产卷恢复到任何时间点;
当所述数据存储在所述远程存储器中时对所述数据进行重复数据删除,以便减少与所述数据相关联的通信开销要求和存储要求,并相对于没有重复数据删除的RPO性能提高了RPO,其中对所述数据进行重复数据删除包括维持所述对象的散列图,以使所述对象在所述远程存储器中仅存储一次,并且涉及被重复数据删除的对象的后续IO将指向现有对象,从而避免了传输已存储在所述远程存储器中的所述对象的需求;
生成与所述处理相关联的元数据流,其中,所述元数据流中的每个条目对应于一个处理;以及
将所述元数据流存储在元数据存储器中,其中,所述生产数据被连续地复制而无需在所述远程存储器中维持副本卷。
2.如权利要求1所述的方法,其中,所述处理包括写入和删除中的至少一者。
3.如权利要求1所述的方法,还包括将所述数据分块为对象。
4.如权利要求3所述的方法,其中,每个所述对象具有预定大小。
5.如权利要求3所述的方法,其中,每个对象与所述生产数据中的偏移量相关联,并且每个对象与唯一地标识所述对象的标识符相关联。
6.如权利要求1所述的方法,还包括使用合并间隔来合并所述元数据流和所述对象。
7.如权利要求1所述的方法,还包括从所述对象和所述元数据流重新补充所述生产数据。
8.如权利要求1所述的方法,还包括将初始生产副本存储在所述远程存储器中。
9.如权利要求1所述的方法,还包括:通过使用存储在所述远程存储器中的元数据和数据生成生产卷来执行重新补充过程。
10.如权利要求9所述的方法,其中,生成的所述生产卷是所述生产卷的副本,并且所述重新补充过程包括:
创建空白的元数据卷,以准备重新补充所述生产卷;
在元数据流中选择与恢复点相对应的时间点;
访问所述元数据流并将所述元数据流中的条目写入所述空白的元数据卷,其中,每个条目包括对象的标识符的偏移量,其中,将所述标识符写入所述空白的元数据卷中与所述条目中的偏移量相对应的位置,以准备组织后的元数据卷;
从所述组织后的元数据卷和存储在所述远程存储器中的数据生成所述生产卷,其中,将所述远程存储器中的与存储在所述组织后的元数据卷中的所述标识符相对应的对象写入到所述生产卷中的对应偏移量。
11.如权利要求10所述的方法,还包括为所述生产卷选择时间点,其中,所述时间点对应于所述元数据流中的特定条目。
12.如权利要求10所述的方法,其中,所述生产卷包括初始化的生产数据。
13.如权利要求12所述的方法,其中,将所述远程存储器中的所述对象写入到所述生产卷中的所述初始化的生产数据中。
14.如权利要求10所述的方法,其中,所述组织后的元数据卷在一个时刻被准备一个条目,并且避免不必要的写入。
15.如权利要求10所述的方法,其中,对所述远程存储器中的所述对象进行重复数据删除。
16.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质包括指令,所述指令在被执行时执行如权利要求10所述的方法。
17.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质包括指令,所述指令在由处理器执行时执行如权利要求1所述的方法。
CN201980070627.5A 2018-10-25 2019-07-10 到云的任何时间点复制 Active CN112912853B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/170,809 2018-10-25
US16/170,809 US10860608B2 (en) 2018-10-25 2018-10-25 Any point in time replication to the cloud
PCT/US2019/041118 WO2020086126A1 (en) 2018-10-25 2019-07-10 Any point in time replication to the cloud

Publications (2)

Publication Number Publication Date
CN112912853A CN112912853A (zh) 2021-06-04
CN112912853B true CN112912853B (zh) 2022-11-04

Family

ID=67441755

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980070627.5A Active CN112912853B (zh) 2018-10-25 2019-07-10 到云的任何时间点复制

Country Status (6)

Country Link
US (2) US10860608B2 (zh)
CN (1) CN112912853B (zh)
DE (1) DE112019005351T5 (zh)
GB (1) GB2591951B (zh)
IE (1) IE20190226A1 (zh)
WO (1) WO2020086126A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10860608B2 (en) 2018-10-25 2020-12-08 EMC IP Holding Company LLC Any point in time replication to the cloud
US11620056B2 (en) * 2019-06-28 2023-04-04 EMC IP Holding Company LLC Snapshots for any point in time replication

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9087008B1 (en) * 2013-06-24 2015-07-21 Emc International Company Replicating a volume using snapshots
CN104866435A (zh) * 2015-06-06 2015-08-26 成都云祺科技有限公司 一种连续数据保护方法
CN106354582A (zh) * 2016-08-18 2017-01-25 无锡华云数据技术服务有限公司 一种连续数据保护方法
EP3125119A1 (en) * 2015-07-30 2017-02-01 Zerto Ltd. A method for restoring files from a continuous recovery system

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040128269A1 (en) 2002-12-27 2004-07-01 Milligan Charles A. System and method for managing data through families of inter-related metadata tables
WO2005017686A2 (en) * 2003-08-05 2005-02-24 Sepaton, Inc. Emulated storage system
US7395396B2 (en) 2004-08-30 2008-07-01 Hitachi, Ltd. Storage system and data relocation control device
US20060282471A1 (en) 2005-06-13 2006-12-14 Mark Timothy W Error checking file system metadata while the file system remains available
JP2007108981A (ja) 2005-10-13 2007-04-26 Hitachi Ltd ストレージ装置及びボリューム間のデータ交換方法
GB0622140D0 (en) * 2006-11-07 2006-12-20 Ibm Suspension of asynchronous remote copying system
US7716183B2 (en) 2007-04-11 2010-05-11 Dot Hill Systems Corporation Snapshot preserved data cloning
US7844856B1 (en) * 2007-12-26 2010-11-30 Emc (Benelux) B.V., S.A.R.L. Methods and apparatus for bottleneck processing in a continuous data protection system having journaling
US7913116B2 (en) 2008-02-27 2011-03-22 Red Hat, Inc. Systems and methods for incremental restore
JP5186982B2 (ja) 2008-04-02 2013-04-24 富士通株式会社 データ管理方法及びスイッチ装置
US8819362B1 (en) * 2009-03-26 2014-08-26 Emc Corporation Managing replication and reservations
US8706727B2 (en) * 2009-06-19 2014-04-22 Sybase, Inc. Data compression for reducing storage requirements in a database system
US9836466B1 (en) * 2009-10-29 2017-12-05 Amazon Technologies, Inc. Managing objects using tags
US9304867B2 (en) 2010-09-28 2016-04-05 Amazon Technologies, Inc. System and method for providing flexible storage and retrieval of snapshot archives
US9535801B1 (en) * 2011-06-30 2017-01-03 EMC IP Holding Company LLC Xcopy in journal based replication
US8762362B1 (en) 2011-10-21 2014-06-24 Applied Micro Circuits Corporation System and method for updating a data structure
US8712963B1 (en) * 2011-12-22 2014-04-29 Emc Corporation Method and apparatus for content-aware resizing of data chunks for replication
US9710475B1 (en) 2012-07-16 2017-07-18 Tintri Inc. Synchronization of data
US9229845B1 (en) * 2012-11-01 2016-01-05 Amazon Technologies, Inc. Testing using production data in scalable pre-production environments
US9569122B2 (en) 2013-06-12 2017-02-14 Infinidat Ltd. System, method and a non-transitory computer readable medium for transaction aware snapshot
US9329780B2 (en) * 2014-02-11 2016-05-03 International Business Machines Corporation Combining virtual mapping metadata and physical space mapping metadata
US10380026B2 (en) 2014-09-04 2019-08-13 Sandisk Technologies Llc Generalized storage virtualization interface
US9881040B2 (en) 2015-08-20 2018-01-30 Vmware, Inc. Tracking data of virtual disk snapshots using tree data structures
US10007448B2 (en) 2015-08-28 2018-06-26 Vmware, Inc. Multiple hierarchies of snapshots
US10095428B1 (en) * 2016-03-30 2018-10-09 EMC IP Holding Company LLC Live migration of a tree of replicas in a storage system
US10762054B2 (en) * 2016-07-22 2020-09-01 Microsoft Technology Licensing, Llc Cloud content states determination logic
US10162528B2 (en) 2016-10-25 2018-12-25 Commvault Systems, Inc. Targeted snapshot based on virtual machine location
US10275177B2 (en) * 2016-10-31 2019-04-30 Oracle International Corporation Data layout schemas for seamless data migration
US10802927B2 (en) 2016-11-17 2020-10-13 Vmware, Inc. System and method for checking and characterizing snapshot metadata using snapshot metadata database
US10114581B1 (en) 2016-12-27 2018-10-30 EMC IP Holding Company LLC Creating a virtual access point in time on an object based journal replication
US10481988B2 (en) 2017-01-24 2019-11-19 Zerto Ltd. System and method for consistency verification of replicated data in a recovery system
US10609174B2 (en) * 2017-04-11 2020-03-31 Microsoft Technology Licensing, Llc Parallel prefetching log/meta stream sub-portions to recreate partition states in a distributed computing system
US11182256B2 (en) * 2017-10-20 2021-11-23 Hewlett Packard Enterprise Development Lp Backup item metadata including range information
US11263128B2 (en) * 2017-10-27 2022-03-01 Google Llc Packing objects by predicted lifespans in cloud storage
US11138156B2 (en) 2017-11-27 2021-10-05 DataCommand Corp. Continuous data management system and operating method thereof
US10909071B2 (en) 2018-07-13 2021-02-02 Vmware, Inc. Batch-based deletion of snapshots archived in cloud/object storage
US11099938B2 (en) 2018-07-31 2021-08-24 Vmware, Inc. System and method for creating linked clones of storage objects with surface snapshots
US11334545B2 (en) 2018-08-25 2022-05-17 Vmware, Inc. System and method for managing space in storage object structures
US10860608B2 (en) 2018-10-25 2020-12-08 EMC IP Holding Company LLC Any point in time replication to the cloud
US11334521B2 (en) 2018-12-21 2022-05-17 EMC IP Holding Company LLC System and method that determines a size of metadata-based system snapshots
US11061569B2 (en) 2019-01-07 2021-07-13 Vast Data Ltd. Method and system for providing improved efficiency snapshots using snaplines
US10866869B2 (en) 2019-01-16 2020-12-15 Vmware, Inc. Method to perform crash and failure recovery for a virtualized checkpoint protected storage system
US11573861B2 (en) 2019-05-10 2023-02-07 Cohesity, Inc. Continuous data protection using a write filter
US11327673B1 (en) 2020-10-23 2022-05-10 Oracle International Corporation Techniques for persisting data across instances of a cloud shell

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9087008B1 (en) * 2013-06-24 2015-07-21 Emc International Company Replicating a volume using snapshots
CN104866435A (zh) * 2015-06-06 2015-08-26 成都云祺科技有限公司 一种连续数据保护方法
EP3125119A1 (en) * 2015-07-30 2017-02-01 Zerto Ltd. A method for restoring files from a continuous recovery system
CN106354582A (zh) * 2016-08-18 2017-01-25 无锡华云数据技术服务有限公司 一种连续数据保护方法

Also Published As

Publication number Publication date
US10860608B2 (en) 2020-12-08
GB2591951A (en) 2021-08-11
US20200134079A1 (en) 2020-04-30
GB2591951B (en) 2022-03-09
DE112019005351T5 (de) 2021-07-15
WO2020086126A1 (en) 2020-04-30
US11669545B2 (en) 2023-06-06
CN112912853A (zh) 2021-06-04
US20210081431A1 (en) 2021-03-18
IE20190226A1 (en) 2021-09-29
GB202105344D0 (en) 2021-05-26

Similar Documents

Publication Publication Date Title
US9495264B2 (en) Data replication techniques using incremental checkpoints
US8782005B2 (en) Pruning previously-allocated free blocks from a synthetic backup
US10474537B2 (en) Utilizing an incremental backup in a decremental backup system
US9152507B1 (en) Pruning unwanted file content from an image backup
US10120595B2 (en) Optimizing backup of whitelisted files
EP3796174B1 (en) Restoring a database using a fully hydrated backup
US8874527B2 (en) Local seeding of a restore storage for restoring a backup from a remote deduplication vault storage
US8966200B1 (en) Pruning free blocks out of a decremental backup chain
US11797397B2 (en) Hybrid NVRAM logging in filesystem namespace
US8914325B2 (en) Change tracking for multiphase deduplication
US11669545B2 (en) Any point in time replication to the cloud
US9152504B1 (en) Staged restore of a decremental backup chain
CN109753381B (zh) 一种基于对象存储的持续数据保护方法
US8732135B1 (en) Restoring a backup from a deduplication vault storage
US11620056B2 (en) Snapshots for any point in time replication
US10437687B2 (en) Filtering a directory enumeration of a directory of an image backup
US10423494B2 (en) Trimming unused blocks from a versioned image backup of a source storage that is stored in a sparse storage
US20140250077A1 (en) Deduplication vault storage seeding
US9208033B1 (en) Consolidating decremental backups in a decremental backup chain
US11822432B2 (en) Near continuous data protection without using snapshots
US11899537B2 (en) Near continuous data protection without using snapshots

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