CN112860475A - 基于rs纠删码的校验块恢复方法、装置、系统及介质 - Google Patents
基于rs纠删码的校验块恢复方法、装置、系统及介质 Download PDFInfo
- Publication number
- CN112860475A CN112860475A CN202110154891.6A CN202110154891A CN112860475A CN 112860475 A CN112860475 A CN 112860475A CN 202110154891 A CN202110154891 A CN 202110154891A CN 112860475 A CN112860475 A CN 112860475A
- Authority
- CN
- China
- Prior art keywords
- data
- block
- recovery
- recovered
- check block
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
Abstract
本申请公开了一种基于RS纠删码的校验块恢复方法、装置、系统及计算机可读存储介质。其中,方法包括当检测到存在对数据块和校验块均进行数据恢复的RS数据恢复请求,对待恢复数据块进行数据恢复;将完成数据块恢复操作后的输出数据进行回传,并执行数据块落盘写入操作。根据回传的所有数据块数据和待恢复校验块对应的编码矩阵数据计算得到待恢复校验块。本申请在基于RS纠删码的校验块恢复过程中,不需要先存储计算得到数据块再进行校验块恢复,也即无需进行额外的数据读取便可完成校验数据的恢复。
Description
技术领域
本申请涉及分布式存储技术领域,特别是涉及一种基于RS纠删码的校验块恢复方法、装置、系统及计算机可读存储介质。
背景技术
面对海量数据的存储要求,分布式存储以其成本低廉、可扩展性好等优势逐渐取代了统一存储的主导地位,在理论研究和实际应用方面得到了越来越多的关注。分布式存储系统多以廉价的磁盘作为存储节点,每个存储节点的可靠性往往不会很高。此外,一个分布式存储系统通常包含很多节点,由于软硬件故障、人为失误等原因,系统常常会发生节点失效的情况。为了提高分布式存储系统的数据可靠性,保证数据收集节点能以很高的概率实现原始文件的重构,需要在存储原始数据的基础上,额外存储一定数量的冗余,使得在出现部分节点失效的情况下,系统仍然可以正常运行,数据收集节点仍然可以对原始文件实现解码恢复。同时,为了维持系统的可靠性,需要对失效的节点及时进行修复,因此,设计一个良好的节点修复机制十分重要。
纠删码(Erasure Code)属于编码理论中的一种前向纠错技术,最早应用于通信领域以解决数据传输中的丢失与损耗这类问题。由于纠删码技术在防止数据丢失取得了较好的效果,而且其在保证相同可靠性的前提下有效地降低存储开销,因此被引入存储领域,且被广泛地应用于各大存储系统以及数据中心例如微软的Azure、Facebook的F4等。纠删码的种类众多,在实际存储系统中较常见的有应用在分布式环境下的RS码(Reed-SolomonCode,里德所罗门码)。RS码是基于有限域的一种编码算法,编码是指:给定k个数据块(Datablock)D1、D2…Dk,和一个正整数r,RS根据k个数据块生成r个编码块(Code block),C1、C2…Cr。而解码是指:对于任意的k和r,从k个原始数据块和r个编码块中任取k块就能解码出原始数据,即RS最多容忍r个数据块或者编码块同时丢失,也就是说,RS码与参数k和参数r相关。给定两个正整数k和r,RS码将k个数据块编码为r个额外的校验块。而r个校验块基于范德蒙矩阵或柯西矩阵进行编码的方式就称为利用范德蒙矩阵或柯西矩阵编码的RS纠删码,(1)式为基于范德蒙矩阵的RS纠删码,(2)式为基于柯西矩阵的RS纠删码,具体编码过程如下所示:
式(1)的k*k矩阵对应的就是k个原始数据块,(2)式的r*k矩阵对应的就是编码矩阵,通过与原始数据D1到Dk相乘,得到新添加的P1到Pr就是编码所得到的r个校验数据。当其中任意多个数据在传输中出错或丢失,需要纠错时,即用剩余数据对应矩阵的逆矩阵与数据相乘,即会得到原始数据块D1到Dk,推导过程可参阅相关技术的记载,此处不再赘述。
RS编解码中涉及到矩阵求逆,其可利用矩阵求逆可以恢复得到所有的编码所用到的数据块,以D1到Dr这r个数据丢失,进行解码为例,通过采用式(3)这种RS纠删码恢复数据方式进行解码:
由式(3)可知,纠删码的核心概念是构建一个可逆的编码矩阵用以产生校验数据,其逆矩阵可经过计算恢复原始数据。常见的RS纠删码使用的是上面介绍的柯西矩阵或范德蒙矩阵,这样的优势是所得到的矩阵肯定可逆,其任意子矩阵也都可逆,并且矩阵的大小扩充简单。但实际情况下,编码数据块和编码后生成的校验数据块都是存储在硬盘或其他存储介质中,而这些存储介质出错的几率是相同的,不会因为存储的是编码数据块或是校验数据块而有所区别。因此在实际工作环境中,除了数据块外,同样存在对校验块进行恢复的需求。
相关技术在恢复RS码的校验块时,通常是RS纠删完成运算,得到数据块后,然后利用编码的流程,重做编码,最后得到校验块。但是这样的处理方案会需要先求数据块,然后对其进行存储,再进行针对校验块的编码运算,以得到校验块。也就是说,相关技术基于RS的纠删解决方案中都只能先恢复数据块,然后对数据块进行编码得到校验块。但是在实际的操作中,数据块的数据量非常大,求得数据块后进行存储需要花费大量时间,而且损耗存储模块。另外,这种等待数据块恢复后的校验块运算,需要分两步进行实现,使数据的吞吐率会降低一倍。
鉴于此,如何解决相关技术在对RS纠删码的校验块进行恢复时,由于需要存储计算得到的数据块而导致的一系列弊端问题,是所属领域技术人员需要解决的技术问题。
发明内容
本申请提供了一种基于RS纠删码的校验块恢复方法、装置、系统及计算机可读存储介质,基于RS纠删码的校验块恢复过程中,不需要先存储计算得到数据块再进行校验块恢复,也即无需进行额外的数据读取便可完成校验数据的恢复。
为解决上述技术问题,本发明实施例提供以下技术方案:
本发明实施例一方面提供了一种基于RS纠删码的校验块恢复方法,包括:
当检测到存在对数据块和校验块均进行数据恢复的RS数据恢复请求,对待恢复数据块进行数据恢复;
将完成数据块恢复操作后的输出数据进行回传,并执行数据块落盘写入操作;
根据回传的所有数据块数据和待恢复校验块对应的编码矩阵数据计算得到所述待恢复校验块。
可选的,所述当检测到存在对数据块和校验块均进行数据恢复的RS数据恢复请求之前,还包括:
当检测存在所述待恢复校验块,判断是否存在至少一个不完整或出错的数据块;
若所有数据块均完整且没有错误,生成仅对所述待恢复校验块进行数据恢复的校验块数据恢复请求;
若存在至少一个不完整或出错的数据块,生成对所述待恢复数据块和所述待恢复校验块均进行数据恢复的RS数据恢复请求。
可选的,所述生成仅对所述待恢复校验块进行数据恢复的校验块数据恢复请求之后,还包括:
基于所有数据块,利用相同编码方法重新计算得到校验块,以作为所述待恢复校验块的恢复数据。
可选的,所述根据回传数据和待恢复校验块对应的编码矩阵信息得到所述待恢复校验块之后,还包括:
在第二个时钟到达时,执行校验块落盘写入操作。
本发明实施例另一方面提供了一种基于RS纠删码的校验块恢复装置,包括:
数据块恢复模块,用于当检测到存在对数据块和校验块均进行数据恢复的RS数据恢复请求,对待恢复数据块进行数据恢复;
数据回传模块,用于将完成数据块恢复操作后的输出数据进行回传;
数据落盘操作模块,用于执行数据块落盘写入操作;
校验块恢复模块,用于根据回传的所有数据块数据和待恢复校验块对应的编码矩阵数据计算得到所述待恢复校验块。
可选的,还包括指令下发模块,所述指令下发模块包括:
判断子模块,用于当检测存在所述待恢复校验块,判断是否存在至少一个不完整或出错的数据块;
请求下发子模块,用于若所有数据块均完整且没有错误,生成仅对所述待恢复校验块进行数据恢复的校验块数据恢复请求;若存在至少一个不完整或出错的数据块,生成对所述待恢复数据块和所述待恢复校验块均进行数据恢复的RS数据恢复请求。
可选的,所述校验块恢复模块还用于当接收到所述校验块数据恢复请求,基于所有数据块,利用相同编码方法重新计算得到校验块,以作为所述待恢复校验块的恢复数据。
本发明实施例还提供了一种基于RS纠删码的校验块恢复装置,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如前任一项所述基于RS纠删码的校验块恢复方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有基于RS纠删码的校验块恢复程序,所述基于RS纠删码的校验块恢复程序被处理器执行时实现如前任一项所述基于RS纠删码的校验块恢复方法的步骤。
本发明实施例最后还提供了一种基于RS纠删码的校验块恢复系统,包括调度模块、乘法器、数据缓存器、存储磁盘、矩阵求逆计算器、数据回传模块和数据落盘模块;
所述乘法器包括第一数据接口、第二数据接口和第三数据接口,所述第一数据接口接收所述调度模块调度的待恢复校验块的编码矩阵数据,所述第二数据接口分别与所述数据缓冲器、所述矩阵求逆计算器和所述数据落盘模块相连;所述第三数据接口作为数据回传接口;
所述数据缓存器用于存储从所述存储磁盘中读取的存活的数据块和/或校验块;
所述矩阵求逆计算器用于对存活的数据块和/或存活的校验块各自对应的编码矩阵数据进行求逆计算;
所述数据回传模块用于将所述乘法器完成数据块恢复操作后的输出数据再通过所述第三数据接口回传至所述乘法器;
所述乘法器用于根据矩阵求逆计算器的计算结果和所述数据缓存器中的数据对待恢复数据块进行数据恢复;并根据所述数据回传模块回传的所有数据块数据和待恢复校验块对应的编码矩阵数据计算得到所述待恢复校验块;
所述数据落盘模块用于执行数据块落盘写入操作和校验块落盘写入操作。
本申请提供的技术方案的优点在于,当除了数据块需要恢复,还有校验块需要额外恢复时,针对需求对原有存储的编码矩阵部分行列式关系进行调度,然后通过对恢复的数据块及完整未出错的数据块和待恢复校验块对应的编码矩阵数据进行矩阵的乘加运算,即可得到所需要的校验块,无需额外增加去存储恢复所得数据块的存储操作和再编码操作,解决了相关技术在对RS纠删码的校验块进行恢复时,由于需要存储计算得到的数据块而导致的一系列弊端问题。调用的矩阵行列关系数据量小,代价只需要数据块总数个乘加运算即可实现,运算的实现通过流水线方式将运算串联起来,保证用户数据块需求的前提下,基于RS纠删码的校验块恢复过程中,无需进行额外的数据读取即可完成校验数据的恢复,保证设备可以支持下次工作。调度灵活,适用于各种情况,可以一步完成复杂情况的不同需求的输出计算。
此外,本发明实施例还针对基于RS纠删码的校验块恢复方法提供了相应的实现装置、系统及计算机可读存储介质,进一步使得所述方法更具有实用性,所述装置、系统及计算机可读存储介质具有相应的优点。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
为了更清楚的说明本发明实施例或相关技术的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于RS纠删码的校验块恢复方法的流程示意图;
图2为本发明实施例提供的基于RS纠删码的校验块恢复装置的一种具体实施方式结构图;
图3为本发明实施例提供的基于RS纠删码的校验块恢复装置的另一种具体实施方式结构图;
图4为本发明实施例提供的基于RS纠删码的校验块恢复系统的一种具体实施方式结构图;
图5为本发明实施例根据一示例性实施例示出的基于RS纠删码的校验块恢复系统的一种结构示意图;
图6为本发明实施例根据一示例性实施例示出的基于RS纠删码的校验块恢复系统的另一种结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
在介绍了本发明实施例的技术方案后,下面详细的说明本申请的各种非限制性实施方式。
首先参见图1,图1为本发明实施例提供的一种基于RS纠删码的校验块恢复方法的流程示意图,本发明实施例可包括以下内容:
S101:当检测到存在对数据块和校验块均进行数据恢复的RS数据恢复请求,对待恢复数据块进行数据恢复。
本实施例中,RS数据恢复请求用于指示当前除了需要恢复数据块,还需要恢复校验块,当然,待恢复数据块和待恢复校验块的总数不能超过编码块的总个数值。本步骤可采用任何一种数据块恢复方法对待恢复数据执行数据恢复操作,例如可通过高斯消元方式执行RS纠删操作,具体可参阅相关技术记载的实现过程,此处,便不再赘述。
S102:将完成数据块恢复操作后的输出数据进行回传,并执行数据块落盘写入操作。
在S101步骤恢复完待恢复数据块后,系统会将所有数据块进行输出,为了避免后续还需重新读取这些数据,本步骤将将输出的数据全部回传,并在回传结束后将所有数据块进行落盘,这样在恢复校验块时,就无需对恢复的数据块进行存储。
S103:根据回传的所有数据块数据和待恢复校验块对应的编码矩阵数据计算得到待恢复校验块。
在得到所有正确的数据块后,基于待恢复校验块对应的编码矩阵数据通过简单的多个矩阵元素的乘加运算即可得到待恢复校验块,乘加运算的个数与数据块总数相同。
在本发明实施例提供的技术方案中,当除了数据块需要恢复,还有校验块需要额外恢复时,针对需求对原有存储的编码矩阵部分行列式关系进行调度,然后通过对恢复的数据块及完整未出错的数据块和待恢复校验块对应的编码矩阵数据进行矩阵的乘加运算,即可得到所需要的校验块,无需额外增加去存储恢复所得数据块的存储操作和再编码操作,解决了相关技术在对RS纠删码的校验块进行恢复时,由于需要存储计算得到的数据块而导致的一系列弊端问题。调用的矩阵行列关系数据量小,代价只需要数据块总数个乘加运算即可实现,运算的实现通过流水线方式将运算串联起来,保证用户数据块需求的前提下,基于RS纠删码的校验块恢复过程中,无需进行额外的数据读取即可完成校验数据的恢复,保证设备可以支持下次工作。调度灵活,适用于各种情况,可以一步完成复杂情况的不同需求的输出计算。
需要说明的是,本申请中各步骤之间没有严格的先后执行顺序,只要符合逻辑上的顺序,则这些步骤可以同时执行,也可按照某种预设顺序执行,图1只是一种示意方式,并不代表只能是这样的执行顺序。
可以理解的是,有时并不需要对数据块进行恢复,为了适用于不同的应用场景,基于上述实施例,还可包括:
当检测存在待恢复校验块,判断是否存在至少一个不完整或出错的数据块;
若所有数据块均完整且没有错误,生成仅对待恢复校验块进行数据恢复的校验块数据恢复请求;若存在至少一个不完整或出错的数据块,生成对待恢复数据块和待恢复校验块均进行数据恢复的RS数据恢复请求。
对于仅需恢复校验块的应用场景,可基于所有数据块,利用相同编码方法重新计算得到校验块,以作为待恢复校验块的恢复数据。此处相同编码方法是指最初所采用的编码方法,若校验块是基于范德蒙矩阵进行编码的方式,则本实施例还采用范德蒙矩阵对数据块进行编码得到所需恢复的校验块,若校验块为柯西矩阵编码的RS纠删码,则此处还采用柯西矩阵对数据块进行编码得到所需恢复的校验块。
在实际操作中,虽然数据块和校验块的恢复同样重要,但在客户使用数据方面,落盘优先级上依然以数据块更重要,校验块的落盘仅是为了下次发生错误时进行RS运算需要。因此本实施例可首先将恢复的数据块输出进行落盘,而在同时利用空闲的乘法器实现增补运算,实现简单的n个乘加运算,得到校验块的恢复,然后再第二拍落盘。本实施例在第一个时钟到达时落盘数据块,在第二个时钟到达时,执行校验块落盘写入操作。从而在保证了用户数据需求的前提下,为后面可能的错误完成校验块的恢复。
本发明实施例还针对基于RS纠删码的校验块恢复方法提供了相应的装置,进一步使得方法更具有实用性。其中,装置可从功能模块的角度和硬件的角度分别说明。下面对本发明实施例提供的基于RS纠删码的校验块恢复装置进行介绍,下文描述的基于RS纠删码的校验块恢复装置与上文描述的基于RS纠删码的校验块恢复方法可相互对应参照。
基于功能模块的角度,参见图2,图2为本发明实施例提供的基于RS纠删码的校验块恢复装置在一种具体实施方式下的结构图,该装置可包括:
数据块恢复模块201,用于当检测到存在对数据块和校验块均进行数据恢复的RS数据恢复请求,对待恢复数据块进行数据恢复;
数据回传模块202,用于将完成数据块恢复操作后的输出数据进行回传;
数据落盘操作模块203,用于执行数据块落盘写入操作;
校验块恢复模块204,用于根据回传的所有数据块数据和待恢复校验块对应的编码矩阵数据计算得到待恢复校验块。
可选的,在本实施例的一些实施方式中,上述装置例如还可以包括指令下发模块,指令下发模块可包括:
判断子模块,用于当检测存在待恢复校验块,判断是否存在至少一个不完整或出错的数据块;
请求下发子模块,用于若所有数据块均完整且没有错误,生成仅对待恢复校验块进行数据恢复的校验块数据恢复请求;若存在至少一个不完整或出错的数据块,生成对待恢复数据块和待恢复校验块均进行数据恢复的RS数据恢复请求。
作为一种可选的实施方式,校验块恢复模块204还可用于当接收到校验块数据恢复请求,基于所有数据块,利用相同编码方法重新计算得到校验块,以作为待恢复校验块的恢复数据。
作为本实施例的另一些实施方式中,上述数据落盘操作模块203例如还可以包括:在第二个时钟到达时,执行校验块落盘写入操作。
本发明实施例基于RS纠删码的校验块恢复装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例基于RS纠删码的校验块恢复过程中,不需要先存储计算得到数据块再进行校验块恢复,也即无需进行额外的数据读取便可完成校验数据的恢复。
上文中提到的基于RS纠删码的校验块恢复装置是从功能模块的角度描述,进一步的,本申请还提供一种基于RS纠删码的校验块恢复装置,是从硬件角度描述。图3为本申请实施例提供的另一种基于RS纠删码的校验块恢复装置的结构图。如图3所示,该装置包括存储器30,用于存储计算机程序;
处理器31,用于执行计算机程序时实现如上述实施例提到的基于RS纠删码的校验块恢复方法的步骤。
其中,处理器31可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器31可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器31也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器31可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器31还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器30可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器30还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器30至少用于存储以下计算机程序301,其中,该计算机程序被处理器31加载并执行之后,能够实现前述任一实施例公开的基于RS纠删码的校验块恢复方法的相关步骤。另外,存储器30所存储的资源还可以包括操作系统302和数据303等,存储方式可以是短暂存储或者永久存储。其中,操作系统302可以包括Windows、Unix、Linux等。数据303可以包括但不限于基于RS纠删码的校验块恢复结果对应的数据等。
在一些实施例中,基于RS纠删码的校验块恢复装置还可包括有显示屏32、输入输出接口33、通信接口34、电源35以及通信总线36。
本领域技术人员可以理解,图3中示出的结构并不构成对基于RS纠删码的校验块恢复装置的限定,可以包括比图示更多或更少的组件,例如还可包括传感器37。
本发明实施例基于RS纠删码的校验块恢复装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例基于RS纠删码的校验块恢复过程中,不需要先存储计算得到数据块再进行校验块恢复,也即无需进行额外的数据读取便可完成校验数据的恢复。
可以理解的是,如果上述实施例中的基于RS纠删码的校验块恢复方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、磁碟或者光盘等各种可以存储程序代码的介质。
基于此,本发明实施例还提供了一种计算机可读存储介质,存储有基于RS纠删码的校验块恢复程序,基于RS纠删码的校验块恢复程序被处理器执行时如上任意一实施例基于RS纠删码的校验块恢复方法的步骤。
本发明实施例计算机可读存储介质的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例基于RS纠删码的校验块恢复过程中,不需要先存储计算得到数据块再进行校验块恢复,也即无需进行额外的数据读取便可完成校验数据的恢复。
本发明实施例还提供了一种基于RS纠删码的校验块恢复系统,请参见图4,基于RS纠删码的校验块恢复系统可包括调度模块41、乘法器42、数据缓存器43、存储磁盘44、矩阵求逆计算器45、数据回传模块46和数据落盘模块47。乘法器42可包括第一数据接口421、第二数据接口422和第三数据接口423。第一数据接口421接收调度模块41调度的待恢复校验块的编码矩阵数据。第二数据接口422分别与数据缓冲器43、矩阵求逆计算器44和数据落盘模块47相连,数据缓存器43与存储磁盘44相连。第三数据接口433作为数据回传接口。
数据缓存器43用于存储从存储磁盘44中读取的存活的数据块和/或存活的校验块。此处,存活的数据块和存活的校验块是指完整的且没有出错的数据块和校验块。矩阵求逆计算器45用于对存活的数据块和/或存活的校验块各自所对应的编码矩阵数据进行求逆计算。数据回传模块46用于将乘法器42完成数据块恢复操作后的输出数据再通过第三数据接口433回传至乘法器42。乘法器42用于根据矩阵求逆计算器45的计算结果和数据缓存器45中的数据对待恢复数据块进行数据恢复;并根据数据回传模块46回传的所有数据块数据和待恢复校验块对应的编码矩阵数据计算得到待恢复校验块。数据落盘模块47用于执行数据块落盘写入操作和校验块落盘写入操作。
本发明实施例基于RS纠删码的校验块恢复系统的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例基于RS纠删码的校验块恢复过程中,不需要先存储计算得到数据块再进行校验块恢复,也即无需进行额外的数据读取便可完成校验数据的恢复。
为了使所属领域技术人员更加清楚明白本申请的技术方案,本申请还结合图5和图6以应用在分布式存储系统中作为示意性例子阐述整个技术方案,可包括下述内容:
在本实施例中,以4个数据块D1,D2,D3,D4以及2个校验块P1,P2为例,校验块以简单的范德蒙举例,则其编码矩阵的关系为:
编码矩阵H中共有6行:R1-R6,其中R1-R4对应的是D1-D4的单位阵,R5,R6对应的是生成P1,P2的校验阵。因此校验块P1,P2的生成关系可表示为:
也即P1=D1+D2+D3+D4,P2=D1+2D2+4D3+8D4;
以数据块D2和D3损毁需要恢复为例,请参阅图5,其硬件工作流程为:从存储硬盘阵列选择剩余的四个存活磁盘或者是说正确磁盘,在这里即是D1、D4、P1和P2,将其读取进缓存模块等待运算,然后选择D1、D4、P1和P2对应的矩阵行列式,组成矩阵输入到高斯消元法求逆运算模块进行求逆,这里选择的矩阵即是[R1;R4;R5;R6]。此时系统经过上述计算流程后经过乘法器输出结果为全部数据块即:且此时只能恢复数据块
还以上述4+2的RS为例,当校验块有错误需要恢复时,基于RS纠删码原理可知,须知4+2的RS支持最多恢复两个块,而当P1、P2都错误时,存活D1、D2、D3和D4,直接进行编码即可。因此以此时P2需要恢复,以任一数据块D2错误亦需要恢复为例。本实施例在上述基于高斯消元法的传统RS硬件模块即图5的前提下,判断可知除了可恢复的数据块,校验块P2需要恢复,基于图6所示,需要进行如下操作:
调度需要恢复的校验块对应的编码矩阵信息,此时P2错误,编码矩阵使用的是范德蒙矩阵,则调用为R6=[1 2 4 8]。将图5中计算得到的输出数据进行输出,同时回传乘法器右侧的数据输入端口,乘法器右侧读取第一步调用的矩阵信息,这里即是R6=[1 2 48]。在第一个时钟将乘法器恢复所得的数据块落盘写入,同时乘法器加算一步n=4的矩阵元素的乘加运算,所得到的值即为P2,然后在第二个时钟写入校验块落盘,n为数据块总数量。
对比图5和图6,图6中虚线部分为数据块恢复用模块,实线部分为当有校验块需要恢复时的增补模块。由图可知,本实施例所提出的校验块恢复功能并没有在电路上额外增加运算模块,只是对现有模块增加了一定的调度,通过同样的运算实现得到校验块的运算。增补模块适用于各种方式的RS纠删恢复,其校验块的调度方式都是一样的。在无需再次读取数据的前提下,进行纠删校验块的恢复。在只有数据块错误时,电路的实现与常规高斯消元法一致,不会带来额外的损耗,而在特殊情况,针对有校验块需要恢复的需求,通过增加对矩阵的调度,和n次乘加运算,即可得到校验块的输出落盘。运算的实现通过流水线方式将运算串联起来,保证用户数据块需求的前提下,不做额外的运算模块和存储模块增加,实现校验恢复,保证设备可以支持下次工作。调度灵活,适用于各种情况,可以一步完成复杂情况的不同需求的输出计算。
由上可知,本实施例针对分布式存储下的RS纠删码,面向实际存储应用中,可能存在需要对数据块和校验块同时进行恢复的运算需求,提出图6所示的一种基于高斯消元纠删恢复的硬件电路,该电路可以分别针对传统的高斯消元纠删恢复数据块和同时恢复数据块以及校验块进行不同操作。在传统高斯消元下,恢复数据块无需增加冗余操作,即可实现数据块的恢复。在同时需要恢复数据块以及校验块的情况下,通过增加一次矩阵的特殊调用,和乘法运算,即可输出得到最终的特定输出需求。该电路无需对海量数据进行多次读取,针对存储特性实现了改进,以应对各种复杂需求。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上对本申请所提供的一种基于RS纠删码的校验块恢复方法、装置、系统及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (10)
1.一种基于RS纠删码的校验块恢复方法,其特征在于,包括:
当检测到存在对数据块和校验块均进行数据恢复的RS数据恢复请求,对待恢复数据块进行数据恢复;
将完成数据块恢复操作后的输出数据进行回传,并执行数据块落盘写入操作;
根据回传的所有数据块数据和待恢复校验块对应的编码矩阵数据计算得到所述待恢复校验块。
2.根据权利要求1所述的基于RS纠删码的校验块恢复方法,其特征在于,所述当检测到存在对数据块和校验块均进行数据恢复的RS数据恢复请求之前,还包括:
当检测存在所述待恢复校验块,判断是否存在至少一个不完整或出错的数据块;
若所有数据块均完整且没有错误,生成仅对所述待恢复校验块进行数据恢复的校验块数据恢复请求;
若存在至少一个不完整或出错的数据块,生成对所述待恢复数据块和所述待恢复校验块均进行数据恢复的RS数据恢复请求。
3.根据权利要求2所述的基于RS纠删码的校验块恢复方法,其特征在于,所述生成仅对所述待恢复校验块进行数据恢复的校验块数据恢复请求之后,还包括:
基于所有数据块,利用相同编码方法重新计算得到校验块,以作为所述待恢复校验块的恢复数据。
4.根据权利要求3所述的基于RS纠删码的校验块恢复方法,其特征在于,所述根据回传数据和待恢复校验块对应的编码矩阵信息得到所述待恢复校验块之后,还包括:
在第二个时钟到达时,执行校验块落盘写入操作。
5.一种基于RS纠删码的校验块恢复装置,其特征在于,包括:
数据块恢复模块,用于当检测到存在对数据块和校验块均进行数据恢复的RS数据恢复请求,对待恢复数据块进行数据恢复;
数据回传模块,用于将完成数据块恢复操作后的输出数据进行回传;
数据落盘操作模块,用于执行数据块落盘写入操作;
校验块恢复模块,用于根据回传的所有数据块数据和待恢复校验块对应的编码矩阵数据计算得到所述待恢复校验块。
6.根据权利要求5所述的基于RS纠删码的校验块恢复装置,其特征在于,还包括指令下发模块,所述指令下发模块包括:
判断子模块,用于当检测存在所述待恢复校验块,判断是否存在至少一个不完整或出错的数据块;
请求下发子模块,用于若所有数据块均完整且没有错误,生成仅对所述待恢复校验块进行数据恢复的校验块数据恢复请求;若存在至少一个不完整或出错的数据块,生成对所述待恢复数据块和所述待恢复校验块均进行数据恢复的RS数据恢复请求。
7.根据权利要求6所述的基于RS纠删码的校验块恢复装置,其特征在于,所述校验块恢复模块还用于当接收到所述校验块数据恢复请求,基于所有数据块,利用相同编码方法重新计算得到校验块,以作为所述待恢复校验块的恢复数据。
8.一种基于RS纠删码的校验块恢复装置,其特征在于,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1至4任一项所述基于RS纠删码的校验块恢复方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有基于RS纠删码的校验块恢复程序,所述基于RS纠删码的校验块恢复程序被处理器执行时实现如权利要求1至4任一项所述基于RS纠删码的校验块恢复方法的步骤。
10.一种基于RS纠删码的校验块恢复系统,其特征在于,包括调度模块、乘法器、数据缓存器、存储磁盘、矩阵求逆计算器、数据回传模块和数据落盘模块;
所述乘法器包括第一数据接口、第二数据接口和第三数据接口,所述第一数据接口接收所述调度模块调度的待恢复校验块的编码矩阵数据,所述第二数据接口分别与所述数据缓冲器、所述矩阵求逆计算器和所述数据落盘模块相连;所述第三数据接口作为数据回传接口;
所述数据缓存器用于存储从所述存储磁盘中读取的存活的数据块和/或校验块;
所述矩阵求逆计算器用于对存活的数据块和/或存活的校验块各自对应的编码矩阵数据进行求逆计算;
所述数据回传模块用于将所述乘法器完成数据块恢复操作后的输出数据再通过所述第三数据接口回传至所述乘法器;
所述乘法器用于根据矩阵求逆计算器的计算结果和所述数据缓存器中的数据对待恢复数据块进行数据恢复;并根据所述数据回传模块回传的所有数据块数据和待恢复校验块对应的编码矩阵数据计算得到所述待恢复校验块;
所述数据落盘模块用于执行数据块落盘写入操作和校验块落盘写入操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110154891.6A CN112860475B (zh) | 2021-02-04 | 2021-02-04 | 基于rs纠删码的校验块恢复方法、装置、系统及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110154891.6A CN112860475B (zh) | 2021-02-04 | 2021-02-04 | 基于rs纠删码的校验块恢复方法、装置、系统及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112860475A true CN112860475A (zh) | 2021-05-28 |
CN112860475B CN112860475B (zh) | 2023-02-28 |
Family
ID=75986617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110154891.6A Active CN112860475B (zh) | 2021-02-04 | 2021-02-04 | 基于rs纠删码的校验块恢复方法、装置、系统及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112860475B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114153651A (zh) * | 2022-02-09 | 2022-03-08 | 苏州浪潮智能科技有限公司 | 一种数据编码方法、装置、设备及介质 |
CN114296648A (zh) * | 2021-12-24 | 2022-04-08 | 天翼云科技有限公司 | 分布式云存储数据的维护方法、装置、设备和可读介质 |
CN114333917A (zh) * | 2021-12-30 | 2022-04-12 | 山东云海国创云计算装备产业创新中心有限公司 | 基于rdp纠删算法的数据纠错方法、装置、设备及介质 |
CN114442950A (zh) * | 2022-01-21 | 2022-05-06 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据恢复方法、系统、装置及计算机可读存储介质 |
CN114527937A (zh) * | 2022-01-21 | 2022-05-24 | 厦门大学 | 一种在加密情境下减少非易失性内存写放大方法 |
CN115993941A (zh) * | 2023-03-23 | 2023-04-21 | 陕西中安数联信息技术有限公司 | 分布式数据存储纠错方法及系统 |
WO2023138289A1 (zh) * | 2022-01-18 | 2023-07-27 | 苏州浪潮智能科技有限公司 | 一种数据存储方法、装置、设备及计算机可读存储介质 |
WO2024001126A1 (zh) * | 2022-06-28 | 2024-01-04 | 苏州元脑智能科技有限公司 | 一种纠删码融合方法、系统、电子设备及非易失性可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100218037A1 (en) * | 2008-09-16 | 2010-08-26 | File System Labs Llc | Matrix-based Error Correction and Erasure Code Methods and Apparatus and Applications Thereof |
CN103067130A (zh) * | 2012-12-25 | 2013-04-24 | 哈尔滨工业大学 | 基于联合行列校验码和rs码的丢包恢复技术的无线通信方法 |
CN106201764A (zh) * | 2016-06-29 | 2016-12-07 | 北京三快在线科技有限公司 | 一种数据存储方法和装置、一种数据恢复方法和装置 |
CN111539870A (zh) * | 2020-02-25 | 2020-08-14 | 成都信息工程大学 | 一种基于纠删码的新媒体图像的篡改恢复方法及装置 |
CN112181707A (zh) * | 2020-08-21 | 2021-01-05 | 山东云海国创云计算装备产业创新中心有限公司 | 分布式存储数据恢复调度方法、系统、设备及存储介质 |
WO2021003822A1 (zh) * | 2019-07-11 | 2021-01-14 | 平安科技(深圳)有限公司 | 数据存储及恢复的方法、装置及计算机设备 |
-
2021
- 2021-02-04 CN CN202110154891.6A patent/CN112860475B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100218037A1 (en) * | 2008-09-16 | 2010-08-26 | File System Labs Llc | Matrix-based Error Correction and Erasure Code Methods and Apparatus and Applications Thereof |
CN103067130A (zh) * | 2012-12-25 | 2013-04-24 | 哈尔滨工业大学 | 基于联合行列校验码和rs码的丢包恢复技术的无线通信方法 |
CN106201764A (zh) * | 2016-06-29 | 2016-12-07 | 北京三快在线科技有限公司 | 一种数据存储方法和装置、一种数据恢复方法和装置 |
WO2021003822A1 (zh) * | 2019-07-11 | 2021-01-14 | 平安科技(深圳)有限公司 | 数据存储及恢复的方法、装置及计算机设备 |
CN111539870A (zh) * | 2020-02-25 | 2020-08-14 | 成都信息工程大学 | 一种基于纠删码的新媒体图像的篡改恢复方法及装置 |
CN112181707A (zh) * | 2020-08-21 | 2021-01-05 | 山东云海国创云计算装备产业创新中心有限公司 | 分布式存储数据恢复调度方法、系统、设备及存储介质 |
Non-Patent Citations (5)
Title |
---|
LI B 等: ""Modeling and verifying google file system"", 《IEEE INTERNATIONAL SYMPOSIUM ON HIGH ASSURANCE SYSTEMS ENGINEERING》 * |
TANG YINGJIE 等: ""Efficient fault reconstruction method based on network computation in erasure code storage system"", 《COMPUTER RESEARCH AND DEVELOPMENT》 * |
张科伦: "分布式系统中纠删码容错机制的研究与实现", 《计算机与现代化》 * |
曾赛峰等: "云存储环境下分组校验纠删码冗余算法研究", 《湖南工程学院学报(自然科学版)》 * |
李硕等: "基于局部重构码的RS编码算法研究", 《有线电视技术》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114296648A (zh) * | 2021-12-24 | 2022-04-08 | 天翼云科技有限公司 | 分布式云存储数据的维护方法、装置、设备和可读介质 |
CN114296648B (zh) * | 2021-12-24 | 2023-08-08 | 天翼云科技有限公司 | 分布式云存储数据的维护方法、装置、设备和可读介质 |
CN114333917B (zh) * | 2021-12-30 | 2023-11-03 | 山东云海国创云计算装备产业创新中心有限公司 | 基于rdp纠删算法的数据纠错方法、装置、设备及介质 |
CN114333917A (zh) * | 2021-12-30 | 2022-04-12 | 山东云海国创云计算装备产业创新中心有限公司 | 基于rdp纠删算法的数据纠错方法、装置、设备及介质 |
WO2023138289A1 (zh) * | 2022-01-18 | 2023-07-27 | 苏州浪潮智能科技有限公司 | 一种数据存储方法、装置、设备及计算机可读存储介质 |
CN114442950B (zh) * | 2022-01-21 | 2024-01-23 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据恢复方法、系统、装置及计算机可读存储介质 |
CN114442950A (zh) * | 2022-01-21 | 2022-05-06 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据恢复方法、系统、装置及计算机可读存储介质 |
CN114527937A (zh) * | 2022-01-21 | 2022-05-24 | 厦门大学 | 一种在加密情境下减少非易失性内存写放大方法 |
CN114527937B (zh) * | 2022-01-21 | 2023-11-21 | 厦门大学 | 一种在加密情境下减少非易失性内存写放大方法 |
WO2023151290A1 (zh) * | 2022-02-09 | 2023-08-17 | 苏州浪潮智能科技有限公司 | 一种数据编码方法、装置、设备及介质 |
CN114153651A (zh) * | 2022-02-09 | 2022-03-08 | 苏州浪潮智能科技有限公司 | 一种数据编码方法、装置、设备及介质 |
CN114153651B (zh) * | 2022-02-09 | 2022-04-29 | 苏州浪潮智能科技有限公司 | 一种数据编码方法、装置、设备及介质 |
WO2024001126A1 (zh) * | 2022-06-28 | 2024-01-04 | 苏州元脑智能科技有限公司 | 一种纠删码融合方法、系统、电子设备及非易失性可读存储介质 |
CN115993941A (zh) * | 2023-03-23 | 2023-04-21 | 陕西中安数联信息技术有限公司 | 分布式数据存储纠错方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112860475B (zh) | 2023-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112860475B (zh) | 基于rs纠删码的校验块恢复方法、装置、系统及介质 | |
CN104052576B (zh) | 一种云存储下基于纠错码的数据恢复方法 | |
US8489916B2 (en) | Multi-disk fault-tolerant system, method for generating a check block, and method for recovering a data block | |
CN111553473A (zh) | 数据冗余方法及执行数据冗余方法的神经网络处理器 | |
CN112000512B (zh) | 一种数据修复方法及相关装置 | |
CN111682874B (zh) | 一种数据恢复的方法、系统、设备及可读存储介质 | |
CN112799875B (zh) | 基于高斯消元进行校验恢复的方法、系统、设备及介质 | |
WO2023151290A1 (zh) | 一种数据编码方法、装置、设备及介质 | |
CN113297001B (zh) | 一种raid编解码方法及编解码电路 | |
CN106557143A (zh) | 用于数据存储设备的装置和方法 | |
CN113505019A (zh) | 一种纠删码数据及校验恢复方法、装置、设备及可读介质 | |
CN116266148A (zh) | 用于存储器内计算/邻存储器计算的端到端数据保护 | |
CN114895842A (zh) | 一种tp-raid编解码方法、系统、设备及存储介质 | |
CN112181707B (zh) | 分布式存储数据恢复调度方法、系统、设备及存储介质 | |
CN116501553B (zh) | 数据恢复方法、装置、系统、电子设备及存储介质 | |
CN112000509B (zh) | 一种基于向量指令的纠删码编码方法、系统及装置 | |
US9400715B1 (en) | System and method for interconnecting storage elements | |
US10379952B2 (en) | Data recovery and regeneration using parity code | |
CN107168817B (zh) | 应用于存储阵列的数据修复方法与装置及存储设备 | |
CN108352845A (zh) | 用于对存储数据进行编码的方法以及装置 | |
CN106302573B (zh) | 一种采用擦除码处理数据的方法、系统及装置 | |
CN111857549A (zh) | 用于管理数据的方法、设备和计算机程序产品 | |
CN114296648B (zh) | 分布式云存储数据的维护方法、装置、设备和可读介质 | |
CN115543693B (zh) | 数据恢复方法及相关设备 | |
JPS603046A (ja) | 記憶制御方式 |
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 |