CN109726042A - 文件备份装置及方法 - Google Patents

文件备份装置及方法 Download PDF

Info

Publication number
CN109726042A
CN109726042A CN201811027581.2A CN201811027581A CN109726042A CN 109726042 A CN109726042 A CN 109726042A CN 201811027581 A CN201811027581 A CN 201811027581A CN 109726042 A CN109726042 A CN 109726042A
Authority
CN
China
Prior art keywords
data
index
block
storage device
data flow
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
CN201811027581.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.)
Synology Inc
Original Assignee
Synology Inc
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 Synology Inc filed Critical Synology Inc
Publication of CN109726042A publication Critical patent/CN109726042A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • 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
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • 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]

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

文件备份装置及方法
技术领域
本发明涉及数据备份,尤指一种文件备份装置及方法。
背景技术
重复数据删除(data deduplication)是一种通过移除重复数据块来压缩数据成为精简格式,并且使得数据可以更节约地存储于存储装置。就网络附加存储系统(Network-Attached Storage,NAS)来说,数据存储的保护是个重大的技术问题。网络附加存储系统可以每天执行增量备份(incremental backup),只复制从上次备份以来改变的数据块(datachunk)。快速查找是企业数据保护的重要要求,通常需要高于1.28x104ops/s(operationsper second,每秒操作数目)。在低成本系统中达到高速的数据块搜索是个严格的考验,因为系统中无法提供足够的随机存取存储器(Random Access Memory,RAM),用来存放存储装置中的数据块的索引。因此,本发明提出一种文件备份装置及方法,用来克服如上所述的限制。
发明内容
有鉴于此,如何减轻或消除上述相关领域的缺失,实为有待解决的问题。
本发明提供一种文件备份装置的实施例,其包含:存储装置;及处理单元。处理单元依据上次修改信息分割来源数据流成为第一及第二数据流;于第一数据流上执行删除重复数据程序以产生及存储独特块至存储装置,并为第一数据流产生第一组组合索引的第一部分;从来源数据流的前一版本的第二组组合索引中复制相应于出现在第二数据流的逻辑位置的组合索引,作为第一组组合索引的第二部分;依据来源数据流的逻辑位置合并及存储第一组组合索引的第一及第二部分至存储装置,用于指出第一及第二数据流中的多个第二数据块实际存储于存储装置的何处。
本发明还提供一种文件备份方法的实施例,由客户机或服务器的处理单元执行,其包含:依据上次修改信息分割来源数据流成为第一及第二数据流;于第一数据流上执行删除重复数据程序以产生及存储独特块至该存储装置,并为第一数据流产生第一组组合索引的第一部分;从来源数据流的前一版本的第二组组合索引中复制相应于出现在第二数据流的逻辑位置的组合索引,作为第一组组合索引的第二部分;依据来源数据流的逻辑位置合并及存储第一组组合索引的第一及第二部分至存储装置,用于指出第一及第二数据流中的多个第二数据块实际存储于存储装置的何处。
本发明另外提供一种文件备份装置的实施例,其包含:分块模块、去重复模块及复制模块。分块模块用于依据上次修改信息分割来源数据流成为第一及第二数据流。去重复模块用于于第一数据流上执行删除重复数据程序以产生及存储独特块至该存储装置,并为第一数据流产生第一组组合索引的第一部分。复制模块用于从来源数据流的前一版本的第二组组合索引中复制相应于出现在第二数据流的逻辑位置的组合索引,作为第一组组合索引的第二部分;依据来源数据流的逻辑位置合并及存储第一组组合索引的第一及第二部分至存储装置,用于指出第一及第二数据流中的多个第二数据块实际存储于存储装置的何处。
本发明实施例所述的独特块相对于已经存储于该存储装置并且于删除重复数据程序中可搜索出的所有第一数据块是独特的。
上述实施例的优点是能够从上次修改信息指出的已经改变的块或区域中滤出没有改变的部分,避免这些没有改变的部分被视为原始数据而存储。
本发明的其他优点将配合以下的说明和附图进行更详细的解说。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为依据本发明实施例的网络架构示意图。
图2为依据本发明实施例的网络附加存储系统(Network-Attached Storage,NAS)的系统架构图。
图3为依据本发明实施例的客户机的系统架构图。
图4为依据本发明实施例的文件备份的方框图。
图5为依据本发明实施例的删除重复数据块的方法流程图。
图6为依据本发明实施例的由分块模块(chunking module)执行的数据分块及建立索引的方法流程图。
图7为依据本发明实施例的为操作系统选择热门采样索引(hot sample indices)的方法流程图。
图8为依据本发明实施例的通用及热门采样索引的示意图。
图9为依据本发明实施例用来表示数据块变化的示意图。
图10为依据本发明实施例用来表示一组组合索引(composition indices)的示意图。
图11为依据本发明实施例的由分块模块执行的为缓冲器中的数据块准备缓存索引(cache indices)的方法流程图。
图12至13为依据本发明实施例的用来搜索重复数据块的二阶段搜索(two-phasesearch)的方法流程图。
图14至19为依据本发明实施例的用来表示在第一阶段搜索中的存储器中的索引变化示意图。
图20为依据本发明实施例的通用及热门采样索引的更新示意图。
图21为依据本发明实施例的由存储服务器或客户机中的备份引擎执行的文件备份的方法流程图。
符号说明:
100 网络架构
110 存储服务器
120 网络
130_1~130_n 客户机
210 处理单元
240 存储装置
250 存储器
260 通信接口
310 处理单元
320 显示单元
330 输入装置
340 存储装置
350 存储器
360 通信接口
411 分块模块
413 去重复模块
415 缓储模块
417 制桶模块
418 索引更新模块
419 复制模块
440_1~440_m 数据桶
441_1~441_m 块部分
443_1~443_m 元数据部分
445、445_0 多组组合索引
451 数据缓冲区
453 写入缓冲区
455 复制缓冲区
471、810_0~810_6 通用采样索引
473、473_0~473_q、830_0~830_3 热门采样索引
475 缓存索引
S510~S570 方法步骤
S610~S660 方法步骤
810_0~810_6 热门采样索引
910、920、1010 输入数据流
S1110~S1160 方法步骤
S1210~S1270 方法步骤
S1310~S1360 方法步骤
t1~t12 时间点
S2110~S2150 方法步骤
具体实施方式
以下将配合相关附图来说明本发明的实施例。在这些附图中,相同的标号表示相同或类似的组件或方法流程。
必须了解的是,使用于本说明书中的“包含”、“包括”等词,是用以表示存在特定的技术特征、数值、方法步骤、作业处理、组件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、组件、组件,或以上的任意组合。
本发明中使用如“第一”、”第二”、”第三”等词是用来修饰权利要求中的组件,并非用来表示的间具有优先权顺序,先行关系,或者是一个组件先于另一个组件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的组件。
必须了解的是,当组件描述为“连接”或“耦接”至另一组件时,可以是直接连结、或耦接至其他组件,可能出现中间组件。相反地,当组件描述为“直接连接”或“直接耦接”至另一组件时,其中不存在任何中间组件。使用于描述组件之间关系的其他语词也可类似方式解读,例如“介于”相对于“直接介于”,或者是“邻接”相对于“直接邻接”等等。
本发明的实施例提出一种网络架构100,包含客户机及存储服务器,彼此通信以存储备份文件至存储服务器。参考图1。存储服务器110可提供存储容量,用于存储从客户机130_1至130_n接收的不同版本的备份文件,n可以是任意的正整数。每个备份文件可包含操作系统(Operating System)、系统核心(System Kernels)、系统驱动程序(SystemDrivers)、输入输出驱动程序(IO Drivers)、应用程序(Applications)等的二进制码,以及使用者数据。每个备份文件关联于特定操作系统,如iOSx、WindowsTM 95、97、XP、Vista、Win7、Win10、Linux、Ubuntu等。客户机130_1至130_n中的任何一个可在通过存储服务器110的验证后,备份文件至存储服务器110。在开始备份文件影像(file-image.)前,存储服务器110可向请求的客户机要求登录账号(Identification)及密码。在通过验证后,请求的客户机才可开始传送备份文件的数据流(data stream)至存储服务器110。当存储服务器110通过验证登录账号及密码判断请求的客户机不是合法使用者时,禁止这个备份操作。请求的客户机可通过网络120备份特定版本的备份文件至存储服务器110或从存储服务器110回复(restore)特定版本的备份文件,网络120可包含区域网(Local Area Network,LAN)、无线电信网络(wireless telephony network)、互联网(Internet)、个人区域网(PersonalArea Network,PAN)或上述的任意组合。虽然图1的客户机130_1至130_n显示为个人计算机(Personal Computers),客户机130_1至130_n中的任何一个实施于笔记本计算机(laptopcomputer)、平板计算机、移动电话、数字相机、数字摄影机、电子消费装置等电子产品,本发明不应因此局限。
参考图2,处理单元110可使用多种方式实施,例如使用通用硬件,如单处理器、具平行处理能力的多处理器、图形处理器、或其他具运算能力的处理器,并且在执行指令(instructions)、宏码(macrocode)或微码(microcode)时,提供如下所述的功能。处理单元110可至少包含算数逻辑单元(ALU,Arithmetic and Logic Unit)以及位移器(BitShifter)。算数逻辑单元负责执行布林运算(如AND、OR、NOT、NAND、NOR、XOR、XNOR等)、数学运算(如加、减、乘、除等)或特殊函数运算(如三角函数、平方、三方、n次方、平方根、三方根、n次方根等)。通常,模式选择输入决定算数逻辑单元执行逻辑运算或算数运算。于每个模式中,通过使能一组输入以选择不同的功能。位移器负责位移运算及比特旋转。系统架构还包含存储器250,用于存储执行中所需的数据,如变量、数据表、数据结构(data abstract)、各种索引等。存储器250可以是特定类型的随机存取存储器(Random Access Memory,RAM),提供易失性的存储空间。存储装置240可配置作为独立硬盘冗余阵列(Redundant Array ofIndependent Disks,RAID),并且存储从客户机130_1至130_n接收的不同版本的备份文件,以及提供给重复数据删除(data deduplication)的各种索引。存储装置240可用硬盘(HardDisk Drive,HDD)、固态硬盘(Solid State Disk,SSD)等实施,提供非易失性的存储空间。系统架构另包含通信接口260,让处理单元210可通过其与客户机130_1至130_n或其他装置通信。通信接口260可以是区域网、无线区域网、个人区域网通信模块,或上述组合。
参考图3。处理单元310可使用多种方式实施,例如使用通用硬件,如单处理器、具平行处理能力的多处理器、图形处理器、或其他具运算能力的处理器,并且在执行指令、宏码或微码时,提供如下所述的功能。处理单元310可至少包含算数逻辑单元以及位移器。系统架构还包含存储器350,用于存储执行中所需的数据,如运行变量、数据表等,以及包含存储装置340,用于存储各种电子文件,如网页、文书处理文件、试算表、简报文件、视频文件、音频文件等。存储器350可以是特定类型的随机存取存储器,提供易失性的存储空间。存储装置340可用硬盘、固态硬盘等实施,提供非易失性的存储空间。系统架构另包含通信接口360,让处理单元210可通过其与存储服务器110通信。通信接口260可以是LAN/WLAN/Bluetooth通信模块、2G/3G/4G/5G电信通信模块,或上述组合。系统架构另包含一个或多个输入装置,如键盘、鼠标、触控屏幕等。使用者可按压键盘上的硬键以输入字符,通过操作鼠标以控制屏幕上的鼠标,或者在触控屏幕上制造一个或多个手势以控制执行中的应用程序。手势可包含但不限定于单击、双击、单指拖移、多指拖移等。系统架构可包含显示单元320,如薄膜电晶体液晶显示屏(Thin Film Transistor-Liquid Crystal Display,TFT-LCD panel)、有机发光二极体显示屏(Organic Light-Emitting Diode,OLED panel)等,用于显示文字、数字及符号,拖移轨迹、图案,或应用程序提供给使用者观看的画面。
存储服务器110可设置以程式码搭配数据结构实现的备份引擎,可以由处理单元210载入及执行,用以完成以下功能:备份引擎通过移除来源数据流(source stream,如备份文件)间,或经常是存储于存储装置240的所有数据间的重复数据,用于压缩数据。备份引擎可从客户机130_1至130_n接收不同版本的来源数据流,将每个来源数据流切分为固定或变动长度的数据块(data chunks)。针对每个数据块,可计算加密哈希值(cryptographichash)当作它的指纹(fingerprint)。指纹当作存储服务器110中的数据块的目录,用来侦测其重复性。为减少存储数据流的空间,每个输入数据块的指纹与存储于存储服务器110中的多个数据块的指纹比较。输入数据块可能相较于存储装置240中存储的(或备份的)所有数据块来说是独特的(unique)。或者,输入数据块可能与存储装置240中存储的数据块中的一个重复(duplicate)。备份引擎可从数据流中搜索重复的数据块(以下简称为重复块),判断重复块已经存储于存储装置240中的何处,并且将数据流的重复块的原始数据置换为指向判定位置的指针(pointer)(上述处理可称为重复数据删除程序)。每个重复块可以<fingerprint,location_on_disk>格式表示,用于存储一个参照,指向已经存储于存储装置240的数据块的现有复件(copy)。此外,没有被标记为重复的数据块就当作是独特数据块,这些数据块的复件及指纹存储于存储装置240。备份引擎可载入存储装置240中的所有数据块的指纹至存储器250,用于从每个数据流中发现重复块。虽然指纹已经是数据块的压缩版,但是,在大部分情况下,存储器250不具有存储所有指纹的足够空间。
为解决上述缺陷,文件备份方法及装置的实施例提供一种机制,用于从所有存储装置240中的数据块的所有索引选择出适当索引,以及使用算法(algorithms)搭配选择的索引从数据流中发现重复块。参考图4及图5。分块模块(chunking module)411可从客户机130_1至130_n中的任何一个接收数据流,将数据流切分为数据块,以及计算数据块的指纹(步骤S510)。数据块及其指纹可存储于存储器250中的数据缓冲区(data buffer)451。分块模块411可为数据块准备采样及缓存索引(sample and cache indices)(步骤S520)。采样索引可包括通用采样索引471,分享给所有从客户机130_1至130_n接收的来源数据流,以及包括热门采样索引473,分享给关联至相同操作系统的来源数据流。通用采样索引471、热门采样索引473及缓存索引475可存储于存储器250。去重复模块(deduping module)413可搭配采样及缓存索引执行二阶段搜索(two-phase search)以辨认数据缓冲区451中的每个数据块是独特或重复块(步骤S530)。缓储模块(buffering module)415可写入数据缓冲区451中的独特块至存储器250的写入缓冲区(write buffer)453,以及写入数据缓冲区451中的重复块至存储器250的复制缓冲区(clone buffer)455(步骤S540)。制桶模块(bucketingmodule)417可将写入缓冲区453的独特块及其指纹写入存储器240中的适当数据桶(buckets)(步骤S550)。索引更新模块(index updater)418可更新存储器250中的采样索引,用以反应新发现的独特块(步骤S560)。复制模块(cloning module)419可为每个数据块产生及存储组合索引(composition indices)445至存储装置(步骤S570)。如图4所示的元件可统称为备份引擎。分块模块411、去重复模块413、缓储模块415、制桶模块417、索引更新模块418及复制模块419可以软件指令、宏码、微码等实施,并且能够被处理单元210载入及执行以完成各自的功能。
参考图4,存储装置240可配置空间以存储数据桶440_1至440_m,m为大于0的正整数。每个数据桶440_i可包含块部分(chunk section)441_i及元数据部分(metadatasection)443_i,i为从1至m中的任意整数。每个元数据部分443_i存储数据桶441_i中的数据块的指纹(可称为物理局部保留索引Physical-locality Preserved Indices,以下简称PPIs),以及关联于数据桶441_i中的数据块的历史探测邻块的额外指纹(可称为探测逻辑局部索引Probing-based Logical-locality Indices,以下简称PLIs)。参考图9。图9可分为上下半部,上半部显示依据输入数据流910产生数据桶440_j及440_j+1的内容,j为从1至m中的任意整数,数据流910中的英文字母{A}至{H}表示顺序性的数据块。假设数据块{A}至{H}为独特块:备份引擎可分别为数据块{A}至{H}计算指纹{a}至{h},并存储数据块{A}至{D}于块部分441_j,存储数据块E至H于块部分441_j+1,存储指纹a至d于元数据部分443_j作为PPIs,以及存储指纹{e}至{h}于元数据部分443_j+1作为PPIs。图9的下半部显示随后依据输入数据流920产生数据桶440_k的内容,k为从j+2至m中的任意整数,数据流920中的英文字母{S}、{T}、{U}及{V}表示数据块。由于数据流920中的数据块{A}至{H}为重复块,备份引擎侦测出独特块{S}及{T}在重复块{B}之后,而重复块{C}又在独特块{S}及{T}之后,另侦测出独特块{U}及{V}在重复块{F}之后,而重复块{G}又在独特块{U}及{V}之后。备份引擎可为数据块{S}至{V}分别计算指纹{s}至{v},存储数据块{S}至{V}于块部分441_k,存储指纹{s}至{v}于元数据部分443_k作为PPIs。备份引擎可另新增PLIs,包含{b}、{c}、{f}及{g}至元数据部分443_k。关联于块部分441_k中的数据块的PLIs,代表出现在先前已备份数据流910中的数据块(也就是重复块)的索引,并且这些数据块在目前数据流920中相邻于块部分441_k中的数据块。每个元数据部分可更存储多个旗标(flags),并且每个旗标表示相应索引是PPI或PLI。
存储装置240可为每个输入数据流配置空间,以存储一组的组合索引445。来源数据流的一组的组合索引445存储信息,指出来源数据流的数据块依序实际存储于数据桶440_1至440_m中的何处。参考图10。例如,来源数据流1010的数据块{A}至{D}存储于块部分441_j,数据块{F}及{G}存储于块部分441_j+1。备份引擎存储来源数据流1010的组合索引445_0。每一组的组合索引可存储数据块的逻辑位置(logical locations)及实际位置(physical locations)间的对应关系。组合索引445_0的上面一行显示逻辑位置,指出一个或多个数据块出现在来源数据流1010的位置(或偏移量,offset)。上面一行中的“0-2047”指出数据块{A}及{B}包含来源数据流1010的第0至2047字节(bytes),“2048-4095”指出数据块{C}及{D}包含来源数据流1010的第2048至4095字节,以此类推。组合索引445_0的下面一行显示实际位置,指出一个或多个数据块实际存储于数据桶440_1至440_m的位置。每个实际位置可表示为格式<bucket_no:offset>,bucket_no及offset分别指出特定数据块存储的数据桶的标识符及开始偏移量。例如,下面一行的“j:0”指出数据块{A}及{B}从第j个数据桶中的第0字节开始存储,“j:2048”指出数据块{C}及{D}从第j个数据桶中的第2048字节开始存储,以此类推。组合索引445_0的每一列包含一个逻辑位置及一个实际位置的组合,指出来源数据流的特定字节实际存储于特定数据桶中的特定位置。例如,组合索引445_0的第一列显示来源数据流1010的第0至2047字节实际从第j个数据桶中的第0字节开始存储。需注意的是,二或多组的组合索引可用来分别存储同一个备份文件的两个或多个版本的重复数据删除结果。除了组合索引之外,也可产生及存储每一组组合索引的轮廓信息(profile information)于存储装置240,如备份文件标识符、版本编号、组标识符、开始偏移量、长度等。
图5中步骤S510的细节可实施如下:分块模块411可执行于多任务(multitasking)环境,用于处理从一个或多个客户机接收的一个或多个来源数据流。为处理一个来源数据流,可建立一个任务并分配一部分数据缓冲区451,用于从来源数据流滤出需要删除重复数据的数据流,将滤出数据流切分出多个数据块,计算及存储其指纹至分配的空间。因此,从一个或多个客户机接收的多个备份文件可以并行的方式处理,用以提升整体效能。参考图6。针对每个来源数据流,分块模块411可依据上次修改信息从来源数据流滤出需要删除重复数据的数据流(步骤S610)。上次修改信息可使用虚拟机软件(VMWare)环境的变更块追踪(Changed-Block-Tracking,CBT)信息或类似信息实施,指出自从上次备份后哪些数据块或区域(data blocks or sectors)已经改变。来源数据流的标题(header)可装载轮廓信息,如备份文件的标识符、长度、创建日期及时间、上次修改日期及时间、传送备份文件的客户机的IP地址、备份文件所属的操作系统、管理备份文件的文件系统、上次修改信息等。滤出的数据流包含但不局限于所有上次修改信息指出的数据块或区域。需注意的是,针对来源数据流的其他(未滤出)部分的每个逻辑地址,备份引擎可从相应于前一版本的来源数据流的该组组合索引中搜索关联于相同逻辑地址的组合索引,并且直接将搜索出的组合索引插入相应于输入的来源数据流的该组组合索引之中。组合索引的数据组织及产生细节将在后续段落讨论。之后,分块模块411可反复从该数据流的开始位置或接着上一数据块之后获得预先定义长度的数据作为新的数据块(步骤S620),直到填满数据缓冲区451的分配空间(步骤S650中“是”的路径)。可依据轮廓信息将预先定义长度设为2K、4K、8K或16K字节,用以适应管理数据流的文件系统中定义的块/区域长度。预先定义长度可较文件系统中定义的块/区域长度具有相同或更高的精度(precision)。例如,预先定义长度可为1/2^r的块/区域长度,其中r为等于或大于0的正整数。块/区域长度可为32K、64K、128K或更长的字节。由于切割后的数据块长度对齐于管理数据流的文件系统中定义的块/区域长度,搜索重复数据块的效率可以提升。于其他实施例,数据流可依据其内容切分分出变动长度的数据块。每获得一个新数据块,计算用于让数据块编入目录的指纹(步骤S630),并且添加数据块、计算后的指纹及其轮廓信息(如来源数据流的逻辑位置等)至数据缓冲区451(步骤S640)。可计算数据块的加密哈希值(如MD5、SHA-1、SHA-2、SHA-256等)作为其指纹(或称为校验和checksum)。数据缓冲区451可分配2M、4M、8M或16M字节的空间,用于存储数据块及其索引。当数据缓冲区451的分配空间填满时(步骤S650中“是”的路径),分块模块411可接着为缓冲的数据块执行索引准备操作(步骤S660)。
图5中步骤S520的细节可实施如下:关联于相同操作系统的不同数据流间的内容较相似于关联于不同操作系统的不同数据流间的内容。例如,执行于一个客户机(如客户机130_1)中的macOS 10的Office 2017的二进制码非常相似于执行于另一个客户机(如客户机130_n)中的macOS 10的Office 2017的二进制码。然而,执行于macOS 10的Office 2017的二进制码相对上不同于执行于Windows 10的Office 2017的二进制码,即使macOS 10及Windows 10都安装于同一个客户机。所以,属于不同操作系统的数据流间的重复块的普及度(popularity)不同。一个重复块的普及度可表示为跨数据流间及数据流中参考至此重复数据块的次数。缓存这些普及块的索引于存储器250中,可提升命中率及搜索时间。参考图7。存储器250分别存储属于不同操作系统的热门采样索引473_0至473_q。通过解读标题的轮廓信息侦测出哪个操作系统关联于数据流(或来源数据流)后,分块模块411选择适当的一个作为热门采样索引473,用于删除重复数据。假设热门采样索引473_0及473_1分别关联于Windows 10及macOS 10。当数据流属于macOS 10时,分块模块411选择使用热门采样索引473_1。需注意的是,热门采样索引473_0至473_q中的每一个分享给属于相同操作系统的所有数据流。于其他实施例,热门采样索引473的选择可实施于去重复模块413,本发明并不因此局限。
参考图4。通用采样索引471是从独特块采样出来的一种索引。通用采样索引471可使用公知算法产生,如渐进采样(progressive sampling)、蓄水池采样(reservoirsampling)等,用以让通用采样索引具备均一性(uniform)。于其他实施例,当通用采样索引471填满时,可从中随机挑选及移除一个索引,用于降低采样率(sampling rate)。参考图8。通用采样索引471的采样率是1/4。通用采样索引471依序包含第1、5、9、13、17、25个独特块的索引,而独特块的序号可参考方块810_0至810_6的上半部。普及和热门采样索引471及473中的每个独特块更搭配存储一个普及度。每个普及度代表于数据去重复程序期间命中此关联独特块的索引的次数,并且显示于方块810_0至810_6的下半部(打点区域)。于其他实施例,每个普及度可表示为加权后的命中次数(weighted hit count),并且较近期的命中会使得普及度增加较多。当一个新独特块的索引需要存储至已经填满的空间时,需要从通用采样索引471移除一个索引。然而,此索引可能非常普遍使用,但很不幸的为符合采样率而需要被移除。为了避免移除这样普遍使用的索引,存储器250可更分配固定空间,用于存储热门采样索引473。备份引擎判断移除索引的普及度是否大于热门采样索引473中的最小普及度。若是,备份引擎可将热门采样索引473中具有最小普及度的索引取代为此移除索引。范例的热门采样索引473至少包含第2、10、39、60独特块,其普及度分别为99、52、31及52。于数据去重复程序期间,普及和热门采样索引471及473的内容可周期性更新至存储装置240,用于避免在意外的断电或系统毁损之后发生数据遗失。
图5中步骤S520的细节可实施如下:虽然来源数据流依据上次修改信息可滤出数据流,但因为该块/区域长度的精度较数据块长度的精度低,所以缓冲块中依然存在许多与前一版本的原始数据流相同的数据块。例如,块/区域长度为64K字节,而数据块的预先定义长度为4K字节。虽然从上次备份后可能只有4K字节的数据被改变,但虚拟机软件的CBT信息还是指出整个64K字节都改变。因此,最多还有60K字节的数据可以去重复,用以节省存储空间。参考图11。分块模块411可反复执行一个循环,用于产生及存储适当的缓存索引475(步骤S1110至S1150),直到数据缓冲区451中的所有数据块都已经处理完(步骤S1150中“是”的路径)。在每个回合,从数据缓冲区451获得第一或下一个数据块后(步骤S1110),分块模块411获得此数据块位于来源数据流的逻辑位置p(步骤S1120)。逻辑位置p可表示<p1,p2>,其中p1及p2分别代表出现于来源数据流的开始及结束偏移量(offset)。分块模块411搜索于前一版本的来源数据流中的相同逻辑位置p曾使用哪些数据桶以进行去重复操作(步骤S1130)及添加存储装置240中搜索出数据桶的索引备份至存储器250,包含PPIs及PLIs(当存在时),作为缓存索引(步骤S1140)。参考图10。假设来源数据流1010包含前一版本的备份文件:针对逻辑位置2048-4095的数据块,分块模块411可添加PPIs c及d或PPIs a至d的备份至缓存索引475。当数据缓冲区451中的所有数据块被处理完(步骤S1150中“是”的路径),分块模块411可发送信号至去重复模块413,用以为缓冲块启动数据去重复操作(步骤S1160)。
图5中步骤S530的细节可实施如下:去重复模块413可使用二阶段搜索,用以辨认数据缓冲区451中的每个数据块是独特或重复。于第一搜索阶段,去重复模块413判断输入数据流中的每个指纹(Fpt)是否命中采样索引471及473以及缓存索引475中的任何一个,将数据缓冲区451中包含命中指纹的每个数据块标示为重复块,并且扩充缓存索引475;于第二搜索阶段,判断每个指纹是否命中扩充后缓存索引475中的任何一个,将数据缓冲区451中包含命中指纹的每个数据块标示为重复块,并且将数据缓冲区451中的其余数据块标示为独特块。参考图12及13。于第一搜索阶段,反复执行一个循环(loop,步骤S1210至S1270),直到数据缓冲区451中的所有数据块已经处理完(步骤S1270中“是”的路径)。在每个回合,为每个从数据缓冲区451获得的第一或下一个数据块的指纹,去重复模块413可先搜索缓存索引475,然后搜索采样索引471及473。
当指纹命中缓存索引475中的任何一个且命中的索引是PLI(步骤S1221中“是”的路径接着步骤S1223中“是”的路径),去重复模块413可添加特定数据桶中的所有索引至缓存索引475,此数据桶包含命中索引的数据块(步骤S1230),标示具有命中指纹的数据块为重复块,将缓存索引475中的命中索引的普及度加上一个预设值(步骤S1240)。参考图9的下半部分。例如,当缓存索引475中的命中索引是PLI{c},去重复模块413可添加数据桶440_j中的PPIs{a}至{d}至缓存索引471(步骤S1230)。
当指纹命中缓存索引475中的任何一个且命中的索引是PPI(步骤S1221中“是”的路径接着步骤S1223中“否”的路径),去重复模块413可标示具有命中指纹的数据块为重复块,并且将缓存索引475中的命中索引的普及度加上一个预设值(步骤S1240)。
当指纹没有命中缓存索引475中的任何一个但是命中通用或热门采样索引471或473(步骤S1221中“否”的路径接着步骤S1225中“是”的路径),去重复模块413可添加命中索引的邻近数据桶中的所有索引至缓存索引475(步骤S1250),标示具有命中指纹的数据块为重复块,将通用或热门采样索引471或473中的命中索引的普及度加上一个预设值(步骤S1240)。参考图9的下半部分。例如,当缓存索引475中的命中索引是PLI{c},去重复模块413可添加数据桶440_j+1中的PPIs{e}至{h}于缓存索引471(步骤S1240)。
当指纹没有命中缓存索引475、通用及热门采样索引471及473中的任何一个,并且上次命中索引的邻近数据桶中的部分或全部索引没有存储于缓存索引475(步骤S1221中“否”的路径接着步骤S1225中“否”的路径并接着步骤S1227中“否”的路径),去重复模块413可添加上次命中索引的邻近数据桶中的缺少索引至缓存索引475(步骤S1260)。参考图9的下半部分。例如,当上次命中索引是通用采样索引471的PPI{d},去重复模块413可添加数据桶440_j+1中的PPIs{e}至{h}于缓存索引471(步骤S1240)。
需注意的是,步骤S1230、S1250及S1260的操作添加适当索引至缓存索引471,有利于后续的潜在重复块搜索。
当数据缓冲区451的所有数据块已经处理完(步骤S1270中“是”的路径),去重复模块413可进入第二搜索阶段(图13)。于第二搜索阶段,反复执行一个循环(步骤S1310至S1350),直到数据缓冲区451中的所有数据块已经处理完(步骤S1350中“是”的路径)。在每个回合,去重复模块413可为从数据缓冲区451获得的第一或下一个数据块,只搜索第一搜索阶段更新后的缓存索引475。因为步骤S1321、S1323、S1330及S1340的操作细节相似于步骤S1221、S1223、S1230及S1240的操作细节,所以省略以求简明。当指纹Fpt没有命中缓存索引475中的任何一个(步骤S1321中“否”的路径),去重复模块413可标示具有指纹Fpt的数据块为独特块(步骤S1360)。
数据缓冲区451中的每个数据块的重复或独特块的标示,可存储于数据缓冲区451。此外,用以指出数据缓冲区451中的每个数据块是否尚未处理、已经进入第一搜索阶段或第二搜索阶段的状态,也可存储于数据缓冲区451。
以下举出数个实例说明二阶段搜索如何运行。参考图14。假设数据桶440_s至440_s+2一开始保存数据块{A}至{I}及其元数据,通用采样索引471只存储索引{c}及{k},热门采样索引473(未显示于图14至图19)没有存储可用的索引,以及数据缓冲区451保存分割出的数据流的数据块{A}至{I}的索引{a}至{i},其同样保存于数据桶440_s至440_s+2。于时间点t1至t2,去重复模块413发现数据缓冲区451的索引{a}及{b}并不存在缓存索引475及通用采样索引471,不做任何处理。参考图15,于时间点t3,去重复模块413发现数据缓冲区451的索引{c}命中通用采样索引471中的一个(步骤S1221中“否”的路径接着步骤S1225中“是”的路径),添加(或预存)数据桶440_s及440_s+1中的索引{a}至{f}于缓存索引475(步骤S1250)。参考图16,于时间点t4至t6,去重复模块413发现数据缓冲区451的索引{d}至{f}命中缓存索引475中的三个PPIs。需注意的是,上述命中受益于时间点t3的预存。参考图17,于时间点t7,去重复模块413发现数据缓冲区451的索引{g}并不存在缓存索引475及通用采样索引471,并且上次命中索引{f}的邻近数据桶中的部分索引没有存储于缓存索引475(步骤S1221中“否”的路径接着步骤S1225中“否”的路径并接着步骤S1227中“否”的路径),添加(或预存)数据桶440_s+2中的索引{g}至{i}至缓存索引475(步骤S1250)。参考图18,于时间点t8至t9,去重复模块413发现数据缓冲区451的索引{h}及{i}命中缓存索引475中的二个PPIs。需注意的是,上述命中受益于时间点t7的预存。结束第一搜索阶段时,数据缓冲区451中的数据块{A}、{B}及{G}无法去重复,并进入第二搜索阶段。参考图19,于时间点t10至t12,去重复模块413发现数据缓冲区451的索引{a}、{b}及{g}命中缓存索引475中的三个PPIs。需注意的是,上述命中受益于第一搜索阶段的预存。
图5中步骤S540的细节可实施如下:缓储模块415可周期性从数据缓冲区451挑选最上面的数据块。当挑选出的数据块已通过第二搜索阶段并且被标记为独特块,缓储模块415迁移数据块、其指纹及其轮廓信息至写入缓冲区453。当挑选出的数据块已通过第二搜索阶段并且被标记为重复块,缓储模块415迁移数据块及其轮廓信息至复制缓冲区455。
图5中步骤S550的细节可实施如下:当写入缓冲区453或复制缓冲区455已经写满,制桶模块417可被启动以存储写入缓冲区453的每个数据块至最后一个数据桶440_m的块部分441_m,或者是新建立的数据桶440_m+1的块部分441_m+1的可用空间,以及存储其指纹至最后一个数据桶440_m的元数据部分443_m,或者是新建立的数据桶440_m+1的元数据部分443_m+1的可用空间。此外,制桶模块417存储每个数据块的物理位置至写入缓冲区453,如桶标识符、数据桶中的开始偏移量等。
图5中步骤S560的细节可实施如下:当制桶模块417处理完写入缓冲区453中的所有数据块,索引更新模块418可更新存储器250中的通用采样索引471及热门采样索引473,用以反应新发现的独特块。随着存储器240中的独特块的数量增加,新独特块的部分索引可能需要添加至通用采样索引471,并且通用采样索引471中的相应索引需要被移除。参考图20。为了确保普遍使用的索引不被移除,例如,新索引810_g添加至通用采样索引471后,索引更新模块418可判断移除索引810_1的普及度Ct是否大于热门采样索引473中的最小普及度。若是,索引更新模块418可将热门采样索引473中具有最小普及度的索引取代为此移除索引810_1。
图5中步骤S570的细节可实施如下:当制桶模块417处理完写入缓冲区453中的所有数据块,复制模块419可为写入缓冲区453及复制缓冲区455中存储的每个数据块以逻辑位置的顺序产生逻辑位置及相应物理位置的组合,并且添加这些组合至存储装置240中相应一组的组合索引。
虽然如上所述的实施例描述整个备份引擎实现于存储服务器110,部分模块也可修改后迁移至客户机130_1至130_n中的任何一个,用于降低存储服务器110的工作量,本发明并不因此局限。参考图4。例如,除了数据桶440_1至440_m及多组的组合索引外,其他组件的全部或局部可修改后实施于客户机。客户机可于存储器350中维护自己的通用采样索引471、热门采样索引473及缓存索引475。存储器可另外分配空间给数据缓冲区451、写入缓冲区453及复制缓冲区455。模块411至419可运行于客户机的处理单元310。运行于处理单元310的制桶模块417可通过通信接口360发出请求(request)给存储服务器110,用以添加独特块,并且通过通信接口360从存储服务器110发出的回复(response)获得独特块的存储物理位置。此外,运行于处理单元310的复制模块419可通过通信接口360发出请求给存储服务器110,用以为一个来源数据流添加逻辑位置及物理位置的组合。复制模块419可于存储装置340中维护客户机为来源数据流产生的多组的组合索引445的副本。需注意的是,如上所述删除重复数据的部署只能优化本地中跨不同版本的来源数据流。不同类型的部署选择是一种整体去重复率及存储服务器110的工作量间的权衡。
于一些实施方案中,对整个来源数据流直接使用删除重复数据程序进行去重复处理。然而,为处理整个来源数据流,会消耗过多的运算资源。
于另一些实施方案中,可依据上次修改信息移除未改变的块或区域,复制前一版本的来源数据流中相应于未改变的块或区域的组合索引,并且直接用这些复制出的组合索引取代未改变的块或区域的原始数据。来源数据流中的其余部分则以原始数据的型式存储。然而,当一块或区域中只有一个字节被改变,虚拟机软件或文件系统还是产生上次修改信息,指出整个块或区域都被改变。
以上所述的实施方案为内部的先前构想,不能被视为现有技术,因为其可能不为公众所知。
为解决上述实施方案产生的技术问题,参考图21所示的方法。备份引擎可依据上次修改信息分割来源数据流成为第一及第二数据流(步骤S2110)。第二数据流可包含上次修改信息指出的从上次备份以后没有更改的部分,如特定块或区域。备份引擎可将上次修改信息中的逻辑位置,如块或区域编号,转换为如上所述关联于来源数据流的逻辑位置。第二数据流可以不是具有连续逻辑位置的数据流,而是包含不连续的数据片段。例如,第二数据流可包含来源数据流中的第0-1023、4096-8191及10240-12400字节,而第一数据流包含其余的部分。步骤S2110可由分块模块411执行。备份引擎可于第一数据流上执行如图5所示的删除重复数据程序以产生及存储独特块至存储装置240中的数据桶440_1至440_m,并据以产生相应于第一数据流中的独特块及重复块的第一组组合索引的第一部分(步骤S2120)。独特块可指相对于已经存储于存储装置240并且于删除重复数据程序中可搜索出的数据块是独特的。当数据块的预先定义长度(如2K、4K或8K字节)短于文件系统管理的数据块或区域长度(如32K、64K或128K字节),删除重复数据程序能够从上次修改信息指出的已经改变的块或区域中滤出没有改变的部分,避免这些没有改变的部分被视为原始数据而存储至数据桶440_1至440_m。备份引擎可从来源数据流的前一版本的第二组组合索引中复制相应于出现在第二数据流的逻辑位置的组合索引,作为第一组组合索引的第二部分(步骤S2130)。延续步骤S2110的例子,可从第二组组合索引445中复制0~1023、4096~8191及10240~12400字节的组合索引。备份引擎可依据来源数据流的逻辑位置合并第一组组合索引的第一及第二部分(步骤S2140),并且为来源数据流存储合并后的第一组组合索引445至存储装置240(步骤S2150)。步骤S2130至S2150可由复制模块419执行。
本发明所述的方法中的全部或部分步骤可以计算器程序实现,例如计算机的操作系统、计算机中特定硬件的驱动程序、或软件程序。此外,也可实现于如上所示的其他类型程序。所属技术领域具有通常知识者可将本发明实施例的方法撰写成计算器程序,为求简明不再加以描述。依据本发明实施例方法实施的计算器程序可存储于适当的计算机可读取数据载具,例如DVD、CD-ROM、USB碟、硬盘,亦可置于可通过网络(例如,互联网,或其他适当载具)存取的网络服务器。
计算机程序可优选的存储于运算设备,如计算机、笔记本计算机(notebookcomputer)、平板计算机、移动电话、数字相机、数字摄影机、电子消费装置等,从而当计算设备运行时,获得计算机程序实现的如上所述方法实施例的技术效果。运算设备可连接外设装置(peripheral devices),如计算机鼠标、键盘、触摸感测屏等,用以记录使用者操作。
虽然图2~4中包含了以上描述的组件,但不排除在不违反发明的精神下,使用更多其他的附加组件,已达成更佳的技术效果。此外,虽然图5~6、11~13及21的流程图采用指定的顺序来执行,但是在不违反发明精神的情况下,所属技术领域的技术人员可以在达到相同效果的前提下,修改这些步骤间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。此外,所属技术领域的技术人员也可以将若干步骤整合为一个步骤,或者是除了这些步骤外,循序或平行地执行更多步骤,本发明也不因此而局限。
虽然本发明使用以上实施例进行说明,但需要注意的是,这些描述并非用以限缩本发明。相反地,此发明涵盖了所属技术领域中的技术人员显而易见的修改与相似设置。所以,权利要求范围须以最宽广的方式解释来包含所有显而易见的修改与相似设置。

