CN111488240A - 用于使用加速器池内嵌去重的方法和系统 - Google Patents

用于使用加速器池内嵌去重的方法和系统 Download PDF

Info

Publication number
CN111488240A
CN111488240A CN202010062149.8A CN202010062149A CN111488240A CN 111488240 A CN111488240 A CN 111488240A CN 202010062149 A CN202010062149 A CN 202010062149A CN 111488240 A CN111488240 A CN 111488240A
Authority
CN
China
Prior art keywords
data
data node
node
copy
stored
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
CN202010062149.8A
Other languages
English (en)
Inventor
D·M·帕特尔
瑞兹万·阿里
R·查甘地
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.)
Dell Products LP
Original Assignee
Dell Products LP
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 Dell Products LP filed Critical Dell Products LP
Publication of CN111488240A publication Critical patent/CN111488240A/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • 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/1461Backup scheduling policy
    • 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
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • G06F16/1752De-duplication implemented within the file system, e.g. based on file segments based on file chunks
    • 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/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • 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/0608Saving storage space on storage systems
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/83Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures

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)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种用于存储数据的方法,其包括:由数据集群接收来自主机的存储数据的请求;由所述数据集群对所述数据进行去重,以在第一数据节点上获得去重的数据,其中所述第一数据节点是在所述数据集群上的加速器池中;复制所述去重的数据以生成多个副本,并且将所述多个副本中的第一副本存储在第二数据节点上,以及将所述多个副本中的第二副本存储在第三数据节点上,其中所述第二数据节点和所述第三数据节点是在所述数据集群的非加速器池中。

Description

