CN107330097B - 一种分布式重删装置、数据指纹存储、读取方法及系统 - Google Patents
一种分布式重删装置、数据指纹存储、读取方法及系统 Download PDFInfo
- Publication number
- CN107330097B CN107330097B CN201710543294.6A CN201710543294A CN107330097B CN 107330097 B CN107330097 B CN 107330097B CN 201710543294 A CN201710543294 A CN 201710543294A CN 107330097 B CN107330097 B CN 107330097B
- Authority
- CN
- China
- Prior art keywords
- data
- sequence number
- fingerprint
- target
- size
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000013507 mapping Methods 0.000 claims abstract description 22
- 238000004364 calculation method Methods 0.000 claims abstract description 21
- 230000002349 favourable effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
- G06F16/152—File search processing using file content signatures, e.g. hash values
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
- G06F16/1752—De-duplication implemented within the file system, e.g. based on file segments based on file chunks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Library & Information Science (AREA)
- Collating Specific Patterns (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种分布式重删装置、数据指纹存储、读取方法及系统,上述数据指纹存储方法包括:分别获取目标数据块的序号和数据指纹,相应得到第一序号和目标指纹;利用预设的序号映射公式,计算出与第一序号对应的第二序号;将第二序号对应的数据块的标识号输入至CRUSH算法,以确定出与第二序号对应的OSD存储设备;将第一序号输入至预设的偏移量计算公式,以对目标指纹在OSD存储设备上进行存储时的偏移量进行计算,得到相应的存储位置偏移量;依据存储位置偏移量,将目标指纹存储至OSD存储设备的相应位置上。本申请可以实现对所有目标数据块的数据指纹的统一有序的存储,并有利于提升保存下来的数据指纹的稳定性,进而可以提升数据指纹读写效率。
Description
技术领域
本发明涉及存储技术领域,特别涉及一种分布式重删装置、数据指纹存储、读取方法及系统。
背景技术
分布式存储系统是一种将数据分散存储在多台独立设备上的存储系统。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
重复数据删除(De-duplication,简称重删)技术是一种容量优化技术,它通过消除存储系统中重复的数据,缩减系统中实际存储的数据或通过网络传输的数据,在备份、长期归档和数据灾难恢复等方面得到了广泛的应用。在工业界和学术界已经有相应的产品和技术研究成果。近年来,随着软件定义存储的发展,及虚拟化技术、专用处理器技术和新型存储介质的出现,结合在线重复数据处理和降低存储单位容量成本的考虑,重复数据删除技术需求越来越迫切。
Ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的分布式文件系统。基于Ceph设计的分布式存储系统在业界已经存在大量的商用产品,而且基于Ceph的重删方案业界也在研究实现中。目前来看,业界基于Ceph的重删系统普遍存在数据指纹存储位置不合理的情况,致使数据指纹读写效率低。
发明内容
有鉴于此,本发明的目的在于提供一种分布式重删装置、数据指纹存储、读取方法及系统,能够提升数据指纹存储位置的合理性,从而有利于提高数据指纹的读写效率。其具体方案如下:
一种数据指纹存储方法,应用于分布式重删系统,包括:
分别获取目标数据块的序号和数据指纹,相应得到第一序号和目标指纹;
利用预设的序号映射公式,计算出与所述第一序号对应的第二序号;
将所述第二序号对应的数据块的标识号输入至CRUSH算法,以确定出与所述第二序号对应的OSD存储设备;
将所述第一序号输入至预设的偏移量计算公式,以对所述目标指纹在所述OSD存储设备上进行存储时的偏移量进行计算,得到相应的存储位置偏移量;
依据所述存储位置偏移量,将所述目标指纹存储至所述OSD存储设备的相应位置上。
可选的,获取所述目标数据块的数据指纹的过程,包括:
利用哈希函数,对所述目标数据块进行指纹计算,得到所述目标指纹。
可选的,所述哈希函数为SHA-1哈希函数。
可选的,所述序号映射公式具体为:
j=int(i/int(block_size/hash size));
式中,j表示所述第二序号,i表示所述第一序号,block_size表示数据块的大小,hash size表示所述哈希函数的输出字节数。
可选的,所述偏移量计算公式具体为:
offset=(i%int(block_size/hash size))*hash size;
式中,offset表示所述存储位置偏移量,i表示所述第一序号,block_size表示数据块的大小,hash size表示所述哈希函数的输出字节数。
本发明进一步公开了一种数据指纹读取方法,应用于分布式重删系统,包括:
获取待读取数据指纹所对应的目标数据块的序号,得到第三序号;
利用预设的序号映射公式,计算出与所述第三序号对应的第四序号;
将所述第四序号对应的数据块的标识号输入至CRUSH算法,以确定与所述第四序号对应的OSD存储设备;
读取出所述OSD存储设备上保存的全部数据,得到相应的数据集;
根据所述第三序号,从所述数据集中获取所述目标数据块的数据指纹。
可选的,所述序号映射公式具体为:
j=int(i/int(block_size/hash size));
式中,j表示所述第四序号,i表示所述第三序号,block_size表示数据块的大小,hash size表示哈希函数的输出字节数,所述哈希函数为用于计算数据指纹的函数。
可选的,所述根据所述第三序号,从所述数据集中获取所述目标数据块的数据指纹的过程,包括:
将所述第三序号输入至预设的元素序号确定公式,以确定所述目标数据块的数据指纹在所述数据集中对应的元素序号,得到目标序号;
将所述数据集中元素序号与所述目标序号相一致的数据提取出来,得到所述目标数据块的数据指纹;
其中,所述元素序号确定公式为:
k=i%int(block_size/hash size);
式中,k表示所述目标序号,i表示所述第三序号,block_size表示数据块的大小,hash size表示所述哈希函数的输出字节数。
可选的,在得到所述数据集之后,还包括:
将所述数据集保存至本地缓存中。
可选的,所述获取待读取数据指纹所对应的目标数据块的序号的过程之前,还包括:
判断本地缓存中是否存在与所述目标数据块对应的数据指纹,如果是,则读取该数据指纹并结束,如果否,则进入获取待读取数据指纹所对应的目标数据块的序号的步骤。
本发明还相应公开了一种数据指纹存储系统,应用于分布式重删系统,包括:
信息获取模块,用于分别获取目标数据块的序号和数据指纹,相应得到第一序号和目标指纹;
序号计算模块,用于利用预设的序号映射公式,计算出与所述第一序号对应的第二序号;
存储设备确定模块,用于将所述第二序号对应的数据块的标识号输入至CRUSH算法,以确定出与所述第二序号对应的OSD存储设备;
偏移量确定模块,用于将所述第一序号输入至预设的偏移量计算公式,以对所述目标指纹在所述OSD存储设备上进行存储时的偏移量进行计算,得到相应的存储位置偏移量;
指纹存储模块,用于依据所述存储位置偏移量,将所述目标指纹存储至所述OSD存储设备的相应位置上。
本发明还相应公开了一种数据指纹读取系统,应用于分布式重删系统,包括:
序号获取模块,用于获取待读取数据指纹所对应的目标数据块的序号,得到第三序号;
序号计算模块,用于利用预设的序号映射公式,计算出与所述第三序号对应的第四序号;
存储设备确定模块,用于将所述第四序号对应的数据块的标识号输入至CRUSH算法,以确定与所述第四序号对应的OSD存储设备;
数据读取模块,用于读取出所述OSD存储设备上保存的全部数据,得到相应的数据集;
指纹选取模块,用于根据所述第三序号,从所述数据集中获取所述目标数据块的数据指纹。
本发明进一步公开了一种分布式重删系统,包括前述公开的数据指纹存储系统以及数据指纹读取系统。
本发明还进一步公开了一种分布式重删装置,包括前述公开的分布式重删系统。
本发明中,数据指纹存储方法,应用于分布式重删系统,包括:分别获取目标数据块的序号和数据指纹,相应得到第一序号和目标指纹;利用预设的序号映射公式,计算出与第一序号对应的第二序号;将第二序号对应的数据块的标识号输入至CRUSH算法,以确定出与第二序号对应的OSD存储设备;将第一序号输入至预设的偏移量计算公式,以对目标指纹在OSD存储设备上进行存储时的偏移量进行计算,得到相应的存储位置偏移量;依据存储位置偏移量,将目标指纹存储至OSD存储设备的相应位置上。
可见,本发明通过CRUSH算法来确定出对目标数据块的数据指纹进行保存的OSD存储设备,并利用目标数据块的序号以及预设的偏移量计算公式来确定出目标数据块的数据指纹在OSD存储设备上的存储位置偏移量,也即由此得到目标数据块的数据指纹在OSD存储设备上的具体存储位置,通过上述方案可以确认出每一目标数据块的数据指纹具体应该保存在哪个OSD存储设备上,以及确定出每一目标数据块的数据指纹在相应的OSD存储设备上的具体存储位置,由此可以实现对所有目标数据块的数据指纹的统一有序的存储,并有利于提升保存下来的数据指纹的稳定性,进而可以提升数据指纹读写效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种数据指纹存储方法流程图;
图2本发明实施例公开的数据指纹存储示意图;
图3为本发明实施例公开的一种数据指纹读取方法流程图;
图4为本发明实施例公开的一种数据指纹存储系统结构示意图;
图5为本发明实施例公开的一种数据指纹读取系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种数据指纹存储方法,应用于分布式重删系统,参见图1所示,该方法包括:
步骤S11:分别获取目标数据块的序号和数据指纹,相应得到第一序号和目标指纹。
本实施例中,上述获取目标数据块的数据指纹的过程,具体可以包括:利用哈希函数,对目标数据块进行指纹计算,得到目标指纹。
其中,上述哈希函数具体可以为SHA-1哈希函数。
步骤S12:利用预设的序号映射公式,计算出与第一序号对应的第二序号。
本实施例中,上述序号映射公式具体可以为:
j=int(i/int(block_size/hash size));
式中,j表示第二序号,i表示第一序号,block_size表示数据块的大小,hash size表示哈希函数的输出字节数。
步骤S13:将第二序号对应的数据块的标识号输入至CRUSH算法,以确定出与第二序号对应的OSD存储设备。
需要指出的是,上述CRUSH算法(CRUSH,即Controlled Replication Un-derScalable Hashing)是Rados(即Reliable Autonomic Distributed Object Storage)中的一种伪随机数据分布算法。另外,上述OSD存储设备(OSD,即Object Storage Device)是一种对象存储设备。
步骤S14:将第一序号输入至预设的偏移量计算公式,以对目标指纹在OSD存储设备上进行存储时的偏移量进行计算,得到相应的存储位置偏移量。
本实施例中,上述偏移量计算公式具体可以为:
offset=(i%int(block_size/hash size))*hash size;
式中,offset表示存储位置偏移量,i表示第一序号,block_size表示数据块的大小,hash size表示哈希函数的输出字节数。
步骤S15:依据存储位置偏移量,将目标指纹存储至OSD存储设备的相应位置上。
也即,由上可知,本实施例具体是采用{oidi,Vector[ocfp0…ocfpn-1]}方式来存储数据指纹,其中,oidi表示第i个目标数据块,n=block size/hash size的最大整数,i取值{0,n,2n…mn},m为大于0的整数,hash size为哈希函数的输出字节数,即每个oid映射的OSD上存储n个指纹数据ocfp。其存储形式如图2所示。
可见,本发明实施例通过CRUSH算法来确定出对目标数据块的数据指纹进行保存的OSD存储设备,并利用目标数据块的序号以及预设的偏移量计算公式来确定出目标数据块的数据指纹在OSD存储设备上的存储位置偏移量,也即由此得到目标数据块的数据指纹在OSD存储设备上的具体存储位置,通过上述方案可以确认出每一目标数据块的数据指纹具体应该保存在哪个OSD存储设备上,以及确定出每一目标数据块的数据指纹在相应的OSD存储设备上的具体存储位置,由此可以实现对所有目标数据块的数据指纹的统一有序的存储,并有利于提升保存下来的数据指纹的稳定性,进而可以提升数据指纹读写效率。
进一步的,本发明实施例还公开了一种数据指纹读取方法,应用于分布式重删系统,参见图3所示,该方法包括:
步骤S21:获取待读取数据指纹所对应的目标数据块的序号,得到第三序号。
步骤S22:利用预设的序号映射公式,计算出与第三序号对应的第四序号。
其中,上述序号映射公式具体为:
j=int(i/int(block_size/hash size));
式中,j表示第四序号,i表示第三序号,block_size表示数据块的大小,hash size表示哈希函数的输出字节数,哈希函数为用于计算数据指纹的函数。
步骤S23:将第四序号对应的数据块的标识号输入至CRUSH算法,以确定与第四序号对应的OSD存储设备。
步骤S24:读取出OSD存储设备上保存的全部数据,得到相应的数据集。
步骤S25:根据第三序号,从数据集中获取目标数据块的数据指纹。
具体的,上述根据第三序号,从数据集中获取目标数据块的数据指纹的过程,可以包括:
将第三序号输入至预设的元素序号确定公式,以确定目标数据块的数据指纹在数据集中对应的元素序号,得到目标序号;将数据集中元素序号与目标序号相一致的数据提取出来,得到目标数据块的数据指纹;
其中,上述元素序号确定公式具体为:
k=i%int(block_size/hash size);
式中,k表示目标序号,i表示第三序号,block_size表示数据块的大小,hash size表示哈希函数的输出字节数。
进一步的,本实施例步骤S24中,在得到数据集之后,还可以包括:将数据集保存至本地缓存中。
进一步的,本实施例步骤S21中的获取待读取数据指纹所对应的目标数据块的序号的过程之前,还可以包括:
判断本地缓存中是否存在与目标数据块对应的数据指纹,如果是,则读取该数据指纹并结束,如果否,则进入获取待读取数据指纹所对应的目标数据块的序号的步骤。
也即,为了进一步提升数据指纹的读取效率,本实施例可以在步骤S24获取到上述数据集之后,将该数据集保存在本地缓存中,这样后续需要对其他数据指纹进行读取时,便可以直接从本地缓存中进行读取,而无需频繁地去OSD存储设备中进行读取,从而进一步提升了数据指纹的读取效率。
相应的,本发明实施例还公开了一种数据指纹存储系统,应用于分布式重删系统,参见图4所示,上述数据指纹存储系统包括:
信息获取模块11,用于分别获取目标数据块的序号和数据指纹,相应得到第一序号和目标指纹;
序号计算模块12,用于利用预设的序号映射公式,计算出与第一序号对应的第二序号;
存储设备确定模块13,用于将第二序号对应的数据块的标识号输入至CRUSH算法,以确定出与第二序号对应的OSD存储设备;
偏移量确定模块14,用于将第一序号输入至预设的偏移量计算公式,以对目标指纹在OSD存储设备上进行存储时的偏移量进行计算,得到相应的存储位置偏移量;
指纹存储模块15,用于依据存储位置偏移量,将目标指纹存储至OSD存储设备的相应位置上。
关于上述各个模块更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
相应的,本发明实施例还公开了一种数据指纹读取系统,应用于分布式重删系统,参见图5所示,上述数据指纹读取系统包括:
序号获取模块21,用于获取待读取数据指纹所对应的目标数据块的序号,得到第三序号;
序号计算模块22,用于利用预设的序号映射公式,计算出与第三序号对应的第四序号;
存储设备确定模块23,用于将第四序号对应的数据块的标识号输入至CRUSH算法,以确定与第四序号对应的OSD存储设备;
数据读取模块24,用于读取出OSD存储设备上保存的全部数据,得到相应的数据集;
指纹选取模块25,用于根据第三序号,从数据集中获取目标数据块的数据指纹。
关于上述各个模块更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
进一步的,本发明实施例还公开了一种分布式重删系统,包括前述实施例公开的数据指纹存储系统以及数据指纹读取系统。
关于上述数据指纹存储系统以及数据指纹读取系统的具体构造可以参考前述实施例中公开的相应内容,在此不再进行赘述。
另外,本发明实施例还公开了一种分布式重删装置,包括前述实施例中公开的分布式重删系统。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种分布式重删装置、数据指纹存储、读取方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (11)
1.一种数据指纹存储方法,其特征在于,应用于分布式重删系统,包括:
分别获取目标数据块的序号和数据指纹,相应得到第一序号和目标指纹;其中,获取所述目标数据块的数据指纹的过程,包括:利用哈希函数,对所述目标数据块进行指纹计算,得到所述目标指纹;
利用预设的序号映射公式,计算出与所述第一序号对应的第二序号;
将所述第二序号对应的数据块的标识号输入至CRUSH算法,以确定出与所述第二序号对应的OSD存储设备;
将所述第一序号输入至预设的偏移量计算公式,以对所述目标指纹在所述OSD存储设备上进行存储时的偏移量进行计算,得到相应的存储位置偏移量;
依据所述存储位置偏移量,将所述目标指纹存储至所述OSD存储设备的相应位置上;
并且,所述序号映射公式具体为:
j=int(i/int(block_size/hash size));
式中,j表示所述第二序号,i表示所述第一序号,block_size表示数据块的大小,hashsize表示所述哈希函数的输出字节数。
2.根据权利要求1所述的数据指纹存储方法,其特征在于,所述哈希函数为SHA-1哈希函数。
3.根据权利要求1所述的数据指纹存储方法,其特征在于,所述偏移量计算公式具体为:
offset=(i%int(block_size/hash size))*hash size;
式中,offset表示所述存储位置偏移量,i表示所述第一序号,block_size表示数据块的大小,hash size表示所述哈希函数的输出字节数。
4.一种数据指纹读取方法,其特征在于,应用于分布式重删系统,包括:
获取待读取数据指纹所对应的目标数据块的序号,得到第三序号;
利用预设的序号映射公式,计算出与所述第三序号对应的第四序号;
将所述第四序号对应的数据块的标识号输入至CRUSH算法,以确定与所述第四序号对应的OSD存储设备;
读取出所述OSD存储设备上保存的全部数据,得到相应的数据集;
根据所述第三序号,从所述数据集中获取所述目标数据块的数据指纹;
并且,所述序号映射公式具体为:
j=int(i/int(block_size/hash size));
式中,j表示所述第四序号,i表示所述第三序号,block_size表示数据块的大小,hashsize表示哈希函数的输出字节数,所述哈希函数为用于计算数据指纹的函数。
5.根据权利要求4所述的数据指纹读取方法,其特征在于,所述根据所述第三序号,从所述数据集中获取所述目标数据块的数据指纹的过程,包括:
将所述第三序号输入至预设的元素序号确定公式,以确定所述目标数据块的数据指纹在所述数据集中对应的元素序号,得到目标序号;
将所述数据集中元素序号与所述目标序号相一致的数据提取出来,得到所述目标数据块的数据指纹;
其中,所述元素序号确定公式为:
k=i%int(block_size/hash size);
式中,k表示所述目标序号,i表示所述第三序号,block_size表示数据块的大小,hashsize表示所述哈希函数的输出字节数。
6.根据权利要求4或5所述的数据指纹读取方法,其特征在于,在得到所述数据集之后,还包括:
将所述数据集保存至本地缓存中。
7.根据权利要求4或5所述的数据指纹读取方法,其特征在于,所述获取待读取数据指纹所对应的目标数据块的序号的过程之前,还包括:
判断本地缓存中是否存在与所述目标数据块对应的数据指纹,如果是,则读取该数据指纹并结束,如果否,则进入获取待读取数据指纹所对应的目标数据块的序号的步骤。
8.一种数据指纹存储系统,其特征在于,应用于分布式重删系统,包括:
信息获取模块,用于分别获取目标数据块的序号和数据指纹,相应得到第一序号和目标指纹;其中,获取所述目标数据块的数据指纹的过程,包括:利用哈希函数,对所述目标数据块进行指纹计算,得到所述目标指纹;
序号计算模块,用于利用预设的序号映射公式,计算出与所述第一序号对应的第二序号;
存储设备确定模块,用于将所述第二序号对应的数据块的标识号输入至CRUSH算法,以确定出与所述第二序号对应的OSD存储设备;
偏移量确定模块,用于将所述第一序号输入至预设的偏移量计算公式,以对所述目标指纹在所述OSD存储设备上进行存储时的偏移量进行计算,得到相应的存储位置偏移量;
指纹存储模块,用于依据所述存储位置偏移量,将所述目标指纹存储至所述OSD存储设备的相应位置上;
并且,所述序号映射公式具体为:
j=int(i/int(block_size/hash size));
式中,j表示所述第二序号,i表示所述第一序号,block_size表示数据块的大小,hashsize表示所述哈希函数的输出字节数。
9.一种数据指纹读取系统,其特征在于,应用于分布式重删系统,包括:
序号获取模块,用于获取待读取数据指纹所对应的目标数据块的序号,得到第三序号;
序号计算模块,用于利用预设的序号映射公式,计算出与所述第三序号对应的第四序号;
存储设备确定模块,用于将所述第四序号对应的数据块的标识号输入至CRUSH算法,以确定与所述第四序号对应的OSD存储设备;
数据读取模块,用于读取出所述OSD存储设备上保存的全部数据,得到相应的数据集;
指纹选取模块,用于根据所述第三序号,从所述数据集中获取所述目标数据块的数据指纹;
并且,所述序号映射公式具体为:
j=int(i/int(block_size/hash size));
式中,j表示所述第四序号,i表示所述第三序号,block_size表示数据块的大小,hashsize表示哈希函数的输出字节数,所述哈希函数为用于计算数据指纹的函数。
10.一种分布式重删系统,其特征在于,包括如权利要求8所述的数据指纹存储系统以及如权利要求9所述的数据指纹读取系统。
11.一种分布式重删装置,其特征在于,包括如权利要求10所述的分布式重删系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710543294.6A CN107330097B (zh) | 2017-07-05 | 2017-07-05 | 一种分布式重删装置、数据指纹存储、读取方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710543294.6A CN107330097B (zh) | 2017-07-05 | 2017-07-05 | 一种分布式重删装置、数据指纹存储、读取方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107330097A CN107330097A (zh) | 2017-11-07 |
CN107330097B true CN107330097B (zh) | 2020-11-10 |
Family
ID=60196182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710543294.6A Active CN107330097B (zh) | 2017-07-05 | 2017-07-05 | 一种分布式重删装置、数据指纹存储、读取方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107330097B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109522283B (zh) * | 2018-10-30 | 2021-09-21 | 深圳先进技术研究院 | 一种重复数据删除方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101777056A (zh) * | 2009-12-31 | 2010-07-14 | 成都市华为赛门铁克科技有限公司 | 数据存储方法及设备 |
CN102821138A (zh) * | 2012-07-09 | 2012-12-12 | 广州鼎鼎信息科技有限公司 | 一种适用于云存储系统的元数据分布式存储方法 |
CN105069111A (zh) * | 2015-08-10 | 2015-11-18 | 广东工业大学 | 云存储中基于相似性的数据块级数据去重方法 |
CN105487818A (zh) * | 2015-11-27 | 2016-04-13 | 清华大学 | 针对云存储系统中重复冗余数据的高效去重方法 |
CN105677238A (zh) * | 2015-12-28 | 2016-06-15 | 国云科技股份有限公司 | 一种基于分布式存储重复数据删除的虚拟机系统盘的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9824092B2 (en) * | 2015-06-16 | 2017-11-21 | Microsoft Technology Licensing, Llc | File storage system including tiers |
-
2017
- 2017-07-05 CN CN201710543294.6A patent/CN107330097B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101777056A (zh) * | 2009-12-31 | 2010-07-14 | 成都市华为赛门铁克科技有限公司 | 数据存储方法及设备 |
CN102821138A (zh) * | 2012-07-09 | 2012-12-12 | 广州鼎鼎信息科技有限公司 | 一种适用于云存储系统的元数据分布式存储方法 |
CN105069111A (zh) * | 2015-08-10 | 2015-11-18 | 广东工业大学 | 云存储中基于相似性的数据块级数据去重方法 |
CN105487818A (zh) * | 2015-11-27 | 2016-04-13 | 清华大学 | 针对云存储系统中重复冗余数据的高效去重方法 |
CN105677238A (zh) * | 2015-12-28 | 2016-06-15 | 国云科技股份有限公司 | 一种基于分布式存储重复数据删除的虚拟机系统盘的方法 |
Non-Patent Citations (1)
Title |
---|
云存储中集群重复数据删除系统的研究与设计;李志然;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160815;第3.3节、第4.1节、第5.3节 * |
Also Published As
Publication number | Publication date |
---|---|
CN107330097A (zh) | 2017-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103116661B (zh) | 一种数据库的数据处理方法 | |
CN103793425B (zh) | 用于分布式系统的数据处理方法及装置 | |
CN109543455B (zh) | 一种区块链的数据归档方法及装置 | |
CN106874348B (zh) | 文件存储和索引方法、装置及读取文件的方法 | |
CN108829787B (zh) | 一种元数据分布式系统 | |
CN106611035A (zh) | 一种云存储中重复数据删除的检索算法 | |
CN105069111A (zh) | 云存储中基于相似性的数据块级数据去重方法 | |
CN108027713A (zh) | 用于固态驱动器控制器的重复数据删除 | |
CN104965835B (zh) | 一种分布式文件系统的文件读写方法及装置 | |
US9110820B1 (en) | Hybrid data storage system in an HPC exascale environment | |
CN103152430B (zh) | 一种缩减数据占用空间的云存储方法 | |
CN110019048A (zh) | 基于MongoDB的文件处理方法、装置、系统及服务器 | |
CN104144150A (zh) | 利用元数据访问信息的方法、装置和系统 | |
CN102821111A (zh) | 文件云存储实时同步方法 | |
CN103617260A (zh) | 重复数据删除的索引生成方法及装置 | |
CN107111460A (zh) | 使用块文件的重复数据删除 | |
CN103023996A (zh) | 一种云数据存储系统 | |
CN104484131A (zh) | 多磁盘服务器的数据处理装置及对应的处理方法 | |
CN106557571A (zh) | 一种基于k‑v存储引擎的数据去重方法及装置 | |
CN109522151A (zh) | 用于数据冗余储存的方法及装置 | |
US9146921B1 (en) | Accessing a file system during a file system check | |
CN106980618B (zh) | 基于MongoDB分布式集群架构的文件存储方法和系统 | |
CN107330097B (zh) | 一种分布式重删装置、数据指纹存储、读取方法及系统 | |
CN102722450A (zh) | 一种基于位置敏感哈希的删冗块设备存储方法 | |
EP2940587A1 (en) | Computer, control device for computer system, and recording medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |