一种基于闪存固态盘的弱指纹重复数据删除机制制造技术

技术编号:13678294 阅读:128 留言:0更新日期:2016-09-08 05:21
本发明专利技术涉及一种基于闪存固态盘的弱指纹重复数据删除机制。面向具有重复数据的在线应用,该机制在固态盘内部利用硬件资源实现重删系统,采用弱指纹计算和字节直接比对的方式进行重删,克服了传统重删技术和预hash重删技术的弊端,实现了更高的重删吞吐量和重删率,在时间、空间、硬件资源开销等方面都做到最低。同时,由于低硬件开销,能充分利用固态盘内部并行性,实现多个重删部件并行重删,极大降低了写延迟。该机制能够与闪存固态盘合理结合,能有效地消除重复数据,提升固态盘的寿命和性能。

【技术实现步骤摘要】

本专利技术适用于重复数据删除
,提供了一种基于闪存固态盘的弱指纹重复数据删除机制,通过删除重复的写数据,消除数据写入固态盘时的负载瓶颈,提升固态盘的写性能和空间利用率。
技术介绍
随着信息技术革命的飞速发展,大数据和云计算已经成为当今时代的主流,数据的爆炸性增长以及计算机性能的不断提高对存储系统提出了越来越高的要求,存储系统面临着容量和性能的挑战。重复数据删除技术,可以用于消除存储系统中重复的数据,逐渐被认为是减少存储开销的有效技术,缓解了存储系统的容量压力。进入大数据时代后,虽然每年都有大量的数据产生,但是不少研究工作已经证实,存储系统中存在大量的重复数据,不管是主要存储系统,第二级的备份存储系统还是高性能计算的数据中心。由于重删技术具有很高的效率和可扩展性,为了支持高效的存储系统,重删技术被广泛地使用在底层的存储系统和上层的应用中。它已经成为大规模存储系统,尤其是备份系统的重要组成部分。另一方面,以闪存为代表的新型存储介质迅猛发展,集成度不断增加,价格不断降低,缓解了存储系统的性能压力。以闪存为基础的闪存固态盘,由半导体芯片构成,继承了闪存的优良特性,如高随机访问性能,低功耗,体积小,抗震动等,具有广阔的发展前景。但是,闪存的擦写次数有限,使得其寿命有限,阻碍了闪存固态盘的发展。因此,在可靠性敏感的环境中,闪存固态盘并不适用。并且,对于云计算数据中心产生的写密集型负载,闪存固态盘无法胜任存储工作。幸运的是,数据中心中,应用写入存储的数据集通常包含很大部分的重复数据,合理利用重删技术,通过消除冗余数据,为解决闪存固态盘的寿命问题提供了可能。不少研究者尝试将闪存固态盘和重删技术相结合,在固态盘内部实现重删系统。传统的重删的示意图见附图说明1,有四个步骤,具体如下:第一步:数据分块,选择一种分块策略,如定长分块、按文件分块、按内容分块等,对数据进行分块;第二步,计算指纹值,选取一种hash函数,通常为SHA-1或者MD5,计算每个数据块的指纹值,作为数据块的唯一标识,并将其指向该数据块的地址标识;第三步,指纹值匹配,将待重删数据块的指纹值与其他指纹值进行匹配,若指纹值相同,则为重复数据,否则为唯一的数据块;第四步,唯一块存储,只将第三步判断后的唯一的数据块,存放在存储中,删去重复的数据块,并将重复的数据块的指纹值指向同一个地址标识。对于一个大文件而言,只要顺序地保存其各个数据分块的指纹值,根据指纹值指向的地址表示,就可以将大文件恢复。但是,在固态盘内部使用传统的重删技术并不合适。首先,数据块指纹值的计算开销大,会降低固态盘的写性能;其次,为加快指纹匹配速度,须将指纹值保存在固态盘内部的内存中,而内存容量有限,无法保存大量的指纹值,进而影响重删率。为了解决以上两个方面的问题,有研究者提出了一种预hash重删技术(Pre-hashing)。它的示意图见附图说明2。对于在线系统而言,数据的重复度不高,大部分数据是唯一的,因此,对于大部分数据而言,计算指纹值是没有必要的。于是,预hash技术的基本思想就是,只对可能发生重复的数据块,计算其指纹值,减少重删的计算开销和元数据空间开销。它的具体步骤如下:第一步,数据分块,在固态盘内部,由于固态盘的读写粒度是页,为方便管理,通常按页大小(如4KB)采用定长分块;第二步,计算弱指纹,采用一种弱hash函数CRC32,对所有写入的数据块都计算其弱指纹值,构建弱指纹表,将当前写入的数据块的弱指纹值与弱指纹表比对,由于CRC32函数存在冲突率,若两个数据块的弱指纹值相同,则该两个数据块可能重复;第三步,若当前写入的数据块为可能重复的数据块,则采用SHA-1函数计算其指纹值,进一步比对两者的指纹值;第四步,当两者指纹值相同时,则确定为重复数据,删去,否则,为唯一的数据块。基于这个原理,由于弱指纹计算开销低,预hash技术又只计算可能重复的数据块的SHA-1指纹值,回避了大量的指纹计算开销,提升了重删的吞吐量。同时,由于弱指纹的位数少,重删相同的数据量所需的元数据空间比传统重删要少。但是,由于预hash技术只计算可能重复的数据块的指纹值,牺牲了很多的重删率。例如,附图说明2中,假设连续写入3个相同的数据块M,由于第一次写入M时,只计算了M的弱指纹值,并未计算M的指纹值,无法将第二次到来的M删去,降低了重删率。综上所述,传统的重删依赖于非常耗时的指纹计算过程来发现重复数据,虽然能够对固态盘的使用寿命有所改善,但是重删系统会成为固态盘的性能瓶颈。因此,传统的重删技术无法与固态盘相结合。另外,预hash技术虽然可以减少指纹计算的开销,提升重删的吞吐量,改善固态盘的性能,但却降低了重删率。
技术实现思路
本专利技术所要解决的技术问题是在面向在线应用的闪存固态盘中设计实现重复数据删除系统,利用重删系统消去重复的写数据,提升固态盘的寿命,同时,解决重删系统的计算开销问题,降低数据的写延迟,提升固态盘的读写性能。另外,兼顾重删率,尽可能删去更多的重复数据。通过将写入的页数据和从Flash存储中读出的与该页可能重复的页数据进行字节级别的直接比较,来判断该页数据是否为重复数据。特提出弱指纹重删技术,能和固态盘紧密结合,通过删除重复数据,提升固态盘的写性能和使用寿命。弱指纹重删机制的原理总结如下。前半部分和预hash类似,当一个写请求到来时,它采用一种弱hash函数,如CRC,计算数据块的弱指纹值,用弱指纹值构建重删预测表,通过将弱指纹与重删预测表中的值相比对,预测出可能重复的数据块。之后,并不是采用SHA-1函数计算指纹值,而是将与当前写入的数据块可能重复的数据块从底层闪存中读出,再将两者挨个字节比对,判断是否数据块是否重复。传统重删机制和预hash技术都是采用SHA-1指纹值来判断数据块是否重复,计算开销大,而弱指纹重删机制采用字节比对方式判断重复数据块,全程不涉及复杂的指纹计算开销,彻底解决指纹计算开销问题。同时,由于该机制的指纹计算和数据比对操作简单,硬件开销小,可以利用SSD内部的并行性,实现多个重删进程,并行重删数据,极大地提高了重删的吞吐量。在空间开销上,该机制保存的弱指纹值短,如32位,而SHA-1指纹值占据160位,空间开销小。在重删率方面,该机制克服预hash机制的弊端,理论上能将重复的数据块全部识别出,不会降低重删率。弱指纹重删机制实现的重删率主要受两个方面影响。一方面是重删预测表的大小。该表保存在内存中,固态盘中内存容量有限,预测表不宜过大。幸运的是,很多在线应用具有值局部性原理,即重复的数据块通常在一段较短的时间内到来,故可以只保存最近一段时间的弱指纹值,实现重删预测,解决空间开销问题。另一方面是CRC函数的冲突率。若发生冲突,则弱指纹重删机制会引入额外的读操作,影响固态盘性能。这个问题可以通过调整CRC指纹值的长度,将冲突率控制在较小的范围内。增大CRC指纹值的长度,计算开销并不会急剧增大。使用本专利技术能达到以下有益效果:1、实现较高的重删率。由于SSD内部内存容量有限,相比于传统重删和预hash技术,弱指纹重删机制采用的数据结构更为紧凑,能在有限的重删元数据空间中实现更大的重删率,提高固态盘的寿命和空间利用率;2、提升固态盘的性能。由于弱指纹重删机制的指纹计算开本文档来自技高网
...

【技术保护点】
一种基于闪存固态盘的弱指纹重复数据删除机制,实现在固态盘内部的闪存转换层,其特征在于,通过将写入的页数据和从Flash存储中读出的与该页可能重复的页数据进行字节级别的直接比较,来判断该页数据是否为重复数据,采用弱指纹重删技术,先采用低计算开销的弱hash函数CRC,计算出数据页的弱指纹,通过匹配弱指纹对数据是否重复进行预测,由于CRC函数是有冲突的,预测后只能发现可能重复的数据页,再通过字节直接比对确定重复的数据页,具体步骤为:第一步,数据分块:由于固态盘内部以页为读写粒度,故将文件以页大小进行定长分块;第二步,计算弱指纹:CRC函数是一种弱hash函数,根据存放重删预测表的空间大小采用CRC的一种函数,如CRC32,对于当前写入的数据页,假设为m,逻辑地址为LAm,计算m的弱指纹CRC32m,从而对该数据页进行初步标识,作为下一步判断是否重复的依据;第三步,闪存转换层负责构建地址映射表和重删预测表,以数据页n为例,两个表中的项的形式分别为LogAn, PhyAn和CRC32n, PhyAn,其中LogAn和PhyAn分别表示数据页n的逻辑地址和物理地址,对于当前写入的数据页,闪存转换层暂不为其分配物理地址;第四步,查询重删预测表:将上一步计算好的指纹值与现有的预测表中的指纹值逐一匹配,判断其代表的数据页是否重复;第4.1步,若指纹值匹配不成功,则该数据页是唯一的,执行第6.2步;第4.2步,若指纹值匹配成功,则该数据页为可能重复的数据页,取出匹配成功的预测项中物理地址PhyA,执行第五步;第五步,根据取得的物理地址PhyA,读出闪存存储中该地址对应的数据页;第六步,将读出的数据页与当前写入的数据页逐一比对字节,如果完全相同,则说明当前写入的数据为重复的,执行第6.1步;否则为唯一的数据,执行6.2步;第6.1步,删去当前到来的写请求,将项LogAm, PhyA添加到地址映射表中,用于之后的数据恢复,进入第七步;第6.2步,闪存转换层为当前到来的写请求分配物理地址PhyAm,将项LogAm, PhyAm添加到地址映射表中,重删预测表中若含有CRC32m的项,则将其替换为CRC32m, PhyAm,若没有,则添加项CRC32m, PhyAm,用于之后的重删,若预测表容量超出预定大小,则根据先入先出原则进行替换,进入第七步;第七步,结束。...