Claims (16)

1.一种文件备份装置,其特征在于,包含:
存储装置;以及
处理单元,耦接于该存储装置,用于依据上次修改信息分割来源数据流成为第一数据流及第二数据流;于该第一数据流上执行删除重复数据程序以产生及存储独特块至该存储装置,并为该第一数据流产生第一组组合索引的第一部分,该独特块相对于已经存储于该存储装置并且于删除重复数据程序中可搜索出的所有第一数据块是独特的;从该来源数据流的前一版本的第二组组合索引中复制相应于出现在该第二数据流的逻辑位置的组合索引,作为该第一组组合索引的第二部分;依据该来源数据流的逻辑位置合并该第一组组合索引的该第一部分及该第二部分;以及存储该合并后的第一组组合索引至该存储装置,用于指出该第一数据流及该第二数据流中的多个第二数据块实际存储于该存储装置的何处。
2.如权利要求1所述的文件备份装置,其特征在于,该上次修改信息指出自从上次备份后哪些数据块或区域已经改变,以及每一该第一数据块的长度短于该数据块或区域的长度。
3.如权利要求1或2所述的文件备份装置,其特征在于,该删除重复数据程序包含:
将该第二数据流切分出该第二数据块;
计算该第二数据块的指纹;
于存储器中准备该第一数据块的采样索引及缓存索引;
伴随该采样索引及该缓存索引使用二阶段搜索以辨认每个该第二数据块是独特或重复块;
存储该独特块于该存储装置;以及
为该第一数据流产生该第一组组合索引的该第一部分。
4.如权利要求3所述的文件备份装置,其特征在于,该存储装置存储多个数据桶,每个数据桶存储部分的该第一数据块及该部分的该第一数据块的物理局部保留索引,或该部分的该第一数据块、该部分的该第一数据块的该物理局部保留索引及该部分的该第一数据块的关联历史探测邻块的探测逻辑局部索引;以及该处理单元搜索具有相同于该第一数据流中的逻辑位置的该第一数据块曾使用哪些数据桶以进行去重复操作,及搜集该搜索出的数据桶中的该物理局部保留索引,或该物理局部保留索引及该探测逻辑局部索引,作为该缓存索引。
5.如权利要求3所述的文件备份装置,其特征在于,该热门采样索引包含通用采样索引及热门采样索引,以及该热门采样索引关联相同于该第一数据流的操作系统;以及该处理单元添加第一索引至该通用采样索引及从该通用采样索引移除第二索引;判断该第二索引的普及度是否大于该热门采样索引中的最小普及度;及当该第二索引的普及度大于该热门采样索引中的最小普及度时,将热门采样索引中具有最小普及度的索引取代为该第二索引。
6.如权利要求3所述的文件备份装置,其特征在于,于第一搜索阶段,判断每个该指纹是否命中该采样索引及该缓存索引中的任何一个,将具有该命中指纹的每个第二数据块标示为重复块,并且扩充该缓存索引;以及于第二搜索阶段,判断每个该指纹是否命中该扩充后的缓存索引中的任何一个,将具有该命中指纹的每个第二数据块标示为重复块,并且将其余第二数据块标示为独特块。
7.如权利要求6所述的文件备份装置,其特征在于,该缓存索引包含部分的该第一数据块的物理局部保留索引,及该部分的该第一数据块的关联历史探测邻块的探测逻辑局部索引;以及,当该指纹中的一个命中该探测逻辑局部索引,该处理单元从该存储装置添加包含该命中的探测逻辑局部索引的数据桶中的所有索引于该缓存索引。
8.如权利要求6所述的文件备份装置,其特征在于,当该指纹中的一个命中采样索引,该处理单元从该存储装置添加该命中索引的邻近数据桶中的所有索引于该缓存索引。
9.如权利要求6所述的文件备份装置,其特征在于,当该指纹中的一个没有命中该缓存索引及该采样索引以及上次命中索引的邻近数据桶中的索引没有存储于该缓存索引,该处理单元从该存储装置添加该上次命中索引的邻近数据桶中的该缺少索引于该缓存索引。
10.一种文件备份方法,由客户机或存储装置执行,其特征在于,包含:
依据上次修改信息分割来源数据流成为第一数据流及第二数据流;
于该第一数据流上执行删除重复数据程序以产生及存储独特块至该存储装置,并为该第一数据流产生第一组组合索引的第一部分,该独特块相对于已经存储于该存储装置并且于删除重复数据程序中可搜索出的所有第一数据块是独特的;
从该来源数据流的前一版本的第二组组合索引中复制相应于出现在该第二数据流的逻辑位置的组合索引,作为该第一组组合索引的第二部分;
依据该来源数据流的逻辑位置合并该第一组组合索引的该第一部分及该第二部分;以及
存储该合并后的第一组组合索引至该存储装置,用于指出该第一数据流及该第二数据流中的多个第二数据块实际存储于该存储装置的何处。
11.一种文件备份装置,其特征在于,包含:
分块模块,用于依据上次修改信息分割来源数据流成为第一数据流及第二数据流;
去重复模块,用于于该第一数据流上执行删除重复数据程序以产生及存储独特块至该存储装置,并为该第一数据流产生第一组组合索引的第一部分,该独特块相对于已经存储于存储装置并且于删除重复数据程序中可搜索出的所有第一数据块是独特的;以及
复制模块,用于从该来源数据流的前一版本的第二组组合索引中复制相应于出现在该第二数据流的逻辑位置的组合索引,作为该第一组组合索引的第二部分;依据该来源数据流的逻辑位置合并该第一组组合索引的该第一部分及该第二部分;以及存储该合并后的第一组组合索引至该存储装置,用于指出该第一数据流及该第二数据流中的多个第二数据块实际存储于该存储装置的何处。
12.如权利要求11所述的文件备份装置,其特征在于,该上次修改信息指出自从上次备份后哪些数据块或区域已经改变,以及每一该第一数据块的长度短于该数据块或区域的长度。
13.如权利要求11或12所述的文件备份装置,其特征在于,该删除重复数据程序包含:
将该第二数据流切分出该第二数据块;
计算该第二数据块的指纹;
于存储器中准备该第一数据块的采样索引及缓存索引;
伴随该采样索引及该缓存索引使用二阶段搜索以辨认每个该第二数据块是独特或重复块;
存储该独特块于该存储装置;以及
为该第一数据流产生该第一组组合索引的该第一部分。
14.如权利要求13所述的文件备份装置,其特征在于,该存储装置存储多个数据桶,每个数据桶存储部分的该第一数据块及该部分的该第一数据块的物理局部保留索引,或该部分的该第一数据块、该部分的该第一数据块的该物理局部保留索引及该部分的该第一数据块的关联历史探测邻块的探测逻辑局部索引;该文件备份装置包含:
索引更新模块,用于搜索具有相同于该第一数据流中的逻辑位置的该第一数据块曾使用哪些数据桶以进行去重复操作,及搜集该搜索出的数据桶中的该物理局部保留索引,或该物理局部保留索引及该探测逻辑局部索引,作为该缓存索引。
15.如权利要求13所述的文件备份装置,其特征在于,该热门采样索引包含通用采样索引及热门采样索引,以及该热门采样索引关联相同于该第一数据流的操作系统;以及该文件备份装置包含:
索引更新模块,用于添加第一索引至该通用采样索引及从该通用采样索引移除第二索引;判断该第二索引的普及度是否大于该热门采样索引中的最小普及度;及当该第二索引的普及度大于该热门采样索引中的最小普及度时,将热门采样索引中具有最小普及度的索引取代为该第二索引。
16.如权利要求13所述的文件备份装置,其特征在于,该二阶段搜索包含:
于第一搜索阶段,判断每个该指纹是否命中该采样索引及该缓存索引中的任何一个,将具有该命中指纹的每个第二数据块标示为重复块,并且扩充该缓存索引;以及
于第二搜索阶段,判断每个该指纹是否命中该扩充后的缓存索引中的任何一个,将具有该命中指纹的每个第二数据块标示为重复块,并且将其余第二数据块标示为独特块。
CN201811027581.2A 2017-10-27 2018-09-04 文件备份装置及方法 Pending CN109726042A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762577738P 2017-10-27 2017-10-27
US62/577,738 2017-10-27
US16/031,482 US20190129806A1 (en) 2017-10-27 2018-07-10 Methods and computer program products for a file backup and apparatuses using the same
US16/031,482 2018-07-10

Publications (1)

Publication Number Publication Date
CN109726042A true CN109726042A (zh) 2019-05-07

Family

ID=63452369

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811027581.2A Pending CN109726042A (zh) 2017-10-27 2018-09-04 文件备份装置及方法

Country Status (3)

Country Link
US (1) US20190129806A1 (zh)
EP (1) EP3477480A1 (zh)
CN (1) CN109726042A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111240893A (zh) * 2019-12-26 2020-06-05 曙光信息产业(北京)有限公司 一种基于数据流分片技术的备份和还原管理方法及系统
TWI826093B (zh) * 2022-11-02 2023-12-11 財團法人資訊工業策進會 虛擬機器備援方法及系統

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11294588B1 (en) * 2015-08-24 2022-04-05 Pure Storage, Inc. Placing data within a storage device
US11113270B2 (en) 2019-01-24 2021-09-07 EMC IP Holding Company LLC Storing a non-ordered associative array of pairs using an append-only storage medium
US10706014B1 (en) * 2019-02-19 2020-07-07 Cohesity, Inc. Storage system garbage collection and defragmentation
JP2022542643A (ja) * 2019-07-03 2022-10-06 ペインテッド・ドッグ・インコーポレイテッド パーセプチュアルフレームハッシングを使用したビデオメタデータの識別および検索
US11599546B2 (en) 2020-05-01 2023-03-07 EMC IP Holding Company LLC Stream browser for data streams
US11604759B2 (en) 2020-05-01 2023-03-14 EMC IP Holding Company LLC Retention management for data streams
US11720484B2 (en) * 2020-07-28 2023-08-08 EMC IP Holding Company, LLC System and method for efficient background deduplication during hardening
US11599420B2 (en) 2020-07-30 2023-03-07 EMC IP Holding Company LLC Ordered event stream event retention
US11513871B2 (en) 2020-09-30 2022-11-29 EMC IP Holding Company LLC Employing triggered retention in an ordered event stream storage system
US11755555B2 (en) 2020-10-06 2023-09-12 EMC IP Holding Company LLC Storing an ordered associative array of pairs using an append-only storage medium
US11599293B2 (en) * 2020-10-14 2023-03-07 EMC IP Holding Company LLC Consistent data stream replication and reconstruction in a streaming data storage platform
US11816065B2 (en) 2021-01-11 2023-11-14 EMC IP Holding Company LLC Event level retention management for data streams
US11526297B2 (en) 2021-01-19 2022-12-13 EMC IP Holding Company LLC Framed event access in an ordered event stream storage system
US11740828B2 (en) 2021-04-06 2023-08-29 EMC IP Holding Company LLC Data expiration for stream storages
US11954537B2 (en) 2021-04-22 2024-04-09 EMC IP Holding Company LLC Information-unit based scaling of an ordered event stream
US11513714B2 (en) 2021-04-22 2022-11-29 EMC IP Holding Company LLC Migration of legacy data into an ordered event stream
US11681460B2 (en) 2021-06-03 2023-06-20 EMC IP Holding Company LLC Scaling of an ordered event stream based on a writer group characteristic
US11735282B2 (en) 2021-07-22 2023-08-22 EMC IP Holding Company LLC Test data verification for an ordered event stream storage system
US11971850B2 (en) 2021-10-15 2024-04-30 EMC IP Holding Company LLC Demoted data retention via a tiered ordered event stream data storage system
JP2023125812A (ja) * 2022-02-28 2023-09-07 株式会社日立製作所 コピー制御装置及び方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011060217A (ja) * 2009-09-14 2011-03-24 Toshiba Corp データ蓄積装置及びデータ書込み/読出し方法
US20130238571A1 (en) * 2012-03-06 2013-09-12 International Business Machines Corporation Enhancing data retrieval performance in deduplication systems
US20140040616A1 (en) * 2012-08-03 2014-02-06 Palo Alto Research Center Incorporated Broadcast deduplication for satellite broadband
US9128951B1 (en) * 2012-04-25 2015-09-08 Symantec Corporation Systems and methods for variable-length chunking for deduplication
US9141633B1 (en) * 2012-06-27 2015-09-22 Emc Corporation Special markers to optimize access control list (ACL) data for deduplication
US20160019232A1 (en) * 2014-07-21 2016-01-21 Red Hat, Inc. Distributed deduplication using locality sensitive hashing

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8074049B2 (en) * 2008-08-26 2011-12-06 Nine Technology, Llc Online backup system with global two staged deduplication without using an indexing database
US20110093439A1 (en) * 2009-10-16 2011-04-21 Fanglu Guo De-duplication Storage System with Multiple Indices for Efficient File Storage
US8397080B2 (en) * 2010-07-29 2013-03-12 Industrial Technology Research Institute Scalable segment-based data de-duplication system and method for incremental backups
CN103593256B (zh) * 2012-08-15 2017-05-24 阿里巴巴集团控股有限公司 一种基于多层排重的虚机快照备份方法和系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011060217A (ja) * 2009-09-14 2011-03-24 Toshiba Corp データ蓄積装置及びデータ書込み/読出し方法
US20130238571A1 (en) * 2012-03-06 2013-09-12 International Business Machines Corporation Enhancing data retrieval performance in deduplication systems
US9128951B1 (en) * 2012-04-25 2015-09-08 Symantec Corporation Systems and methods for variable-length chunking for deduplication
US9141633B1 (en) * 2012-06-27 2015-09-22 Emc Corporation Special markers to optimize access control list (ACL) data for deduplication
US20140040616A1 (en) * 2012-08-03 2014-02-06 Palo Alto Research Center Incorporated Broadcast deduplication for satellite broadband
US20160019232A1 (en) * 2014-07-21 2016-01-21 Red Hat, Inc. Distributed deduplication using locality sensitive hashing

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111240893A (zh) * 2019-12-26 2020-06-05 曙光信息产业(北京)有限公司 一种基于数据流分片技术的备份和还原管理方法及系统
CN111240893B (zh) * 2019-12-26 2023-07-18 曙光信息产业(北京)有限公司 一种基于数据流分片技术的备份和还原管理方法及系统
TWI826093B (zh) * 2022-11-02 2023-12-11 財團法人資訊工業策進會 虛擬機器備援方法及系統

