CN110083487B - 一种基于数据局部性的引用数据块碎片消除方法及系统 - Google Patents

一种基于数据局部性的引用数据块碎片消除方法及系统 Download PDF

Info

Publication number
CN110083487B
CN110083487B CN201910274515.3A CN201910274515A CN110083487B CN 110083487 B CN110083487 B CN 110083487B CN 201910274515 A CN201910274515 A CN 201910274515A CN 110083487 B CN110083487 B CN 110083487B
Authority
CN
China
Prior art keywords
data block
module
reference data
cache
recovery
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910274515.3A
Other languages
English (en)
Other versions
CN110083487A (zh
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.)
Hubei University of Technology
Original Assignee
Hubei University of Technology
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 Hubei University of Technology filed Critical Hubei University of Technology
Priority to CN201910274515.3A priority Critical patent/CN110083487B/zh
Publication of CN110083487A publication Critical patent/CN110083487A/zh
Application granted granted Critical
Publication of CN110083487B publication Critical patent/CN110083487B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于数据局部性的引用数据块碎片消除方法及系统,在备份时模拟一个恢复时的缓存来判断当前数据块的引用数据块是否在模拟的恢复缓存中,若存在则对当前数据块做差量压缩,否则则放弃其差量压缩。本发明还提供了一种基于数据局部性的去引用数据块碎片系统。本发明在备份时模拟一个恢复缓存,对当前数据块查找其引用数据块并判断该引用数据块是否存在模拟的恢复缓存中,如果存在则读取引用数据块进行差量压缩;如果引用数据块不在模拟的恢复缓存内,当前数据块的引用数据块在恢复时会引起额外的读磁盘操作,属于碎片,因此放弃当前数据块的差量压缩来避免引用数据块的碎片化以提高恢复性能。

Description

一种基于数据局部性的引用数据块碎片消除方法及系统
技术领域
本发明属于计算机技术领域,涉及一种引用数据块碎片消除方法及系统,涉及一种基于数据局部性的引用数据块碎片消除方法及系统。
背景技术
数据备份是重要的数据保护方式,广泛应用于各类企业中。备份数据中存在大量冗余数据。据分析,EMC和赛门铁克公司的备份系统中冗余数据分别占90%和88-90%。冗余数据消除技术可以有效地减少冗余数据,降低成本。数据去重和差量压缩是常用的冗余数据消除技术。数据去重技术将备份数据流划分成数据块,并通过指纹技术来检测并消除完全相同的数据块,其一般流程为数据分块、指纹计算和冗余查询。差量压缩是在字典编码的基础上衍生出来的压缩技术。假设有两个相似数据块A和B,B是需要压缩的“目标数据块”,而A称为“引用数据块”。差量压缩会找出B中存在而A中不存在的内容写入到差量块Δ中,这个过程称为差量编码;当需要数据块B时,需要将A和差量块Δ进行解码,还原出数据块B,这个过程称为差量解码。
备份系统中存在着大量的不重复但非常相似的数据,使用差量压缩可以消除掉相似数据块之间的冗余数据,进一步节省存储开销。数据去重和差量压缩针对的冗余对象不同,因此可以联合使用以尽最大努力消除冗余数据。2005年IBM提出了一种多级压缩框架TAPTER,其中就包括了数据去重和差量压缩。2012年EMC公司提出了联合使用数据去重和差量压缩来最大化地减少冗余数据的远程备份系统SIDC。EMC公司给出的数据显示,对数据去重后的数据进一步使用差量压缩技术,可以再将存储开销减少一半。
备份系统中,数据是以容器为单位写入磁盘,容器大小一般为4MB。备份时,容器存储当中的元数据和数据块会被预取到内存中辅助数据去重和差量压缩的进行。恢复时数据的读取也是以容器为基本单位,大致步骤为:首先获取需恢复的文件需要哪些数据块,再将包含所需数据块的容器读入内存,之后从容器中获取所需数据块,最后用数据块重组文件。数据去重会导致多个备份共享数据块。随着备份次数的增加,单个备份中的数据块会分散在系统的不同位置,这个现象称为碎片化。由于磁盘的随机读性能较差,碎片化会导致恢复时系统需要大量的随机读操作来读取所需数据块,从而降低恢复速度。数据恢复时,如果读取某个容器,其中仅包含少量恢复所需要的有效数据块,那么这部分数据块成为碎片块。现有的解决数据去重导致的碎片化的方法是数据重写,即将碎片块再一次和新数据块写入磁盘来维持数据的局部性,使得恢复时读取一个容器可以获得更多有效数据块。如前所述,差量压缩需要引用数据块的参与,而引用数据块也存在碎片化现象,严重降低恢复性能,且该碎片化无法被现有的重写方法解决。
发明内容
本发明的目的在于对联合使用数据去重和差量压缩技术做冗余消除的备份系统中,引用数据块的碎片化导致的恢复性能下降的问题,提出一种消除引用数据块碎片的方法,即在备份时模拟一个恢复时的容器缓存,并仅对引用数据块存在于恢复缓存中的数据块做差量压缩,以达到消除引用数据块碎片并提高恢复性能的目的。
本发明的方法所采用的技术方案是:一种基于数据局部性的引用数据块碎片消除方法,其特征在于,包括以下步骤:
步骤1:初始化一个空的模拟恢复缓存;
步骤2:判断数据块是否重复;
若是,则执行步骤3;
否则,则执行步骤5;
步骤3:判断数据块是否与差量块重复;
若是,则执行步骤4;
否则,则执行步骤9;
步骤4:判断差量块的引用数据块是否存在模拟的恢复缓存中;
若是,则执行步骤9;
否则,则计算当前数据块的特征值,然后执行步骤8;
步骤5:对数据块计算特征值,通过特征值判断其引用数据块是否存在;
若是,则执行步骤6;
否则,则执行步骤8;
步骤6:判断引用数据块是否存在模拟的恢复缓存中;
若是,则执行步骤7;
否则,则执行步骤8;
步骤7:取出引用数据块与当前数据块进行差量编码;
步骤8:将数据写入容器;
步骤9:用当前数据块信息更新模拟的恢复缓存,并对下一个数据块执行步骤2。
作为优选,步骤1中所述模拟的恢复缓存是一个队列,队列中每一个元素只包含一个容器号。
作为优选,步骤9中所述用当前数据块信息更新模拟的恢复缓存,采用的替换策略必须与系统恢复时缓存的替换策略一直。
作为优选,步骤9中采用的是最近最久未使用替换策略。
本发明的装置所采用的技术方案是:一种基于数据局部性的引用数据块碎片消除系统,其特征在于:包括以下模块;
第一模块,用于初始化一个空的模拟恢复缓存;
第二模块,用于判断数据块是否重复;若是则转入第三模块,否则转入第五模块;
第三模块,用于判断数据块是否与差量块重复;若是则转入第四模块,否则转入第九模块:
第四模块,用于判断差量块的引用数据块是否存在模拟的恢复缓存中;若是则转入第九模块,否则则计算当前数据块的特征值,并转入第八模块;
第五模块,用于对数据块计算特征值,通过特征值判断其引用数据块是否存在,若存在则转入第六模块,否则转入第八模块;
第六模块,用于判断引用数据块是否存在模拟的恢复缓存中,若是则转入第七模块,否则转入第八模块;
第七模块,用于取出引用数据块与当前数据块进行差量编码;
第八模块,用于将数据写入容器;
第九模块,用于用当前数据块信息更新模拟缓存,并对下一个数据块执行第二模块。
本发明与现有技术相比,由于在原有的基于数据去重和差量压缩的备份系统中增加了模拟恢复缓存来对引用数据块碎片进行判断,取得以下有益效果:
1、对非重复的数据块,只对引用数据块存在于模拟恢复缓存中的数据块做差量压缩,通过避免引用数据块产生的额外读磁盘开销来提高恢复性能;
2、对与系统中的差量块重复的数据块,检测该差量块的引用数据块是否存在于模拟恢复缓存中,当引用数据块不在模拟恢复缓存中时,重写该数据块来避免引用数据块产生的额外读磁盘开销以提高恢复性能。
附图说明
图1为本发明实施例中能避免引用数据块碎片的原理图;
图2为本发明实施例中方法流程图.
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
基于数据去重技术和差量压缩的备份系统中,差量压缩所需的引用数据块存在碎片化问题,在恢复时引用数据块碎片导致大量额外读磁盘开销,严重降低恢复性能。数据恢复时,系统会将所需的数据块、差量块和引用数据块所在的容器读取到恢复缓存中,再从缓存中读取所需数据来重组需恢复的文件。由于局部性的存在,当系统将所需的数据块、差量块所在容器读取到恢复缓存中时,所需的引用数据块很可能已经存在于恢复缓存中。基于这个原理,本发明提出基于局部性的引用数据块碎片消除方法,该方法在备份时用已处理的数据块在写入时得到的容器号来模拟恢复时的缓存,如果数据块的引用数据块存在于模拟的恢复缓存中,则表示该引用数据块在恢复时不会产生额外的读磁盘操作;否则,则可能会产生额外的读磁盘操作。本发明提出的方法通过模拟恢复缓存来避免恢复时引用数据块导致的额外读磁盘操作并提高恢复性能。
图1给出了一个本发明避免引用数据块碎片的说明例。图中有三个备份流,每个备份流含有十五个数据块。每个数据块用一个大写字母标识。相同的数据块的字母相同,相似的数据块用相同的字母加撇号来标识,例如C和C'相似;图中的d(C')表示C'和C做差量编码所得的差量块。第一次备份后,新数据块存放在容器Ⅰ、Ⅱ和Ⅲ中。备份2包含六个重复数据块、五个相似数据块和四个新数据块。五个相似数据块做了差量压缩得到差量块d(C')、d(D')、d(G')、d(H')和d(L')。备份2中的五个差量块和四个新数据块存在了容器Ⅳ中。备份3包含八个重复块、四个相似块和三个新数据块。其中八个重复数据块中有三个是和备份2中被差量压缩的数据块重复,即C'、D'和G'。三次备份后,容器的分布如图所示,其中阴影部分为备份3恢复时所需的数据块或差量块。当要恢复备份3时,为了恢复数据块G'和K',需要读取它们的引用数据块G和K。因为引用数据块G和K所在的容器中包含的有效数据块不多(G所在的容器中还包含另一个有效数据块F,而K所在的容器中的有效数据只有K自己),所以这两个引用数据块被称为引用数据块碎片。
在恢复备份3时,容器Ⅰ会被读到恢复缓存中来提供数据块A、B和E。由于局部性的存在,数据块C和D也会被读到恢复缓存中,于是C'和D'的引用块已经在内存中。对于类似C和D的局部性强的引用数据块对应的数据块做差量压缩在恢复时无需额外的读操作,因此一定不是引用数据块碎片,这说明恢复缓存可以用来判断局部性强的引用数据块。由于备份数据集的局部性是普遍存在的,大量的引用数据块都不是碎片,因此因为是引用数据块碎片而跳过的差量压缩并不对太多。。
请见图2,本发明提供的一种基于数据局部性的引用数据块碎片消除方法,包括以下步骤:
步骤1:初始化一个空的模拟恢复缓存;
其中,模拟的恢复缓存是一个队列,队列中每一个元素只包含一个容器号。
步骤2:判断数据块是否重复;
若是,则执行步骤3;
否则,则执行步骤5;
步骤3:判断数据块是否与差量块(进行了差量压缩的数据块)重复;
若是,则执行步骤4;
否则,则执行步骤9;
步骤4:判断差量块的引用数据块是否存在模拟的恢复缓存中;
若是,则执行步骤9;
否则,则计算当前数据块的特征值,然后执行步骤8;
本实施例中,采用超级指纹法计算特征值。假设需要对数据块计算N个特征值,该方法用滚动哈希对数据块进行处理得到一系列哈希值,再对每个哈希值做N次线性变换得到N个相互独立的哈希值(即N维数值),最后在每一维中取出最大的数值作为该数据块的一个特征值,N维数值则可获得N个特征值;
步骤5:对数据块计算特征值,通过特征值判断其引用数据块是否存在;
若是,则执行步骤6;
否则,则执行步骤8;
步骤6:判断引用数据块是否存在模拟的恢复缓存中;
若是,则执行步骤7;
否则,则执行步骤8;
步骤7:取出引用数据块与当前数据块进行差量编码;
步骤8:将数据写入容器;
步骤9:用当前数据块信息更新模拟的恢复缓存,并对下一个数据块执行步骤2。
其中,用当前数据块信息更新模拟的恢复缓存,采用的替换策略必须与系统恢复时缓存的替换策略一直。本实施例采用最近最久未使用替换策略。
本发明还提供了一种基于数据局部性的引用数据块碎片消除系统,包括以下模块;
第一模块,用于初始化一个空的模拟恢复缓存;
第二模块,用于判断数据块是否重复;若是则转入第三模块,否则转入第五模块;
第三模块,用于判断数据块是否与差量块重复;若是则转入第四模块,否则转入第九模块:
第四模块,用于判断差量块的引用数据块是否存在模拟的恢复缓存中;若是则转入第九模块,否则则计算当前数据块的特征值,并转入第八模块;
第五模块,用于对数据块计算特征值,通过特征值判断其引用数据块是否存在,若存在则转入第六模块,否则转入第八模块;
第六模块,用于判断引用数据块是否存在模拟的恢复缓存中,若是则转入第七模块,否则转入第八模块;
第七模块,用于取出引用数据块与当前数据块进行差量编码;
第八模块,用于将数据写入容器;
第九模块,用于用当前数据块信息更新模拟缓存,并对下一个数据块执行第二模块。
应当理解的是,本说明书未详细阐述的部分均属于现有技术。
应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。

