CN106066896B - 一种应用感知的大数据重复删除存储***及方法 - Google Patents
一种应用感知的大数据重复删除存储***及方法 Download PDFInfo
- Publication number
- CN106066896B CN106066896B CN201610561768.5A CN201610561768A CN106066896B CN 106066896 B CN106066896 B CN 106066896B CN 201610561768 A CN201610561768 A CN 201610561768A CN 106066896 B CN106066896 B CN 106066896B
- Authority
- CN
- China
- Prior art keywords
- deduplication
- application
- node
- data
- block
- 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
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/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
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种应用感知的大数据重复删除存储***及方法。该***包括基于计算机网络互联的客户端、管理服务器和重删节点,客户端与管理服务器之间通过应用感知路由方法为应用文件存储确定重删节点列表,客户端与重删节点之间通过相似感知路由方法从重删节点列表中确定目标重删节点,用于存储应用文件中的超块。通过该***对应用文件进行存储管理,能够使得具有相同类型的应用文件存放到相同的重删节点上,不仅有效减轻网络通信的负荷量,还有利于提高重删率,以及在每个重删节点上的存储吞吐率,增强网络的可扩展性。
Description
技术领域
本发明涉及计算机数据存储管理领域,特别是涉及一种基于云计算环境中的应用感知的大数据重复删除存储***及方法。
背景技术
在数字世界中,数据容量和复杂度***式增长。国际数据公司IDC(InternationalData Corporation)研究表明:在过去的五年里,数据年增长量翻9倍达到7ZB,并且在未来的十年内,将增长44倍达到35ZB。企业的数字信息量也很容易上升到PB级甚至EB级。由于大数据时代数据量的不断增长使得管理变得越来越复杂,数据管理成本和数据丢失风险提高。随着存储***的不断扩展,不仅需要消耗数据中心更多的数据存储空间、能耗和制冷代价,也需要增加大量的管理时间和提高操作复杂度和人为出错风险。同时,由于现代存储***对高性能的需求,内存正在取代磁盘,而磁盘在取代磁带。为满足大数据管理所需的服务级别协议(Service Level Agreement,SLA),管理存储介质变化下的数据泛滥成了新的挑战。
重复数据删除(简称重删)存储技术被广泛应用于磁盘存储***来管理海量的备份、归档文件和虚拟机镜像等数据,利用存储数据集中高度数据冗余的特性来节省存储容量需求和提高网络带宽利用率。为满足大数据存储在容量和性能方面的可扩展需求,基于云计算环境的分布式重复数据删除存储***被应用于海量存储数据集的管理,以获得高重删压缩比和高重删吞吐率。分布式重复数据删除存储***通常具有将应用数据从客户端分配到多个重复数据删除服务器节点(简称重删节点)的数据路由机制,以及在每一个重删节点内进行独立重复数据删除和存储的过程。为及时删除重复数据、优化数据存储和传输开销,需要在重删存储***设计中选择在线重删机制。
针对大规模存储***,在数据块级的在线分布式重复数据删除存储方面存在以下两大挑战:
第一,重复数据删除服务器节点的信息孤岛:在分布式重复数据删除过程中,出于对***开销的考虑,往往只对节点内部的数据进行消重,而不会去执行跨节点的重复数据删除,由此产生重复数据删除服务器节点信息孤岛。因此,一种能将数据冗余集中在节点内部,减少节点间数据重叠,维持***通信低开销,同时支持负载均衡的数据路由机制对分布式重复数据删除至关重要。
第二,数据块索引查询磁盘瓶颈:为支持重删节点内部的重复数据删除和存储,磁盘上需要保存一个数据块索引来建立从数据块指纹到数据块存储地址的映射,但数据块索引通常太大以致难以适应重复数据删除服务器节点有限的内存,再加上频繁随机地对磁盘进行访问以获取数据块的索引,造成来自客户端的多个数据流的并行重删的特性严重下降。因此,数据块索引查询磁盘瓶颈成为近年来重复数据删除***研究的热点。
另外,在传统的数据存储***架构中包括三个层级:应用层、文件***层和存储硬件层,每一层各自包含不同类型的有关该层所管理数据的信息,每一层的这些信息通常不会被其他层获得。因此,为了优化重删,综合考虑存储和应用进行协同设计是可取的。这样,在低级存储层就会有对高级应用层的数据结构和访问特性有深入的了解。现有技术中,对重复数据的删除没有涉及到对具体应用文件的内容和模式,并且不能找到文件中的冗余成分。
为此,本发明将针对大规模分布式重删***进行设计,这种***通常包括数以千计的云环境下的存储服务器节点。若是按照现有技术中传统分布式处理方法将难以实现,这是由于这些方法没有很好地开发应用层信息和数据相似性特征,在整体重删率、单一重删节点的吞吐率、可扩展性、通信开销等方面存在不足。
发明内容
本发明主要解决的技术问题是提供一种基于应用感知的大数据重复删除存储***及方法,解决现有技术中没有根据应用文件类型进行重删存储,***网络的工作负载量过大、扩展性不强,以及重删节点的吞吐率不高等问题。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种基于应用感知的大数据重复删除存储***,包括基于计算机网络互联的客户端、管理服务器和重删节点,该客户端包括数据划分模块、指纹计算模块和相似感知数据路由模块,该数据划分模块用于对应用文件按照固定长度或可变长度划分为数据块,再进一步将该数据块组合成超块;该指纹计算模块利用抗冲突加密哈希函数计算该超块中的每一个数据块的指纹,得到该超块对应的各数据块的指纹列表;该相似感知数据路由模块利用相似感知路由方法为该超块确定一个用于存储该超块的目标重删节点;该管理服务器包括文件会话管理模块和应用感知路由决策模块,该文件会话管理模块用于存储该应用文件与该应用文件划分的数据块的指纹之间的映射关系,以及需要重构该应用文件的元数据信息;该应用感知路由决策模块与该相似感知数据路由模块之间通过应用感知路由方法,为该应用文件确定一组用于存储该应用文件的超块的重删节点列表,并反馈给该客户端;该重删节点包括应用感知相似索引查询模块、块指纹缓存模块以及并行容器管理模块,该应用感知相似索引查询模块用于向该客户端反馈应用感知相似性索引查询结果,该块指纹缓存模块用于缓存最近频繁访问的数据块的指纹,以加速对数据块的查询处理,该并行容器管理模块用于以并行处理的方式存储唯一数据块。
在本发明应用感知的大数据重复删除存储***另一个实施例中,该抗冲突加密哈希函数包括MD5、SHA-1和/或SHA-2函数。
在本发明应用感知的大数据重复删除存储***另一个实施例中,该管理服务器中设置有应用路由表,该应用路由表包括应用文件类型与对应的重删节点识别号、对应的重删节点的容量之间的映射关系。
在本发明应用感知的大数据重复删除存储***另一个实施例中,该重删节点内存中设置有应用感知相似索引表和块指纹缓存,在磁盘阵列中设置有容器,该应用感知相似索引表由应用文件类型索引和基于应用文件类型分类的哈希表组成,该容器包含存储唯一数据块的数据段部分和存储相应唯一数据块元信息的元数据段部分,该块指纹缓存用于保存最近访问的该容器内的所有数据块指纹,以加速对该容器内的数据块指纹的查询操作。
在本发明应用感知的大数据重复删除存储***另一个实施例中,该基于应用文件类型分类的哈希表中的每一项均包括超块的代表性数据块指纹与存储该超块的容器识别号之间的映射关系,该块指纹缓存为Key-Value型结构,由一个双链表索引的哈希表构建而成。
在本发明应用感知的大数据重复删除存储***另一个实施例中,该应用感知路由方法是:
第一步,在该管理服务器中,对来自该客户端的需要存储的应用文件,确定该应用文件的扩展名;
第二步,在该管理服务器的该应用路由表中查询,找到该应用文件的扩展名对应的重删节点Ai,该重删节点Ai存储相同类型的应用文件;
第三步,将所有存储该相同类型应用文件的重删节点组成一个重删节点列表ID_list={A1,A2,…,Am},且满足该 该{S1,S2,…,SN}表示该应用感知的大数据重复删除存储***中的所有的重删节点的列表;
第五步,该管理服务器向该客户端返回该应用文件对应的该重删节点列表ID_list。
在本发明应用感知的大数据重复删除存储***另一个实施例中,该相似感知路由方法是:
第一步,在该客户端,利用该数据划分模块对应用文件划分为c个数据块,再将这c个数据块组合成一个超块S,通过加密哈希函数计算得到该超块S的所有c个数据块指纹列表{fp1,fp2,…,fpc};
第三步,从该应用感知的大数据重复删除存储***中的所有N个重删节点中选取k个候选重删节点,该k个候选重删节点的识别号为{rfp1mod N,rfp2mod N,…,rfpk mod N},将该超块S的手纹分别发送给该k个候选重删节点;
第三步,在该k个候选重删节点上,均查询该超块S手纹中各代表性数据块指纹是否存在,从而得到该k候选重删节点内已存的代表性数据块指纹数{r1,r2,…,rk},该代表性数据块指纹数{r1,r2,…,rk}作为该k候选重删节点对该超块S的相似值;
第四步,将该k个候选重删节点存储使用率与所有N个重删节点的平均存储使用率相除,计算该k个候选重删节点的相对存储使用率{w1,w2,…,wk};
第五步,选择在该k个候选重删节点中,选取识别号i满足ri/wi=max{r1/w1,r2/w2,…,rk/wk}的重删节点作为该超块S存储的目标重删节点。
本发明还提供了一种应用感知的大数据重复删除方法,基于前述应用感知的大数据重复删除存储***对应用文件进行存储和获取,对应用文件的存储方法是:
第一步,该客户端向该管理服务器发送在该应用感知的大数据重复删除存储***中存储一个应用文件的PutFileReq消息,该PutFileReq消息包含该应用文件的元数据;
第二步,该管理服务器接收该PutFileReq消息后,存储该应用文件的元数据,并且确认该应用感知的大数据重复删除存储***中有足够的存储空间来存储该应用文件;接着,该管理服务器利用该应用感知路由方法,为该应用文件确定一组用于存储该应用文件的重删节点列表;然后,该管理服务器向该客户端发回一个PutFileResp消息,在该PutFileResp消息中包含该管理服务器向该客户端回应的该应用文件识别号,以及该应用文件对应的重删节点列表;
第三步,该客户端接收PutFileResp消息后,对于该应用文件中的第1个超块SuperChunk_1,利用该相似感知路由方法,分别向k个候选重删节点发出LookupSCReq查询请求,该k个候选重删节点分别对超块SuperChunk_1的代表性指纹进行相似索引查找,确定对应的加权相似值,然后向该用户端回应LookupSCResp消息,该LookupSCResp消息包含了该候选重删节点向该客户端回应的与该超块SuperChunk_1对应的加权相似值;
第四步,该客户端接收该k个候选重删节点各自反馈的LookupSCResp消息后,根据各该加权相似值的大小,选择其中加权相似值最大的一个候选重删节点作为目标重删节点,用以存储该超块SuperChunk_1,并且将该目标重删节点的识别号通过PutSCReq消息通知该管理服务器,该管理服务器向该客户端回应PutSCResp消息;
第五步,该客户端向该目标重删节点发出LookupChunks-SCReq请求信息,并以批量方式发出该超块SuperChunk_1的全部数据块指纹到该目标重删节点,用以确认该数据块在该目标重删节点中是否重复,该目标重删节点进行数据块指纹查找后,向该客户端返回LookupChunksSCResp消息,该LookupChunksSCResp消息中包含该超块SuperChunk_1在该目标重删节点不重复的唯一数据块的列表;
第六步,该客户端向该目标重删节点发出UniqueChunksSC消息,并以批量方式将该超块SuperChunk_1中的唯一数据块发送到该目标重删节点,该目标重删节点接收该唯一数据块并存储,然后向该管理服务器返回SCAck确认消息;
第七步,对于该应用文件的后续其他超块,重复以上第三步至第六步,直至该应用文件的所有超块完成存储,结束对该应用文件的存储。
在本发明应用感知的大数据重复删除方法另一个实施例中,对应用文件的获取方法是:
第一步,该客户端向该管理服务器发出GetFileReq请求,请求获取一个应用文件,该管理服务器响应该GetFileReq请求,通过查询该应用文件的元数据后,向该客户端反馈GetFileResp消息,该GetFileResp消息中包含被请求获取的该应用文件的超块列表,以及该超块列表中的超块到对应的重删节点的映射;
第二步,该客户端收到GetFileResp消息后,向该应用文件的超块列表中的超块对应的重删节点发出GetSuperChunk消息,请求该重删节点获取该超块;
第三步,重删节点接收GetSuperChunk消息,从其容器中获取对应的该超块,然后向该客户端返回该超块;
第四步,该客户端接收该重删节点返回的该超块后,再利用该超块的验证码和需要获取的该应用文件的识别号来确认数据块的完整性,并完成对该应用文件的获取。
本发明的有益效果是:通过本发明提供了一种应用感知的大数据重复删除存储***和方法,包括基于计算机网络互联的客户端、管理服务器和重删节点,客户端与管理服务器之间通过应用感知路由方法为应用文件存储确定重删节点列表,客户端与重删节点之间通过相似感知路由方法从重删节点列表中确定目标重删节点,用于存储应用文件中的超块。这种两级路由方法能够有效降低网络的通信负荷,通过该***对应用文件进行存储,能够使得具有相同类型的应用文件存储到相同的重删节点上,有利于提高重删率,以及在每个重删节点上的存储的吞吐率,增强网络的可扩展性。
附图说明
图1是根据本发明应用感知的大数据重复删除存储***一个实施例的***架构图;
图2是根据本发明应用感知的大数据重复删除存储***一个实施例中的管理服务器的应用路由表;
图3是根据本发明应用感知的大数据重复删除存储***一个实施例中的重删节点的数据结构;
图4是根据本发明应用感知的大数据重复删除方法一个实施例的应用文件存储流程图;
图5是根据本发明应用感知的大数据重复删除方法一个实施例的应用文件获取流程图。
具体实施方式
为了便于理解本发明,下面结合附图和具体实施例,对本发明进行更详细的说明。附图中给出了本发明的较佳的实施例。但是,本发明可以以许多不同的形式来实现,并不限于本说明书所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。
需要说明的是,除非另有定义,本说明书所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是用于限制本发明。本说明书所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
图1显示了本发明应用感知的大数据重复删除存储***一个实施例的***架构图。该***包括客户端10、管理服务器20和重删节点30,可见客户端10和重删节点30都有多个。在每一个客户端10中均包括3个模块,即数据划分模块101、指纹计算模块102和相似感知数据路由模块103。对于数据划分模块101,其作用就是要把需要存储的应用文件进行切分,即对文件级的数据以固定长度或可变长度划分为成一个个小的数据块,然后再进一步将这些小的数据块组合成数据超块(简称超块);接下来,指纹计算模块102利用MD5、SHA-1和/或SHA-2等抗冲突加密哈希函数对该超块中的每一个数据块进行指纹计算,得到该超块中的各个数据块的块指纹列表;进一步,相似感知数据路由模块103利用相似感知路由方法为每一个超块选择一个适合的重删节点30用于存储该超块。该过程需要客户端10的相似感知数据路由模块103先与管理服务器20的应用感知路由模块之间通过应用感知路由方法,为每一个需要存储的应用文件提供一个用于存储该应用文件的超块的重删节点列表。然后,客户端10的相似感知数据路由模块103再利用上述的相似感知路由方法,从该重删节点列表中为该应用文件划分出的每一个超块找到适合的目标重删节点30,用于存储该超块。下文会对应用感知路由方法和相似感知路由方法做进一步示例说明。
在图1中,管理服务器20包括文件会话管理模块201和应用感知路由决策模块202。其中,文件会话管理模块201用于保存需要存储的应用文件与该文件对应划分出的数据块的指纹之间的映射关系,以及需要重构该文件的元数据信息。因此,需要存储的应用文件的所有文件级的元数据都保留在该管理服务器20中,客户端10与管理服务器20之间存在通过文件元数据的读写操作进行交互的过程,下文将会结合图4和图5分别对文件存储和文件获取过程进行详细的示例说明。应用感知路由决策模块202与相似感知数据路由模块103之间通过应用感知路由方法,为应用文件确定一组用于存储该应用文件超块的重删节点列表,并反馈给所述客户端10。优选的,为保证可靠性,管理服务器20可以采用主被故障切换方式支持两个服务器,以避免单一服务器失效带来的不利影响。
优选的,图2显示了管理服务器20中的一个名为应用路由表的数据结构实施例。该应用路由表用于执行应用感知路由决策模块202的应用感知路由方法。该应用路由表位于管理服务器20的RAM中,确保了较高的处理速度。该应用路由表中的竖向第一列Type为文件类型,以应用文件的扩展名进行区分,分别有doc文件、rmvb文件、jpg文件等;表中竖向第二列为NodeID,为重删节点识别号,以数字序列号进行区分;表中竖向第三列为Capacity,为该重删节点上对应的应用文件数据的存储容量,以字节数来表示。横向每一行对应一条存储映射关系,例如,第一行表示在重删节点识别号NodeID为5的重删节点上对应存储的应用文件类型为doc,且该重删节点上所有doc文档的存储容量为235MB。通过该应用路由表实施例,管理服务器20可以对每一个需要存储的应用文件,首先查找其文件类型,然后确定存储该文件类型的重删节点有哪些,这些重删节点的容量有多大,从而计算出在这些重删节点中进行存储的工作负载量。
进一步的,当从客户端10向管理服务器20输入需要存储的应用文件扩展名以后,管理服务器20通过应用感知路由方法得到该应用文件的一组重删节点列表。以下给出该应用感知路由方法的一个优选实施例。
首先,对来自客户端10的需要存储的应用文件fullname,确定该文件fullname的扩展名;然后,在管理服务器20中的应用路由表(如图2所示)中查询,找到该扩展名对应的重删节点Ai,该重删节点存储相同类型的应用文件(即文件的扩展名相同);接着,将所有这些存储有相同类型应用文件的重删节点组成一个重删节点列表ID_list={A1,A2,…,Am}。对于整个重复删除***而言,若所有的重删节点列表为{S1,S2,…,SN},应满足 进一步,检查重删节点列表ID_list:若(即列表为空,没有找到相应的重删节点)或者ID_list中的各重删节点都已存满(存储过负载),那么仅向ID_list添加一个具有最少存储负载的重删节点SL,即ID_list={SL};最后,管理服务器20向客户端10返回应用文件fullname对应的重删节点列表ID_list。进一步,在图1中,重删节点30包括应用感知相似索引查询模块301、块指纹缓存模块302以及并行容器管理模块303。应用感知相似索引查询模块301用于向客户端10反馈应用感知相似性索引查询结果。由上述可知,当客户端10从管理服务器20接收到需要存储的应用文件的重删节点列表以后,需要进一步对该应用文件划分的每一个超块确定一个存储的重删节点(即目标重删节点),所采用的方法称之为相似性感知路由方法,将在后面进一步示例说明。当为一个超块确定好目标重删节点后,进一步在客户端10与重删节点30之间进行指纹查找,以确定该超块中的每一个数据块的指纹在该重删节点30中是否存在,而只有指纹不存在的数据块才会被作为唯一数据块,通过块转移存储到该重删节点30中。图1中的块指纹缓存模块302用于缓存最近频繁访问的超块中的各数据块的指纹,以加速对冗余数据块的查询处理。并行容器管理模块303则用于以并行处理的方式存储唯一数据块,以加速存储处理过程。另外,当重删节点30存储新的唯一数据块以后,还将该唯一数据块的元数据发送到管理服务器20进行更新。
优选的,以下对相似性感知路由方法的一个优选实施例说明。我们已知图1中客户端10中的数据划分模块101用于对应用文件进行划分。
第一步,把一个应用文件分成c小的数据块,再将这些数据块组合成一个超块S,通过加密哈希函数计算得到该超块的所有的块指纹列表{fp1,fp2,…,fpc}。此处,fp是fingerprint的缩写。
第二步,对超块S的数据块指纹列表{fp1,fp2,…,fpc}进行排序后,选取k个最小的数据块指纹作为该超块S的代表性数据块指纹,即超块S的手纹,并将超块S的手纹发送到N个重删节点构成的集群内的k个候选重删节点,这些候选重删节点的识别号为{rfp1mod N,rfp2mod N,…,rfpk mod N};此处,rfp是representative fingerprint的缩写。
第三步,通过在候选的重删节点中,对于已经存在的由超块的代表性数据指纹构建的相似索引中,查询该超块S的代表性数据块指纹是否存在,从而统计得出各个候选重删节点内已存的代表性数据块指纹数{r1,r2,…,rk},这个k值直接对应超块S与这些重删节点中已存数据的相似值;
第四步,以候选重删节点的存储使用率与所有重删节点的平均存储使用率相除,来计算各个候选重删节点的相对存储使用率{w1,w2,…,wk},再利用这些相对存储使用率得到各候选重删节点的加权相似值{r1/w1,r2/w2,…,rk/wk},从而实现候选重删节点存储容量负载平衡;
第五步,选择在候选重删节点中选取其识别号i满足ri/wi=max{r1/w1,r2/w2,…,rk/wk}的重删节点作为超块S的路由目标重删节点。基于该实施例,图1中客户端10可以从重删节点30中为应用文件划分出来的每一超块找到一个合适的目标重删节点。
优选的,图3显示了重删节点30中的数据结构实施例。图3中,在RAM中设置有应用感知相似性索引表3011、块指纹缓存3021,在磁盘阵列中设置有容器3031。其中,应用感知相似性索引表3011是一个设置在内存中的数据结构,是由应用文件类型索引3011A和基于应用文件类型分类的哈希表3011B组成。当来自客户端10的一个相似索引查询请求时,重删节点30根据输入的超块的应用文件类型信息,通过应用文件类型索引3011A将该超块路由到具有相同应用文件类型的哈希表3011B。例如,在图3中,输入到重删节点30的超块的文件类型若是doc,则将该超块路由到具有doc类型的哈希表。同样,超块的文件类型若是jpg,则将该超块路由到具有jpg类型的哈希表。对于图3中哈希表3011B中的每一项均包括一个映射关系,即超块的代表性数据块指纹(RFP,representative fingerprint)与存储该超块的容器识别号(CID,container ID)之间的映射关系。由此可见,这种相似索引是一种基于哈希表的内存数据结构,每一项包含了从超块代表性数据块指纹到存储该超块的容器识别号的映射。由于超块手纹技术只需要非常低的取样率,其大小远小于传统数据块指纹到容器映射的磁盘索引,因此该方法的处理速度具有明显的优势。
图3中,容器3031是一种自描述的数据结构,存在于磁盘阵列中以保持局部性。容器3031包含存储唯一数据块的数据段部分和存储相应唯一数据块元信息(如数据块指纹、偏移和长度等)的元数据段部分。这里的重删节点30支持并行的容器管理,用以并发地分配、回收、读、写和可靠存储。对于并行数据存储,每个数据流保留一个打开的数据容器,如果容器填满则创建并打开新的容器。所有的磁盘访问是在容器粒度实现的。
图3中,除了上述两种重要的数据结构,还有块指纹缓存3021,其对改进重删节点的性能起关键作用。工作中,它保存最近访问容器3031的所有块指纹到内存中。一旦代表性数据块指纹在一个相似索引查询请求中被访问到,相应数据块所在容器内的所有数据块指纹预取到块指纹缓存3021中来加速块指纹查询操作。
优选的,块指纹缓存3021是一个Key-Value型的结构,由一个双链表索引的哈希表构建。块指纹缓存3021存满时,容器3031内的指纹对加速块指纹查询效果不显著,则采用最近最少访问策略来替换历史记录。因此,当查询超块的代表性数据块指纹时,先在块指纹缓存3021中查找对应超块映射的容器。如果容器的数据块指纹信息已经在块指纹缓存3021中,则比较该超块的数据块指纹和容器内元数据部分的块指纹;否则,我们从容器中预取其元数据部分包含的所有数据块指纹。最后,那些未找到的数据块指纹对应的数据块将被存储到一个打开未满的容器。通过容器管理保持数据块指纹缓存局部性,我们设计的相似性索引查询优化能够获得高吞吐率且仅使用很少的内存空间。
通过以上分析,我们可以看出,为了存储一个超块,本发明实施例采用了两层路由机制,即在客户端与管理服务器之间以文件级的方式,通过应用感知路由方法来确定应用文件存储所对应的重删节点列表,而在客户端与重删节点之间以超块级的方式,通过相似性感知路由方法来确定超块存储所对应的目标重删节点。由此可见,这两层路由机制,一方面在客户端与管理服务器之间是以文件级进行交互,有利于减少客户端与管理服务器之间的通信负荷,也降低了管理服务器的工作负荷。而在客户端与重删节点之间以超块级的方式进行交互,则有利增强客户端与重删节点之间进行数据存储的针对性,提高了网络工作效率。
基于上述本发明应用感知的大数据重复删除存储***的同一构思,本发明还提供了一种应用感知的大数据重复删除存储方法,以下结合图4和图5加以说明。
基于图1所示的应用感知的大数据重复删除存储***实施例,图4显示了应用文件在该应用感知的大数据重复删除存储***中存储方法。
当一个用户或者应用发送文件存储请求到客户端。首先,客户端在数据划分模块中将文件划分为数据块或者超块,并在块指纹计算模块通过加密哈希函数计算出数据块指纹值;然后,由相似感知数据路由模块提取出超块手纹并进行数据路由。实际的数据存储操作是在相似感知数据路由模块中通过与管理服务器和重删节点之间交互完成的。详细的方法步骤如下:
第一步,客户端发送一个PutFileReq消息给管理服务器,该消息包含应用文件识别号、文件大小、文件名、时间戳、文件中的超块数、超块的校验等。其中,应用文件识别号为文件内容的抗冲突哈希值,也可用作文件获取过程中文件完整性的校验。
第二步,管理服务器接收该PutFileReq请求,存储该应用文件的元数据,并且要确认整个大数据重复删除存储***中有足够的空间来存储该文件。这里,管理服务器只需保持文件级的元数据管理,而不是超块粒度,使得管理服务器可以负责更大容量的数据管理,整个***具有更高的扩展性。
管理服务器还执行应用感知路由决策,为该应用文件选择一组用于存储该文件超块的重删节点列表。然后,管理服务器给客户端发回一个PutFileResp响应。在PutFileResp消息中,管理服务器向客户端回应文件识别号和该文件对应的重删节点列表。
第三步,客户端接收PutFileResp消息后,对于该文件中的每一个超块,利用相似性感知路由方法,分别向k个候选重删节点发出k个LookupSCReq查询请求,目的是为了在这些候选的重删节点中为该超块的代表指纹查找到应用感知相似性索引。图4中示意给出了三个重删节点,即重删节点1、重删节点2和重删节点3,其中只是将重删节点2和重删节点3作为候选的重删节点,因此分别向重删节点2和重删节点3发出了LookupSCReq_1请求,其中_1用以区分不同的超块,可以视之为该文件中第1个超块。接收到该请求后,重删节点2和重删节点3分别进行了相似索引查找,即图4中的相似索引查找,主要是通过基于相似性感知路由方法,各候选重删节点为该超块确定对应的加权相似值。
第四步,重删节点向客户端回应LookupSCResp消息,该消息包括候选重删节点向客户端回应的与该超块对应的加权相似值。图4中重删节点2和重删节点3回应了LookupSCResp_1消息。
第五步,客户端接收这些LookupSCResp消息后,根据加权相似值的大小,选择其中加权相似值最大的一个候选重删节点作为目标重删节点,用以存储该超块,并且再通过PutSCReq消息通知管理服务器该重删节点的识别号,管理服务器回应PutSCResp。图4中针对的该文件中的第1个超块而言,分别用PutSCReq_1和PutSCResp_1加以表示。
第六步,客户端确定目标重删节点后,向该目标重删节点发出LookupChunksSCReq请求信息,并以批量方式发出该超块的全部块指纹到该目标重删节点,用以确认其中每一个数据块是否重复,目标重删节点进行指纹查找后,向客户端返回LookupChunksSCResp消息。图4中对应为LookupChunksSCReq_1请求消息,用以对第1个超块的处理,目标重删节点为重删节点2,然后重删节点2执行ChunkFPsLookup操作,进行数据块指纹查找,之后,目标重删节点2向客户端回应LookupChunksSCResp_1消息,其中包括一个该超块中的唯一数据块的列表。
第七步,客户端向目标重删节点发出UniqueChunksSC消息,并以批量方式将该超块中的唯一数据块发送到该目标重删节点,该目标重删节点接收后将这些唯一数据块进行存储,然后向管理服务器返回SCAck确认消息。图4中对应为UniqueChunksSC_1消息和SCAck_1消息,表示对第1超块的操作。
接下来,对该文件中的第2超块重复上述同样的操作,直至整个应用文件中的所有超块在各重删节点存储完毕。
图5显示了应用文件在该大数据重复删除存储***中获取方法。图5中,第一步,由客户端向管理服务器发起GetFileReq请求,希望请求获取一个文件。管理服务器响应该GetFileReq请求,通过查询该应用文件的元数据后,向客户端反馈GetFileResp消息,该GetFileResp消息中包含被请求应用文件中的超块列表,以及从超块到对应存储的重删节点的映射。第二步,客户端收到GetFileResp消息后,向该应用文件所包含的超块对应的重删节点发出GetSuperChunk消息,请求这些重删节点获取这些超块。图5中示意表示该应用文件包含两个超块,因此客户端分别向存储有该两个超块的重删节点1和重删节点2分别发出GetSuperChunk_2和GetSuperChunk_1消息。第三步,重删节点接收GetSuperChunk消息,从其容器中获取对应的超块,然后向客户端返回超块。图5中,重删节点1获取SuperChunk_2后向客户端返回该超块SuperChunk_2,重删节点2获取SuperChunk_1后向客户端返回该超块SuperChunk_1。第四步,客户端接收这些超块后,再利用超块的验证码和文件识别号来确认数据的完整性,并完成对该文件的获取。
通过本发明提供的应用感知的大数据重复删除存储***及其应用方法,包括基于计算机网络互联的客户端、管理服务器和重删节点,客户端与管理服务器之间通过应用感知路由方法为应用文件存储确定重删节点列表,客户端与重删节点之间通过相似感知路由方法从重删节点列表中确定目标重删节点,用于存储应用文件中的超块。这种两层路由方法能够有效降低网络的通信负荷,通过该***对应用文件进行存储,能够使得具有相同类型的应用文件存储到相同的重删节点上,有利于提高重删率,以及在每个重删节点上的存储的吞吐率,增强分布式存储***的可扩展性。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的技术领域,均包括在本发明的专利保护范围内。
Claims (3)
1.一种应用感知的大数据重复删除存储***,包括基于计算机网络互联的客户端、管理服务器和重删节点,其特征在于:
所述客户端包括数据划分模块、指纹计算模块和相似感知数据路由模块,所述数据划分模块用于对应用文件按照固定长度或可变长度划分为数据块,再进一步将所述数据块组合成超块;所述指纹计算模块利用抗冲突加密哈希函数计算所述超块中的每一个数据块的指纹,得到所述超块对应的各数据块的指纹列表;所述相似感知数据路由模块利用相似感知路由方法为所述超块确定一个用于存储所述超块的目标重删节点;
所述管理服务器包括文件会话管理模块和应用感知路由决策模块,所述文件会话管理模块用于存储所述应用文件与所述应用文件划分的数据块的指纹之间的映射关系,以及需要重构所述应用文件的元数据信息;所述应用感知路由决策模块与所述相似感知数据路由模块之间通过应用感知路由方法,为所述应用文件确定一组用于存储所述应用文件的超块的重删节点列表,并反馈给所述客户端;
所述重删节点包括应用感知相似索引查询模块、块指纹缓存模块以及并行容器管理模块,所述应用感知相似索引查询模块用于向所述客户端反馈应用感知相似性索引查询结果,所述块指纹缓存模块用于缓存最近频繁访问的数据块的指纹,以加速对数据块的查询处理,所述并行容器管理模块用于以并行处理的方式存储唯一数据块;
所述抗冲突加密哈希函数包括MD5、SHA-1和/或SHA-2函数;
所述管理服务器中设置有应用路由表,所述应用路由表包括应用文件类型与对应的重删节点识别号、对应的重删节点的容量之间的映射关系;
所述重删节点内存中设置有应用感知相似索引表和块指纹缓存,在磁盘阵列中设置有容器,所述应用感知相似索引表由应用文件类型索引和基于应用文件类型分类的哈希表组成,所述容器包含存储唯一数据块的数据段部分和存储相应唯一数据块元信息的元数据段部分,所述块指纹缓存用于保存最近访问的所述容器内的所有数据块指纹,以加速对所述容器内的数据块指纹的查询操作;
所述基于应用文件类型分类的哈希表中的每一项均包括超块的代表性数据块指纹与存储所述超块的容器识别号之间的映射关系,所述块指纹缓存为Key-Value型结构,由一个双链表索引的哈希表构建而成;
所述应用感知路由方法是:
第一步,在所述管理服务器中,对来自所述客户端的需要存储的应用文件,确定所述应用文件的扩展名;
第二步,在所述管理服务器的所述应用路由表中查询,找到所述应用文件的扩展名对应的重删节点Ai,所述重删节点Ai存储相同类型的应用文件;
第三步,将所有存储所述相同类型应用文件的重删节点组成一个重删节点列表ID_list={A1,A2,…,Am},且满足所述 所述{S1,S2,…,SN}表示所述应用感知的大数据重复删除存储***中的所有的重删节点的列表;
第五步,所述管理服务器向所述客户端返回所述应用文件对应的所述重删节点列表ID_list;
所述相似感知路由方法是:
第一步,在所述客户端,利用所述数据划分模块对应用文件划分为c个数据块,再将这c个数据块组合成一个超块S,通过加密哈希函数计算得到所述超块S的所有c个数据块指纹列表{fp1,fp2,…,fpc};
第三步,从所述应用感知的大数据重复删除存储***中的所有N个重删节点中选取k个候选重删节点,所述k个候选重删节点的识别号为{rfp1 mod N,rfp2 mod N,…,rfpk modN},将所述超块S的手纹分别发送给所述k个候选重删节点;
第三步,在所述k个候选重删节点上,均查询所述超块S手纹中各代表性数据块指纹是否存在,从而得到所述k个候选重删节点内已存的代表性数据块指纹数{r1,r2,…,rk},所述代表性数据块指纹数{r1,r2,…,rk}作为所述k个候选重删节点对所述超块S的相似值;
第四步,将所述k个候选重删节点存储使用率与所有N个重删节点的平均存储使用率相除,计算所述k个候选重删节点的相对存储使用率{w1,w2,…,wk};
第五步,选择在所述k个候选重删节点中,选取识别号i满足ri/wi=max{r1/w1,r2/w2,…,rk/wk}的重删节点作为所述超块S存储的目标重删节点。
2.一种应用感知的大数据重复删除存储方法,基于权利要求1所述的应用感知的大数据重复删除存储***对应用文件进行存储和获取,其特征在于,对应用文件的存储方法是:
第一步,所述客户端向所述管理服务器发送在所述应用感知的大数据重复删除存储***中存储一个应用文件的PutFileReq消息,所述PutFileReq消息包含所述应用文件的元数据;
第二步,所述管理服务器接收所述PutFileReq消息后,存储所述应用文件的元数据,并且确认所述应用感知的大数据重复删除存储***中有足够的存储空间来存储所述应用文件;接着,所述管理服务器利用所述应用感知路由方法,为所述应用文件确定一组用于存储所述应用文件的重删节点列表;然后,所述管理服务器向所述客户端发回一个PutFileResp消息,在所述PutFileResp消息中包含所述管理服务器向所述客户端回应的所述应用文件识别号,以及所述应用文件对应的重删节点列表;
第三步,所述客户端接收PutFileResp消息后,对于所述应用文件中的第1个超块SuperChunk_1,利用所述相似感知路由方法,分别向k个候选重删节点发出LookupSCReq查询请求,所述k个候选重删节点分别对超块SuperChunk_1的代表性指纹进行相似索引查找,确定对应的加权相似值,然后向所述客户端回应LookupSCResp消息,所述LookupSCResp消息包含了所述候选重删节点向所述客户端回应的与所述超块SuperChunk_1对应的加权相似值;
第四步,所述客户端接收所述k个候选重删节点各自反馈的LookupSCResp消息后,根据各所述加权相似值的大小,选择其中加权相似值最大的一个候选重删节点作为目标重删节点,用以存储所述超块SuperChunk_1,并且将所述目标重删节点的识别号通过PutSCReq消息通知所述管理服务器,所述管理服务器向所述客户端回应PutSCResp消息;
第五步,所述客户端向所述目标重删节点发出LookupChunks-SCReq请求信息,并以批量方式发出所述超块SuperChunk_1的全部数据块指纹到所述目标重删节点,用以确认所述数据块在所述目标重删节点中是否重复,所述目标重删节点进行数据块指纹查找后,向所述客户端返回LookupChunksSCResp消息,所述LookupChunksSCResp消息中包含所述超块SuperChunk_1在所述目标重删节点不重复的唯一数据块的列表;
第六步,所述客户端向所述目标重删节点发出UniqueChunksSC消息,并以批量方式将所述超块SuperChunk_1中的唯一数据块发送到所述目标重删节点,所述目标重删节点接收所述唯一数据块并存储,然后向所述管理服务器返回SCAck确认消息;
第七步,对于所述应用文件的后续其他超块,重复以上第三步至第六步,直至所述应用文件的所有超块完成存储,结束对所述应用文件的存储。
3.根据权利要求2所述的应用感知的大数据重复删除存储方法,其特征在于,对应用文件的获取方法是:
第一步,所述客户端向所述管理服务器发出GetFileReq请求,请求获取一个应用文件,所述管理服务器响应所述GetFileReq请求,通过查询所述应用文件的元数据后,向所述客户端反馈GetFileResp消息,所述GetFileResp消息中包含被请求获取的所述应用文件的超块列表,以及所述超块列表中的超块到对应的重删节点的映射;
第二步,所述客户端收到GetFileResp消息后,向所述应用文件的超块列表中的超块对应的重删节点发出GetSuperChunk消息,请求所述重删节点获取所述超块;
第三步,重删节点接收GetSuperChunk消息,从其容器中获取对应的所述超块,然后向所述客户端返回所述超块;
第四步,所述客户端接收所述重删节点返回的所述超块后,再利用所述超块的验证码和需要获取的所述应用文件的识别号来确认数据块的完整性,并完成对所述应用文件的获取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610561768.5A CN106066896B (zh) | 2016-07-15 | 2016-07-15 | 一种应用感知的大数据重复删除存储***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610561768.5A CN106066896B (zh) | 2016-07-15 | 2016-07-15 | 一种应用感知的大数据重复删除存储***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106066896A CN106066896A (zh) | 2016-11-02 |
CN106066896B true CN106066896B (zh) | 2021-06-29 |
Family
ID=57207040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610561768.5A Active CN106066896B (zh) | 2016-07-15 | 2016-07-15 | 一种应用感知的大数据重复删除存储***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106066896B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106557571A (zh) * | 2016-11-23 | 2017-04-05 | 福建亿榕信息技术有限公司 | 一种基于k‑v存储引擎的数据去重方法及装置 |
CN106817406B (zh) * | 2016-12-22 | 2020-05-26 | 南京邮电大学 | 一种应用于RCFile存储模型的预分配的自适应压缩方法 |
WO2019037876A1 (en) * | 2017-08-25 | 2019-02-28 | Huawei Technologies Co., Ltd. | NETWORK SYSTEM AND METHOD OF DEDUPLICATING DATA |
CN108090125B (zh) * | 2017-11-14 | 2021-05-25 | 西北工业大学 | 一种非查询式的重复数据删除方法及装置 |
CN108089816B (zh) * | 2017-11-14 | 2021-05-11 | 西北工业大学 | 一种基于负载均衡的查询式重复数据删除方法及装置 |
CN109002400B (zh) * | 2018-06-01 | 2023-05-05 | 暨南大学 | 一种内容感知型计算机缓存管理***及方法 |
CN110058923B (zh) * | 2019-03-29 | 2021-03-26 | 华中科技大学 | 一种基于动态预取策略的Docker容器COW机制优化方法及*** |
CN110191187A (zh) * | 2019-06-04 | 2019-08-30 | 湖北五五互联科技有限公司 | Cdn服务器数据管理方法、设备及计算机可读存储介质 |
CN110636141B (zh) * | 2019-10-17 | 2021-11-09 | 中国人民解放军陆军工程大学 | 基于云雾协同的多云存储***及其管理方法 |
CN110888918A (zh) * | 2019-11-25 | 2020-03-17 | 湖北工业大学 | 相似数据检测方法及装置、计算机设备和存储介质 |
CN111090620B (zh) * | 2019-12-06 | 2022-04-22 | 浪潮电子信息产业股份有限公司 | 一种文件存储方法、装置、设备及可读存储介质 |
CN112104725B (zh) * | 2020-09-09 | 2022-05-27 | 中国联合网络通信集团有限公司 | 容器镜像去重方法、***、计算机设备及存储介质 |
CN114442931A (zh) * | 2021-12-23 | 2022-05-06 | 天翼云科技有限公司 | 一种数据重删方法及***、电子设备、存储介质 |
CN116257420B (zh) * | 2023-03-14 | 2023-12-15 | 山西融创智联信息科技有限公司 | 一种基于数据融合的计算机智能化调控***及方法 |
CN117931092B (zh) * | 2024-03-20 | 2024-05-24 | 苏州元脑智能科技有限公司 | 数据重删调整方法、装置、设备、存储***及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104978151A (zh) * | 2015-06-19 | 2015-10-14 | 浪潮电子信息产业股份有限公司 | 基于应用感知的重复数据删除存储***中的数据重构方法 |
CN105142196A (zh) * | 2015-08-20 | 2015-12-09 | 北京邮电大学 | 一种无线网络节点协作路由方法 |
CN105487818A (zh) * | 2015-11-27 | 2016-04-13 | 清华大学 | 针对云存储***中重复冗余数据的高效去重方法 |
-
2016
- 2016-07-15 CN CN201610561768.5A patent/CN106066896B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104978151A (zh) * | 2015-06-19 | 2015-10-14 | 浪潮电子信息产业股份有限公司 | 基于应用感知的重复数据删除存储***中的数据重构方法 |
CN105142196A (zh) * | 2015-08-20 | 2015-12-09 | 北京邮电大学 | 一种无线网络节点协作路由方法 |
CN105487818A (zh) * | 2015-11-27 | 2016-04-13 | 清华大学 | 针对云存储***中重复冗余数据的高效去重方法 |
Non-Patent Citations (1)
Title |
---|
面向大数据备份的应用感知并行重删存储***;付印金;《计算机研究与发展》;20151215;第139-147页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106066896A (zh) | 2016-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106066896B (zh) | 一种应用感知的大数据重复删除存储***及方法 | |
US11797510B2 (en) | Key-value store and file system integration | |
US11153380B2 (en) | Continuous backup of data in a distributed data store | |
US10198356B2 (en) | Distributed cache nodes to send redo log records and receive acknowledgments to satisfy a write quorum requirement | |
US10437721B2 (en) | Efficient garbage collection for a log-structured data store | |
Lakshman et al. | Cassandra: a decentralized structured storage system | |
CN106874383B (zh) | 一种分布式文件***元数据的解耦合分布方法 | |
JP5500257B2 (ja) | ストレージシステム | |
US10169169B1 (en) | Highly available transaction logs for storing multi-tenant data sets on shared hybrid storage pools | |
CA2512312C (en) | Metadata based file switch and switched file system | |
US8607017B2 (en) | Use of similarity hash to route data for improved deduplication in a storage server cluster | |
CN110262922B (zh) | 基于副本数据日志的纠删码更新方法及*** | |
US10725666B2 (en) | Memory-based on-demand data page generation | |
CN113377868B (zh) | 一种基于分布式kv数据库的离线存储*** | |
US20120036107A1 (en) | Rule based aggregation of files and transactions in a switched file system | |
US20110320532A1 (en) | Data operating method, system, client, and data server | |
CN104408111A (zh) | 一种删除重复数据的方法及装置 | |
US11625169B2 (en) | Efficient token management in a storage system | |
CN108415671B (zh) | 一种面向绿色云计算的重复数据删除方法及*** | |
CN110908589B (zh) | 数据文件的处理方法、装置、***和存储介质 | |
US11893422B2 (en) | Scale out deduplicated file system as microservices | |
US10909143B1 (en) | Shared pages for database copies | |
CN109522283A (zh) | 一种重复数据删除方法及*** | |
US10387384B1 (en) | Method and system for semantic metadata compression in a two-tier storage system using copy-on-write | |
WO2017023709A1 (en) | Object storage system with local transaction logs, a distributed namespace, and optimized support for user directories |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |