CN116560915A - 数据恢复方法、装置、电子设备及存储介质 - Google Patents
数据恢复方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116560915A CN116560915A CN202310843223.3A CN202310843223A CN116560915A CN 116560915 A CN116560915 A CN 116560915A CN 202310843223 A CN202310843223 A CN 202310843223A CN 116560915 A CN116560915 A CN 116560915A
- Authority
- CN
- China
- Prior art keywords
- code element
- intermediate result
- data
- surviving
- 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.)
- Granted
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Detection And Correction Of Errors (AREA)
Abstract
本发明提供一种数据恢复方法、装置、电子设备及存储介质,涉及数据处理技术领域,所述方法包括:获取磁盘存储器中的待恢复数据,待恢复数据包括至少一个幸存信息码元及幸存校验码元;将每一个幸存信息码元与待恢复数据关联的丢失信息码元对应的循环矩阵相乘,生成第一中间结果;将第一中间结果与幸存校验码元进行异或运算,生成第二中间结果;基于第二中间结果及丢失信息码元对应的逆矩阵,确定丢失信息码元;基于幸存信息码元及丢失信息码元,确定待恢复数据关联的丢失校验码元。上述方法中,基于柯西矩阵、布尔循环矩阵理论,能够从多个故障错误中恢复数据,且存储效率达到最优,通过引入循环矩阵表示,使恢复数据仅涉及异或运算,复杂度较低。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据恢复方法、装置、电子设备及存储介质。
背景技术
大规模存储系统均是由众多小容量(TB级)存储体(下称盘),通过高速互联构建起来的。虽然单个盘品质稳定,平均无故障工作时间可达20万小时,但对于EB(106TB)级存储系统来讲,平均每天都会有盘发生故障,即使是PB(103TB)级存储系统,平均每月也会有盘发生故障。因此大规模存储系统,离不开从盘故障中恢复数据的编码技术。此类编码通常称为纠删码。
相关技术中,通常采用磁盘阵列(Redundant Arrays of Independent Disks,RAID)技术对盘中的数据进行恢复。但是,RAID技术每组仅能容忍2个磁盘故障。
因此,如何从多个磁盘故障中恢复数据,是目前亟待解决的问题。
发明内容
针对现有技术存在的问题,本发明实施例提供一种数据恢复方法、装置、电子设备及存储介质。
本发明提供一种数据恢复方法,包括:
获取磁盘存储器中的待恢复数据,所述待恢复数据包括至少一个幸存信息码元及幸存校验码元;
将每一个幸存信息码元与所述待恢复数据关联的丢失信息码元对应的布尔循环矩阵相乘,生成第一中间结果;
将所述第一中间结果与所述幸存校验码元进行异或运算,生成第二中间结果;
基于所述第二中间结果及所述丢失信息码元对应的柯西逆矩阵,确定所述丢失信息码元;
基于所述幸存信息码元及所述丢失信息码元,确定所述待恢复数据关联的丢失校验码元。
可选地,所述将每一个幸存信息码元与所述丢失信息码元对应的布尔循环矩阵相乘,生成第一中间结果,包括:
对每一个幸存信息码元进行预处理,生成预处理后的幸存信息码元;
将每一个预处理后的幸存信息码元与所述布尔循环矩阵相乘,生成第三中间结果;
对所述第三中间结果进行异或运算,生成所述第一中间结果。
可选地,所述对每一个幸存信息码元进行预处理,生成预处理后的幸存信息码元,包括:
在每一个幸存信息码元的头部添加1比特位,生成所述预处理后的幸存信息码元。
可选地,所述基于所述幸存信息码元及所述丢失信息码元,确定所述待恢复数据关联的丢失校验码元,包括:
将每一个幸存信息码元及每一个丢失信息码元与所述布尔循环矩阵相乘,生成第四中间结果;
基于所述第四中间结果,生成所述丢失校验码元。
可选地,所述将每一个幸存信息码元及每一个丢失信息码元与所述布尔循环矩阵相乘,生成第四中间结果,包括:
在每一个幸存信息码元及每一个丢失信息码元的头部添加1比特位,生成目标信息码元;
将所述目标信息码元与所述布尔循环矩阵相乘,生成第五中间结果;
将所述第五中间结果进行异或运算,生成所述第四中间结果。
可选地,所述基于所述第四中间结果,生成所述丢失校验码元,包括:
删除所述第四中间结果的头部1比特位,生成所述丢失校验码元。
可选地,所述方法还包括:
在所述第四中间结果的汉明重量为奇数的情况下,将所述第四中间结果的每一个元素的符号位进行取反处理。
本发明还提供一种数据恢复装置,包括:
获取模块,用于获取磁盘存储器中的待恢复数据,所述待恢复数据包括至少一个幸存信息码元及幸存校验码元;
第一生成模块,用于将每一个幸存信息码元与所述待恢复数据关联的丢失信息码元对应的布尔循环矩阵相乘,生成第一中间结果;
第二生成模块,用于将所述第一中间结果与所述幸存校验码元进行异或运算,生成第二中间结果;
第一确定模块,用于基于所述第二中间结果及所述丢失信息码元对应的柯西逆矩阵,确定所述丢失信息码元;
第二确定模块,用于基于所述幸存信息码元及所述丢失信息码元,确定所述待恢复数据关联的丢失校验码元。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据恢复方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据恢复方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述数据恢复方法。
本发明提供的数据恢复方法、装置、电子设备及存储介质,通过获取磁盘存储器中的待恢复数据,其中,待恢复数据包括至少一个幸存信息码元及幸存校验码元,然后将每一个幸存信息码元与待恢复数据关联的丢失信息码元对应的布尔循环矩阵相乘,生成第一中间结果,将第一中间结果与幸存校验码元进行异或运算,生成第二中间结果,基于第二中间结果及丢失信息码元对应的柯西逆矩阵,确定丢失信息码元,最后基于幸存信息码元及丢失信息码元,确定待恢复数据关联的丢失校验码元;通过上述方法,基于柯西矩阵、布尔循环矩阵理论,能够从多个故障错误中恢复数据,且存储效率达到最优;另外,通过引入循环矩阵表示,使恢复数据仅涉及异或运算,数据恢复的复杂度较低。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的数据恢复方法的流程示意图之一;
图2是本发明提供的数据恢复方法的流程示意图之二;
图3是本发明提供的数据恢复装置的结构示意图;
图4是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于更加清晰地理解本申请各实施例,首先对一些相关的知识进行如下介绍。
纠删码技术通过将存储系统中的少量盘作为校验盘,使存储系统具备容错能力,这牺牲了一些存储效率。理论上,具有从m个盘故障中恢复数据能力,至少需要m个校验盘。如果系统配置了m个校验盘,就具备了从任意m个盘故障中恢复完整数据的能力,则称该系统的编码是存储效率最优的。
RAID技术是采用纠删码解决此类问题的现实方案,其编码的存储效率达到最优,编码、恢复数据代价也较低。但现有的RAID技术方案,还存在一些局限,如RAID6每组仅能容忍2个磁盘故障。
本发明提供的数据恢复方法、装置、电子设备及存储介质,能够从多于3个的删除(或故障)错误中恢复数据,存储效率达到最优,编码、恢复计算复杂度较低。
下面对本发明实施例所涉及的理论知识进行介绍。
一、柯西矩阵及其性质
柯西矩阵可以通过以下公式(1)表示:
(1)
其中 为某一域/>中的两组元素,每组元素两两不同,且满足对任意/>,/>。显然,柯西矩阵的任意子矩阵还是柯西矩阵。
柯西矩阵具有下述重要性质:
定理1、任一n阶柯西方阵
(2)
的行列式为。
由上述定理1可知,任意柯西方阵的行列式不等于零。因此有:
推论1、柯西矩阵的任意子方阵可逆。
柯西矩阵除了任意子方阵可逆的良好性质外,还有其逆矩阵容易计算的特点。
定理2、n阶柯西矩阵求逆的计算复杂度为。
设n阶柯西矩阵的逆矩阵为/>,则由克莱姆法则,有/>。
其中,矩阵为矩阵/>删除第j行和第i列之后的余下矩阵,对每个/>,令:
;
由定理1,有。
故,。
而的计算复杂度为/>,计算出/>之后,再计算/>的计算复杂度为/>,因此计算柯西矩阵逆矩阵/>的计算复杂度为/>。
二、布尔循环矩阵及其性质
n阶布尔循环矩阵可以通过以下公式(3)表示:
(3)
其中为二元域/>上的n维向量。将此矩阵记为/>。
令,记/>,则/>就是/>阶全0矩阵,/>就是/>阶单位矩阵/>,每个0至2 n -1间的数都对应一个n阶布尔循环矩阵。
令,记/>,则/>的第j列就是多项式/>的系数向量,每个/>中的次数小于n的多项式都对应一个n阶布尔循环矩阵。
对向量,运算/> ,相当于向量循环下移一项,运算/> ,相当于向量循环下移i项。
取素数,定义多项式环/>,取其子集;则有:
引理1、所有元素的系数向量集,为码长为p的二元偶校验码。
由引理1可知,实际上是/>上次数小于p的偶数项多项式的集合。记;则有:
引理2、环同构于/>。
当p取Artin素数,即以2为本原根的素数时,不可约,此时/>同构于有限域。
引理3、对Artin素数p,为有限域,同构于/>。
引理4、运算 的计算复杂度为/>次异或。
实际上,设,则有:
;
;
其中,表示/>模/>的剩余。
易见:若是上述方程的解,则/>也是上述方程的解。故不妨取/>,则可依次求得/>,...,/>,需p-1次异或,若/>不为零,则/>,又需p-1次异或。
因此,计算至多需要/>次异或运算。
例如,设;
;
则:
;
取:
;
最后。
有了以上准备,取阶柯西矩阵,通过以下公式(4)表示:
(4)
其中,取值/>,/>取值/>,取值0,并用布尔循环矩阵/>代替/>,则得到一个二元域/>上的/>阶矩阵,并称之为循环柯西矩阵。具体通过以下公式(5)表示:
(5)
再取上/>矩阵/> ,和/>阶矩阵/> 否则/>。
令,则以/>为生成矩阵,可得有限域/>上一码长为/>,维数为/>的线性码,称之为循环柯西码。
循环柯西码,将宽度为比特的n个符号/>,编码为同宽度的n+m个符号/>:
。
该码具有下述定理保证的良好性质及编、解码效率。
定理3、当p为Artin素数,时,码长为/>,维数为n的循环柯西码为最优纠删码,即从任意n个码元,可恢复其余m个码元。
证明:只需证明已知一个码字的任意n个符号,可还原整个码字的n+m个符号。设已知的n个符号中有u个为冗余校验符号,其余n-u个为消息符号/>,则未知的消息符号个数为u个,设为/>,由编码过程,有:
;
记矩阵为/>循环柯西矩阵,可逆。略去最后的变换/>,则消息符号可以通过以下公式(6)表示:
(6)
再由编码公式,可还原整个码字。
循环柯西码不仅在存储效率上达到最优,而且其编码、解码复杂度也很低。
定理4、码长为,维数为n的循环柯西码的编码复杂度为/>次符号异或。
证明:因为是系统码,编码只需计算。
其中:1、只是对/>添加1比特,使之成为/>中重量为偶数的向量,结果仍记为/>,此处理需要/>次异或运算;
2、计算,需要计算/>,由引理7需要/>次异或,因此计算/>需要/>次符号异或。
3、计算需要/>次符号异或。
合计需要次符号异或。
定理5、码长为,维数为n的循环柯西码的解码复杂度为<9nuw次比特异或,其中u为遭破坏的消息符号数。
证明:根据公式(6),还原丢失的u个消息符号,需要:
1、先对幸存的n-u个消息符号,做左乘R处理,需次异或运算,结果仍记为/>。
2、根据定理4的证明,计算需要/>次比特异或。
3、与向量相加需要/>次比特异或。
4、最后计算。由定理2,可得:
;
4.1、计算并保存,需要/>次异或。
4.2、计算需要/>次比特异或。
4.3、再乘以需要/>次异或。
4.4、计算个,共需要/>次异或。
合计需。
下面结合图1至图2对本发明提供的数据恢复方法进行具体描述。图1是本发明提供的数据恢复方法的流程示意图之一,参见图1所示,该方法包括步骤101-步骤105,其中:
步骤101、获取磁盘存储器中的待恢复数据,所述待恢复数据包括至少一个幸存信息码元及幸存校验码元。
首先需要说明的是,本发明的执行主体可以是能够实现数据恢复的任何电子设备,例如可以为智能手机、智能手表、台式电脑、手提电脑等任何一种。
为了实现从多个(例如3个)磁盘错误中恢复数据,在本发明实施例中,首先需要获取磁盘存储其中的待恢复数据。
设磁盘存储器中存储有个码元的原始数据,即,/>个信息码元以及/>个校验码元的编码码字,取Artin素数p,满足/>。
假如丢失了v个码元,其中,v不多于m。在丢失的v个码元中,有u个为信息码元;则,待恢复数据中包括的幸存信息码元为n-u个,可以表示为/>;幸存校验码元为w个,w=v-u,可以表示为/>。
实际应用中,可以基于待恢复数据中的幸存信息码元及幸存校验码元,还原出完整的原始数据;原始数据可以表示为,其中,/>为信息码元,/>为校验码元。
步骤102、将每一个幸存信息码元与所述待恢复数据关联的丢失信息码元对应的布尔循环矩阵相乘,生成第一中间结果。
在本发明实施例中,布尔循环矩阵可以表示为:;
其中:
;
。
将每一个幸存信息码元与待恢复数据关联的丢失信息码元对应的布尔循环矩阵相乘,即,依次取/>,计算/>乘以/>,其中,进而生成的第一中间结果可以表示为/>。
步骤103、将所述第一中间结果与所述幸存校验码元进行异或运算,生成第二中间结果。
在本发明实施例中,将第一中间结果与幸存校验码元进行异或运算,具体可以通过以下公式(7)表示:
(7)
其中,表示第二中间结果中第i个元素,/>表示第二中间结果。
步骤104、基于所述第二中间结果及所述丢失信息码元对应的柯西逆矩阵,确定所述丢失信息码元。
在本发明实施例中,柯西矩阵可以表示为。柯西逆矩阵中的任一元素可以通过以下步骤确定:/>
[1]、对,计算/>。
[2]、对,计算/>。
[3]、对,计算/>。
[4]、对,计算/>。
[5]、对,/>;其中,/>表示柯西逆矩阵中第i行第j列的元素。
基于第二中间结果及待恢复数据对应的柯西逆矩阵,确定待恢复数据关联的丢失信息码元,具体可以通过以下公式(8)实现:
=/>(8)
其中,表示u个丢失信息码元。
步骤105、基于所述幸存信息码元及所述丢失信息码元,确定所述待恢复数据关联的丢失校验码元。
在本发明实施例中,在确定出丢失的信息码元后,基于幸存信息码元及丢失信息码元,利用编码算法即可计算出待恢复数据关联的丢失校验码元。
本发明提供的数据恢复方法,通过获取磁盘存储器中的待恢复数据,其中,待恢复数据包括至少一个幸存信息码元及幸存校验码元,然后将每一个幸存信息码元与待恢复数据关联的丢失信息码元对应的布尔循环矩阵相乘,生成第一中间结果,将第一中间结果与幸存校验码元进行异或运算,生成第二中间结果,基于第二中间结果及丢失信息码元对应的柯西逆矩阵,确定丢失信息码元,最后基于幸存信息码元及丢失信息码元,确定待恢复数据关联的丢失校验码元;通过上述方法,基于柯西矩阵、布尔循环矩阵理论,能够从多个故障错误中恢复数据,且存储效率达到最优;另外,通过引入循环矩阵表示,使恢复数据仅涉及异或运算,数据恢复的复杂度较低。
可选地,所述将每一个幸存信息码元与所述待恢复数据关联的丢失信息码元对应的布尔循环矩阵相乘,生成第一中间结果,具体可以通过以下步骤1)-步骤3)实现:
步骤1)、对每一个幸存信息码元进行预处理,生成预处理后的幸存信息码元。
由于每一个幸存信息码元中的汉明重量不一定为偶数,因此,需要对每一个幸存信息码元进行预处理,使得每一个幸存信息码元的汉明重量为偶数,预处理后的幸存信息码元仍记为。
可选地,所述对每一个幸存信息码元进行预处理,生成预处理后的幸存信息码元,可以通过以下步骤实现:
在每一个幸存信息码元的头部添加1比特,生成所述预处理后的幸存信息码元。
也就是说,对幸存的个信息码元/>,作左乘R处理,即在头部添加1比特,使之汉明重量为偶数,结果仍记为/>。
步骤2)、将每一个预处理后的幸存信息码元与所述布尔循环矩阵相乘,生成第三中间结果。
依次取,计算循环矩阵/>乘以/>,得到第三中间结果;其中/>。
步骤3)、对所述第三中间结果进行异或运算,生成所述第一中间结果;第一中间结果可以表示为。
可选地,所述基于所述幸存信息码元及所述丢失信息码元,确定所述待恢复数据关联的丢失校验码元,具体通过以下步骤实现:
步骤1)将每一个幸存信息码元及每一个丢失信息码元与所述布尔循环矩阵相乘,生成第四中间结果。
步骤2)基于所述第四中间结果,生成所述丢失校验码元。
在本发明实施例中,首先计算布尔循环矩阵乘以/>,生成第四中间结果/>。然后基于/>,生成丢失校验码元/>。
可选地,所述将每一个幸存信息码元及每一个丢失信息码元与所述布尔循环矩阵相乘,生成第四中间结果,具体通过以下步骤实现:
步骤1)、在每一个幸存信息码元及每一个丢失信息码元的头部添加1比特位,生成目标信息码元。
步骤2)、将所述目标信息码元与所述布尔循环矩阵相乘,生成第五中间结果。
在本发明实施例中,第五中间结果具体可以通过以下步骤[1]-步骤[4]实现:
步骤[1]、基于上述引理4,令,设/>的比特序为/>,若/>,则令/>;否则令/>。
令,并置计数器/>。
步骤[2]、计算,更新/>。
步骤[3]、,如果s小于p,返回执行步骤[2]。
步骤[4]、在s不小于p的情况下,将作为第五中间结果。
步骤3)、将所述第五中间结果进行异或运算,生成所述第四中间结果。
可选地,在所述第四中间结果的汉明重量为奇数的情况下,将所述第四中间结果的每一个元素的符号位进行取反处理。
可选地,所述基于所述第四中间结果,生成所述丢失校验码元,具体通过以下步骤实现:
删除所述第四中间结果的头部1比特位,生成所述丢失校验码元。
图2是本发明提供的数据恢复方法的流程示意图之二,参见图2所示,该方法包括步骤201-步骤211,其中:
步骤201、获取磁盘存储器中的待恢复数据,其中,待恢复数据包括至少一个幸存信息码元及幸存校验码元。
步骤202、在每一个幸存信息码元的头部添加1比特,生成预处理后的幸存信息码元。
步骤203、将每一个预处理后的幸存信息码元与待恢复数据关联的丢失信息码元对应的布尔循环矩阵相乘,生成第三中间结果。
步骤204、对第三中间结果进行异或运算,生成第一中间结果。
步骤205、将第一中间结果与幸存校验码元进行异或运算,生成第二中间结果。
步骤206、基于第二中间结果及丢失信息码元对应的柯西逆矩阵,确定丢失信息码元。
步骤207、在每一个幸存信息码元及每一个丢失信息码元的头部添加1比特,生成目标信息码元。
步骤208、将目标信息码元与布尔循环矩阵相乘,生成第五中间结果。
步骤209、将第五中间结果进行异或运算,生成第四中间结果。
步骤210、在第四中间结果的汉明重量为奇数的情况下,将第四中间结果的每一个元素的符号位进行取反处理。
步骤211、删除第四中间结果的头部1比特位,生成丢失校验码元。
为了进一步详细说明本发明提供的数据恢复方法,下面结合具体实施例进行详细说明。
一、恢复丢失信息码元算法(解码算法)
设原始数据中,有个码元的编码码字;取Artin素数p,满足/>。
假如,丢失了v(不多于m)个码元,其中有u个为信息码元,设幸存信息码元为/>,幸存校验码元为/>。
步骤1、对幸存的个信息码元/>,作左乘R处理,即在头部添加1比特,使之汉明重量为偶数,结果仍记为/>。
步骤2、依次取,计算循环矩阵/>乘以/>,其中。
步骤3、按j异或累计步骤2中计算结果,得到。/>
步骤4、计算。
步骤5、计算矩阵逆,其中/>。
具体地:
;
。
步骤5.1、对,计算/>。
步骤5.2、对,计算/>。
步骤5.3、对,计算/>。
步骤5.4、对,计算/>。
步骤5.5、对,计算/>。
步骤5.6、计算,结果就是丢失的u个信息码元/>。
在计算出丢失信息码元之后,利用编码算法计算丢失校验码元。
二、恢复校验码元算法(编码算法)
步骤1、对要编码的n个消息码元,在每个的头部添加1比特,使之汉明重量为偶数,结果仍记为/>。
步骤2、计算循环矩阵乘以/>。
步骤2.1、令,设/>的比特序列为/>,若/>,则令/>;否则令/>。令/>,并置计数器/>。
步骤2.2、计算,更新/>。
步骤2.3、,如果s小于p,返回执行步骤2.2。
步骤2.4、在s不小于p时,将作为计算结果。
步骤3、异或累积步骤2计算结果,得到。
步骤4、如果的汉明重量为奇数,则将其各位取反,结果仍记为/>。
步骤5、丢掉的头部一位,结果作为一个校验码元,仍记为/>。
最后,将作为编码结果。/>
面结合样例对本发明提供的数据恢复方法进行进一步介绍。
取Artin素数p=11,取参数n=6, m=4,设要编码的信息为60比特,以10比特为单位划分为6个分组,具体通过以下公式(9)表示:
(9)
取
;
构造阶柯西矩阵,通过以下公式(10)表示:
(10)
一、编码算法
首先将每个信息分组扩展成11比特,使之汉明重量为偶数,通过以下公式(11)表示:
(11)
结果仍记为。
其次计算校验码元;
结果通过以下公式(12)表示:
(12)
二、解码算法(数据恢复)
设第1,3,4,7个码元丢失。首先计算下述方程组的右边
结果得(0x3bd,0x232,0x3c0)。
其次计算上述方程组左边系数矩阵M的逆,结果通过以下公式(13)表示:
(13)
再次,先恢复出丢失的消息码元,具体通过以下公式(14)实现:
(14)
再利用编码公式,重新计算出丢失的校验码元,具体通过以下公式(15)实现:
(15)
最后,将求出的丢失码元结果,去掉头部1比特,保留其余10比特,得到正确结果。
下面对本发明提供的数据恢复装置进行描述,下文描述的数据恢复装置与上文描述的数据恢复方法可相互对应参照。图3是本发明提供的数据恢复装置的结构示意图,如图3所示,该数据恢复装置300包括:获取模块301、第一生成模块302、第二生成模块303、第一确定模块304及第二确定模块305,其中:
获取模块301,用于获取磁盘存储器中的待恢复数据,所述待恢复数据包括至少一个幸存信息码元及幸存校验码元;
第一生成模块302,用于将每一个幸存信息码元与所述待恢复数据关联的丢失信息码元对应的布尔循环矩阵相乘,生成第一中间结果;
第二生成模块303,用于将所述第一中间结果与所述幸存校验码元进行异或运算,生成第二中间结果;
第一确定模块304,用于基于所述第二中间结果及所述丢失信息码元对应的柯西逆矩阵,确定所述待恢复数据关联的丢失信息码元;
第二确定模块305,用于基于所述幸存信息码元及所述丢失信息码元,确定所述待恢复数据关联的丢失校验码元。
本发明提供的数据恢复装置,通过获取磁盘存储器中的待恢复数据,其中,待恢复数据包括至少一个幸存信息码元及幸存校验码元,然后将每一个幸存信息码元与待恢复数据关联的丢失信息码元对应的布尔循环矩阵相乘,生成第一中间结果,将第一中间结果与幸存校验码元进行异或运算,生成第二中间结果,基于第二中间结果及丢失信息码元对应的柯西逆矩阵,确定丢失信息码元,最后基于幸存信息码元及丢失信息码元,确定待恢复数据关联的丢失校验码元;通过上述方法,基于柯西矩阵、布尔循环矩阵理论,能够从多个故障错误中恢复数据,且存储效率达到最优;另外,通过引入循环矩阵表示,使恢复数据仅涉及异或运算,数据恢复的复杂度较低。
可选地,所述第一生成模块302,进一步用于:
对每一个幸存信息码元进行预处理,生成预处理后的幸存信息码元;
将每一个预处理后的幸存信息码元与所述布尔循环矩阵相乘,生成第三中间结果;
对所述第三中间结果进行异或运算,生成所述第一中间结果。
可选地,所述第一生成模块302,进一步用于:
在每一个幸存信息码元的头部添加1比特位,生成所述预处理后的幸存信息码元。
可选地,所述第二确定模块305,进一步用于:
将每一个幸存信息码元及每一个丢失信息码元与所述布尔循环矩阵相乘,生成第四中间结果;
基于所述第四中间结果,生成所述丢失校验码元。
可选地,所述第二确定模块305,进一步用于:
在每一个幸存信息码元及每一个丢失信息码元的头部添加1比特位,生成目标信息码元;
将所述目标信息码元与所述布尔循环矩阵相乘,生成第五中间结果;
将所述第五中间结果进行异或运算,生成所述第四中间结果。
可选地,所述第二确定模块305,进一步用于:
删除所述第四中间结果的头部1比特位,生成所述丢失校验码元。
可选地,所述装置还包括:
处理模块,用于在所述第四中间结果的汉明重量为奇数的情况下,将所述第四中间结果的每一个元素的符号位进行取反处理。
图4是本发明提供的电子设备的结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行数据恢复方法,该方法包括:获取磁盘存储器中的待恢复数据,所述待恢复数据包括至少一个幸存信息码元及幸存校验码元;将每一个幸存信息码元与所述待恢复数据关联的丢失信息码元对应的布尔循环矩阵相乘,生成第一中间结果;将所述第一中间结果与所述幸存校验码元进行异或运算,生成第二中间结果;基于所述第二中间结果及所述丢失信息码元对应的柯西逆矩阵,确定所述丢失信息码元;基于所述幸存信息码元及所述丢失信息码元,确定所述待恢复数据关联的丢失校验码元。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的数据恢复方法,该方法包括:获取磁盘存储器中的待恢复数据,所述待恢复数据包括至少一个幸存信息码元及幸存校验码元;将每一个幸存信息码元与所述待恢复数据关联的丢失信息码元对应的布尔循环矩阵相乘,生成第一中间结果;将所述第一中间结果与所述幸存校验码元进行异或运算,生成第二中间结果;基于所述第二中间结果及所述丢失信息码元对应的柯西逆矩阵,确定所述丢失信息码元;基于所述幸存信息码元及所述丢失信息码元,确定所述待恢复数据关联的丢失校验码元。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的数据恢复方法,该方法包括:获取磁盘存储器中的待恢复数据,所述待恢复数据包括至少一个幸存信息码元及幸存校验码元;将每一个幸存信息码元与所述待恢复数据关联的丢失信息码元对应的布尔循环矩阵相乘,生成第一中间结果;将所述第一中间结果与所述幸存校验码元进行异或运算,生成第二中间结果;基于所述第二中间结果及所述丢失信息码元对应的柯西逆矩阵,确定所述丢失信息码元;基于所述幸存信息码元及所述丢失信息码元,确定所述待恢复数据关联的丢失校验码元。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种数据恢复方法,其特征在于,包括:
获取磁盘存储器中的待恢复数据,所述待恢复数据包括至少一个幸存信息码元及幸存校验码元;
将每一个幸存信息码元与所述待恢复数据关联的丢失信息码元对应的布尔循环矩阵相乘,生成第一中间结果;
将所述第一中间结果与所述幸存校验码元进行异或运算,生成第二中间结果;
基于所述第二中间结果及所述丢失信息码元对应的柯西逆矩阵,确定所述丢失信息码元;
基于所述幸存信息码元及所述丢失信息码元,确定所述待恢复数据关联的丢失校验码元。
2.根据权利要求1所述的数据恢复方法,其特征在于,所述将每一个幸存信息码元与所述待恢复数据关联的丢失信息码元对应的布尔循环矩阵相乘,生成第一中间结果,包括:
对每一个幸存信息码元进行预处理,生成预处理后的幸存信息码元;
将每一个预处理后的幸存信息码元与所述布尔循环矩阵相乘,生成第三中间结果;
对所述第三中间结果进行异或运算,生成所述第一中间结果。
3.根据权利要求2所述的数据恢复方法,其特征在于,所述对每一个幸存信息码元进行预处理,生成预处理后的幸存信息码元,包括:
在每一个幸存信息码元的头部添加1比特位,生成所述预处理后的幸存信息码元。
4.根据权利要求1至3中任一项所述的数据恢复方法,其特征在于,所述基于所述幸存信息码元及所述丢失信息码元,确定所述待恢复数据关联的丢失校验码元,包括:
将每一个幸存信息码元及每一个丢失信息码元与所述布尔循环矩阵相乘,生成第四中间结果;
基于所述第四中间结果,生成所述丢失校验码元。
5.根据权利要求4所述的数据恢复方法,其特征在于,所述将每一个幸存信息码元及每一个丢失信息码元与所述布尔循环矩阵相乘,生成第四中间结果,包括:
在每一个幸存信息码元及每一个丢失信息码元的头部添加1比特位,生成目标信息码元;
将所述目标信息码元与所述布尔循环矩阵相乘,生成第五中间结果;
将所述第五中间结果进行异或运算,生成所述第四中间结果。
6.根据权利要求4所述的数据恢复方法,其特征在于,所述基于所述第四中间结果,生成所述丢失校验码元,包括:
删除所述第四中间结果的头部1比特位,生成所述丢失校验码元。
7.根据权利要求4所述的数据恢复方法,其特征在于,所述方法还包括:
在所述第四中间结果的汉明重量为奇数的情况下,将所述第四中间结果的每一个元素的符号位进行取反处理。
8.一种数据恢复装置,其特征在于,包括:
获取模块,用于获取磁盘存储器中的待恢复数据,所述待恢复数据包括至少一个幸存信息码元及幸存校验码元;
第一生成模块,用于将每一个幸存信息码元与所述待恢复数据关联的丢失信息码元对应的布尔循环矩阵相乘,生成第一中间结果;
第二生成模块,用于将所述第一中间结果与所述幸存校验码元进行异或运算,生成第二中间结果;
第一确定模块,用于基于所述第二中间结果及所述丢失信息码元对应的柯西逆矩阵,确定所述丢失信息码元;
第二确定模块,用于基于所述幸存信息码元及所述丢失信息码元,确定所述待恢复数据关联的丢失校验码元。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述数据恢复方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述数据恢复方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310843223.3A CN116560915B (zh) | 2023-07-11 | 2023-07-11 | 数据恢复方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310843223.3A CN116560915B (zh) | 2023-07-11 | 2023-07-11 | 数据恢复方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116560915A true CN116560915A (zh) | 2023-08-08 |
CN116560915B CN116560915B (zh) | 2023-09-19 |
Family
ID=87491942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310843223.3A Active CN116560915B (zh) | 2023-07-11 | 2023-07-11 | 数据恢复方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116560915B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102833040A (zh) * | 2012-08-03 | 2012-12-19 | 中兴通讯股份有限公司 | 解码处理方法、装置及编解码系统 |
CN105007286A (zh) * | 2014-04-23 | 2015-10-28 | 苏宁云商集团股份有限公司 | 解码方法和装置及云存储方法和系统 |
CN105335150A (zh) * | 2014-08-13 | 2016-02-17 | 苏宁云商集团股份有限公司 | 纠删码数据的快速编解码方法和系统 |
WO2017041232A1 (zh) * | 2015-09-08 | 2017-03-16 | 广东超算数据安全技术有限公司 | 一种二进制循环码的编解码框架 |
CN110457161A (zh) * | 2019-07-26 | 2019-11-15 | 成都信息工程大学 | 一种高效高可靠的大数据存储系统、方法、计算机程序 |
US20200081778A1 (en) * | 2018-09-11 | 2020-03-12 | Goke Us Research Laboratory | Distributed storage system, method and apparatus |
US20200374237A1 (en) * | 2017-09-08 | 2020-11-26 | Huawei Technologies Co., Ltd. | Method for Processing Data and Device |
WO2021209037A1 (zh) * | 2020-04-16 | 2021-10-21 | 华为技术有限公司 | 数据恢复方法及装置 |
-
2023
- 2023-07-11 CN CN202310843223.3A patent/CN116560915B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102833040A (zh) * | 2012-08-03 | 2012-12-19 | 中兴通讯股份有限公司 | 解码处理方法、装置及编解码系统 |
CN105007286A (zh) * | 2014-04-23 | 2015-10-28 | 苏宁云商集团股份有限公司 | 解码方法和装置及云存储方法和系统 |
CN105335150A (zh) * | 2014-08-13 | 2016-02-17 | 苏宁云商集团股份有限公司 | 纠删码数据的快速编解码方法和系统 |
WO2017041232A1 (zh) * | 2015-09-08 | 2017-03-16 | 广东超算数据安全技术有限公司 | 一种二进制循环码的编解码框架 |
US20200374237A1 (en) * | 2017-09-08 | 2020-11-26 | Huawei Technologies Co., Ltd. | Method for Processing Data and Device |
US20200081778A1 (en) * | 2018-09-11 | 2020-03-12 | Goke Us Research Laboratory | Distributed storage system, method and apparatus |
CN110457161A (zh) * | 2019-07-26 | 2019-11-15 | 成都信息工程大学 | 一种高效高可靠的大数据存储系统、方法、计算机程序 |
WO2021209037A1 (zh) * | 2020-04-16 | 2021-10-21 | 华为技术有限公司 | 数据恢复方法及装置 |
CN113541856A (zh) * | 2020-04-16 | 2021-10-22 | 华为技术有限公司 | 数据恢复方法及装置 |
Non-Patent Citations (1)
Title |
---|
任海科;胡银丰;: "基于柯西RS编码的网络丢包恢复算法研究", 计算机工程, no. 12 * |
Also Published As
Publication number | Publication date |
---|---|
CN116560915B (zh) | 2023-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10146618B2 (en) | Distributed data storage with reduced storage overhead using reduced-dependency erasure codes | |
CN103888148B (zh) | 一种动态阈值比特翻转的ldpc码硬判决译码方法 | |
US9356626B2 (en) | Data encoding for data storage system based on generalized concatenated codes | |
CN111078460B (zh) | 一种快速纠删码计算方法 | |
EP1944898A2 (en) | System for distributing data by dividing the same into plural pieces of partial data | |
WO2018140316A1 (en) | A method and system utilizing quintuple parity to provide fault tolerance | |
JP5805727B2 (ja) | 縮退故障を有するメモリセルに対応するためのデータ符号化及び復号化 | |
CN111858169B (zh) | 一种数据恢复方法、系统及相关组件 | |
CN112000512B (zh) | 一种数据修复方法及相关装置 | |
CN113391946B (zh) | 一种分布式存储中的纠删码的编解码方法 | |
CN113505019A (zh) | 一种纠删码数据及校验恢复方法、装置、设备及可读介质 | |
TW202001920A (zh) | 在資料儲存系統中用於改善資料回復之方法及裝置 | |
CN103703446A (zh) | 网络存储中抗拜占庭失效的数据重构、失效数据恢复方法及装置 | |
WO2017185681A1 (zh) | 一种gel码字结构编码和译码的方法、装置及相关设备 | |
CN112181707B (zh) | 分布式存储数据恢复调度方法、系统、设备及存储介质 | |
CN116560915B (zh) | 数据恢复方法、装置、电子设备及存储介质 | |
WO2017041232A1 (zh) | 一种二进制循环码的编解码框架 | |
WO2018029212A1 (en) | Regenerating locally repairable codes for distributed storage systems | |
CN115237662A (zh) | 一种分布式存储节点纠错方法及系统 | |
CN107665152B (zh) | 一类纠删码的译码方法 | |
Feng et al. | EEO: An efficient MDS-like RAID-6 code for parallel implementation | |
Manasse et al. | A reed-solomon code for disk storage, and efficient recovery computations for erasure-coded disk storage | |
US9236890B1 (en) | Decoding a super-code using joint decoding of underlying component codes | |
US20140317162A1 (en) | Using Carry-less Multiplication (CLMUL) to Implement Erasure Code | |
CN112633712A (zh) | 一种基于grs码的在线投标方法及系统 |
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 |