一种数据恢复方法、装置、计算机设备及存储介质与流程

文档序号:31677464发布日期:2022-09-28 02:55阅读:97来源:国知局
一种数据恢复方法、装置、计算机设备及存储介质与流程

1.本发明涉及分布式存储领域,尤其涉及一种数据恢复方法、装置、计算机设备及存储介质。


背景技术:

2.面对海量数据的存储要求,分布式存储以其成本低廉,可扩展性好等优势逐渐取代了统一存储的主导地位,在理论研究和实际应用方面得到了越来越多的关注。分布式存储系统多以廉价的磁盘作为存储节点,每个存储节点的可靠性往往不会很高,另一方面,一个分布式存储系统通常包含很多的节点,由于软硬件故障,人为失误等原因,系统常常发生节点失效的情况。为了提高分布式存储系统的数据可靠性,保证数据收集节点能以很高的概率实现原始文件的重构,需要在存储原始数据的基础上,额外存储一定数量的冗余,使得在出现部分节点失效的情况下,系统仍然可以正常运行,数据收集节点仍然可以对原始文件实现解码恢复。同时,为了维持系统的可靠性,需要对失效的节点及时进行修复,因此,设计一个良好的节点修复机制十分重要。
3.目前,分布式存储的简易结构示意如图1a所示,图1a中举例有四个机柜,如图1a中的机柜1234,每个机柜插有多块硬盘,硬盘基于操作设置不同的块大小(chunk size),每个块是存储操作的基本单位,如图1a中机柜内灰色块所示,在上层控制时进行操作,能看到的操作单位即为块。如图1a中,每个机柜会有一块自己的控制硬件,通过pcie等方式连接并控制多块磁盘,接收上层的需求后,划分不同数量的块进行相应的编解码。机柜与机柜之间通过网线等方式连接,然后通过插在交换机上进行相应的命令转移和控制。交换机上层是主机,面向用户,将不同的用户需求拆解为不同的命令,分别下发进行相应的控制。假设当前例子中,机柜4的一块盘数据发生了错误(磁盘错误、掉电、卸盘等),则需要基于纠删(rs或raid)对其进行恢复运算,即表示为如上式可知,恢复数据的原理为:利用所有存活数据,乘以相应的计算参数,然后连加。在现有的分布式存储中实现的方式为如图1b所示,当机柜4的数据发生错误需要恢复,则从机柜123分别读取数据,然后在机柜4对应的硬件进行相关运算,所得到的结果再落入机柜对应的磁盘或是返回给主机。
4.当机柜4的数据发生错误需要恢复,则从机柜123分别读取数据,然后在机柜4对应的硬件进行相关运算,所得到的结果通过第二步落入机柜对应的磁盘,或是返回给主机。这样的情况下,我们假设数据机柜4错误磁盘的数据量为wr_m,交换机对应的协议所支持的数据传输速度为sw_sp,机柜内部的硬件传输协议下的数据传输速度为ra_sp,硬件运算的速度为hw_sp,则上述情况下在数据机柜量为k,错误为1个机柜的场景下,完成数据恢复的所需时间表示:
[0005][0006]
由此可见传统的分布式系统机柜错误数据恢复只依赖发生错误的机柜控制硬件,
即串行工作方式对于数据传输的带宽没有达到完整应用,会有一定的速度损耗,恢复效率较低,因而亟需改进。


技术实现要素:

