一种并行重复数据删除方法技术

技术编号:10292079 阅读:140 留言:0更新日期:2014-08-06 19:36
本发明专利技术公开了一种并行重复数据删除方法,包括以下步骤:客户端先对要重删的数据进行分块,然后通过哈希函数计算出每个分块的哈希指纹,然后把哈希指纹发送到不同的重删服务器节点上进行指纹的查重工作。如果某个指纹经过对比,确认是重复的指纹,则只用更新查询服务器上元数据和重删服务器节点上的指纹计数器。如果某个指纹经过对比,确认是一个新的数据块,则传输该数据块到重删服务器并且更新指纹库和查询服务器上的元数据。本发明专利技术具重删节点可扩展性,可根据不同的需求扩展不同的节点来满足性能的需求,而且利用了多节点之间的并行性,有效的提升了重删系统的性能,提供高效可靠的服务。

【技术实现步骤摘要】
一种并行重复数据删除方法和系统
本专利技术属于计算机存储
,更具体地,涉及一种并行重复数据删除方法。
技术介绍
随着信息技术的发展和科技的进步,海量信息的保存对存储系统提出了严峻的挑战,PB级别甚至EB级别的信息存储对数据中心的压力也越来越大。由于海量数据中有很多重复数据,如果直接存储这些重复数据,不但会加重存储系统的负担,而且还会占用宝贵的网络带宽。重复数据删除技术可以消除数据中的重复部分,只保留数据的唯一副本,从而减少了数据所需求的物理存储空间,提高了存储效率,减少传输重复数据对网络带宽的占用。目前很多的重复数据删除系统都是基于单节点的,虽然可以用高配置的服务器来一定程度上缓解重删对性能的需求,但是对于海量数据的重删来说,单节点系统会存在以下缺点:首先,重复数据删除由于进行了分块和哈希指纹计算,会占用CPU资源,而且哈希指纹存放在内存中几乎要占用全部的内存资源,而且指纹库不能完全放入内存的时候还有一部分指纹库必须放入磁盘,这样查找比较哈希指纹的时候也会带来瓶颈;其次,基于单节点的系统的扩展性有限,无法随着系统规模的扩大而线性的扩展;第三,基于单节点的系统还会受限于网络传输的带宽限制;最后,该系统同时也牺牲了一些重复数据删除率,没有做到100%重复数据删除,使得重复数据删除过后的数据中仍然有重复的数据。同时也牺牲了一些重删率,没有做到100%重删,使得重删过后的数据中仍然有重复的数据。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供了一种并行重复数据删除方法,其目的在于,解决现有单节点重复数据系统中存在的重删处理性能瓶颈、扩展性有限从而无法随着系统规模的扩大而线性的扩展、受限于网络传输的带宽限制、不能实现100%重复数据删除的技术问题。为实现上述目的,按照本专利技术的一个方面,提供了一种并行重复数据删除方法,包括:写过程,包括以下步骤:(1)客户端将虚拟机镜像文件划分为多个相同大小的数据块,并且为每一个数据块分配一个数据块ID;(2)客户端设置计数器i=1;(3)客户端利用哈希算法对第i个数据块进行处理,以生成哈希指纹值,根据哈希指纹值生成对应的节点ID,并将<第i个数据块ID,哈希指纹值>二元组传送到哈希指纹值对应的节点ID所对应的数据节点进行哈希指纹查询;(4)数据节点在其指纹库中查询该哈希指纹值是否命中,如果命中则转到步骤(5),否则转到步骤(8);(5)数据节点将<第i个数据块ID,PBA>二元组传送到查询节点;(6)查询节点根据<第i个数据块ID,PBA>二元组更新其地址映射表;(7)客户端判断是否虚拟机镜像文件中的所有数据块都已处理完毕,如果是,则过程结束,否则设置i=i+1,并返回步骤(3);(8)客户端将第i个数据块ID传送到查询节点,并向该查询节点请求分配新的PBA;(9)查询节点为第i个数据块分配新的PBA,更新其地址映射表,并将<哈希指纹值,PBA>二元组发回到数据节点;(10)数据节点根据<哈希指纹值,PBA>二元组更新其指纹库,将<第i个数据块ID,PBA>二元组发给客户端,并通知客户端发送第i个数据块;(11)客户端根据<第i个数据块ID,PBA>二元组发送第i个数据块到数据节点;(12)数据节点保存第i个数据块,并返回步骤(7);读过程,包括以下步骤:(1’)客户端向查询节点发送地址映射表读请求;(2’)查询节点根据地址映射表读请求将其地址映射表发送到客户端;(3’)查询节点设置计数器j=1;(4’)客户端根据地址映射表将虚拟机镜像文件的第j个数据块的PBA发送到对应的数据节点;(5’)对应的数据节点根据PBA在其指纹库中读取对应的第j个数据块,并将该数据块发回客户端;(6’)客户端判断是否虚拟机镜像文件的所有数据块均处理完毕,若是则过程结束,否则设置j=j+1,并返回步骤(4’)。优选地,每个数据块ID包括文件ID和LBA,且每个数据块的大小是4KB至2MB。优选地,哈希算法包括SHA-1、SHA-2、以及MD5算法。优选地,步骤(3)是采用DHT算法对哈希指纹值进行计算,以得到节点ID。按照本专利技术的另一方面,提供了一种并行重复数据删除系统,包括:第一模块,其设置于客户端中,用于将虚拟机镜像文件划分为多个相同大小的数据块,并且为每一个数据块分配一个数据块ID;第二模块,其设置于客户端中,用于设置计数器i=1;第三模块,其设置于客户端中,用于利用哈希算法对第i个数据块进行处理,以生成哈希指纹值,根据哈希指纹值生成对应的节点ID,并将<第i个数据块ID,哈希指纹值>二元组传送到哈希指纹值对应的节点ID所对应的数据节点进行哈希指纹查询;第四模块,其设置于数据节点中,用于在其指纹库中查询该哈希指纹值是否命中,如果命中则转到第五模块,否则转到第八模块;第五模块,其设置于数据节点中,用于将<第i个数据块ID,PBA>二元组传送到查询节点;第六模块,其设置于查询节点中,用于根据<第i个数据块ID,PBA>二元组更新其地址映射表;第七模块,其设置于客户端中,用于判断是否虚拟机镜像文件中的所有数据块都已处理完毕,如果是,则过程结束,否则设置i=i+1,并返回第三模块;第八模块,其设置于客户端中,用于将第i个数据块ID传送到查询节点,并向该查询节点请求分配新的PBA;第九模块,其设置于查询节点中,用于为第i个数据块分配新的PBA,更新其地址映射表,并将<哈希指纹值,PBA>二元组发回到数据节点;第十模块,其设置于数据节点中,用于根据<哈希指纹值,PBA>二元组更新其指纹库,将<第i个数据块ID,PBA>二元组发给客户端,并通知客户端发送第i个数据块;第十一模块,其设置于客户端中,用于根据<第i个数据块ID,PBA>二元组发送第i个数据块到数据节点;第十二模块,其设置于数据节点中,用于保存第i个数据块,并返回第七模块;第十三模块,其设置于客户端中,用于向查询节点发送地址映射表读请求;第十四模块,其设置于查询节点中,用于根据地址映射表读请求将其地址映射表发送到客户端;第十五模块,其设置于查询节点中,用于设置计数器j=1;第十六模块,其设置于客户端中,用于根据地址映射表将虚拟机镜像文件的第j个数据块的PBA发送到对应的数据节点;第十七模块,其设置于数据节点中,用于根据PBA在其指纹库中读取对应的第j个数据块,并将该数据块发回客户端;第十八模块,其设置于客户端中,用于判断是否虚拟机镜像文件的所有数据块均处理完毕,若是则过程结束,否则设置j=j+1,并返回第十六模块。总体而言,通过本专利技术所构思的以上技术方案与现有技术相比,能够取得下列有益效果:(1)由于本专利技术采用了多台数据节点实现并行性重复数据删除,从而解决了单节点重复数据删除系统中存在的处理性能瓶颈问题;(2)由于本专利技术数据节点的数量可以根据需要灵活配置,因此可以实现良好的可扩展性,以满足不同的性能需求;(3)由于本专利技术的多数据节点拥有更大的总内存容量、更多的CPU资源和更大的网络传输总带宽,因此能满足大规模系统的需求,并克服网络传输带宽的瓶颈限制;(4)本发本文档来自技高网...
一种并行重复数据删除方法

