重复数据删除硬件加速装置和方法

文档序号:6371150阅读:106来源:国知局
专利名称:重复数据删除硬件加速装置和方法
技术领域
本发明涉及数据储存领域,具体地,涉及一种利用FPGA进行重复数据删除硬件加速装置和方法。
背景技术
随着数据信息呈爆炸性的增长,企业需要担负由此引发的不断上升的备份及容灾所需的存储的成本压力,为解决这一困局,目前的存储备份系统以及远程灾备系统都采用重复数据删除技术。重复数据删除也称为智能压缩或单一实例存储,是一种可自动搜索重复数据,将相同数据只保留唯一的一个副本,并使用指向单一副本的指针替换掉其他重复副本,以达 到消除冗余数据、降低存储容量需求的存储技术。重复数据删除技术不但可以优化存储空间,提高存储效率,而且可以节省存储或备份的网络带宽和传输时间成本,从而降低企业在数据存储备份领域的管理和时间成本。按照不同的去重粒度,重复数据删除技术可分为基于文件级的重复数据删除、基于数据块的重复数据删除和基于字节级的重复数据删除。基于文件级的重复数据删除计算处理速度快,但是去重消冗率相对较低;基于字节级的重复数据删除则去重消冗率相对较高,但是需要的计算处理时间也相对较长;基于数据块的重复数据删除则集聚了两者的优点,在去重率和计算处理时间相对均衡。存储或备份系统产品中常用是基于数据块消冗的重复数据删除技术,而其中最重要的部分主要包括文件数据块切分、数据块指纹计算和相同数据块检索实现。数据块切分的实现决定了删除率指标的高低,而数据块指纹计算和相同数据块检索实现会影响整体性能指标。在专利号为200910136595. 2,申请公开号为CN101882141A的专利中,公开了一种实现重复数据数据删除的方法和系统,公开了一种删除冗余数据的技术方案,但通过软件实现重复数据删除的文件数据块切分、数据块指纹计算和相同数据块检索功能以及压缩功能,需要消耗大量的处理器资源,影响处理器的性能和计算效率。

发明内容
本发明的目的在于,针对上述问题,提出一种重复数据删除硬件加速装置和方法,以实现减少处理器压力,提高删除速度和效率的优点。为实现上述目的,本发明采用的技术方案是
一种重复数据删除硬件加速装置,包括
总线接口接收模块接收需要处理的数据流,并将该数据流传输给智能切分模块;智能切分模块完成对上述数据流的检测和计算,并根据切分规则将该数据流切分;指纹计算模块对上述智能切分模块的切分的数据流进行哈希计算,并生成相应的指纹哈希值;存储RAM模块暂存上述智能切分模块的分段信息、指纹哈希值;
总线接口发送模块将上述存储RAM模块中的切分信息、指纹哈希值以传输给内存,并通知处理器进行冗余块检索查询。根据本发明的优选实施例,所述装置还包括压缩模块将上述智能切分模块切分的数据进行压缩运算,进一步缩小数据占用空间;所述压缩模块压缩运算后的数据暂存在上述存储RAM模块中。
根据本发明的优选实施例,该装置为基于FPGA电路设计的。根据本发明的优选实施例,上述智能切分模块中的切分规则,采用内容分块的切分方法,该切分方法通过一个不断滑动的窗口来确定数据块分界点,采用Rabin指纹算法计算滑动窗口的指纹,如满足预定条件,则将该窗口的开始位置作为数据块的结尾,通过滑动窗口并计算指纹实现对数据对象的分块。根据本发明的优选实施例,上述指纹计算模块中采用Whirlpool算法。本发明还公开了一种用于重复数据删除硬件加速装置中的重复数据删除方法,包括以下步骤
上述总线接口接收模块接收到处理器的命令,根据相应的地址信息到内存中读取相应的数据,并将读取的数据组成数据流传递给智能切分模块;
上述智能切分模块对收到的数据流进行切分运算,并根据切分规则,将连续的数据流切分成若干数据块;
上述指纹计算模块将智能切分模块切分后的数据块进行哈希运算,并产生相应的指纹哈希值;
上述智能切分模块的分段信息、指纹计算模块生产的指纹哈希值暂存在存储RAM模块
中;
总线接口发送模块从存储RAM模块内取出切分后数据块的信息,并将其传递到内存中,同时发送中断通知处理器做检索操作。根据本发明的优选实施例,所述智能切分模块切分的数据块可通过压缩模块进行压缩运算,进一步缩小数据占用空间,所述压缩模块压缩运算后的数据暂存在上述存储RAM模块中。根据本发明的优选实施例,上述切分规则,采用内容分块的切分方法,该切分方法通过一个不断滑动的窗口来确定数据块分界点,采用Rabin指纹算法计算滑动窗口的指纹,如满足预定条件,则将该窗口的开始位置作为数据块的结尾,通过滑动窗口并计算指纹实现对数据对象的分块。根据本发明的优选实施例,上述哈希运算采用Whirlpool算法。本发明的技术方案通过硬件来完成对数据块切分和数据块指纹计算功能,整个处理过程中,处理器只需要负责通知重复数据删除硬件加速核数据流存放的位置以及为切分后的数据块信息指定存放位置,整个数据流的切分和指纹计算不需要处理器参与,减少了处理器的资源消耗,使处理器有更多的时间去做冗余块检索处理,从而提高重复数据删除的整体性能。通过使用FPGA(现场可编程门阵列)来并行的完成重复数据删除的智能数据切分规则和数据块指纹计算以及压缩算法,实现了重复数据删除硬件的加速核,从而提高了重复数据删除功能的整体性能。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。