用于使用加速器池内嵌去重的方法和系统
背景技术
计算设备可以包括任何数量的内部组件,诸如处理器、存储器和永久储存装置。计算设备的内部组件中的每一个可以用于生成数据。生成、存储和备份数据的过程可以利用计算设备的计算资源,诸如处理和存储。利用上述计算资源来生成备份可能影响计算资源的整体性能。
发明内容
总的来说,在一个方面中,本发明涉及一种用于存储数据的方法。所述方法包括由数据集群接收来自主机的数据的请求,由数据集群对数据进行去重以在第一数据节点上获得去重的数据的数据,其中,第一数据节点是在数据集群上的加速器池中,复制去重的数据以生成多个副本,以及将多个副本中的第一副本存储在第二数据节点上,并且将多个副本中的第二副本存储在第三数据节点上,其中,第二数据节点和第三数据节点是在数据集群的非加速器池中。
在一个方面中,包含计算机可读程序代码的非暂时性计算机可读介质,当由计算机处理器执行时,所述计算机可读程序代码使得计算机处理器能够执行用于存储数据的方法。所述方法包括由数据集群接收来自主机的存储数据的请求,由数据集群对数据进行去重以获得第一数据节点上的数据,复制已去重的数据以生成多个副本,以及将多个副本中的第一副本存储在第二数据节点上,并且将多个副本中的第二副本存储在第三数据节点上,其中,第一数据节点、第二数据节点和第三数据节点是在数据集群中。
在一个方面中,根据本发明的一个或多个实施例的数据集群包括多个数据节点,包含第一数据节点、第二数据节点和第三数据节点,其中,多个节点中的第一数据节点被编程为从主机接收存储数据的请求,去重数据以获得去重的数据,复制去重的数据以生成多个副本,以及起始在多个节点的第二数据节点上存储多个副本中的第一副本和在多个节点的第三数据节点上存储多个副本中的第二副本。
附图说明
将参照随附的附图描述本发明的某些实施例。然而,随附的附图仅通过实例的方式示出了本发明的某些方面或实施方式,并且不意味着限制权利要求的范围。
图1A展示了根据本发明的一个或多个实施例的系统的示意图。
图1B展示了根据本发明的一个或多个实施例的第一数据集群的示意图。
图1C展示了根据本发明的一个或多个实施例的另一数据集群的示意图。
图2A展示了根据本发明的一个或多个实施例的用于在数据集群中存储数据的流程图。
图2B-图2D展示了根据本发明的一个或多个实施例的第一实例。
图3A展示了根据本发明的一个或多个实施例的用于在数据集群中存储数据的流程图。
图3B-图3D展示了根据本发明的一个或多个实施例的第二实例。
图4展示了根据本发明的一个或多个实施例的计算设备的示意图。
具体实施方式
现在将参照随附的图来描述具体的实施例。在下面的描述中,作为本发明的实例阐述了许多细节。本领域技术人员将理解的是,本发明的一个或多个实施例可以在没有这些具体的细节的情况下实践,并且在不脱离本发明的范围的情况下,许多变化或修改是可能的。省略了本领域普通技术人员已知的某些细节,以避免模糊描述。
在图的以下描述中,在本发明的各种实施例中,关于附图描述的任何组件可以等同于关于任何其它图描述的一个或多个相同命名的组件。为简洁起见,这些组件的描述将不再关于每个图重复。因此,每个图的组件的每个和每一实施例通过引用结合在一起,并被假定为可选地呈现在具有一个或多个相同命名的组件的每一其它图内。附加地,根据本发明的各种实施例,图中组件的任何描述都将被解释为可选实施例,其可以附加于、结合或代替关于任何其它图中相应的相同命名的组件所描述的实施例来实施。
在整个申请中,图的元件可以被标记为A到N。如本文所使用的,上述标记意味着所述元件可以包括任何数量的项目,并且不要求所述元件包括与标记为A到N的任何其它项目相同数量的元件。例如,数据结构可以包括标记为A的第一元件和标记为N的第二元件。这个标记约定意味着数据结构可以包括任何数量的元件。第二数据结构也标记为A到N,也可以包括任何数量的元件。第一数据结构的元件的数量和第二数据结构的元件数量可以相同或不同。
一般而言,本发明的实施例涉及用于在数据集群中存储数据的方法和系统。本发明的实施例可以利用去重器,所述去重器对从主机获得的在数据上执行去重以生成去重的数据。在本发明的一个或多个实施例中,去重的数据随后被复制到数据集群中的其它节点。本发明的实施例可以包括向主机发送获得的数据其被去重并存储在数据集群中的确认。
图1A展示了根据本发明一个或多个实施例的实例系统。所述系统包括主机(100)和数据集群(110)。主机(100)经由有线和/或无线连接的任何组合可操作地连接到数据集群(110)。
在本发明的一个或多个实施例中,主机(100)利用数据集群(110)来存储数据。存储的数据可以是例如数据库、文件、应用程序和/或其它类型的数据的备份,而不背离本发明。
在本发明的一个或多个实施例中,主机(100)被实施为计算设备(例如,参见图4)。计算设备可以是例如膝上型计算机、台式计算机、服务器、分布式计算系统或云资源(例如,可经由有线或无线连接访问的第三方存储装置系统)。计算设备可以包括一个或多个处理器、存储器(例如,随机存取存储器)和永久存储装置(例如,磁盘驱动器、固态驱动器等)。计算设备可以包括存储在永久存储装置上的指令,当所述指令被计算设备的(多个)处理器执行时,引起计算设备执行贯穿本申请描述的主机(100)的功能。
在本发明的一个或多个实施例中,主机(100)被实施为逻辑设备。逻辑设备可以利用任何数量的计算设备的计算资源,并且从而提供贯穿本申请描述的主机(100)的功能。
在本发明的一个或多个实施例中,数据集群(100)存储由主机(100)生成的数据和/或数据的备份。数据和/或数据的备份可以是从主机获得的数据的去重的版本。数据集群可以将数据的去重的版本(也称为去重的数据)复制到在数据集群(110)中的操作节点。
如本文所使用的,去重指的是仅存储尚未存储在永久存储装置中的文件的部分(也称为文件段或段)的方法。例如,当存储一个大文件的多个版本时,版本中的每一个之间只具有最小的差异,而没有去重,存储每个版本将需要大约相同量的永久存储装置的存储空间。相反,当用去重存储大文件的多个版本时,只有存储的多个版本的第一个版本将需要大量的存储。一旦第一版本被存储在永久存储装置中,随后存储的大文件的后续版本将在被存储在永久存储装置中之前将被去重,导致当与存储第一存储版本所需的永久存储装置的存储空间量相比,存储随后存储的版本所需的永久存储装置的存储空间少得多。
继续讨论图1A,数据集群(110)可以包括每个存储任何数量的去重的数据的节点。数据可以由其它节点(通过复制)获得或者从主机(100)获得。对于数据集群(110)的附加细节,参见例如图1B和图1C。
图1B展示了根据本发明的一个或多个实施例的数据集群(120)的示意图。数据集群(120)可以是在上文讨论的数据集群(110,图1A)的实施例。数据集群(120)可以包括去重器(122)和任何数量的数据节点(124、126)。数据集群(120)的组件可以经由有线和/或无线连接的任何组合可操作地连接。下面讨论上述组件中的每一个。
在本发明的一个或多个实施例中,(多个)去重器(122)是包括对从主机(例如,图1A的100)获得的数据执行去重的功能的设备(物理或逻辑)。去重器(122)可以存储对执行前述功能有用的信息。所述信息可以包括去重标识符(D-IDs)。A D-ID是唯一标识符,其标识存储在数据集群(120)中的数据部分(例如,段)。D-ID可以用于确定所获得的数据的数据段是否已经存在于数据集群(120)中的别处。去重器(122)可以使用所述信息来对获得的数据执行去重,以生成去重的数据。在去重之后,去重的数据可以被复制到数据节点(124、126)预定的次数。去重器(122)可以经由图2A中所示的方法执行去重/复制。
在本发明的一个或多个实施例中,去重器(122)被实施为存储在永久存储装置上的计算机指令,例如计算机代码,当由数据节点(例如,124、126)的处理器执行时,所述指令引起数据节点来提供贯穿本申请和/或图2A中所示的方法的全部或其中部分描述的去重器(122)的前述功能。
在本发明的一个或多个实施例中,去重器(122)被实施为计算设备(例如,参见图4)。计算设备可以是例如膝上型计算机、台式计算机、服务器、分布式计算系统或云资源(例如,可经由有线或无线连接访问的第三方存储装置系统)。计算设备可以包括一个或多个处理器、存储器(例如,随机存取存储器)和永久存储装置(例如,磁盘驱动器、固态驱动器等)。计算设备可以包括存储在永久存储装置上的指令,当由计算设备的(多个)处理器执行时,所述指令引起计算设备执行贯穿本申请和/或图2A中所示的方法的全部或其中部分描述的去重器(122)的功能。
在本发明的一个或多个实施例中,去重器(122)被实施为逻辑设备。逻辑设备可以利用任何数量的计算设备的计算资源,并且从而提供贯穿本申请和/或图2A中所示方法的全部或其中部分描述的去重器(122)的功能。
在本发明的一个或多个实施例中,数据节点(124、126)是存储去重的数据的设备。数据节点(124、126)可以包括可以用于存储去重的数据的永久存储装置。
在本发明的一个或多个实施例中,每个数据节点(124、126)被实施为计算设备(例如,参见图4)。计算设备可以是例如膝上型计算机、台式计算机、服务器、分布式计算系统或云资源(例如,可经由有线或无线连接访问的第三方存储装置系统)。计算设备可以包括一个或多个处理器、存储器(例如,随机存取存储器)和永久存储装置(例如,磁盘驱动器、固态驱动器等)。计算设备可以包括存储在永久存储装置上的指令,当由计算设备的处理器执行时,所述指令引起计算设备执行贯穿本申请描述的数据节点(124、126)和/或图2A中所示的方法的全部或其中部分的功能。
在本发明的一个或多个实施例中,数据节点(124、126)被实施为逻辑设备。逻辑设备可以利用任何数量的计算设备的计算资源,并且从而提供贯穿本申请和/或图2B中所示方法的全部或其中部分描述的数据节点(124、126)的功能。
图1C展示了根据本发明的一个或多个实施例的另一实例数据集群(130)的示意图。数据集群(130)可以是上面讨论的数据集群(110,图1A)的实施例。数据集群(130)可以包括加速器池(140)和非加速器池(150)。加速器池(140)可以包括(多个)去重器(142)和任何数量的数据节点(144、146)。类似地,非加速器池(150)包括任何数量的数据节点(154、156)。数据集群(130)的组件可以经由有线和/或无线连接的任何组合可操作地连接。下面讨论上述组件中的每一个。
在本发明的一个或多个实施例中,去重器(142)是包括对从主机(例如,图1A的100)获得的数据执行去重的功能的设备。去重器(142)可以存储对执行前述功能有用的信息。所述信息可以包括去重标识符(D-IDs)。A D-ID是标识存储在数据集群(130)中的数据的部分(例如,段)的唯一标识符。D-ID可以用于确定获得的数据的数据段是否已经存在于加速器池(140)或非加速器池(150)中的别处。去重器(142)可以使用所述信息来执行去重并生成去重的数据。在去重之后,去重的数据的可以被复制到非加速器池(150)预定的次数。去重器(142)可以经由图3A中所示的方法执行去重/复制。
在本发明的一个或多个实施例中,去重器(142)被实施为存储在永久存储装置上的计算机指令,例如计算机代码,当由加速器池(140)的数据节点(例如144、146)的处理器执行时,所述计算机指令引起数据节点提供贯穿本申请和/或图3A中所示方法的全部或其中部分描述的去重器(142)的前述功能。
在本发明的一个或多个实施例中,去重器(142)被实施为计算设备(例如,参见图4)。计算设备可以是例如膝上型计算机、台式计算机、服务器、分布式计算系统或云资源(例如,可经由有线或无线连接访问的第三方存储装置系统)。计算设备可以包括一个或多个处理器、存储器(例如,随机存取存储器)和永久存储装置(例如,磁盘驱动器、固态驱动器等)。计算设备可以包括存储在永久存储器上的指令,当由计算设备的(多个)处理器执行时,所述指令引起计算设备执行贯穿本申请和/或图3A中所示的方法的全部或其中部分描述的去重器(142)的功能。
在本发明的一个或多个实施例中,去重器(142)被实施为逻辑设备。逻辑设备可以利用任何数量的计算设备的计算资源,并且从而提供贯穿本申请和/或图3A中所示方法的全部或其中部分描述的去重器(142)的功能。
继续图1C的讨论,集群中的不同数据节点可以包括不同数量和/或类型的计算资源,例如,提供处理资源的处理器、提供存储器资源的存储器、提供存储装置资源的存储装置、提供通信资源的通信器。因此,所述系统可以包括异构节点群组。
异构节点群组可以在逻辑上分为加速器池(140)和非加速器池(150),加速器池包括具有比其它节点更多计算资源的节点,例如,高性能节点(144、146),非加速器池包括具有比加速器池(140)中的节点更少计算资源的节点,例如,低性能节点(154、156)。例如,加速器池(140)的节点可以包括企业级固态存储资源,其提供非常高的存储装置带宽、低延迟和每秒高输入输出(input-outputs per second,IOPS)。相反,非加速器池(150)的节点可以包括提供较低存储性能的硬盘驱动器。尽管在图1C中所示的分成两组,但是在不脱离本发明的情况下,可以基于每个节点的相对性能水平将节点分成任何数量的组。
在本发明的一个或多个实施例中,数据节点(144、146、154、156)是存储去重的数据的设备。数据节点(144、146、154、156)可以包括可以用于存储去重的数据的永久存储装置。
在本发明的一个或多个实施例中,非加速器池(150)包括任何数量的故障域。在本发明的一个或多个实施例中,故障域是节点的逻辑分组(例如,数据节点),当节点的逻辑分组中的一个节点离线和/或其他变得不可访问时,节点的逻辑分组中的其它节点直接受到影响。节点离线对其它节点的影响可以包括其它节点也离线和/或其他不可访问。非加速器池(150)可以包括多个故障域。以这种方式,非加速器池(150)中的一个故障域的事件可能对非加速器池(150)中的其它故障域没有影响。
例如,两个数据节点可能在第一故障域中。如果第一故障域中的这些数据节点中的一个经历意外关闭,则第一故障域中的其它节点可能会受到影响。相反,第二故障域中的另一数据节点可能不被第一故障域中的数据节点的意外关闭影响。在本发明的一个或多个实施例中,一个故障域的意外关闭不影响其它故障域的节点。以这种方式,可以横跨多个故障域复制和存储数据,以允许数据的高可用性。
在本发明的一个或多个实施例中,每个数据节点(144、146、154、156)被实施为计算设备(例如,参见图4)。计算设备可以是例如膝上型计算机、台式计算机、服务器、分布式计算系统或云资源(例如,可经由有线或无线连接访问的第三方存储装置系统)。计算设备可以包括一个或多个处理器、存储器(例如,随机存取存储器)和永久存储装置(例如,磁盘驱动器、固态驱动器等)。计算设备可以包括存储在永久存储装置上的指令,当由计算设备的(多个)处理器执行时,所述指令引起计算设备执行贯穿本申请和/或图3A中所示的方法的全部或其中部分描述的数据节点(144、146、154、156)的功能。
在本发明的一个或多个实施例中,数据节点(144、146、154、156)被实施为逻辑设备。逻辑设备可以利用任何数量的计算设备的计算资源,并且从而提供贯穿本申请和/或图3A中所示方法的全部或其中部分描述的数据节点(144、146、154、156)的功能。
图2A展示了根据本发明的一个或多个实施例的用于在数据集群中存储数据的流程图。图2A中展示的方法可以由例如去重器(122,图1B)来执行。在不脱离本发明的情况下,图1A和图1B中所示系统的其它组件可以执行图2A的方法。虽然流程图中的各种步骤是顺序呈现和描述的,但是相关领域的普通技术人员中的一个将理解的是,一些或所有步骤可以以不同的顺序执行,可以组合或省略,并且一些或所有步骤可以并行执行。
转向图2A,在步骤220中,从主机获得数据。在不脱离本发明的情况下,数据可以是文件、文件段、文件集合或任何其它类型的数据。数据可以包括一个或多个数据段。可以响应于存储数据和/或备份数据的请求来获得数据。在不脱离本发明的情况下,可以使用其它请求来起始方法。
在步骤222中,在获得的数据上执行去重,以获得去重的数据。在本发明的一个或多个实施例中,通过在获得的数据中识别数据的数据段并为每个数据段分配指纹来执行去重。指纹是可以存储在获得的数据的元数据中的唯一标识符。当执行去重时,去重器可以为获得的数据的数据段生成指纹,并且识别指纹是否匹配存储在去重器中的现有指纹。如果指纹与现有指纹匹配,与数据段相关联的数据段可以被删除,因为它已经存储在数据集群中。如果指纹与任何现有指纹不匹配,则数据段可能被存储作为去重的数据的部分。附加地,指纹可以存储在去重器中用于将来使用。
在本发明的一个或多个实施例中,可以对获得的数据中的所有数据段重复用于获得的数据的数据段生成指纹的过程。所述过程可能导致去重的数据的生成。
在步骤224中,确定要生成的去重的数据的副本的数字(N)。在本发明的一个或多个实施例中,数字(N)是从主机获得的。主机可以请求将去重的数据的N个副本存储在数据集群中。在这种场景中,无论何时从主机获得数字N,步骤224都可以被执行。
在本发明的一个或多个实施例中,去重器通过查询主机以获得数字(N)来确定数字(N)。数字(N)可以基于由用户来复制数据集群中的数据预定的次数的请求。用户可以操作客户端(即,由用户使用并可操作地连接到主机的计算设备)来向主机发送对副本数量的请求。
在本发明的另一实施例中,去重器包括大约要生成的副本的默认数量的信息。
在步骤226中,在数据集群中生成去重的数据的N-1个副本。在本发明的一个或多个实施例中,在步骤222中生成的去重的数据是N个去重的数据的第一去重的数据。去重的数据可以被再复制N-1次。这导致在数据集群中存储了总共N个去重的数据。
在本发明的一个或多个实施例中,生成的每个去重的数据被存储在数据集群的数据节点中。去重的数据的数据节点是通过复制第一(或另一先前生成的)去重的数据来生成的。以这种方式,获得的数据仅必须是去重一次,并且然后可以拷贝(即,复制)产生的去重的数据自身,以生成已经请求的剩余的N-1个副本。
在步骤228中,向主机发送确认。在本发明的一个或多个实施例中,确认是应答(acknowledgement,ACK),其确认或者:(i)由数据集群接收到数据,和/或者(ii)去重的完成,并请求复制存储在数据集群中的数据。
实例1
以下节描述了实例。所述实例不是为了限制本发明。这个实例在图2B-图2D中示出,用图2B展示了在第一时间点的实例系统。转向所述实例,考虑场景在其中主机(200)想要在数据集群(210)中存储主机数据(202)的去重的版本。数据集群(210)(其包括去重器(212))在数据节点A(214)中获得主机数据(202)(例如,参见图2A,步骤220)。
去重器(212)可以进一步执行图2A的方法,以对获得的主机数据(202)进行去重(例如,参见图2A,步骤222)。主机数据(202)进行去重的过程可以包括识别主机数据(202)中的数据段并生成每个数据段的指纹。对于每个生成的指纹,去重器(212)可以搜索存储在去重器(212)中的数据,以确定生成的指纹是否匹配去重器中的现有指纹。对于与现有指纹匹配的每一生成的指纹,可以从去重器中删除与生成的指纹相关联的数据段。以这种方式,结果是具有尚未存储在数据集群(210)的数据节点(214、216、218)中的数据段的去重的数据。
图2C展示了在第二时间点的实例系统。在第二时间点,数据集群(210)包括存储在数据节点A(214)中的去重的数据(204)。继续图2A的方法的去重器(212)可以确定要存储在数据集群(210)中的去重数据的数字(N)(例如,参见图2A,步骤224)。数字(N)可以基于来自主机的请求来确定。主机可以请求数字(N)为三。换句话说,主机请求将三个去重的数据存储在数据集群(210)中。
因为去重的数据中的一个(204)已经在这个时间点中生成,所以去重器可以将去重的数据再复制两次。数据节点A(214)(其存储第一去重的数据(204))可以并行地将去重的数据(204)复制到数据节点B和数据节点C(216、218)。换句话说,数据节点(214)可以同时生成第二去重的数据和第三去重的数据。在不脱离本发明的情况下,可以串行地生成和存储复制的数据。图2D展示了在第三时间点的实例系统。在这个第三时间点,去重的数据B(206)和去重的数据C(208)可以分别存储在数据节点B(216)和数据节点C(218)中(例如,参见图2A,步骤226)。去重器可以通过向主机发送存储的确认来完成执行图2A的方法。
实例1结束
图3A展示了根据本发明的一个或多个实施例的用于在数据集群中存储数据的流程图。图3A中展示的方法可以由例如去重器(142,图1C)来执行。在不脱离本发明的情况下,图1A和图1C所示系统的其它组件可以执行图3A的方法。虽然流程图中的各种步骤是顺序呈现和描述的,但是相关领域的普通技术人员中的一个将理解的是,一些或所有步骤可以以不同的顺序执行,可以组合或省略,并且一些或所有步骤可以并行执行。
在步骤340中,数据由在加速器池中的节点从主机获得。在不脱离本发明的情况下,数据可以是文件、文件段、文件集合或任何其它类型的数据。数据可以包括一个或多个数据段。
在步骤342中,向主机发送确认。在本发明的一个或多个实施例中,确认是应答(ACK),其确认数据处理已经由数据集群完成。在这个阶段,从主机的角度来看,数据已经备份。即使数据集群仍在执行图3A中展示的方法,情况也是如此。
在步骤344中,在获得的数据上执行去重,以获得去重的数据。在本发明的一个或多个实施例中,通过识别获得的数据的数据段并为每个数据段分配指纹来执行去重。指纹是可以存储在数据的元数据中的唯一标识符。当执行去重时,去重器可以为获得的数据的数据段生成指纹,并且识别指纹是否匹配存储在去重器中的现有指纹。如果指纹与现有指纹匹配,与数据段相关联的数据段可以被删除,因为它已经存储在数据集群中。如果指纹与任何现有指纹不匹配,则数据段可能被存储作为去重的数据的部分。附加地,指纹可以存储在去重器中用于将来使用。
在本发明的一个或多个实施例中,可以对获得的数据中的所有数据段重复用于获得的数据的数据段生成指纹的过程。所述过程可能导致去重的数据的生成。
在步骤346中,要生成的去重的数据的副本的数字(N)被确定。在本发明的一个或多个实施例中,数字(N)是从主机获得的。主机可以请求将去重的数据的N个副本存储在数据集群中。在这种场景中,无论何时从主机获得数字N,步骤346都可以被执行。
在本发明的一个或多个实施例中,去重器通过查询主机以获得数字(N)来确定数字(N)。数字(N)可以基于由用户来复制数据集群中的数据预定的次数的请求。用户可以操作客户端(即,由用户使用并可操作地连接到主机的计算设备)来向主机发送对副本数量的请求。
在本发明的另一实施例中,去重器包括大约要生成的副本的默认数量的信息。
在步骤348中,去重的数据的N-1个副本被生成并存储在非加速器池中。在本发明的一个或多个实施例中,在步骤344中生成的去重的数据是N个去重的数据中的第一个去重的数据。去重的数据可以被再复制N-1次。这导致在数据集群中存储了总共N个去重的数据。
在本发明的一个或多个实施例中,生成的每个去重的数据被存储在非加速器池中的数据节点中。在一个实施方式中,在非加速器池中的前述数据中每一个在它的自己的故障域中。以这种方式,去重的数据可以横跨多个故障域被存储在非加速池中。
实例2
以下节描述了实例。所述实例不是为了限制本发明。实例在图3B-图3D中示出,用图3B展示了在第一时间点的实例系统。转向所述实例,考虑场景在其中主机(300)想要在数据集群(310)中存储主机数据(302)的去重的版本。主机(300)可以将主机数据(302)发送到在加速器池(320)上操作的数据节点(322)。
加速器池(320)可以包括去重器(324),所述去重器可以利用以执行图3A的方法以在主机数据(302)上执行去重。对主机数据(302)进行去重的过程可以包括识别主机数据(302)中的数据段并生成每个数据段的指纹。对于每个生成的指纹,去重器(324)可以搜索存储在去重器(324)中的数据,以确定生成的指纹是否匹配去重器(324)中的现有指纹。对于匹配现有指纹的每一生成的指纹,与生成的指纹相关联的数据段可以被删除。以这种方式,结果是具有尚未存储在数据集群(310)的数据节点(322、332、334)中的数据段的去重的数据。
图3C展示了在第二时间点的实例系统。在图3C中,去重的数据(304)可以被存储在加速器池中。去重器(324)可以继续图3A的方法,以将去重的数据(304)复制到非加速器池(330)中的数据节点(332、334)。去重器(322)可以通过从主机(300)获得副本的数量来确定要生成的副本的数量。主机可以响应于在数据集群(310)中去重的数据(304)被复制三次的请求。
因为在这个时间点已经生成了三个请求的去重的数据中的一个,所以去重器可以将去重的数据(304)再复制两次。数据节点A(324)(其存储第一去重的数据(304))可以并行地将去重的数据(304)复制到数据节点B和数据节点C(332、334)。换句话说,数据节点(314)可以同时生成和存储第二去重的数据和第三去重的数据。替代性地,副本可以被串行地生成和存储。
图3D展示了在第三时间点的实例系统。在这个第三时间点,去重的数据B(306)和去重的数据C(308)可以分别被存储在数据节点B(332)和数据节点C(334)中。数据节点B(332)可以是故障域的节点,所述故障域的节点是不同于在其中数据节点C(334)是其中部分的故障域的节点。以这种方式,如果两个数据节点(332、334)中的一个要经历意外关闭,则其它数据节点(332、334)将不被影响,并且在由主机(300)发出恢复请求的情况下,去重的数据(例如,304、306、308)仍然可以被访问。
实例2结束
如上所讨论的,本发明的实施例可以使用计算设备来实施。图4展示了根据本发明的一个或多个实施例的计算设备的示意图。计算设备(400)可以包括一个或多个计算机处理器(402)、非永久存储装置(404)(例如,易失性存储器诸如随机存取存储器(randomaccess memory,RAM)、高速缓冲存储器)、永久存储装置(406)(例如,硬盘、光驱诸如光盘(compact disk,CD)驱动器或数字多功能盘(digital versatile disk,DVD)驱动器、闪存器等。)、通信接口(412)(例如蓝牙接口、红外接口、网络接口、光接口等)、输入设备(410)、输出设备(408)以及许多的其它元件(未示出)和功能。下面描述了这些组件中的每一个。
在本发明的一个实施例中,(多个)计算机处理器(402)可以是用于处理指令的集成电路。例如,(多个)计算机处理器可以是处理器的一个或多个核心或微核心。计算设备(400)还可以包括一个或多个输入设备(410),诸如触摸屏、键盘、鼠标、麦克风、触摸板、电子笔或任何其它类型的输入设备。进一步,通信接口(412)可以包括集成电路,用于将计算设备(400)连接到网络(未示出)(例如,局域网(local area network,LAN)、广域网(widearea network,WAN)诸如因特网、移动网络或任何其它类型的网络)和/或到另一设备,诸如另一计算设备。
在本发明的一个实施例中,计算设备(400)可以包括一个或多个输出设备(408),诸如屏幕(例如,液晶显示器(liquid crystal display,LCD)、等离子显示器、触摸屏、阴极射线管(cathode ray tube,CRT)监视器、投影仪或其它显示设备)、打印机、外部存储装置或任何其它输出设备。输出设备的一个或多个可以是与(多个)输入设备相同或不同。(多个)输入设备和(多个)输出设备可以本地或远程连接到(多个)计算机处理器(402)、非永久存储装置(404)和永久存储装置(406)。存在许多不同类型的计算设备,并且前述(多个)输入设备和(多个)输出设备可以采取其它形式。
本发明的一个或多个实施例可以使用由数据管理设备的一个或多个处理器执行的指令来实施。进一步,这样的指令可以对应于存储在一个或多个非暂时性计算机可读介质上的计算机可读指令。
本发明的一个或多个实施例可以改进一个或多个计算设备的操作。更具体而言,本发明的实施例提高了在数据集群中执行存储和/或备份操作的效率。效率的提高可以通过在将数据复制到数据集群中的节点之前对数据执行去重来达到。通过在复制之前进行去重,数据集群可以减少在去重之前复制数据的其它系统上执行复制所需的计算资源量。
进一步,本发明的实施例通过升级执行去重的节点来改进去重,即在加速器池中执行去重。与非高性能节点相比,在加速器池中使用高性能节点可以减少处理时间。这个升级,连同在复制数据之前执行去重,可以减少存储数据所需的总时间,并减少用于存储操作的计算资源的总使用。
因此,本发明的实施例可以设法解决计算资源的效率低的使用的问题。由于在其中执行存储操作的环境的技术性质而产生这个问题。
上面讨论的问题应该理解为由本文公开的本发明的实施例解决的问题的实例,并且本发明不应该局限于解决相同/类似的问题。所公开的发明广泛地应用于设法解决超出本文讨论范围的一系列问题。
虽然上面已经针对有限数量的实施例描述了本发明,但是受益于本公开的本领域技术人员将理解的是,可以设计出不脱离本文公开的本发明范围的其它实施例。相应地,本发明的范围应该仅由所附权利要求来限定。

