System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及分布式存储,特别是涉及一种故障数据修复方法和计算机设备。
技术介绍
1、在分布式存储系统中,不同的数据存储在不同的磁盘中。而磁盘故障十分常见,存储在故障磁盘中的数据修复效率对于分布式存储系统来说十分关键。
2、相关技术中,通过纠删码编码算法(例如,线性分组码(reed-solomon,rs)算法)对待存储数据进行编码操作,并将编码操作后的数据存储至不同的磁盘中。当某一个磁盘存在故障时,利用纠删码解码算法和其他磁盘中存储的数据对故障磁盘中的数据进行修复。
3、然而,相关技术的数据故障修复方法存在故障数据修复效率较低的问题。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种故障数据修复方法和计算机设备,能够提高故障数据修复效率。
2、第一方面,本申请提供了一种故障数据修复方法,包括:
3、获取分布式存储系统中不同可用区的故障磁盘的故障信息;每一个可用区中存储有局部校验块;局部校验块是基于对应的可用区中的数据块和全局校验块编码得到的;
4、基于故障信息、每一个可用区中存储的局部校验块、数据块和全局校验块,确定任意一个故障磁盘对应的故障数据所需的修复数据;
5、通过各修复数据修复对应的故障磁盘中的故障数据。
6、在其中一个实施例中,基于故障信息、每一个可用区中存储的局部校验块、数据块和全局校验块,确定任意一个故障磁盘对应的故障数据所需的修复数据,包括:
7、根据故障信息,获取
8、获取每一个可用区中存储的局部校验块中除故障局部校验块之外的非故障局部校验块、数据块中除故障数据块之外的非故障数据块以及全局校验块中除故障全局校验块之外的非故障全局校验块;
9、根据每一个可用区中存储的非故障局部校验块、非故障数据块和非故障全局校验块,确定任意一个故障磁盘对应的故障数据所需的修复数据。
10、在其中一个实施例中,根据每一个可用区中存储的非故障局部校验块、非故障数据块和非故障全局校验块,确定任意一个故障磁盘对应的故障数据所需的修复数据,包括:
11、若分布式存储系统中的故障数据类型和故障数据数量均满足第一预设条件,则根据可用区中存储的非故障局部校验块、非故障数据块和非故障全局校验块,确定故障数据所需的修复数据;
12、其中,第一预设条件包括:
13、故障数据类型为故障局部校验块、故障数据块和故障全局校验块中的任意一项,且分布式存储系统中的故障数据数量为一个或者两个。
14、在其中一个实施例中,根据每一个可用区中存储的非故障局部校验块、非故障数据块和非故障全局校验块,确定任意一个故障磁盘对应的故障数据所需的修复数据,包括:
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、修复模块,用于通过各修复数据修复对应的故障磁盘中的故障数据本文档来自技高网...
【技术保护点】
1.一种故障数据修复方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述故障信息、所述每一个可用区中存储的局部校验块、数据块和全局校验块,确定任意一个故障磁盘对应的故障数据所需的修复数据,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述每一个可用区中存储的非故障局部校验块、非故障数据块和非故障全局校验块,确定任意一个故障磁盘对应的故障数据所需的修复数据,包括:
4.根据权利要求2所述的方法,其特征在于,所述根据所述每一个可用区中存储的非故障局部校验块、非故障数据块和非故障全局校验块,确定任意一个故障磁盘对应的故障数据所需的修复数据,包括:
5.根据权利要求4所述的方法,其特征在于,所述通过各所述修复数据修复对应的故障磁盘中的故障数据,包括:
6.根据权利要求2所述的方法,其特征在于,所述根据所述每一个可用区中存储的非故障局部校验块、非故障数据块和非故障全局校验块,确定任意一个故障磁盘对应的故障数据所需的修复数据,包括:
7.根据权利要求6所述的方法,其特征在于
8.根据权利要求7所述的方法,其特征在于,所述通过各所述修复数据修复对应的故障磁盘中的故障数据,包括:
9.根据权利要求1-8任一项所述的方法,其特征在于,所述方法还包括:
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9中任一项所述的方法的步骤。
...【技术特征摘要】
1.一种故障数据修复方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述故障信息、所述每一个可用区中存储的局部校验块、数据块和全局校验块,确定任意一个故障磁盘对应的故障数据所需的修复数据,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述每一个可用区中存储的非故障局部校验块、非故障数据块和非故障全局校验块,确定任意一个故障磁盘对应的故障数据所需的修复数据,包括:
4.根据权利要求2所述的方法,其特征在于,所述根据所述每一个可用区中存储的非故障局部校验块、非故障数据块和非故障全局校验块,确定任意一个故障磁盘对应的故障数据所需的修复数据,包括:
5.根据权利要求4所述的方法,其特征在于,所述通过各所述修复数据修复对应的故障磁盘中的故障数据,包括:
6.根据...
【专利技术属性】
技术研发人员:康雨城,李家伟,畅晨铭,
申请(专利权)人:天翼云科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。