【技术特征摘要】
1.一种基于闪存固态盘的弱指纹重复数据删除机制,实现在固态盘内部的闪存转换层,其特征在于,通过将写入的页数据和从Flash存储中读出的与该页可能重复的页数据进行字节级别的直接比较,来判断该页数据是否为重复数据,采用弱指纹重删技术,先采用低计算开销的弱hash函数CRC,计算出数据页的弱指纹,通过匹配弱指纹对数据是否重复进行预测,由于CRC函数是有冲突的,预测后只能发现可能重复的数据页,再通过字节直接比对确定重复的数据页,具体步骤为:第一步,数据分块:由于固态盘内部以页为读写粒度,故将文件以页大小进行定长分块;第二步,计算弱指纹:CRC函数是一种弱hash函数,根据存放重删预测表的空间大小采用CRC的一种函数,如CRC32,对于当前写入的数据页,假设为m,逻辑地址为LAm,计算m的弱指纹CRC32m,从而对该数据页进行初步标识,作为下一步判断是否重复的依据;第三步,闪存转换层负责构建地址映射表和重删预测表,以数据页n为例,两个表中的项的形式分别为LogAn, PhyAn和CRC32n, PhyAn,其中LogAn和PhyAn分别表示数据页n的逻辑地址和物理地址,对于当前写入...

【专利技术属性】
技术研发人员:肖侬陈正国陈志广刘芳陈微欧洋
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:湖南;43

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

1