一种应用感知的大数据重复删除存储系统及方法

文档序号:10697644阅读:515来源:国知局
一种应用感知的大数据重复删除存储系统及方法
【专利摘要】本发明公开了一种应用感知的大数据重复删除存储系统及方法。该系统包括基于计算机网络互联的客户端、管理服务器和重删节点,客户端与管理服务器之间通过应用感知路由方法为应用文件存储确定重删节点列表,客户端与重删节点之间通过相似感知路由方法从重删节点列表中确定目标重删节点,用于存储应用文件中的超块。通过该系统对应用文件进行存储管理,能够使得具有相同类型的应用文件存放到相同的重删节点上,不仅有效减轻网络通信的负荷量,还有利于提高重删率,以及在每个重删节点上的存储吞吐率,增强网络的可扩展性。
【专利说明】
-种应用感知的大数据重复删除存储系统及方法
技术领域
[0001] 本发明设及计算机数据存储管理领域,特别是设及一种基于云计算环境中的应用 感知的大数据重复删除存储系统及方法。
【背景技术】
[0002] 在数字世界中,数据容量和复杂度爆炸式增长。国际数据公司IDC(International Data Co巧oration)研究表明:在过去的五年里,数据年增长量翻9倍达到7ZB,并且在未来 的十年内,将增长44倍达到35ZB。企业的数字信息量也很容易上升到PB级甚至邸级。由于大 数据时代数据量的不断增长使得管理变得越来越复杂,数据管理成本和数据丢失风险提 高。随着存储系统的不断扩展,不仅需要消耗数据中屯、更多的数据存储空间、能耗和制冷代 价,也需要增加大量的管理时间和提高操作复杂度和人为出错风险。同时,由于现代存储系 统对高性能的需求,内存正在取代磁盘,而磁盘在取代磁带。为满足大数据管理所需的服务 级别协议(Service Level Agreement,SLA),管理存储介质变化下的数据泛滥成了新的挑 战。
[0003] 重复数据删除(简称重删)存储技术被广泛应用于磁盘存储系统来管理海量的备 份、归档文件和虚拟机镜像等数据,利用存储数据集中高度数据冗余的特性来节省存储容 量需求和提高网络带宽利用率。为满足大数据存储在容量和性能方面的可扩展需求,基于 云计算环境的分布式重复数据删除存储系统被应用于海量存储数据集的管理,W获得高重 删压缩比和高重删吞吐率。分布式重复数据删除存储系统通常具有将应用数据从客户端分 配到多个重复数据删除服务器节点(简称重删节点)的数据路由机制,W及在每一个重删节 点内进行独立重复数据删除和存储的过程。为及时删除重复数据、优化数据存储和传输开 销,需要在重删存储系统设计中选择在线重删机制。
[0004] 针对大规模存储系统,在数据块级的在线分布式重复数据删除存储方面存在W下 两大挑战:
[0005] 第一,重复数据删除服务器节点的信息孤岛:在分布式重复数据删除过程中,出于 对系统开销的考虑,往往只对节点内部的数据进行消重,而不会去执行跨节点的重复数据 删除,由此产生重复数据删除服务器节点信息孤岛。因此,一种能将数据冗余集中在节点内 部,减少节点间数据重叠,维持系统通信低开销,同时支持负载均衡的数据路由机制对分布 式重复数据删除至关重要。
[0006] 第二,数据块索引查询磁盘瓶颈:为支持重删节点内部的重复数据删除和存储,磁 盘上需要保存一个数据块索引来建立从数据块指纹到数据块存储地址的映射,但数据块索 引通常太大W致难W适应重复数据删除服务器节点有限的内存,再加上频繁随机地对磁盘 进行访问W获取数据块的索引,造成来自客户端的多个数据流的并行重删的特性严重下 降。因此,数据块索引查询磁盘瓶颈成为近年来重复数据删除系统研究的热点。
[0007] 另外,在传统的数据存储系统架构中包括Ξ个层级:应用层、文件系统层和存储硬 件层,每一层各自包含不同类型的有关该层所管理数据的信息,每一层的运些信息通常不 会被其他层获得。因此,为了优化重删,综合考虑存储和应用进行协同设计是可取的。运样, 在低级存储层就会有对高级应用层的数据结构和访问特性有深入的了解。现有技术中,对 重复数据的删除没有设及到对具体应用文件的内容和模式,并且不能找到文件中的冗余成 分。
[0008] 为此,本发明将针对大规模分布式重删系统进行设计,运种系统通常包括数W千 计的云环境下的存储服务器节点。若是按照现有技术中传统分布式处理方法将难W实现, 运是由于运些方法没有很好地开发应用层信息和数据相似性特征,在整体重删率、单一重 删节点的吞吐率、可扩展性、通信开销等方面存在不足。

【发明内容】

[0009] 本发明主要解决的技术问题是提供一种基于应用感知的大数据重复删除存储系 统及方法,解决现有技术中没有根据应用文件类型进行重删存储,系统网络的工作负载量 过大、扩展性不强,W及重删节点的吞吐率不高等问题。
[0010] 为解决上述技术问题,本发明采用的一个技术方案是:提供一种基于应用感知的 大数据重复删除存储系统,包括基于计算机网络互联的客户端、管理服务器和重删节点,该 客户端包括数据划分模块、指纹计算模块和相似感知数据路由模块,该数据划分模块用于 对应用文件按照固定长度或可变长度划分为数据块,再进一步将该数据块组合成超块;该 指纹计算模块利用抗冲突加密哈希函数计算该超块中的每一个数据块的指纹,得到该超块 对应的各数据块的指纹列表;该相似感知数据路由模块利用相似感知路由方法为该超块确 定一个用于存储该超块的目标重删节点;该管理服务器包括文件会话管理模块和应用感知 路由决策模块,该文件会话管理模块用于存储该应用文件与该应用文件划分的数据块的指 纹之间的映射关系,W及需要重构该应用文件的元数据信息;该应用感知路由决策模块与 该相似感知数据路由模块之间通过应用感知路由方法,为该应用文件确定一组用于存储该 应用文件的超块的重删节点列表,并反馈给该客户端;该重删节点包括应用感知相似索引 查询模块、块指纹缓存模块W及并行容器管理模块,该应用感知相似索引查询模块用于向 该客户端反馈应用感知相似性索引查询结果,该块指纹缓存模块用于缓存最近频繁访问的 数据块的指纹,W加速对数据块的查询处理,该并行容器管理模块用于W并行处理的方式 存储唯一数据块。
[0011] 在本发明应用感知的大数据重复删除存储系统另一个实施例中,该抗冲突加密哈 希函数包括MD5、SHA-1和/或SHA-2函数。
[0012] 在本发明应用感知的大数据重复删除存储系统另一个实施例中,该管理服务器中 设置有应用路由表,该应用路由表包括应用文件类型与对应的重删节点识别号、对应的重 删节点的容量之间的映射关系。
[0013] 在本发明应用感知的大数据重复删除存储系统另一个实施例中,该重删节点内存 中设置有应用感知相似索引表和块指纹缓存,在磁盘阵列中设置有容器,该应用感知相似 索引表由应用文件类型索引和基于应用文件类型分类的哈希表组成,该容器包含存储唯一 数据块的数据段部分和存储相应唯一数据块元信息的元数据段部分,该块指纹缓存用于保 存最近访问的该容器内的所有数据块指纹,W加速对该容器内的数据块指纹的查询操作。
[0014] 在本发明应用感知的大数据重复删除存储系统另一个实施例中,该基于应用文件 类型分类的哈希表中的每一项均包括超块的代表性数据块指纹与存储该超块的容器识别 号之间的映射关系,该块指纹缓存为Key-化lue型结构,由一个双链表索引的哈希表构建而 成。
[0015] 在本发明应用感知的大数据重复删除存储系统另一个实施例中,该应用感知路由 方法是:
[0016] 第一步,在该管理服务器中,对来自该客户端的需要存储的应用文件,确定该应用 文件的扩展名;
[0017] 第二步,在该管理服务器的该应用路由表中查询,找到该应用文件的扩展名对应 的重删节点Ai,该重删节点Ai存储相同类型的应用文件;
[0018] 第Ξ步,将所有存储该相同类型应用文件的重删节点组成一个重删节点列表1D_ list= {Al,A2,...,Am},且满足该处,....,九阳,S2, S[\},该{Si, S2,-|,Sn}表示该应用感知的大数据重复删除存储系统中的所有的重删节点的列表;
[0019] 第四步,检查该重删节点列表1D_list,若该iD_//.s'i=0或者该ID_list中的各重 删节点均已存满,则向该ID_list仅添加一个具有最少存储负载的重删节点Sl,即ID_list ={Sl};
[0020] 第五步,该管理服务器向该客户端返回该应用文件对应的该重删节点列表1D_ list 0
[0021] 在本发明应用感知的大数据重复删除存储系统另一个实施例中,该相似感知路由 方法是:
[0022] 第一步,在该客户端,利用该数据划分模块对应用文件划分为C个数据块,再将运C 个数据块组合成一个超块S,通过加密哈希函数计算得到该超块S的所有C个数据块指纹列 表怖1而2,-..而山
[0023] 第二步,对该数据块指纹列表{fpl,fp2,…,fp。}进行排序,选取k个最小的数据块 指納所>1分化喻k}c旅1,.尔2,:·.·,加 ?乍为该超块S的代表性数据块指纹,即该超块S的 手纹;
[0024] 第Ξ步,从该应用感知的大数据重复删除存储系统中的所有Ν个重删节点中选取k 个候选重删节点,该k个候选重删节点的识别号为{rfpimod N,rfp2mod 化mod N}, 将该超块S的手纹分别发送给该k个候选重删节点;
[0025] 第Ξ步,在该k个候选重删节点上,均查询该超块S手纹中各代表性数据块指纹是 否存在,从而得到该k候选重删节点内已存的代表性数据块指纹数{ri,η,…,η},该代表性 数据块指纹数It 1,Γ2,···,rk}作为该k候选重删节点对该超块S的相似值;
[0026] 第四步,将该k个候选重删节点存储使用率与所有N个重删节点的平均存储使用率 相除,计算该k个候选重删节点的相对存储使用率{wi,W2,···,Wk};
[0027] 第五步,选择在该k个候选重删节点中,选取识别号i满足;Ti/wi = max{;ri/wi,r2/ W2,···,rk/wk}的重删节点作为该超块S存储的目标重删节点。
[0028] 本发明还提供了一种应用感知的大数据重复删除方法,基于前述应用感知的大数 据重复删除存储系统对应用文件进行存储和获取,对应用文件的存储方法是:
[0029] 第一步,该客户端向该管理服务器发送在该应用感知的大数据重复删除存储系统 中存储一个应用文件的化tFi 1 eReq消息,该化tFi 1 eReq消息包含该应用文件的元数据;
[0030] 第二步,该管理服务器接收该化tFileReq消息后,存储该应用文件的元数据,并且 确认该应用感知的大数据重复删除存储系统中有足够的存储空间来存储该应用文件;接 着,该管理服务器利用该应用感知路由方法,为该应用文件确定一组用于存储该应用文件 的重删节点列表;然后,该管理服务器向该客户端发回一个PutFileResp消息,在该 PutFileResp消息中包含该管理服务器向该客户端回应的该应用文件识别号,W及该应用 文件对应的重删节点列表;
[0031] 第Ξ步,该客户端接收化tFileResp消息后,对于该应用文件中的第1个超块 Supe;rChunk_l,利用该相似感知路由方法,分别向k个候选重删节点发出LookupSCReq查询 请求,该k个候选重删节点分别对超块Supe;K:hunk_l的代表性指纹进行相似索引查找,确定 对应的加权相似值,然后向该用户端回应LookupSCResp消息,该LookupSCResp消息包含了 该候选重删节点向该客户端回应的与该超块SuperChunk_l对应的加权相似值;
[0032] 第四步,该客户端接收该k个候选重删节点各自反馈的LookupSCResp消息后,根据 各该加权相似值的大小,选择其中加权相似值最大的一个候选重删节点作为目标重删节 点,用W存储该超块Super化unk_l,并且将该目标重删节点的识别号通过化tSCReq消息通 知该管理服务器,该管理服务器向该客户端回应化tSCResp消息;
[0033] 第五步,该客户端向该目标重删节点发出Lookup化unks-SCReq请求信息,并W批 量方式发出该超块Super化unk_l的全部数据块指纹到该目标重删节点,用W确认该数据块 在该目标重删节点中是否重复,该目标重删节点进行数据块指纹查找后,向该客户端返回 LookupQumksSCResp消息,该LookupQiunksSCResp消息中包含该超块Supe;rQiunk_l在该目 标重删节点不重复的唯一数据块的列表;
[0034] 第六步,该客户端向该目标重删节点发出化ique化unksSC消息,并W批量方式将 该超块Supe;K:hunk_l中的唯一数据块发送到该目标重删节点,该目标重删节点接收该唯一 数据块并存储,然后向该管理服务器返回SCAck确认消息;
[0035] 第屯步,对于该应用文件的后续其他超块,重复W上第Ξ步至第六步,直至该应用 文件的所有超块完成存储,结束对该应用文件的存储。
[0036] 在本发明应用感知的大数据重复删除方法另一个实施例中,对应用文件的获取方 法是:
[0037] 第一步,该客户端向该管理服务器发出GetFi leReq请求,请求获取一个应用文件, 该管理服务器响应该GetFileReq请求,通过查询该应用文件的元数据后,向该客户端反馈 GetFileResp消息,该GetFileResp消息中包含被请求获取的该应用文件的超块列表,W及 该超块列表中的超块到对应的重删节点的映射;
[0038] 第二步,该客户端收到GetFileResp消息后,向该应用文件的超块列表中的超块对 应的重删节点发出GetSuper化unk消息,请求该重删节点获取该超块;
[0039] 第Ξ步,重删节点接收GetSuper化unk消息,从其容器中获取对应的该超块,然后 向该客户端返回该超块;
[0040] 第四步,该客户端接收该重删节点返回的该超块后,再利用该超块的验证码和需 要获取的该应用文件的识别号来确认数据块的完整性,并完成对该应用文件的获取。
[0041] 本发明的有益效果是:通过本发明提供了一种应用感知的大数据重复删除存储系 统和方法,包括基于计算机网络互联的客户端、管理服务器和重删节点,客户端与管理服务 器之间通过应用感知路由方法为应用文件存储确定重删节点列表,客户端与重删节点之间 通过相似感知路由方法从重删节点列表中确定目标重删节点,用于存储应用文件中的超 块。运种两级路由方法能够有效降低网络的通信负荷,通过该系统对应用文件进行存储,能 够使得具有相同类型的应用文件存储到相同的重删节点上,有利于提高重删率,W及在每 个重删节点上的存储的吞吐率,增强网络的可扩展性。
【附图说明】
[0042] 图1是根据本发明应用感知的大数据重复删除存储系统一个实施例的系统架构 图;
[0043] 图2是根据本发明应用感知的大数据重复删除存储系统一个实施例中的管理服务 器的应用路由表;
[0044] 图3是根据本发明应用感知的大数据重复删除存储系统一个实施例中的重删节点 的数据结构;
[0045] 图4是根据本发明应用感知的大数据重复删除方法一个实施例的应用文件存储流 程图;
[0046] 图5是根据本发明应用感知的大数据重复删除方法一个实施例的应用文件获取流 程图。
【具体实施方式】
[0047] 为了便于理解本发明,下面结合附图和具体实施例,对本发明进行更详细的说明。 附图中给出了本发明的较佳的实施例。但是,本发明可许多不同的形式来实现,并不限 于本说明书所描述的实施例。相反地,提供运些实施例的目的是使对本发明的公开内容的 理解更加透彻全面。
[0048] 需要说明的是,除非另有定义,本说明书所使用的所有的技术和科学术语与属于 本发明的技术领域的技术人员通常理解的含义相同。在本发明的说明书中所使用的术语只 是为了描述具体的实施例的目的,不是用于限制本发明。本说明书所使用的术语"和/或"包 括一个或多个相关的所列项目的任意的和所有的组合。
[0049] 图1显示了本发明应用感知的大数据重复删除存储系统一个实施例的系统架构 图。该系统包括客户端10、管理服务器20和重删节点30,可见客户端10和重删节点30都有多 个。在每一个客户端10中均包括3个模块,即数据划分模块101、指纹计算模块102和相似感 知数据路由模块103。对于数据划分模块101,其作用就是要把需要存储的应用文件进行切 分,即对文件级的数据W固定长度或可变长度划分为成一个个小的数据块,然后再进一步 将运些小的数据块组合成数据超块(简称超块);接下来,指纹计算模块102利用MD5、SHA-1 和/或SHA-2等抗冲突加密哈希函数对该超块中的每一个数据块进行指纹计算,得到该超块 中的各个数据块的块指纹列表;进一步,相似感知数据路由模块103利用相似感知路由方法 为每一个超块选择一个适合的重删节点30用于存储该超块。该过程需要客户端10的相似感 知数据路由模块103先与管理服务器20的应用感知路由模块之间通过应用感知路由方法, 为每一个需要存储的应用文件提供一个用于存储该应用文件的超块的重删节点列表。然 后,客户端10的相似感知数据路由模块103再利用上述的相似感知路由方法,从该重删节点 列表中为该应用文件划分出的每一个超块找到适合的目标重删节点30,用于存储该超块。 下文会对应用感知路由方法和相似感知路由方法做进一步示例说明。
[0050] 在图1中,管理服务器20包括文件会话管理模块201和应用感知路由决策模块202。 其中,文件会话管理模块201用于保存需要存储的应用文件与该文件对应划分出的数据块 的指纹之间的映射关系,W及需要重构该文件的元数据信息。因此,需要存储的应用文件的 所有文件级的元数据都保留在该管理服务器20中,客户端10与管理服务器20之间存在通过 文件元数据的读写操作进行交互的过程,下文将会结合图4和图5分别对文件存储和文件获 取过程进行详细的示例说明。应用感知路由决策模块202与相似感知数据路由模块103之间 通过应用感知路由方法,为应用文件确定一组用于存储该应用文件超块的重删节点列表, 并反馈给所述客户端10。优选的,为保证可靠性,管理服务器20可W采用主被故障切换方式 支持两个服务器,W避免单一服务器失效带来的不利影响。
[0051] 优选的,图2显示了管理服务器20中的一个名为应用路由表的数据结构实施例。该 应用路由表用于执行应用感知路由决策模块202的应用感知路由方法。该应用路由表位于 管理服务器20的RAM中,确保了较高的处理速度。该应用路由表中的竖向第一列Type为文件 类型,W应用文件的扩展名进行区分,分别有doc文件、rmvb文件、jpg文件等;表中竖向第二 列为NodelD,为重删节点识别号,W数字序列号进行区分;表中竖向第Ξ列为化pacity,为 该重删节点上对应的应用文件数据的存储容量,W字节数来表示。横向每一行对应一条存 储映射关系,例如,第一行表示在重删节点识别号NodelD为5的重删节点上对应存储的应用 文件类型为doc,且该重删节点上所有doc文档的存储容量为235MB。通过该应用路由表实施 例,管理服务器20可W对每一个需要存储的应用文件,首先查找其文件类型,然后确定存储 该文件类型的重删节点有哪些,运些重删节点的容量有多大,从而计算出在运些重删节点 中进行存储的工作负载量。
[0052] 进一步的,当从客户端10向管理服务器20输入需要存储的应用文件扩展名W后, 管理服务器20通过应用感知路由方法得到该应用文件的一组重删节点列表。W下给出该应 用感知路由方法的一个优选实施例。
[0053] 首先,对来自客户端10的需要存储的应用文件化llname,确定该文件化llname的 扩展名;然后,在管理服务器20中的应用路由表(如图2所示)中查询,找到该扩展名对应的 重删节点Ai,该重删节点存储相同类型的应用文件(即文件的扩展名相同);接着,将所有运 些存储有相同类型应用文件的重删节点组成一个重删节点列表1D_list={Ai,A2,-,,Am}。 对于整个重复删除系统而言,若所有的重删节点列表为{Si,S2,···,Sn},应满足 JD_/扣二料1,.杰,...,e ?[筑,货,..^麵};进一步,检查重删节点列表10_113*:若 /D_/?'別=0(即列表为空,没有找到相应的重删节点)或者ID_list中的各重删节点都已存 满(存储过负载),那么仅向ID_list添加一个具有最少存储负载的重删节点Sl,即ID_list = {Sl};最后,管理服务器20向客户端10返回应用文件化llname对应的重删节点列表1D_ list。进一步,在图1中,重删节点30包括应用感知相似索引查询模块301、块指纹缓存模块 302W及并行容器管理模块303。应用感知相似索引查询模块301用于向客户端10反馈应用 感知相似性索引查询结果。由上述可知,当客户端10从管理服务器20接收到需要存储的应 用文件的重删节点列表W后,需要进一步对该应用文件划分的每一个超块确定一个存储的 重删节点(即目标重删节点),所采用的方法称之为相似性感知路由方法,将在后面进一步 示例说明。当为一个超块确定好目标重删节点后,进一步在客户端10与重删节点30之间进 行指纹查找,W确定该超块中的每一个数据块的指纹在该重删节点30中是否存在,而只有 指纹不存在的数据块才会被作为唯一数据块,通过块转移存储到该重删节点30中。图1中的 块指纹缓存模块302用于缓存最近频繁访问的超块中的各数据块的指纹,W加速对冗余数 据块的查询处理。并行容器管理模块303则用于W并行处理的方式存储唯一数据块,W加速 存储处理过程。另外,当重删节点30存储新的唯一数据块W后,还将该唯一数据块的元数据 发送到管理服务器20进行更新。
[0054] 优选的,W下对相似性感知路由方法的一个优选实施例说明。我们已知图1中客户 端10中的数据划分模块101用于对应用文件进行划分。
[0055] 第一步,把一个应用文件分成C小的数据块,再将运些数据块组合成一个超块S,通 过加密哈希函数计算得到该超块的所有的块指纹列表{fpl,fp2,…,fp。}。此处,fp是 finge;rp;rint 的缩写。
[0056] 第二步,对超块S的数据块指纹列表{fpl,fp2,…,巧。}进行排序后,选取k个最小的 数据块指纹{喻1,嘶2,...//化}^抓'1//权,..乍为该超块S的代表性数据块指纹,即超 块S的手纹,并将超块S的手纹发送到Ν个重删节点构成的集群内的k个候选重删节点,运些 候选重删节点的识别号为{rfpimod N,rfp2mod N,…,rfpk mod N};此处,rfp是 representative fingerprint的缩写。
[0057] 第Ξ步,通过在候选的重删节点中,对于已经存在的由超块的代表性数据指纹构 建的相似索引中,查询该超块S的代表性数据块指纹是否存在,从而统计得出各个候选重删 节点内已存的代表性数据块指纹数{^,^,-,,^},运个4值直接对应超块5与运些重删节点 中已存数据的相似值;
[005引第四步,W候选重删节点的存储使用率与所有重删节点的平均存储使用率相除, 来计算各个候选重删节点的相对存储使用率{巧1,巧2,一,巧1^,再利用运些相对存储使用率得 到各候选重删节点的加权相似值{ri/wi,r2/w2,-,,rk/wk},从而实现候选重删节点存储容量 负载平衡;
[0059] 第五步,选择在候选重删节点中选取其识别号1满足^/机=111曰义{>1/'\¥1^2/*2,···, rk/wk}的重删节点作为超块S的路由目标重删节点。基于该实施例,图1中客户端10可W从重 删节点30中为应用文件划分出来的每一超块找到一个合适的目标重删节点。
[0060] 优选的,图3显示了重删节点30中的数据结构实施例。图3中,在RAM中设置有应用 感知相似性索引表3011、块指纹缓存3021,在磁盘阵列中设置有容器3031。其中,应用感知 相似性索引表3011是一个设置在内存中的数据结构,是由应用文件类型索引3011A和基于 应用文件类型分类的哈希表3011B组成。当来自客户端10的一个相似索引查询请求时,重删 节点30根据输入的超块的应用文件类型信息,通过应用文件类型索引3011A将该超块路由 到具有相同应用文件类型的哈希表3011B。例如,在图3中,输入到重删节点30的超块的文件 类型若是doc,则将该超块路由到具有doc类型的哈希表。同样,超块的文件类型若是化g,则 将该超块路由到具有化g类型的哈希表。对于图3中哈希表3011B中的每一项均包括一个映 射关系,即超块的代表性数据块指纹(RFP,representative fingerprint)与存储该超块的 容器识别号(CID,container ID)之间的映射关系。由此可见,运种相似索引是一种基于哈 希表的内存数据结构,每一项包含了从超块代表性数据块指纹到存储该超块的容器识别号 的映射。由于超块手纹技术只需要非常低的取样率,其大小远小于传统数据块指纹到容器 映射的磁盘索引,因此该方法的处理速度具有明显的优势。
[0061] 图3中,容器3031是一种自描述的数据结构,存在于磁盘阵列中W保持局部性。容 器3031包含存储唯一数据块的数据段部分和存储相应唯一数据块元信息(如数据块指纹、 偏移和长度等)的元数据段部分。运里的重删节点30支持并行的容器管理,用W并发地分 配、回收、读、写和可靠存储。对于并行数据存储,每个数据流保留一个打开的数据容器,如 果容器填满则创建并打开新的容器。所有的磁盘访问是在容器粒度实现的。
[0062] 图3中,除了上述两种重要的数据结构,还有块指纹缓存3021,其对改进重删节点 的性能起关键作用。工作中,它保存最近访问容器3031的所有块指纹到内存中。一旦代表性 数据块指纹在一个相似索引查询请求中被访问到,相应数据块所在容器内的所有数据块指 纹预取到块指纹缓存3021中来加速块指纹查询操作。
[0063] 优选的,块指纹缓存3021是一个Key-Value型的结构,由一个双链表索引的哈希表 构建。块指纹缓存3021存满时,容器3031内的指纹对加速块指纹查询效果不显著,则采用最 近最少访问策略来替换历史记录。因此,当查询超块的代表性数据块指纹时,先在块指纹缓 存3021中查找对应超块映射的容器。如果容器的数据块指纹信息已经在块指纹缓存3021 中,则比较该超块的数据块指纹和容器内元数据部分的块指纹;否则,我们从容器中预取其 元数据部分包含的所有数据块指纹。最后,那些未找到的数据块指纹对应的数据块将被存 储到一个打开未满的容器。通过容器管理保持数据块指纹缓存局部性,我们设计的相似性 索引查询优化能够获得高吞吐率且仅使用很少的内存空间。
[0064] 通过W上分析,我们可W看出,为了存储一个超块,本发明实施例采用了两层路由 机制,即在客户端与管理服务器之间W文件级的方式,通过应用感知路由方法来确定应用 文件存储所对应的重删节点列表,而在客户端与重删节点之间W超块级的方式,通过相似 性感知路由方法来确定超块存储所对应的目标重删节点。由此可见,运两层路由机制,一方 面在客户端与管理服务器之间是W文件级进行交互,有利于减少客户端与管理服务器之间 的通信负荷,也降低了管理服务器的工作负荷。而在客户端与重删节点之间W超块级的方 式进行交互,则有利增强客户端与重删节点之间进行数据存储的针对性,提高了网络工作 效率。
[0065] 基于上述本发明应用感知的大数据重复删除存储系统的同一构思,本发明还提供 了一种应用感知的大数据重复删除存储方法,W下结合图4和图5加 W说明。
[0066] 基于图1所示的应用感知的大数据重复删除存储系统实施例,图4显示了应用文件 在该应用感知的大数据重复删除存储系统中存储方法。
[0067] 当一个用户或者应用发送文件存储请求到客户端。首先,客户端在数据划分模块 中将文件划分为数据块或者超块,并在块指纹计算模块通过加密哈希函数计算出数据块指 纹值;然后,由相似感知数据路由模块提取出超块手纹并进行数据路由。实际的数据存储操 作是在相似感知数据路由模块中通过与管理服务器和重删节点之间交互完成的。详细的方 法步骤如下:
[0068] 第一步,客户端发送一个化tFileReq消息给管理服务器,该消息包含应用文件识 别号、文件大小、文件名、时间戳、文件中的超块数、超块的校验等。其中,应用文件识别号为 文件内容的抗冲突哈希值,也可用作文件获取过程中文件完整性的校验。
[0069] 第二步,管理服务器接收该化tFileReq请求,存储该应用文件的元数据,并且要确 认整个大数据重复删除存储系统中有足够的空间来存储该文件。运里,管理服务器只需保 持文件级的元数据管理,而不是超块粒度,使得管理服务器可W负责更大容量的数据管理, 整个系统具有更高的扩展性。
[0070] 管理服务器还执行应用感知路由决策,为该应用文件选择一组用于存储该文件超 块的重删节点列表。然后,管理服务器给客户端发回一个化tFileResp响应。在化tFileResp 消息中,管理服务器向客户端回应文件识别号和该文件对应的重删节点列表。
[0071] 第Ξ步,客户端接收化tFileResp消息后,对于该文件中的每一个超块,利用相似 性感知路由方法,分别向k个候选重删节点发出k个LookupSCReq查询请求,目的是为了在运 些候选的重删节点中为该超块的代表指纹查找到应用感知相似性索引。图4中示意给出了 Ξ个重删节点,即重删节点1、重删节点2和重删节点3,其中只是将重删节点2和重删节点3 作为候选的重删节点,因此分别向重删节点2和重删节点3发出了Look叫SCReq_l请求,其 中_1用W区分不同的超块,可W视之为该文件中第1个超块。接收到该请求后,重删节点2和 重删节点3分别进行了相似索引查找,即图4中的相似索引查找,主要是通过基于相似性感 知路由方法,各候选重删节点为该超块确定对应的加权相似值。
[0072] 第四步,重删节点向客户端回应LookupSCResp消息,该消息包括候选重删节点向 客户端回应的与该超块对应的加权相似值。图4中重删节点2和重删节点3回应了 LookupSCResp_l消息。
[0073] 第五步,客户端接收运些LookupSCResp消息后,根据加权相似值的大小,选择其中 加权相似值最大的一个候选重删节点作为目标重删节点,用W存储该超块,并且再通过 化tSCReq消息通知管理服务器该重删节点的识别号,管理服务器回应化tSCResp。图4中针 对的该文件中的第1个超块而言,分别用化tSCReq_l和化tSCResp_l加 W表示。
[0074] 第六步,客户端确定目标重删节点后,向该目标重删节点发出Lookup化unksSCReq 请求信息,并W批量方式发出该超块的全部块指纹到该目标重删节点,用W确认其中每一 个数据块是否重复,目标重删节点进行指纹查找后,向客户端返回Lookup化unksSCResp消 息。图4中对应为Lo0kup化unkSSCReq_ 1请求消息,用W对第1个超块的处理,目标重删节点 为重删节点2,然后重删节点2执行化unkFPsLookup操作,进行数据块指纹查找,之后,目标 重删节点2向客户端回应Lookup化unksSCResp_l消息,其中包括一个该超块中的唯一数据 块的列表。
[0075] 第屯步,客户端向目标重删节点发出化ique化unksSC消息,并W批量方式将该超 块中的唯一数据块发送到该目标重删节点,该目标重删节点接收后将运些唯一数据块进行 存储,然后向管理服务器返回SCAck确认消息。图4中对应为加 i que化linksSC_1消息和 SCAck_l消息,表示对第1超块的操作。
[0076] 接下来,对该文件中的第2超块重复上述同样的操作,直至整个应用文件中的所有 超块在各重删节点存储完毕。
[0077] 图5显示了应用文件在该大数据重复删除存储系统中获取方法。图5中,第一步,由 客户端向管理服务器发起GetFileReq请求,希望请求获取一个文件。管理服务器响应该 GetFileReq请求,通过查询该应用文件的元数据后,向客户端反馈GetFileResp消息,该 GetFileResp消息中包含被请求应用文件中的超块列表,W及从超块到对应存储的重删节 点的映射。第二步,客户端收到GetFileResp消息后,向该应用文件所包含的超块对应的重 删节点发出GetSuper化unk消息,请求运些重删节点获取运些超块。图5中示意表示该应用 文件包含两个超块,因此客户端分别向存储有该两个超块的重删节点1和重删节点2分别发 出GetSuper化unk_2和GetSuper化unk_l消息。第Ξ步,重删节点接收GetSuper化unk消息, 从其容器中获取对应的超块,然后向客户端返回超块。图5中,重删节点1获取Super化unk_2 后向客户端返回该超块Super化unk_2,重删节点2获取Supe;rChunk_l后向客户端返回该超 块Super化unk_l。第四步,客户端接收运些超块后,再利用超块的验证码和文件识别号来确 认数据的完整性,并完成对该文件的获取。
[0078] 通过本发明提供的应用感知的大数据重复删除存储系统及其应用方法,包括基于 计算机网络互联的客户端、管理服务器和重删节点,客户端与管理服务器之间通过应用感 知路由方法为应用文件存储确定重删节点列表,客户端与重删节点之间通过相似感知路由 方法从重删节点列表中确定目标重删节点,用于存储应用文件中的超块。运种两层路由方 法能够有效降低网络的通信负荷,通过该系统对应用文件进行存储,能够使得具有相同类 型的应用文件存储到相同的重删节点上,有利于提高重删率,W及在每个重删节点上的存 储的吞吐率,增强分布式存储系统的可扩展性。
[0079] W上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发 明说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的技术领域,均 包括在本发明的专利保护范围内。
【主权项】
1. 一种应用感知的大数据重复删除存储系统,包括基于计算机网络互联的客户端、管 理服务器和重删节点,其特征在于: 所述客户端包括数据划分模块、指纹计算模块和相似感知数据路由模块,所述数据划 分模块用于对应用文件按照固定长度或可变长度划分为数据块,再进一步将所述数据块组 合成超块;所述指纹计算模块利用抗冲突加密哈希函数计算所述超块中的每一个数据块的 指纹,得到所述超块对应的各数据块的指纹列表;所述相似感知数据路由模块利用相似感 知路由方法为所述超块确定一个用于存储所述超块的目标重删节点; 所述管理服务器包括文件会话管理模块和应用感知路由决策模块,所述文件会话管理 模块用于存储所述应用文件与所述应用文件划分的数据块的指纹之间的映射关系,以及需 要重构所述应用文件的元数据信息;所述应用感知路由决策模块与所述相似感知数据路由 模块之间通过应用感知路由方法,为所述应用文件确定一组用于存储所述应用文件的超块 的重删节点列表,并反馈给所述客户端; 所述重删节点包括应用感知相似索引查询模块、块指纹缓存模块以及并行容器管理模 块,所述应用感知相似索引查询模块用于向所述客户端反馈应用感知相似性索引查询结 果,所述块指纹缓存模块用于缓存最近频繁访问的数据块的指纹,以加速对数据块的查询 处理,所述并行容器管理模块用于以并行处理的方式存储唯一数据块。2. 根据权利要求1所述的应用感知的大数据重复删除存储系统,其特征在于,所述抗冲 突加密哈希函数包括MD5、SHA-1和/或SHA-2函数。3. 根据权利要求2所述的应用感知的大数据重复删除存储系统,其特征在于,所述管理 服务器中设置有应用路由表,所述应用路由表包括应用文件类型与对应的重删节点识别 号、对应的重删节点的容量之间的映射关系。4. 根据权利要求3所述的应用感知的大数据重复删除存储系统,其特征在于,所述重删 节点内存中设置有应用感知相似索引表和块指纹缓存,在磁盘阵列中设置有容器,所述应 用感知相似索引表由应用文件类型索引和基于应用文件类型分类的哈希表组成,所述容器 包含存储唯一数据块的数据段部分和存储相应唯一数据块元信息的元数据段部分,所述块 指纹缓存用于保存最近访问的所述容器内的所有数据块指纹,以加速对所述容器内的数据 块指纹的查询操作。5. 根据权利要求4所述的应用感知的大数据重复删除存储系统,其特征在于,所述基于 应用文件类型分类的哈希表中的每一项均包括超块的代表性数据块指纹与存储所述超块 的容器识别号之间的映射关系,所述块指纹缓存为Key-Value型结构,由一个双链表索引的 哈希表构建而成。6. 根据权利要求1至5任一所述的应用感知的大数据重复删除存储系统,其特征在于, 所述应用感知路由方法是: 第一步,在所述管理服务器中,对来自所述客户端的需要存储的应用文件,确定所述应 用文件的扩展名; 第二步,在所述管理服务器的所述应用路由表中查询,找到所述应用文件的扩展名对 应的重删节点Μ,所述重删节点心存储相同类型的应用文件; 第三步,将所有存储所述相同类型应用文件的重删节点组成一个重删节点列表1D_ 118七={八1,八2,.",八111},且满足所述/0_//5/={241,,42,...,.八爪}( ={51/52/.../51\],所述{31, S2,h_,Sn}表示所述应用感知的大数据重复删除存储系统中的所有的重删节点的列表; 第四步,检查所述重删节点列表1D_list,若所述或者所述ID_list中的各重 删节点均已存满,则向所述IDjist仅添加一个具有最少存储负载的重删节点SL,即ID_ list= {Sl}; 第五步,所述管理服务器向所述客户端返回所述应用文件对应的所述重删节点列表1D_list〇7. 根据权利要求6所述的应用感知的大数据重复删除存储系统,其特征在于,所述相似 感知路由方法是: 第一步,在所述客户端,利用所述数据划分模块对应用文件划分为c个数据块,再将这c 个数据块组合成一个超块S,通过加密哈希函数计算得到所述超块S的所有c个数据块指纹 列表{fpi,fp2,···,fp c}; 第二步,对所述数据块指纹列表{€口14口2,'",€口。}进行排序,选取1^个最小的数据块指 纹0/Pi,/p2,...,/fPk}e(/^i,加,...,加}作为所述超块S的代表性数据块指纹,即所述超块 S的手纹; 第三步,从所述应用感知的大数据重复删除存储系统中的所有N个重删节点中选取k个 候选重删节点,所述k个候选重删节点的识别号为{rfpimod N,rfp2mod N,'",rfpkmod N}, 将所述超块S的手纹分别发送给所述k个候选重删节点; 第三步,在所述k个候选重删节点上,均查询所述超块S手纹中各代表性数据块指纹是 否存在,从而得到所述k候选重删节点内已存的代表性数据块指纹数{^,^,…,",所述代 表性数据块指纹数{η,κ,…,r k}作为所述k候选重删节点对所述超块S的相似值; 第四步,将所述k个候选重删节点存储使用率与所有N个重删节点的平均存储使用率相 除,计算所述k个候选重删节点的相对存储使用率{wi,W2,···,Wk}; 第五步,选择在所述k个候选重删节点中,选取识别号i满足ri/wi = max{ri/wi,Γ2/ w2,…,rk/Wk}的重删节点作为所述超块S存储的目标重删节点。8. -种应用感知的大数据重复删除存储方法,基于权利要求1至7任一所述的应用感知 的大数据重复删除存储系统对应用文件进行存储和获取,其特征在于,对应用文件的存储 方法是: 第一步,所述客户端向所述管理服务器发送在所述应用感知的大数据重复删除存储系 统中存储一个应用文件的PutFi 1 eReq消息,所述PutFi 1 eReq消息包含所述应用文件的元数 据; 第二步,所述管理服务器接收所述PutFileReq消息后,存储所述应用文件的元数据,并 且确认所述应用感知的大数据重复删除存储系统中有足够的存储空间来存储所述应用文 件;接着,所述管理服务器利用所述应用感知路由方法,为所述应用文件确定一组用于存储 所述应用文件的重删节点列表;然后,所述管理服务器向所述客户端发回一个PutFileResp 消息,在所述PutFileResp消息中包含所述管理服务器向所述客户端回应的所述应用文件 识别号,以及所述应用文件对应的重删节点列表; 第三步,所述客户端接收PutFileResp消息后,对于所述应用文件中的第1个超块 SuperChunk_l,利用所述相似感知路由方法,分别向k个候选重删节点发出LookupSCReq查 询请求,所述k个候选重删节点分别对超块Sup erChunk_l的代表性指纹进行相似索引查找, 确定对应的加权相似值,然后向所述用户端回应LookupSCResp消息,所述LookupSCResp消 息包含了所述候选重删节点向所述客户端回应的与所述超块SuperChunk_l对应的加权相 似值; 第四步,所述客户端接收所述k个候选重删节点各自反馈的LookupSCResp消息后,根据 各所述加权相似值的大小,选择其中加权相似值最大的一个候选重删节点作为目标重删节 点,用以存储所述超块SuperChunkj,并且将所述目标重删节点的识别号通过PutSCReq消 息通知所述管理服务器,所述管理服务器向所述客户端回应PutSCResp消息; 第五步,所述客户端向所述目标重删节点发出LookupChunks-SCReq请求信息,并以批 量方式发出所述超块SuperChunk_l的全部数据块指纹到所述目标重删节点,用以确认所述 数据块在所述目标重删节点中是否重复,所述目标重删节点进行数据块指纹查找后,向所 述客户端返回LookupChunksSCResp消息,所述LookupChunksSCResp消息中包含所述超块 Sup erChunk_l在所述目标重删节点不重复的唯一数据块的列表; 第六步,所述客户端向所述目标重删节点发出UniqueChunksSC消息,并以批量方式将 所述超块SuperChunk_l中的唯一数据块发送到所述目标重删节点,所述目标重删节点接收 所述唯一数据块并存储,然后向所述管理服务器返回SCAck确认消息; 第七步,对于所述应用文件的后续其他超块,重复以上第三步至第六步,直至所述应用 文件的所有超块完成存储,结束对所述应用文件的存储。9.根据权利要求8所述的应用感知的大数据重复删除存储方法,其特征在于,对应用文 件的获取方法是: 第一步,所述客户端向所述管理服务器发出GetFileReq请求,请求获取一个应用文件, 所述管理服务器响应所述GetFileReq请求,通过查询所述应用文件的元数据后,向所述客 户端反馈GetFi 1 eResp消息,所述GetFi 1 eRe sp消息中包含被请求获取的所述应用文件的超 块列表,以及所述超块列表中的超块到对应的重删节点的映射; 第二步,所述客户端收到GetFileResp消息后,向所述应用文件的超块列表中的超块对 应的重删节点发出GetSuperChunk消息,请求所述重删节点获取所述超块; 第三步,重删节点接收GetSuperChunk消息,从其容器中获取对应的所述超块,然后向 所述客户端返回所述超块; 第四步,所述客户端接收所述重删节点返回的所述超块后,再利用所述超块的验证码 和需要获取的所述应用文件的识别号来确认数据块的完整性,并完成对所述应用文件的获 取。
【文档编号】G06F17/30GK106066896SQ201610561768
【公开日】2016年11月2日
【申请日】2016年7月15日
【发明人】付印金, 谢钧, 陈卫卫, 缪嘉嘉, 赵洪华, 端义锋
【申请人】中国人民解放军理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1