一种数据重构方法及装置制造方法及图纸

技术编号:34012017 阅读:16 留言:0更新日期:2022-07-02 14:49
本说明书提供的一种数据重构方法及装置,应用于分布式存储系统,所述分布式存储系统包括一个元数据节点和若干数据节点;述元数据节点根据存储目标数据片对应的纠删码EC校验组的故障域,选择存储节点;所述目标数据片是待重构的数据片,所述存储节点不属于:除存储目标数据片的故障域之外,其他存储所述EC校验组的故障域;所述元数据节点在所述若干数据节点中选择重构节点;所述重构节点获取所述目标数据片对应的EC校验组的其他数据片和校验片,并根据获取的所述其他数据片和校验片重构所述目标数据片;所述重构节点将重构后的目标数据片发送至所述存储节点,所述存储节点存储所述重构后的目标数据片。重构后的目标数据片。重构后的目标数据片。

【技术实现步骤摘要】
一种数据重构方法及装置


[0001]本说明书一个或多个实施例涉及计算机应用领域,尤其涉及一种数据重构方法及装置。

技术介绍

[0002]在分布式存储系统中,一般为了保证数据的可靠性,采用纠删码(erasure coding,EC)校验组的方式来存储数据,即将一段数据分成多片数据片,基于多片数据片生成多片校验片(一段数据对应的多片数据片和多片校验片共同组成了EC校验组),并将多片数据片和多片校验片分别存储在不同节点设备中,比如一个设备中存储一片数据片或一片校验片。这样即使任一节点设备故障只会导致一片数据片丢失,且在任意1个数据片丢失时,可以通过其他数据片及校验片重构丢失的该片数据。
[0003]重构丢失的数据片的过程具体包括,分布式存储系统中的元数据节点(分布式存储系统一般包括一个元数据节点和若干个数据节点)指定一个目标节点作为重构数据片以及存储重构后的数据片的节点,目标节点获取丢失的数据所对应的其他数据片及校验片,并通过获取的数据片及校验片重构得到丢失的数据片,最后目标节点将重构得到的数据片存储至本机中。
[0004]分布式存储系统的服务器集群分为多个故障域,为了保证数据的可靠性,通常将一组EC校验组分散存储在多个故障域内。这种情况下,为了防止一个故障域内存储过多数据导致数据不安全,在任一节点设备故障需要并重构一片数据片的情况下,选择的目标节点所在故障域不能为:该EC校验组对应的其他源节点所在的故障域(该EC校验组也就是需要重构的数据片所对应的EC校验组,该EC校验组对应的其他源节点即该EC校验组中,除了需要重构的数据片所在的故障域之外,其他数据片和校验片所在的数据节点)。换言之,目标节点并不能在整个服务器集群内随意挑选,只能在较小的范围内进行挑选,即目标节点的挑选范围受到较大的限制。
[0005]由于重构数据本身需要占用大量带宽,在服务器集群故障域数量较少的情况下,上述目标节点的限制会使得目标节点的通信压力较大。

技术实现思路

