发明名称 一种基于闪存固态盘的弱指纹重复数据删除机制
摘要 本发明涉及一种基于闪存固态盘的弱指纹重复数据删除机制。面向具有重复数据的在线应用,该机制在固态盘内部利用硬件资源实现重删系统,采用弱指纹计算和字节直接比对的方式进行重删,克服了传统重删技术和预hash重删技术的弊端,实现了更高的重删吞吐量和重删率,在时间、空间、硬件资源开销等方面都做到最低。同时,由于低硬件开销,能充分利用固态盘内部并行性,实现多个重删部件并行重删,极大降低了写延迟。该机制能够与闪存固态盘合理结合,能有效地消除重复数据,提升固态盘的寿命和性能。
申请公布号 CN105930101A 申请公布日期 2016.09.07
申请号 CN201610286135.8 申请日期 2016.05.04
申请人 中国人民解放军国防科学技术大学 发明人 肖侬;陈正国;陈志广;刘芳;陈微;欧洋
分类号 G06F3/06(2006.01)I 主分类号 G06F3/06(2006.01)I
代理机构 湖南省国防科技工业局专利中心 43102 代理人 冯青
主权项 一种基于闪存固态盘的弱指纹重复数据删除机制,实现在固态盘内部的闪存转换层,其特征在于,通过将写入的页数据和从Flash存储中读出的与该页可能重复的页数据进行字节级别的直接比较,来判断该页数据是否为重复数据,采用弱指纹重删技术,先采用低计算开销的弱hash函数CRC,计算出数据页的弱指纹,通过匹配弱指纹对数据是否重复进行预测,由于CRC函数是有冲突的,预测后只能发现可能重复的数据页,再通过字节直接比对确定重复的数据页,具体步骤为:第一步,数据分块:由于固态盘内部以页为读写粒度,故将文件以页大小进行定长分块;第二步,计算弱指纹:CRC函数是一种弱hash函数,根据存放重删预测表的空间大小采用CRC的一种函数,如CRC32,对于当前写入的数据页,假设为m,逻辑地址为LA<sub>m</sub>,计算m的弱指纹CRC32<sub>m</sub>,从而对该数据页进行初步标识,作为下一步判断是否重复的依据;第三步,闪存转换层负责构建地址映射表和重删预测表,以数据页n为例,两个表中的项的形式分别为LogA<sub>n</sub>, PhyA<sub>n</sub>和CRC32<sub>n</sub>, PhyA<sub>n</sub>,其中LogA<sub>n</sub>和PhyA<sub>n</sub>分别表示数据页n的逻辑地址和物理地址,对于当前写入的数据页,闪存转换层暂不为其分配物理地址;第四步,查询重删预测表:将上一步计算好的指纹值与现有的预测表中的指纹值逐一匹配,判断其代表的数据页是否重复;第4.1步,若指纹值匹配不成功,则该数据页是唯一的,执行第6.2步;第4.2步,若指纹值匹配成功,则该数据页为可能重复的数据页,取出匹配成功的预测项中物理地址PhyA,执行第五步;第五步,根据取得的物理地址PhyA,读出闪存存储中该地址对应的数据页;第六步,将读出的数据页与当前写入的数据页逐一比对字节,如果完全相同,则说明当前写入的数据为重复的,执行第6.1步;否则为唯一的数据,执行6.2步;第6.1步,删去当前到来的写请求,将项LogA<sub>m</sub>, PhyA添加到地址映射表中,用于之后的数据恢复,进入第七步;第6.2步,闪存转换层为当前到来的写请求分配物理地址PhyA<sub>m</sub>,将项LogA<sub>m</sub>, PhyA<sub>m</sub>添加到地址映射表中,重删预测表中若含有CRC32<sub>m</sub>的项,则将其替换为CRC32<sub>m</sub>, PhyA<sub>m</sub>,若没有,则添加项CRC32<sub>m</sub>, PhyA<sub>m</sub>,用于之后的重删,若预测表容量超出预定大小,则根据先入先出原则进行替换,进入第七步;第七步,结束。
地址 410073 湖南省长沙市砚瓦池正街47号