[0007]
有鉴于此,有必要针对以上技术问题,提供一种数据恢复方法、装置、计算机设备及存储介质。
[0008]
根据本发明的第一方面,提供了一种数据恢复方法,应用于包括多个机柜的分布式存储系统,每个机柜对应一个用于执行运算的控制硬件,所述方法包括以下步骤:
[0009]
将每个机柜中与恢复某一错误数据相关的数据划分成与机柜数量相同个数的分片,并以每个机柜为单位分别为每个分片分配不同的分片号;
[0010]
由多个机柜对应的控制硬件分别并行分拍对各自的多个分片依次执行乘法运算,其中,每拍对应一个分片号,且不同机柜同一拍对应不同分片号;
[0011]
由多个机柜对应的控制硬件按照第一拍至最后一拍的顺序依次将不同机柜、相同分片号对应的乘法运算结果进行累加,以得到与每个分片号一一对应的累加结果;
[0012]
基于分片号对所得到的所有累加结果进行拼接以生成恢复数据。
[0013]
在一些实施例中,所述将每个机柜中与恢复某一错误数据相关的数据划分成与机柜数量相同个数的分片,并以每个机柜为单位分别为每个分片分配不同的分片号的步骤包括:
[0014]
对每个机柜执行以下操作:
[0015]
获取与恢复某一错误数据相关的数据的总位数wr_m和所有机柜的数量k;
[0016]
按照各位数据排列顺序将数据划分成k个分片;
[0017]
为所得到的k个分片依次分配分片号wr_m1,
……
,wr_mk。
[0018]
在一些实施例中,每个分片包括的位数均为wr_m/k个,且同一分片内的各个位均连续。
[0019]
在一些实施例中,所述将每个机柜中与恢复某一错误数据相关的数据划分成与机柜数量相同个数的分片,并以每个机柜为单位分别为每个分片分配不同的分片号的步骤还包括:
[0020]
若wr_m/k不为整数,则取任意k-1个分片按照wr_m/k最大比例平均分片,并将剩余数据单独作为一个分片。
[0021]
在一些实施例中,所述由多个机柜对应的控制硬件分别并行分拍对各自的多个分片依次执行乘法运算,其中,每拍对应一个分片号,且不同机柜同一拍对应不同分片号的步骤包括:
[0022]
将其中一个机柜控制硬件设置为按照从第一拍到第k拍顺序分别计算wr_m1,
……
,wr_mk对应的分片的乘法运算;
[0023]
参考已设置的机柜的控制硬件各拍对应的分片号将其他机柜的控制硬件设置为每拍同步计算不同的分片号对应的乘法运算。
[0024]
在一些实施例中,所述由多个机柜对应的控制硬件按照第一拍至最后一拍的顺序依次将不同机柜、相同分片号对应的乘法运算结果进行累加,以得到与每个分片号一一对应的累加结果的步骤包括:
[0025]
对每个机柜执行以下操作:
[0026]
每完成一拍乘法运算则获取当前拍执行乘法运算对应的分片号wr_mi;
[0027]
获取第二拍对分片号wr_mi执行乘法运算对应的机柜i;
[0028]
将分片号wr_mi对应的乘法运算结果从当前机柜的控制硬件发送给机柜i;
[0029]
由机柜i对应的控制硬件对第二拍对分片号wr_mi执行乘法运算结果和所接收的分片号wr_mi对应的乘法运算结果进行加法运算;
[0030]
由机柜i对应的控制硬件将加法运算结果发送给第三拍对分片号wr_mi执行乘法运算对应的机柜;
[0031]
直至最后一拍对分片号wr_mi执行乘法运算的控制硬件执行完加法运算则输出。
[0032]
在一些实施例中,所述基于分片号对所得到的所有累加结果进行拼接以生成恢复数据的步骤包括:
[0033]
获取每个机柜的控制硬件最后一拍执行乘法运算对应的分片号;
[0034]
将各个机柜的控制硬件最后一拍输出的累加结果按照分片号次序wr_m1,
……
,wr_mk进行拼接得到恢复数据。
[0035]
根据本发明的第二方面,提供了一种数据恢复装置,应用于包括多个机柜的分布式存储系统,每个机柜对应一个用于执行运算的控制硬件,所述装置包括:
[0036]
分片模块,配置用于将每个机柜中与恢复某一错误数据相关的数据划分成与机柜数量相同个数的分片,并以每个机柜为单位分别为每个分片分配不同的分片号;
[0037]
乘法模块,配置用于由多个机柜对应的控制硬件分别并行分拍对各自的多个分片依次执行乘法运算,其中,每拍对应一个分片号,且不同机柜同一拍对应不同分片号;
[0038]
累加模块,配置用于由多个机柜对应的控制硬件按照第一拍至最后一拍的顺序依次将不同机柜、相同分片号对应的乘法运算结果进行累加,以得到与每个分片号一一对应的累加结果;
[0039]
拼接模块,配置用于基于分片号对所得到的所有累加结果进行拼接以生成恢复数据。
[0040]
根据本发明的第三方面,还提供了一种计算机设备,该计算机设备包括:
[0041]
至少一个处理器;以及
[0042]
存储器,存储器存储有可在处理器上运行的计算机程序,处理器执行程序时执行前述的数据恢复方法。
[0043]
根据本发明的第四方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时执行前述的数据恢复方法。
[0044]
上述一种数据恢复方法,基于现有分布式存储的结构设计了数据恢复的并行流水线,将数据的传输划分为机柜内外,数据运算基于每个机柜的硬件加速运算模块的特点有效结合,在各个机柜内部将数据进行分片,由各个机柜的控制硬件并行进行运算处理,使其数据传输和运算的硬件资源都可得到尽量最大化的运用,从而显著减少数据恢复所需时间,提升运算速度和数据恢复效率。
[0045]
此外,本发明还提供了一种数据恢复装置、一种计算机设备和一种计算机可读存储介质,同样能实现上述技术效果,这里不再赘述。
附图说明
[0046]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
[0047]
图1a为传统分布式存储系统结构示意图;
[0048]
图1b为其中一个分布式存储机柜发生错误修复数据过程示意图;
[0049]
图2为本发明一个实施例提供的一种数据恢复方法的流程示意图;
[0050]
图3为本发明一个实施例提供的采用本发明方法恢复数据时各机柜数据传输示意图;
[0051]
图4为采用本发明方法恢复单一错误时各分片数据的处理示意图;
[0052]
图5为本发明另一个实施例提供的一种数据恢复装置的机构示意图;
[0053]
图6为本发明另一个实施例中计算机设备的内部结构图。
具体实施方式
[0054]
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
[0055]
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
[0056]
在一个实施例中,请参照图2和图3所示,本发明提供了一种数据恢复方法100,应用于包括多个机柜的分布式存储系统,每个机柜对应一个用于执行运算的控制硬件,所述方法包括以下步骤:
[0057]
步骤101,将每个机柜中与恢复某一错误数据相关的数据划分成与机柜数量相同个数的分片,并以每个机柜为单位分别为每个分片分配不同的分片号;
[0058]
步骤102,由多个机柜对应的控制硬件分别并行分拍对各自的多个分片依次执行乘法运算,其中,每拍对应一个分片号,且不同机柜同一拍对应不同分片号;
[0059]
步骤103,由多个机柜对应的控制硬件按照第一拍至最后一拍的顺序依次将不同机柜、相同分片号对应的乘法运算结果进行累加,以得到与每个分片号一一对应的累加结果;
[0060]
步骤104,基于分片号对所得到的所有累加结果进行拼接以生成恢复数据。
[0061]
上述一种数据恢复方法,基于现有分布式存储的结构设计了数据恢复的并行流水线,将数据的传输划分为机柜内外,数据运算基于每个机柜的硬件加速运算模块的特点有效结合,在各个机柜内部将数据进行分片,由各个机柜的控制硬件并行进行运算处理,使其数据传输和运算的硬件资源都可得到尽量最大化的运用,从而显著减少数据恢复所需时间,提升运算速度和数据恢复效率。
[0062]
在一些实施例中,前述步骤101,将每个机柜中与恢复某一错误数据相关的数据划分成与机柜数量相同个数的分片,并以每个机柜为单位分别为每个分片分配不同的分片号具体包括:
[0063]
对每个机柜执行以下操作:
[0064]
获取与恢复某一错误数据相关的数据的总位数wr_m和所有机柜的数量k;
[0065]
按照各位数据排列顺序将数据划分成k个分片;
[0066]
为所得到的k个分片依次分配分片号wr_m1,
……
,wr_mk。
[0067]
优选地,每个分片包括的位数均为wr_m/k个,且同一分片内的各个位均连续。
[0068]
优选地,前述步骤101将每个机柜中与恢复某一错误数据相关的数据划分成与机柜数量相同个数的分片,并以每个机柜为单位分别为每个分片分配不同的分片号还包括:
[0069]
若wr_m/k不为整数,则取任意k-1个分片按照wr_m/k最大比例平均分片,并将剩余数据单独作为一个分片。举例来说,假设有三个机柜,与恢复某一错误数据相关的数据的总位数wr_m等于8,那么可以将其中第一位至第三位作为一个分片,将第四位至第六位最为另一个分片,将第七位和第八位作为第三个分片。
[0070]
在一些实施例中,前述步骤102,由多个机柜对应的控制硬件分别并行分拍对各自的多个分片依次执行乘法运算,其中,每拍对应一个分片号,且不同机柜同一拍对应不同分片号具体包括:
[0071]
将其中一个机柜控制硬件设置为按照从第一拍到第k拍顺序分别计算wr_m1,
……
,wr_mk对应的分片的乘法运算;
[0072]
参考已设置的机柜的控制硬件各拍对应的分片号将其他机柜的控制硬件设置为每拍同步计算不同的分片号对应的乘法运算。
[0073]
在一些实施例中,前述步骤103,由多个机柜对应的控制硬件按照第一拍至最后一拍的顺序依次将不同机柜、相同分片号对应的乘法运算结果进行累加,以得到与每个分片号一一对应的累加结果具体包括:
[0074]
对每个机柜执行以下操作:
[0075]
每完成一拍乘法运算则获取当前拍执行乘法运算对应的分片号wr_mi;
[0076]
获取第二拍对分片号wr_mi执行乘法运算对应的机柜i;
[0077]
将分片号wr_mi对应的乘法运算结果从当前机柜的控制硬件发送给机柜i;
[0078]
由机柜i对应的控制硬件对第二拍对分片号wr_mi执行乘法运算结果和所接收的分片号wr_mi对应的乘法运算结果进行加法运算;
[0079]
由机柜i对应的控制硬件将加法运算结果发送给第三拍对分片号wr_mi执行乘法运算对应的机柜;
[0080]
直至最后一拍对分片号wr_mi执行乘法运算的控制硬件执行完加法运算则输出。
[0081]
在一些实施例中,前述步骤104,基于分片号对所得到的所有累加结果进行拼接以生成恢复数据具体包括:
[0082]
获取每个机柜的控制硬件最后一拍执行乘法运算对应的分片号;
[0083]
将各个机柜的控制硬件最后一拍输出的累加结果按照分片号次序wr_m1,
……
,wr_mk进行拼接得到恢复数据。
[0084]
在又一个实施例中,为了便于理解本发明的方案,下面以包含四个机柜的分布式存储系统为例,本实施例提供了一种数据恢复方法,为了便于理解以下以单一错误为例具体实施方式如下:
[0085]
将wr_m的数据量基于机柜量k,划分为k个数据片,每个数据片的数量为wr_m/k,按
照1
→2→
...

