CN108334419A - 一种数据恢复的方法和装置 - Google Patents
一种数据恢复的方法和装置 Download PDFInfo
- Publication number
- CN108334419A CN108334419A CN201711417240.1A CN201711417240A CN108334419A CN 108334419 A CN108334419 A CN 108334419A CN 201711417240 A CN201711417240 A CN 201711417240A CN 108334419 A CN108334419 A CN 108334419A
- Authority
- CN
- China
- Prior art keywords
- data
- block
- data block
- storage unit
- information
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请提供了一种数据恢复的方法和装置,该方法包括:获取第一信息,所述第一信息用于确定对待编码的数据使用纠删码EC编码生成的多个数据块中承载无效数据的第一数据块,所述多个数据块包括所述第一数据块以及承载有效数据的第二数据块;根据所述第一信息恢复未存储成功的数据块,其中所述未存储成功的数据块为对待编码数据使用EC编码生成的数据块中的一个。有利于在恢复未存储成功的数据块中的数据的过程中,降低计算资源的使用率。
Description
技术领域
本申请涉及数据处理领域,并且更具体地,涉及一种数据恢复的方法和装置。
背景技术
纠删码(Erasure Coding,EC)技术是一种数据保护方法,它使用纠删码对待编码的数据进行编码,并将编码后的编码数据承载在n+m个编码块中,n和m为正整数。其中,n个编码块中携带有待编码数据中的原始数据,因此,上述n个编码块又称数据块,m个编码块中携带有用于对原始数据进行校验的校验数据,因此,上述m个编码块又称校验块。在这n+m个编码块中有一部分数据块中携带的数据的值全为0,称为“无效数据”,另一部分数据块中携带的数据的值不全为0,称为“有效数据”。
当上述n+m个编码块中有任意m个编码块中的数据未存储成功时,无论未存储成功的编码块中承载的数据是有效数据还是无效数据,都需要读出n个编码块,并使用纠删码对这n个编码块进行解码,以恢复未存储成功的编码块中的数据。然而,使用纠删码对n个编码块进行解码的过程需要耗费大量的计算资源。
发明内容
本申请提供一种数据恢复的方法和装置,有利于在恢复未存储成功的数据块中的数据的过程中,降低计算资源的使用率。
第一方面,提供了一种数据恢复的方法,包括:获取第一信息,所述第一信息用于确定对待编码的数据使用纠删码EC编码生成的多个数据块中承载无效数据的第一数据块,所述多个数据块包括所述第一数据块以及承载有效数据的第二数据块;根据所述第一信息恢复未存储成功的数据块,其中所述未存储成功的数据块为对待编码数据使用EC编码生成的数据块中的一个。
在本申请实施例中,基于第一信息确定未存储成功的数据块中承载的是无效数据还是有效数据,再根据未存储成功的数据块中承载的是有效数据还是无效数据,对未存储成功的数据块中的数据进行恢复,避免了现有技术中,无论未存储成功的数据块中承载的是有效数据还是无效数据,都直接通过纠删码解码的方式进行数据恢复。有利于在对未存储成功的编码块中的数据进行恢复的过程中,降低计算资源的使用率。
结合第一方面,在一种可能的实现方式中,所述根据所述第一信息恢复未存储成功的数据块,包括:根据所述第一信息确定所述未存储成功的数据块属于所述第一数据块;生成全0数据,全0数据的长度等于所述多个数据块中任一个数据块的长度。
需要说明的是,上述多个数据块中每个数据块的长度相同,或者说上述多个数据块中每个数据块中承载的数据的数据量相同。
在本申请实施例中,若根据第一信息确定未存储成功的数据块中承载的是无效数据时,可以直接生成全0的数据,而无需再使用纠删码解码的方式对未存储成功的数据块中的数据进行恢复,有利于在对未存储成功的数据块中的数据进行恢复的过程中,降低计算资源的使用率。
结合第一方面,在一种可能的实现方式中,对所述待编码数据使用所述纠删码编码生成多个编码块,所述编码块包括所述多个数据块和至少一个校验块,所述根据所述第一信息恢复未存储成功的数据块,包括:根据所述第一信息确定所述未存储成功的数据块属于所述第二数据块;使用所述纠删码对所述多个编码块中的正常编码块中的数据进行解码得到所述未存储成功的数据块中的数据。
结合第一方面,在一种可能的实现方式中,所述第一信息具体用于确定所述第二数据块,则所述多个数据块中除所述第二数据块之外的数据块属于所述第一数据块。
结合第一方面,在一种可能的实现方式中,所述第一信息中携带所述有效数据的数据量,且存储所述未存储成功的数据块的存储单元为第一存储单元,所述方法还包括:获取所述多个数据块中的任一个数据块的容量;根据所述有效数据的数据量,以及所述任一个数据块的容量,确定所述第二数据块的数量;根据所述第二数据块的数量,以及所述多个数据块中每个数据块的序号,确定所述第二数据块的序号,其中,所述待编码数据中的所述有效数据按照所述多个数据块的序号从小到大的顺序承载于所述多个数据块中的至少部分数据块中。
在本申请实施例中,通过第一信息中携带有效数据的数据量,确定承载有效数据的数据块,即第二数据块,相对于根据第一信息携带向所述存储单元集合中写入所述有效数据所需的写入次数,确定第二数据块的方案而言,在一定程度上可以简化确定第二数据块的流程。
结合第一方面,在一种可能的实现方式中,所述多个数据块存储于存储单元集合中,所述存储单元集合包括多个存储单元,所述多个存储单元中的每个存储单元用于存储一个数据块,所述第一信息携带向所述存储单元集合中写入所述有效数据所需的写入次数,所述方法还包括:获取向所述存储单元集合中的任一存储单元写满数据所需的写入次数;根据所述向所述存储单元集合中写入所述有效数据所需的写入次数,以及所述向所述存储单元集合中的任一存储单元写满数据所需的写入次数,确定存储所述有效数据所需的存储单元的数量;根据所述存储所述有效数据所需的存储单元的数量,确定所述第二数据块的数量;根据所述第二数据块的数量,以及所述多个数据块中每个数据块的序号,确定所述第二数据块的序号,其中,所述待编码数据中的所述有效数据按照所述多个数据块的序号从小到大的顺序承载于所述多个数据块中的至少部分数据块中。
在本申请实施例中,根据第一信息携带向所述存储单元集合中写入所述有效数据所需的写入次数,确定第二数据块,其中,第一信息中只用携带向所述存储单元集合中写入所述有效数据所需的写入次数,相对于第一信息中携带有效数据的数据量的方案而言,在一定程度上可以减少第一信息携带的数据的数据量,节约传输第一信息的开销。
结合第一方面,在一种可能的实现方式中,所述方法还包括:若所述未存储成功的数据块属于所述第一数据块,向存储所述未存储成功的数据块的存储单元重新存储所述第一信息。
本申请实施例中,通过向存储所述未存储成功的数据块的存储单元重新存储数据,以提高编码数据在存储系统中的数据可靠性,也就是说,当其他存储单元中的数据未成功存储时,可以使用存储所述未存储成功的数据块的存储单元中的数据对其他未存储成功的数据进行恢复。
进一步地,当未存储成功的数据块中承载的数据为无效数据时,可以仅将第一信息存储在存储所述未存储成功的数据块的存储单元中,有利于节省在向存储单元存储无效数据时引起的开销。
结合第一方面,在一种可能的实现方式中,获取所述编码数据的第一信息可以包括:从第二存储单元中读取所述第一信息,所述第二存储单元属于所述存储单元集合。
结合第一方面,在一种可能的实现方式中,所述获取第一信息还包括:从日志中确定所述未存储成功的数据块未成功存储至存储单元,并从所述日志中获取第一信息。
在本申请实施例中,可以直接从日志中读取未存储成功的数据块未成功存储至存储单元的信息同时,读取第一信息,可以根据第一信息判断未存储成功的数据块中存储的数据为无效数据还是有效数据,有利于提高恢复无效数据的效率。
第二方面,提供一种写数据的方法,其特征在于,包括:确定存储目标编码块的存储单元,所述目标编码块是通过对待编码的数据使用纠删码EC编码生成的多个编码块中的任一个编码块;向存储单元中写所述目标编码块以及第一信息,所述第一信息用于确定所述多个编码块中承载无效数据的第一数据块。
在本申请实施例中,向存储单元写目标编码块的同时写入第一信息,通过第一信息可以确定未存储成功的数据块中承载的是无效数据还是有效数据,以便于在对未存储成功的数据块进行恢复的过程中,可以基于第一信息对未存储成功的数据块中承载的数据是无效数据还是有效数据进行区分,有利于在对未存储成功的数据块中的数据进行恢复的过程中,降低计算资源的使用率。
结合第二方面,在一种可能的实现方式中,所述多个编码块包括多个数据块,所述多个数据块包括所述第一数据块和承载有效数据的第二数据块,所述第一信息具体用于确定所述第二数据块,则所述多个数据块中除所述第二数据块之外的数据块属于所述第一数据块。
结合第二方面,在一种可能的实现方式中,所述第一信息中携带所述有效数据的数据量,且存储所述未存储成功的数据块的存储单元为第一存储单元,所述方法还包括:获取所述多个数据块中任一个数据块的容量;根据所述有效数据的数据量,以及所述多个数据块中任一个数据块的容量,确定所述第二数据块的数量;根据所述第二数据块的数量,以及所述多个数据块中每个数据块的序号,确定所述第二数据块的序号,其中,所述待编码数据中的所述有效数据按照所述多个数据块的序号从小到大的顺序承载于所述多个数据块中的至少部分数据块中。
在本申请实施例中,通过第一信息中携带有效数据的数据量,确定承载有效数据的数据块,即第二数据块,相对于根据第一信息携带向所述存储单元集合中写入所述有效数据所需的写入次数,确定第二数据块的方案而言,在一定程度上可以简化确定第二数据块的流程。
结合第二方面,在一种可能的实现方式中,所述多个数据块存储于存储单元集合中,所述存储单元集合包括多个存储单元,所述多个存储单元用于存储所述多个数据块中的一个数据块,所述第一信息包含向所述存储单元集合中写入所述有效数据所需的次数,所述方法还包括:获取向所述存储单元集合中的任一存储单元写满数据所需的次数;根据所述向所述存储单元集合中写入所述有效数据所需的次数,以及所述向所述存储单元集合中的任一存储单元写满数据所需的次数,确定存储所述有效数据所需的存储单元的数量;根据所述存储所述有效数据所需的存储单元的数量,确定所述第二数据块的数量;根据所述第二数据块的数量,以及所述多个数据块中每个数据块的序号,确定所述第二数据块的序号,其中,所述待编码数据中的所述有效数据按照所述多个数据块的序号从小到大的顺序承载于所述多个数据块中的至少部分数据块中。
在本申请实施例中,根据第一信息携带向所述存储单元集合中写入所述有效数据所需的写入次数,确定第二数据块,其中,第一信息中只用携带向所述存储单元集合中写入所述有效数据所需的写入次数,相对于第一信息中携带有效数据的数据量的方案而言,在一定程度上可以减少第一信息携带的数据的数据量,节约传输第一信息的开销。
结合第二方面,在一种可能的实现方式中,所述方法还包括:若向所述存储单元中写所述目标编码块以及所述第一信息失败,向日志中写所述第一信息。
在本申请实施例中,可以向日志中写入第一信息,以便于从日志中可以直接获取第一信息,相对于从存储单元中读取第一信息的方案而言,有利于简化获取第一信息的复杂度。
第三方面,提供了一种数据恢复的装置,所述装置包括用于执行上述第一方面的方法中的各个模块。
第四方面,提供了一种写数据的装置,所述装置包括用于执行上述第二方面的方法中的各个模块。
第五方面,提供了一种数据恢复的装置,所述处理器具有实现上述第一方面的方法设计中的装置的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元。
第六方面,提供了一种写数据的装置,所述处理器具有实现上述第二方面的方法设计中的装置的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元。
第七方面,提供了一种控制器,包括输入输出接口、处理器和存储器。该处理器用于控制输入输出接口收发信号,该存储器用于存储计算机程序,该处理器用于从存储器中调用并运行该计算机程序,使得该处理器执行上述各方面中的方法。
第八方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述各方面中的方法。
第九方面,提供了一种计算机可读介质,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述各方面中的方法。
第十方面,提供了一种芯片系统,该芯片系统包括处理器,用于数据恢复的装置实现上述方面中所涉及的功能,例如,生成,接收,发送,或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存终端设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
附图说明
图1是本申请实施例适用的存储系统的示意性框图。
图2是传统的数据恢复的方法的示意性流程图。
图3是本申请实施例的写数据的方法的示意性流程图。
图4是本申请实施例的数据恢复的方法的示意性流程图。
图5是本申请实施例的写数据的装置的示意性框图。
图6是本申请实施例的一种数据恢复的装置的示意性框图。
图7是本申请另一实施例的控制器的示意性框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
为了便于理解,先结合图1简单介绍本申请实施例适用的场景。图1是本申请实施例适用的存储系统的示意性框图。图1所示的存储系统包括至少一个存储节点110和控制器120。
至少一个存储节点110,存储节点中可以设置有多个存储单元(例如,磁盘),用于为编码块提供存储空间。
可选地,上述存储系统中的存储单元之间可以通过条带化技术进行关联,也就是说,将位于多个存储节点上的存储单元划分为一个存储条带,其中,存储单元又称分区,共同为编码数据提供存储空间,存储条带中的每个存储单元可以存储一个编码块。
控制器120,与至少一个存储节点中的每个存储节点相连,用于使用纠删码对目标数据进行编码,生成多个编码块,并将多个编码块存储至多个的存储节点中;还用于使用纠删码对从存储节点读出的编码块进行解码,以对未存储成功的编码块中的数据进行恢复。本发明实施例中未存储成功是指未能够成功将编码块写入存储单元或者写入存储单元后由于存储节点故障或其他原因导致编码块中数据发生错误。
下文基于图1所示的存储系统,结合图2介绍传统的数据恢复方法。图2是传统的数据恢复的方法的示意性流程图。图2所示的方法包括210至230。
假设基于n+m的模式对目标数据进行编码,生成的n+m个编码块中包含n个数据块和m个校验块。目标数据的编码数据中有效数据的数据量为512K,且上述编码块中每个编码块能携带的最大数据量为512K。
210,控制器通过读取控制器中的日志确定第一数据块未成功存储至第一存储单元。
应理解,上述n+m个编码块分别存储n+m个不同的存储单元中,上述n+m个存储单元所属的存储节点可以不完全相同。
220,控制器从第一存储单元所属的存储条带中,读取任意n个编码块。
具体地,上述任意n个编码块为成功存储在第一存储单元所属的存储条带中的n个编码块,该n个编码块可以包含数据块和校验块。
230,控制器对读取的n个编码块,使用纠删码进行解码,确定未存储成功的编码块中的数据。
由于纠删码的编码原理,上述编码块中的数据块可以分为承载有效数据的数据块和承载无效数据的数据块。如果上述未存储成功的编码块为承载无效数据的数据块时,有可能该未存储成功的数据块中承载的是无效数据,而无效数据本质上就是的取值为0的数据,其实无需再通过纠删码解码的方式确定未存储成功的数据块中的数据。但是,由于控制器没办法判断未存储成功的数据块中承载的数据为有效数据还是无效数据,因此,即使未存储成功的数据块中承载的数据是无效数据,仍然需要从存储条带中读取其他正常的n个编码块,并对这n个编码块使用纠删码进行解码,以确定未存储成功的数据块中的数据。这种数据恢复的方法不仅占用存储系统中的传输资源,还会消耗存储系统中大量的计算资源。
因此,本申请实施例提供了一种数据恢复的方法,通过第一信息可以确定未存储成功的数据块中承载的是无效数据还是有效数据,若未存储成功的数据块承载的是无效数据,可以不再通过纠删码解码的方式确定未存储成功的数据块中的数据,直接生成全0数据,有利于降低数据恢复过程中对存储系统中传输资源和计算资源的消耗。
下文结合图3详细地介绍将上述第一信息写入存储单元的过程,图3是本申请实施例的写数据的方法的示意性流程图。应理解,图3所示的方法可以由图1中的控制器执行。图3所示的方法包括步骤310和步骤320。
310,确定存储目标编码块的存储单元,所述目标编码块是通过对待编码的数据使用纠删码EC编码生成的多个编码块中的任一个编码块。
具体地,上述多个编码块可以包括数据块和校验块,而目标编码块可以是多个编码块中的数据块,还可以是多个编码块中的校验块。
320,向存储单元中写所述目标编码块以及第一信息,所述第一信息用于确定所述多个编码块中承载无效数据的第一数据块。
应理解,上述承载无效数据的第一数据块可以是至少一个数据块。
可选地,所述多个编码块包括多个数据块,所述多个数据块包括所述第一数据块和承载有效数据的第二数据块,所述第一信息具体用于确定所述第二数据块,则所述多个数据块中除所述第二数据块之外的数据块属于所述第一数据块。
应理解,上述承载有效数据的第二数据块可以是至少一个数据块。
需要说明的是,上述第一信息用于确定第二数据块,可以包括第一信息中携带至少一个第二数据块中每个第二数据块的序号,还可以包括通过第一信息中携带的有效数据的相关信息,确定第二数据块。关于通过第一信息中携带的有效信息的相关信息确定第二数据块的方式,可以参见图4所示的方法中的描述,为了简洁,在此不再赘述。
可选地,上述多个编码块可以存储至图1所示的条带中,每个编码块占用条带中的一个存储单元。
可选地,作为一个实施例,所述方法还包括:若向所述存储单元中写所述目标编码块以及所述第一信息失败,向日志中写所述第一信息。
本申请实施例,通过将第一信息存储在日志中,以便于在对未存储成功的数据块进行恢复之前,可以直接从日志中获取第一信息,避免了再从存储其他存储单元中获取第一信息,简化获取第一信息的过程。
下文结合图4详细说明本申请实施例的数据恢复的方法。图4是本申请实施例的数据恢复的方法的示意性流程图。应理解,图4所示的方法可以由图1中的控制器执行,或者由存储系统中其他具有纠删码编码解码功能的设备执行。图4所示的方法包括步骤410和步骤420。
410,获取第一信息,所述第一信息用于确定对待编码的数据使用纠删码EC编码生成的多个数据块中承载无效数据的第一数据块,所述多个数据块包括所述第一数据块以及承载有效数据的第二数据块。
具体地,上述无效数据可以是全0数据,或空数据。上述无效数据可以是全0数据时,第一数据块可以是多个数据块中,承载全0数据的至少一个数据块。上述无效数据指空数据时,第一数据块中没有承载数据。
上述第二数据块可以是多个数据中承载非全0数据的至少一个数据块。
需要说明的是,所述第一信息用于确定第一数据块可以包括第一信息可以直接携带第一数据块的序号。上述第一信息还可以用于确定第二数据块,通过第二数据块间接地确定第一数据块,即上述第一信息还可以用于确定所述第二数据块,则所述多个数据块中除所述第二数据块之外的数据块属于所述第一数据块。
需要说明的是,上述第一信息可以直接携带上述第二数据块中的每个第二数据块的序号,以直接指示第二数据块。上述第一信息还可以携带有效数据的相关信息,以便于通过有效数据的相关信息确定第二数据块,下文重点描述第一信息通过携带有效数据的相关信息确定第二数据块的方式。
方式一、所述第一信息通过携带有效数据的数据量的数量,以实现确定第二数据块的功能。
具体地,所述第一信息包含携带所述有效数据的数据块的数量,所述方法还包括:根据所述携带所述有效数据的数据块的数量,以及数据块的序号,确定第二数据块,所述待编码数据中的所述有效数据按照所述多个数据块的序号从小到大的顺序承载于所述多个数据块中的至少部分数据块中。
由于,在除校验数据之外的编码数据中,有效数据在所述编码数据中的位置以所述数据首位为起点且在位置上是连续的,有效数据会优先占用数据块的序号最小的数据块,并且当一个数据块中携带不了全部的有效数据时,剩余的有效数据可以按照数据块的序号的递增顺序承载于下一个数据块中,因此可以根据所述第二数据块的数量,以及所述多个数据块中每个数据块的序号,确定所述第二数据块的序号。
例如,使用纠删码编码后生成的数据块分别为数据块1、数据块2、数据块3,若第一信息携带所述有效数据的数据块的数量为2,则承载有效数据的第二数据块为数据块1和数据块2;若第一信息携带所述有效数据的数据块的数量为1,则承载有效数据的数据块为数据块1。
需要说明的是,上述多个数据块中每个数据的容量可以是相同的。
方式二、所述第一信息通过指示所述有效数据的数据量,以实现确定第二数据块的功能。
具体地,所述第一信息中携带所述有效数据的数据量,且存储所述未存储成功的数据块的存储单元为第一存储单元,所述方法还包括:获取所述多个数据块中的任一个数据块的容量;根据所述有效数据的数据量,以及所述任一个数据块的容量,确定所述第二数据块的数量;根据所述第二数据块的数量,以及所述多个数据块中每个数据块的序号,确定所述第二数据块的序号,其中,所述待编码数据中的所述有效数据按照所述多个数据块的序号从小到大的顺序承载于所述多个数据块中的至少部分数据块中。
由于,在除校验数据之外的编码数据中,有效数据在位置上是连续的,有效数据会优先占用数据块的序号最小的数据块,并且当一个数据块中携带不了全部的有效数据时,剩余的有效数据可以按照数据块的序号的递增顺序承载于下一个数据块中,因此可以根据所述第二数据块的数量,以及所述多个数据块中每个数据块的序号,确定所述第二数据块的序号。
需要说明的是,上述多个数据块中的任一个数据块的容量,可以记录在控制器的日志中,还可以存储在存储每个编码块的存储单元中,本申请实施例对此不做具体限定。
例如,使用纠删码编码后生成的数据块分别为数据块1、数据块2、数据块3,且每个数据块的容量为512K。若第一信息指示所述有效数据的数据量为(512×2)K,则承载有效数据的第二数据块为数据块1和数据块2;若第一信息指示所述有效数据的数据量为512K,则承载有效数据的第二数据块为数据块1。
方式三、所述第一信息通过包含向所述存储单元集合中写入所述有效数据所需的次数,所述第一信息通过指示所述有效数据的数据量,以实现确定第二数据块的功能。
具体地,所述多个数据块存储于存储单元集合中,所述存储单元集合包括多个存储单元,所述多个存储单元中的每个存储单元用于存储一个数据块,所述第一信息携带向所述存储单元集合中写入所述有效数据所需的写入次数,所述方法还包括:获取向所述存储单元集合中的任一存储单元写满数据所需的写入次数;根据所述向所述存储单元集合中写入所述有效数据所需的写入次数,以及所述向所述存储单元集合中的任一存储单元写满数据所需的写入次数,确定存储所述有效数据所需的存储单元的数量;根据所述存储所述有效数据所需的存储单元的数量,确定所述第二数据块的数量;根据所述第二数据块的数量,以及所述多个数据块中每个数据块的序号,确定所述第二数据块的序号,其中,所述待编码数据中的所述有效数据按照所述多个数据块的序号从小到大的顺序承载于所述多个数据块中的至少部分数据块中。
由于,在除校验数据之外的编码数据中,有效数据在位置上是连续的,有效数据会优先占用数据块的序号最小的数据块,并且当一个数据块中携带不了全部的有效数据时,剩余的有效数据可以按照数据块的序号的递增顺序承载于下一个数据块中,因此可以根据所述第二数据块的数量,以及所述多个数据块中每个数据块的序号,确定所述第二数据块的序号。
例如,假设存储单元集合中的存储单元的存储容量L为512K,每次向存储单元中写入数据的数据量l为64K,也就是说,向存储单元写次数据时,存储单元中存储空间会被写满数据。
使用纠删码编码后生成的数据块分别为数据块1、数据块2、数据块3,若第一信息携带向所述存储单元集合中写入所述有效数据所需的写入次数为9,说明存储有效数据所需的存储单元的数量为2,则承载有效数据的第二数据块包括数据块1和数据块2。
需要说明的是,上述存储单元集合中的存储单元的存储容量和/或每次向存储单元中写入数据的数据量,可以记录在控制器的日志中,还可以存储在存储每个编码块的存储单元中,本申请实施例对此不做具体限定。
420,根据所述第一信息恢复未存储成功的数据块,其中所述未存储成功的数据块为对待编码数据使用EC编码生成的数据块中的一个数据块。
在本申请实施例中,基于第一信息确定未存储成功的数据块中承载的是无效数据还是有效数据,再根据未存储成功的数据块中承载的是有效数据还是无效数据,对未存储成功的数据块中的数据进行恢复,避免了现有技术中,无论未存储成功的数据块中承载的是有效数据还是无效数据,都直接通过纠删码解码的方式进行数据恢复。有利于在对未存储成功的数据块中的数据进行恢复的过程中,降低计算资源的使用率。
可选地,作为一个实施例,步骤220包括:根据所述第一信息确定所述未存储成功的数据块属于所述第一数据块;生成全0数据,全0数据的长度等于所述多个数据块中任一个数据块的长度。
具体地,上述未存储成功的数据块属于所述第一数据块,可以指未存储成功的数据块中承载的数据为无效数据。
需要说明的是,上述多个数据块中每个数据块的长度相同,上述多个数据块中每个数据块的长度相同可以理解为多个数据块中每个数据块承载的数据的数据量相同。
需要说明的是,针对承载空数据的数据块而言,该空数据块中能够承载的数据的数据量等于多个数据块中每个数据块承载的数据的数据量。
可选地,作为一个实施例,对所述待编码数据使用所述纠删码编码生成多个编码块,所述编码块包括所述多个数据块和至少一个校验块,步骤220包括:根据所述第一信息确定所述未存储成功的数据块属于所述第二数据块;使用所述纠删码对所述多个编码块中的正常编码块中的数据进行解码得到所述未存储成功的数据块中的数据。
具体地,上述多个编码块中的正常编码块可以理解为成功存储在存储单元中的编码块。上述正常编码块可以包括成功存储在存储单元中的数据块和/或成功存储在存储单元中的校验块。
应理解,上述正常编码块可以是一个或多个编码块。
还应理解,上述未存储成功的数据块可以指未成功存储至存储单元的数据块,至于未成功存储的原因可以是由于存储节点停止工作(例如,掉电),或者存储节点数据丢失造成的,本申请实施例对于数据块未成功存储的原因不做限定。
可选地,获取所述编码数据的第一信息可以包括:从第二存储单元中读取所述第一信息,所述第二存储单元属于所述存储单元集合。
需要说明的是,上述第一存储单元和第二存储单元可以属于一个存储节点,上述存储未存储成功的数据块的存储单元和第二存储单元还可以位于不同的存储节点上。
为了简洁,下文中将原本用于存储所述未存储成功的数据块的存储单元称为第一存储单元。
可选地,步骤410,包括:从日志中确定所述未存储成功的数据块未成功存储至存储单元,并从所述日志中获取第一信息。
在本申请实施例中,可以直接从日志中读取未存储成功的数据块未成功存储至存储单元的信息同时,读取第一信息,可以根据第一信息判断未存储成功的数据块为无效数据还是有效数据,有利于提高恢复无效数据的效率。
可选地,作为一个实施例,所述方法还包括:若所述未存储成功的数据块属于所述第一数据块,向存储所述未存储成功的数据块的存储单元重新存储所述第一信息。
具体地,在确定未存储成功的数据块中承载无效数据时,可以只向第一存储单元写入第一信息,以便于在下次从第一存储单元中读取数据时,若只读取到第一信息时,可以确定该存储单元原本应该存储的数据块中承载的数据为无效数据。
本申请实施例中,通过向第一存储单元中重新存储数据,以提高存储系统的可靠性,以便于在向存储单元集合的其他存储单元存储数据的过程中,数据未成功存储时,可以使用上述第一存储单元中重新存储的数据对未存储成功的数据进行恢复。
需要说明的是,在使用第一存储单元存储的数据对其他未成功存储的数据块中的数据进行恢复时,若第一存储单元中只存储有第一信息时,可以确定第一存储单元中原先存储的数据为无效数据,可以直接生成取值为0的数据,然后再使用纠删码解码的方式对未存储成功的数据块中的数据进行恢复。
上文结合图1至图4详细的介绍了本申请实施例的数据恢复的方法,下文结合图5至图7介绍本申请实施例的装置。应理解,图5至图7所示的装置可以实现上述方法中各个步骤,为了简洁,在此不再赘述。
图5是本申请实施例的写数据的装置的示意性框图。图5所示的装置500包括:确定模块510和处理模块520。
确定模块,用于确定存储目标编码块的存储单元,所述目标编码块是通过对待编码的数据使用纠删码EC编码生成的多个编码块中的任一个编码块;
处理模块,用于向存储单元中写所述目标编码块以及第一信息,所述第一信息用于确定所述多个编码块中承载无效数据的第一数据块。
可选地,作为一个实施例,所述多个编码块包括多个数据块,所述多个数据块包括所述第一数据块和承载有效数据的第二数据块,所述第一信息具体用于确定所述第二数据块,则所述多个数据块中除所述第二数据块之外的数据块属于所述第一数据块。
可选地,作为一个实施例,所述第一信息中携带所述有效数据的数据量,且存储所述未存储成功的数据块的存储单元为第一存储单元,所述处理模块还用于:获取所述多个数据块中任一个数据块的容量;根据所述有效数据的数据量,以及所述多个数据块中任一个数据块的容量,确定所述第二数据块的数量;根据所述第二数据块的数量,以及所述多个数据块中每个数据块的序号,确定所述第二数据块的序号,其中,所述待编码数据中的所述有效数据按照所述多个数据块的序号从小到大的顺序承载于所述多个数据块中的至少部分数据块中。
可选地,作为一个实施例,所述多个数据块存储于存储单元集合中,所述存储单元集合包括多个存储单元,所述多个存储单元用于存储所述多个数据块中的一个数据块,所述第一信息包含向所述存储单元集合中写入所述有效数据所需的次数,所述处理模块还用于:获取向所述存储单元集合中的任一存储单元写满数据所需的次数;根据所述向所述存储单元集合中写入所述有效数据所需的次数,以及所述向所述存储单元集合中的任一存储单元写满数据所需的次数,确定存储所述有效数据所需的存储单元的数量;根据所述存储所述有效数据所需的存储单元的数量,确定所述第二数据块的数量;根据所述第二数据块的数量,以及所述多个数据块中每个数据块的序号,确定所述第二数据块的序号,其中,所述待编码数据中的所述有效数据按照所述多个数据块的序号从小到大的顺序承载于所述多个数据块中的至少部分数据块中。
可选地,作为一个实施例,所述处理模块还用于:若向所述存储单元中写所述目标编码块以及所述第一信息失败,向日志中写所述第一信息。
图6是本申请实施例的一种数据恢复的装置的示意性框图。图6所示的装置600包括:获取模块610,和处理模块620。
获取模块,用于获取第一信息,所述第一信息用于确定对待编码数据使用纠删码EC编码生成的多个数据块中承载无效数据的第一数据块,所述多个数据块包括所述第一数据块以及承载有效数据的第二数据块;
处理模块,用于根据所述获取模块获取的所述第一信息恢复未存储成功的数据块,其中所述未存储成功的数据块为对待编码数据使用EC编码生成的数据块中的一个。
可选地,作为一个实施例,所述处理模块具体用于:根据所述第一信息确定所述未存储成功的数据块属于所述第一数据块;生成全0数据,全0数据的长度等于所述多个数据块中任一个数据块的长度。
可选地,作为一个实施例,对所述待编码数据使用所述纠删码编码生成多个编码块,所述编码块包括所述多个数据块和至少一个校验块,所述处理模块具体用于:根据所述第一信息确定所述未存储成功的数据块属于所述第二数据块;使用所述纠删码对所述多个编码块中的正常编码块中的数据进行解码得到所述未存储成功的数据块中的数据。
可选地,作为一个实施例,所述第一信息具体用于确定所述第二数据块,则所述多个数据块中除所述第二数据块之外的数据块属于所述第一数据块。
可选地,作为一个实施例,所述第一信息中携带所述有效数据的数据量,且存储所述未存储成功的数据块的存储单元为第一存储单元,所述处理模块还用于:获取所述多个数据块中的任一个数据块的容量;根据所述有效数据的数据量,以及所述任一个数据块的容量,确定所述第二数据块的数量;根据所述第二数据块的数量,以及所述多个数据块中每个数据块的序号,确定所述第二数据块的序号,其中,所述待编码数据中的所述有效数据按照所述多个数据块的序号从小到大的顺序承载于所述多个数据块中的至少部分数据块中。
可选地,作为一个实施例,所述多个数据块存储于存储单元集合中,所述存储单元集合包括多个存储单元,所述多个存储单元中的每个存储单元用于存储一个数据块,所述第一信息携带向所述存储单元集合中写入所述有效数据所需的写入次数,所述处理模块还用于:获取向所述存储单元集合中的任一存储单元写满数据所需的写入次数;根据所述向所述存储单元集合中写入所述有效数据所需的写入次数,以及所述向所述存储单元集合中的任一存储单元写满数据所需的写入次数,确定存储所述有效数据所需的存储单元的数量;根据所述存储所述有效数据所需的存储单元的数量,确定所述第二数据块的数量;根据所述第二数据块的数量,以及所述多个数据块中每个数据块的序号,确定所述第二数据块的序号,其中,所述待编码数据中的所述有效数据按照所述多个数据块的序号从小到大的顺序承载于所述多个数据块中的至少部分数据块中。
可选地,作为一个实施例,所述处理模块还用于:若所述未存储成功的数据块属于所述第一数据块,向存储所述未存储成功的数据块的存储单元重新存储所述第一信息。
在可选的实施例中,上述装置500还可以是控制器700,具体地,所述确定模块510和所述处理模块520可以为处理器720,所述装置还可以包括存储器710,具体如图7所示。
在可选的实施例中,上述装置600还可以是控制器700,具体地,所述获取模块610可以为输入输出接口730,所述处理模块620可以为处理器720,所述装置还可以包括存储器710,具体如图7所示。
图7是本申请另一实施例的控制器的示意性框图。图7所示的装置700可以包括:存储器710、处理器720和输入/输出接口730。其中,存储器710、处理器720和输入/输出接口730通过内部连接通路相连,该存储器710用于存储程序指令,该处理器720用于执行该存储器720存储的程序指令,以控制输入/输出接口730接收输入的数据和信息,输出操作结果等数据。
应理解,在本申请实施例中,该处理器720可以采用通用的中央处理器(CentralProcessing Unit,CPU),微处理器,应用专用集成电路(Application SpecificIntegrated Circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
该存储器710可以包括只读存储器和随机存取存储器,并向处理器720提供指令和数据。处理器720的一部分还可以包括非易失性随机存取存储器。例如,处理器720还可以存储设备类型的信息。
在实现过程中,上述方法的各步骤可以通过处理器720中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器710,处理器720读取存储器710中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
应理解,本申请实施例中,该处理器可以为中央处理单元(central processingunit,CPU),该处理器还可以是其它通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
应理解,本发明实施例不仅可以应用到存储阵列,也可以应用于分布式存储系统,由客户端执行本发明实施例中的各种操作,或者由分布式存储系统中的存储节点执行本发明实施例的操作。其中,客户端或存储节点的结构可参考本发明上述实施例中的描述。
应理解,在本申请实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够读取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(Digital Video Disc,DVD))或者半导体介质(例如,固态硬盘(Solid State Disk,SSD))等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (14)
1.一种数据恢复的方法,其特征在于,包括:
获取第一信息,所述第一信息用于确定对待编码的数据使用纠删码EC编码生成的多个数据块中承载无效数据的第一数据块,所述多个数据块包括所述第一数据块以及承载有效数据的第二数据块;
根据所述第一信息恢复未存储成功的数据块,其中所述未存储成功的数据块为对待编码数据使用所述纠删码编码生成的数据块中的一个。
2.如权利要求1所述的方法,其特征在于,所述根据所述第一信息恢复未存储成功的数据块,包括:
根据所述第一信息确定所述未存储成功的数据块属于所述第一数据块;
生成全0数据,全0数据的长度等于所述多个数据块中任一个数据块的长度。
3.如权利要求1或2所述的方法,其特征在于,对所述待编码数据使用所述纠删码编码生成多个编码块,所述编码块包括所述多个数据块和至少一个校验块,
所述根据所述第一信息恢复未存储成功的数据块,包括:
根据所述第一信息确定所述未存储成功的数据块属于所述第二数据块;
使用所述纠删码对所述多个编码块中的正常编码块中的数据进行解码得到所述未存储成功的数据块中的数据。
4.如权利要求1-3中任一项所述的方法,其特征在于,所述第一信息具体用于确定所述第二数据块,则所述多个数据块中除所述第二数据块之外的数据块属于所述第一数据块。
5.如权利要求4所述的方法,其特征在于,所述第一信息中携带所述有效数据的数据量,且存储所述未存储成功的数据块的存储单元为第一存储单元,
所述方法还包括:
获取所述多个数据块中的任一个数据块的容量;
根据所述有效数据的数据量,以及所述任一个数据块的容量,确定所述第二数据块的数量;
根据所述第二数据块的数量,以及所述多个数据块中每个数据块的序号,确定所述第二数据块的序号,其中,所述待编码数据中的所述有效数据按照所述多个数据块的序号从小到大的顺序承载于所述多个数据块中的至少部分数据块中。
6.如权利要求4所述的方法,其特征在于,所述多个数据块存储于存储单元集合中,所述存储单元集合包括多个存储单元,所述多个存储单元中的每个存储单元用于存储一个数据块,所述第一信息携带向所述存储单元集合中写入所述有效数据所需的写入次数,
所述方法还包括:
获取向所述存储单元集合中的任一存储单元写满数据所需的写入次数;
根据所述向所述存储单元集合中写入所述有效数据所需的写入次数,以及所述向所述存储单元集合中的任一存储单元写满数据所需的写入次数,确定存储所述有效数据所需的存储单元的数量;
根据所述存储所述有效数据所需的存储单元的数量,确定所述第二数据块的数量;
根据所述第二数据块的数量,以及所述多个数据块中每个数据块的序号,确定所述第二数据块的序号,其中,所述待编码数据中的所述有效数据按照所述多个数据块的序号从小到大的顺序承载于所述多个数据块中的至少部分数据块中。
7.如权利要求1-6中任一项所述的方法,其特征在于,所述方法还包括:
若所述未存储成功的数据块属于所述第一数据块,向存储所述未存储成功的数据块的存储单元重新存储所述第一信息。
8.一种数据恢复的装置,其特征在于,包括:
获取模块,用于获取第一信息,所述第一信息用于确定对待编码数据使用纠删码EC编码生成的多个数据块中承载无效数据的第一数据块,所述多个数据块包括所述第一数据块以及承载有效数据的第二数据块;
处理模块,用于根据所述获取模块获取的所述第一信息恢复未存储成功的数据块,其中所述未存储成功的数据块为对待编码数据使用所述纠删码编码生成的数据块中的一个。
9.如权利要求8所述的装置,其特征在于,所述处理模块具体用于:
根据所述第一信息确定所述未存储成功的数据块属于所述第一数据块;
生成全0数据,全0数据的长度等于所述多个数据块中任一数据块的长度。
10.如权利要求8或9所述的装置,其特征在于,对所述待编码数据使用所述纠删码编码生成多个编码块,所述编码块包括所述多个数据块和至少一个校验块,
所述处理模块具体用于:
根据所述第一信息确定所述未存储成功的数据块属于所述第二数据块;
使用所述纠删码对所述多个编码块中的正常编码块中的数据进行解码得到所述未存储成功的数据块中的数据。
11.如权利要求8-10中任一项所述的装置,其特征在于,所述第一信息具体用于确定所述第二数据块,则所述多个数据块中除所述第二数据块之外的数据块属于所述第一数据块。
12.如权利要求11所述的装置,其特征在于,所述第一信息中携带所述有效数据的数据量,且存储所述未存储成功的数据块的存储单元为第一存储单元,
所述处理模块还用于:
获取所述多个数据块中的任一个数据块的容量;
根据所述有效数据的数据量,以及所述任一个数据块的容量,确定所述第二数据块的数量;
根据所述第二数据块的数量,以及所述多个数据块中每个数据块的序号,确定所述第二数据块的序号,其中,所述待编码数据中的所述有效数据按照所述多个数据块的序号从小到大的顺序承载于所述多个数据块中的至少部分数据块中。
13.如权利要求11所述的装置,其特征在于,所述多个数据块存储于存储单元集合中,所述存储单元集合包括多个存储单元,所述多个存储单元中的每个存储单元用于存储一个数据块,所述第一信息携带向所述存储单元集合中写入所述有效数据所需的写入次数,
所述处理模块还用于:
获取向所述存储单元集合中的任一存储单元写满数据所需的写入次数;
根据所述向所述存储单元集合中写入所述有效数据所需的写入次数,以及所述向所述存储单元集合中的任一存储单元写满数据所需的写入次数,确定存储所述有效数据所需的存储单元的数量;
根据所述存储所述有效数据所需的存储单元的数量,确定所述第二数据块的数量;
根据所述第二数据块的数量,以及所述多个数据块中每个数据块的序号,确定所述第二数据块的序号,其中,所述待编码数据中的所述有效数据按照所述多个数据块的序号从小到大的顺序承载于所述多个数据块中的至少部分数据块中。
14.如权利要求8-13中任一项所述的装置,其特征在于,所述处理模块还用于:
若所述未存储成功的数据块属于所述第一数据块,向存储所述未存储成功的数据块的存储单元重新存储所述第一信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711417240.1A CN108334419B (zh) | 2017-12-25 | 2017-12-25 | 一种数据恢复的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711417240.1A CN108334419B (zh) | 2017-12-25 | 2017-12-25 | 一种数据恢复的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108334419A true CN108334419A (zh) | 2018-07-27 |
CN108334419B CN108334419B (zh) | 2021-12-28 |
Family
ID=62923318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711417240.1A Active CN108334419B (zh) | 2017-12-25 | 2017-12-25 | 一种数据恢复的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108334419B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109412755A (zh) * | 2018-11-05 | 2019-03-01 | 东方网力科技股份有限公司 | 一种多媒体数据处理方法、装置及存储介质 |
CN110502365A (zh) * | 2019-07-11 | 2019-11-26 | 平安科技(深圳)有限公司 | 数据存储及恢复的方法、装置及计算机设备 |
CN110865901A (zh) * | 2018-08-28 | 2020-03-06 | 华为技术有限公司 | 组建ec条带的方法和装置 |
WO2020094134A1 (zh) * | 2018-11-09 | 2020-05-14 | 杭州海康威视系统技术有限公司 | 磁盘分配方法、装置和可读存储介质 |
CN111506450A (zh) * | 2019-01-31 | 2020-08-07 | 伊姆西Ip控股有限责任公司 | 用于数据处理的方法、设备和计算机程序产品 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7315976B2 (en) * | 2002-01-31 | 2008-01-01 | Lsi Logic Corporation | Method for using CRC as metadata to protect against drive anomaly errors in a storage array |
CN101770413A (zh) * | 2010-01-07 | 2010-07-07 | 杭州华三通信技术有限公司 | 冗余磁盘阵列重建的方法及设备 |
CN102331949A (zh) * | 2011-10-12 | 2012-01-25 | 华为技术有限公司 | 一种虚拟机内存快照生成和恢复方法、装置及系统 |
CN102981936A (zh) * | 2012-11-15 | 2013-03-20 | 浪潮电子信息产业股份有限公司 | 一种磁盘阵列数据重构的方法 |
CN104808966A (zh) * | 2014-01-29 | 2015-07-29 | 马维尔以色列(Misl)有限公司 | 有效编码的方法和装置 |
CN105117303A (zh) * | 2012-11-23 | 2015-12-02 | 华为技术有限公司 | 一种数据恢复的方法及设备 |
CN105549908A (zh) * | 2015-12-14 | 2016-05-04 | 深圳市万拓存储技术有限公司 | Raid磁盘阵列重新恢复冗余的方法 |
CN106878683A (zh) * | 2017-03-03 | 2017-06-20 | 天津天地伟业信息系统集成有限公司 | 一种图片流文件存储编码方法 |
-
2017
- 2017-12-25 CN CN201711417240.1A patent/CN108334419B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7315976B2 (en) * | 2002-01-31 | 2008-01-01 | Lsi Logic Corporation | Method for using CRC as metadata to protect against drive anomaly errors in a storage array |
CN101770413A (zh) * | 2010-01-07 | 2010-07-07 | 杭州华三通信技术有限公司 | 冗余磁盘阵列重建的方法及设备 |
CN102331949A (zh) * | 2011-10-12 | 2012-01-25 | 华为技术有限公司 | 一种虚拟机内存快照生成和恢复方法、装置及系统 |
CN102981936A (zh) * | 2012-11-15 | 2013-03-20 | 浪潮电子信息产业股份有限公司 | 一种磁盘阵列数据重构的方法 |
CN105117303A (zh) * | 2012-11-23 | 2015-12-02 | 华为技术有限公司 | 一种数据恢复的方法及设备 |
CN104808966A (zh) * | 2014-01-29 | 2015-07-29 | 马维尔以色列(Misl)有限公司 | 有效编码的方法和装置 |
CN105549908A (zh) * | 2015-12-14 | 2016-05-04 | 深圳市万拓存储技术有限公司 | Raid磁盘阵列重新恢复冗余的方法 |
CN106878683A (zh) * | 2017-03-03 | 2017-06-20 | 天津天地伟业信息系统集成有限公司 | 一种图片流文件存储编码方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110865901A (zh) * | 2018-08-28 | 2020-03-06 | 华为技术有限公司 | 组建ec条带的方法和装置 |
CN110865901B (zh) * | 2018-08-28 | 2021-05-04 | 华为技术有限公司 | 组建ec条带的方法和装置 |
CN109412755A (zh) * | 2018-11-05 | 2019-03-01 | 东方网力科技股份有限公司 | 一种多媒体数据处理方法、装置及存储介质 |
CN109412755B (zh) * | 2018-11-05 | 2021-11-23 | 东方网力科技股份有限公司 | 一种多媒体数据处理方法、装置及存储介质 |
WO2020094134A1 (zh) * | 2018-11-09 | 2020-05-14 | 杭州海康威视系统技术有限公司 | 磁盘分配方法、装置和可读存储介质 |
CN111506450A (zh) * | 2019-01-31 | 2020-08-07 | 伊姆西Ip控股有限责任公司 | 用于数据处理的方法、设备和计算机程序产品 |
CN111506450B (zh) * | 2019-01-31 | 2024-01-02 | 伊姆西Ip控股有限责任公司 | 用于数据处理的方法、设备和计算机程序产品 |
CN110502365A (zh) * | 2019-07-11 | 2019-11-26 | 平安科技(深圳)有限公司 | 数据存储及恢复的方法、装置及计算机设备 |
WO2021003822A1 (zh) * | 2019-07-11 | 2021-01-14 | 平安科技(深圳)有限公司 | 数据存储及恢复的方法、装置及计算机设备 |
CN110502365B (zh) * | 2019-07-11 | 2024-03-01 | 平安科技(深圳)有限公司 | 数据存储及恢复的方法、装置及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108334419B (zh) | 2021-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108334419A (zh) | 一种数据恢复的方法和装置 | |
CN102937967B (zh) | 数据冗余实现方法及装置 | |
CN108733314B (zh) | 用于独立冗余阵列(raid)重建的方法、设备和计算机可读存储介质 | |
KR101306645B1 (ko) | 시행착오에 의한 에러 보정 디코딩 | |
US11531593B2 (en) | Data encoding, decoding and recovering method for a distributed storage system | |
CN105706059B (zh) | 非易失性存储器中的错误校正 | |
CN110089035B (zh) | 存储控制器、数据处理芯片及数据处理方法 | |
US10810091B2 (en) | Data recovery method, data storage method, and corresponding apparatus and system | |
CN108170555A (zh) | 一种数据恢复方法及设备 | |
CN105474186A (zh) | 硬件管理的压缩的高速缓存 | |
CN107515726A (zh) | 用于管理存储设备的方法和系统 | |
CN109445681B (zh) | 数据的存储方法、装置和存储系统 | |
CN104850504B (zh) | 一种加速基于xor的raid‑6编解码过程的方程并行计算方法 | |
WO2015096496A1 (zh) | 存储数据的方法及存储装置 | |
CN107153661A (zh) | 一种基于hdfs系统的数据的存储、读取方法及其装置 | |
CN113687978B (zh) | 用于存储阵列控制器的数据处理方法 | |
CN111008181A (zh) | 一种分布式文件系统存储策略切换方法、系统、终端及存储介质 | |
CN113687977A (zh) | 基于raid控制器以实现计算性能提升的数据处理装置 | |
CN117111860B (zh) | 磁盘阵列降级时的io处理方法、装置及电子设备 | |
CN116501553B (zh) | 数据恢复方法、装置、系统、电子设备及存储介质 | |
CN117492661A (zh) | 数据写入方法、介质、装置和计算设备 | |
CN111506450B (zh) | 用于数据处理的方法、设备和计算机程序产品 | |
CN109753267A (zh) | 一种冗余编码的方法、装置、设备及计算机可读存储介质 | |
CN110413207A (zh) | 降低存储系统的数据恢复时间的方法、设备和程序产品 | |
CN111026677B (zh) | 一种基于ema算法的缓存分配方法、系统、终端及存储介质 |
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 |