CN114026545A - 用于任意时间点复制的快照 - Google Patents

用于任意时间点复制的快照 Download PDF

Info

Publication number
CN114026545A
CN114026545A CN202080046317.2A CN202080046317A CN114026545A CN 114026545 A CN114026545 A CN 114026545A CN 202080046317 A CN202080046317 A CN 202080046317A CN 114026545 A CN114026545 A CN 114026545A
Authority
CN
China
Prior art keywords
metadata
snapshot
data
time
storage
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.)
Pending
Application number
CN202080046317.2A
Other languages
English (en)
Inventor
克菲尔·沃尔夫森
杰胡达·谢梅尔
伊塔伊·阿扎里亚
莱夫·艾森贝格
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 CN114026545A publication Critical patent/CN114026545A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/1448Management of the data involved in backup or backup restore
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/907Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

用于提供任意时间点功能的系统和方法。利用诸如VSAN的存储系统,通过将元数据流与存储系统的快照相结合,实现任意时间点保护。这允许在事后生成快照,使得提供任意时间点功能。

Description

用于任意时间点复制的快照
技术领域
本发明的实施方案涉及用于执行包括数据保护操作的计算操作的系统和方法。更确切地说,本发明的实施方案涉及用于使用快照进行任意时间点(any point in time)复制的系统和方法。更具体地说,本发明的实施方案涉及使用UPiT(通用时间点)快照在VSAN(虚拟存储区域网络)系统中提供任意时间点复制。
背景技术
通常创建数据的备份,使得在主数据或生产数据发生故障时可以从备份中还原生产数据。现今,备份提供了执行还原操作的能力,使得可以在不同的时间点还原数据。
不幸的是,并不总是能够针对所有系统实现这种提供任意时间点功能的能力。这种能力取决于数据的存储方式。例如,系统可以以blob方式存储数据,或者采用数据仅表示最新时间点的方式存储数据。以这种方式存储数据的一个后果是,只能为特定时间点创建快照。换言之,这些系统中的快照不能在事后创建。因此,任意时间点能力是不可用的。
附图说明
为了描述可以获得本发明的至少一些优点和特征的方式,将通过参考在附图中示出的本发明的特定实施方案来呈现对本发明的实施方案的更具体描述。应当理解,这些附图仅描绘本发明的典型实施方案,并且因此不被认为是对其范围的限制,本发明的实施方案将通过使用附图以另外的特异性和细节来描述和解释,在附图中:
图1示出了生成元数据流的系统的示例,该元数据流允许用于生产数据的任意时间点功能;
图2示出了元数据流以及元数据流与用于任意时间点功能的数据的关系;
图3示出了标识符与生产卷中的数据偏移量之间的关系的示例;
图4示出了从数据桶向复本生产卷再水化(rehydrate)数据的示例。
图5示出了存储环境(如VSAN环境)中的节点的示例,并示出了在节点处元数据流的生成;
图6示出了在存储环境中生成和存储元数据流的示例;以及
图7示出了用于向使用快照的存储环境提供任意时间点功能的方法的示例。
具体实施方式
本发明的实施方案总体上涉及数据保护并且涉及用于执行数据保护操作的系统、方法和装置。数据保护操作的示例包括但不限于备份操作、还原操作、复制操作、快照操作、任意时间点相关操作(包括生成任意时间点快照)等等。更具体地说,本发明的实施方案涉及用于任意时间点恢复操作以及能够事后生成快照的系统、硬件、软件、计算机可读介质和方法。更确切地说,本发明的实施方案涉及向不具有任意时间点功能的系统提供任意时间点功能,即使特定时间点功能是可用的。
本发明的实施方案涉及为包括VSAN系统在内的系统提供高效存储和数据保护方案的系统和方法。本发明的实施方案公开了一种高效的任意时间点数据结构,其为其中所存储数据仅表示最新时间点的系统实现任意时间点功能。更确切地说,这些系统中的一些仅支持特定时间点功能,因为数据以表示最新时间点的blob方式存储。在这些系统中,不能在事后创建快照,而本发明的实施方案使得这些系统能够在事后生成快照并实现任意时间点功能。
仅举例说明,VSAN的一些实现方式是其中所存储数据仅表示最新时间点的系统。在这些系统中,将采用诸如UPiT(通用时间点)快照等快照。UPiT快照通常表示特定时间点,但是不一定提供任意时间点功能。
本发明的实施方案涉及为这些类型的系统实现任意时间点功能的系统和方法。更确切地说,本发明的实施方案使得元数据卷或元数据卷的表示能够与UPiT快照相关联或并入UPiT快照。元数据卷允许为任意时间点生成UPiT,从而使得能够为这些类型的系统实现任意时间点功能。更确切地说,本发明的实施方案将元数据流作为对象存储在存储系统中。元数据流包含对存储系统的所有输入和输出的记录。通过将元数据流(或元数据流的相关部分)并入现有的快照,可以从特定时间点快照实现任意时间点功能。
下面讨论的是使用根据本发明的实施方案调适的元数据卷的任意时间点功能。随后是对相关VSAN功能的讨论。
使用元数据流的任意时间点功能
图1示出了在其中执行数据保护操作的计算环境的示例。图1示出了与生产数据106(例如,生产卷或存储装置,诸如VSAN)相关联的客户端102。客户端102可以是虚拟机、计算装置,诸如计算机、膝上型计算机、平板计算机、智能电话、服务器计算机,等等。生产数据106可以驻留在存储装置(存储阵列或其他存储布置)上。生产数据106可以在客户端102本地(例如,在同一网络中),也可以远离客户端102。生产数据106也可以是基于云的存储。
客户端102与生产数据106进行交互,并且可以写入数据或读取数据或执行其他动作。在保护数据的背景下或在数据复制时,输入/输出(IO)可以指导致生产数据106变化的动作或命令。每当数据被写入(删除、移动、修改、复制等)到生产数据106,复制引擎104就会复制该数据或该变化。更确切地说,复制引擎104可以复制该动作。复制引擎104可以并入生产数据106,可以是服务器或其他器具,或者是被配置为检测包括写入在内的某些命令并相应地复制数据的软件层。
在此示例中,复制引擎104因此将数据复制或写入到存储装置108,其可以是数据中心、云存储,等等。复制引擎还可以生成元数据流并将元数据流作为元数据流对象110写入元数据流存储装置。流对象110可以与存储装置108在同一位置(例如,同一存储系统、同一数据中心)或桶中。流存储装置110和存储装置108也可以是单独的存储装置。
如本文更详细的讨论,图1所示的系统可以适用于不同的存储环境。在一个示例中,存储系统112可以是存储系统(如VSAN)的一部分。在这种情况下,所有的输入/输出都要通过复制引擎104(其可以被认为是所有者)。复制引擎104,并不分割数据,而是可以简单地操纵元数据,使得元数据流作为流对象110被存储,并且数据对象作为数据对象108被存储。
图2进一步示出了图1中所示的复制,或者更确切地说,元数据流的生成。在一个示例中,复制引擎202(复制引擎104的示例)可以检测正被写入生产卷208的IO 210,该生产卷可以存储生产数据106。复制引擎202可以确定IO 210包括数据A,并且正在被写入数据桶204中以偏移量X所标识的位置,该数据桶是存储在存储系统214中的blob或数据对象的示例。偏移量X表示数据A在数据桶204中的位置。偏移量X可以用其他术语指定,这可能取决于存储系统214的配置和/或数据桶204中的数据的配置。
然后,复制引擎将IO 210复制到数据桶204。在一个示例中,数据桶204是键值类型的存储。因此,复制引擎202可以向数据桶204提供数据A和键(诸如标识符10),并且IO 210将被存储在数据桶204中。为了检索数据A,向数据桶提供标识符10。使用标识符10,数据桶204可以检索并返回数据A。
在将IO 210或数据A复制到数据桶204时,复制引擎202可以将与IO 210相关联的元数据添加到存储在存储系统214中的元数据流206(可以为每个IO向元数据流添加条目)。在此示例中,元数据流206被作为对象存储在存储系统214中。元数据流206通常包括与每个IO(诸如IO 210)相关联的元数据。在此示例中,元数据流206中针对IO 210的条目212包括偏移量X和标识符10。元数据流206中所包括的偏移量X是指在数据桶204中的偏移量或其他定位。
在一个示例中,时间点恢复通常与特定的IO联系在一起,部分原因是元数据流206与发生在数据桶204处的IO有关。通过标识出时间或IO,本发明的实施方案允许将数据桶204,或更确切地说,将blob或数据对象还原到此时间点或此特定IO。这使得能够实现任意时间点恢复功能。
在一个示例中,与每个IO相关联的数据被作为对象存储在数据桶204中。该数据可以按区块(chunk)存储。例如,IO 210可以被分成8KB的区块。本发明的实施方案考虑了可变大小的块(block)。然而,固定大小的对象需要较少的处理开销,包括对IO重叠的固有处理。区块或对象的实际大小通常是小的数量(例如,4KB、8KB)。虽然较大的对象大小可能需要较少的上传,但是如果仅对象或块的一部分被写入,则较大大小的对象也可能需要完成对象或块。另外,跟踪较大大小的块或对象中被写入的区域也会增加复杂性。
图2示出了在存储期间,数据A可以作为对象A来存储。更确切地说,数据A实际上可以被分块为区块A1、A2等。因此,对象A1、A2等将被存储在数据桶204中,并且每个区块都将具有自己的标识符。元数据流206存储标识符(允许标识和检索数据桶204中的相应对象)与数据桶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。这些标识符可以是表示相应数据的任何数据。
生产数据再水化
可以使用存储在存储装置(或数据桶)中的对象和存储在流对象中的元数据流来对生产卷(或生产数据)进行再水化。通常,生产卷是通过创建空白的元数据卷来进行再水化或还原的。一旦元数据卷被创建,便通过将标识符写到元数据卷中的偏移量处,使用元数据流来将元数据卷滚动到所要求的时间点。这是通过从元数据流的尾部向前移动并根据遇到的每一次写入更新元数据卷来实现的。
元数据卷中的每个条目都指向所存储的对象中的IO。因此,在一个示例中,元数据卷包括各自指向对象存储区(例如,数据桶)中的对象的条目。在一个示例中,仅每个IO的第一个遇到的实例在元数据卷中被更新。更确切地说,如前所述,元数据卷用每个遇到的IO来更新。这允许在如果在到达所要求的时间点之前此特定的偏移量将被覆盖的情况下,避免将实际的IO数据复制到所还原的卷中。在一个示例中,结果是,从所要求的时间点到尾部来看元数据流,针对每个偏移量仅一个IO被复制。
一旦在元数据流中达到了适当的时间点,并且元数据流中所有必要条目都被写入元数据卷,元数据卷就被组织起来。此时,实际的数据尚未被移动或复制。然而,本发明的实施方案考虑了在组织元数据卷的同时复制数据。
一旦元数据卷被准备好,元数据卷和数据桶就可以被用来对生产卷进行再水化。经再水化的生产卷是原始生产卷(例如,虚拟机或虚拟机的磁盘)在所请求的时间点上的副本。在一个示例中,仅在所得的复本卷像普通卷一样被访问的情况下,才需要实际生成复本生产卷。
图4示出了对生产卷进行再水化或对VSAN的一部分进行再水化的示例。图4示出了从元数据流402和数据桶410再水化生产卷406的过程,元数据流402和数据桶410是前文所描述的元数据流和数据桶的示例。
在图4中,在一个示例中,从空白的元数据卷开始,首先生成元数据卷404。在此示例中,元数据流402的尾端412被读取。尾端412对应于元数据流402中的条目。在一个示例中,尾端的条目是元数据流402中最旧的条目。在此示例中,新条目被推到元数据流的头部。然而,元数据流可以以另一种方式布置,使得最旧的条目位于元数据流的头部。通过从最旧的条目开始读取元数据流402,然后按时间向后进行,可以在与生产卷中的偏移量相对应的偏移量处用对象或数据标识符填充元数据卷404。
在一个示例中,初始化的生产卷可以是可用的。这个生产卷可以对应于恰好在元数据流中最旧的条目之前的时间点。使用已加载有来自元数据流的信息的元数据卷,可以将初始生产卷向前滚动到选定时间点。在一个示例中,生产卷可以直接从元数据流生成。
在此示例中,标识符10被复制到与偏移量0相对应的位置。当到了准备生产卷404的时候,使用元数据卷404中存储在偏移量0处的标识符从数据桶410中检索对象,然后将从数据桶410中检索的对象写入生产卷406(其可以是复本卷)中对应于偏移量0的位置。
更确切地说,元数据流402被读取,直到到达时间点414,并且如果有必要,每个条目被写入元数据卷。时间点414是指希望进行还原的时间点。在此示例中,有六个条目要被写入到元数据卷404中。因此,标识符10、20、30、40、50和60被写入元数据卷404中所存储的相应位置或偏移量。这产生了包括分别写入在偏移量0、1、2、3、4和5处的标识符10、20、30、40、50和60的元数据卷404。
在这一阶段,没有数据被从数据桶410复制到生产卷406。然而,有可能在元数据卷406正被生成时还原或再水化生产卷。
一旦生成了针对时间点414的元数据卷404,就可以用来自数据桶410的数据来填充生产卷406。因为元数据卷404存储了标识符或键,所以这些标识符可以用来访问数据桶410以检索相应的对象,这些对象被写入生产卷406中的相同或相应的偏移量处。因此,元数据卷404中的标识符10被用来检索对象A。然后,对象A被写入生产卷中的偏移量0,该偏移量与标识符10相对应,该标识符被写入到元数据卷中的偏移量0处。一旦这个过程完成,生产卷406就可以使用了,并且在必要时可以被安装。元数据卷404可以被保留一段时间或被删除。
VSAN设计
在一个示例中,VSAN是一种软件定义的存储产品,其汇集了存储装置以创建数据存储区。VSAN系统具有一种称为DOM(分布式对象管理器)的概念。DOM可以对特定的ESX节点进行操作,并且管理VSAN对象。每个对象仅一个DOM。所有进出该对象的IO(输入/输出操作)都要通过DOM。因此,DOM可以保持对象的一致性,因为通过DOM的IO可以以一致的方式排序——DOM对IO决定的任何顺序都是“正确”的IO顺序。
通常,运行VM(虚拟机)的ESX(管理程序的示例)是该VM的DOM,但是当vMotion完成时,这可能会发生变化。在这种情况下,VM移动到另一个ESX,但是DOM并没有移动。一段时间之后,VSAN将把DOM移动到正在运行的ESX上,因为就IO模式而言,这是最高效的。
UPiT快照是在VSAN中可以使用的快照的示例。UPiT快照可以成为许多数据保护操作的基础,包括本地快照保护、备份、复制和存档。UPiT快照是一般的快照,并且可以与许多具有IO通过的一个地方(例如,DOM)的存储系统或文件系统相集成。
在一个示例中,UPiT快照被实现为B+树(b加树)。在B+树中,数据仅存储在叶节点中。因为数据仅存储在叶节点中(或由叶节点指向),所以B+树的内部节点仅存储指针。每个页面或节点可以包含多个指针。因此,B+树的内部表示是紧凑和高效的。然而,在b树中的一旦在树中被遇到就会被访问的项,需要在b+树中具有虚拟节点(dummy node),以便使它们的数据仅被放置在叶中。因此,b+树可以具有额外的节点,并且所有的访问操作都是log(n),而不是像传统b树那样只是最坏的情况。
UPiT可以在诸如VSAN等系统中高效地暴露用户卷。然而,UPiT可能会暴露特定时间点。
本发明的实施方案将卷表示或元数据流与UPiT快照(或其他快照类型)结合起来,以实现任意时间点功能。通常,如前文所讨论的那样,进入DOM的IO作为单独的对象存储在元数据流中。因此,VSAN上的高效任意时间点表示由此获得,并允许在事后生成诸如UPiT快照之类的快照。
在例如在VSAN中向用户暴露PiT时,可以使用UPiT快照。元数据流允许在事后创建任何PiT,因为元数据流存储了VSAN的或至少与DOM相关联的对象的IO历史。通过将元数据流与UPiT快照相结合,对由DOM或所有者管理的对象或卷的任意时间点表示可以通过UPiT快照暴露。这允许为任意时间点生成快照,并允许生成相同类型的快照(例如,UPiT)。这有效地将任意时间点功能扩展到UPiT快照和相关联系统。
图5示出了VSAN的一部分的示例,其被配置为至少为VSAN的该部分提供任意时间点功能。图5示出了VSAN的节点504。节点504与存储装置相关联,并存储一个或多个对象508。节点504的所有者506拥有存储装置,并因此拥有对象508。
所有到节点504的IO 502都会通过所有者506。因为所有的IO502都通过所有者502,所以可以高效地维护元数据流。IO的元数据作为单独的对象(元数据对象510)存储在VSAN上。实际上,所有者506能够分割IO事务。然而,在这种情况下,数据不一定如前文所讨论的那样被复制。相反,元数据被操纵或从IO中提取,并存储在元数据对象510中。
通过向节点504添加元数据流,获得或可以生成对VSAN的高效任意PiT表示。此外,这对VSAN的性能和实现影响很小。
图6示出了用于存储元数据流的方法的示例。IO由所有者(诸如DOM)接收602。然后对IO进行处理以获得604与IO相关联的元数据。然后,元数据作为对象被存储606。更确切地说,在一个示例中,元数据作为单独的对象被存储。因此,这允许元数据卷被有效地作为元数据对象存储在VSAN中,并与所有者506相关联和/或与VSAN的与节点504相关联并由所有者506管理的部分相关联。
因此,元数据对象510存储指向对象508中的数据的指针。元数据对象510可以如前所述进行配置,从而使得每个条目包括偏移量和标识符。可以通过生成元数据卷,然后生成与选定时间点相对应的生产卷或生产对象,来恢复任意时间点对象。
更确切地说,作为元数据卷的表示的元数据对象510有效地包含了到节点504或对象508的IO的历史。因此,元数据对象510可以如前文所描述的那样被用来创建单独使用UPiT快照无法实现的时间点表示。
因为b+树的结构是众所周知的,所以这里不再提供详细讨论。然而,b+(或b加)树通常包括一定数量的层级。通常情况下,所有的叶都在同一个层级上。而且,数据仅存储在b+树的叶节点中。其他节点通常包含密钥和其他元数据。数据是通过遍历b+树来访问的。
通过将元数据流存储在单独的对象中,并且因为UPiT被实现为诸如b+树之类的树,所以元数据对象或流可以被转换为任何选定的PiT表示。
更确切地说,由所有者所存储的元数据流或对象包含指向可用于创建PiT的数据的指针。如前所述,UPiT是b+树,并且b+树的内部节点仅包含呈树格式的元数据指针。这允许通过仅操纵来自元数据卷(元数据对象510)的元数据来创建选定PiT的UPiT快照。在一个示例中,在创建UPiT快照时没有数据被移动或复制。
更确切地说,为了访问此结构中的时间点,使用由元数据对象510所表示的元数据卷进行再水化过程。这是通过扫描元数据流的相关部分以创建元数据卷来执行的。然后可以通过提供对已从元数据流的相关部分创建的元数据卷的访问来访问数据。或者,元数据卷可以被转换为UPiT快照。
在一个示例中,并且因为存储装置通常是有限的,所以可以实现移动保护窗口,并且这可能会对任意时间点功能造成一些限制。可以删除已经被覆盖的旧数据。在一个示例中,应在每个磁盘位置保持数据的一个版本。
元数据对象或流可以被转换为UPiT快照。如前所述,元数据对象包含指向数据的指针,并且可用于标识数据和任意时间点。因为UPiT是一种b+树实现方式,且b+树的内部节点仅包含元数据指针,因此,对与任意时间点相对应的UPiT快照的转换或生成可以通过将来自元数据对象的元数据添加到现有的UPiT中而生成。
因此,再水化方法可以首先获得UPiT 702(或UPiT的副本)。接下来,执行704元数据操纵。这可以包括将元数据对象(例如与选定时间点相关联)中的每个指针或元数据附加706到UPiT的内部节点。存储在元数据对象中的元数据可以包括符合b+树要求所必需的元数据。这允许附加元数据并有效地为选定时间点生成新的UPIT。在该附加元数据的过程中,没有对b+树进行重新平衡708。在所有的相关元数据都被附加到b+树之后,可以对该树进行重新平衡710。
这有效地针对选定PiT产生了UPiT。此外,在为选定PiT创建新的UPiT时,无需移动或复制数据即可实现这一点。新的UPiT允许在必要时将由所有者或DOM管理的卷或对象暴露712给用户。这也可以用于恢复目的或其他操作。实际上,元数据对象可以与现有的UPiT相结合,以便为选定PiT生成另一个UPiT。
因为可以为任何PiT创建元数据对象,所以图7中所示的这一操作可以用来重新创建快照历史。快照历史是通过为所请求的PiT创建元数据卷、将元数据卷转换为UPiT并将新的UPiT插入到所管理的快照树中来生成的。这允许在事后创建UPiT历史。
本发明的实施方案提供了一种用于获得VSAN环境的任意时间点表示的高效方式。此外,UPiT表示用于实现转换并以高效的方式进行暴露,从而仅移动元数据。因此,本发明的实施方案以任何PiT数据保护能力和用于暴露卷的高效方式增强了VSAN实现。
尽管已经针对UPiT和VSAN环境对本发明的实施方案进行了讨论,但是本发明的实施方案并不限于此。本发明的实施方案可以应用于快照,包括使用指针或结构来实现快照的快照。本发明的实施方案还可以应用于现有的快照技术,使得可以使用元数据流实现任意时间点功能。在另一个示例中,元数据流可以在不使用快照的系统中实现任意时间点功能。
以下是对本发明的各种实施方案的示例操作环境的各方面的讨论。该讨论不意图以任何方式限制本发明的范围或实施方案的适用性。
通常,本发明的实施方案可结合单独地和/或共同地实现和/或致使实现数据管理操作的系统、软件和部件一起来实现。此类数据管理操作可包括但不限于数据读取/写入/删除操作、数据备份操作、数据还原操作、数据克隆操作、数据存档操作和灾难恢复操作。因此,虽然本文的讨论在某些方面可针对数据保护环境和操作的讨论,但本发明的范围不限于此。更一般地,本发明的范围涵盖公开的概念可能有用的任何操作环境。以说明而非限制的方式,本发明的实施方案可结合数据备份和还原平台(诸如Dell-EMC NetWorker和Avamar和Data Domain平台)来采用。
数据保护环境可采取公共或私有云存储环境、本地存储环境以及包括公共元素和私有元素的混合存储环境的形式,但本发明的范围也扩展到任何其他类型的数据保护环境。这些示例存储环境中的任一个可部分地或完全地虚拟化。该存储环境可包括数据中心或由数据中心组成,该数据中心可操作以为一个或更多个客户端发起的读取和写入操作提供服务。
除了存储环境之外,操作环境还可包括一个或更多个主机装置,诸如例如客户端,每个主机装置托管一个或更多个应用。因此,特定客户端可采用一个或更多个应用中的每个应用的一个或更多个实例,或以其他方式与其相关联。通常,客户端所采用的应用不限于任何特定功能或功能类型。例如,一些示例应用和数据包括电子邮件应用(诸如MSExchange)、文件系统以及数据库(诸如Oracle数据库和SQL Server数据库)。客户端上的应用可生成需要保护的新数据和/或修改后的数据。
本文中公开的任何装置或实体可受到根据本发明的各种实施方案的一个或更多个数据保护策略的保护。可通过根据本发明的实施方案的数据保护策略来保护的装置的其他示例包括但不限于容器和VM。
操作环境中的任何装置(包括客户端、服务器和主机)都可采取软件、物理机或虚拟机(VM)或这些的任何组合的形式,但任何实施方案都不需要特定的装置实现方式或配置。类似地,数据保护系统部件(诸如例如数据库、存储服务器、存储卷(LUN)、存储磁盘、复制服务、备份服务器、还原服务器、备份客户端和还原客户端)也可采取软件、物理机或虚拟机(VM)的形式,但任何实施方案都不需要特定的部件实现方式。在采用VM的情况下,可采用管理程序或其他虚拟机监视器(VMM)来创建和控制VM。
如本文所用,术语“数据”的范围旨在很广。因此,该术语以举例而非限制的方式涵盖诸如可由数据流分段过程产生的数据段、数据区块、数据块、原子数据、电子邮件、任何类型的对象、文件、通讯录、目录、子目录、卷以及上述一项或更多项的任何组。
本发明的示例实施方案适用于能够以模拟、数字或其他形式存储和处理各种类型对象的任何系统。尽管可以举例的方式使用术语(诸如文档、文件、块或对象),但本公开内容的原理不限于表示和存储数据或其他信息的任何特定形式。相反,此类原则同样适用于能够表示信息的任何对象。
本文公开的实施方案可包括使用包括各种计算机硬件或软件模块的专用或通用计算机,如下文更详细地讨论的。计算机可包括处理器和承载指令的计算机存储介质,这些指令在由处理器执行和/或致使由处理器执行时,执行本文公开的任一种或更多种方法。
如上面所指出的,本发明的范围内的实施方案还包括计算机存储介质,该计算机存储介质是用于承载或具有存储在其上的计算机可执行指令或数据结构的物理介质。此类计算机存储介质可以是可由通用或专用计算机访问的任何可用物理介质。
以举例而非限制的方式,此类计算机存储介质可包括硬件存储装置,诸如固态磁盘/装置(SSD)、RAM、ROM、EEPROM、CD-ROM、闪存存储器、相变存储器(“PCM”)或其他光盘存储装置、磁盘存储装置或其他磁性存储装置,或任何其他硬件存储装置,其可用于以计算机可执行指令或数据结构的形式存储程序代码,该程序代码可由通用或专用计算机系统访问和执行以实现本发明公开的功能。上述各项的组合也应包括在计算机存储介质的范围内。此类介质也是非暂态存储介质的示例,并且非暂态存储介质还涵盖基于云的存储系统和结构,但本发明的范围不限于非暂态存储介质的这些示例。
计算机可执行指令包括例如使通用计算机、专用计算机或专用处理装置执行特定功能或功能组的指令和数据。尽管已经以特定于结构特征和/或方法行为的语言描述了主题,但应当理解,所附权利要求中限定的主题不一定限于上述特定特征或行为。相反,本文公开的特定特征和行为是作为实现权利要求的示例形式公开的。
如本文所用,术语“模块”或“部件”可指在计算系统上执行的软件对象或例程。本文描述的不同部件、模块、引擎和服务可实现为在计算系统上执行的对象或过程(例如,作为单独的线程)。虽然本文描述的系统和方法可用软件来实现,但用硬件或软件和硬件的组合来实现也是可能的和所设想的。在本公开内容中,“计算实体”可以是如本文先前定义的任何计算系统,或者在计算系统上运行的任何模块或模块组合。
在至少一些情况下,提供了一种硬件处理器,该硬件处理器可操作以执行用于执行方法或过程(诸如本文公开的方法和过程)的可执行指令。硬件处理器可包括也可不包括其他硬件的元件,诸如本文公开的计算装置和系统。
就计算环境而言,本发明的实施方案可在客户端-服务器环境中执行,无论是网络环境还是本地环境,或者在任何其他合适的环境中执行。适于本发明的至少一些实施方案的操作环境包括云计算环境,其中客户端、服务器或其他机器中的一个或更多个可驻留在云环境中并在云环境中操作。
本发明可在不脱离其精神或基本特征的情况下以其他特定形式实施。所描述的实施方案在所有方面仅被视为说明性的而非限制性的。因此,本发明的范围由所附权利要求书而不是前述描述来指示。在权利要求的等效物的意义和范围内的所有变化都包含在本权利要求的范围内。

