一种用于去中心云环境的重复数据删除系统及方法

文档序号:10593790阅读:211来源:国知局
一种用于去中心云环境的重复数据删除系统及方法
【专利摘要】本发明公开了一种用于去中心云环境的重复数据删除系统及方法,该系统由进行文件操作的客户端、存储数据块和管理元数据的存储节点共同构成,客户端包括文件预处理模块、局部重删模块、第一元数据管理模块、数据传输模块,存储节点包括重删模块、第二元数据管理模块、存储模块;该方法针对去中心云环境中存在的冗余数据,从客户端和存储节点共同执行重复数据删除操作,先删除重复的文件,再删除重复的数据块,从而降低了去中心云环境中数据的冗余性。
【专利说明】
一种用于去中心云环境的重复数据删除系统及方法
技术领域
[0001]本发明涉及一种用于去中心云环境的重复数据删除系统及方法,属于计算机数据存储技术领域。
【背景技术】
[0002]目前,云存储系统中重复数据删除技术的研究相对较少且大都集中于有中心云环境中数据的安全,典型的重删机制有基于代理加密的重删、基于交互式PoW(Pr00f ofOwnership,所有者证明)的重删、基于数据流行度的重删、基于语义安全的混合重删等。此夕卜,还有权衡存储效率和容错性的动态数据重删机制。然而,有中心云环境中主节点(元数据服务器)管理着所有的元数据,真实的数据存放在各个存储节点上,这种管理方式较为简单方便,但很容易成为影响系统性能的瓶颈。尤其是,当存储节点数量规模很大时。一旦主节点宕机,客户端便无法与存储节点直接进行交互,存在着很大的风险性。无中心云环境的优势在于没有主节点,不受其限制,元数据信息和数据块的存储均由存储节点存储和管理。目前,并没有适用于无中心云环境的重复数据删除方法。

【发明内容】

