System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 数据存储方法、系统、程序产品、电子设备及存储介质技术方案_技高网

数据存储方法、系统、程序产品、电子设备及存储介质技术方案

技术编号:42303446 阅读:5 留言:0更新日期:2024-08-14 15:50
本发明专利技术实施例提供了一种数据存储方法、系统、程序产品、电子设备及存储介质,涉及计算机技术领域,该方法包括:获取原始数据对应的原始数据块和全局校验块;将原始数据块按序进行分组,得到原始数据对应的组;根据每个组中的原始数据块和全局校验块,构建第一数量的初始条带,并将第一数量的初始条带确定为原始数据对应的第一条带集合;根据第一条带集合中的初始条带,生成每个组对应的第一数量的本地校验块;将第一条带集合和本地校验块分布存储至所述存储节点中。本发明专利技术实施例简化了解码计算过程的计算量,降低了分布式存储系统的计算开销,缩短了进行数据修复的时长,提高了进行数据修复的效率。

【技术实现步骤摘要】

本专利技术涉及计算机,尤其涉及一种数据存储方法、系统、程序产品、电子设备及存储介质


技术介绍

1、在分布式存储系统中,数据冗余是一种常见的技术,其目的是在数据发生错误或损坏时,通过冗余信息恢复原始数据。

2、目前,纠删码( erasure coding,ec)一般采用k+m的结构,其中,k表示原始数据块的数量,m表示与k个原始数据块线性相关的校验块的数量,总数据块的数量n为原始数据块的数量k与校验块的数量m的总和;当冗余级别为n时,可以将n个数据块分别存储在n个不同存储节点上,这样就能容忍m个节点发生故障,并且在不超过m个存储节点发生故障的情况下,只需从未发生故障的存储节点中读取k个数据块就能通过计算重构故障节点中的数据块。

3、然而,由于校验块与k个原始数据块线性相关,在存储节点发生故障或数据损坏需要进行数据重构的情况下,需要从未发生故障的存储节点中读取和传输全部的k个数据块,造成大量的网络带宽和输入输出(i/o)资源消耗,并且在进行数据重构过程中,还需要基于校验块和k个原始数据块之间的线性关系,进行复杂的解码计算,增加了存储系统的计算开销。


技术实现思路

1、为克服相关技术中存在的问题,本专利技术提供了一种数据存储方法、系统、程序产品、电子设备及存储介质。

2、第一方面,本专利技术提供了一种数据存储方法,应用于分布式存储系统,所述分布式存储系统包括多个存储节点;所述方法包括:

3、获取原始数据对应的至少两个原始数据块和全局校验块

4、将所述至少两个原始数据块按序进行分组,得到所述原始数据对应的至少两个组;

5、根据每个所述组中的原始数据块和所述全局校验块,构建第一数量的初始条带,并将所述第一数量的初始条带确定为所述原始数据对应的第一条带集合;所述初始条带中包括所述组中每个原始数据块中的一个数据片段以及每个全局校验块中的一个全局校验片段;

6、根据所述第一条带集合中的初始条带,生成每个所述组对应的第一数量的本地校验块;

7、将所述第一条带集合和所述本地校验块分布存储至所述存储节点中。

8、可选地,所述根据所述第一条带集合中的初始条带,生成每个所述组对应的第一数量的本地校验块,包括:

9、获取所述全局校验块的第二数量;

10、按照原始数据块在所述组中的位置,将所述组中的原始数据块分类为前段数据块和后段数据块;

11、根据所述初始条带中所述前段数据块对应的数据片段和所述后段数据块对应的数据片段以及所述第二数量,计算所述组对应的本地校验块。

12、可选地,所述按照原始数据块在所述组中的位置,将所述组中的原始数据块分类为前段数据块和后段数据块,包括:

13、获取所述组中原始数据块的第三数量;

14、计算所述第三数量与2的比值,并对所述比值向下取整,得到第四数量;

15、按照所述原始数据块在所述组中的位置,将位于所述组前部的第四数量的原始数据块确定为前段数据块;

16、将所述组中所述前段数据块之外的原始数据块,确定为后段数据块。

17、可选地,所述第一条带集合中包括第一初始条带和第二初始条带;所述根据所述初始条带中所述前段数据块对应的数据片段和所述后段数据块对应的数据片段以及所述第二数量,计算所述组对应的本地校验块,包括:

18、根据所述第一初始条带中所述后段数据块对应的数据片段和所述第一初始条带中所述前段数据块对应的数据片段,计算得到第一本地校验片段;

19、根据所述第一初始条带中所述后段数据块对应的数据片段和所述第二初始条带中所述前段数据块对应的数据片段,计算得到第二本地校验片段;

20、根据所述第二初始条带中所述后段数据块对应的数据片段和所述第二初始条带中所述前段数据块对应的数据片段,计算得到第三本地校验片段;

21、根据所述第二初始条带中所述后段数据块对应的数据片段和所述第一初始条带中所述前段数据块对应的数据片段,计算得到第四本地校验片段;

22、根据所述第一本地校验片段、所述第二本地校验片段、所述第三本地校验片段、所述第四本地校验片和所述第二数量,计算所述组对应的本地校验块。

23、可选地,所述根据所述第一本地校验片段、所述第二本地校验片段、所述第三本地校验片段、所述第四本地校验片和所述第二数量,计算所述组对应的本地校验块,包括:

24、将所述第一本地校验片段、所述第二本地校验片段、所述第三本地校验片段和所述第四本地校验片段合并,得到所述组对应的原始本地校验块;

25、将所述原始本地校验块对所述第二数量取模,得到所述组对应的本地校验块。

26、可选地,所述将所述第一条带集合和所述本地校验块分布存储至所述存储节点中,包括:

27、将每个所述组对应的本地校验块添加至所述第一条带集合,得到第二条带集合;所述第二条带集合包括第一数量的目标条带,所述目标条带包括所述初始条带,以及每个组对应的本地校验块中与所述初始条带对应的本地校验片段;

28、将所述目标条带分布存储至所述存储节点中。

29、可选地,所述根据每个所述组中的原始数据块和所述全局校验块,构建第一数量的初始条带,并将所述第一数量的初始条带确定为所述原始数据对应的第一条带集合,包括:

30、确定所述组对应的本地校验块的第一数量;

31、根据所述第一数量,将所述组中的每个原始数据块切分为第一数量的数据片段,并将每个所述全局校验块切分为第一数量的全局校验片段;

32、根据每个所述组中各个原始数据块的数据片段和各个全局校验块中的全局校验片段,构建第一数量的初始条带;

33、将所述第一数量的初始条带确定为所述原始数据对应的第一条带集合。

34、可选地,所述获取原始数据对应的至少两个原始数据块和全局校验块,包括:

35、获取预设分组数量;

36、按照所述预设分组数量,对所述原始数据进行切片,得到所述原始数据对应的至少两个原始数据块;所述原始数据对应的原始数据块的数量为所述预设分组数量的整数倍;

37、确定与所述至少两个原始数据块线性相关的多项式,得到全局校验块。

38、可选地,所述方法还包括:

39、在所述分布式存储系统中的至少一个所述存储节点发生故障的情况下,获取故障节点的第一故障数量;所述故障节点为所述分布式存储系统中发生故障的存储节点;

40、在所述第一故障数量小于或者等于所述全局校验块的第二数量的情况下,从所述原始数据对应的存储节点中获取所述组对应的目标存储节点中目标故障节点的第二故障数量;

41、在所述第二故障数量大于0且小于或者等于所述第一数量的情况下,从所述目标故障节点之外的目标存储节点中获取修复所述目标故障节点中的损失数据所需的目标数据块和目标本地校验块;

...

【技术保护点】

1.一种数据存储方法,其特征在于,应用于分布式存储系统,所述分布式存储系统包括多个存储节点;所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述根据所述第一条带集合中的初始条带,生成每个所述组对应的第一数量的本地校验块,包括:

3.根据权利要求2所述的方法,其特征在于,所述按照原始数据块在所述组中的位置,将所述组中的原始数据块分类为前段数据块和后段数据块,包括:

4.根据权利要求2所述的方法,其特征在于,所述第一条带集合中包括第一初始条带和第二初始条带;所述根据所述初始条带中所述前段数据块对应的数据片段和所述后段数据块对应的数据片段以及所述第二数量,计算所述组对应的本地校验块,包括:

5.根据权利要求4所述的方法,其特征在于,所述根据所述第一本地校验片段、所述第二本地校验片段、所述第三本地校验片段、所述第四本地校验片和所述第二数量,计算所述组对应的本地校验块,包括:

6.根据权利要求1所述的方法,其特征在于,所述将所述第一条带集合和所述本地校验块分布存储至所述存储节点中,包括:

7.根据权利要求1所述的方法,其特征在于,所述根据每个所述组中的原始数据块和所述全局校验块,构建第一数量的初始条带,并将所述第一数量的初始条带确定为所述原始数据对应的第一条带集合,包括:

8.根据权利要求1所述的方法,其特征在于,所述获取原始数据对应的至少两个原始数据块和全局校验块,包括:

9.根据权利要求1所述的方法,其特征在于,所述方法还包括:

10.一种分布式存储系统,其特征在于,所述分布式存储系统包括存储管理组件和多个存储节点;其中:

11.根据权利要求10所述的分布式存储系统,其特征在于,所述存储管理组件,还用于执行以下步骤:

12.根据权利要求11所述的分布式存储系统,其特征在于,所述存储管理组件,还用于执行以下步骤:

13.根据权利要求11所述的分布式存储系统,其特征在于,所述第一条带集合中包括第一初始条带和第二初始条带;所述存储管理组件,还用于执行以下步骤:

14.根据权利要求13所述的分布式存储系统,其特征在于,所述存储管理组件,还用于执行以下步骤:

15.根据权利要求10所述的分布式存储系统,其特征在于,所述存储管理组件,还用于执行以下步骤:

16.根据权利要求10所述的分布式存储系统,其特征在于,所述存储管理组件,还用于执行以下步骤:

17.根据权利要求10所述的分布式存储系统,其特征在于,所述存储管理组件,还用于执行以下步骤:

18.根据权利要求10所述的分布式存储系统,其特征在于,所述存储管理组件,还用于执行以下步骤:

19.一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现如权利要求1至9中任一项所述的数据存储方法。

20.一种电子设备,包括存储器、处理器及存储在所述存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现如权利要求1至9中任一项所述的数据存储方法。

21.一种可读存储介质,其特征在于,当所述可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行权利要求1至9中任一所述的数据存储方法。

...

【技术特征摘要】

1.一种数据存储方法,其特征在于,应用于分布式存储系统,所述分布式存储系统包括多个存储节点;所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述根据所述第一条带集合中的初始条带,生成每个所述组对应的第一数量的本地校验块,包括:

3.根据权利要求2所述的方法,其特征在于,所述按照原始数据块在所述组中的位置,将所述组中的原始数据块分类为前段数据块和后段数据块,包括:

4.根据权利要求2所述的方法,其特征在于,所述第一条带集合中包括第一初始条带和第二初始条带;所述根据所述初始条带中所述前段数据块对应的数据片段和所述后段数据块对应的数据片段以及所述第二数量,计算所述组对应的本地校验块,包括:

5.根据权利要求4所述的方法,其特征在于,所述根据所述第一本地校验片段、所述第二本地校验片段、所述第三本地校验片段、所述第四本地校验片和所述第二数量,计算所述组对应的本地校验块,包括:

6.根据权利要求1所述的方法,其特征在于,所述将所述第一条带集合和所述本地校验块分布存储至所述存储节点中,包括:

7.根据权利要求1所述的方法,其特征在于,所述根据每个所述组中的原始数据块和所述全局校验块,构建第一数量的初始条带,并将所述第一数量的初始条带确定为所述原始数据对应的第一条带集合,包括:

8.根据权利要求1所述的方法,其特征在于,所述获取原始数据对应的至少两个原始数据块和全局校验块,包括:

9.根据权利要求1所述的方法,其特征在于,所述方法还包括:

10.一种分布式存储系统,其特征在于,所述分布式存储系统包括存储管理组...

【专利技术属性】
技术研发人员:臧林劼
申请(专利权)人:济南浪潮数据技术有限公司
类型:发明
国别省市:

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

1