一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据恢复方法及相关设备与流程

2023-01-02 12:42:36 来源:中国专利 TAG:


1.本技术涉及存储技术领域,特别涉及一种数据恢复方法及相关设备。


背景技术:

2.冗余阵列(raid,redundant arrays of independent disks)由多个独立的物理磁盘组成,其中典型代表为raid6,当阵列中同时拔下两块盘时仍可保持数据的完整性,这种安全性较强的技术被广泛应用于当代存储环境中。
3.raid6是由4到16块磁盘组成的阵列,该阵列有p校验分块和q校验分块分布式地分散在其中,因此具备两个故障盘的纠错冗余能力,当raid6阵列中有两个存储驱动器出现故障时,可以进行数据恢复。然而,相关技术中,一般需要结合“伽罗华域”算法进行数据恢复,其实现流程较为繁琐,需要结合其他算法,还涉及到查表、生成正表和反表等操作,从而导致较低的数据恢复效率。
4.因此,如何对故障冗余阵列进行快速高效的数据恢复是本领域技术人员亟待解决的问题。


技术实现要素:

5.本技术的目的是提供一种数据恢复方法,该数据恢复方法可以对故障冗余阵列进行快速高效的数据恢复;本技术的另一目的是提供一种数据恢复装置、冗余阵列中的数据存储方法及装置、冗余阵列、电子设备及计算机可读存储介质,均具有上述有益效果。
6.第一方面,本技术提供了一种数据恢复方法,应用于冗余阵列,所述冗余阵列中的每个条带包括多个数据分块、一个p校验分块、一个q校验分块,每一所述数据分块被划分为第一预设数量个数据要素,每一所述p校验分块被划分为所述第一预设数量个p要素,每一所述q校验分块被划分为第二预设数量个q要素,且所述第二预设数量与所述第一预设数量的差值为1,所述方法包括:对于每一所述条带,确定各所述p要素对应的数据要素,并根据各所述p要素和各所述p要素对应的数据要素构建第一校验公式;其中,每一所述p要素基于所述p要素对应的各数据要素生成;对于每一所述条带,确定各所述q要素对应的数据要素,并根据各所述q要素和各所述q要素对应的数据要素构建第二校验公式;其中,每一所述q要素基于所述q要素对应的各数据要素生成;根据所述第一校验公式和所述第二校验公式求解获得所述冗余阵列中故障盘在所述条带中的原数据,并根据所述原数据对所述故障盘进行数据恢复。
7.可选地,所述确定各所述p要素对应的数据要素,包括:对于每一所述p要素,确定所述p要素的行数;在所述条带中,将所述行数对应的水平行中的各数据要素作为所述p要素对应的数据要素。
8.可选地,所述根据各所述p要素和各所述p要素对应的数据要素构建第一校验公式,包括:对于每一所述p要素,对所述p要素对应的各数据要素进行异或运算后,与所述p要素进行联立,获得所述第一校验公式。
9.可选地,所述确定各所述q要素对应的数据要素,包括:对于每一所述q要素,确定所述q要素的行数;在所述条带中,将所述行数对应的递减行中的各数据要素作为所述q要素对应的数据要素。
10.可选地,所述根据各所述q要素和各所述q要素对应的数据要素构建第二校验公式,包括:对于每一所述q要素,对所述q要素对应的各数据要素进行异或运算后,与所述q要素进行联立,获得所述第二校验公式。
11.第二方面,本技术提供了一种冗余阵列中的数据存储方法,应用于所述冗余阵列,所述冗余阵列中的每个条带包括多个数据分块、一个p校验分块、一个q校验分块,每一所述数据分块被划分为第一预设数量个数据要素,每一所述p校验分块被划分为所述第一预设数量个p要素,每一所述q校验分块被划分为第二预设数量个q要素,且所述第二预设数量与所述第一预设数量的差值为1,所述方法包括:对于每一所述条带中的每一所述p要素,确定所述p要素对应的各数据要素,并根据所述p要素对应的各数据要素生成第一数据,将所述第一数据填充至所述p要素;对于每一所述条带中的每一所述q要素,确定所述q要素对应的各数据要素,并根据所述q要素对应的各数据要素生成第二数据,将所述第二数据填充至所述q要素。
12.可选地,所述确定所述p要素对应的各数据要素,包括:确定所述p要素的行数;在所述条带中,将所述行数对应的水平行中的各数据要素作为所述p要素对应的各数据要素。
13.可选地,所述根据所述p要素对应的各数据要素生成第一数据,包括:对所述p要素对应的各数据要素进行异或运算,获得所述第一数据。
14.可选地,所述确定所述q要素对应的各数据要素,包括:确定所述q要素的行数;在所述条带中,将所述行数对应的递减行中的各数据要素作为所述q要素对应的各数据要素。
15.可选地,所述根据所述q要素对应的各数据要素生成第二数据,包括:对所述q要素对应的各数据要素进行异或运算,获得所述第二数据。
16.第三方面,本技术提供了一种冗余阵列,所述冗余阵列中的每个条带包括多个数据分块、一个p校验分块、一个q校验分块,每一所述数据分块被划分为第一预设数量个数据要素,每一所述p校验分块被划分为所述第一预设数量个p要素,每一所述q校验分块被划分为第二预设数量个q要素,且所述第二预设数量与所述第一预设数量的差值为1;其中,每一所述p要素基于所述p要素对应的各数据要素生成;每一所述q要素基于所述q要素对应的各数据要素生成。
17.第四方面,本技术提供了一种数据恢复装置,应用于冗余阵列,所述冗余阵列中的每个条带包括多个数据分块、一个p校验分块、一个q校验分块,每一所述数据分块被划分为第一预设数量个数据要素,每一所述p校验分块被划分为所述第一预设数量个p要素,每一所述q校验分块被划分为第二预设数量个q要素,且所述第二预设数量与所述第一预设数量的差值为1,所述装置包括:第一构建模块,用于对于每一所述条带,确定各所述p要素对应的数据要素,并根据各所述p要素和各所述p要素对应的数据要素构建第一校验公式;其中,每一所述p要素基于所述p要素对应的各数据要素生成;第二构建模块,用于对于每一所述条带,确定各所述q要素对应的数据要素,并根据各所述q要素和各所述q要素对应的数据要素构建第二校验公式;其中,每一所述q要素基于所述q要素对应的各数据要素生成;数据恢复模块,用于根据所述第一校验公式和所述第二校验公式求解获得所述冗余阵列中故障盘在所述条带中的原数据,并根据所述原数据对所述故障盘进行数据恢复。
18.第五方面,本技术提供了一种冗余阵列中的数据存储装置,应用于所述冗余阵列,所述冗余阵列中的每个条带包括多个数据分块、一个p校验分块、一个q校验分块,每一所述数据分块被划分为第一预设数量个数据要素,每一所述p校验分块被划分为所述第一预设数量个p要素,每一所述q校验分块被划分为第二预设数量个q要素,且所述第二预设数量与所述第一预设数量的差值为1,所述装置包括:第一生成模块,用于对于每一所述条带中的每一所述p要素,确定所述p要素对应的各数据要素,并根据所述p要素对应的各数据要素生成第一数据,将所述第一数据填充至所述p要素;第二生成模块,用于对于每一所述条带中的每一所述q要素,确定所述q要素对应的各数据要素,并根据所述q要素对应的各数据要素生成第二数据,将所述第二数据填充至所述q要素。
19.第六方面,本技术还公开了一种电子设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上所述的任一种数据恢复方法的步骤和/或任一种冗余阵列中的数据存储方法的步骤。
20.第七方面,本技术还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的任一种数据恢复方法的步骤和/或任一种冗余阵列中的数据存储方法的步骤。
21.应用本技术所提供的技术方案,基于冗余阵列内部的空间分布,将条带中的各数据分块划分为多个数据要素,将p校验分块划分为多个p要素,将q校验分块划分为多个q要素,实现p校验分块和q校验分块中的各要素均基于数据分块中的数据要素生成,由此,当冗余阵列出现两个故障盘需要进行数据恢复时,则可以联立数据分块和p校验分块建立校验公式(即第一校验公式),以及联立数据分块和q校验分块建立校验公式(即第二校验公式),进而根据两个校验公式求解得到故障盘中的原数据,从而实现冗余阵列中故障盘的数据恢复,显然,该种实现方式无需结合其他算法,只需联立校验公式进行数据求解,实现流程更为简单,有效地提高了故障冗余阵列的数据恢复效率。
附图说明
22.为了更清楚地说明现有技术和本技术实施例中的技术方案,下面将对现有技术和本技术实施例描述中需要使用的附图作简要的介绍。当然,下面有关本技术实施例的附图描述的仅仅是本技术中的一部分实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图,所获得的其他附图也属于本技术的保护范围。
23.图1为本技术所提供的一种数据恢复方法的流程示意图;图2为本技术所提供的一种冗余阵列中的条带空间分布示意图;图3为本技术所提供的一种raid6冗余阵列的结构示意图;图4为本技术所提供的一种冗余阵列中的数据存储方法的流程示意图;图5为本技术所提供的一种数据恢复装置的结构示意图;图6为本技术所提供的一种冗余阵列中的数据存储装置的结构示意图;图7为本技术所提供的一种电子设备的结构示意图。
具体实施方式
24.本技术的核心是提供一种数据恢复方法,该数据恢复方法可以对故障冗余阵列进行快速高效的数据恢复;本技术的另一核心是提供一种数据恢复装置、冗余阵列中的数据存储方法及装置、冗余阵列、电子设备及计算机可读存储介质,均具有上述有益效果。
25.为了对本技术实施例中的技术方案进行更加清楚、完整地描述,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行介绍。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
26.本技术实施例提供了一种数据恢复方法。
27.请参考图1,图1为本技术所提供的一种数据恢复方法的流程示意图,该数据恢复方法可应用于冗余阵列,冗余阵列中的每个条带包括多个数据分块、一个p校验分块、一个q校验分块,每一数据分块被划分为第一预设数量个数据要素,每一p校验分块被划分为第一预设数量个p要素,每一q校验分块被划分为第二预设数量个q要素,且第二预设数量与第一预设数量的差值为1,该方法可以包括如下s101至s103。
28.需要说明的是,本技术所提供的数据恢复方法应用于冗余阵列,主要适用于raid6中出现两块故障盘时的数据恢复。具体而言,raid6中包括有多个条带,其中,条带是阵列中不同分区上的位置相关的strip(分块)的集合,是组织不同分区上分块的单位;在raid6的每一个条带中,包括有多个数据分块、一个p校验分块和一个q校验分块,数据分块用于存储数据信息,p校验分块和q校验分块则用于实现故障盘的数据恢复;并且,每一个数据分块均被划分为第一预设数量个数据要素,每一p校验分块同样被划分为第一预设数量个p要素,每一q校验分块则被划分为第二预设数量个q要素,此处,对各分块进行多个要素划分,旨在基于各要素实现数据恢复,其中,第二预设数量大于第一预设数量,且二者差值为1,此外,第一预设数量的取值为8的倍数,如8、16、32等。
29.s101:对于每一条带,确定各p要素对应的数据要素,并根据各p要素和各p要素对应的数据要素构建第一校验公式;其中,每一p要素基于p要素对应的各数据要素生成。
30.本步骤旨在实现第一校验公式的构建。如上所述,冗余阵列中的每一个条带,其中的p校验分块被划分为第一预设数量个p要素,对于每一个p要素而言,则是基于该条带内各个数据分块中的一个数据要素生成,也就是说,每一个p要素在数据分块中均存在对应的数据要素,且各个p要素对应于不同的多个数据要素,例如,基于各个数据分块中的第一个数据要素生成p校验分块中的第一个p要素,基于各个数据分块中的第二数据要素生成p校验分块中的第二个p要素,以此类推,实现p校验分块中各p要素的生成,也就是基于数据分块生成p校验分块。
31.在此基础上,当冗余阵列出现两个故障盘时,对于冗余阵列中的每一个条带,可以先确定每一个p要素对应的各个数据要素,然后根据各p要素和各p要素对应的数据要素构建生成第一校验公式,由于冗余阵列中存在两个故障盘,因此,该校验公式中存在两个未知数据,这两个未知数据则对应于两个故障盘中的原数据。
32.s102:对于每一条带,确定各q要素对应的数据要素,并根据各q要素和各q要素对应的数据要素构建第二校验公式;其中,每一q要素基于q要素对应的各数据要素生成。
33.本步骤旨在实现第二校验公式的构建,该过程类似于上述第一校验公式的构建过程。如上所述,冗余阵列中的每一个条带,其中的q校验分块被划分为第二预设数量个q要素,对于每一个q要素而言,则是基于该条带内各个数据分块中的一个数据要素生成,也就是说,每一个q要素在数据分块中均存在对应的数据要素,且各个q要素对应于不同的多个数据要素,例如,基于各个数据分块中属于不同行数的数据要素生成q校验分块中的q要素,也就是基于数据分块生成q校验分块。需要说明的是,q要素和p要素的生成方式并不相同,由此方可实现两个不同的校验公式的构建,以便于计算获得故障盘中的原数据。
34.在此基础上,当冗余阵列出现两个故障盘时,对于冗余阵列中的每一个条带,可以先确定每一个q要素对应的各个数据要素,然后根据各q要素和各q要素对应的数据要素构建生成第二校验公式,由于冗余阵列中存在两个故障盘,因此,该校验公式中同样存在两个未知数据,这两个未知数据同样对应于两个故障盘中的原数据。
35.s103:根据第一校验公式和第二校验公式求解获得冗余阵列中故障盘在条带中的原数据,并根据原数据对故障盘进行数据恢复。
36.本步骤旨在实现数据恢复。如上所述,当冗余阵列中存在两个故障盘时,第一校验公式中存在两个未知数据(对应于两个故障盘无法进行数据读取),第二校验公式中同样存在两个未知数据(对应于两个故障盘无法进行数据读取),因此,在构建获得第一校验公式和第二校验公式后,即可对二者进行联立,生成二元一次方程组,此时,则可以通过求解该二元一次方程组获得两个未知数据,也即冗余阵列中两个故障盘的原数据,因此,将原数据填充至相应的故障盘,即可实现故障冗余阵列的数据恢复。
37.可见,本技术实施例所提供的数据恢复方法,基于冗余阵列内部的空间分布,将条带中的各数据分块划分为多个数据要素,将p校验分块划分为多个p要素,将q校验分块划分为多个q要素,实现p校验分块和q校验分块中的各要素均基于数据分块中的数据要素生成,由此,当冗余阵列出现两个故障盘需要进行数据恢复时,则可以联立数据分块和p校验分块建立校验公式(即第一校验公式),以及联立数据分块和q校验分块建立校验公式(即第二校验公式),进而根据两个校验公式求解得到故障盘中的原数据,从而实现冗余阵列中故障盘的数据恢复,显然,该种实现方式无需结合其他算法,只需联立校验公式进行数据求解,实
现流程更为简单,有效地提高了故障冗余阵列的数据恢复效率。
38.在本技术的一个实施例中,上述确定各p要素对应的数据要素,可以包括:对于每一p要素,确定p要素的行数;在条带中,将行数对应的水平行中的各数据要素作为p要素对应的数据要素。
39.本技术实施例提供了一种确定p要素对应的数据要素的实现方法。具体而言,对于p校验分块中的每一个p要素,可以先去确定其所属的行数,这里是指该p要素在p校验分块的所有p要素中的所属行数,进一步,在当前条带中,将该行数对应的水平行中的各个数据要素作为p要素对应的数据要素。换而言之,隶属相同行数的各个数据要素生成相同行数的p要素,因此,相同行数的p要素对应于相同行数的各个数据要素,即相同行数的水平行中的各个数据要素。
40.在本技术的一个实施例中,上述根据各p要素和各p要素对应的数据要素构建第一校验公式,可以包括:对于每一p要素,对p要素对应的各数据要素进行异或运算后,与p要素进行联立,获得第一校验公式。
41.本技术实施例提供了一种根据各p要素和各p要素对应的数据要素构建第一校验公式的实现方法,该过程可以基于异或运算实现,对于每一个p要素,将其对应的各个数据要素进行异或运算,并与该p要素进行联立,即可获得第一校验公式。
42.在本技术的一个实施例中,上述确定各q要素对应的数据要素,可以包括:对于每一q要素,确定q要素的行数;在条带中,将行数对应的递减行中的各数据要素作为q要素对应的数据要素。
43.本技术实施例提供了一种确定q要素对应的数据要素的实现方法,类似于上述确定p要素对应的数据要素的实现过程。具体而言,对于q校验分块中的每一个q要素,可以先去确定其所属的行数,这里是指该q要素在q校验分块的所有q要素中的所属行数,进一步,在当前条带中,将该行数对应的递减行中的各个数据要素作为q要素对应的数据要素。换而言之,隶属不同行数的各个数据要素生成相应行数的q要素,因此,每一个q要素对应于不同行数的各个数据要素,即不同行数的递减行中的各个数据要素。
44.在本技术的一个实施例中,上述根据各q要素和各q要素对应的数据要素构建第二校验公式,可以包括:对于每一q要素,对q要素对应的各数据要素进行异或运算后,与q要素进行联立,获得第二校验公式。
45.本技术实施例提供了一种根据各q要素和各q要素对应的数据要素构建第二校验公式的实现方法,类似于上述第一校验公式的构建过程,可以基于异或运算实现,对于每一个q要素,将其对应的各个数据要素进行异或运算,并与该q要素进行联立,即可获得第二校验公式。
46.基于上述各实施例,请参考图2,图2为本技术所提供的一种冗余阵列中的条带空间分布示意图,在该条带中,包括有0~5号共计6个数据分块,且分别隶属于0~5号共计6个阵列盘,还包括有一个p校验分块和一个q校验分块,其中,每一个数据分块被划分为8个数据要素,如0号分块被划分为e:0:0至e:7:0共计8个数据要素,其他数据分块相同,p校验分块被划分为p:0至p:7共计8个p要素,q校验分块被划分为q:0至q:8共计9个q要素。在此基础上:p校验分块中各个p要素的生成方式为(水平行异或运算):
e:0:0 e:0:1 e:0:2 e:0:3 e:0:4 e:0:5=p:0;e:1:0 e:1:1 e:1:2 e:1:3 e:1:4 e:1:5=p:1;e:2:0 e:2:1 e:2:2 e:2:3 e:2:4 e:2:5=p:2;e:3:0 e:3:1 e:3:2 e:3:3 e:3:4 e:3:5=p:3;e:4:0 e:4:1 e:4:2 e:4:3 e:4:4 e:4:5=p:4;e:5:0 e:5:1 e:5:2 e:5:3 e:5:4 e:5:5=p:5;e:6:0 e:6:1 e:6:2 e:6:3 e:6:4 e:6:5=p:6;e:7:0 e:7:1 e:7:2 e:7:3 e:7:4 e:7:5=p:7。
47.上述公式中“ ”表示异或运算。
48.q校验分块中各个q要素的生成方式为(递减行异或运算):e:0:0 e:7:2 e:6:3 e:5:4 e:4:5=q:0;e:1:0 e:0:1 e:7:3 e:6:4 e:5:5=q:1;e:2:0 e:1:1 e:0:2 e:7:4 e:6:5=q:2;e:3:0 e:2:1 e:1:2 e:0:3 e:7:5=q:3;e:4:0 e:3:1 e:2:2 e:1:3 e:0:4=q:4;e:5:0 e:4:1 e:3:2 e:2:3 e:1:4 e:0:5=q:5;e:6:0 e:5:1 e:4:2 e:3:3 e:2:4 e:1:5=q:6;e:7:0 e:6:1 e:5:2 e:4:3 e:3:4 e:2:5=q:7;e:7:1 e:6:2 e:5:3 e:4:4 e:3:5=q:8。
49.上述公式中“ ”表示异或运算。
50.当冗余阵列中出现两个故障盘时,假设0号阵列盘和5号阵列盘为故障盘,那么,0号数据分块和5号数据分块中将无法读取数据,也就是e:0:0至e:7:0和e:0:5至e:7:5这16个数据要素无法读取数据,需要进行数据恢复,此时,构建第一校验公式和第二校验公式:第一校验公式(公式中“ ”表示异或运算):p:0=e:0:0 e:0:1 e:0:2 e:0:3 e:0:4 e:0:5;p:1=e:1:0 e:1:1 e:1:2 e:1:3 e:1:4 e:1:5;p:2=e:2:0 e:2:1 e:2:2 e:2:3 e:2:4 e:2:5;p:3=e:3:0 e:3:1 e:3:2 e:3:3 e:3:4 e:3:5;p:4=e:4:0 e:4:1 e:4:2 e:4:3 e:4:4 e:4:5;p:5=e:5:0 e:5:1 e:5:2 e:5:3 e:5:4 e:5:5;p:6=e:6:0 e:6:1 e:6:2 e:6:3 e:6:4 e:6:5;p:7=e:7:0 e:7:1 e:7:2 e:7:3 e:7:4 e:7:5。
51.其中,e:0:0至e:7:0、e:0:5至e:7:5为未知数据。
52.第二校验公式(公式中“ ”表示异或运算):q:0=e:0:0 e:7:2 e:6:3 e:5:4 e:4:5;q:1=e:1:0 e:0:1 e:7:3 e:6:4 e:5:5;q:2=e:2:0 e:1:1 e:0:2 e:7:4 e:6:5;q:3=e:3:0 e:2:1 e:1:2 e:0:3 e:7:5;q:4=e:4:0 e:3:1 e:2:2 e:1:3 e:0:4;
q:5=e:5:0 e:4:1 e:3:2 e:2:3 e:1:4 e:0:5;q:6=e:6:0 e:5:1 e:4:2 e:3:3 e:2:4 e:1:5;q:7=e:7:0 e:6:1 e:5:2 e:4:3 e:3:4 e:2:5;q:8=e:7:1 e:6:2 e:5:3 e:4:4 e:3:5。
53.其中,e:0:0至e:7:0、e:0:5至e:7:5为未知数据。
54.由此,联立上述两个校验公式,即可求解获得e:0:0至e:7:0、e:0:5至e:7:5中的数据,该数据即为0号数据分块和5号数据分块的原数据。在此基础上,针对冗余阵列中的所有条带均进行上述处理,即可实现故障盘的数据恢复。
55.以图3所示raid6冗余阵列为例,其由磁盘0~磁盘5构成,磁盘0~磁盘5均为1tb的磁盘,该冗余阵列包括stride0~stride5共6个条带,当磁盘0和磁盘5发生故障时,经过测试可以得出,采用传统技术中基于“伽罗华域”算法的数据恢复方法进行故障盘的数据恢复需要1个小时,而采用本技术所提供的数据恢复方法进行故障盘的数据恢复只需要20分钟,故障冗余阵列的数据恢复效率得到了显著提升。
56.本技术实施例提供了一种冗余阵列中的数据存储方法。
57.请参考图4,图4为本技术所提供的一种冗余阵列中的数据存储方法的流程示意图,该冗余阵列中的数据存储方法应用于冗余阵列,冗余阵列中的每个条带包括多个数据分块、一个p校验分块、一个q校验分块,每一数据分块被划分为第一预设数量个数据要素,每一p校验分块被划分为第一预设数量个p要素,每一q校验分块被划分为第二预设数量个q要素,且第二预设数量与第一预设数量的差值为1,该方法可以包括如下s201和s202。
58.需要说明的是,本技术所提供的冗余阵列中的数据存储方法应用于冗余阵列,主要适用于raid6,以便于在其中出现两块故障盘时进行数据恢复。具体而言,raid6中包括有多个条带,在每一个条带中,包括有多个数据分块、一个p校验分块和一个q校验分块,数据分块用于存储数据信息,p校验分块和q校验分块则用于存储校验数据,以用于实现故障盘的数据恢复;并且,每一个数据分块均被划分为第一预设数量个数据要素,每一p校验分块同样被划分为第一预设数量个p要素,每一q校验分块则被划分为第二预设数量个q要素,此处,对各分块进行多个要素划分,旨在基于各要素实现数据恢复,其中,第二预设数量大于第一预设数量,且二者差值为1。
59.s201:对于每一条带中的每一p要素,确定p要素对应的各数据要素,并根据p要素对应的各数据要素生成第一数据,将第一数据填充至p要素。
60.本步骤旨在实现p校验分块中各p要素的生成。如上所述,冗余阵列中的每一个条带,其中的p校验分块被划分为第一预设数量个p要素,对于每一个p要素而言,则是基于该条带内各个数据分块中的一个数据要素生成,也就是说,每一个p要素在数据分块中均存在对应的数据要素,且各个p要素对应于不同的多个数据要素,例如,基于各个数据分块中的第一个数据要素生成p校验分块中的第一个p要素,基于各个数据分块中的第二数据要素生成p校验分块中的第二个p要素,以此类推,实现p校验分块中各p要素的生成,也就是基于数据分块生成p校验分块。
61.s202:对于每一条带中的每一q要素,确定q要素对应的各数据要素,并根据q要素对应的各数据要素生成第二数据,将第二数据填充至q要素。
62.本步骤旨在实现q校验分块中各q要素的生成。如上所述,冗余阵列中的每一个条
带,其中的q校验分块被划分为第二预设数量个q要素,对于每一个q要素而言,则是基于该条带内各个数据分块中的一个数据要素生成,也就是说,每一个q要素在数据分块中均存在对应的数据要素,且各个q要素对应于不同的多个数据要素,例如,基于各个数据分块中属于不同行数的数据要素生成q校验分块中的q要素,也就是基于数据分块生成q校验分块。
63.需要说明的是,q要素和p要素的生成方式并不相同,由此方可实现两个不同的校验公式的构建,以便于后续进行故障盘中原数据的计算。具体而言,当冗余阵列出现两个故障盘时:(1)对于冗余阵列中的每一个条带,可以先确定每一个p要素对应的各个数据要素,然后根据各p要素和各p要素对应的数据要素构建生成第一校验公式,由于冗余阵列中存在两个故障盘,因此,该校验公式中存在两个未知数据,这两个未知数据则对应于两个故障盘中的原数据。
64.(2)对于冗余阵列中的每一个条带,可以先确定每一个q要素对应的各个数据要素,然后根据各q要素和各q要素对应的数据要素构建生成第二校验公式,由于冗余阵列中存在两个故障盘,因此,该校验公式中同样存在两个未知数据,这两个未知数据同样对应于两个故障盘中的原数据。
65.由此,对上述两个校验公式进行联立,生成二元一次方程组,此时,则可以通过求解该二元一次方程组获得两个未知数据,也即冗余阵列中两个故障盘的原数据,因此,将原数据填充至相应的故障盘,即可实现故障冗余阵列的数据恢复。
66.可见,本技术实施例所提供的冗余阵列中的数据存储方法,基于冗余阵列内部的空间分布,将条带中的各数据分块划分为多个数据要素,将p校验分块划分为多个p要素,将q校验分块划分为多个q要素,实现p校验分块和q校验分块中的各要素均基于数据分块中的数据要素生成,由此,当冗余阵列出现两个故障盘需要进行数据恢复时,则可以联立数据分块和p校验分块建立校验公式(即第一校验公式),以及联立数据分块和q校验分块建立校验公式(即第二校验公式),进而根据两个校验公式求解得到故障盘中的原数据,从而实现冗余阵列中故障盘的数据恢复,显然,该种实现方式无需结合其他算法,只需联立校验公式进行数据求解,实现流程更为简单,有效地提高了故障冗余阵列的数据恢复效率。
67.在本技术的一个实施例中,上述确定p要素对应的各数据要素,可以包括:确定p要素的行数;在条带中,将行数对应的水平行中的各数据要素作为p要素对应的各数据要素。
68.本技术实施例提供了一种确定p要素对应的各数据要素的实现方法。具体而言,对于p校验分块中的每一个p要素,可以先去确定其所属的行数,这里是指该p要素在p校验分块的所有p要素中的所属行数,进一步,在当前条带中,将该行数对应的水平行中的各个数据要素作为p要素对应的数据要素。换而言之,隶属相同行数的各个数据要素生成相同行数的p要素,因此,相同行数的p要素对应于相同行数的各个数据要素,即相同行数的水平行中的各个数据要素。
69.在本技术的一个实施例中,上述根据p要素对应的各数据要素生成第一数据,可以包括:对p要素对应的各数据要素进行异或运算,获得第一数据。
70.本技术实施例提供了一种p要素中原数据的生成方式,该过程可以基于异或运算实现。对于每一个p元素,在确定其对应的各数据元素之后,即可对各个数据元素进行异或运算,这里是指对数据元素中的数据进行异或运算,最终计算获得的数据即为当前p要素中
的原数据,也即上述第一数据。
71.在本技术的一个实施例中,上述确定q要素对应的各数据要素,可以包括:确定q要素的行数;在条带中,将行数对应的递减行中的各数据要素作为q要素对应的各数据要素。
72.本技术实施例提供了一种确定q要素对应的各数据要素的实现方法,类似于上述确定p要素对应的各数据要素的实现过程。具体而言,对于q校验分块中的每一个q要素,可以先去确定其所属的行数,这里是指该q要素在q校验分块的所有q要素中的所属行数,进一步,在当前条带中,将该行数对应的递减行中的各个数据要素作为q要素对应的数据要素。换而言之,隶属不同行数的各个数据要素生成相应行数的q要素,因此,每一个q要素对应于不同行数的各个数据要素,即不同行数的递减行中的各个数据要素。
73.在本技术的一个实施例中,上述根据q要素对应的各数据要素生成第二数据,可以包括:对q要素对应的各数据要素进行异或运算,获得第二数据。
74.本技术实施例提供了一种q要素中原数据的生成方式,该过程可以基于异或运算实现。对于每一个q元素,在确定其对应的各数据元素之后,即可对各个数据元素进行异或运算,这里是指对数据元素中的数据进行异或运算,最终计算获得的数据即为当前q要素中的原数据,也即上述第二数据。
75.本技术实施例提供了一种冗余阵列。
76.在本技术实施例所提供的冗余阵列中,每个条带包括多个数据分块、一个p校验分块、一个q校验分块,每一数据分块被划分为第一预设数量个数据要素,每一p校验分块被划分为第一预设数量个p要素,每一q校验分块被划分为第二预设数量个q要素,且第二预设数量与第一预设数量的差值为1;其中,每一p要素基于p要素对应的各数据要素生成;每一q要素基于q要素对应的各数据要素生成。
77.可见,本技术实施例所提供的冗余阵列,基于冗余阵列内部的空间分布,将条带中的各数据分块划分为多个数据要素,将p校验分块划分为多个p要素,将q校验分块划分为多个q要素,实现p校验分块和q校验分块中的各要素均基于数据分块中的数据要素生成,由此,当冗余阵列出现两个故障盘需要进行数据恢复时,则可以联立数据分块和p校验分块建立校验公式(即第一校验公式),以及联立数据分块和q校验分块建立校验公式(即第二校验公式),进而根据两个校验公式求解得到故障盘中的原数据,从而实现冗余阵列中故障盘的数据恢复,显然,该种实现方式无需结合其他算法,只需联立校验公式进行数据求解,实现流程更为简单,有效地提高了故障冗余阵列的数据恢复效率。
78.对于本技术实施例提供的冗余阵列的介绍请参照上述方法实施例,本技术在此不做赘述。
79.本技术实施例提供了一种数据恢复装置。
80.请参考图5,图5为本技术所提供的一种数据恢复装置的结构示意图,该数据恢复装置应用于冗余阵列,冗余阵列中的每个条带包括多个数据分块、一个p校验分块、一个q校验分块,每一数据分块被划分为第一预设数量个数据要素,每一p校验分块被划分为第一预设数量个p要素,每一q校验分块被划分为第二预设数量个q要素,且第二预设数量与第一预设数量的差值为1,该装置可以包括:第一构建模块1,用于对于每一条带,确定各p要素对应的数据要素,并根据各p要素和各p要素对应的数据要素构建第一校验公式;其中,每一p要素基于p要素对应的各数据
要素生成;第二构建模块2,用于对于每一条带,确定各q要素对应的数据要素,并根据各q要素和各q要素对应的数据要素构建第二校验公式;其中,每一q要素基于q要素对应的各数据要素生成;数据恢复模块3,用于根据第一校验公式和第二校验公式求解获得冗余阵列中故障盘在条带中的原数据,并根据原数据对故障盘进行数据恢复。
81.可见,本技术实施例所提供的数据恢复装置,基于冗余阵列内部的空间分布,将条带中的各数据分块划分为多个数据要素,将p校验分块划分为多个p要素,将q校验分块划分为多个q要素,实现p校验分块和q校验分块中的各要素均基于数据分块中的数据要素生成,由此,当冗余阵列出现两个故障盘需要进行数据恢复时,则可以联立数据分块和p校验分块建立校验公式(即第一校验公式),以及联立数据分块和q校验分块建立校验公式(即第二校验公式),进而根据两个校验公式求解得到故障盘中的原数据,从而实现冗余阵列中故障盘的数据恢复,显然,该种实现方式无需结合其他算法,只需联立校验公式进行数据求解,实现流程更为简单,有效地提高了故障冗余阵列的数据恢复效率。
82.在本技术的一个实施例中,上述第一构建模块1可具体用于对于每一p要素,确定p要素的行数;在条带中,将行数对应的水平行中的各数据要素作为p要素对应的数据要素。
83.在本技术的一个实施例中,上述第一构建模块1可具体用于对于每一p要素,对p要素对应的各数据要素进行异或运算后,与p要素进行联立,获得第一校验公式。
84.在本技术的一个实施例中,上述第二构建模块2可具体用于对于每一q要素,确定q要素的行数;在条带中,将行数对应的递减行中的各数据要素作为q要素对应的数据要素。
85.在本技术的一个实施例中,上述第二构建模块2可具体用于对于每一q要素,对q要素对应的各数据要素进行异或运算后,与q要素进行联立,获得第二校验公式。
86.对于本技术实施例提供的装置的介绍请参照上述方法实施例,本技术在此不做赘述。
87.本技术实施例提供了一种冗余阵列中的数据存储装置。
88.请参考图6,图6为本技术所提供的一种冗余阵列中的数据存储装置的结构示意图,该冗余阵列中的数据存储装置可应用于冗余阵列,冗余阵列中的每个条带包括多个数据分块、一个p校验分块、一个q校验分块,每一数据分块被划分为第一预设数量个数据要素,每一p校验分块被划分为第一预设数量个p要素,每一q校验分块被划分为第二预设数量个q要素,且第二预设数量与第一预设数量的差值为1,该装置可以包括:第一生成模块4,用于对于每一条带中的每一p要素,确定p要素对应的各数据要素,并根据p要素对应的各数据要素生成第一数据,将第一数据填充至p要素;第二生成模块5,用于对于每一条带中的每一q要素,确定q要素对应的各数据要素,并根据q要素对应的各数据要素生成第二数据,将第二数据填充至q要素。
89.可见,本技术实施例所提供的冗余阵列中的数据存储装置,基于冗余阵列内部的空间分布,将条带中的各数据分块划分为多个数据要素,将p校验分块划分为多个p要素,将q校验分块划分为多个q要素,实现p校验分块和q校验分块中的各要素均基于数据分块中的数据要素生成,由此,当冗余阵列出现两个故障盘需要进行数据恢复时,则可以联立数据分块和p校验分块建立校验公式(即第一校验公式),以及联立数据分块和q校验分块建立校验
公式(即第二校验公式),进而根据两个校验公式求解得到故障盘中的原数据,从而实现冗余阵列中故障盘的数据恢复,显然,该种实现方式无需结合其他算法,实现流程更为简单,有效地提高了故障冗余阵列的数据恢复效率。
90.在本技术的一个实施例中,上述第一生成模块4可具体用于确定p要素的行数;在条带中,将行数对应的水平行中的各数据要素作为p要素对应的各数据要素。
91.在本技术的一个实施例中,上述第一生成模块4可具体用于对p要素对应的各数据要素进行异或运算,获得第一数据。
92.在本技术的一个实施例中,上述第二生成模块5可具体用于确定q要素的行数;在条带中,将行数对应的递减行中的各数据要素作为q要素对应的各数据要素。
93.在本技术的一个实施例中,上述第二生成模块5可具体用于对q要素对应的各数据要素进行异或运算,获得第二数据。
94.对于本技术实施例提供的装置的介绍请参照上述方法实施例,本技术在此不做赘述。
95.本技术实施例提供了一种电子设备。
96.请参考图7,图7为本技术所提供的一种电子设备的结构示意图,该电子设备可包括:存储器,用于存储计算机程序;处理器,用于执行计算机程序时可实现如上述任意一种数据恢复方法的步骤和/或任意一种冗余阵列中的数据存储方法的步骤。
97.如图7所示,为电子设备的组成结构示意图,电子设备可以包括:处理器10、存储器11、通信接口12和通信总线13。处理器10、存储器11、通信接口12均通过通信总线13完成相互间的通信。
98.在本技术实施例中,处理器10可以为中央处理器(central processing unit,cpu)、特定应用集成电路、数字信号处理器、现场可编程门阵列或者其他可编程逻辑器件等。
99.处理器10可以调用存储器11中存储的程序,具体的,处理器10可以执行数据恢复方法的实施例中的操作。
100.存储器11中用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,在本技术实施例中,存储器11中至少存储有用于实现以下功能的程序:对于每一条带,确定各p要素对应的数据要素,并根据各p要素和各p要素对应的数据要素构建第一校验公式;其中,每一p要素基于p要素对应的各数据要素生成;对于每一条带,确定各q要素对应的数据要素,并根据各q要素和各q要素对应的数据要素构建第二校验公式;其中,每一q要素基于q要素对应的各数据要素生成;根据第一校验公式和第二校验公式求解获得冗余阵列中故障盘在条带中的原数据,并根据原数据对故障盘进行数据恢复。
101.在一种可能的实现方式中,存储器11可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及至少一个功能所需的应用程序等;存储数据区可存储使用过程中所创建的数据。
102.此外,存储器11可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。
103.通信接口12可以为通信模块的接口,用于与其他设备或者系统连接。
104.当然,需要说明的是,图7所示的结构并不构成对本技术实施例中电子设备的限定,在实际应用中电子设备可以包括比图7所示的更多或更少的部件,或者组合某些部件。
105.本技术实施例提供了一种计算机可读存储介质。
106.本技术实施例所提供的计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如上述任意一种数据恢复方法的步骤和/或任意一种冗余阵列中的数据存储方法的步骤。
107.该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
108.对于本技术实施例提供的计算机可读存储介质的介绍请参照上述方法实施例,本技术在此不做赘述。
109.说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
110.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
111.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom或技术领域内所公知的任意其它形式的存储介质中。
112.以上对本技术所提供的技术方案进行了详细介绍。本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术的保护范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献