CN114064347B - 一种数据存储方法、装置、设备及计算机可读存储介质 - Google Patents

一种数据存储方法、装置、设备及计算机可读存储介质 Download PDF

Info

Publication number
CN114064347B
CN114064347B CN202210051777.5A CN202210051777A CN114064347B CN 114064347 B CN114064347 B CN 114064347B CN 202210051777 A CN202210051777 A CN 202210051777A CN 114064347 B CN114064347 B CN 114064347B
Authority
CN
China
Prior art keywords
block
data
check
target
stripe
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
CN202210051777.5A
Other languages
English (en)
Other versions
CN114064347A (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202210051777.5A priority Critical patent/CN114064347B/zh
Publication of CN114064347A publication Critical patent/CN114064347A/zh
Application granted granted Critical
Publication of CN114064347B publication Critical patent/CN114064347B/zh
Priority to PCT/CN2022/140464 priority patent/WO2023138289A1/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/1004Adding 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
    • 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
    • G06F11/1458Management of the backup or restore process

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Detection And Correction Of Errors (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本发明公开了一种数据存储方法、装置、设备及计算机可读存储介质,该方法包括:获取s个条带的RS存储块;其中,RS存储块包括每个条带对应的k个数据块和r个校验块;确定校验块中的目标校验块和每个目标校验块各自对应的x个数据块;根据每个目标校验块各自对应的数据块,对各目标校验块进行逻辑运算,得到每个目标校验块各自对应的更新校验块;本发明通过根据每个目标校验块各自对应的数据块,对各目标校验块进行逻辑运算,得到每个目标校验块各自对应的更新校验块,能够在RS纠删码的基础上,以编码的信息数据重组参与编码的方式,对目标校验块进行更新,从而能够在数据恢复时降低所需读取的数据量,提升解码恢复速度。

Description

一种数据存储方法、装置、设备及计算机可读存储介质
技术领域
本发明涉及存储技术领域,特别涉及一种数据存储方法、装置、设备及计算机可读存储介质。
背景技术
伴随着通讯技术和网络科技的迅速发展,数字化信息呈指数爆炸式增长,数据存储技术也因此迎来了巨大的挑战。存储系统中数据的可靠性问题以及存储系统的能耗问题越来越被人们所关注。现如今面对如此庞大的数据规模,存储系统中数据的可靠性和存储系统中包含的组件数量成反比关系,即存储系统组件数越多,那么存储系统中数据的可靠性就越低。根据相关调查显示,在一个由600个磁盘构成的互联网数据中心中,每月大约会有30个磁盘出现损坏的情况,在大规模存储系统中,磁盘故障造成的数据可靠性下降是相当严重的问题,对此人们展开了相关容错技术的研究。
纠删码的种类众多,在实际存储系统中较常见的有应用在分布式环境下的RS纠删码(Reed-Solomon Code)。RS纠删码与两个参数k和r相关。给定两个正整数k和r,RS码将k个数据块编码为r个额外的校验块。而r个校验块基于范德蒙矩阵或柯西矩阵进行编码的方式就称为利用范德蒙矩阵或柯西矩阵编码的RS纠删码。
现今环境下,大条带纠删已经是一个比较明确的应用需求,大条带纠删中的大条带指的是所组成纠删下数据和校验的条带数都比较大,这种情况下,数据的安全性能够得到很大的提高,减少硬盘检查的需求几率。但是在大条带纠删的情况下,如果发现了任何错误,数据进行恢复,利用现有的纠删算法,需要取出的数据量太大,而现在的存储限制工作速度的主要是硬盘的IOPS(每秒读写次数),数据量大时导致的读取速度就会很慢,直接影响恢复速度会很慢。
因此,如何在大条带纠删场景下,降低数据恢复时所需要读取的数据量,提升恢复速度,是现今急需解决的问题。
发明内容
本发明的目的是提供一种数据存储方法、装置、设备及计算机可读存储介质,以在RS纠删码的基础上,通过对编码的信息数据重组参与编码的方式,降低数据恢复时所需要读取的数据量,提升恢复速度。
为解决上述技术问题,本发明提供一种数据存储方法,包括:
获取s个条带的RS存储块;其中,所述RS存储块包括每个所述条带对应的k个数据块和r个校验块,skr均为大于或等于2的正整数;
确定所述校验块中的目标校验块和每个所述目标校验块各自对应的x个数据块;其中,x为大于或等于1的正整数;
根据每个所述目标校验块各自对应的数据块,对各所述目标校验块进行逻辑运算,得到每个所述目标校验块各自对应的更新校验块。
可选的,所述目标校验块的数量为
Figure 633531DEST_PATH_IMAGE001
Figure 296593DEST_PATH_IMAGE002
可选的,所述RS存储块存储在k个数据盘和r个校验盘,每个数据盘用于存储s个所述条带各自的一个数据块,每个校验盘用于存储s个所述条带各自的一个校验块。
可选的,sr均大于或等于3时,所述确定所述校验块中的目标校验块和每个所述目标校验块各自对应的x个数据块,包括:
将第二个校验盘至第k-1个校验盘中的第二个条带至第s个条带的校验块和第k个校验盘中的第三个条带至第s个条带的校验块,确定为所述目标校验块;
确定第二个校验盘至第k-1个校验盘中的第二个条带的目标校验块对应的目标条带为第一条带;
确定第k个校验盘中的第三个条带至第s个条带的目标校验块对应的目标条带为第二条带;
按照条带交叉的方式,确定第三个条带至第s个条带中每个条带在第二个校验盘至第k-1个校验盘中的目标校验块对应的目标条带;其中,在第二个校验盘至第k-1个校验盘中每个条带的目标校验块对应的目标条带为同一条带且不为所在条带;
按照盘号顺序,从每个所述目标校验块对应的目标条带选择x个数据块,确定为每个所述目标校验块各自对应的数据块。
可选的,所述根据每个所述目标校验块各自对应的数据块,对各所述目标校验块进行逻辑运算,得到每个所述目标校验块各自对应的更新校验块,包括:
利用当前目标校验块对应的x个数据块,对当前目标校验块进行异或运算,得到当前目标校验块对应的更新校验块;其中,当前目标校验块为任一所述目标校验块。
可选的,根据每个所述目标校验块各自对应的数据块,对各所述目标校验块进行逻辑运算,得到每个所述目标校验块各自对应的更新校验块之后,还包括:
根据获取的错误恢复指令,利用所述错误恢复指令中的错误数据盘对应的更新校验块,对所述错误数据盘中的数据块进行解码,得到所述错误数据盘中的数据块。
可选的,所述根据获取的错误恢复指令,利用所述错误恢复指令中的错误数据盘对应的更新校验块,对所述错误数据盘中的数据块进行解码,得到所述错误数据盘中的数据块,包括:
若所述错误恢复指令为单一数据盘错误指令,则利用每个偶数条带中各自的k-1个数据块和1个非更新校验块,恢复得到每个所述偶数条带中的错误数据块;并根据每个奇数条带中的错误数据块对应的修复用校验块和所述修复用校验块对应的非错误数据块,恢复得到每个所述奇数条带中的错误数据块。
本发明还提供了一种数据存储装置,包括:
获取模块,用于获取s个条带的RS存储块;其中,所述RS存储块包括每个所述条带对应的k个数据块和r个校验块,skr均为大于或等于2的正整数;
确定模块,用于确定所述校验块中的目标校验块和每个所述目标校验块各自对应的x个数据块;其中,x为大于或等于1的正整数;
更新模块,用于根据每个所述目标校验块各自对应的数据块,对各所述目标校验块进行逻辑运算,得到每个所述目标校验块各自对应的更新校验块。
本发明还提供了一种数据存储设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述所述的数据存储方法的步骤。
此外,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的数据存储方法的步骤。
本发明所提供的一种数据存储方法,包括:获取s个条带的RS存储块;其中,RS存储块包括每个条带对应的k个数据块和r个校验块,skr均为大于或等于2的正整数;确定校验块中的目标校验块和每个目标校验块各自对应的x个数据块;其中,x为大于或等于1的正整数;根据每个目标校验块各自对应的数据块,对各目标校验块进行逻辑运算,得到每个目标校验块各自对应的更新校验块;
可见,本发明通过根据每个目标校验块各自对应的数据块,对各目标校验块进行逻辑运算,得到每个目标校验块各自对应的更新校验块,能够在RS纠删码的基础上,以编码的信息数据重组参与编码的方式,对目标校验块进行更新,从而能够在数据恢复时降低所需读取的数据量,提升解码恢复的速度。此外,本发明还提供了一种数据存储装置、设备及计算机可读存储介质,同样具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种数据存储方法的流程图;
图2为本发明实施例所提供的一种数据存储装置的结构框图;
图3为本发明实施例所提供的一种数据存储设备的结构示意图;
图4为本发明实施例所提供的一种数据存储设备的具体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例所提供的一种数据存储方法的流程图。该方法可以包括:
步骤101:获取s个条带的RS存储块;其中,RS存储块包括每个条带对应的k个数据块和r个校验块,skr均为大于或等于2的正整数。
可以理解的是,本实施例中的RS存储块可以为以采用传统的RS纠删码所需存储的数据块和校验块;本步骤中的s个条带的RS存储块可以包括每个条带的k个数据块和每个条带各自的k个数据块利用RS纠删码进行编码后得到的r个校验块,即s个条带的RS存储块可以包括k*s个数据块和r*s个校验块。
其中,s个条带的RS存储块可以存储在k个数据盘和r个校验盘,每个数据盘用于存储s个条带各自的一个数据块,每个校验盘用于存储s个条带各自的一个校验块。
具体的,本实施例并不限定s个条带的RS存储块的具体内容,如条带中的r个校验块可以为该条带中k个数据块的利用如下范德蒙矩阵编码的RS纠删码,得到的校验块:
Figure DEST_PATH_IMAGE003
也可以为利用如下的柯西矩阵编码或其他RS算法编码的RS纠删码的校验块:
Figure 816393DEST_PATH_IMAGE004
本实施例中,无论RS纠删码采用何种算法,RS纠删码的编码(encoding)的关系可以为
Figure DEST_PATH_IMAGE005
,编码(encoding)的关系可以为
Figure 816579DEST_PATH_IMAGE006
;其中,
Figure 203305DEST_PATH_IMAGE007
可以表示校验块,
Figure 302848DEST_PATH_IMAGE008
可以表示数据块。如一个条带中包括5个数据块(即k=5)和4个校验块(即r=4)的情况下,使用标准范德蒙的RS算法进行编解码构建的纠删系统为例,此时的编码关系可以如下:
Figure 820198DEST_PATH_IMAGE009
在上述的编码关系中,以校验块
Figure 968282DEST_PATH_IMAGE010
为例,
Figure DEST_PATH_IMAGE011
。在这种情况下,若每个硬盘分为4个条带(即s=4),则可以采用如表1所示的纠删结构,存储36个RS存储块;表1中,条带1的4个校验块(p11、p12、p13和p14)可以为条带1中的5个数据块(d11、d 12、d 13、d14和p15),通过上述编码关系编码得到的校验数据;相应的,条带2至4的编码关系可以采用相同的方式得到相应的校验数据;并且传统的编码情况下,上述编码可以恢复1至4个任意盘的错误;如当发生一个错误,且错误为盘1的情况下,传统的RS纠删码需要取出盘2至5的数据块以及盘6至9中的任意一个盘校验块,来完成解码运算,此时所需取出的块数为25。
表1:一种4条带的存储纠删结构的展示表
Figure 445400DEST_PATH_IMAGE012
具体的,对于本实施例中处理器获取s个条带的RS存储块的具体方式,可以由设计人员根据实用场景和用户需求自行设置,如处理器可以对各条带的k个数据块进行RS编码,得到各条带的r个校验块,从而获取s个条带的RS存储块;处理器也可以直接获取存储的s个条带的RS存储块,本实施例对此不做任何限制。
步骤102:确定校验块中的目标校验块和每个目标校验块各自对应的x个数据块;其中,x为大于或等于1的正整数。
可以理解的是,本步骤中的目标校验块可以为s个条带的全部校验块中需要进行更新的校验块;本步骤中每个目标校验块各自对应的x个数据块可以为每个目标校验块更新时所需使用的x个数据块。
具体的,对于本步骤中处理器确定校验块中的目标校验块的具体方式,即目标校验块的具体选择,可以由设计人员根据使用场景和用户需求自行设置,如目标校验块的数量可以为
Figure 715844DEST_PATH_IMAGE013
,例如目标校验块可以为s-1个校验盘中r-1个条带的校验块(即更新可选区域)中的
Figure 684937DEST_PATH_IMAGE013
个校验块。
为了方便后续的解码调用,提高数据恢复速度,目标校验块可以为第一个条带和第一个校验盘中的校验块之外的校验块(即更新可选区域)中的
Figure 636713DEST_PATH_IMAGE014
个校验块,如将更新可选区域中第r个校验盘中第二条带的校验块之外的其他校验块确定为目标校验块;如表2所示,k=5、r=4且s=4时,可以将全部校验块中条带1(即第一个条带)和盘6(即第一个校验盘中)中的校验块之外的下划线标记区域(即更新可选区域)中校验块p24之外的8个校验块确定为目标校验块;也就是说,本步骤中sr均大于或等于3时,处理器可以将第二个校验盘至第k-1个校验盘中的第二个条带至第s个条带的校验块和第k个校验盘中的第三个条带至第s个条带的校验块,确定为目标校验块。
表2:表1所示的存储纠删结构的一种更新可选区域的展示表
Figure DEST_PATH_IMAGE015
同样的,对于本步骤中处理器确定每个目标校验块各自对应的x个数据块的具体方式,即每个目标校验块各自对应的数据块的具体数量和选择,可以由设计人员自行设置,如x个目标校验块对应的
Figure 422133DEST_PATH_IMAGE016
个数据块可以均不相同,即s个条带的全部数据块或部分数据块可以平均分配给各目标校验块;例如每个目标校验块各自对应的数据块的数量(x)可以为
Figure 706222DEST_PATH_IMAGE017
,运算向下取整;如表2至表4所示,k=5、r=4且s=4时,x=2,即每个目标校验块可以利用各自对应两个数据块进行更新。
表3:表2所示的更新可选区域中部分目标校验块更新的展示表
Figure 162611DEST_PATH_IMAGE018
表4:表2所示的更新可选区域中全部目标校验块更新的展示表
Figure DEST_PATH_IMAGE019
对应的,本实施例中处理器可以确定每个目标校验块对应的目标条带,从而为每个目标校验块从各自对应的目标条带中选择x个数据块作为各自对应的数据块;如本步骤中处理器可以确定第二个校验盘至第k-1个校验盘中的第二个条带的目标校验块对应的目标条带为第一条带;确定第k个校验盘中的第三个条带至第s个条带的目标校验块对应的目标条带为第二条带;按照条带交叉的方式,确定第三个条带至第s个条带中每个条带在第二个校验盘至第k-1个校验盘中的目标校验块对应的目标条带;按照盘号顺序,从每个目标校验块对应的目标条带选择x个数据块,确定为每个目标校验块各自对应的数据块。如表4所示,k=5、r=4且s=4时,处理器可以确定盘7和盘8中的条带2的目标校验块(p22和p23)对应的目标条带为条带1;确定盘9中的条带3和条带4的目标校验块(p34和p44)对应的目标条带为条带2;按照条带交叉的方式,确定条带3在盘7和盘8中的目标校验块(P32和p33)对应的目标条带为条带4,条带4在盘7和盘8中的目标校验块(P42和p43)对应的目标条带为条带3;按照盘号顺序,从每个目标校验块对应的目标条带选择2个数据块,确定为每个目标校验块各自对应的数据块,如从条带1中按照盘号顺序,先选择2个数据块(d11和d12)确定为校验块p22对应的数据块,再选择2个数据块(d13和d14)确定为校验块p23对应的数据块。
相应的,如表2至表4所示,灰色区域(即更新可选区域)中按照除了条带2外的数据块,对灰色区域进行按照盘号基于x的交叉更新,得到盘7和8的校验码信息更新,此时可以将盘1-4的数据块信息可以被均匀放在校验盘相应的运算区域;而其中盘5的数据块信息没有参与运算,因为本实施例中计算的x是向下取整,会存在一部分的数据盘不参与运算的情况;然后将条带2的数据块信息,按照x的数量均匀可以分配除了条带2剩余的盘(p24)的校验盘上进行更新。
步骤103:根据每个目标校验块各自对应的数据块,对各目标校验块进行逻辑运算,得到每个目标校验块各自对应的更新校验块。
具体的,本步骤中处理器可以利用每个目标校验块各自对应的x个数据块,对各目标校验块进行逻辑运算,将各目标校验块更新为相应的更新校验块,从而使得后续解码恢复过程可以通过更新校验块的使用,减少解码恢复所需的数据量。
其中,由于本实施例中每个更新校验块是利用对应的目标校验块与相应x个数据块通过逻辑运算得到的,更新数据块可以与x个数据块进行相应的逻辑运算,恢复得到对应的目标校验块(即更新前的校验块);并且更新数据块可以与对应的目标校验块和x-1个数据块进行相应的逻辑运算,恢复得到剩余的1个数据块。
具体的,对于本步骤中处理器根据每个目标校验块各自对应的数据块,对各目标校验块进行逻辑运算的具体运算方式,可以由设计人员自行设置,如为了提高更新校验块的更新速度和后续目标校验块或数据块的恢复速度,本步骤中的逻辑运算可以采用异或运算,即本步骤中利用当前目标校验块对应的x个数据块,对当前目标校验块进行异或运算,得到当前目标校验块对应的更新校验块;其中,当前目标校验块为任一目标校验块。本步骤中的逻辑运算也可以如加法运算、减法运算、乘法运算或除法运算的其他逻辑运算方式,只要更新校验块能够与其更新时所使用的目标校验块和x个数据块中的x个RS存储块,恢复剩余的1个RS存储块(即目标校验块或数据块),本实施例对此不做任何限制。
可以理解的是,本步骤之后本实施例所提供的方法还可以包括RS存储块的恢复过程,如处理器可以根据获取的错误恢复指令,利用错误恢复指令中的错误数据盘对应的更新校验块,对错误数据盘中的数据块进行解码,得到错误数据盘中的数据块。
具体的,对于处理器根据获取的错误恢复指令,利用错误恢复指令中的错误数据盘对应的更新校验块,对错误数据盘中的数据块进行解码的具体方式,可以由设计人员根据实用场景和用户需求和用户需求自行设置,如采用上述目标校验块、目标条带和目标校验块各自对应的数据块的确认方式,更新的目标数据块时,若错误恢复指令为单一数据盘错误指令,则处理器可以利用每个偶数条带中各自的k-1个数据块(即非错误数据块)和1个非更新校验块(即不为更新校验块的校验块),恢复得到每个偶数条带中的错误数据块;并根据每个奇数条带中的错误数据块对应的修复用校验块和修复用校验块对应的非错误数据块,恢复得到每个奇数条带中的错误数据块;其中,错误数据块对应的修复用校验块可以为错误数据块对应的更新数据块,即该更新数据块之前更新时用到了该错误数据块;修复用校验块对应的非错误数据块可以为该更新数据块之前更新时用到未发生错误的数据块,即未发生错误的硬盘中的数据块。
如表4所示,传统的纠删码存储系统,在盘1发生错误需要恢复时,需要取出盘2-盘6,总共20块数据,对盘1中的4个数据块(d11、d21、d31和d41)进行恢复;而本实施例中的解码调度可以从偶数条带(条带2和条带4)开始,首先基于传统RS纠删码的方式进行调度解码,取出d22-p21和d42-p41共10块数据,可以恢复d21和d41以及求得p22和p42;然后取出盘1的奇数条带所对应的偶数条带的校验码(即修复用校验码)完成解码,利用取出的p22’(即p22对应的更新校验块,如表4中的p22,d12,d12)、p42’ (即p42对应的更新校验块)、d12和d32, 以及求得的p22和p42,可以恢复d11和d31,仅需取出14块数据便可完成盘1中的4个数据块的修复,减少了数据读取量,提高了解码速度。
相应的,若错误恢复指令为两个数据盘的错误指令,则处理器可以利用第二个条带中的k-2个数据块(即非错误数据块)和2个非更新校验块,恢复得到第二个条带中的错误数据块;根据第一个条带中的错误数据块对应的第二个条带中的更新校验块和第一条带中的非错误数据块,恢复得到第一个条带中的错误数据块;根据剩余任一未恢复条带中的k-2个数据块(即非错误数据块)、非更新校验块和第r个校验块(即更新校验块),恢复得到该未恢复条带中的错误数据块;根据该未恢复条带中的其余未恢复条带中的错误数据块对应的更新校验块及该其余未恢复条带相应的数据块,恢复得到该其余未恢复条带的错误数据块;若两个错误的数据盘中的错误数据块未全部修复完成,则继续返回根据剩余任一未恢复条带中的k-2个数据块(即非错误数据块)、非更新校验块和第r个校验块(即更新校验块),恢复得到该未恢复条带中的错误数据块的步骤,直至两个错误的数据盘中的错误数据块全部修复完成。
如表4所示,传统的纠删码存储系统,在盘1和盘3发生错误需要恢复时,需要取出盘2和盘4至7,总共20块数据,对盘1和盘3中的8个数据块(d11、d21、d31、d41、d13、d23、d33和d43)进行恢复;而本实施例中的解码调度可以先取出条带2中的d22、d24、d25、p21、p24这5个数据,恢复得到d21和d23 以及求得p22和p23;再取出条带2中的p22’和p23’及条带1中的d11和d13这4个数据,恢复得到d11和d13 以及求得p34;之后取出条带3中的d32、d34、d35、p31和p34这5个数据,恢复得到d31和d33 以及求得p32和p33;最后取出条带3中的p32’和p33’和条带4中的d42和d44这4个数据,恢复得到d41和d43;总共取出18块数据便可完成盘1和盘3中的8个数据块的修复,同样能够减少数据读取量。
本实施例中,本发明实施例通过根据每个目标校验块各自对应的数据块,对各目标校验块进行逻辑运算,得到每个目标校验块各自对应的更新校验块,能够在RS纠删码的基础上,以编码的信息数据重组参与编码的方式,对目标校验块进行更新,从而能够在数据恢复时降低所需读取的数据量,提升解码恢复的速度。
相应于上面的方法实施例,本发明实施例还提供了一种数据存储装置,下文描述的一种数据存储装置与上文描述的一种数据存储方法可相互对应参照。
请参考图2,图2为本发明实施例所提供的一种数据存储装置的结构框图。该装置可以包括:
获取模块10,用于获取s个条带的RS存储块;其中,RS存储块包括每个条带对应的k个数据块和r个校验块,skr均为大于或等于2的正整数;
确定模块20,用于确定校验块中的目标校验块和每个目标校验块各自对应的x个数据块;其中,x为大于或等于1的正整数;
更新模块30,用于根据每个目标校验块各自对应的数据块,对各目标校验块进行逻辑运算,得到每个目标校验块各自对应的更新校验块。
可选的,目标校验块的数量为
Figure 891314DEST_PATH_IMAGE020
Figure 670920DEST_PATH_IMAGE021
可选的,RS存储块存储在k个数据盘和r个校验盘,每个数据盘用于存储s个条带各自的一个数据块,每个校验盘用于存储s个条带各自的一个校验块。
可选的,sr均大于或等于3时,确定模块20可以包括:
第一确定子模块,用于将第二个校验盘至第k-1个校验盘中的第二个条带至第s个条带的校验块和第k个校验盘中的第三个条带至第s个条带的校验块,确定为目标校验块;
第二确定子模块,用于确定第二个校验盘至第k-1个校验盘中的第二个条带的目标校验块对应的目标条带为第一条带;
第三确定子模块,用于确定第k个校验盘中的第三个条带至第s个条带的目标校验块对应的目标条带为第二条带;
第四确定子模块,用于按照条带交叉的方式,确定第三个条带至第s个条带中每个条带在第二个校验盘至第k-1个校验盘中的目标校验块对应的目标条带;其中,在第二个校验盘至第k-1个校验盘中每个条带的目标校验块对应的目标条带为同一条带且不为所在条带;
第五确定子模块,用于按照盘号顺序,从每个目标校验块对应的目标条带选择x个数据块,确定为每个目标校验块各自对应的数据块。
可选的,更新模块30可以具体用于利用当前目标校验块对应的x个数据块,对当前目标校验块进行异或运算,得到当前目标校验块对应的更新校验块;其中,当前目标校验块为任一目标校验块。
可选的,该装置还可以包括:
恢复模块,用于根据获取的错误恢复指令,利用错误恢复指令中的错误数据盘对应的更新校验块,对错误数据盘中的数据块进行解码,得到错误数据盘中的数据块。
可选的,恢复模块可以包括:
单一恢复子模块,用于若错误恢复指令为单一数据盘错误指令,则利用每个偶数条带中各自的k-1个数据块和1个非更新校验块,恢复得到每个偶数条带中的错误数据块;并根据每个奇数条带中的错误数据块对应的修复用校验块和修复用校验块对应的非错误数据块,恢复得到每个奇数条带中的错误数据块。
本实施例中,本发明实施例通过更新模块30根据每个目标校验块各自对应的数据块,对各目标校验块进行逻辑运算,得到每个目标校验块各自对应的更新校验块,能够在RS纠删码的基础上,以编码的信息数据重组参与编码的方式,对目标校验块进行更新,从而能够在数据恢复时降低所需读取的数据量,提升解码恢复的速度。
相应于上面的方法实施例,本发明实施例还提供了一种数据存储设备,下文描述的一种数据存储设备与上文描述的一种数据存储方法可相互对应参照。
请参考图3,图3为本发明实施例所提供的一种数据存储设备的结构示意图。该数据存储设备可以包括:
存储器D1,用于存储计算机程序;
处理器D2,用于执行计算机程序时实现上述方法实施例所提供的数据存储方法的步骤。
具体的,请参考图4,图4为本发明实施例所提供的一种数据存储设备的具体结构示意图,该数据存储设备310可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对电子设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在数据存储设备310上执行存储介质330中的一系列指令操作。
数据存储设备310还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。例如,Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等。
上文所描述的数据存储方法中的步骤可以由数据存储设备的结构实现。
相应于上面的方法实施例,本发明实施例还提供了一种计算机可读存储介质,下文描述的一种计算机可读存储介质与上文描述的一种数据存储方法可相互对应参照。
一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例所提供的数据存储方法的步骤。
该计算机可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
以上对本发明所提供的一种数据存储方法、装置、设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (8)

1.一种数据存储方法,其特征在于,包括:
获取s个条带的RS存储块;其中,所述RS存储块包括每个所述条带对应的k个数据块和r个校验块,skr均为大于或等于2的正整数;
确定所述校验块中的目标校验块和每个所述目标校验块各自对应的x个数据块;其中,x为大于或等于1的正整数;
根据每个所述目标校验块各自对应的数据块,对各所述目标校验块进行逻辑运算,得到每个所述目标校验块各自对应的更新校验块;
其中,所述根据每个所述目标校验块各自对应的数据块,对各所述目标校验块进行逻辑运算,得到每个所述目标校验块各自对应的更新校验块之后,还包括:
根据获取的错误恢复指令,利用所述错误恢复指令中的错误数据盘对应的更新校验块,对所述错误数据盘中的数据块进行解码,得到所述错误数据盘中的数据块;
所述根据获取的错误恢复指令,利用所述错误恢复指令中的错误数据盘对应的更新校验块,对所述错误数据盘中的数据块进行解码,得到所述错误数据盘中的数据块,包括:
若所述错误恢复指令为单一数据盘错误指令,则利用每个偶数条带中各自的k-1个数据块和1个非更新校验块,恢复得到每个所述偶数条带中的错误数据块;并根据每个奇数条带中的错误数据块对应的修复用校验块和所述修复用校验块对应的非错误数据块,恢复得到每个所述奇数条带中的错误数据块;其中,所述非更新校验块是指不为更新校验块的校验块,所述错误数据块对应的修复用校验块为所述错误数据块对应的更新数据块。
2.根据权利要求1所述的数据存储方法,其特征在于,所述目标校验块的数量为
Figure DEST_PATH_IMAGE001
Figure 831352DEST_PATH_IMAGE002
3.根据权利要求2所述的数据存储方法,其特征在于,所述RS存储块存储在k个数据盘和r个校验盘,每个数据盘用于存储s个所述条带各自的一个数据块,每个校验盘用于存储s个所述条带各自的一个校验块。
4.根据权利要求3所述的数据存储方法,其特征在于,sr均大于或等于3时,所述确定所述校验块中的目标校验块和每个所述目标校验块各自对应的x个数据块,包括:
将第二个校验盘至第r-1个校验盘中的第二个条带至第s个条带的校验块和第r个校验盘中的第三个条带至第s个条带的校验块,确定为所述目标校验块;
确定第二个校验盘至第r-1个校验盘中的第二个条带的目标校验块对应的目标条带为第一条带;
确定第r个校验盘中的第三个条带至第s个条带的目标校验块对应的目标条带为第二条带;
按照条带交叉的方式,确定第三个条带至第s个条带中每个条带在第二个校验盘至第r-1个校验盘中的目标校验块对应的目标条带;其中,在第二个校验盘至第r-1个校验盘中每个条带的目标校验块对应的目标条带为同一条带且不为所在条带;
按照盘号顺序,从每个所述目标校验块对应的目标条带选择x个数据块,确定为每个所述目标校验块各自对应的数据块。
5.根据权利要求1所述的数据存储方法,其特征在于,所述根据每个所述目标校验块各自对应的数据块,对各所述目标校验块进行逻辑运算,得到每个所述目标校验块各自对应的更新校验块,包括:
利用当前目标校验块对应的x个数据块,对当前目标校验块进行异或运算,得到当前目标校验块对应的更新校验块;其中,当前目标校验块为任一所述目标校验块。
6.一种数据存储装置,其特征在于,包括:
获取模块,用于获取s个条带的RS存储块;其中,所述RS存储块包括每个所述条带对应的k个数据块和r个校验块,skr均为大于或等于2的正整数;
确定模块,用于确定所述校验块中的目标校验块和每个所述目标校验块各自对应的x个数据块;其中,x为大于或等于1的正整数;
更新模块,用于根据每个所述目标校验块各自对应的数据块,对各所述目标校验块进行逻辑运算,得到每个所述目标校验块各自对应的更新校验块;
其中,所述数据存储装置,还包括:
恢复模块,用于根据获取的错误恢复指令,利用所述错误恢复指令中的错误数据盘对应的更新校验块,对所述错误数据盘中的数据块进行解码,得到所述错误数据盘中的数据块;
所述恢复模块,包括:
单一恢复子模块,用于若所述错误恢复指令为单一数据盘错误指令,则利用每个偶数条带中各自的k-1个数据块和1个非更新校验块,恢复得到每个所述偶数条带中的错误数据块;并根据每个奇数条带中的错误数据块对应的修复用校验块和所述修复用校验块对应的非错误数据块,恢复得到每个所述奇数条带中的错误数据块;其中,所述非更新校验块是指不为更新校验块的校验块,所述错误数据块对应的修复用校验块为所述错误数据块对应的更新数据块。
7.一种数据存储设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述的数据存储方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的数据存储方法的步骤。
CN202210051777.5A 2022-01-18 2022-01-18 一种数据存储方法、装置、设备及计算机可读存储介质 Active CN114064347B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210051777.5A CN114064347B (zh) 2022-01-18 2022-01-18 一种数据存储方法、装置、设备及计算机可读存储介质
PCT/CN2022/140464 WO2023138289A1 (zh) 2022-01-18 2022-12-20 一种数据存储方法、装置、设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210051777.5A CN114064347B (zh) 2022-01-18 2022-01-18 一种数据存储方法、装置、设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN114064347A CN114064347A (zh) 2022-02-18
CN114064347B true CN114064347B (zh) 2022-04-26

Family

ID=80231268

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210051777.5A Active CN114064347B (zh) 2022-01-18 2022-01-18 一种数据存储方法、装置、设备及计算机可读存储介质

Country Status (2)

Country Link
CN (1) CN114064347B (zh)
WO (1) WO2023138289A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114064347B (zh) * 2022-01-18 2022-04-26 苏州浪潮智能科技有限公司 一种数据存储方法、装置、设备及计算机可读存储介质
CN114415983B (zh) * 2022-03-30 2022-06-07 苏州浪潮智能科技有限公司 一种raid编解码方法、装置、设备及可读存储介质
CN116312726B (zh) * 2023-05-16 2023-08-15 苏州浪潮智能科技有限公司 一种数据存储方法、装置、电子设备和存储介质
CN116312725B (zh) * 2023-05-16 2023-08-15 苏州浪潮智能科技有限公司 一种数据存储方法、装置、电子设备和存储介质
CN116501262B (zh) * 2023-06-19 2023-09-19 新华三信息技术有限公司 一种数据存储方法、装置、电子设备及存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101625652B (zh) * 2009-08-04 2011-06-08 成都市华为赛门铁克科技有限公司 多磁盘容错系统及生成校验块、恢复数据块的方法
CN103577274B (zh) * 2012-07-31 2016-07-06 国际商业机器公司 管理存储器阵列的方法和装置
CN103049354B (zh) * 2012-12-21 2015-08-19 华为技术有限公司 数据修复方法、数据修复装置以及存储系统
WO2015018061A1 (zh) * 2013-08-09 2015-02-12 华为技术有限公司 一种文件处理方法及存储设备
CN108170555B (zh) * 2017-12-21 2021-07-20 浙江大华技术股份有限公司 一种数据恢复方法及设备
CN109358980B (zh) * 2018-09-25 2022-03-01 华东交通大学 一种对数据更新和单磁盘错误修复友好的raid6编码方法
CN110532126B (zh) * 2019-07-26 2020-10-27 西安交通大学 纠删码存储系统数据快速恢复方法、装置及存储介质
CN112860475B (zh) * 2021-02-04 2023-02-28 山东云海国创云计算装备产业创新中心有限公司 基于rs纠删码的校验块恢复方法、装置、系统及介质
CN114064347B (zh) * 2022-01-18 2022-04-26 苏州浪潮智能科技有限公司 一种数据存储方法、装置、设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN114064347A (zh) 2022-02-18
WO2023138289A1 (zh) 2023-07-27

Similar Documents

Publication Publication Date Title
CN114064347B (zh) 一种数据存储方法、装置、设备及计算机可读存储介质
CN111104244B (zh) 用于在存储阵列组中重建数据的方法和设备
US10089176B1 (en) Incremental updates of grid encoded data storage systems
US10162704B1 (en) Grid encoded data storage systems for efficient data repair
US9959167B1 (en) Rebundling grid encoded data storage systems
US9904589B1 (en) Incremental media size extension for grid encoded data storage systems
US10108819B1 (en) Cross-datacenter extension of grid encoded data storage systems
US9998539B1 (en) Non-parity in grid encoded data storage systems
US7681104B1 (en) Method for erasure coding data across a plurality of data stores in a network
US8775860B2 (en) System and method for exact regeneration of a failed node in a distributed storage system
JPH0812614B2 (ja) データ・ブロックを訂正する装置
CN112000512B (zh) 一种数据修复方法及相关装置
WO2023151290A1 (zh) 一种数据编码方法、装置、设备及介质
CN110427156B (zh) 一种基于分片的mbr的并行读方法
CN106874140B (zh) 数据存储方法及装置
CN109792256A (zh) 用于对擦除码的对数据进行编码和解码的装置和相关方法
CN114442950A (zh) 一种数据恢复方法、系统、装置及计算机可读存储介质
CN114116297B (zh) 一种数据编码方法、装置、设备及介质
CN113687975A (zh) 数据处理方法、装置、设备及存储介质
US10198311B1 (en) Cross-datacenter validation of grid encoded data storage systems
CN112000509B (zh) 一种基于向量指令的纠删码编码方法、系统及装置
CN115113816A (zh) 一种纠删码数据处理系统、方法、计算机设备及介质
CN110532128B (zh) 一种降低数据更新代价的纠删码编码及数据重构方法
CN111541512B (zh) 数据的处理方法、终端设备、可读存储介质
US9928141B1 (en) Exploiting variable media size in grid encoded data storage systems

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