CN105824881B - 一种基于负载均衡的重复数据删除数据放置方法 - Google Patents
一种基于负载均衡的重复数据删除数据放置方法 Download PDFInfo
- Publication number
- CN105824881B CN105824881B CN201610135504.3A CN201610135504A CN105824881B CN 105824881 B CN105824881 B CN 105824881B CN 201610135504 A CN201610135504 A CN 201610135504A CN 105824881 B CN105824881 B CN 105824881B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- deblocking
- chunk
- file
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
- G06F16/1752—De-duplication implemented within the file system, e.g. based on file segments based on file chunks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于负载均衡的重复数据删除数据放置方法器。基于各类分布式重复数据删除系统,通过改变数据分块放置的策略,在保证重删率不变的前提下,进一步提升文件的读性能,其特征在于,通过以单个写IO为基本单位对其所包含的所有数据分块进行放置,从而保证同一个IO内数据分块尽可能独立地放置在相对独立的存储节点上,以最大限度的消除文件读取时的负载瓶颈,实现各独立节点并行性的最大化利用,提升系统读性能。
Description
技术领域
本发明适用于重复数据删除技术领域,提供了一种基于负载均衡的分布式重复数据删除系统(Data Deduplication System)的数据放置方法,消除读文件时的负载瓶颈,提高系统的读性能。
背景技术
随着信息技术革命的飞速发展,大数据和云计算已经成为当今时代的主流,数据的爆炸性增长以及计算机性能的不断提高对存储系统提出了越来越高的要求,存储系统面临着容量和性能的挑战。
面对数据量的急剧增长,大型的数据中心不断需要更大容量的存储设备,盲目地购置存储设备,提高存储容量并不是一种解决容量问题的有效方式。此外采购设备还涉及资金、空间、能耗和管理等诸多问题,因此数据缩减技术才是有效地均衡数据膨胀和空间不足之间矛盾的合理方式。
数据缩减技术是一种通过某种有效的技术手段删除冗余数据以提高数据存储效率的方式。经典的数据缩减技术通常包括数据压缩(Data Compression)技术、Delta编码(Delta Encoding)技术和重复数据删除(Data Deduplication)技术三类。其中,传统数据压缩技术只能消除对象内的冗余数据,而重复数据删除后还可以消除对象间的冗余;而相比Delta编码技术需要的额外的计算开销和内存资源,而重复数据删除的开销更低。同时,随着重复数据删除技术的不断发展,该技术已经开始由外存运用到主存,甚至由存储领域应用扩展到通讯领域,俨然已经成为大数据时代的热点问题。
但对于大数据而言,有效存储并不是根本目的,更重要的是读取数据进行分析。因此如何有效地组织和存储重复数据删除后的数据,以提高吞吐率和读性能是大数据时代下人们更为关注的问题。对于备份、归档、快照等存储系统来说,如此大量的数据一般是以分布式的方式分散存储在各个节点,同时这些系统还有一个共同点,即一次写入,多次读取,因此读性能在这一类系统中显得尤为重要。这就需要我们考虑重复数据删除后数据的存储方式,究竟以何种方式将数据存储在各个节点,在方便管理的前提下,可充分利用存储节点间的并行性提高读取性能,也是人们日益关注的问题。
在大规模的分布式数据处理系统中,通常包含多个存储节点,每个存储节点用来存储部分文件数据。但是数据总量远大于存储容量,为节约存储空间将文件分割成数据块,并对重复的数据块进行删除后,不重复的唯一的数据块将以分布的方式存储到这些节点上去,并进行相应的记录,以便下次需要读写数据时,可以从相应的节点取回对应的数据块。针对不重复的数据块的分配策略,当前重复数据删除系统一般采用的通用放置方式以物尽其用为基本原则,按节点顺序依次循环存放的策略,即将这些唯一的数据块按每次每块按照节点的顺序依次存放至到各个存储节点。这样做的好处是可以使每个节点存储的数据量尽可能的均衡,以便有效地利用存储空间,然而却会给访问性能带来损失。
数据最终是存储在设备上的,重复数据删除减少了数据的存储量,降低了系统的性能和可靠性,因此如何设计合理的数据放置方式,以达到负载均衡的效果是需要考虑的问题。目前基于重复数据删除数据放置的研究比较匮乏,主要包含单节点的和多节点的。
在单节点的环境下,非线性的数据放置会打破数据的空间局部性,对重复数据删除性能造成了影响。该方面的研究,利用冗余增强数据空间局部性,从而提升系统的性能,包括吞吐率和读性能。
在多节点的分布式环境下,有基于容量感知的数据放置策略,以实现节点间存储容量的负载均衡,但并不考虑性能问题;因此有研究采用EDP(Even Data Placement)算法对放置后的数据进行迁移,从而达到读负载的均衡提升系统性能。
针对单节点的研究增加了部分冗余数据,因此牺牲了重删率,同时容量有限适用面较为狭窄,不能很好的应对大数据时代下大容量的要求。虽然多节点可以扩大存储容量,但是基于容量感知的策略只是解决了物理上的存储空间平衡问题,并没有解决读性能问题,而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倍左右。
由此可以看出,本发明能利用节点间的并行性,减少读取时的读延迟,消除读负载的不均衡,达到了提升性能的效果。
Claims (1)
1.一种基于负载均衡的重复数据删除数据放置方法,基于各类分布式重复数据删除系统,通过改变数据分块放置的策略,在保证重删率不变的前提下,提升文件的读性能,通过以单个写IO为基本单位对其所包含的所有数据分块进行放置,从而保证同一个IO内数据分块独立地放置在相对独立的存储节点上,以消除文件读取时的负载瓶颈,实现各独立节点并行性的利用,提升系统读性能,其特征在于,具体步骤为:
第一步,数据分块:根据选定的分块策略,如全文件分块、定长分块、基于内容的分块,将文件或数据流分割成chunk,如果分块粒度越大,则后期计算开销越小,但是重删效果不够明显,反之,如果粒度过小,则会引入过多的计算开销,影响系统性能 ;
第二步,计算特征值:计算每一块chunk的特征值,该特征值将作为该chunk的唯一标识,并作为下一步判断是否重复的依据,采用hash加密算法MD5或SHA-1;
第三步,查询索引表:将上一步计算好的特征值与现有的索引表中的特征值逐一对比,判断其代表的chunk是否重复,该索引表随着数据量的增大而增大,因此当数据量庞大时会降低系统性能;
第四步,去除冗余:根据查询结果,如果是重复的chunk则直接丢弃,但需要将节点号保存下来,将其元数据指针指向重复的chunk,以便后面需要访问时找到数据;
第五步,存储唯一块:查询后判断是不重复的chunk,则将其特征值作为一个新的条目追加到索引表中,并将其节点号置为默认值,如果达到分配节点号的条件,则以单个写IO为基本单位为每个唯一的chunk分配适当的地址;
第五步存储唯一的数据块时,以一个IO请求为放置粒度,利用分布式节点的并行性,将同一个写请求的数据均匀分布在各个节点,其具体流程为:
第5.1步,定义两个新的数据结构,数组PlacementTable[NodeNum]存放了一次放置中顺序到来的对应分块的放置节点号,字符数组Last_RequestID存放了上一个数据分块的RequestID;
第5.2步,初始化数组PlacementTable[NodeNum],将其所有元素置为-1;初始化Last_RequestID,令其等于‘0’,并令i=0;
第5.3步:获取一个数据分块,可获取则到执行第5.4步,不可以获取到执行第5.6步;
第5.4步:判断该数据分块的RequestID是否与Last_RequestID相同,如果相同,则执行第5.5步,否则执行第5.7步;
第5.5步:判断该数据分块是否为重复块,若为重复块,则丢弃并取回其地址,放入PlacementTable[i]中,令i=i+1;
第5.6步:判断i是否等于NodeNum,如果不等于,则重复第5.3步,如果等于则执行第5.7步;
第5.7步:按照节点编号给数组PlacementTable[]中值为-1的元素随机赋值,并按照赋值后的PlacementTable[]将对应分块放置在存储节点上,判断还能取到下一个数据分块,如果能,执行第5.3步;如果不能,则执行第5.8步;
第5.8步:结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610135504.3A CN105824881B (zh) | 2016-03-10 | 2016-03-10 | 一种基于负载均衡的重复数据删除数据放置方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610135504.3A CN105824881B (zh) | 2016-03-10 | 2016-03-10 | 一种基于负载均衡的重复数据删除数据放置方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105824881A CN105824881A (zh) | 2016-08-03 |
CN105824881B true CN105824881B (zh) | 2019-03-29 |
Family
ID=56987078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610135504.3A Active CN105824881B (zh) | 2016-03-10 | 2016-03-10 | 一种基于负载均衡的重复数据删除数据放置方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105824881B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107632786B (zh) * | 2017-09-20 | 2020-04-07 | 杭州宏杉科技股份有限公司 | 一种数据重删的管理方法及装置 |
CN109725836B (zh) * | 2017-10-30 | 2021-11-26 | 普天信息技术有限公司 | 用户上下文压缩方法及装置 |
CN108089816B (zh) * | 2017-11-14 | 2021-05-11 | 西北工业大学 | 一种基于负载均衡的查询式重复数据删除方法及装置 |
CN109799947A (zh) * | 2017-11-16 | 2019-05-24 | 浙江宇视科技有限公司 | 分布式存储方法及装置 |
CN108959399B (zh) * | 2018-06-04 | 2022-07-15 | 平安科技(深圳)有限公司 | 分布式数据删除流控方法、装置、电子设备及存储介质 |
CN110191187A (zh) * | 2019-06-04 | 2019-08-30 | 湖北五五互联科技有限公司 | Cdn服务器数据管理方法、设备及计算机可读存储介质 |
CN111949660B (zh) * | 2020-08-12 | 2024-04-12 | 光大兴陇信托有限责任公司 | 一种基于HashMap数据结构的分布式比较方法 |
US11954331B2 (en) | 2021-10-07 | 2024-04-09 | International Business Machines Corporation | Storage system workload scheduling for deduplication |
CN117473538B (zh) * | 2023-12-27 | 2024-03-12 | 成都智慧锦城大数据有限公司 | 提升业务数据存储安全性的方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101916171A (zh) * | 2010-07-16 | 2010-12-15 | 中国科学院计算技术研究所 | 一种并发层次式的重复数据消除方法和系统 |
CN102833298A (zh) * | 2011-06-17 | 2012-12-19 | 英业达集团(天津)电子技术有限公司 | 分布式的重复数据删除系统及其处理方法 |
CN102982122A (zh) * | 2012-11-13 | 2013-03-20 | 浪潮电子信息产业股份有限公司 | 一种适用于海量存储系统的重复数据删除方法 |
CN103858125B (zh) * | 2013-12-17 | 2015-12-30 | 华为技术有限公司 | 重复数据处理方法、装置及存储控制器和存储节点 |
US9268784B1 (en) * | 2012-09-19 | 2016-02-23 | Emc Corporation | Content-aware distributed deduplicating storage system based on locality-sensitive hashing |
-
2016
- 2016-03-10 CN CN201610135504.3A patent/CN105824881B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101916171A (zh) * | 2010-07-16 | 2010-12-15 | 中国科学院计算技术研究所 | 一种并发层次式的重复数据消除方法和系统 |
CN102833298A (zh) * | 2011-06-17 | 2012-12-19 | 英业达集团(天津)电子技术有限公司 | 分布式的重复数据删除系统及其处理方法 |
US9268784B1 (en) * | 2012-09-19 | 2016-02-23 | Emc Corporation | Content-aware distributed deduplicating storage system based on locality-sensitive hashing |
CN102982122A (zh) * | 2012-11-13 | 2013-03-20 | 浪潮电子信息产业股份有限公司 | 一种适用于海量存储系统的重复数据删除方法 |
CN103858125B (zh) * | 2013-12-17 | 2015-12-30 | 华为技术有限公司 | 重复数据处理方法、装置及存储控制器和存储节点 |
Non-Patent Citations (1)
Title |
---|
重复数据删除预测技术研究;李芳,等;《计算机研究与发展》;20141231;第169-174页 |
Also Published As
Publication number | Publication date |
---|---|
CN105824881A (zh) | 2016-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105824881B (zh) | 一种基于负载均衡的重复数据删除数据放置方法 | |
US11822807B2 (en) | Data replication in a storage system | |
US10761758B2 (en) | Data aware deduplication object storage (DADOS) | |
CN105824720B (zh) | 一种面向数据连续读取的重删纠删混合系统的数据放置方法 | |
US12056386B2 (en) | Selectable write paths with different formatted data | |
US11995336B2 (en) | Bucket views | |
CN100476742C (zh) | 基于对象存储设备的负载平衡方法 | |
CN111868676A (zh) | 在基于云的存储系统中服务i/o操作 | |
CN108415669A (zh) | 存储系统的数据去重方法及装置、计算机装置及存储介质 | |
US11886334B2 (en) | Optimizing spool and memory space management | |
CN116601596A (zh) | 使用数据相似度来选择分段进行垃圾收集 | |
US10387066B1 (en) | Providing data deduplication in a data storage system with parallelized computation of crypto-digests for blocks of host I/O data | |
US11226865B2 (en) | Mostly unique file selection method for deduplication backup systems | |
US20220206691A1 (en) | Optimizing resiliency groups for data regions of a storage system | |
WO2013160969A1 (en) | Storage apparatus and data management method | |
CN103353850B (zh) | 虚拟机热迁移内存处理方法、装置和系统 | |
CN103152430B (zh) | 一种缩减数据占用空间的云存储方法 | |
CN104572505A (zh) | 一种保证海量数据缓存最终一致性的系统及方法 | |
CN103514210A (zh) | 小文件处理方法及装置 | |
CN106557571A (zh) | 一种基于k‑v存储引擎的数据去重方法及装置 | |
CN104731716B (zh) | 一种数据存储方法 | |
Fu et al. | Application-aware client-side data reduction and encryption of personal data in cloud backup services | |
CN108287663A (zh) | 一种基于emmc的数据存储方法和装置 | |
CN111708601A (zh) | 一种面向云计算的智能存储网关、系统及其控制方法 | |
Qin et al. | KVRAID: High performance, write efficient, update friendly erasure coding scheme for KV-SSDs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |