一种重复数据删除方法及系统技术方案

技术编号:20680658 阅读:38 留言:0更新日期:2019-03-27 18:47
本申请涉及一种重复数据删除方法及系统。所述方法包括:步骤a:客户端按照设置的对象大小,将文件分为固定长度的数据块;步骤b:使用安全散列算法计算出所述数据块的Hash值;步骤c:根据所述Hash值判断所述数据块是否重复,并根据判断结果将所述数据块封装成不同类型的对象,根据所述对象的名称进行散列计算,得到所述对象应存储的集群节点和磁盘位置;步骤d:客户端按照所述散列计算结果,直接与所述对象存储的集群节点进行通讯,将所述对象存储到对应的磁盘位置。本申请不但可以减少重复数据占用的存储空间,还可以节省传输重复数据占用的带宽,保持Ceph分布式存储系统无中心节点的特点,不影响存储系统原有的存储过程。

【技术实现步骤摘要】
一种重复数据删除方法及系统
本申请属于数据处理
,特别涉及一种重复数据删除方法及系统。
技术介绍
随着社会信息化的不断推进和数据量的增长,企业中心的存储需求量越来越庞大,企业面临的快速备份和恢复的时间点越来越多,管理保存数据的成本及数据中心空间和能耗也变得越来越严重,分布式存储系统在数据存储方面具有很多的优势。Ceph分布式存储系统是一个拥有丰富特性、连接众多开源项目的生态系统,在完善的基础设施和较为稳定的运行模式下,Ceph正被越来越多的企业用户使用。研究发现,应用系统所保存的数据中高达60%是冗余的,而且随着时间的推移冗余数据越来越多。Ceph并没有提供解决冗余数据的方案,为了解决冗余数据而提出的重复数据删除技术,可以缩减冗余数据占用空间,并且可以降低数据管理成本,最大程度地利用已有资源。请参阅图1,图1为现有技术中主流的重复数据删除系统的结构图。在该重复数据删除系统中,系统顶层为文件访问协议层,可以支持若干种文件访问协议,如NFS,CIFS或者iSCSI等,通过文件访问协议层将存储子系统网络化,实现高速共享存储的目标。在访问协议层下是包括各种标准的文件服务接口的文件服务层,它负责管理文件的元数据和命名空间。在文件服务层下为数据块分析层,这一层定义了一种新的数据对象——数据块,它是对文件内容进行重复判断的基本单位。数据块分析层按照数据划分策略将文件划分成若干个数据块,同时计算出每个数据块的Hash值。这样文件可以通过其数据块Hash值列表来表示。数据块分析层通过数据块的Hash值比对,来确定当前数据块是否为重复的。数据块分析层下面为数据存储层,包括数据块存储和索引存储。数据块存储负责将唯一的数据块存储在磁盘中。为了支持快速查询建立数据块索引,使用数据库来保存数据块的Hash值以及数据块与Hash值的映射关系。该重复数据删除系统将文件按照自定义的数据划分策略,将文件划分成若干数据块并计算数据块的Hash值,将Hash值存储在数据库中进行集中存储,但是随着集群规模的扩大,Hash值越来越多,集中式的存储容易造成数据库节点的高负载,产生单节点瓶颈。
技术实现思路
本申请提供了一种重复数据删除方法、系统及电子设备,旨在至少在一定程度上解决现有技术中的上述技术问题之一。为了解决上述问题,本申请提供了如下技术方案:一种重复数据删除方法,包括以下步骤:步骤a:客户端按照设置的对象大小,将文件分为固定长度的数据块;步骤b:使用安全散列算法计算出数据块的Hash值;步骤c:根据Hash值判断所述数据块是否重复,并根据判断结果将所述数据块封装成不同类型的对象,根据对象的名称进行散列计算,得到对象应存储的集群节点和磁盘位置;步骤d:客户端按照所述散列计算结果,直接与对象存储的集群节点进行通讯,将对象存储到对应的磁盘位置。本申请实施例采取的技术方案还包括:在所述步骤a中,所述客户端根据文件的大小和设置的分块大小,按照固定长度将文件切分成数据块,将数据块封装成对象。本申请实施例采取的技术方案还包括:在所述步骤b中,所述客户端使用SHA-1算法计算每一个数据对象内容的Hash值,然后新建一个Hash对象。本申请实施例采取的技术方案还包括:在所述步骤c中,所述数据块封装成的对象包括:Ceph对象、Hash对象、重删对象,所述Ceph对象是对象名称oid由文件的ino和对象编号ono组成;所述Hash对象为每一个Ceph对象生成一个Hash对象,用于记录Ceph对象内容的Hash值;所述重删对象为:如果判断当前对象的Hash值已经存在,当前对象存储的数据为重复数据,将当前Ceph对象的内容替换为与该对象内容重复的原对象的oid。本申请实施例采取的技术方案还包括:所述步骤c还包括:在对象和对象存储集群间增加对象映射层。本申请实施例采取的技术方案还包括:所述步骤c还包括:客户端根据Hash对象的名称和集群状态进行散列计算,得到当前Hash对象应存储的磁盘编号,并查询是否有同名的对象存在,如果不存在同名对象,为Ceph对象对应的Hash对象添加附加扩展属性referencecount初始值为1,记录Ceph对象的重复数据,然后为当前Ceph对象添加附加属性flag和和hashvalue;如果存在同名对象,为集群中的Hash对象添加写锁,将referencecount的值加1,然后释放写锁,最后将当前对象做重复数据删除处理,将当前对象替换为占用存储空间更小的重删对象。本申请实施例采取的另一技术方案为:一种重复数据删除系统,包括:客户端:用于按照设置的对象大小,将文件分为固定长度的数据块,并使用安全散列算法计算出所述数据块的Hash值,根据Hash值判断当前数据块是否重复,并根据判断结果将所述数据块封装成不同类型的对象,根据所述对象的名称进行散列计算,得到对象应存储的集群节点和磁盘位置,直接与所述对象存储的集群节点进行通讯,将对象存储到对应的磁盘位置;元数据集群:用于提供文件元数据管理;监视器集群:用于负责集群内的节点生命周期管理、数据分布策略计算并维护集群的成员和状态;对象存储集群:用于提供对象存储和管理,并配合客户端完成重复数据删除工作。本申请实施例采取的技术方案还包括:所述客户端根据文件的大小和设置的分块大小,按照固定长度将文件切分成数据块,将数据块封装成对象。本申请实施例采取的技术方案还包括:所述数据块封装成的对象包括:Ceph对象、Hash对象、重删对象,所述Ceph对象是对象名称oid由文件的ino和对象编号ono组成;所述Hash对象为每一个Ceph对象生成一个Hash对象,用于记录Ceph对象内容的Hash值;所述重删对象为:如果判断当前对象的Hash值已经存在,当前对象存储的数据为重复数据,将当前Ceph对象的内容替换为与该对象内容重复的原对象的oid。本申请实施例采取的技术方案还包括:所述客户端查询是否有同名的对象存在,如果不存在同名对象,为Ceph对象对应的Hash对象添加附加扩展属性referencecount初始值为1,记录Ceph对象的重复数据,然后为当前Ceph对象添加附加属性flag和和hashvalue;如果存在同名对象,为集群中的Hash对象添加写锁,将referencecount的值加1,然后释放写锁,最后将当前对象做重复数据删除处理,将当前对象替换为占用存储空间更小的重删对象。相对于现有技术,本申请实施例产生的有益效果在于:本申请实施例将文件进行数据分块,割成成固定大小的数据块并且计算数据块的Hash值,根据数据块的Hash值判断其是否重复后,将数据块封装成不同的对象,并且将Hash值存储在对象的数据结构中,然后通过散列算法将对象分布式的存储到集群节点中,解决了主流重复数据删除系统的单节点瓶颈的缺点;通过计算可以直接找到Hash值的存储位置,不需要进行全集群查找,系统的重复判断速度更快;通过对象的替换完成重复数据的处理,替换后的对象占用极少的存储空间,并且本申请的设计可以使用SSD来提成文件读写速度。本申请不但可以减少重复数据占用的存储空间,还可以节省传输重复数据占用的带宽,保持Ceph分布式存储系统无中心节点的特点,不影响存储系统原有的存储过程。附图说明图1为现有技术中主流的重复数本文档来自技高网
...

【技术保护点】
1.一种重复数据删除方法,其特征在于,包括以下步骤:步骤a:客户端按照设置的对象大小,将文件分为固定长度的数据块;步骤b:使用安全散列算法计算出所述数据块的Hash值;步骤c:根据所述Hash值判断所述数据块是否重复,并根据判断结果将所述数据块封装成不同类型的对象,根据所述对象的名称进行散列计算,得到所述对象应存储的集群节点和磁盘位置;步骤d:客户端按照所述散列计算结果,直接与所述对象存储的集群节点进行通讯,将所述对象存储到对应的磁盘位置。

【技术特征摘要】
1.一种重复数据删除方法,其特征在于,包括以下步骤:步骤a:客户端按照设置的对象大小,将文件分为固定长度的数据块;步骤b:使用安全散列算法计算出所述数据块的Hash值;步骤c:根据所述Hash值判断所述数据块是否重复,并根据判断结果将所述数据块封装成不同类型的对象,根据所述对象的名称进行散列计算,得到所述对象应存储的集群节点和磁盘位置;步骤d:客户端按照所述散列计算结果,直接与所述对象存储的集群节点进行通讯,将所述对象存储到对应的磁盘位置。2.根据权利要求1所述的重复数据删除方法,其特征在于,在所述步骤a中,所述客户端根据文件的大小和设置的分块大小,按照固定长度将文件切分成数据块,将数据块封装成对象。3.根据权利要求1所述的重复数据删除方法,其特征在于,在所述步骤b中,所述客户端使用SHA-1算法计算每一个数据对象内容的Hash值,然后新建一个Hash对象。4.根据权利要求3所述的重复数据删除方法,其特征在于,在所述步骤c中,所述数据块封装成的对象包括:Ceph对象、Hash对象、重删对象,所述Ceph对象是对象名称oid由文件的ino和对象编号ono组成;所述Hash对象为每一个Ceph对象生成一个Hash对象,用于记录Ceph对象内容的Hash值;所述重删对象为:如果判断当前对象的Hash值已经存在,当前对象存储的数据为重复数据,将当前Ceph对象的内容替换为与该对象内容重复的原对象的oid。5.根据权利要求1所述的重复数据删除方法,其特征在于,所述步骤c还包括:在对象和对象存储集群间增加对象映射层。6.根据权利要求4所述的重复数据删除方法,其特征在于,所述步骤c还包括:客户端根据Hash对象的名称和集群状态进行散列计算,得到当前Hash对象应存储的磁盘编号,并查询是否有同名的对象存在,如果不存在同名对象,为Ceph对象对应的Hash对象添加附加扩展属性referencecount初始值为1,记录Ceph对象的重复数据,然后为当前Ceph对象添加附加属性flag和和hashvalue;如果存在同名对象,为集群中的Hash对象添...

【专利技术属性】
技术研发人员:王锦鹏王和康林鹏程刘毅刘凯王洋须成忠
申请(专利权)人:深圳先进技术研究院深圳市瑞驰信息技术有限公司
类型:发明
国别省市:广东,44

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

1