Claims (5)

1.一种基于数据局部性的引用数据块碎片消除方法,其特征在于,包括以下步骤:
步骤1:初始化一个空的模拟恢复缓存;
步骤2:判断数据块是否重复;
若是,则执行步骤3;
否则,则执行步骤5;
步骤3:判断数据块是否与差量块重复;
若是,则执行步骤4;
否则,则执行步骤9;
步骤4:判断差量块的引用数据块是否存在模拟的恢复缓存中;
若是,则执行步骤9;
否则,则计算当前数据块的特征值,然后执行步骤8;
步骤5:对数据块计算特征值,通过特征值判断其引用数据块是否存在;
若是,则执行步骤6;
否则,则执行步骤8;
步骤6:判断引用数据块是否存在模拟的恢复缓存中;
若是,则执行步骤7;
否则,则执行步骤8;
步骤7:取出引用数据块与当前数据块进行差量编码;
步骤8:将数据写入容器;
步骤9:用当前数据块信息更新模拟的恢复缓存,并对下一个数据块执行步骤2。
2.根据权利要求1所述的基于数据局部性的引用数据块碎片消除方法,其特征在于:步骤1中所述模拟的恢复缓存是一个队列,队列中每一个元素只包含一个容器号。
3.根据权利要求1所述的基于数据局部性的引用数据块碎片消除方法,其特征在于:步骤9中所述用当前数据块信息更新模拟的恢复缓存,采用的替换策略与系统恢复时缓存的替换策略一直。
4.根据权利要求1所述的基于数据局部性的引用数据块碎片消除方法,其特征在于:步骤9中采用的是最近最久未使用替换策略。
5.一种基于数据局部性的引用数据块碎片消除系统,其特征在于:包括以下模块;
第一模块,用于初始化一个空的模拟恢复缓存;
第二模块,用于判断数据块是否重复;若是则转入第三模块,否则转入第五模块;
第三模块,用于判断数据块是否与差量块重复;若是则转入第四模块,否则转入第九模块:
第四模块,用于判断差量块的引用数据块是否存在模拟的恢复缓存中;若是则转入第九模块,否则则计算当前数据块的特征值,并转入第八模块;
第五模块,用于对数据块计算特征值,通过特征值判断其引用数据块是否存在,若存在则转入第六模块,否则转入第八模块;
第六模块,用于判断引用数据块是否存在模拟的恢复缓存中,若是则转入第七模块,否则转入第八模块;
第七模块,用于取出引用数据块与当前数据块进行差量编码;
第八模块,用于将数据写入容器;
第九模块,用于用当前数据块信息更新模拟缓存,并对下一个数据块执行第二模块。
CN201910274515.3A 2019-04-08 2019-04-08 一种基于数据局部性的引用数据块碎片消除方法及系统 Active CN110083487B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910274515.3A CN110083487B (zh) 2019-04-08 2019-04-08 一种基于数据局部性的引用数据块碎片消除方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910274515.3A CN110083487B (zh) 2019-04-08 2019-04-08 一种基于数据局部性的引用数据块碎片消除方法及系统

Publications (2)

Publication Number Publication Date
CN110083487A CN110083487A (zh) 2019-08-02
CN110083487B true CN110083487B (zh) 2022-11-18

Family

ID=67414408

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910274515.3A Active CN110083487B (zh) 2019-04-08 2019-04-08 一种基于数据局部性的引用数据块碎片消除方法及系统

Country Status (1)

Country Link
CN (1) CN110083487B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110941514B (zh) * 2019-11-25 2022-05-20 湖北工业大学 一种数据备份方法、恢复方法、计算机设备和存储介质
CN110888918A (zh) * 2019-11-25 2020-03-17 湖北工业大学 相似数据检测方法及装置、计算机设备和存储介质
CN111796969B (zh) * 2020-05-29 2024-06-25 湖北工业大学 一种数据差量压缩检测方法、计算机设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004104831A1 (fr) * 2003-05-06 2004-12-02 Lenovo (Beijing) Limited Procede pour regenerer le systeme d'exploitation d'un ordinateur
US7567188B1 (en) * 2008-04-10 2009-07-28 International Business Machines Corporation Policy based tiered data deduplication strategy
CN103473150A (zh) * 2013-08-28 2013-12-25 华中科技大学 一种用于数据去重系统中的碎片重写方法
CN109271353A (zh) * 2018-09-06 2019-01-25 华中科技大学 一种在数据去重过程中选择性重写自引用块方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004104831A1 (fr) * 2003-05-06 2004-12-02 Lenovo (Beijing) Limited Procede pour regenerer le systeme d'exploitation d'un ordinateur
US7567188B1 (en) * 2008-04-10 2009-07-28 International Business Machines Corporation Policy based tiered data deduplication strategy
CN103473150A (zh) * 2013-08-28 2013-12-25 华中科技大学 一种用于数据去重系统中的碎片重写方法
CN109271353A (zh) * 2018-09-06 2019-01-25 华中科技大学 一种在数据去重过程中选择性重写自引用块方法及系统