[0003]本发明所要解决的技术问题是:提供一种用于去中心云环境的重复数据删除系统及方法,对重复文件和文件中的重复数据块进行删除,降低了去中心云环境的数据冗余性。
[0004]本发明为解决上述技术问题采用以下技术方案:
[0005]—种用于去中心云环境的重复数据删除系统,该系统包括若干客户端和若干存储节点,各存储节点逻辑构成Chord环,所述客户端包括文件预处理模块、局部重删模块、第一元数据管理模块、数据传输模块,存储节点包括重删模块、第二元数据管理模块、存储模块;
[0006]所述文件预处理模块用于对本地待上传文件进行分类;
[0007]所述局部重删模块用于对分类后的文件计算其指纹值,并将待上传文件的指纹值与本地已上传的同类型文件的指纹值进行比较,若指纹值相同,则不上传该文件,否则,将待上传文件的指纹值经数据传输模块上传到指纹值对应的存储节点;
[0008]所述第一元数据管理模块用于记录客户端已上传文件的指纹值及文件其他基本属性信息;
[0009]所述重删模块用于通过Chord算法查找待上传文件的指纹值,若找到,则通过数据传输模块通知客户端不用上传该文件,否则,告知客户端待上传文件为非重复文件;
[0010]所述局部重删模块还用于将非重复文件切分成数据块,并计算各数据块的指纹值,将各数据块的指纹值经数据传输模块上传到指纹值对应的存储节点;
[0011 ]所述重删模块还用于通过Chord算法查找数据块的指纹值,若找到,则通知客户端不用上传该数据块,否则,将该数据块上传到对应存储节点的存储模块;
[0012]所述第二元数据管理模块用于记录落在存储节点的各文件的指纹值,及构成文件的各数据块的元数据信息。
[0013]一种用于去中心云环境的重复数据删除方法,该方法包括如下步骤:
[0014]步骤I,各客户端对本地待上传文件进行分类,计算待上传文件的指纹值,将待上传文件的指纹值与本地已上传的同类型文件的指纹值进行比较,若指纹值相同,则将待上传文件删除,否则,将待上传文件的指纹值通过访问入口节点上传到对应的存储节点上;
[0015]步骤2,访问入口节点通过Chord算法查找待上传文件的指纹值,若找到,则通知客户端不用上传该文件,否则,告知客户端待上传文件为非重复文件;
[0016]步骤3,客户端将非重复文件切分成若干数据块,并计算各数据块的指纹值,将各数据块的指纹值上传到访问入口节点,由访问入口节点通过Chord算法查找数据块的指纹值,若找到,则通知客户端不用上传该数据块,否则,将该数据块上传到对应的存储节点。
[0017]作为本发明方法的一种优选方案,该方法还包括步骤4:当客户端向存储节点发出在线修改文件请求时,由文件指纹值所在存储节点将构成该文件的数据块预取到该存储节点上,供客户端进行编辑;此时,需要重新计算修改后的数据块的指纹值,并通过Chord算法查找重新计算的指纹值是否在数据块对应的存储节点上,若存在,则不保留修改后的数据块,若不存在,则将修改后的数据块存储到重新计算的指纹值对应的存储节点上。
[0018]作为本发明方法的一种优选方案,步骤3所述将非重复文件切分成若干数据块,并计算各数据块的指纹值的具体方法为:利用定长分块算法对非重复文件进行切分,块长为64MB,当非重复文件小于等于64MB时,无需切分,对所有数据块利用MD5算法计算指纹值。
[0019]作为本发明方法的一种优选方案,步骤I所述计算待上传文件的指纹值的算法为MD5算法。
[0020]本发明采用以上技术方案与现有技术相比,具有以下技术效果:
[0021]1、本发明用于去中心云环境的重复数据删除系统及方法,针对无中心云环境中数据存在冗余性的问题,对重复数据进行删除,降低了去中心云环境中数据的冗余性。
[0022]2、本发明用于去中心云环境的重复数据删除系统及方法,元数据不再由元数据服务器统一管理,全局重复数据删除的实现较为困难,尤其是与存储端现有指纹值的比对。存储端各个存储节点采用Chord算法作为路由算法,使得指纹值的比对变得更为方便快捷。
【附图说明】
[0023]图1是本发明用于去中心云环境的重复数据删除系统的整体架构图。
[0024]图2是本发明用于去中心云环境的重复数据删除方法的流程图。
【具体实施方式】
[0025]下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
[0026]如图1所示,为本发明去中心云环境的重复数据删除系统的体系架构图。该系统由m个客户端(Client)和η个存储节点(Storage Node,Snode)共同构成。其中,客户端主要是发起文件上传、访问、修改、删除等操作的对象;存储节点则负责存储数据块及其元数据信息。客户端进行文件级重复数据删除和数据块级重删的准备工作(文件切分和指纹值计算)。
[0027]客户端主要有文件预处理模块、局部重删模块、元数据管理模块和数据传输模块,其中文件预处理模块依据文件的类型进行文件分类,后期进行数据块级重删时先过滤掉小于64MB的非重复文件;局部重删模块从文件级和数据块级两个角度进行重删操作;元数据管理模块主要记录客户端已上传数据块的指纹值信息,以避免本地重复数据的上传;数据传输模块负责将待上传文件的元数据信息上传到存储端访问入口,将非重复数据块上传到目标存储节点上。各模块之间有着一定的联系,文件预处理模块处理后的文件交给局部重删模块进行文件级的重删,经过文件级重删后的非重复文件再返还给文件预处理模块进行过滤,最后再由局部重删模块执行数据块级重删的准备工作,包括文件切分成数据块和数据块指纹值的计算。
[0028]存储节点主要包括重删模块、元数据管理模块和存储模块,其中重删模块主要是用来去除不同用户上传的相同数据,包括相同文件和相同数据块;元数据管理模块记录本节点上的数据块的元数据信息和文件的重构信息表;存储模块用来存储真实的数据块。
[0029]如图2所示,为本发明用于去中心云环境的重复数据删除方法的流程图,按照以下各步骤进行重复数据删除:
[0030]步骤一:每个客户端对本地待上传文件进行预处理,通过文件级的局部重复数据删除操作以防重复文件的再次上传,然后将客户端无法确定为重复文件的文件指纹值批量上传到存储端的访问入口节点N.上。其中,文件级重复数据删除是通过MD5算法计算出文件的指纹值,首先去除待上传文件中相同的文件,然后与本地已上传的历史文件进行比对去除本地已上传过的文件,最后将无法确认为重复文件的文件通过查找存储端的元数据信息来确定。
[0031]存储端的访问入口节点是根据每个客户端用户的自身特点而特定的。用户注册时的id(全局唯一)决定了用户资料所应存放的存储节点,即该用户在存储端的访问入口。
[0032]步骤二:由存储端的访问入口节点Na。。使用Chord算法查找该文件的指纹值所在的存储节点以确定重复文件,若找到,则通知客户端不用上传,否则确认为非重复文件。其中,Chord算法作为去中心云环境存储端各个节点互相通信的路由算法,可快速查找到给定指纹值所在的目标存储节点,若该目标存储节点上没有该指纹值,则该文件为非重复文件,否则为重复文件。
[0033]步骤三:客户端对于非重复文件进行数据块级重复数据删除的准备工作,包括使用定长块切分文件(块长为64MB,文件小于等于64MB时,无需切分,直接将文件当作数据块处理)和计算切分好的数据块的指纹值(MD5算法),并通过存储端的访问入口节点1。。使用Chord算法来查找这些数据块的指纹值,并将非重复数据块上传到对应的存储节点上。
[0034]步骤四:客户端发出在线修改文件的请求时,由文件指纹值所在存储节点仏&根据文件的元数据信息将数据块预取到本节点Nflle上,供客户端进行编辑。每个存储节点上均保存着数据块的指纹值信息,也保存着文件的指纹值信息以及文件的重构信息。通过文件指纹值便可以定位到组成其的每个数据块的物理地址。通过查找文件的指纹值所在的存储节点,便可以在该节点上找到该文件的重构信息表,即组成该文件的各个数据块的相关?目息O
[00;35]步骤五:节点Nfiie重新计算修改后的数据块的指纹值,使用Chord算法查找该指纹值以确认存储端是否已经存在。若存在,则节点Nflle不用保留修改后的数据块,更新相应的元数据;否则的话根据Chord算法找到其目标存储节点,将修改后的数据块迀移到目标节点上。
[0036]存储端的路由算法采用Chord算法,可保证同一个数据块始终存放在同一个存储节点上。
[0037]以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。
【主权项】
1.一种用于去中心云环境的重复数据删除系统,其特征在于,该系统包括若干客户端和若干存储节点,各存储节点逻辑构成Chord环,所述客户端包括文件预处理模块、局部重删模块、第一元数据管理模块、数据传输模块,存储节点包括重删模块、第二元数据管理模块、存储模块; 所述文件预处理模块用于对本地待上传文件进行分类; 所述局部重删模块用于对分类后的文件计算其指纹值,并将待上传文件的指纹值与本地已上传的同类型文件的指纹值进行比较,若指纹值相同,则不上传该文件,否则,将待上传文件的指纹值经数据传输模块上传到指纹值对应的存储节点; 所述第一元数据管理模块用于记录客户端已上传文件的指纹值及文件其他基本属性信息; 所述重删模块用于通过Chord算法查找待上传文件的指纹值,若找到,则通过数据传输模块通知客户端不用上传该文件,否则,告知客户端待上传文件为非重复文件; 所述局部重删模块还用于将非重复文件切分成数据块,并计算各数据块的指纹值,将各数据块的指纹值经数据传输模块上传到指纹值对应的存储节点; 所述重删模块还用于通过Chord算法查找数据块的指纹值,若找到,则通知客户端不用上传该数据块,否则,将该数据块上传到对应存储节点的存储模块; 所述第二元数据管理模块用于记录落在存储节点的各文件的指纹值,及构成文件的各数据块的元数据信息。2.—种用于去中心云环境的重复数据删除方法,其特征在于,该方法包括如下步骤: 步骤I,各客户端对本地待上传文件进行分类,计算待上传文件的指纹值,将待上传文件的指纹值与本地已上传的同类型文件的指纹值进行比较,若指纹值相同,则将待上传文件删除,否则,将待上传文件的指纹值通过访问入口节点上传到对应的存储节点上; 步骤2,访问入口节点通过Chord算法查找待上传文件的指纹值,若找到,则通知客户端不用上传该文件,否则,告知客户端待上传文件为非重复文件; 步骤3,客户端将非重复文件切分成若干数据块,并计算各数据块的指纹值,将各数据块的指纹值上传到访问入口节点,由访问入口节点通过Chord算法查找数据块的指纹值,若找到,则通知客户端不用上传该数据块,否则,将该数据块上传到对应的存储节点。3.根据权利要求2所述用于去中心云环境的重复数据删除方法,其特征在于,该方法还包括步骤4:当客户端向存储节点发出在线修改文件请求时,由文件指纹值所在存储节点将构成该文件的数据块预取到该存储节点上,供客户端进行编辑;此时,需要重新计算修改后的数据块的指纹值,并通过Chord算法查找重新计算的指纹值是否已经在对应的存储节点上,若存在,则不保留修改后的数据块,若不存在,则将修改后的数据块存储到重新计算的指纹值对应的存储节点上。4.根据权利要求2或3所述用于去中心云环境的重复数据删除方法,其特征在于,步骤3所述将非重复文件切分成若干数据块,并计算各数据块的指纹值的具体方法为:利用定长分块算法对非重复文件进行切分,块长为64MB,当非重复文件小于等于64MB时,无需切分,对所有数据块利用MD5算法计算指纹值。5.根据权利要求2或3所述用于去中心云环境的重复数据删除方法,其特征在于,步骤I所述计算待上传文件的指纹值的算法为MD5算法。
【文档编号】G06F17/30GK105955675SQ201610456843
【公开日】2016年9月21日
【申请日】2016年6月22日
【发明人】徐小龙, 涂群
【申请人】南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1