一种在数据去重过程中选择性重写自引用块方法及系统技术方案

技术编号:20221634 阅读:35 留言:0更新日期:2019-01-28 20:11
本发明专利技术公开了一种在数据去重过程中选择性重写自引用块的方法及系统,包括:获取数据去重过程中的重复块和上次备份的容器总数;判断重复块所在容器ID是否超过上次备份的容器总数,若是,则重复块是自引用块,否则,重复块不是自引用块;创建用于模拟恢复缓存的缓冲区,查找自引用块所在容器ID是否存在于所述缓冲区中,若是,自引用块不是内部碎片块,否则,自引用块是内部碎片块;根据内部碎片块所在容器的利用率是否低于预设阈值,若是,所述内部碎片块将被重写到容器,否则,所述自引用块无需被重写到容器。本发明专利技术通过模拟恢复缓存来识别内部碎片块,选择性重写部分内部碎片块来限制重写数量,使得容器利用率增加,恢复性能得到显著提高。

【技术实现步骤摘要】
一种在数据去重过程中选择性重写自引用块方法及系统
本专利技术属于计算机存储
,更具体地,涉及一种在数据去重过程中选择性重写自引用块方法及系统。
技术介绍
去重技术是在现代备份系统中消除冗余数据节省空间最为有效的方法。去重技术首先将文件分成等长或者变长的数据块,然后使用哈希方法来计算每个数据块的指纹,通过比对指纹值来确定数据块是否重复。它是一种无损压缩技术,可以有效的节省系统的存储空间。由于一个备份流中的数据块分散在不同的容器中,因此引入了两种类型的碎片:一种是版本间碎片,它是由相似的数据定期备份导致的;另一种是由同一个数据块在单个备份流中多次出现而导致的内部碎片块(通常称为自引用块)。恢复带有碎片的备份流需要从磁盘中读取多个容器,由于磁盘的随机访问性能差,碎片会导致系统的恢复性能下降。为解决上述碎片问题,专利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(SelectivelyRewriteSelf-referencedChunks,选择性重写自引用块)包括两个模块:重写过滤模块和选择性重写模块。其中本文档来自技高网...

【技术保护点】
1.一种在数据去重过程中选择性重写自引用块的方法,其特征在于,所述方法包括以下步骤:S1.获取数据去重过程中的重复块和上次备份的容器总数;S2.判断重复块所在容器的ID是否超过上次备份的容器总数,若是,则所述重复块是自引用块,否则,所述重复块不是自引用块;S3.创建用于模拟恢复缓存的缓冲区,查找自引用块所在容器ID是否存在于所述缓冲区中,若是,所述自引用块不是内部碎片块,否则,所述自引用块是内部碎片块;S4.根据内部碎片块所在容器的利用率是否低于预设阈值,若是,所述内部碎片块将被重写到容器,否则,所述自引用块无需被重写到容器。

【技术特征摘要】
1.一种在数据去重过程中选择性重写自引用块的方法,其特征在于,所述方法包括以下步骤:S1.获取数据去重过程中的重复块和上次备份的容器总数;S2.判断重复块所在容器的ID是否超过上次备份的容器总数,若是,则所述重复块是自引用块,否则,所述重复块不是自引用块;S3.创建用于模拟恢复缓存的缓冲区,查找自引用块所在容器ID是否存在于所述缓冲区中,若是,所述自引用块不是内部碎片块,否则,所述自引用块是内部碎片块;S4.根据内部碎片块所在容器的利用率是否低于预设阈值,若是,所述内部碎片块将被重写到容器,否则,所述自引用块无需被重写到容器。2.如权利要求1所述的在数据去重过程中选择性重写自引用块的方法,其特征在于,所述获取数据去重过程中的重复块具体如下:将一个备份流分成多个可变大小的数据块,并计算每个数据块的指纹,通过对数据块指纹的比对来标记数据块是否为重复块,重复块被标记为0,唯一块被标记为1。3.如权利要求1所述的在数据去重过程中选择性重写自引用块的方法,其特征在于,步骤S3具体如下:创建缓冲区为缓存列表,查找自引用块所在容器ID是否存在于所述缓存列表中,如果存在,所述自引用块将不会对恢复性能产生影响,不是内部碎片,否则,所述自引用块为内部碎片块,将它的容器ID插入缓存列表尾部,同时删除缓存列表的第一个元素。4.如权利要求1所述的在数据去重过程中选择性重写自引用块的方法,其特征在于,所述内部碎片块所在容器的利用率等于所述内部碎片块所在的容器存储的当前备份流中的数据块与所述内部碎片块所在的容器的总大小的比值。5.如权利要求1所述的在数据去重过程中选择性重写自引用块的方法,其特征在于,在步骤S1之前,还包括步骤S0.基于HAR重写方法去除相似的数据定期备份导致的版本间碎片块。6.一种在数据去重过程中选择性重写自引用块的...

【专利技术属性】
技术研发人员:王芳左春雪冯丹张宇成胡燏翀
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1