Claims (20)

1.一种用于存储数据的方法,所述方法包含:
由数据集群接收来自主机的存储数据的请求;
由所述数据集群对所述数据进行去重,以在第一数据节点上获得去重的数据,其中所述第一数据节点是在所述数据集群上的加速器池中;
复制所述去重的数据以生成多个副本;
将所述多个副本中的第一副本存储在第二数据节点上,并且将所述多个副本中的第二副本存储在第三数据节点上,
其中,所述第二数据节点和所述第三数据节点是在所述数据集群的非加速器池中。
2.根据权利要求1所述的方法,其进一步包含:
响应于所述请求,向所述主机发送所述请求已经被服务的确认。
3.根据权利要求2所述的方法,其中,在所述第一副本被存储在所述第二数据节点上并且所述第二副本被存储在所述第三数据节点上之前发送所述确认。
4.根据权利要求1所述的方法,其进一步包含:
确定要生成的副本数(N),且
其中,复制所述去重的数据以生成所述多个副本包含生成N-1个副本。
5.根据权利要求1所述的方法,其中,所述第一副本被存储在所述第二数据节点上,并且所述第二副本并行地被存储在所述第三数据节点上。
6.根据权利要求1所述的方法,其中,所述第二数据节点是在第一故障域中,并且所述第三数据节点是在第二故障域中。
7.根据权利要求1所述的方法,其中,所述去重由在所述第一数据节点上执行的去重器来执行。
8.根据权利要求1所述的方法,其中,所述去重由在所述加速器池中的第四数据节点上执行的去重器来执行。
9.一种非暂时性计算机可读介质,其包含计算机可读程序代码,当所述计算机可读程序代码由计算机处理器执行时,使得所述计算机处理器能够执行用于存储数据的方法,所述方法包含:
由数据集群接收来自主机的存储数据的请求;
由所述数据集群对所述数据进行去重,以在第一数据节点上获得去重的数据,其中所述第一数据节点是在所述数据集群上的加速器池中;
复制所述去重的数据以生成多个副本;
将所述多个副本中的第一副本存储在第二数据节点上,并且将所述多个副本中的第二副本存储在第三数据节点上,
其中,所述第二数据节点和所述第三数据节点是在所述数据集群的非加速器池中。
10.根据权利要求9所述的非暂时性计算机可读介质,所述方法进一步包含:
响应于所述请求,向所述主机发送所述请求已经被服务的确认。
11.根据权利要求10所述的非暂时性计算机可读介质,其中,在所述第一副本被存储在所述第二数据节点上并且所述第二副本被存储在所述第三数据节点上之前发送所述确认。
12.根据权利要求9所述的非暂时性计算机可读介质,所述方法进一步包含:
确定要生成的副本数(N),且
其中,复制所述去重的数据以生成所述多个副本包含生成N-1个副本。
13.根据权利要求9所述的非暂时性计算机可读介质,其中,所述第一副本被存储在所述第二数据节点上,并且所述第二副本并行地被存储在所述第三数据节点上。
14.根据权利要求9所述的非暂时性计算机可读介质,其中,所述第二数据节点是在第一故障域中,并且所述第三数据节点是在第二故障域中。
15.根据权利要求1所述的非暂时性计算机可读介质,其中,所述去重由在所述第一数据节点上执行的去重器来执行。
16.根据权利要求1所述的非暂时性计算机可读介质,其中,所述去重由在第四数据节点上执行的去重器来执行。
17.一种数据集群,其包含:
包含加速器池和非加速器池的多个数据节点,其中,所述加速器池包含第一数据节点,并且所述非加速器池包含第二数据节点和第三数据节点;
其中,所述多个节点中的所述第一数据节点被编程以:
从主机接收存储数据的请求;
去重所述数据以获得去重的数据;
复制所述去重的数据以生成多个副本;
起始在所述多个节点中的所述第二数据节点上存储所述多个副本中的第一副本,以及在所述多个节点中的所述第三数据节点上存储所述多个副本中的第二副本。
18.根据权利要求17所述的数据集群,其中,所述第一数据节点被进一步编程以:
响应于所述请求,向所述主机发送所述请求已经被服务的确认,
其中,在所述第一副本被存储在所述第二数据节点上并且所述第二副本被存储在所述第三数据节点上之前发送所述确认。
19.根据权利要求17所述的数据集群,其中,所述第一数据节点被进一步编程以:
确定要生成的副本数(N),且
复制所述去重的数据以生成所述多个副本包含生成N-1个副本,
其中,所述第一副本被存储在所述第二数据节点上,并且所述第二副本并行地被存储在所述第三数据节点上。
20.根据权利要求19所述的数据集群,其中,所述去重由在所述加速器池中的第四数据节点上执行的去重器来执行。
CN202010062149.8A 2019-01-29 2020-01-19 用于使用加速器池内嵌去重的方法和系统 Pending CN111488240A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/260,711 US20200241780A1 (en) 2019-01-29 2019-01-29 Method and system for inline deduplication using accelerator pools
US16/260,711 2019-01-29

Publications (1)

Publication Number Publication Date
CN111488240A true CN111488240A (zh) 2020-08-04

Family

ID=69174390

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010062149.8A Pending CN111488240A (zh) 2019-01-29 2020-01-19 用于使用加速器池内嵌去重的方法和系统

Country Status (3)

Country Link
US (1) US20200241780A1 (zh)
EP (1) EP3690656A1 (zh)
CN (1) CN111488240A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7584338B1 (en) * 2005-09-27 2009-09-01 Data Domain, Inc. Replication of deduplicated storage system
US8099571B1 (en) * 2008-08-06 2012-01-17 Netapp, Inc. Logical block replication with deduplication
CN102984009A (zh) * 2012-12-06 2013-03-20 北京邮电大学 一种基于P2P的VoIP系统容灾备份方法
CN104125294A (zh) * 2014-08-06 2014-10-29 四川九成信息技术有限公司 一种大数据安全管理方法和系统
CN107844388A (zh) * 2012-11-26 2018-03-27 亚马逊科技公司 从备份系统流式恢复数据库
CN108228083A (zh) * 2016-12-21 2018-06-29 伊姆西Ip控股有限责任公司 用于数据去重的方法和设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7769971B2 (en) * 2007-03-29 2010-08-03 Data Center Technologies Replication and restoration of single-instance storage pools
US8788466B2 (en) * 2008-08-05 2014-07-22 International Business Machines Corporation Efficient transfer of deduplicated data
US8161255B2 (en) * 2009-01-06 2012-04-17 International Business Machines Corporation Optimized simultaneous storing of data into deduplicated and non-deduplicated storage pools
US9582421B1 (en) * 2012-12-19 2017-02-28 Springpath, Inc. Distributed multi-level caching for storage appliances
US10409778B1 (en) * 2016-08-19 2019-09-10 EMC IP Holding Company LLC Data services for software defined storage system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7584338B1 (en) * 2005-09-27 2009-09-01 Data Domain, Inc. Replication of deduplicated storage system
US8099571B1 (en) * 2008-08-06 2012-01-17 Netapp, Inc. Logical block replication with deduplication
CN107844388A (zh) * 2012-11-26 2018-03-27 亚马逊科技公司 从备份系统流式恢复数据库
CN102984009A (zh) * 2012-12-06 2013-03-20 北京邮电大学 一种基于P2P的VoIP系统容灾备份方法
CN104125294A (zh) * 2014-08-06 2014-10-29 四川九成信息技术有限公司 一种大数据安全管理方法和系统
CN108228083A (zh) * 2016-12-21 2018-06-29 伊姆西Ip控股有限责任公司 用于数据去重的方法和设备

Also Published As

Publication number Publication date
US20200241780A1 (en) 2020-07-30
EP3690656A1 (en) 2020-08-05

Similar Documents

Publication Publication Date Title
US11281389B2 (en) Method and system for inline deduplication using erasure coding
US10289496B1 (en) Parallel proxy backup methodology
US10474539B1 (en) Browsing federated backups
US10042719B1 (en) Optimizing application data backup in SMB
US10977217B2 (en) Method and system to efficiently recovering a consistent view of a file system image from an asynchronously remote system
US20220083426A1 (en) Method and system for hybrid incremental file-based backups
EP3731099A1 (en) System and method for accelerating application service restoration
US11609820B2 (en) Method and system for redundant distribution and reconstruction of storage metadata
US11093350B2 (en) Method and system for an optimized backup data transfer mechanism
US11663166B2 (en) Post-processing global deduplication algorithm for scaled-out deduplication file system
US11526284B2 (en) Method and system for storing data in a multiple data cluster system
US11175842B2 (en) Method and system for performing data deduplication in a data pipeline
US10901641B2 (en) Method and system for inline deduplication
EP3690656A1 (en) Method and system for inline deduplication using accelerator pools
US11442642B2 (en) Method and system for inline deduplication using erasure coding to minimize read and write operations
US11403182B2 (en) Method and system for any-point in time recovery within traditional storage system via a continuous data protection interceptor
US11782905B1 (en) Method and system for streaming data from portable storage devices
US11288005B2 (en) Method and system for generating compliance and sequence aware replication in a multiple data cluster system
US11099948B2 (en) Persistent storage segment caching for data recovery
US10936429B2 (en) System and method for a fast backup operation remediation during a network disruption using a helper virtual machine
CN111488242B (zh) 将条带化备份加标签和路由到重复数据删除设备上的单个重复数据删除实例的方法和系统
US20240028561A1 (en) Systems and methods for managing path and file names using a universal connector

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