CN114415983B - 一种raid编解码方法、装置、设备及可读存储介质 - Google Patents

一种raid编解码方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN114415983B
CN114415983B CN202210321298.0A CN202210321298A CN114415983B CN 114415983 B CN114415983 B CN 114415983B CN 202210321298 A CN202210321298 A CN 202210321298A CN 114415983 B CN114415983 B CN 114415983B
Authority
CN
China
Prior art keywords
array
unknown data
data block
unselected
parameter values
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
CN202210321298.0A
Other languages
English (en)
Other versions
CN114415983A (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 CN202210321298.0A priority Critical patent/CN114415983B/zh
Publication of CN114415983A publication Critical patent/CN114415983A/zh
Application granted granted Critical
Publication of CN114415983B publication Critical patent/CN114415983B/zh
Priority to PCT/CN2022/123600 priority patent/WO2023184921A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Error Detection And Correction (AREA)

Abstract

本申请公开了计算机技术领域内的一种RAID编解码方法、装置、设备及可读存储介质。本申请首先设定了包括n个互不相等的位置标记值的初始位置数组,而后在需要求解3个未知数据块时,基于初始位置数组确定3个未知数据块。该方案可以求解3个未知数据块,故最多可允许一个条带中有3个数据块出现错误,比RAID 5和RAID 6的数据恢复能力强,容错率更高。并且,使用简单的数组可提升运算效率。该方案既是编码过程,也是解码过程,基于同一逻辑即可完成RAID编码和RAID解码。相应地,本申请提供的一种RAID编解码装置、设备及可读存储介质,也同样具有上述技术效果。

Description

一种RAID编解码方法、装置、设备及可读存储介质
技术领域
本申请涉及计算机技术领域,特别涉及一种RAID编解码方法、装置、设备及可读存储介质。
背景技术
目前,使用多个磁盘可以组成一个容量巨大的磁盘组,称为磁盘阵列(RedundantArrays of Independent Disks,RAID)。据此,衍生出RAID 0、RAID 1、RAID 5、RAID 6等技术,当前常用的是RAID 5和RAID 6。
RAID 5可允许一个条带上最多有1个数据块错误,RAID 6可允许一个条带上最多有2个数据块错误。可见,现有技术最多允许一个条带中有2个数据块出现错误,容错率有待提高。
因此,如何提高RAID容错率,是本领域技术人员需要解决的问题。
发明内容
有鉴于此,本申请的目的在于提供一种RAID编解码方法、装置、设备及可读存储介质,以提高RAID容错率。其具体方案如下:
第一方面,本申请提供了一种RAID编解码方法,包括:
获取RAID中任一个需要进行编/解码的条带,并确定初始位置数组;所述初始位置数组包括:n个互不相等的位置标记值,n为所述条带对应的盘个数;n=m+h,m为所述条带包括的所有已知数据块的个数,h为所述条带包括的所有未知数据块的个数;
若h等于3,则在所述初始位置数组中确定每个未知数据块对应的位置标记值,并任选一个未知数据块对应的位置标记值作为目标值;
基于所述初始位置数组和所述目标值生成第一数组和第二数组;
在所述第一数组和所述第二数组中确定未被选择的未知数据块对应的参数值,并基于所述未被选择的未知数据块对应的参数值确定被除数;
基于所述未被选择的未知数据块对应的参数值、所述被除数、所述条带对应的盘个数及所有已知数据块确定3个未知数据块。
可选地,所述基于所述初始位置数组和所述目标值生成第一数组和第二数组,包括:
用所述初始位置数组中的每个位置标记值与所述目标值做减法,得到所述第一数组;
用所述初始位置数组中的每个位置标记值的平方与所述目标值的平方做减法,得到所述第二数组。
可选地,所述基于所述未被选择的未知数据块对应的参数值确定被除数,包括:
按照第一公式计算所述被除数;所述第一公式为:p_deno=p1_32×p2_22-p2_32×p1_22;
其中,p_deno为所述被除数;p1_32为所述第二数组中未被选择的未知数据块p 1对应的参数值;p2_22为所述第一数组中未被选择的未知数据块p 2对应的参数值;p2_32为所述第二数组中未被选择的未知数据块p 2对应的参数值;p1_22为所述第一数组中未被选择的未知数据块p 1对应的参数值。
可选地,所述基于所述未被选择的未知数据块对应的参数值、所述被除数、所述条带对应的盘个数及所有已知数据块确定3个未知数据块,包括:
按照第二公式计算3个未知数据块;所述第二公式包括:
p 1 =
Figure DEST_PATH_IMAGE001
Figure DEST_PATH_IMAGE002
*data(i);
p 2 =
Figure 949089DEST_PATH_IMAGE001
Figure DEST_PATH_IMAGE003
*data(i);
p 3 =
Figure DEST_PATH_IMAGE004
Figure DEST_PATH_IMAGE005
*data(i);
其中,p 1 、p 2 、p 3为3个未知数据块,n为所述条带对应的盘个数,data(i)为已知数据块iv2(i)为所述第二数组中所述已知数据块i对应的参数值;v1(i)为所述第一数组中所述已知数据块i对应的参数值;p_deno为所述被除数;p1_32为所述第二数组中未被选择的未知数据块p 1对应的参数值;p2_22为所述第一数组中未被选择的未知数据块p 2对应的参数值;p2_32为所述第二数组中未被选择的未知数据块p 2对应的参数值;p1_22为所述第一数组中未被选择的未知数据块p 1对应的参数值。
可选地,还包括:
若所述条带中作为用户数据的任一已知数据块发生更改,则基于更改后的已知数据块与原已知数据块之间的差异确定所述条带中的校验数据的校验差异,基于所述校验差异更新所述校验数据。
可选地,所述n个互不相等的位置标记值为:自然数1,2,…,n。
可选地,还包括:
若h等于2,则在所述初始位置数组中确定每个未知数据块对应的位置标记值,并按照第三公式确定2个未知数据块;所述第三公式为:
Figure DEST_PATH_IMAGE006
其中,p 1 、p 2为2个未知数据块,n为所述条带对应的盘个数,data(i)为已知数据块iv(i)为所述初始位置数组中所述已知数据块i对应的参数值;p1_locate为所述初始位置数组中未知数据块p 1对应的参数值;p2_locate为所述初始位置数组中未知数据块p 2对应的参数值。
可选地,还包括:
若h等于1,则按照第四公式确定1个未知数据块;所述第四公式为:
Figure DEST_PATH_IMAGE007
其中,p 1为1个未知数据块,n为所述条带对应的盘个数,data(i)为已知数据块i
第二方面,本申请提供了一种RAID编解码装置,包括:
获取模块,用于获取RAID中任一个需要进行编/解码的条带,并确定初始位置数组;所述初始位置数组包括:n个互不相等的位置标记值,n为所述条带对应的盘个数;n=m+h,m为所述条带包括的所有已知数据块的个数,h为所述条带包括的所有未知数据块的个数;
第一确定模块,用于若h等于3,则在所述初始位置数组中确定每个未知数据块对应的位置标记值,并任选一个未知数据块对应的位置标记值作为目标值;
生成模块,用于基于所述初始位置数组和所述目标值生成第一数组和第二数组;
第二确定模块,用于在所述第一数组和所述第二数组中确定未被选择的未知数据块对应的参数值,并基于所述未被选择的未知数据块对应的参数值确定被除数;
第三确定模块,用于基于所述未被选择的未知数据块对应的参数值、所述被除数、所述条带对应的盘个数及所有已知数据块确定3个未知数据块。
第三方面,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的RAID编解码方法。
第四方面,本申请提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的RAID编解码方法。
通过以上方案可知,本申请提供了一种RAID编解码方法,包括:获取RAID中任一个需要进行编/解码的条带,并确定初始位置数组;所述初始位置数组包括:n个互不相等的位置标记值,n为所述条带对应的盘个数;n=m+h,m为所述条带包括的所有已知数据块的个数,h为所述条带包括的所有未知数据块的个数;若h等于3,则在所述初始位置数组中确定每个未知数据块对应的位置标记值,并任选一个未知数据块对应的位置标记值作为目标值;基于所述初始位置数组和所述目标值生成第一数组和第二数组;在所述第一数组和所述第二数组中确定未被选择的未知数据块对应的参数值,并基于所述未被选择的未知数据块对应的参数值确定被除数;基于所述未被选择的未知数据块对应的参数值、所述被除数、所述条带对应的盘个数及所有已知数据块确定3个未知数据块。
可见,本申请首先设定了包括n个互不相等的位置标记值的初始位置数组,而后在需要求解3个未知数据块时,在初始位置数组中确定每个未知数据块对应的位置标记值,并任选一个未知数据块对应的位置标记值作为目标值;基于初始位置数组和目标值生成第一数组和第二数组;在第一数组和第二数组中确定未被选择的未知数据块对应的参数值,并基于未被选择的未知数据块对应的参数值确定被除数;基于未被选择的未知数据块对应的参数值、被除数、条带对应的盘个数及所有已知数据块确定3个未知数据块。该方案可以求解3个未知数据块,故最多可允许一个条带中有3个数据块出现错误,数据恢复能力强,容错率高。并且,使用简单的初始位置数组可提升运算效率。在该方案中,需要求解的未知数据块可以是:编码过程要计算的校验块,也可以是解码过程中要计算的已损坏数据块。也即:该方案描述的既是编码过程,也是解码过程,该方案基于同一逻辑即可完成RAID编码和RAID解码。由于该方案可求解3个未知数据块,因此比RAID 5和RAID 6的容错率更高,适用于大条带(如:对应盘个数不小于32的条带)编解码。
相应地,本申请提供的一种RAID编解码装置、设备及可读存储介质,也同样具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的第一种RAID编解码方法流程图;
图2为本申请公开的一种RAID编解码装置示意图;
图3为本申请公开的一种电子设备示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,RAID 5可允许一个条带上最多有1个数据块错误,RAID 6可允许一个条带上最多有2个数据块错误。可见,现有技术最多允许一个条带中有2个数据块出现错误,容错率有待提高。为此,本申请提供了一种RAID编解码方案,能够提高RAID容错率。
参见图1所示,本申请实施例公开了一种RAID编解码方法,包括:
S101、获取RAID中任一个需要进行编/解码的条带,并确定初始位置数组;初始位置数组包括:n个互不相等的位置标记值,n=m+h。
其中,n为条带对应的盘个数;m为条带包括的所有已知数据块的个数,h为条带包括的所有未知数据块的个数。
一个RAID可由若干个类型相同或不同的磁盘组成,不同磁盘可位于相同或不同机柜上。每个机柜对应一个控制器,用于控制本地机柜的数据落盘工作,不同机柜上的存储空间通过云服务进行整合。用户数据通过RAID对应的分布策略和控制方式,分别分布存储进不同的磁盘上,此时针对磁盘阵列而言,横跨不同硬盘的用于实现校验服务的单位被称作条带。
其中,初始位置数组包括:n个互不相等的位置标记值,n为条带对应的盘个数。其中,一个条带对应的盘个数也就是组成当前RAID的盘总数。若盘总数为n,那么一个条带包括n个数据块,这n个数据块分别位于n个盘上。具体的,一个条带包括的n个数据块基于当前RAID方式可记录为n=m+h。例如:RAID方式为RAID5时,n=m+1(校验块个数)。RAID方式为RAID6时,n=m+2(校验块个数)。而本实施例提供的方式n=m+3(校验块个数)。由此可见,初始位置数组包括的n个互不相等的位置标记值,与RAID中的各个盘一一对应,也对应一个条带中的各个块。
在一种具体实施方式中,初始位置数组包括的n个互不相等的位置标记值可以灵活取值。如:取1~n的自然数,或者在自然数中乱序取值为:1、4、7、8、9……,直至取到n个自然数,或者取值为等差数列、等比数列。优选地,n个互不相等的位置标记值为:自然数1,2,…,n,这样可以简化运算过程。
需要说明的是,当n个互不相等的位置标记值存在一定取值规则或取值相对简单时(如:取值自然数1,2,…,n),可简化编解码流程。因为基于n个互不相等的位置标记值得到的第一数组可相对简单。n个互不相等的位置标记值可通过软件或硬件确定取值。
S102、若h等于3,则在初始位置数组中确定每个未知数据块对应的位置标记值,并任选一个未知数据块对应的位置标记值作为目标值。
若h等于3,则表明需要求解3个未知数据块,那么使用RAID 5和RAID 6将无法完成求解。为此,本实施例基于前述设定的初始位置数组确定每个未知数据块对应的位置标记值,并任选一个未知数据块对应的位置标记值作为目标值。
由于初始位置数组包括的n个互不相等的位置标记值,对应一个条带中的各个块,那么可以在初始位置数组中确定每个未知数据块对应的位置标记值。例如:假设n=6,那么初始位置数组中包括6个互不相等的位置标记值,分别为[1,2,3,4,5,6]。假设3个未知数据块p 1 、p 2 、p 3分别对应的位置标记值为:2、4、6,那么从“2、4、6”中任选一个位置标记值作为目标值。其中,3个未知数据块对应的位置标记值与当前RAID的负载均衡存储策略等机制相关,本实施例据此机制可直接确定此对应关系。
任选一个未知数据块对应的位置标记值作为目标值意味着:从3个未知数据块p 1 p 2 、p 3分别对应的3个位置标记值中任一个即可。如:选择未知数据块p 1对应的位置标记值;或者选择未知数据块p 2对应的位置标记值;或者选择未知数据块p 3对应的位置标记值。可见,无论是选择哪个未知数据块对应的位置标记值,后续第一数组和第二数组只需相应变化即可,但都能完成求解过程。
S103、基于初始位置数组和目标值生成第一数组和第二数组。
在一种具体实施方式中,基于初始位置数组和目标值生成第一数组和第二数组,包括:用初始位置数组中的每个位置标记值与目标值做减法,得到第一数组;用初始位置数组中的每个位置标记值的平方与目标值的平方做减法,得到第二数组。例如按照上述示例,当初始位置数组为[1,2,3,4,5,6],假设步骤S102任选的位置标记值与未知数据块p 3对应,那么所选位置标记值为6。之后,用初始位置数组中的每个位置标记值与目标值做减法,可得到第一数组[-5,-4,-3,-2,-1,0]。用初始位置数组中的每个位置标记值的平方与目标值的平方做减法,可得到第二数组[-35,-32,-27,-20,-11,0]。
S104、在第一数组和第二数组中确定未被选择的未知数据块对应的参数值,并基于未被选择的未知数据块对应的参数值确定被除数。
按照上述示例,被选择的未知数据块为p 3,那么未被选择的未知数据块剩下p 1 、p 2。按照上述示例,在第一数组和第二数组中确定未被选择的未知数据块对应的参数值,即可确定出p 1在第一数组对应的-4,p 1在第二数组对应的-32;p 2在第一数组对应的-2,p 2在第二数组对应的-20。之后,基于-4,-32,-2,-20确定被除数。
在一种具体实施方式中,基于未被选择的未知数据块对应的参数值确定被除数,包括:按照第一公式计算被除数;第一公式为:p_deno=p1_32×p2_22-p2_32×p1_22;其中,p_deno为被除数;p1_32为第二数组中未被选择的未知数据块p 1对应的参数值;p2_22为第一数组中未被选择的未知数据块p 2对应的参数值;p2_32为第二数组中未被选择的未知数据块p 2对应的参数值;p1_22为第一数组中未被选择的未知数据块p 1对应的参数值。
按照上述示例,p 1在第一数组对应的-4,p 1在第二数组对应的-32;p 2在第一数组对应的-2,p 2在第二数组对应的-20,将这些数值代入第一公式,那么p_deno=(-32)×(-2)-(-20)×(-4)=64-80=-24。
S105、基于未被选择的未知数据块对应的参数值、被除数、条带对应的盘个数及所有已知数据块确定3个未知数据块。
在一种具体实施方式中,基于未被选择的未知数据块对应的参数值、被除数、条带对应的盘个数及所有已知数据块确定3个未知数据块,包括:按照第二公式计算3个未知数据块;第二公式包括:
p 1 =
Figure 301442DEST_PATH_IMAGE004
Figure 133132DEST_PATH_IMAGE002
*data(i);
p 2 =
Figure 638062DEST_PATH_IMAGE004
Figure DEST_PATH_IMAGE008
*data(i);
p 3 =
Figure 25400DEST_PATH_IMAGE004
Figure 678098DEST_PATH_IMAGE005
*data(i);
其中,p 1 、p 2 、p 3为3个未知数据块,n为条带对应的盘个数,data(i)为已知数据块iv2(i)为第二数组中已知数据块i对应的参数值;v1(i)为第一数组中已知数据块i对应的参数值;p_deno为被除数;p1_32为第二数组中未被选择的未知数据块p 1对应的参数值;p2_22为第一数组中未被选择的未知数据块p 2对应的参数值;p2_32为第二数组中未被选择的未知数据块p 2对应的参数值;p1_22为第一数组中未被选择的未知数据块p 1对应的参数值。
第二公式中的p 1 、p 2 、p 3可并行求解,从而提升运算速率。
本实施例首先设定了包括n个互不相等的位置标记值的初始位置数组,而后在需要求解3个未知数据块时,在初始位置数组确定每个未知数据块对应的位置标记值,并任选一个未知数据块对应的位置标记值作为目标值;基于初始位置数组和目标值生成第一数组和第二数组;在第一数组和第二数组中确定未被选择的未知数据块对应的参数值,并基于未被选择的未知数据块对应的参数值确定被除数;基于未被选择的未知数据块对应的参数值、被除数、条带对应的盘个数及所有已知数据块确定3个未知数据块。
可见,该方案可以求解3个未知数据块,故最多可允许一个条带中有3个数据块出现错误,数据恢复能力强,容错率高。并且,使用简单的初始位置数组可提升运算效率。在该方案中,需要求解的未知数据块可以是:编码过程要计算的校验块,也可以是解码过程中要计算的已损坏数据块。也即:该方案描述的既是编码过程,也是解码过程,该方案基于同一逻辑即可完成RAID编码和RAID解码。由于该方案可求解3个未知数据块,因此比RAID 5和RAID 6的容错率更高,适用于大条带(如:对应盘个数不小于32的条带)编解码。
当然,本实施例还支持三个错误块、两个错误块及一个错误块的恢复,可见本实施例可以向传统的RAID 5和RAID 6进行兼容,在兼容时所需要的运算无需进行额外的操作,还具有轻量化更新、高速、高效的优势。综上,本实施例具备以下优点:a.编解码使用同一套逻辑即可实现;b.编解码的参数运算只和数据块的位置有关;c.编码及解码的多个数据块可以并行求解;d.可以在组好RAID上进行升级或降级;e.少量数据块更新时,可轻量、快速完成更新。
基于上述实施例,需要说明的是,RAID编码过程对应存储数据的过程,对于已经完成编码的情况下,如有用户数据发生了更新,因为本申请的编解码仅和块位置相关,因此仅仅计算更新数据对校验数据的影响,从而实现快速的轻量化更新。例如:按照本申请在存储数据后,一个由n个块组成的条带中包括3个校验块:p 1 、p 2 、p 3;n-3个用户数据块:d 1 ,d 2 ,…, d n-3。若该条带中任一个用户数据块(d 1 ,d 2 ,…,d n-3中的任一个)发生更改,那么可直接确定更改后的数据块与更改前的数据块的差异,而后基于该差异确定3个校验块需要做的相应更改,之后可直接更改3个校验块,以完成一个条带的更改。
在一种具体实施方式中,若条带中作为用户数据的任一已知数据块发生更改,则基于更改后的已知数据块与原已知数据块之间的差异确定条带中的校验数据的校验差异,基于校验差异更新校验数据。
假设用户数据块d x 发生更改,那么可使用下述公式更新校验块p 1
d x '=d x ⊕Δd x
Δp 1=GF_div(GF_mul(GF_mul(p1_22,v2'(x))⊕GF_mul(p1_32,v1'(x)),d x ),p_ deno);
p 1'=p 1⊕Δp 1
其中,d x '为更改后的d x ,Δd x 为更改后的d x 与更改前的d x 的差异,Δp 1p 1需要做的相应更改(即p 1的校验差异),p 1'为更改后的p 1v1'(x)为第一数组中d x 对应的参数值,v2'(x)为第二数组中d x 对应的参数值。p_deno为被除数;GF_mul表示伽罗华域乘法;GF_div表示伽罗华域除法。
同理,可以据此更新校验块p 2p 3,从而得到更新后的3个校验块:p 1'、p 2'、p 3'。
基于上述实施例,需要说明的是,本申请提供的RAID编解码方案的容错率最大为3,还可以降级为2和1,也就是降级为RAID 5、RAID 6。也即:本申请在一个条带中有3个块错误时、2个块错误时、1个块错误时,都能进行纠错,完成数据恢复。
在一个条带中有3个块错误时,按照上述实施例即可完成数据恢复。
在一种具体实施方式中,还包括:
若条带包括2个未知数据块(也就是一个条带中有2个块错误时),即h等于2,则在初始位置数组中确定每个未知数据块对应的位置标记值,并按照第三公式确定2个未知数据块;第三公式为:
Figure 516742DEST_PATH_IMAGE006
其中,p 1 、p 2为2个未知数据块,n为条带对应的盘个数,data(i)为已知数据块iv(i)为初始位置数组中已知数据块i对应的参数值;p1_locate为初始位置数组中未知数据块p 1对应的参数值;p2_locate为初始位置数组中未知数据块p 2对应的参数值。i=1,2,…,n,且i不等于p 1所在位置。
若条带包括1个未知数据块(也就是一个条带中有1个块错误时),即h等于1,则按照第四公式确定1个未知数据块;第四公式为:
Figure 499348DEST_PATH_IMAGE007
其中,p 1为1个未知数据块,n为条带对应的盘个数,data(i)为已知数据块ii=1,2,…,n,且i不等于p 1所在位置。
基于上述实施例,若针对任意三个位置编码得到校验码,则实现步骤包括以下几个步骤。
1、任意三个位置的校验码的编码。
假设一个条带对应n个数据块,其中包括m个数据块,3个校验块p 1 、p 2 、p 3,则有n=m+3,输入的待编码数据为data。
2、确定数组(即初始位置数组)。
假设有一个数组{va,b,c…},数组v中各元素互不相等,且各元素共有n个,n满足上述的n=m+3的条件。
记录校验块p 1 、p 2 、p 3在数组v中对应的元素分别为:[v p1,v p2,v p3]。那么,选择p 3对应的v p3作为目标值,并计算得到v1(即第一数组)和v2(即第二数组)。
具体的,
Figure DEST_PATH_IMAGE009
假设n=6,那么数组v取值为{v∣1,2,3,4,5,6},假设p 1 、p 2 、p 3在数组v中对应的元素分别为:[2,4,6],那么数组v1取值为{v1∣-5,-4,-3,-2,-1,0},数组v2取值为{v2∣-35,-32,-27,-20,-11,0}。
3、基于所生成的v1和v2进行编码。
为进行编码,首先基于v1和v2确定一些基本参数以备后续运算使用,需要确定的参数如下:
Figure DEST_PATH_IMAGE010
其中,p1_22为v1中p 1对应的参数值;p1_32为v2中p 1对应的参数值;p2_22为v1中p 2对应的参数值;p2_32为v2中p 2对应的参数值。
基于上述各参数值计算被除数:p_deno=p1_32×p2_22-p2_32×p1_22=64-80=-24。
之后,利用下述公式编码得到3个校验块p 1 、p 2 、p 3
p 1 =
Figure 358719DEST_PATH_IMAGE001
Figure 436397DEST_PATH_IMAGE002
*data(i);
p 2 =
Figure 937785DEST_PATH_IMAGE001
Figure 964778DEST_PATH_IMAGE003
*data(i);
p 3 =
Figure 135996DEST_PATH_IMAGE001
Figure 825604DEST_PATH_IMAGE005
*data(i);
可见,按照上述过程,可以得到3个校验块p 1 、p 2 、p 3,从而实现三个块的错误恢复。从上面的描述可知,得到3个校验块需要用到p1_22、p1_32、p2_22、p2_32这些参数,而这些参数都基于数组{va,b,c…}运算得到,各参数之间相互没有依赖关系,也没有先后关系,3个校验块可以并行计算。
按照上述编码完成后,一个条带对应n个数据块,其中包括m个数据块,3个校验块p 1 、p 2 、p 3都为已知量。若其中任意三个数据块发生错误,那么发生错误的数据块的解码过程如下所示。
1、确定解码任意三个位置所需的数组v1和v2。
若三个位置的数据块发生错误,那么确定三个需要解码恢复的错误位置,记错误位置为[wrong_lc 1,wrong_lc 2,wrong_lc 3],设此时的条带对应n个数据块n=m+3。
对照上述编码过程,在初始位置数组{va,b,c…}中选择三个错误位置中的任一个错误位置对应的数值作为目标值,并计算v1和v2,而后在v1和v2中找三个错误位置对应的三个数值,记为[v w1, v w2, v w3]。
2、基于所生成的v1和v2进行解码。
假设选择的错误位置为wrong_lc 3,那么基于v1和v2确定:v1中wrong_lc 1对应的参数值;v1中wrong_lc 2对应的参数值;v2中wrong_lc 1对应的参数值;v2中wrong_lc 2对应的参数值。
之后,基于上述各参数值计算被除数。
之后,对照第二公式求解3个错误块。可见,求解3个错误块的过程就是求解3个校验块的过程。也即:任意三个位置的解码过程与编码过程完全相同。
通过上述描述可知,对于三个错误块的解码,使用与编码完全相同的逻辑就能完成,只需要将待解数据块看作校验块。因此使用同一套软件或硬件逻辑就能实现编解码。
按照上述编码完成后,一个条带对应n个数据块,其中包括m个数据块,3个校验块p 1 、p 2 、p 3都为已知量。若其中任意两个数据块发生错误,那么发生错误的数据块的解码过程如下所示。
1、确定解码任意两个位置所需的参数。
若两个位置的数据块发生错误,那么确定两个需要解码恢复的错误位置,记错误位置为[wrong_lc 1,wrong_lc 2],设此时的条带对应n个数据块n=m+3。
在初始位置数组{va,b,c…}中确定两个错误位置对应的数值,即可确定用于计算被除数的两个数值。
2、计算被除数并进行解码。
假设两个错误位置对应的数值分别为初始位置数组中的v wrong_lc1v wrong_lc2,那么被除数:p_deno= v wrong_lc1+v wrong_lc2
之后,将被除数代入第三公式,即可得到两个错误位置的数据块。
基于上述可知,对于两个错误的解码依然可以并行进行。
按照上述编码完成后,一个条带对应n个数据块,其中包括m个数据块,3个校验块p 1 、p 2 、p 3都为已知量。若其中任意一个数据块发生错误,那么发生错误的数据块的解码过程如下所示。
以错误位置为[wrong_lc]举例,此时的解码公式为第四公式:
Figure 802787DEST_PATH_IMAGE007
其中,p 1为1个未知数据块,n为条带对应的盘个数,data(i)为已知数据块ii=1,2,…,n,且i不等于p 1所在位置。
通过上述介绍可知,本申请实现三纠错的编解码流程完全相同,且依据简单数组进行编解码,运算过程简易高效。且可以向下兼容,降级至RAID5、RAID6进行解码运算。当然,本申请同时求解多个块时可以并行进行,无需求逆矩阵运算,具有明显的高速和灵活性优势。
当然,编解码流程可以在伽罗华域内完成,将相应运算关系转换为伽罗华域运算关系即可,如:加减法替换为伽罗华域加减法,乘除法分别替换为伽罗华域乘除法。
针对传统的RAID5和RAID6,可以按照本申请进行升级。而面对降级的需求,当三校验降级为二校验的RAID6时,只需要将任一校验码删除即可。而RAID6向RAID5的降级,使用RAID5操作即可。当三校验降级为单校验的RAID5时,同样只需要将任意两个校验码删除即可。操作无需进行额外运算,无需区分校验位置,可以达到快速实现。
下面对本申请实施例提供的一种RAID编解码装置进行介绍,下文描述的一种RAID编解码装置与上文描述的一种RAID编解码方法可以相互参照。
参见图2所示,本申请实施例公开了一种RAID编解码装置,包括:
获取模块201,用于获取RAID中任一个需要进行编/解码的条带,并确定初始位置数组;初始位置数组包括:n个互不相等的位置标记值,n为条带对应的盘个数;n=m+h,m为条带包括的所有已知数据块的个数,h为条带包括的所有未知数据块的个数;
第一确定模块202,用于若h等于3,则在初始位置数组中确定每个未知数据块对应的位置标记值,并任选一个未知数据块对应的位置标记值作为目标值;
生成模块203,用于基于初始位置数组和目标值生成第一数组和第二数组;
第二确定模块204,用于在第一数组和第二数组中确定未被选择的未知数据块对应的参数值,并基于未被选择的未知数据块对应的参数值确定被除数;
第三确定模块205,用于基于未被选择的未知数据块对应的参数值、被除数、条带对应的盘个数及所有已知数据块确定3个未知数据块。
在一种具体实施方式中,生成模块具体用于:
用初始位置数组中的每个位置标记值与目标值做减法,得到第一数组;
用初始位置数组中的每个位置标记值的平方与目标值的平方做减法,得到第二数组。
在一种具体实施方式中,第二确定模块具体用于:
按照第一公式计算被除数;第一公式为:p_deno=p1_32×p2_22-p2_32×p1_22;
其中,p_deno为被除数;p1_32为第二数组中未被选择的未知数据块p 1对应的参数值;p2_22为第一数组中未被选择的未知数据块p 2对应的参数值;p2_32为第二数组中未被选择的未知数据块p 2对应的参数值;p1_22为第一数组中未被选择的未知数据块p 1对应的参数值。
在一种具体实施方式中,第三确定模块具体用于:
按照第二公式计算3个未知数据块;第二公式包括:
p 1 =
Figure 871237DEST_PATH_IMAGE004
Figure 102105DEST_PATH_IMAGE002
*data(i);
p 2 =
Figure 951112DEST_PATH_IMAGE004
Figure 404090DEST_PATH_IMAGE008
*data(i);
p 3 =
Figure 982839DEST_PATH_IMAGE004
Figure 558177DEST_PATH_IMAGE005
*data(i);
其中,p 1 、p 2 、p 3为3个未知数据块,n为条带对应的盘个数,data(i)为已知数据块iv2(i)为第二数组中已知数据块i对应的参数值;v1(i)为第一数组中已知数据块i对应的参数值;p_deno为被除数;p1_32为第二数组中未被选择的未知数据块p 1对应的参数值;p2_22为第一数组中未被选择的未知数据块p 2对应的参数值;p2_32为第二数组中未被选择的未知数据块p 2对应的参数值;p1_22为第一数组中未被选择的未知数据块p 1对应的参数值。
在一种具体实施方式中,还包括:
更新模块,用于若条带中作为用户数据的任一已知数据块发生更改,则基于更改后的已知数据块与原已知数据块之间的差异确定条带中的校验数据的校验差异,基于校验差异更新校验数据。
在一种具体实施方式中,n个互不相等的位置标记值为:自然数1,2,…,n。
在一种具体实施方式中,还包括:
双纠错模块,用于若h等于2,则在初始位置数组中确定每个未知数据块对应的位置标记值,并按照第三公式确定2个未知数据块;第三公式为:
Figure 97743DEST_PATH_IMAGE006
其中,p 1 、p 2为2个未知数据块,n为条带对应的盘个数,data(i)为已知数据块iv(i)为初始位置数组中已知数据块i对应的参数值;p1_locate为初始位置数组中未知数据块p 1对应的参数值;p2_locate为初始位置数组中未知数据块p 2对应的参数值。
在一种具体实施方式中,还包括:
单纠错模块,用于若h等于1,则按照第四公式确定1个未知数据块;第四公式为:
Figure 1018DEST_PATH_IMAGE007
其中,p 1为1个未知数据块,n为条带对应的盘个数,data(i)为已知数据块i
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例提供了一种RAID编解码装置,能够提高RAID容错率。
下面对本申请实施例提供的一种电子设备进行介绍,下文描述的一种电子设备与上文描述的一种RAID编解码方法及装置可以相互参照。
参见图3所示,本申请实施例公开了一种电子设备,包括:
存储器301,用于保存计算机程序;
处理器302,用于执行所述计算机程序,以实现上述任意实施例公开的方法。
下面对本申请实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种RAID编解码方法、装置及设备可以相互参照。
一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的RAID编解码方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本申请涉及的“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法或设备固有的其它步骤或单元。
需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (8)

1.一种RAID编解码方法,其特征在于,包括:
获取RAID中任一个需要进行编/解码的条带,并确定初始位置数组;所述初始位置数组包括:n个互不相等的位置标记值,n为所述条带对应的盘个数;n=m+h,m为所述条带包括的所有已知数据块的个数,h为所述条带包括的所有未知数据块的个数;
若h等于3,则在所述初始位置数组中确定每个未知数据块对应的位置标记值,并任选一个未知数据块对应的位置标记值作为目标值;
基于所述初始位置数组和所述目标值生成第一数组和第二数组;
在所述第一数组和所述第二数组中确定未被选择的未知数据块对应的参数值,并基于所述未被选择的未知数据块对应的参数值确定被除数;
基于所述未被选择的未知数据块对应的参数值、所述被除数、所述条带对应的盘个数及所有已知数据块确定3个未知数据块;
其中,所述基于所述初始位置数组和所述目标值生成第一数组和第二数组,包括:
用所述初始位置数组中的每个位置标记值与所述目标值做减法,得到所述第一数组;
用所述初始位置数组中的每个位置标记值的平方与所述目标值的平方做减法,得到所述第二数组;
其中,所述基于所述未被选择的未知数据块对应的参数值确定被除数,包括:
按照第一公式计算所述被除数;所述第一公式为:p_deno=p1_32×p2_22-p2_32×p1_22;
其中,p_deno为所述被除数;p1_32为所述第二数组中未被选择的未知数据块p 1对应的参数值;p2_22为所述第一数组中未被选择的未知数据块p 2对应的参数值;p2_32为所述第二数组中未被选择的未知数据块p 2对应的参数值;p1_22为所述第一数组中未被选择的未知数据块p 1对应的参数值;
其中,所述基于所述未被选择的未知数据块对应的参数值、所述被除数、所述条带对应的盘个数及所有已知数据块确定3个未知数据块,包括:
按照第二公式计算3个未知数据块;所述第二公式包括:
p 1 =
Figure 671056DEST_PATH_IMAGE001
Figure 757961DEST_PATH_IMAGE002
*data(i);
p 2 =
Figure 231668DEST_PATH_IMAGE001
Figure 967805DEST_PATH_IMAGE003
*data(i);
p 3 =
Figure 122843DEST_PATH_IMAGE001
Figure 392150DEST_PATH_IMAGE004
*data(i);
其中,p 1 、p 2 、p 3为3个未知数据块,n为所述条带对应的盘个数,data(i)为已知数据块iv2(i)为所述第二数组中所述已知数据块i对应的参数值;v1(i)为所述第一数组中所述已知数据块i对应的参数值;p_deno为所述被除数;p1_32为所述第二数组中未被选择的未知数据块p 1对应的参数值;p2_22为所述第一数组中未被选择的未知数据块p 2对应的参数值;p2_32为所述第二数组中未被选择的未知数据块p 2对应的参数值;p1_22为所述第一数组中未被选择的未知数据块p 1对应的参数值。
2.根据权利要求1所述的方法,其特征在于,还包括:
若所述条带中作为用户数据的任一已知数据块发生更改,则基于更改后的已知数据块与原已知数据块之间的差异确定所述条带中的校验数据的校验差异,基于所述校验差异更新所述校验数据。
3.根据权利要求1所述的方法,其特征在于,所述n个互不相等的位置标记值为:自然数1,2,…,n。
4.根据权利要求1所述的方法,其特征在于,还包括:
若h等于2,则在所述初始位置数组中确定每个未知数据块对应的位置标记值,并按照第三公式确定2个未知数据块;所述第三公式为:
Figure 36758DEST_PATH_IMAGE005
其中,p 1 、p 2为2个未知数据块,n为所述条带对应的盘个数,data(i)为已知数据块iv(i)为所述初始位置数组中所述已知数据块i对应的参数值;p1_locate为所述初始位置数组中未知数据块p 1对应的参数值;p2_locate为所述初始位置数组中未知数据块p 2对应的参数值。
5.根据权利要求1所述的方法,其特征在于,还包括:
若h等于1,则按照第四公式确定1个未知数据块;所述第四公式为:
Figure 696409DEST_PATH_IMAGE006
其中,p 1为1个未知数据块,n为所述条带对应的盘个数,data(i)为已知数据块i
6.一种RAID编解码装置,其特征在于,包括:
获取模块,用于获取RAID中任一个需要进行编/解码的条带,并确定初始位置数组;所述初始位置数组包括:n个互不相等的位置标记值,n为所述条带对应的盘个数;n=m+h,m为所述条带包括的所有已知数据块的个数,h为所述条带包括的所有未知数据块的个数;
第一确定模块,用于若h等于3,则在所述初始位置数组中确定每个未知数据块对应的位置标记值,并任选一个未知数据块对应的位置标记值作为目标值;
生成模块,用于基于所述初始位置数组和所述目标值生成第一数组和第二数组;
第二确定模块,用于在所述第一数组和所述第二数组中确定未被选择的未知数据块对应的参数值,并基于所述未被选择的未知数据块对应的参数值确定被除数;
第三确定模块,用于基于所述未被选择的未知数据块对应的参数值、所述被除数、所述条带对应的盘个数及所有已知数据块确定3个未知数据块;
其中,生成模块具体用于:
用所述初始位置数组中的每个位置标记值与所述目标值做减法,得到所述第一数组;
用所述初始位置数组中的每个位置标记值的平方与所述目标值的平方做减法,得到所述第二数组;
其中,第二确定模块具体用于:
按照第一公式计算所述被除数;所述第一公式为:p_deno=p1_32×p2_22-p2_32×p1_22;
其中,p_deno为所述被除数;p1_32为所述第二数组中未被选择的未知数据块p 1对应的参数值;p2_22为所述第一数组中未被选择的未知数据块p 2对应的参数值;p2_32为所述第二数组中未被选择的未知数据块p 2对应的参数值;p1_22为所述第一数组中未被选择的未知数据块p 1对应的参数值;
其中,第三确定模块具体用于:
按照第二公式计算3个未知数据块;所述第二公式包括:
p 1 =
Figure 779772DEST_PATH_IMAGE001
Figure 575689DEST_PATH_IMAGE002
*data(i);
p 2 =
Figure 656778DEST_PATH_IMAGE001
Figure 600463DEST_PATH_IMAGE007
*data(i);
p 3 =
Figure 362883DEST_PATH_IMAGE001
Figure 863176DEST_PATH_IMAGE004
*data(i);
其中,p 1 、p 2 、p 3为3个未知数据块,n为所述条带对应的盘个数,data(i)为已知数据块iv2(i)为所述第二数组中所述已知数据块i对应的参数值;v1(i)为所述第一数组中所述已知数据块i对应的参数值;p_deno为所述被除数;p1_32为所述第二数组中未被选择的未知数据块p 1对应的参数值;p2_22为所述第一数组中未被选择的未知数据块p 2对应的参数值;p2_32为所述第二数组中未被选择的未知数据块p 2对应的参数值;p1_22为所述第一数组中未被选择的未知数据块p 1对应的参数值。
7.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至5任一项所述的方法。
8.一种可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的方法。
CN202210321298.0A 2022-03-30 2022-03-30 一种raid编解码方法、装置、设备及可读存储介质 Active CN114415983B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210321298.0A CN114415983B (zh) 2022-03-30 2022-03-30 一种raid编解码方法、装置、设备及可读存储介质
PCT/CN2022/123600 WO2023184921A1 (zh) 2022-03-30 2022-09-30 一种raid编解码方法、装置、设备及非易失性可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210321298.0A CN114415983B (zh) 2022-03-30 2022-03-30 一种raid编解码方法、装置、设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN114415983A CN114415983A (zh) 2022-04-29
CN114415983B true CN114415983B (zh) 2022-06-07

Family

ID=81263850

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210321298.0A Active CN114415983B (zh) 2022-03-30 2022-03-30 一种raid编解码方法、装置、设备及可读存储介质

Country Status (2)

Country Link
CN (1) CN114415983B (zh)
WO (1) WO2023184921A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114415983B (zh) * 2022-03-30 2022-06-07 苏州浪潮智能科技有限公司 一种raid编解码方法、装置、设备及可读存储介质
CN115167787B (zh) * 2022-09-06 2023-01-24 苏州浪潮智能科技有限公司 一种数据转存方法、系统、设备及计算机可读存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101387975A (zh) * 2008-10-20 2009-03-18 中科院成都信息技术有限公司 一种磁盘阵列系统
CN104866386A (zh) * 2015-05-31 2015-08-26 上海交通大学 具有最优更新代价的编码及解码方法
CN104932836A (zh) * 2015-05-31 2015-09-23 上海交通大学 一种提高单写性能的三盘容错编码和解码方法
CN105824578A (zh) * 2016-03-11 2016-08-03 华中科技大学 一种减少raid-6解码i/o数据量的方程选择方法
CN109086000A (zh) * 2018-06-22 2018-12-25 浙江工业大学 一种raid存储系统中的三容错数据布局方法
CN110704235A (zh) * 2019-09-23 2020-01-17 深圳忆联信息系统有限公司 Ssd数据保护的方法、装置、计算机设备及存储介质
CN114064347A (zh) * 2022-01-18 2022-02-18 苏州浪潮智能科技有限公司 一种数据存储方法、装置、设备及计算机可读存储介质
CN114168087A (zh) * 2022-02-11 2022-03-11 苏州浪潮智能科技有限公司 校验数据生成方法、装置、设备及存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7418649B2 (en) * 2005-03-15 2008-08-26 Microsoft Corporation Efficient implementation of reed-solomon erasure resilient codes in high-rate applications
US8364891B2 (en) * 2006-04-04 2013-01-29 Permabit Technology Corporation Storage assignment technique for scalable and fault tolerant storage system
JP4940322B2 (ja) * 2010-03-16 2012-05-30 株式会社東芝 半導体メモリ映像蓄積再生装置及びデータ書込み/読出し方法
CN103761195B (zh) * 2014-01-09 2017-05-10 浪潮电子信息产业股份有限公司 一种利用分布式数据编码的存储方法
CN106227463B (zh) * 2016-07-11 2019-06-14 苏州科达科技股份有限公司 Raid、数据读写及其重建方法
WO2018140316A1 (en) * 2017-01-24 2018-08-02 Arizona Board Of Regents On Behalf Of The University Of Arizona A method and system utilizing quintuple parity to provide fault tolerance
CN113297001B (zh) * 2021-05-20 2023-02-24 山东云海国创云计算装备产业创新中心有限公司 一种raid编解码方法及编解码电路
CN114115729B (zh) * 2021-10-29 2023-07-21 山东云海国创云计算装备产业创新中心有限公司 一种raid下的高效数据迁移方法
CN114895842A (zh) * 2022-03-29 2022-08-12 山东云海国创云计算装备产业创新中心有限公司 一种tp-raid编解码方法、系统、设备及存储介质
CN114415983B (zh) * 2022-03-30 2022-06-07 苏州浪潮智能科技有限公司 一种raid编解码方法、装置、设备及可读存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101387975A (zh) * 2008-10-20 2009-03-18 中科院成都信息技术有限公司 一种磁盘阵列系统
CN104866386A (zh) * 2015-05-31 2015-08-26 上海交通大学 具有最优更新代价的编码及解码方法
CN104932836A (zh) * 2015-05-31 2015-09-23 上海交通大学 一种提高单写性能的三盘容错编码和解码方法
CN105824578A (zh) * 2016-03-11 2016-08-03 华中科技大学 一种减少raid-6解码i/o数据量的方程选择方法
CN109086000A (zh) * 2018-06-22 2018-12-25 浙江工业大学 一种raid存储系统中的三容错数据布局方法
CN110704235A (zh) * 2019-09-23 2020-01-17 深圳忆联信息系统有限公司 Ssd数据保护的方法、装置、计算机设备及存储介质
CN114064347A (zh) * 2022-01-18 2022-02-18 苏州浪潮智能科技有限公司 一种数据存储方法、装置、设备及计算机可读存储介质
CN114168087A (zh) * 2022-02-11 2022-03-11 苏州浪潮智能科技有限公司 校验数据生成方法、装置、设备及存储介质

Also Published As

Publication number Publication date
WO2023184921A1 (zh) 2023-10-05
CN114415983A (zh) 2022-04-29

Similar Documents

Publication Publication Date Title
CN114415983B (zh) 一种raid编解码方法、装置、设备及可读存储介质
US9081752B2 (en) Redundant disk encoding via erasure decoding
US9582363B2 (en) Failure domain based storage system data stripe layout
US11531593B2 (en) Data encoding, decoding and recovering method for a distributed storage system
CN107526531B (zh) 为映射独立盘冗余阵列(raid)选择raid级别的方法和设备
US9600365B2 (en) Local erasure codes for data storage
CN104657405A (zh) 用于归档数据的基于优先级的可靠性机制的方法和系统
CN109643258A (zh) 使用高速率最小存储再生擦除代码的多节点修复
US6148430A (en) Encoding apparatus for RAID-6 system and tape drives
CN111752483B (zh) 一种存储集群中存储介质变更减少重构数据的方法及系统
US20060156178A1 (en) Data error control
US8335966B1 (en) Dual parity RAID wherein no more than N+1 data symbols contribute to any parity symbol
US7263629B2 (en) Uniform and symmetric double failure correcting technique for protecting against two disk failures in a disk array
US10644726B2 (en) Method and apparatus for reconstructing a data block
US20110239091A1 (en) Memory system and method of data writing and reading in memory systems
CN111858142A (zh) 一种数据处理方法、装置及电子设备和存储介质
JP5805727B2 (ja) 縮退故障を有するメモリセルに対応するためのデータ符号化及び復号化
US20160285476A1 (en) Method for encoding and decoding of data based on binary reed-solomon codes
WO2023184911A1 (zh) 一种数据存储方法、装置、设备及非易失性可读存储介质
CN114816278B (zh) 一种存储服务器的数据迁移方法、系统、设备及存储介质
CN114416424B (zh) 一种raid编解码方法、装置、设备及可读存储介质
US9928136B2 (en) Message storage in memory blocks using codewords
US20170288704A1 (en) Accelerated erasure coding for storage systems
KR101566088B1 (ko) 조합 숫자 시스템을 사용한 인코딩 및 디코딩 기법
CN114691414A (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