附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中
图I为本发明实施例所述的用于重复数据删除硬件加速装置的原理结构示意 图2为本发明实施例所述的重复数据删除方法的方法流程图。
具体实施例方式以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
·
如图I所示,基于FPGA电路设计的重复数据删除硬件加速装置,包括总线接口接收模块接收需要处理的数据流,并将该数据流传输给智能切分模块;
智能切分模块完成对数据流的检测和计算,并根据切分规则将该数据流切分;
指纹计算模块对智能切分模块的切分的数据流进行哈希计算,并生成相应的指纹哈希值;
存储RAM模块暂存智能切分模块的分段信息、指纹哈希值;
总线接口发送模块将存储RAM模块中的切分信息、指纹哈希值以传输给内存,并通知处理器进行冗余块检索查询。若重复数据删除硬件加速核支持对数据切分后的压缩运算,则压缩模块将智能切分模块切分的数据进行压缩运算,进一步缩小数据占用空间;所述压缩模块压缩运算后的数据暂存在上述存储RAM模块中。对数据流的切分与对数据块的哈希运算以及压缩运算是同时进行的,因此当一个数据块被切分完成之后,该数据块的指纹哈希值以及压缩结果也同时完成,其结果通数据块的切分信息一同存放在存储RAM模块。智能切分模块中的切分规则,采用内容分块的切分方法,该切分方法通过一个不断滑动的窗口来确定数据块分界点,采用Rabin指纹算法计算滑动窗口的指纹,如满足预定条件,则将该窗口的开始位置作为数据块的结尾,通过滑动窗口并计算指纹实现对数据对象的分块。指纹计算模块中采用Whirlpool 算法。如图2所示,一种用于重复数据删除硬件加速装置中的重复数据删除方法具体如下
(1)总线接口接收模块接收到处理器的通知,根据相应的地址信息到内存中取相应的数据,并将之组成数据流传递给智能切分模块;
(2)智能切分模块对收到的数据流进行切分运算,并根据不同的切分规则,将连续的数据流切分成若干数据块,本模块会将参与运算后的数据传递出去;
(3)指纹计算模块将对参与切分运算完成的数据块进行哈希运算,并产生相应的指纹哈希值;
(4)若重复数据删除硬件加速核支持对数据切分后的压缩运算,那么压缩模块会和指纹计算模块一样,对切分运算完成的数据块进行压缩运算;
(5)总线接口发送模块从存储RAM模块内取出切分后数据块的信息,并将之传递到内存中相应位置,同时发送中断通知处理器做下一步的检索操作。其中对数据流的切分与对数据块的哈希运算以及压缩运算是同时进行的,因此当一个数据块被切分完成之后,该数据块的指纹哈希值以及压缩结果也同时完成,其结果同数据块的切分信息一同存放在存储RAM模块。智能切分模块内的切分规则可以选用不同的切分方法,本技术方案中使用的基于内容分块的切分方法,它通过一个不断滑动的窗口来确定数据块分界点,采用Rabin指纹算法计算滑动窗口的指纹,如果满足预定条件,就将该窗口的开始位置作为数据块的结尾, 这样通过不断滑动窗口并计算指纹实现对数据对象的分块;基于内容分块的切分方法可以有效的对数据进行切分处理,而且方便使用硬件实现。切分规则也可以选用固定长度切分规则或者基于滑动块的切分方法。指纹计算模块内可以选择不同的算法来计算数据块的指纹值,数据块的指纹通常是对数据块内容进行相关数学运算获得,哈希函数比较接近与理想目标,例如MD5、SHAUSHA-256、SHA-512、RabinHash和WhirlPool等,但是这些哈希函数都存在碰撞问题,即不同数据块可能会产生相同的数据指纹;为了增加数据的安全性,减小出现数据碰撞的概率,指纹计算模块可以选择碰撞概率更低的算法,如Whirlpool、SHA-512,同时还可以对同一个数据块使用两个哈希算法同时计算其哈希指纹值。本技术方案使用了更高实现效率的Whirlpool算法来计算数据块的指纹哈希值,同时能够实现本发明目的的其它哈希算法或者其它算法,能够来计算数据的指纹都在本发明的保护范围内,如CRC32等。由于数据切分和指纹计算相对于总线接口处理会慢,为了提高重复数据删除硬件加速核的整体计算性能,本发明可以使用多个智能切分模块、指纹计算模块、压缩模块和存储RAM模块同时来完成对于数据块的切分、指纹和压缩计算。本发明技术方案中的FPGA芯片可以使用ASIC芯片或者其它平台代替。最后应说明的是以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种重复数据删除硬件加速装置,其特征在于,包括 总线接口接收模块接收需要处理的数据流,并将该数据流传输给智能切分模块; 智能切分模块完成对上述数据流的检测和计算,并根据切分规则将该数据流切分; 指纹计算模块对上述智能切分模块的切分的数据流进行哈希计算,并生成相应的指纹哈希值; 存储RAM模块暂存上述智能切分模块的分段信息、指纹哈希值; 总线接口发送模块将上述存储RAM模块中的切分信息、指纹哈希值以传输给内存,并通知处理器进行冗余块检索查询。
2.根据权利要求I所述的重复数据删除硬件加速装置,其特征在于,还包括压缩模块将上述智能切分模块切分的数据进行压缩运算,进一步缩小数据占用空间;所述压缩模块 压缩运算后的数据暂存在上述存储RAM模块中。
3.根据权利要求I或2所述的重复数据删除硬件加速装置,其特征在于,该装置为基于FPGA电路设计的。
4.根据权利要求3所述的重复数据删除硬件加速装置,其特征在于,上述智能切分模块中的切分规则,采用内容分块的切分方法,该切分方法通过一个不断滑动的窗口来确定数据块分界点,采用Rabin指纹算法计算滑动窗口的指纹,如满足预定条件,则将该窗口的开始位置作为数据块的结尾,通过滑动窗口并计算指纹实现对数据对象的分块。
5.根据权利要求3所述的重复数据删除硬件加速装置,其特征在于,上述指纹计算模块中采用Whirlpool算法。
6.一种用于权利要求I至5所述的重复数据删除硬件加速装置中的重复数据删除方法,其特征在于,包括以下步骤 上述总线接口接收模块接收到处理器的命令,根据相应的地址信息到内存中读取相应的数据,并将读取的数据组成数据流传递给智能切分模块; 上述智能切分模块对收到的数据流进行切分运算,并根据切分规则,将连续的数据流切分成若干数据块; 上述指纹计算模块将智能切分模块切分后的数据块进行哈希运算,并产生相应的指纹哈希值; 上述智能切分模块的分段信息、指纹计算模块生产的指纹哈希值暂存在存储RAM模块中; 总线接口发送模块从存储RAM模块内取出切分后数据块的信息,并将其传递到内存中,同时发送中断通知处理器做检索操作。
7.根据权利要求6所述重复数据删除方法,其特征在于,所述智能切分模块切分的数据块可通过压缩模块进行压缩运算,进一步缩小数据占用空间,所述压缩模块压缩运算后的数据暂存在上述存储RAM模块中。
8.根据权利要求7所述重复数据删除方法,其特征在于,上述切分规则,采用内容分块的切分方法,该切分方法通过一个不断滑动的窗口来确定数据块分界点,采用Rabin指纹算法计算滑动窗口的指纹,如满足预定条件,则将该窗口的开始位置作为数据块的结尾,通过滑动窗口并计算指纹实现对数据对象的分块。
9.根据权利要求8所述重复数据删除方法,其特征在于,上述哈希运算采用Whirlpool算法。
全文摘要
本发明公开了一种重复数据删除硬件加速装置和方法,装置包括总线接口接收模块接收需要处理的数据流,并将该数据流传输给智能切分模块;智能切分模块完成对数据流的检测和计算,并根据切分规则将该数据流切分;指纹计算模块对智能切分模块的切分的数据流进行哈希计算,并生成相应的指纹哈希值;存储RAM模块暂存智能切分模块的分段信息、指纹哈希值;总线接口发送模块将上述存储RAM模块中的切分信息、指纹哈希值以传输给内存,并通知处理器进行冗余块检索查询。本技术方案通过硬件来完成对数据块切分和数据块指纹计算功能,减少了处理器的资源消耗,使处理器有更多的时间去做冗余块检索处理,从而提高重复数据删除的整体性能。
文档编号G06F17/30GK102722583SQ201210187880
公开日2012年10月10日 申请日期2012年6月7日 优先权日2012年6月7日
发明者张庆敏, 张衡, 李天仁, 胡刚 申请人:无锡众志和达存储技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1