Claims (19)

1.一种用于在存储系统中实现任意时间点功能的方法,所述方法包括:
在所述存储系统中的对象的所有者处接收输入/输出;
提取与所述输入/输出相关联的元数据;
将所提取的元数据存储在由所述所有者拥有的元数据对象中;
对所述对象执行所述输入/输出;以及
通过将所述对象的快照与所述元数据对象的相关部分相结合来为选定时间点生成新快照,从而为所述选定时间点生成新快照。
2.根据权利要求1所述的方法,还包括:将所述元数据对象的所述相关部分附加到所述对象的所述快照中。
3.根据权利要求2所述的方法,其中,所述对象的所述快照包括b+树,并且其中,所述新快照包括b+树。
4.根据权利要求3所述的方法,其中,所述存储系统包括VSAN。
5.根据权利要求4所述的方法,还包括:将所述元数据对象的所述相关部分附加到所述b+树的内部节点。
6.根据权利要求1所述的方法,其中,针对所述对象的所有IO都通过所述所有者。
7.根据权利要求1所述的方法,还包括:基于所述新快照暴露所述对象。
8.根据权利要求1所述的方法,还包括:在所述元数据对象的所有所述相关部分被附加到所述对象的所述快照之后,重新平衡所述新快照。
9.根据权利要求1所述的方法,还包括:在事后生成所述新快照。
10.一种用于在存储系统中实现任意时间点功能的系统,所述系统包括:
处理器和存储装置,其中,所述处理器被配置为:
实现所述存储装置中的对象的所有者,其中,针对所述存储装置中的所述对象的所有输入/输出都由所述所有者管理;
在所述存储系统中的对象的所述所有者处接收输入/输出;
提取与所述输入/输出相关联的元数据;
将所提取的元数据存储在由所述所有者拥有的元数据对象中;
对所述对象执行所述输入/输出;以及
通过将所述对象的快照与所述元数据对象的相关部分相结合来为选定时间点生成新快照,从而为所述选定时间点生成新快照。
11.根据权利要求10所述的系统,其中,所述所有者被配置为:将所述元数据对象的所述相关部分附加到所述对象的所述快照中。
12.根据权利要求11所述的系统,其中,所述对象的所述快照包括b+树,并且其中,所述新快照包括b+树。
13.根据权利要求12所述的方法,其中,所述存储系统包括VSAN。
14.根据权利要求13所述的方法,其中,所述所有者被配置为:将所述元数据对象的所述相关部分附加到所述b+树的内部节点。
15.根据权利要求10所述的方法,其中,所述处理器被配置为:基于所述新快照暴露所述对象。
16.根据权利要求10所述的系统,其中,所述所有者被配置为:在所述元数据对象的所有所述相关部分被附加到所述对象的所述快照之后,平衡所述新快照。
17.根据权利要求10所述的系统,其中,所述处理器被配置为:在事后生成所述新快照。
18.根据权利要求10所述的系统,还包括:为所述存储装置生成快照历史。
19.根据权利要求10所述的系统,其中,所述快照包括UPiT快照,还包括:通过将所述元数据对象中的至少一部分元数据并入所述UPiT快照,将所述UPiT快照转换为具有与所述UPiT快照相同格式的选定时间点快照。
CN202080046317.2A 2019-06-28 2020-03-19 用于任意时间点复制的快照 Pending CN114026545A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/457,428 2019-06-28
US16/457,428 US11620056B2 (en) 2019-06-28 2019-06-28 Snapshots for any point in time replication
PCT/US2020/023575 WO2020263367A1 (en) 2019-06-28 2020-03-19 Snapshots for any point in time replication

Publications (1)

Publication Number Publication Date
CN114026545A true CN114026545A (zh) 2022-02-08

Family

ID=70289474

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080046317.2A Pending CN114026545A (zh) 2019-06-28 2020-03-19 用于任意时间点复制的快照

Country Status (4)

Country Link
US (1) US11620056B2 (zh)
EP (1) EP3991045A1 (zh)
CN (1) CN114026545A (zh)
WO (1) WO2020263367A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11288140B2 (en) * 2019-08-29 2022-03-29 Microsoft Technology Licensing, Llc Point in time blob restore
US20220391288A1 (en) * 2021-06-03 2022-12-08 EMC IP Holding Company LLC Continuous data protection in cloud using streams

Family Cites Families (48)

* 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
US7146476B2 (en) 2003-08-05 2006-12-05 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
US9087008B1 (en) 2013-06-24 2015-07-21 Emc International Company Replicating a volume using snapshots
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
CN104866435B (zh) 2015-06-06 2018-05-15 成都云祺科技有限公司 一种连续数据保护方法
US9817729B2 (en) 2015-07-30 2017-11-14 Zerto Ltd. Method for restoring files from a continuous recovery system
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
CN106354582B (zh) 2016-08-18 2019-01-18 无锡华云数据技术服务有限公司 一种连续数据保护方法
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