(k-1)

k拍的顺序让机柜之间相互进行数据传输,所接收的机柜对应数据分别开始进行运算。则以上述为例,每个机柜涉及运算并传输的数据被分为四个片分片号记作wr_m1,wr_m2,wr_m
3 wr_m4,按照如图4所示方式进行相互传输数据:机柜1从第一拍到第四拍依次计算分片号为wr_m1,wr_m2,wr_m3,wr_m4的乘法运算,机柜2从第一拍到第四拍依次计算wr_m2,wr_m3,wr_m4,wr_m1的乘法运算,机柜3从第一拍到第四拍依次计算wr_m3,wr_m4,wr_m1,wr_m2的乘法运算,机柜4从第一拍到第四拍依次计算wr_m4,wr_m1,wr_m2的乘法运算,并以传输机柜1内涉及运算的数据的第一片wr_m1,以wr_m4的传输过程为例:第四机柜第一拍先计算wr_m4分片的乘积,将该乘积传递给第二拍对wr_m4执行乘法运算的机柜即机柜3,机柜3的控制硬件将其计算的乘积和机柜4传递的乘积做加法运算后再传给机柜2,以此类推直至机柜1,由机柜1将其执行的加法运算结果输出。wr_m1,wr_m2,wr_m3分片的传输过程参考如上步骤,最后分别由机柜2控制硬件输出wr_m1分片的累加结果、机柜3控制硬件输出wr_m2分片的累加结果,机柜4控制硬件输出wr_m3分片的累加结果。
[0086]
如图4所示,每个机柜内待传输运算的数据首先基于待运算数据和机柜数量分为wr_m/k,然后将涉及传输的数据按照顺序分为wr_m/k片,以上述例子情况为例,则是机柜1-4内每片涉及运算的数据被分为wr_m1-wr_m4四片。虚线框指的是数据乘以参数的运算,因为硬件内部的pcie传输速度或硬件模块的工作速度实际肯定快于交换机控制下的跨机柜数据传输,因此二者可以流水线形式进行。具体的操作首先基于机柜内部划分后的数据片大小进行基于算法的乘法运算,然后依照顺序进行传输,跨机柜传输相关数据后进行异或运算,然后以此类推通过流水线完成所有的运算。以机柜4的情况举例说明,首先机柜4内涉及运算的数据被分为了四片即wr_m1-wr_m4。在第一拍针对机柜4的wr_m4进行乘法运算,表现为虚线框部分,所乘参数即是纠删算法(rs或raid)针对该运算机柜4所配置的参数。此时需要的时间为:
[0087][0088]
第二拍中的乘法运算时间因为数据传输时间较长,已经在预先准备时完成,则相应的此时需要时间为:
[0089][0090]
第三拍、第四拍的时间等同于第二拍,所有机柜同时进行运算和传输,所完成的数据最终按照图4中情况组合传输即可,由此在单一错误时的总恢复时间表示为:
[0091][0092]
为了便于比较,公式一与公式四作差,得到传统数据恢复方法与本发明方法数据恢复方法时间损耗区别表示为:
[0093]
公式一与公式4之差
[0094][0095]
可以理解的是,对于多个错误的情况,此时的运算时间因为需要产生x个中间值,因为错误为x倍,跨机柜的数据传输和机柜内的数据传输也为x倍,因此全部变为x倍时,传统数据恢复方法因为跨机柜的传输和运算也变为x倍,因此可得到时间损耗区别为:
[0096][0097]
本发明的数据恢复方法至少具备以下有益技术效果:基于分布式存储下用户需求、或场景需求需要进行降级读、数据恢复等操作时的场景,基于现有分布式存储的结构、硬件的设计和工作流程,设计了数据恢复的并行流水线,该将数据的传输划分为机柜内外,数据运算基于每个机柜的硬件加速运算模块的特点有效结合,使其数据传输和运算的硬件资源都可得到尽量最大化的运用,从而达到减少工作时间提升运算速度的优势。
[0098]
在又一个实施例中,请参照图5所示,本实施例提供了一种数据恢复装置200,应用于包括多个机柜的分布式存储系统,每个机柜对应一个用于执行运算的控制硬件,所述装置200包括:
[0099]
分片模块201,配置用于将每个机柜中与恢复某一错误数据相关的数据划分成与机柜数量相同个数的分片,并以每个机柜为单位分别为每个分片分配不同的分片号;
[0100]
乘法模块202,配置用于由多个机柜对应的控制硬件分别并行分拍对各自的多个分片依次执行乘法运算,其中,每拍对应一个分片号,且不同机柜同一拍对应不同分片号;
[0101]
累加模块203,配置用于由多个机柜对应的控制硬件按照第一拍至最后一拍的顺序依次将不同机柜、相同分片号对应的乘法运算结果进行累加,以得到与每个分片号一一对应的累加结果;
[0102]
拼接模块204,配置用于基于分片号对所得到的所有累加结果进行拼接以生成恢复数据。
[0103]
上述一种数据恢复装置,基于现有分布式存储的结构设计了数据恢复的并行流水线,将数据的传输划分为机柜内外,数据运算基于每个机柜的硬件加速运算模块的特点有效结合,在各个机柜内部将数据进行分片,由各个机柜的控制硬件并行进行运算处理,使其数据传输和运算的硬件资源都可得到尽量最大化的运用,从而显著减少数据恢复所需时间,提升运算速度和数据恢复效率。
[0104]
在一些实施例中,所述分片模块201进一步配置用于:
[0105]
对每个机柜执行以下操作:
[0106]
获取与恢复某一错误数据相关的数据的总位数wr_m和所有机柜的数量k;
[0107]
按照各位数据排列顺序将数据划分成k个分片;
[0108]
为所得到的k个分片依次分配分片号wr_m1,
……
,wr_mk。
[0109]
在一些实施例中,每个分片包括的位数均为wr_m/k个,且同一分片内的各个位均连续。
[0110]
在一些实施例中,所示分片模块201还配置用于:
[0111]
若wr_m/k不为整数,则取任意k-1个分片按照wr_m/k最大比例平均分片,并将剩余数据单独作为一个分片。
[0112]
在一些实施例中,所述乘法模块202进一步配置用于:
[0113]
将其中一个机柜控制硬件设置为按照从第一拍到第k拍顺序分别计算wr_m1,
……
,wr_mk对应的分片的乘法运算;
[0114]
参考已设置的机柜的控制硬件各拍对应的分片号将其他机柜的控制硬件设置为每拍同步计算不同的分片号对应的乘法运算。
[0115]
在一些实施例中,所述累加模块203进一步配置用于:
[0116]
对每个机柜执行以下操作:
[0117]
每完成一拍乘法运算则获取当前拍执行乘法运算对应的分片号wr_mi;
[0118]
获取第二拍对分片号wr_mi执行乘法运算对应的机柜i;
[0119]
将分片号wr_mi对应的乘法运算结果从当前机柜的控制硬件发送给机柜i;
[0120]
由机柜i对应的控制硬件对第二拍对分片号wr_mi执行乘法运算结果和所接收的分片号wr_mi对应的乘法运算结果进行加法运算;
[0121]
由机柜i对应的控制硬件将加法运算结果发送给第三拍对分片号wr_mi执行乘法运算对应的机柜;
[0122]
直至最后一拍对分片号wr_mi执行乘法运算的控制硬件执行完加法运算则输出。
[0123]
在一些实施例中,所述拼接模块204进一步配置用于:
[0124]
获取每个机柜的控制硬件最后一拍执行乘法运算对应的分片号;
[0125]
将各个机柜的控制硬件最后一拍输出的累加结果按照分片号次序wr_m1,
……
,wr_mk进行拼接得到恢复数据。
[0126]
需要说明的是,关于数据恢复装置的具体限定可以参见上文中对数据恢复方法的限定,在此不再赘述。上述数据恢复装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0127]
根据本发明的另一方面,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图请参照图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时实现以上所述的数据恢复方法,应用于包括多个机柜的分布式存储系统,每个机柜对应一个用于执行运算的控制硬件,所述方法包括以下步骤:
[0128]
将每个机柜中与恢复某一错误数据相关的数据划分成与机柜数量相同个数的分片,并以每个机柜为单位分别为每个分片分配不同的分片号;
[0129]
由多个机柜对应的控制硬件分别并行分拍对各自的多个分片依次执行乘法运算,其中,每拍对应一个分片号,且不同机柜同一拍对应不同分片号;
[0130]
由多个机柜对应的控制硬件按照第一拍至最后一拍的顺序依次将不同机柜、相同分片号对应的乘法运算结果进行累加,以得到与每个分片号一一对应的累加结果;
[0131]
基于分片号对所得到的所有累加结果进行拼接以生成恢复数据。
[0132]
根据本发明的又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上所述的数据恢复方法,应用于包括多个机柜的分布式存储系统,每个机柜对应一个用于执行运算的控制硬件,所述方法包括以下步骤:
[0133]
将每个机柜中与恢复某一错误数据相关的数据划分成与机柜数量相同个数的分片,并以每个机柜为单位分别为每个分片分配不同的分片号;
[0134]
由多个机柜对应的控制硬件分别并行分拍对各自的多个分片依次执行乘法运算,其中,每拍对应一个分片号,且不同机柜同一拍对应不同分片号;
[0135]
由多个机柜对应的控制硬件按照第一拍至最后一拍的顺序依次将不同机柜、相同分片号对应的乘法运算结果进行累加,以得到与每个分片号一一对应的累加结果;
[0136]
基于分片号对所得到的所有累加结果进行拼接以生成恢复数据。
[0137]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0138]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0139]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1