CN109271353A - 一种在数据去重过程中选择性重写自引用块方法及系统 - Google Patents
一种在数据去重过程中选择性重写自引用块方法及系统 Download PDFInfo
- Publication number
- CN109271353A CN109271353A CN201811039023.8A CN201811039023A CN109271353A CN 109271353 A CN109271353 A CN 109271353A CN 201811039023 A CN201811039023 A CN 201811039023A CN 109271353 A CN109271353 A CN 109271353A
- Authority
- CN
- China
- Prior art keywords
- block
- container
- self reference
- reference block
- repeatable
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种在数据去重过程中选择性重写自引用块的方法及系统,包括:获取数据去重过程中的重复块和上次备份的容器总数;判断重复块所在容器ID是否超过上次备份的容器总数,若是,则重复块是自引用块,否则,重复块不是自引用块;创建用于模拟恢复缓存的缓冲区,查找自引用块所在容器ID是否存在于所述缓冲区中,若是,自引用块不是内部碎片块,否则,自引用块是内部碎片块;根据内部碎片块所在容器的利用率是否低于预设阈值,若是,所述内部碎片块将被重写到容器,否则,所述自引用块无需被重写到容器。本发明通过模拟恢复缓存来识别内部碎片块,选择性重写部分内部碎片块来限制重写数量,使得容器利用率增加,恢复性能得到显著提高。
Description
技术领域
本发明属于计算机存储技术领域,更具体地,涉及一种在数据去重过程中选择性重写自引用块方法及系统。
背景技术
去重技术是在现代备份系统中消除冗余数据节省空间最为有效的方法。去重技术首先将文件分成等长或者变长的数据块,然后使用哈希方法来计算每个数据块的指纹,通过比对指纹值来确定数据块是否重复。它是一种无损压缩技术,可以有效的节省系统的存储空间。
由于一个备份流中的数据块分散在不同的容器中,因此引入了两种类型的碎片:一种是版本间碎片,它是由相似的数据定期备份导致的;另一种是由同一个数据块在单个备份流中多次出现而导致的内部碎片块(通常称为自引用块)。恢复带有碎片的备份流需要从磁盘中读取多个容器,由于磁盘的随机访问性能差,碎片会导致系统的恢复性能下降。
为解决上述碎片问题,专利CN104050057A提出一种历史感知重写方法(HAR),其发明构思为:识别并收集上一次备份的在稀疏容器中的重复块,然后在下一次备份中重写它们。所述方法首先对数据流中的文件进行分块、求指纹,查询索引找到重复数据块;然后在上次备份记录的稀疏容器集合中查找重复数据块的容器ID,判断哪些重复数据块属于稀疏容器。对于属于稀疏容器的重复数据块,将其和唯一块顺序地重写到新的容器中。但所述方法存在缺陷:因为识别出的内部碎片被重写了下一次备份,而不是立即处理,因此HAR重写方法无法消除内部碎片。
发明内容
针对现有技术的缺陷,本发明的目的在于解决现有技术HAR重写方法无法消除由自引用块导致内部碎片,从而降低了恢复性能的技术问题。
为实现上述目的,第一方面,本发明实施例提供了一种在数据去重过程中选择性重写自引用块的方法,所述方法包括以下步骤:
S1.获取数据去重过程中的重复块和上次备份的容器总数;
S2.判断重复块所在容器的ID是否超过上次备份的容器总数,若是,则所述重复块是自引用块,否则,所述重复块不是自引用块;
S3.创建用于模拟恢复缓存的缓冲区,查找自引用块所在容器ID是否存在于所述缓冲区中,若是,所述自引用块不是内部碎片块,否则,所述自引用块是内部碎片块;
S4.根据内部碎片块所在容器的利用率是否低于预设阈值,若是,所述内部碎片块将被重写到容器,否则,所述自引用块无需被重写到容器。
具体地,所述获取数据去重过程中的重复块具体如下:
将一个备份流分成多个可变大小的数据块,并计算每个数据块的指纹,通过对数据块指纹的比对来标记数据块是否为重复块,重复块被标记为0,唯一块被标记为1。
具体地,步骤S3具体如下:
创建缓冲区为缓存列表,查找自引用块所在容器ID是否存在于所述缓存列表中,如果存在,所述自引用块将不会对恢复性能产生影响,不是内部碎片,否则,所述自引用块为内部碎片块,将它的容器ID插入缓存列表尾部,同时删除缓存列表的第一个元素。
具体地,所述内部碎片块所在容器的利用率等于所述内部碎片块所在的容器存储的当前备份流中的数据块与所述内部碎片块所在的容器的总大小的比值。
可选地,在步骤S1之前,还包括步骤S0.基于HAR重写方法去除相似的数据定期备份导致的版本间碎片块。
为实现上述目的,第二方面,本发明实施例提供了一种在数据去重过程中选择性重写自引用块的系统,所述系统包括:
重复块识别模块,用于获取数据去重过程中的重复块和上次备份的容器总数;
自引用块识别模块,用于判断重复块识别模块识别出的重复块所在容器的ID是否超过上次备份的容器总数,若是,则所述重复块是自引用块,否则,所述重复块不是自引用块;
内部碎片块识别模块,用于创建用于模拟恢复缓存的缓冲区,查找自引用块识别模块识别出的自引用块所在容器ID是否存在于所述缓冲区中,若是,所述自引用块不是内部碎片块,否则,所述自引用块是内部碎片块;
选择性重写自引用块,用于根据内部碎片块所在容器的利用率是否低于预设阈值,若是,所述内部碎片块将被重写到容器,否则,所述自引用块无需被重写到容器。
具体地,所述重复块识别模块将一个备份流分成多个可变大小的数据块,并计算每个数据块的指纹,通过对数据块指纹的比对来标记数据块是否为重复块,重复块被标记为0,唯一块被标记为1。
具体地,所述内部碎片块识别模块创建缓冲区为缓存列表,查找自引用块所在容器ID是否存在于所述缓存列表中,如果存在,所述自引用块将不会对恢复性能产生影响,不是内部碎片,否则,所述自引用块为内部碎片块,将它的容器ID插入缓存列表尾部,同时删除缓存列表的第一个元素。
具体地,所述内部碎片块所在容器的利用率等于所述内部碎片块所在的容器存储的当前备份流中的数据块与所述内部碎片块所在的容器的总大小的比值。
可选地,所述系统还包括重写过滤模块,用于基于HAR重写方法去除相似的数据定期备份导致的版本间碎片块。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
(1)本发明通过选择性重写部分内部碎片块来限制自引用块的重写数量,消除由自引用块导致的大量内部碎片,每个容器的利用率增加,恢复性能得到显著提高,同时也获得了可接受的存储开销和牺牲较少的去重率;
(2)本发明通过HAR重写方法去除相似的数据定期备份导致的版本间碎片块,通过选择性地重写自引用块消除由自引用块导致内部碎片,同时考虑了版本间碎片块和版本内碎片块,重复数据删除更全面。
附图说明
图1为本发明实施例提供的一种在数据去重过程中选择性重写自引用块的方法流程图;
图2为本发明实施例提供的一种在数据去重过程中选择性重写自引用块的系统结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
图1为本发明实施例提供的一种在数据去重过程中选择性重写自引用块的方法流程图。如图1所示,所述方法包括以下步骤:
S1.获取数据去重过程中的重复块和上次备份的容器总数;
S2.判断重复块所在容器的ID是否超过上次备份的容器总数,若是,则所述重复块是自引用块,否则,所述重复块不是自引用块;
S3.创建用于模拟恢复缓存的缓冲区,查找自引用块所在容器ID是否存在于所述缓冲区中,若是,所述自引用块不是内部碎片块,否则,所述自引用块是内部碎片块;
S4.根据内部碎片块所在容器的利用率是否低于预设阈值,若是,所述内部碎片块将被重写到容器,否则,所述自引用块无需被重写到容器。
步骤S1.获取数据去重过程中的重复块和上次备份的容器总数,具体如下:
图2为本发明实施例提供的一种在数据去重过程中选择性重写自引用块的系统结构示意图。如图2所示,将一个备份流分成多个可变大小的数据块(例如8KB),并计算每个数据块的指纹,通过在存储系统中对数据块指纹的比对来标记数据块是否为重复块,即重复块(指纹相同)被标记为0,唯一块被标记为1。根据数据块的标记,我们将进一步判断标识为0的重复块是否是自引用块。获取上次备份的容器数目container_num,从而实现冗余数据识别。
SRSC(Selectively Rewrite Self-referenced Chunks,选择性重写自引用块)包括两个模块:重写过滤模块和选择性重写模块。其中,重写过滤模块主要关注于解决相似的数据定期备份导致的版本间碎片块数据流之间产生碎片块,通过HAR重写方法实现;选择性重写模块主要解决,在一个备份流中,由自引用块导致的内部碎片块。
自引用块是否会对恢复缓存存在负面影响,造成容器的频繁替换取决于两个自引用块之间的距离,所以选择性重写模块目的是识别内部碎片块,同时有选择地重写被识别的内部碎片块。选择性重写模块包括两个数据结构:内部碎片识别和选择性重写自引用块。
步骤S2.判断重复块所在容器的ID是否超过上次备份的容器总数,若是,则所述重复块是自引用块,否则,所述重复块不是自引用块,具体如下:
自引用块的判断标准是重复块的容器ID是否大于container_num,如果是则所述数据块是自引用块,转入步骤S3。
步骤S3.创建用于模拟恢复缓存的缓冲区,查找自引用块所在容器ID是否存在于所述缓冲区中,若是,所述自引用块不是内部碎片块,否则,所述自引用块是内部碎片块,具体如下:
创建用于模拟恢复缓存的缓冲区,所述缓冲区优选缓存列表GList_cache。将步骤S2中判断出的自引用块的容器ID在GList_cache中查找,如果存在,则所述自引用块将不会对恢复性能产生影响,不是内部碎片,否则,将所述自引用块为内部碎片块,将它的容器ID插入到GList_cache尾部,同时删除缓存列表的第一个元素。
碎片识别结构首先创建一个固定大小的缓冲区来模拟恢复缓存,缓冲区的大小固定,根据内存开销和恢复性能有关,本发明优选256MB。在缓冲区中,选择性地重写模式识别自引用块,是通过检查所有当前备份中的重复块的容器ID是否大于上一次备份中的最大容器总数。如果是,所述块为自引用块,然后碎片识别将在创建的缓冲区中查找所述自引用块的容器ID。如果找到相同的容器代表这个自引用块将不会对恢复性能产生影响。否则,所述自引用块被认为是碎片化并需要重写到容器中。然而,为了减少存储开销和牺牲较少的去重率,选择性地重写自引用块结构目的是根据容器的利用率来限制自引用块的重写数量。因此,对于每个被确定是自引用块的数据块,它们的容器ID将被发送到选择地重写自引用块结构中去判断是否需要自引用块是否需要重写到容器中。
在缓冲区中,我们确定自引用块是否是碎片块,然后重写这些碎片块。但是,至少有20%的数据块在备份流中是自引用块。重写所有由自引用块引起的碎片块会减慢备份时间并占用很多存储空间,因此,本发明选择性地重写自引用块。
步骤S4.根据内部碎片块所在容器的利用率是否低于预设阈值,若是,所述内部碎片块将被重写到容器,否则,所述自引用块无需被重写到容器,具体如下:
内部碎片的容器使用率=所述内部碎片块所在的容器存储的当前备份流中的数据块/所述内部碎片块所在的容器的总大小。
判断步骤S3中的识别的内部碎片的容器使用率container_utilization是否小于预设的阈值pre_utilization,优选设置容器的利用率阈值pre_utilization=50%。如果是,则所述内部碎片需要被重写到新的容器中,为了减少存储开销和牺牲较少的去重率。
将在选择性重写自引用块环节中的需要被重写的数据块写入到容器中进行管理,然后将写满后的容器存储到磁盘中。此时内部碎片块被消除,每个容器的利用率增加,恢复性能得到显著提高。
可选地,在步骤S1之前,还包括步骤S0.基于HAR重写方法去除相似的数据定期备份导致的版本间碎片块。具体如下:
HAR更好地利用碎片的遗传性在消除版本间碎片块方面非常有效。源于HAR重写方法,包括两个数据结构:条件容器IDs和历史信息收集。在一个备份中,上一次备份中的碎片容器ID首先被加载到数据结构条件容器IDs中。然后重写过滤模块检查是否重复块的容器ID在条件容器IDs中存在。如果存在,这些重复块将要被重写到容器中。在完成一个备份之前,历史信息收集数据结构负责收集当前备份的碎片块信息,比如碎片块所在的容器IDs,用来重写在下一次备份中。
以上,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种在数据去重过程中选择性重写自引用块的方法,其特征在于,所述方法包括以下步骤:
S1.获取数据去重过程中的重复块和上次备份的容器总数;
S2.判断重复块所在容器的ID是否超过上次备份的容器总数,若是,则所述重复块是自引用块,否则,所述重复块不是自引用块;
S3.创建用于模拟恢复缓存的缓冲区,查找自引用块所在容器ID是否存在于所述缓冲区中,若是,所述自引用块不是内部碎片块,否则,所述自引用块是内部碎片块;
S4.根据内部碎片块所在容器的利用率是否低于预设阈值,若是,所述内部碎片块将被重写到容器,否则,所述自引用块无需被重写到容器。
2.如权利要求1所述的在数据去重过程中选择性重写自引用块的方法,其特征在于,所述获取数据去重过程中的重复块具体如下:
将一个备份流分成多个可变大小的数据块,并计算每个数据块的指纹,通过对数据块指纹的比对来标记数据块是否为重复块,重复块被标记为0,唯一块被标记为1。
3.如权利要求1所述的在数据去重过程中选择性重写自引用块的方法,其特征在于,步骤S3具体如下:
创建缓冲区为缓存列表,查找自引用块所在容器ID是否存在于所述缓存列表中,如果存在,所述自引用块将不会对恢复性能产生影响,不是内部碎片,否则,所述自引用块为内部碎片块,将它的容器ID插入缓存列表尾部,同时删除缓存列表的第一个元素。
4.如权利要求1所述的在数据去重过程中选择性重写自引用块的方法,其特征在于,所述内部碎片块所在容器的利用率等于所述内部碎片块所在的容器存储的当前备份流中的数据块与所述内部碎片块所在的容器的总大小的比值。
5.如权利要求1所述的在数据去重过程中选择性重写自引用块的方法,其特征在于,在步骤S1之前,还包括步骤S0.基于HAR重写方法去除相似的数据定期备份导致的版本间碎片块。
6.一种在数据去重过程中选择性重写自引用块的系统,其特征在于,所述系统包括:
重复块识别模块,用于获取数据去重过程中的重复块和上次备份的容器总数;
自引用块识别模块,用于判断重复块识别模块识别出的重复块所在容器的ID是否超过上次备份的容器总数,若是,则所述重复块是自引用块,否则,所述重复块不是自引用块;
内部碎片块识别模块,用于创建用于模拟恢复缓存的缓冲区,查找自引用块识别模块识别出的自引用块所在容器ID是否存在于所述缓冲区中,若是,所述自引用块不是内部碎片块,否则,所述自引用块是内部碎片块;
选择性重写自引用块,用于根据内部碎片块所在容器的利用率是否低于预设阈值,若是,所述内部碎片块将被重写到容器,否则,所述自引用块无需被重写到容器。
7.如权利要求6所述的在数据去重过程中选择性重写自引用块的系统,其特征在于,所述重复块识别模块将一个备份流分成多个可变大小的数据块,并计算每个数据块的指纹,通过对数据块指纹的比对来标记数据块是否为重复块,重复块被标记为0,唯一块被标记为1。
8.如权利要求6所述的在数据去重过程中选择性重写自引用块的系统,其特征在于,所述内部碎片块识别模块创建缓冲区为缓存列表,查找自引用块所在容器ID是否存在于所述缓存列表中,如果存在,所述自引用块将不会对恢复性能产生影响,不是内部碎片,否则,所述自引用块为内部碎片块,将它的容器ID插入缓存列表尾部,同时删除缓存列表的第一个元素。
9.如权利要求6所述的在数据去重过程中选择性重写自引用块的系统,其特征在于,所述内部碎片块所在容器的利用率等于所述内部碎片块所在的容器存储的当前备份流中的数据块与所述内部碎片块所在的容器的总大小的比值。
10.如权利要求6所述的在数据去重过程中选择性重写自引用块的系统,其特征在于,所述系统还包括重写过滤模块,用于基于HAR重写方法去除相似的数据定期备份导致的版本间碎片块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811039023.8A CN109271353B (zh) | 2018-09-06 | 2018-09-06 | 一种在数据去重过程中选择性重写自引用块方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811039023.8A CN109271353B (zh) | 2018-09-06 | 2018-09-06 | 一种在数据去重过程中选择性重写自引用块方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109271353A true CN109271353A (zh) | 2019-01-25 |
CN109271353B CN109271353B (zh) | 2020-11-24 |
Family
ID=65188509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811039023.8A Active CN109271353B (zh) | 2018-09-06 | 2018-09-06 | 一种在数据去重过程中选择性重写自引用块方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109271353B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110083487A (zh) * | 2019-04-08 | 2019-08-02 | 湖北工业大学 | 一种基于数据局部性的引用数据块碎片消除方法及系统 |
WO2023050856A1 (zh) * | 2021-09-28 | 2023-04-06 | 华为技术有限公司 | 数据处理方法及存储系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473150A (zh) * | 2013-08-28 | 2013-12-25 | 华中科技大学 | 一种用于数据去重系统中的碎片重写方法 |
CN104050057A (zh) * | 2014-06-06 | 2014-09-17 | 华中科技大学 | 一种历史感知的数据去重碎片消除方法与系统 |
CN106599111A (zh) * | 2016-11-30 | 2017-04-26 | 上海斐讯数据通信技术有限公司 | 一种数据管理方法及存储系统 |
US20170154127A1 (en) * | 2015-11-30 | 2017-06-01 | Maoz Madmony | Efficient packing of objects |
CN107015888A (zh) * | 2017-03-30 | 2017-08-04 | 华中科技大学 | 一种基于子模模型的数据备份方法和系统 |
-
2018
- 2018-09-06 CN CN201811039023.8A patent/CN109271353B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473150A (zh) * | 2013-08-28 | 2013-12-25 | 华中科技大学 | 一种用于数据去重系统中的碎片重写方法 |
CN104050057A (zh) * | 2014-06-06 | 2014-09-17 | 华中科技大学 | 一种历史感知的数据去重碎片消除方法与系统 |
US20170154127A1 (en) * | 2015-11-30 | 2017-06-01 | Maoz Madmony | Efficient packing of objects |
CN106599111A (zh) * | 2016-11-30 | 2017-04-26 | 上海斐讯数据通信技术有限公司 | 一种数据管理方法及存储系统 |
CN107015888A (zh) * | 2017-03-30 | 2017-08-04 | 华中科技大学 | 一种基于子模模型的数据备份方法和系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110083487A (zh) * | 2019-04-08 | 2019-08-02 | 湖北工业大学 | 一种基于数据局部性的引用数据块碎片消除方法及系统 |
CN110083487B (zh) * | 2019-04-08 | 2022-11-18 | 湖北工业大学 | 一种基于数据局部性的引用数据块碎片消除方法及系统 |
WO2023050856A1 (zh) * | 2021-09-28 | 2023-04-06 | 华为技术有限公司 | 数据处理方法及存储系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109271353B (zh) | 2020-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10809928B2 (en) | Efficient data deduplication leveraging sequential chunks or auxiliary databases | |
US8627026B2 (en) | Storage apparatus and additional data writing method | |
WO2016086819A1 (zh) | 将数据写入叠瓦状磁记录smr硬盘的方法及装置 | |
KR101717644B1 (ko) | 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법 | |
US9348760B2 (en) | System and method for efficient flash translation layer | |
US9430164B1 (en) | Memory efficient sanitization of a deduplicated storage system | |
CN103473150B (zh) | 一种用于数据去重系统中的碎片重写方法 | |
CN110399310B (zh) | 一种存储空间的回收方法及装置 | |
JP5881859B2 (ja) | ストレージ装置 | |
CN103797470A (zh) | 存储系统 | |
CN109358987B (zh) | 一种基于两级数据去重的备份集群 | |
CN105260270B (zh) | 一种Flash存储空间的动态恢复方法及装置 | |
CN102567427B (zh) | 一种对象数据处理方法及装置 | |
CN107818269B (zh) | 一种基于Flash的文件保存方法及系统 | |
CN106484761B (zh) | 用于改进储存日志的方法和系统 | |
CN106407224B (zh) | 一种键值存储系统中文件压实的方法和装置 | |
CN105677236B (zh) | 一种存储设备及其存储数据的方法 | |
RU2014127817A (ru) | Система и способ управления и организации кэша веб-браузера | |
CN102024034B (zh) | 一种面向高清媒体的嵌入式文件系统的碎片处理方法 | |
CN108604165A (zh) | 存储装置 | |
US11455122B2 (en) | Storage system and data compression method for storage system | |
CN106201774B (zh) | 一种nand flash存储芯片数据存储结构分析方法 | |
CN104050057B (zh) | 一种历史感知的数据去重碎片消除方法与系统 | |
CN103226965A (zh) | 基于时间位图的音视频数据存取方法 | |
CN109683825A (zh) | 一种存储系统在线数据压缩方法、装置及设备 |
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 |