【技术保护点】
一种并行重复数据删除方法,其特征在于,包括:写过程,包括以下步骤:(1)客户端将虚拟机镜像文件划分为多个相同大小的数据块,并且为每一个数据块分配一个数据块ID;(2)客户端设置计数器i=1;(3)客户端利用哈希算法对第i个数据块进行处理,以生成哈希指纹值,根据哈希指纹值生成对应的节点ID,并将<第i个数据块ID,哈希指纹值>二元组传送到哈希指纹值对应的节点ID所对应的数据节点进行哈希指纹查询;(4)数据节点在其指纹库中查询该哈希指纹值是否命中,如果命中则转到步骤(5),否则转到步骤(8);(5)数据节点将<第i个数据块ID,PBA)>二元组传送到查询节点;(6)查询节点根据<第i个数据块ID,PBA>二元组更新其地址映射表;(7)客户端判断是否虚拟机镜像文件中的所有数据块都已处理完毕,如果是,则过程结束,否则设置i=i+1,并返回步骤(1);(8)客户端将第i个数据块ID传送到查询节点,并向该查询节点请求分配新的PBA;(9)查询节点为第i个数据块分配新的PBA,更新其地址映射表,并将<哈希指纹值,PBA>二元组发回到数据节点;(10)数据节点根据<哈希指纹值,PBA>二元组更新其指纹库,将<第i个数据块ID,PBA>二元组发给客户端,并通知客户端发送第i个数据块;(11)客户端根据<第i个数据块ID,PBA>二元组发送第i个数据块到数据节点;(12)数据节点保存第i个数据块,并返回步骤(7);读过程,包括以下步骤:(1’)客户端向查询节点发送地址映射表读请求;(2’)查询节点根据地址映射表读请求将其地址映射表发送到客户端;(3’)查询节点设置计数器j=1;(4’)客户端根据地址映射表将虚拟机镜像文件的第j个数据块的PBA发送到对应的数据节点;(5’)对应的数据节点根据PBA在其指纹库中读取对应的第j个数据块,并将该数据块发回客户端;(6’)客户端判断是否虚拟机镜像文件的所有数据块均处理完毕,若是则过程结束,否则设置j=j+1,并返回步骤(2’)。...

【技术特征摘要】
1.一种并行重复数据删除方法,其特征在于,包括:写过程,包括以下步骤:(1)客户端将虚拟机镜像文件划分为多个相同大小的数据块,并且为每一个数据块分配一个数据块ID;(2)客户端设置计数器i=1;(3)客户端利用哈希算法对第i个数据块进行处理,以生成哈希指纹值,根据哈希指纹值生成对应的节点ID,并将<第i个数据块ID,哈希指纹值>二元组传送到哈希指纹值对应的节点ID所对应的数据节点进行哈希指纹查询;(4)数据节点在其指纹库中查询该哈希指纹值是否命中,如果命中则转到步骤(5),否则转到步骤(8);(5)数据节点将<第i个数据块ID,PBA>二元组传送到查询节点;(6)查询节点根据<第i个数据块ID,PBA>二元组更新其地址映射表;(7)客户端判断是否虚拟机镜像文件中的所有数据块都已处理完毕,如果是,则过程结束,否则设置i=i+1,并返回步骤(3);(8)客户端将第i个数据块ID传送到查询节点,并向该查询节点请求分配新的PBA;(9)查询节点为第i个数据块分配新的PBA,更新其地址映射表,并将<哈希指纹值,PBA>二元组发回到数据节点;(10)数据节点根据<哈希指纹值,PBA>二元组更新其指纹库,将<第i个数据块ID,PBA>二元组发给客户端,并通知客户端发送第i个数据块;(11)客户端根据<第i个数据块ID,PBA>二元组发送第i个数据块到数据节点;(12)数据节点保存第i个数据块,并返回步骤(7);读过程,包括以下步骤:(1’)客户端向查询节点发送地址映射表读请求;(2’)查询节点根据地址映射表读请求将其地址映射表发送到客户端;(3’)查询节点设置计数器j=1;(4’)客户端根据地址映射表将虚拟机镜像文件的第j个数据块的PBA发送到对应的数据节点;(5’)对应的数据节点根据PBA在其指纹库中读取对应的第j个数据块,并将该数据块发回客户端;(6’)客户端判断是否虚拟机镜像文件的所有数据块均处理完毕,若是则过程结束,否则设置j=j+1,并返回步骤(4’)。2.根据权利要求1所述的并行重复数据删除方法,其特征在于,每个数据块ID包括文件ID和LBA,且每个数据块的大小是4KB至2MB。3.根据权利要求1所述的并行重复数据删除方法,其特征在于,哈希算法包括SHA-1、SHA-2、以及MD5算法。4.根据权利要求1所述的并行重复数据删除方法,其特征在于,步骤(3)是采用DHT算法对哈希...

【专利技术属性】
技术研发人员:曹强万胜刚林川黄国强谢长生
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北;42

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

1