CN112000512B - 一种数据修复方法及相关装置 - Google Patents

一种数据修复方法及相关装置 Download PDF

Info

Publication number
CN112000512B
CN112000512B CN202010821262.XA CN202010821262A CN112000512B CN 112000512 B CN112000512 B CN 112000512B CN 202010821262 A CN202010821262 A CN 202010821262A CN 112000512 B CN112000512 B CN 112000512B
Authority
CN
China
Prior art keywords
data
matrix
row
recovery
recovered
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010821262.XA
Other languages
English (en)
Other versions
CN112000512A (zh
Inventor
吴睿振
王凛
王明明
吴艳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Original Assignee
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd filed Critical Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Priority to CN202010821262.XA priority Critical patent/CN112000512B/zh
Publication of CN112000512A publication Critical patent/CN112000512A/zh
Application granted granted Critical
Publication of CN112000512B publication Critical patent/CN112000512B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data

Abstract

本申请公开了一种数据修复方法,包括:确定待修复数据中待恢复数据块的数量;当所述数量为一个时,根据数据存储的数据位特征对所述待恢复数据块对应的校验矩阵行进行变换操作,得到行恢复矩阵;根据所述行恢复矩阵和RS纠删算法进行数据恢复运算,得到已恢复数据块。通过当待恢复数据块的数量为一个时,直接对该待恢复数据块对应的校验矩阵行直接变换出行恢复矩阵,然后使用该校验矩阵行进行数据恢复运算,得到已恢复数据块,而不是求逆运算,提高数据恢复过程的效率。本申请还公开了一种数据修复装置、计算设备以及计算机可读存储介质,具有以上有益效果。

Description

一种数据修复方法及相关装置
技术领域
本申请涉及存储技术领域,特别涉及一种数据修复方法、数据修复装置、计算设备以及计算机可读存储介质。
背景技术
随着信息技术的不断发展,面对海量数据的存储要求,分布式存储以其成本低廉,可扩展性好等优势逐渐取代了统一存储的主导地位。分布式存储系统多以廉价的磁盘作为存储节点,每个存储节点的可靠性较低,另一方面,一个分布式存储系统通常包含很多的节点,由于软硬件故障,人为失误等原因,系统常常发生节点失效的情况。为了提高分布式存储系统的数据可靠性,保证数据收集节点能以很高的概率实现原始文件的重构,需要在存储原始数据的基础上,额外存储一定数量的冗余,使得在出现部分节点失效的情况下,系统仍然可以正常运行,数据收集节点仍然可以对原始文件实现解码恢复。同时,为了维持系统的可靠性,需要对失效的节点及时进行修复,因此,设计一个良好的节点修复机制十分重要。
目前,纠删码属于编码理论中的一种前向纠错技术,最早应用于通信领域以解决数据传输中的丢失与损耗这类问题。由于纠删码技术在防止数据丢失取得了较好的效果,因此被引入存储领域。纠删码可以在保证相同可靠性的前提下有效地降低存储开销,纠删码的种类众多,在实际存储系统中较常见的有应用在分布式环境下的RS码(Reed-SolomonCode,里德所罗门码)。
现有技术中,纠删的传统解码求逆采用的是高斯消元法,高斯消元法具有普适性特点,不管任何情况的矩阵,依照固定的顺序,完成n3次运算即可。但是高斯消元法的缺点同样在于,不管任何矩阵,都需要n3次运算。可见,进行数据修复的过程需要较长的时间,效率极低。
因此,如何提高RS纠删码的数据恢复过程的效率是本领域技术人员关注的重点问题。
发明内容
本申请的目的是提供一种数据修复方法、数据修复装置、计算设备以及计算机可读存储介质,通过当待恢复数据块的数量为一个时,直接对该待恢复数据块对应的校验矩阵行直接变换出行恢复矩阵,然后使用该校验矩阵行进行数据恢复运算,得到已恢复数据块,而不是求逆运算,提高数据恢复过程的效率。
为解决上述技术问题,本申请提供一种数据修复方法,包括:
确定待修复数据中待恢复数据块的数量;
当所述数量为一个时,根据数据存储的数据位特征对所述待恢复数据块对应的校验矩阵行进行变换操作,得到行恢复矩阵;
根据所述行恢复矩阵和RS纠删算法进行数据恢复运算,得到已恢复数据块。
可选的,当所述数量为一个时,根据数据存储的数据位特征对所述待恢复数据块对应的校验矩阵行进行变换操作,得到行恢复矩阵,包括:
当所述数量为一个时,获取所述待恢复数据块对应的校验矩阵行;
根据所述数据位特征和所述校验矩阵行进行置换处理,得到所述行恢复矩阵。
可选的,还包括:
当所述数量为两个时,获取所述待恢复数据块对应的两个校验矩阵行组成的第一校验矩阵;
将所述第一校验矩阵中所有待恢复数据块对应的元素之外的元素进行取负,得到第二校验矩阵;
对所述第二校验矩阵的对角元素进行计算,得到计算所需逆矩阵的行恢复矩阵;
根据所述行恢复矩阵和RS纠删算法进行数据恢复运算,得到已恢复数据块。
可选的,还包括:
当所述数量大于两个时,根据矩阵降阶算法对所有待恢复数据块对应的校验矩阵行进行划分处理,得到数量为一的校验行矩阵和数量为二的校验行矩阵的组合;
分别对数量为一的校验行矩阵和数量为二的校验行矩阵进行行变换处理,得到对应的恢复行列式;
根据反向降阶算法对所有恢复行列式进行合成,得到恢复矩阵;
根据所述恢复矩阵和RS纠删算法进行数据恢复运算,得到已恢复数据块。
本申请还提供一种数据修复装置,包括:
数据块数量获取模块,用于确定待修复数据中待恢复数据块的数量;
校验行变换模块,用于当所述数量为一个时,根据数据存储的数据位特征对所述待恢复数据块对应的校验矩阵行进行变换操作,得到行恢复矩阵;
数据恢复运算模块,用于根据所述行恢复矩阵和RS纠删算法进行数据恢复运算,得到已恢复数据块。
可选的,所述校验行变换模块,包括:
矩阵行获取单元,用于当所述数量为一个时,获取所述待恢复数据块对应的校验矩阵行;
行置换单元,用于根据所述数据位特征和所述校验矩阵行进行置换处理,得到所述行恢复矩阵。
可选的,还包括:
两块数据恢复模块,用于当所述数量为两个时,获取所述待恢复数据块对应的两个校验矩阵行组成的第一校验矩阵;将所述第一校验矩阵中所有待恢复数据块对应的元素之外的元素进行取负,得到第二校验矩阵;对所述第二校验矩阵的对角元素进行计算,得到计算所需逆矩阵的行恢复矩阵;根据所述行恢复矩阵和RS纠删算法进行数据恢复运算,得到已恢复数据块。
可选的,所述
多块数据恢复模块,用于当所述数量大于两个时,根据矩阵降阶算法对所有待恢复数据块对应的校验矩阵行进行划分处理,得到数量为一的校验行矩阵和数量为二的校验行矩阵的组合;分别对数量为一的校验行矩阵和数量为二的校验行矩阵进行行变换处理,得到对应的恢复行列式;根据反向降阶算法对所有恢复行列式进行合成,得到恢复矩阵;根据所述恢复矩阵和RS纠删算法进行数据恢复运算,得到已恢复数据块。
本申请还提供一种计算设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的数据修复方法的步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的数据修复方法的步骤。
本申请所提供的一种数据修复方法,包括:确定待修复数据中待恢复数据块的数量;当所述数量为一个时,根据数据存储的数据位特征对所述待恢复数据块对应的校验矩阵行进行变换操作,得到行恢复矩阵;根据所述行恢复矩阵和RS纠删算法进行数据恢复运算,得到已恢复数据块。
通过首先确定待修复数据块中待恢复数据块的数量,当数据量为一时直接对对应待恢复数据块的校验矩阵行进行变换操作,得到行恢复矩阵,最后进行数据恢复运算,得到已恢复数据块,实现数据修复,而不是对待恢复数据仍然执行对应的求逆运算,提高了数据恢复的效率。
本申请还提供一种数据修复装置、计算设备以及计算机可读存储介质,具有以上有益效果,在此不做赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种数据修复方法的流程图;
图2为本申请实施例所提供的一种数据修复装置的结构示意图。
具体实施方式
本申请的核心是提供一种数据修复方法、数据修复装置、计算设备以及计算机可读存储介质,通过当待恢复数据块的数量为一个时,直接对该待恢复数据块对应的校验矩阵行直接变换出行恢复矩阵,然后使用该校验矩阵行进行数据恢复运算,得到已恢复数据块,而不是求逆运算,提高数据恢复过程的效率。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
现有技术中,纠删的传统解码求逆采用的是高斯消元法,高斯消元法具有普适性特点,不管任何情况的矩阵,依照固定的顺序,完成n3次运算即可。但是高斯消元法的缺点同样在于,不管任何矩阵,都需要n3次运算。可见,进行数据修复的过程需要较长的时间,效率极低。
因此,本申请提供一种数据恢复方法,通过首先确定待修复数据块中待恢复数据块的数量,当数据量为一时直接对对应待恢复数据块的校验矩阵行进行变换操作,得到行恢复矩阵,最后进行数据恢复运算,得到已恢复数据块,实现数据修复,而不是对待恢复数据仍然执行对应的求逆运算,提高了数据恢复的效率。
以下通过一个实施例,对本申请提供一种数据修复方法进行说明。
请参考图1,图1为本申请实施例所提供的一种数据修复方法的流程图。
本实施例中,该方法可以包括:
S101,确定待修复数据中待恢复数据块的数量;
本步骤旨在确定待修复数据中待恢复数据块的数量。
其中,待修复数据指的是在纠删码通过解码将受损的数据进行修复。纠删码的核心概念是构建一个可逆的编码矩阵用以产生校验数据,其逆矩阵可经过计算恢复原始数据。常见的RS纠删码使用的是上面介绍的柯西矩阵或范德蒙矩阵,这样的优势是所得到的矩阵肯定可逆,其任意子矩阵也都可逆,并且矩阵的大小扩充简单。
目前,常见的RS纠删码逆矩阵的计算采用的是高斯消元法,这种通用解法适用于任何可逆矩阵的求逆,但是没有针对矩阵编码的特性进行优化,因此虽然计算规律化,却会引入大量冗余运算。当存储k个数据块,添加r个校验数据块的情况下,需要恢复的单个数据块错误的几率占了99.75%,而使用高斯消元需要n3次运算,才能得到所需要的逆矩阵,然后恢复相应的数据块。
因此,本实施例针对大多数出现单个错误块的情况进行优化,需要首先确定待修复数据中的待恢复数据块的数量。其中,确定数量的方式可以采用现有技术提供的任意一种确定方式,在此不做具体限定。
S102,当数量为一个时,根据数据存储的数据位特征对待恢复数据块对应的校验矩阵行进行变换操作,得到行恢复矩阵;
在S102的基础上,本步骤旨在当数量为一个时,根据数据存储的数据位特征对待恢复数据块对应的校验矩阵行进行变换操作,得到行恢复矩阵。
本步骤旨在通过该待恢复数据块对应的校验矩阵行直接进行变换,得到行恢复矩阵,而不是对校验矩阵进行对应的逆运算。
举例来说,本步骤中对对应的校验矩阵行进行的变换操作可以如下:
当需要恢复的数据块仅为一块时,恢复数据选择第(k+1)行的编码矩阵Ak+1,及其对应的校验数据块,此时其逆矩阵Z需要用以恢复第m1个数据块的行公式Zm1为:
Figure BDA0002634467850000061
其中,上式中分子部分是编码矩阵本身的元素,可知通过m1位置的元素值为(a(k+1),m1)可快速得到当单一错误时的逆矩阵对应需要运算的行恢复矩阵所有元素,也就是获取到行恢复矩阵。
可选的,本步骤可以包括:
当数量为一个时,获取待恢复数据块对应的校验矩阵行;
根据数据位特征和校验矩阵行进行置换处理,得到行恢复矩阵。
可见,本可选方案中主要是对如何获取到行恢复矩阵进行说明。本可选方案中当数量为一个时,获取待恢复数据块对应的校验矩阵行;然后,根据数据位特征和校验矩阵行进行置换处理,得到行恢复矩阵。可见,通过该可选方案可以获取到用于数据修复的所有元素,因此就避免了进行逆运算。
S103,根据行恢复矩阵和RS纠删算法进行数据恢复运算,得到已恢复数据块。
在S102的基础上,本步骤旨在根据行恢复矩阵和RS纠删算法进行数据恢复运算,得到已恢复数据块。本步骤中的行恢复矩阵可以直接当作正常计算中的逆矩阵进行相应的运算。
其中,RS纠删算法可以采用现有技术提供的一种RS纠删算法,在此不做具体限定。
可选的,本实施例还可以包括:
步骤1,当数量为两个时,获取待恢复数据块对应的两个校验矩阵行组成的第一校验矩阵;
步骤2,将第一校验矩阵中所有待恢复数据块对应的元素之外的元素进行取负,得到第二校验矩阵;
步骤3,对第二校验矩阵的对角元素进行计算,得到计算所需逆矩阵的行恢复矩阵;
步骤4,根据行恢复矩阵和RS纠删算法进行数据恢复运算,得到已恢复数据块。
可见,本可选方案主要是当数量为两个时如何数据恢复进行说明。本可选方案中当数量为两个时,首先获取待恢复数据块对应的两个校验矩阵行组成的第一校验矩阵;然后,将第一校验矩阵中所有待恢复数据块对应的元素之外的元素进行取负,得到第二校验矩阵;再然后,对第二校验矩阵的对角元素进行计算,得到计算所需逆矩阵的行恢复矩阵;最后,根据行恢复矩阵和RS纠删算法进行数据恢复运算,得到已恢复数据块。
可选的,本实施例还可以包括:
当数量大于两个时,根据矩阵降阶算法对所有待恢复数据块对应的校验矩阵行进行划分处理,得到数量为一的校验行矩阵和数量为二的校验行矩阵的组合;
分别对数量为一的校验行矩阵和数量为二的校验行矩阵进行行变换处理,得到对应的恢复行列式;
根据反向降阶算法对所有恢复行列式进行合成,得到恢复矩阵;
根据恢复矩阵和RS纠删算法进行数据恢复运算,得到已恢复数据块。
可见,本可选方案主要是当数量为多个时如何数据恢复进行说明。本可选方案中当数量大于两个时,首先根据矩阵降阶算法对所有待恢复数据块对应的校验矩阵行进行划分处理,得到数量为一的校验行矩阵和数量为二的校验行矩阵的组合;也就是将对应的校验矩阵行不断划分为了可以进行置换的错误数量为一的校验行矩阵和错误数量为二的校验行矩阵。然后,分别对数量为一的校验行矩阵和数量为二的校验行矩阵进行行变换处理,得到对应的恢复行列式;根据反向降阶算法对所有恢复行列式进行合成,得到恢复矩阵;最后,根据恢复矩阵和RS纠删算法进行数据恢复运算,得到已恢复数据块。
综上,本实施例通过首先确定待修复数据块中待恢复数据块的数量,当数据量为一时直接对对应待恢复数据块的校验矩阵行进行变换操作,得到行恢复矩阵,最后进行数据恢复运算,得到已恢复数据块,实现数据修复,而不是对待恢复数据仍然执行对应的求逆运算,提高了数据恢复的效率。
以下通过一个具体的实施例,对本申请提供的一种数据修复方法做进一步说明。
本实施例中,首先判断错误的,也就是需要恢复的数据块数量,如果是大概率的单一错误,则进行方法一的方法,如果是有多个连续的错误,则记录连续错误矩阵的对角线数据,然后进入方法二的方法。
假设针对k个数据块,r个校验数据块,所得到的编码矩阵为(k+r)*k矩阵A,其中上半部分的k*k矩阵为单位阵,下半部分的r*k矩阵为校验矩阵。
其中,方法一在得到记录的错误位置m1后解码方式为:
选取校验矩阵的第一行,即是矩阵的(k+1)行,读取其中的m1位置的元素值为(a(k+1),m1)。
当需要恢复的数据块仅为一块时,恢复数据选择第(k+1)行的编码矩阵Ak+1,及其对应的校验数据块,此时其逆矩阵Z需要用以恢复第m1个数据块的行公式Zm1为:
Figure BDA0002634467850000081
上式中分子部分是编码矩阵本身的元素,可知通过m1位置的元素值为(a(k+1),m1)可快速得到当单一错误时的逆矩阵对应需要运算的行恢复矩阵所有元素,然后基于标准的RS纠删算法恢复数据,进行运算即可得到所需要恢复的数据块。
当单一错误时,需要需要快速提高计算的速度,这样的运算可以k次运算直接得到最终需要运算的校验矩阵元素,运算复杂度降低了
Figure BDA0002634467850000091
当错误码块为两个时,则记录错误码块所对应的矩阵对角线上的元素值,然后通过以下方式进行相应的计算。
为说明方法二的实现步骤,以k=4,r=2利用范德蒙RS纠删编码方式得到的编码矩阵为例,码块k=2和k=4错误时,逆矩阵为:
Figure BDA0002634467850000092
则此时对应的错误码块所对应的矩阵为:
Figure BDA0002634467850000093
其中,对角线元素值如式所示,为1和4。
此时进入方法二,其步骤为:
步骤1,取得需要恢复码块的逆矩阵对应行公式Zm2,4,以上述为例,即是:
Figure BDA0002634467850000094
步骤2,对
Figure BDA0002634467850000095
之外的元素全部取负,即得到
Figure BDA0002634467850000096
步骤3,对上式中x对应矩阵赋值单位阵,然后分别对每一行元素减去非对角线元素除以同列对角线元素的值得到:
Figure BDA0002634467850000097
步骤4,对行元素除以对角线元素与其列对应元素除以其余两个元素值后的差值得到最终恢复所需的逆矩阵对应行公式,即:
Figure BDA0002634467850000098
以上方法二的运算,分步解释了其原理,但是在实际应用中元素之间没有先后的依赖关系,因此在硬件实现中,可以总结为在任何一边编码矩阵A中,任何两个恢复数据选择第(k+1)和(k+2)行的编码矩阵Ak+1和Ak+2,及其对应的校验数据块,此时其逆矩阵Z需要用以恢复第m1,m2个数据块的行公式Zm1,m2为:并行计算的方式为:
Figure BDA0002634467850000101
Figure BDA0002634467850000102
如果有大于2的n(n<=r)个待恢复数据块需要恢复的情况,当n为奇数,则以两个码块为记录对角线调用方法二直到剩余码块数量为1然后调用方法一。当n为偶数时,则并行调用方法二n/2次。调用方法一和方法二基于方法一和二的特性,可以并行运算,得到的结果基于方法二进行迭代组合。
主要方式是利用矩阵降阶法对其按照1码块和2码块错误的最小单元需求去划分,分为1码块和2码块的组合,然后分别用方法一和二来做运算,最后反向降阶法的方式来合成得到最终解即可。其迭代组合的方式为:
以n=4为例,将所得到的前两行和后两行行列式元素值代入方法二中的第三步,分别减去本行元素对应另两行元素的对角线元素的乘积值。以错误码块在m=2,3,4,5为例,完成方法二的运算后对应的恢复用行列式为Zm2,m3,m4,m5,将得到的行列式m=2,3和m=4,5分别重新代入方法二,即可得到最终的行列式关系,即得到的恢复矩阵。
如上所示,本发明所提出的的算法针对错误码块为1个或2个的情况下做了优化,可快速得到恢复数据所需要的行列式关系。因为,在99.75%的情况下为单一码块错误情况,此外,错两个以内的码块的情况可以覆盖将近所有的分布式存储纠删应用场景。针对这种情况,本发明所提出的算法,相比传统的高斯消元法可以得到
Figure BDA0002634467850000103
的运算改进。
可见,本实施例通过首先确定待修复数据块中待恢复数据块的数量,当数据量为一时直接对对应待恢复数据块的校验矩阵行进行变换操作,得到行恢复矩阵,最后进行数据恢复运算,得到已恢复数据块,实现数据修复,而不是对待恢复数据仍然执行对应的求逆运算,提高了数据恢复的效率。
下面对本申请实施例提供数据修复装置进行介绍,下文描述的数据修复装置与上文描述的数据修复方法可相互对应参照。
请参考图2,图2为本申请实施例所提供的一种数据修复装置的结构示意图。
本实施例中,该装置可以包括:
数据块数量获取模块100,用于确定待修复数据中待恢复数据块的数量;
校验行变换模块200,用于当数量为一个时,根据数据存储的数据位特征对待恢复数据块对应的校验矩阵行进行变换操作,得到行恢复矩阵;
数据恢复运算模块300,用于根据行恢复矩阵和RS纠删算法进行数据恢复运算,得到已恢复数据块。
可选的,该校验行变换模块200,可以包括:
矩阵行获取单元,用于当数量为一个时,获取待恢复数据块对应的校验矩阵行;
行置换单元,用于根据数据位特征和校验矩阵行进行置换处理,得到行恢复矩阵。
可选的,该装置还可以包括:
两块数据恢复模块,用于当数量为两个时,获取待恢复数据块对应的两个校验矩阵行组成的第一校验矩阵;将第一校验矩阵中所有待恢复数据块对应的元素之外的元素进行取负,得到第二校验矩阵;对第二校验矩阵的对角元素进行计算,得到计算所需逆矩阵的行恢复矩阵;根据行恢复矩阵和RS纠删算法进行数据恢复运算,得到已恢复数据块。
可选的,该装置还可以包括:
多块数据恢复模块,用于当数量大于两个时,根据矩阵降阶算法对所有待恢复数据块对应的校验矩阵行进行划分处理,得到数量为一的校验行矩阵和数量为二的校验行矩阵的组合;分别对数量为一的校验行矩阵和数量为二的校验行矩阵进行行变换处理,得到对应的恢复行列式;根据反向降阶算法对所有恢复行列式进行合成,得到恢复矩阵;根据恢复矩阵和RS纠删算法进行数据恢复运算,得到已恢复数据块。
本申请实施例还提供一种计算设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如以上实施例所述的数据修复方法的步骤。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上实施例所述的数据修复方法的步骤。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种数据修复方法、数据修复装置、计算设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

Claims (4)

1.一种数据修复方法,其特征在于,包括:
确定待修复数据中待恢复数据块的数量;
当所述数量为一个时,根据数据存储的数据位特征对所述待恢复数据块对应的校验矩阵行进行变换操作,得到行恢复矩阵;
根据所述行恢复矩阵和RS纠删算法进行数据恢复运算,得到已恢复数据块;
当所述数量为一个时,根据数据存储的数据位特征对所述待恢复数据块对应的校验矩阵行进行变换操作,得到行恢复矩阵,包括:
当所述数量为一个时,获取所述待恢复数据块对应的校验矩阵行;
根据所述数据位特征和所述校验矩阵行进行置换处理,得到所述行恢复矩阵;
还包括:
当所述数量为两个时,获取所述待恢复数据块对应的两个校验矩阵行组成的第一校验矩阵;
将所述第一校验矩阵中所有待恢复数据块对应的元素之外的元素进行取负,得到第二校验矩阵;
对所述第二校验矩阵的对角元素进行计算,得到计算所需逆矩阵的行恢复矩阵;
根据所述行恢复矩阵和RS纠删算法进行数据恢复运算,得到已恢复数据块;
还包括:
当所述数量大于两个时,根据矩阵降阶算法对所有待恢复数据块对应的校验矩阵行进行划分处理,得到数量为一的校验行矩阵和数量为二的校验行矩阵的组合;
分别对数量为一的校验行矩阵和数量为二的校验行矩阵进行行变换处理,得到对应的恢复行列式;
根据反向降阶算法对所有恢复行列式进行合成,得到恢复矩阵;
根据所述恢复矩阵和RS纠删算法进行数据恢复运算,得到已恢复数据块。
2.一种数据修复装置,其特征在于,包括:
数据块数量获取模块,用于确定待修复数据中待恢复数据块的数量;
校验行变换模块,用于当所述数量为一个时,根据数据存储的数据位特征对所述待恢复数据块对应的校验矩阵行进行变换操作,得到行恢复矩阵;
数据恢复运算模块,用于根据所述行恢复矩阵和RS纠删算法进行数据恢复运算,得到已恢复数据块;
所述校验行变换模块,包括:
矩阵行获取单元,用于当所述数量为一个时,获取所述待恢复数据块对应的校验矩阵行;
行置换单元,用于根据所述数据位特征和所述校验矩阵行进行置换处理,得到所述行恢复矩阵;
还包括:两块数据恢复模块,用于当所述数量为两个时,获取所述待恢复数据块对应的两个校验矩阵行组成的第一校验矩阵;将所述第一校验矩阵中所有待恢复数据块对应的元素之外的元素进行取负,得到第二校验矩阵;对所述第二校验矩阵的对角元素进行计算,得到计算所需逆矩阵的行恢复矩阵;根据所述行恢复矩阵和RS纠删算法进行数据恢复运算,得到已恢复数据块;
多块数据恢复模块,用于当所述数量大于两个时,根据矩阵降阶算法对所有待恢复数据块对应的校验矩阵行进行划分处理,得到数量为一的校验行矩阵和数量为二的校验行矩阵的组合;分别对数量为一的校验行矩阵和数量为二的校验行矩阵进行行变换处理,得到对应的恢复行列式;根据反向降阶算法对所有恢复行列式进行合成,得到恢复矩阵;根据所述恢复矩阵和RS纠删算法进行数据恢复运算,得到已恢复数据块。
3.一种计算设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1所述的数据修复方法的步骤。
4.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1所述的数据修复方法的步骤。
CN202010821262.XA 2020-08-14 2020-08-14 一种数据修复方法及相关装置 Active CN112000512B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010821262.XA CN112000512B (zh) 2020-08-14 2020-08-14 一种数据修复方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010821262.XA CN112000512B (zh) 2020-08-14 2020-08-14 一种数据修复方法及相关装置

Publications (2)

Publication Number Publication Date
CN112000512A CN112000512A (zh) 2020-11-27
CN112000512B true CN112000512B (zh) 2022-08-02

Family

ID=73473225

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010821262.XA Active CN112000512B (zh) 2020-08-14 2020-08-14 一种数据修复方法及相关装置

Country Status (1)

Country Link
CN (1) CN112000512B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113505019B (zh) * 2021-05-14 2024-01-26 山东云海国创云计算装备产业创新中心有限公司 一种纠删码数据及校验恢复方法、装置、设备及可读介质
CN114153393A (zh) * 2021-11-29 2022-03-08 山东云海国创云计算装备产业创新中心有限公司 一种数据编码方法、系统、设备以及介质
CN114244376B (zh) * 2022-02-22 2022-05-13 苏州浪潮智能科技有限公司 一种数据编码方法、系统、设备以及介质
CN115454711A (zh) * 2022-11-11 2022-12-09 苏州浪潮智能科技有限公司 一种分布式存储系统中纠删数据恢复的方法、装置及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110431531A (zh) * 2017-03-16 2019-11-08 华为技术有限公司 存储控制器、数据处理芯片及数据处理方法
CN111078460A (zh) * 2019-11-18 2020-04-28 北京中电兴发科技有限公司 一种快速纠删码计算方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7386754B2 (en) * 2003-10-16 2008-06-10 Seagate Technology Llc Method and apparatus to improve magnetic disc drive reliability using excess un-utilized capacity

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110431531A (zh) * 2017-03-16 2019-11-08 华为技术有限公司 存储控制器、数据处理芯片及数据处理方法
CN111078460A (zh) * 2019-11-18 2020-04-28 北京中电兴发科技有限公司 一种快速纠删码计算方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
REC2: Restoration Method Using Combination of Replication and Erasure Coding;Hitoshi Kamei 等;《2016 5th IIAI International Congress on Advanced Applied Informatics (IIAI-AAI)》;20160901;第936-941页 *
基于纠删码的区块链系统区块文件存储模型的研究与应用;赵国锋 等;《信息网络安全》;20191231;第28-35页 *

Also Published As

Publication number Publication date
CN112000512A (zh) 2020-11-27

Similar Documents

Publication Publication Date Title
CN112000512B (zh) 一种数据修复方法及相关装置
US11531593B2 (en) Data encoding, decoding and recovering method for a distributed storage system
JP4224022B2 (ja) イナクティブ化によって連鎖反応符号を復号化するためのシステムおよび処理
CN112860475B (zh) 基于rs纠删码的校验块恢复方法、装置、系统及介质
CN112799875B (zh) 基于高斯消元进行校验恢复的方法、系统、设备及介质
US20120023362A1 (en) System and method for exact regeneration of a failed node in a distributed storage system
CN111697976B (zh) 一种基于分布式存储的rs纠删快速解码方法及系统
CN111858169B (zh) 一种数据恢复方法、系统及相关组件
CN105353974B (zh) 一种适用于磁盘阵列及分布式存储系统的二容错编码方法
JP5805727B2 (ja) 縮退故障を有するメモリセルに対応するためのデータ符号化及び復号化
CN114153651B (zh) 一种数据编码方法、装置、设备及介质
CN113505019A (zh) 一种纠删码数据及校验恢复方法、装置、设备及可读介质
CN111858142A (zh) 一种数据处理方法、装置及电子设备和存储介质
CN109358980B (zh) 一种对数据更新和单磁盘错误修复友好的raid6编码方法
CN105808170A (zh) 一种能够以最小磁盘读写修复单磁盘错误的raid6编码方法
CN114281270A (zh) 一种数据存储方法、系统、设备以及介质
CN112181707B (zh) 分布式存储数据恢复调度方法、系统、设备及存储介质
CN115454712B (zh) 一种校验码恢复方法、系统、电子设备及存储介质
US20170161141A1 (en) Method and apparatus for correcting data in multiple ecc blocks of raid memory
CN106911793B (zh) I/o优化的分布式存储数据修复方法
KR102007163B1 (ko) 인코더, 디코더 및 이를 포함하는 반도체 장치
CN115269258A (zh) 一种数据恢复的方法和系统
CN112000509B (zh) 一种基于向量指令的纠删码编码方法、系统及装置
CN107615248B (zh) 分布式数据存储方法、控制设备和系统
CN114244376B (zh) 一种数据编码方法、系统、设备以及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant