CN107111460B - 使用块文件的重复数据删除 - Google Patents
使用块文件的重复数据删除 Download PDFInfo
- Publication number
- CN107111460B CN107111460B CN201680004540.4A CN201680004540A CN107111460B CN 107111460 B CN107111460 B CN 107111460B CN 201680004540 A CN201680004540 A CN 201680004540A CN 107111460 B CN107111460 B CN 107111460B
- Authority
- CN
- China
- Prior art keywords
- file
- block
- blocks
- files
- computing system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 40
- 238000004891 communication Methods 0.000 claims abstract description 6
- 238000012986 modification Methods 0.000 claims abstract description 6
- 230000004048 modification Effects 0.000 claims abstract description 6
- 238000013500 data storage Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 12
- 230000008901 benefit Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- APTZNLHMIGJTEW-UHFFFAOYSA-N pyraflufen-ethyl Chemical compound C1=C(Cl)C(OCC(=O)OCC)=CC(C=2C(=C(OC(F)F)N(C)N=2)Cl)=C1F APTZNLHMIGJTEW-UHFFFAOYSA-N 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 238000005201 scrubbing Methods 0.000 description 1
Images
Classifications
-
- 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
- G06F11/1469—Backup restoration techniques
-
- 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/0608—Saving storage space on storage systems
-
- 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
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- 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
- G06F11/1453—Management of the data involved in backup or backup restore using de-duplication of the data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- 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
- 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/0688—Non-volatile semiconductor memory arrays
-
- 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
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
Abstract
本申请公开了用于在计算系统中执行文件备份和恢复的系统和方法。某些实施例提供通信接口和控制器,该通信接口用于与非易失性存储器通信,该控制器被配置为确定存储在非易失性存储器中的文件已被修改,识别已被修改的文件的块,确定与修改的块相关联的新块,该新块反映修改,生成包括新块和文件名的独立的块文件,以及使用通信接口将块文件存储在非易失性存储器中。
Description
背景技术
在计算机系统中,将数据备份到备份数据存储装置可以提供在数据丢失事件之后允许数据被恢复的数据冗余。
附图说明
各种实施例在附图中被描绘用于说明性目的,并且绝不应该被解读为限制本公开的范围。此外,不同的公开实施例的各种特征可以被组合以形成额外的实施例,该额外的实施例是本公开的一部分。
图1是根据一个或多个实施例的计算系统的框图。
图2A是示出根据一个或多个实施例的包括多个文件的数据二进制大对象(datablob)的框图。
图2B是示出根据一个或多个实施例的具有多个数据块的数据文件的框图。
图3A是示出根据一个或多个实施例的单个块文件的框图。
图3B是示出根据一个或多个实施例的块文件的框图。
图4是示出根据一个或多个实施例的文件目录层次结构的框图。
图5是示出根据一个或多个实施例的用于备份文件的过程的流程图。
图6是示出根据一个或多个实施例的用于从备份存储装置恢复文件的过程的流程图。
具体实施方式
虽然描述了某些实施例,但这些实施例仅作为示例呈现,并且不旨在限制保护范围。实际上,在本文描述的新颖方法和系统可以以各种其他形式来体现。此外,在不脱离保护范围的情况下,可以对本文所描述的方法和系统的形式进行各种省略、替换和变化。
在本文提供的标题仅出于方便并且不一定影响权利要求的范围或含义。本文所公开的是与在计算系统中备份数据相关的示例配置和实施例。
概述
根据各种重复数据删除过程,数据的备份涉及将文件分割成更小的数据块,以及为了节省空间和/或数据传输时间,仅保存在备份期间已变化的那些块。在某些实施例中,计算用于文件的每个可散列块的散列值,使得可以通过比较散列值和识别具有与其相关联的已变化的散列值的块来识别变化的块。此类过程可以提供许多益处。例如,如果块没有变化,则此类块不会被保存,由此节省数据存储资源。另外,如果用于文件中的特定块的散列值在另一文件中被发现,则此类块可以被再用于第二和/或后续文件;冗余块不被再次保存,并且该文件的元数据散列列表中的对应条目被替代地更新以反映关系。
对于集装箱式备份,某些解决方案提供与文件相关联的待附加到综合文件或二进制大对象(blob)的修改的块或新块,其中综合文件/二进制大对象被连续扩展以包括修改的块/新块。但是,某些备份系统可能不允许在备份系统内将块附加到文件/二进制大对象,或者此类操作可能是不方便或不实际的。例如,备份服务器可能不提供面向公众的应用编程接口(API),该接口将允许客户端系统使修改的块/新块保存在备份服务器中,而不用首先将整个相关文件下载到客户端。因此,在此类系统中可能必要的是从备份系统下拉文件,将修改的块/新块附加到该文件上,并将包括附加的块备份的整个文件/二进制大对象推回到备份系统,这可能引入各种数据传输低效。
本文所公开的某些实施例通过生成用于有待备份的每个修改的块/新块的独立文件在可能不允许块的附加写入的系统中提供改善的备份效率。在某些实施例中,独特的文件块与独特的散列值相关联,该散列值提供指示块文件驻留在备份系统的非易失性存储器中的何处的映射信息。在将各个块文件保存到备份数据存储装置的情况下,可能不需要将新块附加到单个二进制大对象或其他综合数据结构。
数据存储系统
图1是计算系统100的框图,该计算系统100包括数据存储备份系统120和通过接口175通信地耦连到备份系统120的主机系统110。接口175可以是有线接口连接或无线接口连接,或任何其他类型的通信接口,诸如SATA、USB、雷电接口(Thunderbolt)、以太网、Wi-Fi、蓝牙、PCIe等。
主机系统110可以包括一个或多个计算设备,该一个或多个计算设备包括被配置为执行代码的一个或多个处理器。主机110可以进一步包括一个或多个数据存储模块,诸如图1所示的主机数据存储数据存储装置114。在某些实施例中,主机110可以将用户数据存储在主机数据存储装置114中。
对于主机系统110,期望的是为了减少数据丢失的风险或出于其他原因而通过将用户数据备份到备份系统120来实现数据冗余。主机110可以被配置为将存储在主机数据存储装置114中的数据的至少一部分备份到一个或多个外部备份系统,包括到备份系统120。备份系统120可以被配置为通过接口175从主机系统110接收数据并且按照备份客户端引导的将此类数据备份到一个或多个非易失性存储模块140中。所示的系统100示出在备份系统120的控制器130内实现的备用客户端132。可替换地或附加地,系统100可以被配置为按照作为主机系统110的组件的备份客户端112引导的来实现数据备份。在下面描述的某些实施例中,备份操作由主机系统110的备用客户端112有利地引导。然而,应当理解,在本公开范围内,备份客户端逻辑可以驻留在任何期望或实际的位置中。
在某些实施例中,备份系统120包括直连式存储设备(DAS)。可替换地,备份系统120可以是通过诸如因特网的计算机网络耦连到主机系统110的远程备份服务器系统。
主机系统110的备份客户端112可以向备份系统120发出读取命令和/或写入命令,从而引导备份系统将数据副本保存在备份系统120的非易失性存储装置140中。在某些实施例中,备份系统120进一步维护某些元数据表或有利于用户数据在非易失性存储装置140中的有效备份和维护的其他数据。
备份客户端逻辑可以被配置为实现重复数据删除,其可以涉及在不危及数据保真性和/或完整性的情况下识别和去除或防止数据在数据存储装置140内的复制。重复删除可以在硬件故障期间提供弹性(resiliency),并且可以进一步提供对数据和元数据的校验和验证,以及用于元数据和块数据(例如,频繁访问的数据块)的冗余。
为了便于重复删除功能,备份客户端(132和/或112)可以将文件划分成大小更小的块(例如,32KB至128KB),这些块在某些实施例中大小可变。备份客户端可以进一步识别复制块并且维护每个块的单个副本。块的冗余副本可以参照单个副本来替换,此类参照在(多个)元数据表中被描述。在某些实施例中,块被压缩并且然后被组织成用于集装箱式备份的容器文件。
术语“块”在本文根据其广泛和普遍的含义被使用,并且可以指任何类型的形式或结构的任何数据分配或集合。此外,在本文对“块”的引用可以适用于任何类型的数据结构,诸如块、堆、二进制大对象、文件、区块、页或其他数据结构。本文所描述的块可以具有固定大小或任意大小。在某些实施例中,块大小可以动态地变化。
出于重复数据删除的目的,文件可以用指向被存储在非易失性存储装置140的公共块存储装置内的数据区块的存根(stub)来替换。在文件存取期间,正确的区块/块可以被组装并且被供应至主机系统110。备份客户端(112/130)可以进一步实现关于非易失性存储装置140的一个或多个数据维护操作,诸如优化、垃圾收集、损耗均衡和/或刷洗。
为了实现重复删除功能,备份系统120和/或主机系统110可以维护指示文件和与其相关联的块之间的关联性的元数据,以及与各种文件和/或块相关联的散列值或其他标识符,以便允许识别用户数据的修改或变化,该修改或变化使得根据相关的重复删除协议来备份或保存此类修改或变化的文件数据成为必要。
在某些实施例中,系统100被配置为将文件的每个可散列单元保存为独立的块文件。此类块文件可以用与相应的块相关联的十六进制散列值来命名。在某些实施例中,通过“.hash”文件扩展名来保存独立的块文件。如上所述,将块保存为独立的块文件可以至少部分地减轻对将块附加到不断增长的文件或二进制大对象的需求。因此,在备份存储库不提供将块附加到远程文件的方法的情况下,本文所公开的实施例可以允许由主机系统110将修改的块/新块保存在备份系统120中。例如,不是调用用于将块附加到文件的附加函数,而是可以由主机系统110调用简单的文件保存函数来将独立的块文件保存在备份系统120中。
虽然未示出,但是备份系统120和主机系统110可以包括各种其他组件和/或特征件,诸如易失性和/或非易失性存储器模块、数据传输通道/接口,和/或,和/或处理器、状态机或其他计算组件。
块级文件
图2A是示出用户数据的数据二进制大对象201的实施例的框图,该二进制大对象201包括多个文件(文件1至文件N)。术语“二进制大对象”在本文中根据其广泛和常规约定(meeting)而被使用,并且可以指可以被存储在备份数据存储装置中的多种类型的数据结构或数据单元中的任一种。例如,“二进制大对象”可以指二进位大型对象、文件、流、数字文档、表、目录、数据库、档案、对象或其他类型的数据结构,或非结构化、半结构化或结构化数据存储环境中的数据集合。此外,二进制大对象可以包含任何类型的数据,诸如图像、音频或其他多媒体对象、二进制可执行代码或其他类型的数据。二进制大对象201可以具有任何期望的或实际的大小,诸如大约2GB、4GB或一些其它值。二进制大对象201可以包括任何数量的数据文件,诸如用户数据。
在某些实施例中,用户数据的文件可以包括多个用户数据块,每个块表示文件的用户数据的子部分。图2B示出了显示具有多个块(块A至块N)的文件203的框图。文件203可以进一步包括与文件的用户数据相关联的元数据205,诸如文件名207或其他文件标识符。
如上所述,在某些备份解决方案中,可以将修改的块/新块附加到不断增长的文件中,其中可以在备份数据存储装置中维护文件偏移量和块长度数据,以定位此类块。然而,如本文所公开的,因为不是所有的备份存储库都可以被配置为支持以这种方式将块附加到文件,因此期望的是在某些情况下将各个块保存为独立的文件。此外,独立的块文件可以用相应的块的散列值(例如,十六进制值)来命名。出于说明的目的,块文件可以被命名为例如“08EF8A59CC3B17D9.hash”或其他散列值和/或文件扩展名。
被存储用于各个数据块的独立的文件在本文中被称为“块文件”。如图3A所示,独立的块311(块A)可以被保存为独立的块文件302A,其中块文件包括块数据311以及与该块相关联的某些元数据305,诸如块标识符315。块标识符315可以是例如与块文件302A相关联的文件名等。文件203的其他块同样可以被保存为独立的块文件,诸如图3A中所示的块文件B 304。类似于块文件302A,块文件304包括包含块标识符316的元数据306以及块数据312。如在图3B中所示的块文件的利用可以有利地引起减少需要保存的数据量,这进而可以释放资源以用于其他目的。
图3B示出块文件302B,其中块文件302B包括文件名307。在某些实施例中,文件名307可以是或可以对应于块数据311的散列值。例如,在某些实施例中,为了识别数据的变化以便重复删除,计算用于文件的每个可散列块的散列值。如图3B所示,此类散列值可以兼作块文件302B的文件名,这可以允许元数据的有效存储,其中对于块文件的散列值和文件名只存储单个值。
如上所描述的,重复数据删除通常用于仅备份文件的已经变化的那些部分或是新的那些部分,并且跨许多文件重新使用文件的块。为了确定变化和/或新的文件块,可以在文件的已经变化的一个或多个部分(例如,块)上运行散列算法,以生成用于每个块的散列值。在某些实施例中,散列算法产生唯一的散列值,以避免在数据重组期间可能以其他方式产生问题的冲突。
备份客户端可被配置为将新计算的散列值与所保存的与文件相关联的散列值的列表进行比较。在某些实施例中,如果用于文件的块或多个块的散列值已经变化,则只有那些变化的块被保存为块文件。如果散列值被识别为已经存在于备份目标存储库中,则由于散列值的唯一性,新块可能不需要保存并且可以被标记为已被保存。
文件名目录位置识别
图4是示出根据本文所公开的一个或多个实施例的文件目录层次结构的框图,其中块文件可以保存在层次结构的各种文件夹中。通常,期望的是避免其中太多文件被存储在单个目录文件夹中的情况,这可能不期望地引入过度开销和/或导致延长的块文件存储和检索时间。为了避免在单个目录中存储太多的块文件,块文件可以被保存到目录层次结构中,其中针对相关散列值(例如,十六进制散列值)格式的字节或其他部分或区间来命名每个文件夹。下面参考包括三字节十六进制散列值的示例散列格式来描述图4的所示的层次结构。虽然三字节十六进制值被用于描述目的,但是应当理解,可以根据所实现的特定散列惯例来实现具有任何格式或长度的值。
在某些实施例中,为了便于查找,将到散列文件的存储位置的路径编码到块文件的文件名中。因此,可以不需要将独立的路径值保存到对已被备份的文件进行索引的数据存储装置中。如图所示,文件名的某些字符、符号或位/字节可以与文件系统层次结构的不同级别相关联,并且可以识别在层次结构内的文件位置路径。因为与各种保存的块文件相关联的散列值在其本质上可以是唯一值,所以某些实施例利用此类唯一性,以便减少在文件目录中定位块文件所需的元数据的量。
图4说明了示出可以如何实现此类目录路径识别文件名机制的示例。作为示例,诸如块文件450的文件可以具有文件名“08EF8B”。在所示实施例中,十六进制值的每两个符号可以表示目录层次结构中的独立的级别。即,例如,文件名值的前两个符号(或者例如最后两个符号)可以对应于目录层次结构中的最高级别。虽然在所示实施例中,文件名的两个符号对应于目录层次结构的相应的级别中的每个,但是文件名值/串的其他数量的符号或子集可以被用于识别目录层次结构的各种级别。
因此,关于示例文件名“08EF8B”,“08”可以识别相关的目录层次结构的最高级别(0级)文件夹401。因此,文件450可以被识别为保存在父文件夹401的次文件夹或子文件夹中。文件名的剩余符号可以识别层次结构的剩余级别中的每个。例如,如图所示,第三和第四符号“EF”可以识别文件450被存储在其下的下一级文件夹411。
最后两个字符“8B”识别文件450被存储在其中的子文件夹422。如图所示,文件450可以是包括文件名的块文件,该文件名是上述识别块文件450的存储位置的存储位置识别串。块文件450进一步包括块数据。
通过以这种方式实现存储位置路径,本文所公开的实施例可以提供减少的元数据需求,因为可以不必将文件偏移量和字节数以及存储路径信息存储在数据存储装置中。如图4所示的目录树可以进一步提供对块文件的相对快速和容易的访问。
文件备份/恢复过程
图5示出用于在备份系统中备份文件的过程500。在框502处,过程500涉及确定在备份系统中备份或有待备份的文件已经变化。例如,文件可以是先前没有存储在备份系统中的新文件,或者文件可以已经被主机修改,其中此类修改旨在被捕获在备份系统中。在某些实施例中,备份客户端接收文件的变化的通知。
在框504处,过程500涉及计算文件的可散列块的散列。此类步骤可以涉及识别该文件的可散列块部分以及计算与一个或多个可散列块相关联的散列值。在某些实施例中,过程500涉及计算仅用于文件的已被修改的那些块或该文件的新块的散列。
在框506处,过程500涉及将计算的文件的散列与保存的与文件相关联的散列进行比较。基于此类比较,过程500并且涉及在框508处确定文件的哪个可散列块已经变化。例如,过程500可以涉及确定新生成的散列值是否已经存在于相关的存储模块中;如果生成的散列尚未存在于存储模块中,则此类缺失可以指示相关联的块是新的或是被修改的,并且因此需要被备份。
在框510处,过程500涉及将修改的块或新块作为独立的文件保存在备份数据存储装置中。独立的块文件可以包括某些元数据或块标识符数据以及块数据。即,替代于将新的/修改的块附加到不断增长的文件,该块可以作为单独的文件被保存。这可以允许备份客户端跨不同的备份目标存储库媒体类型(包括不支持文件附加操作的第三方目标)来使用标准文件I/O操作。
某些实施例,如在框512处所示,独立的块文件可以具有包括被保存的相应块的散列值的文件名。例如,块文件可以用该块的散列的十六进制表示来命名,并且可以具有“.hash”文件扩展名。如上面更详细地描述的,在某些实施例中,散列值文件名可以被用来识别块文件被存储的存储位置。
在框514处,过程500涉及将新的或修改的块标记为到备份数据存储装置。如果额外的块仍然有待被保存为块文件,则过程500涉及从决策框516循环回到框510。
图6示出根据本文所公开的一个或多个实施例的用于从备份存储装置恢复文件的过程600。在框602处,过程600涉及接收恢复已经在备份数据存储装置中备份的文件的请求。该请求可以指示要恢复的文件的特定版本,其中对应于不同时间段的文件的不同版本例如在备份系统中被跟踪和/或维护。例如,相关的备份客户端可以接收用户希望恢复已经被备份的文件的版本的通知。
在框604处,过程600涉及检索与请求的文件相关联的块的列表。例如,列表可以在备份系统中(诸如在备份数据存储装置中)维护,作为用于跟踪与特定文件相关联的块文件的位置的机制。块可以是构成所请求的文件的版本的文件的可散列块。该过程可以涉及通过针对文件咨询备份数据存储装置来检索列表和/或识别的块。
在框606处,过程600涉及创建与所请求的恢复文件相对应的临时文件。临时文件可以被构建为用于提供回主机的恢复文件。框608至框612示出用于迭代地检索与所请求的文件相关联的各个块文件中的每个块文件的循环。即,在框608处,来自备份数据存储装置的与所请求的文件或树相关联的块文件,并且在框610处,将检索的块文件的块附加到临时文件。因为文件的可散列块作为文件而非来自较大文件的偏移量和长度被读取,所以图6所示的备份解决方案可以跨不同的备份平台兼容,因为对读取和写入文件的支持可以比对文件附加和/或文件的任意块的读取的支持更广泛地可用。因此,本文所公开的实施例可以允许备份客户端跨不同的备份目标存储库媒体类型使用标准文件I/O操作。
文件中是否剩余尚未被检索的附加块,在决策框612处进行此类确定,并且如果剩余块,则过程600返回到框608并进行分组,直到与所请求文件相关联的所有块已被检索并附加到临时文件。如上所述,可以使用块的散列值从备份目标存储库来检索文件的可散列块,以确定可散列块文件名,其中文件路径由文件名本身识别。在框614处,过程600涉及将恢复文件提供到例如主机系统。该文件可以被恢复到由用户提供的位置和/或名称。
相对于某些现有备份解决方案,本文所公开的实施例可以提供各种优点。例如,所公开的备份解决方案可以与由主机端备份客户端可以使用的大量的第三方数据存储库兼容。例如,当修改相对大的文档中的单个词或修改相对大的图像文件中的调节少量像素时,此类改进的效率可以是特别明显的。在这种情况下,根据本文所公开的某些实施例,仅保存文件的变化的一部分而非整个文件,从而节省时间和/或资源。
另外的实施例
本领域技术人员将理解,在一些实施例中,可以实现其他类型的数据备份系统,同时仍旧在本公开的范围内。此外,在本文所讨论的过程中采取的实际步骤可以不同于图中描述或示出的那些步骤。根据实施例,可以去除上述的某些步骤,和/或可以添加其他步骤。
虽然描述了某些实施例,但这些实施例仅作为示例呈现,并且不旨在限制保护范围。实际上,在本文描述的新颖方法和系统可以以各种其他形式来体现。此外,可以对本文所描述的方法和系统的形式进行各种省略、替换和变化。所附权利要求及其等同物旨在涵盖将落入要求保护的范围和精神内的这些形式或修改。例如,附图中示出的各种组件可以被实现为处理器上的软件和/或固件、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或专用硬件。同时,以上公开的特定实施例的特征和属性可以以不同方式被组合从而形成额外的实施例,全部这些额外的实施例都落入本公开的范围内。虽然本公开提供某些优选实施例和应用,但对本领域人员显而易见的其它实施例(包括没有提供在本文陈述的所有特征和优点的实施例)也在本公开的范围内。因此,本公开的范围旨在仅通过参照所附的权利要求来限定。
全部上述过程可以通过由一个或多个通用或专用计算机或处理器执行的软件代码模块来体现并且完全自动化。代码模块可以被存储在任何类型的计算机可读介质或其他计算机存储设备或存储设备的集合上。方法的一些或全部可以可替换地以专用计算机硬件来体现。
Claims (20)
1.一种计算系统,其包括:
通信接口,用于与非易失性存储器通信;以及
控制器,被配置为:
确定存储在所述非易失性存储器中的文件已被修改,所述文件包括多个块;
识别所述多个块中的已被修改的块,所述多个块由识别的被修改的块和多个其他块组成;
确定与修改的块相关联的新块,所述新块反映所述修改;
生成包括所述新块和文件名的独立的块文件;以及
使用所述通信接口将所述块文件与所述多个其他块分开地存储在所述非易失性存储器中。
2.根据权利要求1所述的计算系统,其中所述文件名指示在与所述非易失性存储器相关联的文件目录内的存储位置,其中所述存储所述块文件包括将所述块文件存储在所述位置中。
3.根据权利要求2所述的计算系统,其中用于所述位置的路径值没有由所述控制器独立于所述文件名而存储。
4.根据权利要求1所述的计算系统,其中:所述控制器是主机设备的组件,所述主机设备通过所述通信接口连接到数据存储设备;
所述数据存储设备包括所述非易失性存储器。
5.根据权利要求1所述的计算系统,其中所述非易失性存储器和所述控制器是网络附属存储驱动器即NAS驱动器的组件或直连式存储驱动器即DAS驱动器的组件。
6.根据权利要求1所述的计算系统,其中所述控制器进一步被配置为生成与所述新块相关联的散列值。
7.根据权利要求6所述的计算系统,其中所述散列值是所述文件名。
8.根据权利要求1所述的计算系统,其中所述块文件是散列文件。
9.根据权利要求1所述的计算系统,其中所述控制器进一步被配置为至少部分地通过以下操作重构所述文件:
接收恢复所述文件的版本的请求;
识别与所述文件的所述版本相关联的一个或多个块文件,所述一个或多个块文件包括所述块文件;
检索一个或多个识别的块文件;以及
将检索的一个或多个块文件附加到恢复的文件。
10.根据权利要求9所述的计算系统,其中所述检索一个或多个识别的块文件包括基于所述一个或多个识别的块文件的文件名来确定一个或多个目录位置。
11.根据权利要求9所述的计算系统,其中所述控制器进一步被配置为检索将文件与块相关联的表。
12.根据权利要求9所述的计算系统,其中所述控制器进一步被配置为通过网络将所述恢复的文件提供到主机设备,其中所述计算系统是备份服务器系统。
13.一种在计算系统中对数据进行备份的方法,所述方法包括:
确定存储在计算系统的非易失性存储器中的文件已被修改,所述文件包括多个块;
识别所述多个块中的已被修改的块,所述多个块由识别的被修改的块和多个其他块组成;
确定与修改的块相关联的新块,所述新块反映所述修改;
生成包括所述新块和文件名的独立的块文件;以及
将所述块文件与所述多个其他块分开地存储在所述非易失性存储器中。
14.根据权利要求13所述的方法,其中所述文件名指示与所述非易失性存储器相关联的文件目录内的存储位置。
15.根据权利要求13所述的方法,其进一步包括生成与所述新块相关联的散列值。
16.根据权利要求13所述的方法,其中所述块文件是散列文件。
17.一种在计算系统中恢复备份数据的方法,所述方法包括:
接收恢复存储在计算系统的非易失性存储器中的文件的版本的请求;
识别与所述文件的所述版本相关联的存储在所述非易失性存储器中的一个或多个独立的块文件,所述一个或多个块文件中的每一个都由单个相应块和与所述单个相应块相关联的元数据组成,所述元数据包括文件名;
检索一个或多个识别的块文件;以及
将检索的一个或多个块文件附加到恢复的文件。
18.根据权利要求17所述的方法,其中所述检索所述一个或多个识别的块文件包括基于所述一个或多个识别的块文件的文件名来确定一个或多个目录位置。
19.根据权利要求17所述的方法,其进一步包括检索将文件与块相关联的表。
20.根据权利要求17所述的方法,其中所述一个或多个块文件中的每一个的所述文件名是与相应的块文件相关联的散列值。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/673,785 US9684569B2 (en) | 2015-03-30 | 2015-03-30 | Data deduplication using chunk files |
US14/673,785 | 2015-03-30 | ||
PCT/US2016/024181 WO2016160555A1 (en) | 2015-03-30 | 2016-03-25 | Data deduplication using chunk files |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107111460A CN107111460A (zh) | 2017-08-29 |
CN107111460B true CN107111460B (zh) | 2020-04-14 |
Family
ID=57006349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680004540.4A Active CN107111460B (zh) | 2015-03-30 | 2016-03-25 | 使用块文件的重复数据删除 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9684569B2 (zh) |
CN (1) | CN107111460B (zh) |
DE (1) | DE112016000176T5 (zh) |
WO (1) | WO2016160555A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9367562B2 (en) * | 2013-12-05 | 2016-06-14 | Google Inc. | Distributing data on distributed storage systems |
US9659047B2 (en) * | 2014-12-03 | 2017-05-23 | Netapp, Inc. | Data deduplication utilizing extent ID database |
US9967093B2 (en) * | 2015-03-25 | 2018-05-08 | Intel Corporation | Techniques for securing and controlling access to data |
US10534671B1 (en) * | 2016-06-28 | 2020-01-14 | EMC IP Holding Company LLC | Container image layer compaction |
CN109391645B (zh) * | 2017-08-03 | 2020-09-11 | 中国移动通信有限公司研究院 | 区块链轻量化处理方法、区块链节点及存储介质 |
CN110737635B (zh) * | 2018-07-02 | 2023-02-10 | 深圳联友科技有限公司 | 一种数据分块方法 |
US11003629B2 (en) * | 2018-10-31 | 2021-05-11 | EMC IP Holding Company LLC | Dual layer deduplication for application specific file types in an information processing system |
WO2021102673A1 (en) * | 2019-11-26 | 2021-06-03 | Citrix Systems, Inc. | Document storage and management |
US11106580B2 (en) | 2020-01-27 | 2021-08-31 | Hewlett Packard Enterprise Development Lp | Deduplication system threshold based on an amount of wear of a storage device |
US11706203B2 (en) * | 2021-05-14 | 2023-07-18 | Citrix Systems, Inc. | Method for secondary authentication |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101370025A (zh) * | 2007-08-17 | 2009-02-18 | 北京灵图软件技术有限公司 | 地理信息数据的存储方法、调度方法及管理系统 |
CN101814045A (zh) * | 2010-04-22 | 2010-08-25 | 华中科技大学 | 一种用于备份服务的数据组织方法 |
CN102184218A (zh) * | 2011-05-05 | 2011-09-14 | 华中科技大学 | 一种基于因果关系的重复数据删除方法 |
WO2011159322A1 (en) * | 2010-06-18 | 2011-12-22 | Hewlett-Packard Development Company, L.P. | Data deduplication |
CN103384256A (zh) * | 2012-05-02 | 2013-11-06 | 天津书生投资有限公司 | 一种云存储方法及装置 |
Family Cites Families (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9191443B2 (en) | 1999-12-02 | 2015-11-17 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US7546353B2 (en) | 1999-12-02 | 2009-06-09 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
AU2056401A (en) | 1999-12-02 | 2001-06-12 | Senvid, Inc. | Method, system and service model for remote recording of television programs |
US7917628B2 (en) | 1999-12-02 | 2011-03-29 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US8688797B2 (en) | 1999-12-02 | 2014-04-01 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US7934251B2 (en) | 1999-12-02 | 2011-04-26 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US8793374B2 (en) | 1999-12-02 | 2014-07-29 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US7120692B2 (en) | 1999-12-02 | 2006-10-10 | Senvid, Inc. | Access and control system for network-enabled devices |
US7587467B2 (en) | 1999-12-02 | 2009-09-08 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US6499054B1 (en) | 1999-12-02 | 2002-12-24 | Senvid, Inc. | Control and observation of physical devices, equipment and processes by multiple users over computer networks |
US7949564B1 (en) | 2000-05-31 | 2011-05-24 | Western Digital Technologies, Inc. | System and method of receiving advertisement content from advertisers and distributing the advertising content to a network of personal computers |
US7454443B2 (en) | 2003-08-26 | 2008-11-18 | Tamir Ram | Method, system, and program for personal data management using content-based replication |
US20080250085A1 (en) | 2007-04-09 | 2008-10-09 | Microsoft Corporation | Backup system having preinstalled backup data |
US20080270436A1 (en) * | 2007-04-27 | 2008-10-30 | Fineberg Samuel A | Storing chunks within a file system |
US8209540B2 (en) | 2007-06-28 | 2012-06-26 | Apple Inc. | Incremental secure backup and restore of user settings and data |
US8004791B2 (en) | 2008-02-22 | 2011-08-23 | Western Digital Technologies, Inc. | Information storage device with a bridge controller and a plurality of electrically coupled conductive shields |
WO2010036889A1 (en) * | 2008-09-25 | 2010-04-01 | Bakbone Software, Inc. | Remote backup and restore |
US20100211983A1 (en) | 2009-02-19 | 2010-08-19 | Pixel8 Networks, Inc. | Virtual private content delivery network and method thereof |
CN102378969B (zh) | 2009-03-30 | 2015-08-05 | 惠普开发有限公司 | 拷贝卷中存储的数据的去重复 |
JP4924645B2 (ja) | 2009-03-31 | 2012-04-25 | 富士通株式会社 | ストレージ制御装置、ストレージシステム及びコピー方法。 |
US8255661B2 (en) | 2009-11-13 | 2012-08-28 | Western Digital Technologies, Inc. | Data storage system comprising a mapping bridge for aligning host block size with physical block size of a data storage device |
US8285965B2 (en) | 2009-11-20 | 2012-10-09 | Western Digital Technologies, Inc. | Aligning data storage device partition to boundary of physical data sector |
US8526798B2 (en) | 2009-12-23 | 2013-09-03 | Western Digital Technologies, Inc. | Portable content container displaying A/V files in response to a command received from a consumer device |
US8458131B2 (en) | 2010-02-26 | 2013-06-04 | Microsoft Corporation | Opportunistic asynchronous de-duplication in block level backups |
US8370297B2 (en) * | 2010-03-08 | 2013-02-05 | International Business Machines Corporation | Approach for optimizing restores of deduplicated data |
US8631284B2 (en) | 2010-04-30 | 2014-01-14 | Western Digital Technologies, Inc. | Method for providing asynchronous event notification in systems |
US8762682B1 (en) | 2010-07-02 | 2014-06-24 | Western Digital Technologies, Inc. | Data storage apparatus providing host full duplex operations using half duplex storage devices |
GB2482128A (en) | 2010-07-19 | 2012-01-25 | Quantum Corp | Delta chunks and delta hashes |
US10019741B2 (en) | 2010-08-09 | 2018-07-10 | Western Digital Technologies, Inc. | Methods and systems for a personal multimedia content archive |
US8799231B2 (en) | 2010-08-30 | 2014-08-05 | Nasuni Corporation | Versioned file system with fast restore |
US8713265B1 (en) | 2010-09-21 | 2014-04-29 | Western Digital Technologies, Inc. | Visual indicator of online backup |
US9244779B2 (en) * | 2010-09-30 | 2016-01-26 | Commvault Systems, Inc. | Data recovery operations, such as recovery from modified network data management protocol data |
US8612392B2 (en) | 2011-05-09 | 2013-12-17 | International Business Machines Corporation | Identifying modified chunks in a data set for storage |
US8904128B2 (en) | 2011-06-08 | 2014-12-02 | Hewlett-Packard Development Company, L.P. | Processing a request to restore deduplicated data |
US8990171B2 (en) * | 2011-09-01 | 2015-03-24 | Microsoft Corporation | Optimization of a partially deduplicated file |
US8780004B1 (en) | 2012-01-31 | 2014-07-15 | Western Digital Technologies, Inc. | Dual configuration enclosure with optional shielding |
US8819443B2 (en) | 2012-02-14 | 2014-08-26 | Western Digital Technologies, Inc. | Methods and devices for authentication and data encryption |
US8646054B1 (en) | 2012-03-23 | 2014-02-04 | Western Digital Technologies, Inc. | Mechanism to manage access to user data area with bridged direct-attached storage devices |
US8914634B2 (en) | 2012-04-10 | 2014-12-16 | Western Digital Technologies, Inc. | Digital rights management system transfer of content and distribution |
US9214184B2 (en) | 2012-04-10 | 2015-12-15 | Western Digital Technologies, Inc. | Digital rights management system, devices, and methods for binding content to an intelligent storage device |
CN103577278B (zh) | 2012-07-30 | 2016-12-21 | 国际商业机器公司 | 用于数据备份的方法和系统 |
US9626373B2 (en) | 2012-10-01 | 2017-04-18 | Western Digital Technologies, Inc. | Optimizing data block size for deduplication |
US9262430B2 (en) * | 2012-11-22 | 2016-02-16 | Kaminario Technologies Ltd. | Deduplication in a storage system |
US9280482B2 (en) | 2012-12-13 | 2016-03-08 | Western Digital Technologies, Inc. | Methods and systems for provisioning a bootable image on to an external drive |
US20140169921A1 (en) | 2012-12-19 | 2014-06-19 | Mark Carey | Cargo carrier |
US20140344539A1 (en) | 2013-05-20 | 2014-11-20 | Kaminario Technologies Ltd. | Managing data in a storage system |
US20150186407A1 (en) * | 2013-12-27 | 2015-07-02 | A4 Data, Inc. | System and method for synchronizing files through differential compression |
-
2015
- 2015-03-30 US US14/673,785 patent/US9684569B2/en active Active
-
2016
- 2016-03-25 DE DE112016000176.2T patent/DE112016000176T5/de active Pending
- 2016-03-25 CN CN201680004540.4A patent/CN107111460B/zh active Active
- 2016-03-25 WO PCT/US2016/024181 patent/WO2016160555A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101370025A (zh) * | 2007-08-17 | 2009-02-18 | 北京灵图软件技术有限公司 | 地理信息数据的存储方法、调度方法及管理系统 |
CN101814045A (zh) * | 2010-04-22 | 2010-08-25 | 华中科技大学 | 一种用于备份服务的数据组织方法 |
WO2011159322A1 (en) * | 2010-06-18 | 2011-12-22 | Hewlett-Packard Development Company, L.P. | Data deduplication |
CN102184218A (zh) * | 2011-05-05 | 2011-09-14 | 华中科技大学 | 一种基于因果关系的重复数据删除方法 |
CN103384256A (zh) * | 2012-05-02 | 2013-11-06 | 天津书生投资有限公司 | 一种云存储方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US9684569B2 (en) | 2017-06-20 |
CN107111460A (zh) | 2017-08-29 |
WO2016160555A1 (en) | 2016-10-06 |
US20160292048A1 (en) | 2016-10-06 |
DE112016000176T5 (de) | 2017-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107111460B (zh) | 使用块文件的重复数据删除 | |
US9792306B1 (en) | Data transfer between dissimilar deduplication systems | |
US9703803B2 (en) | Replica identification and collision avoidance in file system replication | |
US9798486B1 (en) | Method and system for file system based replication of a deduplicated storage system | |
US11954373B2 (en) | Data structure storage and data management | |
US9430156B1 (en) | Method to increase random I/O performance with low memory overheads | |
US8315985B1 (en) | Optimizing the de-duplication rate for a backup stream | |
US10303363B2 (en) | System and method for data storage using log-structured merge trees | |
US10019323B1 (en) | Method and system for container data recovery in a storage system | |
US20060218435A1 (en) | Method and system for a consumer oriented backup | |
US10339112B1 (en) | Restoring data in deduplicated storage | |
US20110145207A1 (en) | Scalable de-duplication for storage systems | |
KR102187127B1 (ko) | 데이터 연관정보를 이용한 중복제거 방법 및 시스템 | |
US9542411B2 (en) | Adding cooperative file coloring in a similarity based deduplication system | |
US9740422B1 (en) | Version-based deduplication of incremental forever type backup | |
US10628298B1 (en) | Resumable garbage collection | |
US11048594B2 (en) | Adding cooperative file coloring protocols in a data deduplication system | |
US9832260B2 (en) | Data migration preserving storage efficiency | |
US11544150B2 (en) | Method of detecting source change for file level incremental backup | |
US9098513B1 (en) | Methods and systems for differencing orderly dependent files | |
US10776321B1 (en) | Scalable de-duplication (dedupe) file system | |
US10331362B1 (en) | Adaptive replication for segmentation anchoring type | |
US11593304B2 (en) | Browsability of backup files using data storage partitioning | |
US20170351608A1 (en) | Host device | |
US20110004630A1 (en) | Method for reliable and efficient filesystem metadata conversion |
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 |