Also Published As

Publication number Publication date
EP3991045A1 (en) 2022-05-04
US20200409570A1 (en) 2020-12-31
US11620056B2 (en) 2023-04-04
WO2020263367A1 (en) 2020-12-30

Similar Documents

Publication Publication Date Title
US8856080B2 (en) Backup using metadata virtual hard drive and differential virtual hard drive
US20190065322A1 (en) Restoring a database using a fully hydrated backup
US11733907B2 (en) Optimize recovery time objective and costs of cloud based recovery
US11880286B2 (en) On the fly pit selection in cloud disaster recovery
US20160110262A1 (en) Restoring a file system object
EP3796174B1 (en) Restoring a database using a fully hydrated backup
US11809287B2 (en) On-the-fly PiT selection in cloud disaster recovery
US11797397B2 (en) Hybrid NVRAM logging in filesystem namespace
US11620056B2 (en) Snapshots for any point in time replication
CN109753381B (zh) 一种基于对象存储的持续数据保护方法
US11669545B2 (en) Any point in time replication to the cloud
CN112955860A (zh) 用于优化对象版本控制的无服务器解决方案
US11709608B2 (en) Smart de-fragmentation of file systems inside VMS for fast rehydration in the cloud and efficient deduplication to the cloud
US11435927B2 (en) Protected saveset volume movement via metadata bootstrap
US11386118B2 (en) Physical to virtual journal cascading
US20240086066A1 (en) System and method to create application copies for copy reuse utilizing the application backup data stored in secondary storage
US20240126740A1 (en) Cyber recovery forensics kit - lightning restore of storage systems
US20230342334A1 (en) Method to support temporary namespace in a deduplication filesystem

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