Also Published As

Publication number Publication date
CN110083487A (zh) 2019-08-02

Similar Documents

Publication Publication Date Title
CN110083487B (zh) 一种基于数据局部性的引用数据块碎片消除方法及系统
US10318181B2 (en) System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory
US8442942B2 (en) Combining hash-based duplication with sub-block differencing to deduplicate data
US7987161B2 (en) System and method for data compression using compression hardware
US8782005B2 (en) Pruning previously-allocated free blocks from a synthetic backup
CN103761195B (zh) 一种利用分布式数据编码的存储方法
US20170357457A1 (en) Avoiding compression of high-entropy data during creation of a backup of a source storage
US11487706B2 (en) System and method for lazy snapshots for storage cluster with delta log based architecture
CN111831223B (zh) 提高数据去重系统可扩展性的容错编码方法、装置及系统
CN110427156B (zh) 一种基于分片的mbr的并行读方法
CN107135662B (zh) 一种差异数据备份方法、存储系统和差异数据备份装置
CN104050103A (zh) 一种用于数据恢复的缓存替换方法与系统
CN112749039A (zh) 用于数据写入和数据恢复的方法、设备和程序产品
CN104899117A (zh) 面向非易失性内存的内存数据库并行日志方法
CN112199054A (zh) 一种文件存储的方法及系统
CN104408126A (zh) 一种数据库的持久化写入方法、装置和系统
CN111831480B (zh) 一种基于去重系统的分层编码方法、装置及去重系统
CN110321079B (zh) 一种基于混合页面的磁盘缓存去重方法
CN108984338B (zh) 一种面向去重备份系统数据恢复的离线最优缓存替换装置及方法
CN110600070A (zh) 一种提升固态硬盘阵列系统修复性能的编码和修复方法
CN109408288B (zh) 一种打包文件备份过程中数据去重碎片消除方法
CN115145763A (zh) 数据处理方法以及相关设备
CN107122312A (zh) 一种固态盘地址映射方法
CN111858490A (zh) 一种基于dbDedup的分布式数据库存储通信压缩方法
KR101809679B1 (ko) 데이터베이스의 일관성 유지를 위한 컴퓨팅 장치 및 방법

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