Also Published As

Publication number Publication date
US20190129806A1 (en) 2019-05-02
EP3477480A1 (en) 2019-05-01

Similar Documents

Publication Publication Date Title
CN109726042A (zh) 文件备份装置及方法
US9195667B2 (en) System for on-line archiving of content in an object store
JP5878548B2 (ja) 重複排除ストレージ・システム、その内部の合成バックアップを容易にする方法、及び、プログラム
US9311252B2 (en) Hierarchical storage for LSM-based NoSQL stores
US10037340B2 (en) Tiered distributed storage policies
JP5886447B2 (ja) ロケーション非依存のファイル
JP6195098B2 (ja) ファイル読み取り方法、記憶装置、および読み取りシステム
US11645237B2 (en) Replicating data utilizing a virtual file system and cloud storage
JP2009080671A (ja) 計算機システム、管理計算機、及びファイル管理方法
US11372834B2 (en) Optimizing space management of tablespaces in database systems
US20170154067A1 (en) Real time big data master data management
US9535925B2 (en) File link migration
US20230185806A1 (en) Data system configured to transparently cache data of data sources and access the cached data
US11687533B2 (en) Centralized storage for search servers
US10459947B2 (en) Frequency dependent partial index
US10095721B2 (en) Index building in response to data input
Zhang et al. IM-Dedup: An image management system based on deduplication applied in DWSNs
US10055167B2 (en) Correlating storage rings
CN114860380A (zh) 数据同步的方法、装置、电子设备及计算机可读存储介质
US20220027335A1 (en) Active-active system index management
US11940991B2 (en) Data holes in a time series database
ARORA et al. ADVANCEMENTS IN DEDUPLICATION TECHNIQUES FOR EFFICIENT DATA STORAGE
CN114564449A (zh) 数据查询方法、装置、设备以及存储介质
JP2004110130A (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP2010079601A (ja) 多世代ファイル探索システム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20190507

WD01 Invention patent application deemed withdrawn after publication