[0006]有鉴于此,本说明书一个或多个实施例提供一种数据重构方法及装置。
[0007]根据本说明书一个或多个实施例的第一方面,提出了一种数据重构方法,应用于分布式存储系统,所述分布式存储系统包括一个元数据节点和若干数据节点;所述方法包括:
[0008]所述元数据节点根据存储目标数据片对应的纠删码EC校验组的故障域,选择存储节点;所述目标数据片是待重构的数据片,所述存储节点不属于:除存储目标数据片的故障域之外,其他存储所述EC校验组的故障域;
[0009]所述元数据节点在所述若干数据节点中选择重构节点;
[0010]所述重构节点获取所述目标数据片对应的EC校验组的其他数据片和校验片,并根据获取的所述其他数据片和校验片重构所述目标数据片;
[0011]所述重构节点将重构后的目标数据片发送至所述存储节点,所述存储节点存储所述重构后的目标数据片。
[0012]根据本说明书一个或多个实施例的第二方面,提出了一种数据重构方法,应用于分布式存储系统中的元数据节点,所述分布式存储系统包括一个元数据节点和若干数据节点;
[0013]所述方法包括:
[0014]根据存储目标数据片对应的EC校验组的故障域,选择存储节点;所述目标数据片是待重构的数据片,所述存储节点不属于:除存储目标数据片的故障域之外,其他存储所述EC校验组的故障域;
[0015]在所述若干数据节点中选择重构节点,以使所述重构节点获取所述目标数据片对应的EC校验组的其他数据片和校验片,并根据获取的所述其他数据片和校验片重构所述目标数据片,并将重构后的目标数据片发送至所述存储节点,所述存储节点存储所述重构后的目标数据片。
[0016]根据本说明书实施例的第三方面,提供一种数据重构方法,应用于分布式存储系统中的数据节点;所述分布式存储系统包括一个元数据节点和若干数据节点;
[0017]在所述数据节点为所述元数据节点在所述若干数据节点中选择的重构节点的情况下,所述方法包括:
[0018]获取目标数据片对应的EC校验组的其他数据片和校验片,并根据获取的所述其他数据片和校验片重构所述目标数据片;所述目标数据片是待重构的数据片;
[0019]将重构后的目标数据片发送至所述存储节点;
[0020]或,在所述数据节点为所述元数据节点根据存储目标数据片对应的EC校验组的故障域选择的存储节点的情况下,所述方法包括:
[0021]接收重构节点发送的重构后的目标数据片,并存储所述重构后的目标数据片;所述存储节点不属于:除存储目标数据片的故障域之外,其他存储所述EC校验组的故障域。
[0022]根据本说明书实施例的第四方面,提供一种分布式存储系统,所述分布式存储系统包括一个元数据节点和若干数据节点;
[0023]所述元数据节点根据存储目标数据片对应的纠删码EC校验组的故障域,选择存储节点;在所述若干数据节点中选择重构节点;所述目标数据片是待重构的数据片,所述存储节点不属于:除存储目标数据片的故障域之外,其他存储所述EC校验组的故障域;
[0024]所述重构节点获取所述目标数据片对应的EC校验组的其他数据片和校验片,并根据获取的所述其他数据片和校验片重构所述目标数据片;将重构后的目标数据片发送至所述存储节点;
[0025]所述存储节点接收重构节点发送重构后的目标数据片,并存储所述重构后的目标数据片。
[0026]根据本说明书实施例的第五方面,提供一种数据重构装置,应用于分布式存储系统中的元数据节点,所述分布式存储系统包括一个元数据节点和若干数据节点;
[0027]所述装置包括:
[0028]存储节点选择模块,用于根据存储目标数据片对应的EC校验组的故障域,选择存储节点;所述目标数据片是待重构的数据片,所述存储节点不属于:除存储目标数据片的故障域之外,其他存储所述EC校验组的故障域;
[0029]重构节点选择模块,用于在所述若干数据节点中选择重构节点,以使所述重构节点获取所述目标数据片对应的EC校验组的其他数据片和校验片,并根据获取的所述其他数据片和校验片重构所述目标数据片,并将重构后的目标数据片发送至所述存储节点,所述存储节点存储所述重构后的目标数据片。
[0030]根据本说明书实施例的第六方面,提供一种数据重构装置,应用于分布式存储系统中的数据节点;所述分布式存储系统包括一个元数据节点和若干数据节点;
[0031]在所述数据节点为所述元数据节点在所述若干数据节点中选择的重构节点的情况下,所述装置包括:
[0032]目标数据片重构模块,用于获取目标数据片对应的EC校验组的其他数据片和校验片,并根据获取的所述其他数据片和校验片重构所述目标数据片;所述目标数据片是待重构的数据片;
[0033]目标数据片发送模块,用于将重构后的目标数据片发送至所述存储节点;
[0034]或,在所述数据节点为所述元数据节点根据存储目标数据片对应的EC校验组的故障域选择的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据重构方法,应用于分布式存储系统,所述分布式存储系统包括一个元数据节点和若干数据节点;所述方法包括:所述元数据节点根据存储目标数据片对应的纠删码EC校验组的故障域,选择存储节点;所述目标数据片是待重构的数据片,所述存储节点不属于:除存储目标数据片的故障域之外,其他存储所述EC校验组的故障域;所述元数据节点在所述若干数据节点中选择重构节点;所述重构节点获取所述目标数据片对应的EC校验组的其他数据片和校验片,并根据获取的所述其他数据片和校验片重构所述目标数据片;所述重构节点将重构后的目标数据片发送至所述存储节点,所述存储节点存储所述重构后的目标数据片。2.根据权利要求1所述的方法,所述元数据节点在所述若干数据节点中选择重构节点,包括:所述元数据节点获取各个数据节点的可用重构带宽;所述元数据节点根据所述各个数据节点的可用重构带宽,在所述若干数据节点中选择可用重构带宽满足重构标准的数据节点作为重构节点。3.根据权利要求2所述的方法,所述元数据节点获取各个数据节点的可用重构带宽,包括:所述元数据节点获取各个数据节点分别对应的预留的静态重构带宽、以及剩余的重构任务数量;对于任一数据节点,所述元数据节点根据该数据节点的静态重构带宽和重构任务数量得到该数据节点的可用重构带宽。4.根据权利要求2所述的方法,所述元数据节点获取各个数据节点的可用重构带宽,包括:所述元数据节点获取各个数据节点的动态可用带宽,将每个数据节点的动态可用带宽作为该数据节点的可用重构带宽。5.根据权利要求2所述的方法,所述元数据节点根据所述各个数据节点的可用重构带宽,在所述若干数据节点中选择可用重构带宽满足重构标准的数据节点作为重构节点,包括:所述元数据节点根据各个数据节点的可用重构带宽,在所述若干数据节点中的源节点和所述存储节点中,选择可用重构带宽满足重构标准的数据节点作为重构节点,所述源节点是目标数据片对应的EC校验组所位于的其他未故障的数据节点。6.根据权利要求1所述的方法,所述重构节点将重构后的目标数据片发送至所述存储节点,包括:重构节点在所述目标数据片重构完成后,执行下一个数据片的重构任务之前,将重构后的目标数据片发送至所述存储节点;所述方法还包括:在重构节点故障的情况下,元数据节点在所述若干数据节点中选择所述重构节点之外的其他数据节点作为新重构节点,以由所述新重构节点继续执行故障的所述重构节点未完成的数据片重构任务。
7.一种数据重构方法,应用于分布式存储系统中的元数据节点,所述分布式存储系统包括一个元数据节点和若干数据节点;所述方法包括:根据存储目标数据片对应的EC校验组的故障域,选择存储节点;所述目标数据片是待重构的数据片,所述存储节点不属于:除存储目标数据片的故障域之外,其他存储所述EC校验组的故障域;在所述若干数据节点中选择重构节点,以使所述重构节点获取所述目标数据片对应的EC校验组的其他数据片和校验片,并根据获取的所述其他数据片和校验片重构所述目标数据片,并将重构后的目标数据片发送至所述存储节点,所述存储节点存储所述重构后的目标数据片。8.一种数据重构方法,应用于分布式存储系统中的数据节点;所述分布式存储系统包括一个元数据节点和若干数据节点;在所述数据节点为所述元数据...

【专利技术属性】
技术研发人员:王竹凡庄灿伟邱晗董元元
申请(专利权)人:阿里巴巴中国有限公司
类型:发明
国别省市:

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

1