首页> 中国专利> 一种基于负载均衡的重复数据删除数据放置方法器

一种基于负载均衡的重复数据删除数据放置方法器

摘要

本发明涉及一种基于负载均衡的重复数据删除数据放置方法器。基于各类分布式重复数据删除系统,通过改变数据分块放置的策略,在保证重删率不变的前提下,进一步提升文件的读性能,其特征在于,通过以单个写IO为基本单位对其所包含的所有数据分块进行放置,从而保证同一个IO内数据分块尽可能独立地放置在相对独立的存储节点上,以最大限度的消除文件读取时的负载瓶颈,实现各独立节点并行性的最大化利用,提升系统读性能。

著录项

  • 公开/公告号CN105824881A

    专利类型发明专利

  • 公开/公告日2016-08-03

    原文格式PDF

  • 申请/专利权人 中国人民解放军国防科学技术大学;

    申请/专利号CN201610135504.3

  • 申请日2016-03-10

  • 分类号G06F17/30(20060101);

  • 代理机构湖南省国防科技工业局专利中心;

  • 代理人冯青

  • 地址 410073 湖南省长沙市砚瓦池正街47号

  • 入库时间 2023-06-19 00:11:02

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-03-29

    授权

    授权

  • 2016-08-31

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20160310

    实质审查的生效

  • 2016-08-03

    公开

    公开

说明书

技术领域

本发明适用于重复数据删除技术领域,提供了一种基于负载均衡的分布式重复数据删除系统(DataDeduplicationSystem)的数据放置方法,消除读文件时的负载瓶颈,提高系统的读性能。

背景技术

随着信息技术革命的飞速发展,大数据和云计算已经成为当今时代的主流,数据的爆炸性增长以及计算机性能的不断提高对存储系统提出了越来越高的要求,存储系统面临着容量和性能的挑战。

面对数据量的急剧增长,大型的数据中心不断需要更大容量的存储设备,盲目地购置存储设备,提高存储容量并不是一种解决容量问题的有效方式。此外采购设备还涉及资金、空间、能耗和管理等诸多问题,因此数据缩减技术才是有效地均衡数据膨胀和空间不足之间矛盾的合理方式。

数据缩减技术是一种通过某种有效的技术手段删除冗余数据以提高数据存储效率的方式。经典的数据缩减技术通常包括数据压缩(DataCompression)技术、Delta编码(DeltaEncoding)技术和重复数据删除(DataDeduplication)技术三类。其中,传统数据压缩技术只能消除对象内的冗余数据,而重复数据删除后还可以消除对象间的冗余;而相比Delta编码技术需要的额外的计算开销和内存资源,而重复数据删除的开销更低。同时,随着重复数据删除技术的不断发展,该技术已经开始由外存运用到主存,甚至由存储领域应用扩展到通讯领域,俨然已经成为大数据时代的热点问题。

但对于大数据而言,有效存储并不是根本目的,更重要的是读取数据进行分析。因此如何有效地组织和存储重复数据删除后的数据,以提高吞吐率和读性能是大数据时代下人们更为关注的问题。对于备份、归档、快照等存储系统来说,如此大量的数据一般是以分布式的方式分散存储在各个节点,同时这些系统还有一个共同点,即一次写入,多次读取,因此读性能在这一类系统中显得尤为重要。这就需要我们考虑重复数据删除后数据的存储方式,究竟以何种方式将数据存储在各个节点,在方便管理的前提下,可充分利用存储节点间的并行性提高读取性能,也是人们日益关注的问题。

在大规模的分布式数据处理系统中,通常包含多个存储节点,每个存储节点用来存储部分文件数据。但是数据总量远大于存储容量,为节约存储空间将文件分割成数据块,并对重复的数据块进行删除后,不重复的唯一的数据块将以分布的方式存储到这些节点上去,并进行相应的记录,以便下次需要读写数据时,可以从相应的节点取回对应的数据块。针对不重复的数据块的分配策略,当前重复数据删除系统一般采用的通用放置方式以物尽其用为基本原则,按节点顺序依次循环存放的策略,即将这些唯一的数据块按每次每块按照节点的顺序依次存放至到各个存储节点。这样做的好处是可以使每个节点存储的数据量尽可能的均衡,以便有效地利用存储空间,然而却会给访问性能带来损失。

数据最终是存储在设备上的,重复数据删除减少了数据的存储量,降低了系统的性能和可靠性,因此如何设计合理的数据放置方式,以达到负载均衡的效果是需要考虑的问题。目前基于重复数据删除数据放置的研究比较匮乏,主要包含单节点的和多节点的。

在单节点的环境下,非线性的数据放置会打破数据的空间局部性,对重复数据删除性能造成了影响。该方面的研究,利用冗余增强数据空间局部性,从而提升系统的性能,包括吞吐率和读性能。

在多节点的分布式环境下,有基于容量感知的数据放置策略,以实现节点间存储容量的负载均衡,但并不考虑性能问题;因此有研究采用EDP(EvenDataPlacement)算法对放置后的数据进行迁移,从而达到读负载的均衡提升系统性能。

针对单节点的研究增加了部分冗余数据,因此牺牲了重删率,同时容量有限适用面较为狭窄,不能很好的应对大数据时代下大容量的要求。虽然多节点可以扩大存储容量,但是基于容量感知的策略只是解决了物理上的存储空间平衡问题,并没有解决读性能问题,而EDP算法需要多项式的时间对数据进行迁移从而达到均衡读性能的目的,因此工作量和开销都很大。

发明内容

本发明所要解决的技术问题是面向各类分布式重复数据删除系统,通过改变数据分块放置的策略,在保证重删率不变的前提下,进一步提升文件的读性能,通过以单个写IO为基本单位对其所包含的所有数据分块进行放置,从而保证同一个IO内数据分块尽可能独立地放置在相对独立的存储节点上,以最大限度的消除文件读取时的负载瓶颈,实现各独立节点并行性的最大化利用,提升系统读性能。

本发明的技术方案是:由于传统的放置方式是轮循的,无法分辨各个节点上的现有数据块,因此不能有效地利用节点间的并行性,从而进一步提升读性能。所以本发明提出了以单个写IO为基本单位对其所包含的所有数据分块进行放置的方法,在放置的过程中,以互斥为原则,将同一个IO内数据分块(包括重复的和唯一的)尽可能独立地放置在相对独立的存储节点上。

所以,本发明中对于重复数据删除后数据放置的关键在于如何有效地利用多节点的并行性实现读负载均衡,提升读性能。

具体技术方案为:

第一步,数据分块(Chunk):根据选定的分块策略,如全文件分块、定长分块、基于内容的分块等,将文件或数据流分割成chunk。需要注意的是,数据分块是至关重要的第一步,将对后续的步骤产生直接影响。如果分块粒度越大,则后期计算开销越小,但是重删效果不够明显,反之,如果粒度过小,则会引入过多的计算开销,影响系统系能。因此应当根据应用场景选择合适的分块策略。

第二步,计算特征值(Compute):计算每一块chunk的特征值,该特征值将作为该chunk的唯一标识,并作为下一步判断是否重复的依据,因此通常采用抗冲突能力较强的hash加密算法MD5、SHA-1等;

第三步,查询索引表(Lookup):将上一步计算好的特征值与现有的索引表中的特征值逐一对比,判断其代表的chunk是否重复。该索引表会随着数据量的增大而增大,因此当数据量庞大时会降低系统性能;

第四步,去除冗余(Delete):根据查询结果,如果是重复的chunk则可以直接丢弃,但需要将节点号保存下来,将其元数据指针指向重复的chunk,以便后面需要访问时找到数据;

第五步,存储唯一块(Store):查询后判断是不重复的chunk,则将其特征值作为一个新的条目追加到索引表中,并将其节点号置为默认值。如果达到分配节点号的条件,则以单个写IO为基本单位为每个唯一的chunk分配适当的地址。

本发明涉及的重复数据删除原理和流程,以及基于负载均衡的重复数据删除放置方法过程详见附图说明。

使用本发明能达到以下有益效果:

1、保证系统原有的重删率。重删率由数据处理过程决定,本发明针对的是数据放置过程,因此可以保证重复数据删除系统原有的重删率保持不变;

2、提升系统的读性能。由于一个IO内的数据块尽可能地均匀的分布在各个节点,因此读取时可以充分利用节点的并行性,同时并发地读取多个数据块,从而消除读负载瓶颈,提升读性能。

实现本发明的开销很小,包括以下两点:

1、空间开销:为数据块分配地址时需要维护一个节点数目大小的地址分配表,该表的数据结构是个一维数组,每个元素是一个整型数,代表逻辑上的节点号。所以空间开销很小。

2、时间开销:由于对数据块进行地址分配时,需要等待同一个IO的数据块全部到来,或者整个地址分配表被充满,或者超过设置的时间阈值,因此相比之前的立即分配需要增加少量等待时间,但该时间开销较小在可接受的范围之内。

附图说明

图1是重复数据删除原理图;

图2是重复数据删除基本流程图;

图3是本发明基于负载均衡的重复数据删除放置方法示意图;

图4是本发明基于负载均衡的重复数据删除放置方法的流程图。

具体实施方式

图1到图4均以4个节点为例。图1是采用轮循放置方法的重复数据删除示意图,数据块存放时按照节点号依次轮循放置。

图2是重复数据删除基本流程图,包括数据分块、计算特征值、查询索引表、删除重复块和存储唯一块。

图3是本发明采用的基于负载均衡的重复数据删除数据放置示意图。具体的执行过程为:

第一步,定义两个新的数据结构,数组PlacementTable[NodeNum]存放了一次放置中顺序到来的对应分块的放置节点号,字符数组Last_RequestID存放了上一个数据分块的RequestID;

第二步,初始化数组PlacementTable[NodeNum],将其所有元素置为-1;初始化Last_RequestID,令其等于‘0’,并令i=0;

第三步:获取一个数据分块,可获取则到执行第四步,不可以获取到执行第六步;

第四步:判断该数据分块的RequestID是否与Last_RequestID相同,如果相同,则执行第五步,否则执行第七步;

第五步:判断该数据分块是否为重复块,若为重复块,则丢弃并取回其地址,放入PlacementTable[i]中。令i=i+1;

第六步:判断i是否等于NodeNum,如果不等于,则重复第三步,如果等于则执行第七步;

第七步:按照节点编号给数组PlacementTable[]中值为-1的元素随机赋值,并按照赋值后的PlacementTable[]将对应分块放置在存储节点上。判断还能取到下一个数据分块,如果能,执行第三步;如果不能,则执行第八步;

第八步:结束。

图4是本发明使用上述算法的基本流程图。

对于传统的重复数据删除系统,按照简单的轮循放置方法,单个IO的多个数据块可能位于同一个节点上,即使读取时各个节点可以并发地读取,但是包含数据块最多的节点将会成为读负载的瓶颈。

本发明针对这种情况,利用地址分配表延迟分配节点号,以单个写IO为基本单位对其所包含的所有数据分块进行放置,从而保证同一个IO内数据分块尽可能独立地放置在相对独立的存储节点上,以最大限度的消除文件读取时的负载瓶颈,实现各独立节点并行性的最大化利用,提升系统读性能。虽然增加了少量的写延迟,但可大幅度的减少读性能。基于本发明的实验测试表明,当节点数目较多时,写延迟的增加率大约为0.5%,而读延迟的减少率可达到8%以上,减少率是增加率16倍左右。

由此可以看出,本发明能利用节点间的并行性,减少读取时的读延迟,消除读负载的不均衡,达到了提升性能的效果。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号