CN104461373A - 一种raid数据处理方法及装置 - Google Patents

一种raid数据处理方法及装置 Download PDF

Info

Publication number
CN104461373A
CN104461373A CN201310423447.5A CN201310423447A CN104461373A CN 104461373 A CN104461373 A CN 104461373A CN 201310423447 A CN201310423447 A CN 201310423447A CN 104461373 A CN104461373 A CN 104461373A
Authority
CN
China
Prior art keywords
data
data cell
write
galois field
verification unit
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
Application number
CN201310423447.5A
Other languages
English (en)
Other versions
CN104461373B (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.)
Macrosan Technologies Co Ltd
Original Assignee
Macrosan Technologies 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 Macrosan Technologies Co Ltd filed Critical Macrosan Technologies Co Ltd
Priority to CN201310423447.5A priority Critical patent/CN104461373B/zh
Publication of CN104461373A publication Critical patent/CN104461373A/zh
Application granted granted Critical
Publication of CN104461373B publication Critical patent/CN104461373B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明提供一种RAID数据处理方法及对应的装置,应用于计算机系统上,该方法包括:对于写命令,当故障成员磁盘数量小于或等于m时,确定该写命令需要写入的数据单元;使用相同有限域校验算法更新当前条带上所有可以访问且需要写入的数据单元以及校验单元;对于读命令,当故障成员磁盘数量小于或等于m时,确定该读命令对应的数据单元,若需要读取的数据单元位于正常状态的成员磁盘上,从该数据单元中读取对应的用户数据,若需要读取的数据单元位于故障成员磁盘上,则根据当前可访问的数据单元以及校验单元中的数据使用所述有限域校验算法恢复出用户数据。本发明极大提高了RAID实现的灵活性,同时大幅降低了算法开发实现难度。

Description

一种RAID数据处理方法及装置
技术领域
本发明涉及数据存储技术领域,尤其涉及一种RAID数据处理方法及装置。
背景技术
独立磁盘冗余阵列(Redundant Array of Independent disks,RAID)是一种把多个独立的物理磁盘(disk)组合起来形成的一个磁盘组,因此可以向用户主机提供比单个磁盘更高的存储性能,并可提供数据备份功能。根据不同的数据组织方式,常用的RAID包括RAID0、RAID1、RAID5、RAID6、RAID10等多种级别。RAID中包括有以下的技术定义。
条带:把连续的数据分割成等大小的数据块,把每个数据块的数据按照RAID算法写入到RAID的成员磁盘上。连续数据等长分割后的数据块称为条带,数据块大小称为条带大小。
条块:每个条带的数据分布到多个成员磁盘上,条带在每个成员磁盘上占用的空间大小称为条块。
数据单元:表示用于存放用户数据的条块。
校验单元:表示用于存放校验数据的条块。
校验组:一个条带中,由多个数据单元和一个校验单元组成的集合,校验单元中的校验数据由该条带中数据单元的用户数据通过RAID校验算法计算得到。
RAID同步:通过RAID校验算法,计算出校验数据并写入校验单元的处理过程。
RAID重建:在RAID成员磁盘故障或拔出后,通过RAID算法,计算故障磁盘或被拔出磁盘中数据,并写入重建盘,恢复RAID数据冗余性的过程。
为了避免单个磁盘故障导致数据丢失,存储系统通常使用RAID技术对数据进行保护。对于冗余RAID,RAID可容忍的故障磁盘数目取决于RAID级别。磁盘故障后可触发重建,即,使用热备盘替换故障磁盘,通过RAID重建算法把故障盘中的数据重构到热备盘上,恢复RAID的冗余性。常见的冗余RAID算法包括:
RAID5算法:支持1个磁盘发生故障数据不丢失,RAID5可用容量=(n-1)×最小成员磁盘容量,其中n指成员磁盘数目。
RAID6算法:支持2个磁盘同时发生故障数据不丢失,RAID6可用容量=(n-2)×最小成员磁盘容量,其中n指成员磁盘数目。
RAID10算法:支持非同一个镜像对中多个磁盘同时发生故障数据不丢失,RAID10可用容量=(n/2)x磁盘最小容量,其中n指成员磁盘数目。
请参考图1,RAID6算法可以保证,一个条带上2个磁盘同时发生介质错误时,仍然可以通过该条带上其他磁盘的数据重构出故障磁盘的数据。其他级别的RAID也有自身的优势和缺点,比如说RAID10可以支持非同一个镜像对中多个磁盘同时发生故障数据不丢失,但是其容量利用率只有1/2,因此从投资回报率来看,RAID10并不是一个理想选择;而且RAID10无法解决同一个镜像对中2个磁盘同时发生故障的情况,存在数据丢失的风险。RAID5算法容量利用率高,但是仅支持1个磁盘故障,数据丢失的风险系数有相对较高。RAID6算法容量利用率介于RAID10和RAID5之间,但是因为校验数据采用两种不同算法计算得到,算法层面的实现相当复杂,另外,RAID6不支持大于2个磁盘同时发生故障,在对可靠性要求较高的场景中,RAID6的灵活性和扩展性相对较差。
发明内容
有鉴于此,本发明提供一种RAID数据处理装置,应用于计算机系统上,该RAID包括n+m个成员磁盘,其中n为一个RAID条带中数据单元的数量,m为一个RAID条带中校验单元的数量;或者说n为RAID中数据盘的数量,m为校验盘的数量,其中n和m均为自然数;该装置包括写处理模块以及读处理单元,其中:
写处理模块,用于处理来自用户侧的写命令,当故障成员磁盘数量小于或等于m时,确定该写命令对应的当前条带中需要写入的数据单元;使用相同的有限域校验算法更新当前条带上所有可以访问且需要写入的数据单元以及校验单元中的数据,其中不同的校验单元中的校验数据不同;
读处理模块,用于处理来自用户侧的读命令,当故障成员磁盘数量小于或等于m时,确定该读命令对应的当前条带中需要读取的数据单元,若需要读取的数据单元位于正常状态的成员磁盘上,从该数据单元中读取对应的用户数据,若需要读取的数据单元位于故障成员磁盘上,则根据当前可访问的数据单元以及校验单元中的数据使用所述有限域校验算法恢复出需要读取的用户数据。
本发明还提供一种RAID数据处理方法,应用于计算机系统上,该RAID包括n+m个成员磁盘,其中n为一个RAID条带中数据单元的数量,m为一个RAID条带中校验单元的数量,n和m均为自然数;其中该方法包括以下步骤:
步骤A、处理来自用户侧的写命令,当故障成员磁盘数量小于或等于m时,确定该写命令对应的当前条带中需要写入的数据单元;使用相同的有限域校验算法更新当前条带上所有可以访问且需要写入的数据单元以及校验单元中的数据,其中不同的校验单元中的校验数据不同;
步骤B、处理来自用户侧的读命令,当故障成员磁盘数量小于或等于m时,确定该读命令对应的当前条带中需要读取的数据单元,若需要读取的数据单元位于正常状态的成员磁盘上,从该数据单元中读取对应的用户数据,若需要读取的数据单元位于故障成员磁盘上,则根据当前可访问的数据单元以及校验单元中的数据使用所述有限域校验算法恢复出需要读取的用户数据。
相较于现有技术,本发明实现了一个RAID条带提供m个校验组,且不同校验组使用相同校验算法来实现数据校验,极大地提高了RAID实现的灵活性,可以提供更多级别数据可靠性,适应更多细分的用户需求,并且解决了现有技术中每个校验组均使用不同算法所引发的算法开发实现困难问题,以及使用不同算法导致计算系统性能消耗严重的问题。
附图说明
图1是现有技术中RAID6内数据组织关系示例性示意图。
图2是本发明一种实施方式中RAID数据处理装置的逻辑结构及基本硬件环境示意图。
图3是本发明一种实施方式中RAID内数据组织关系示例性示意图。
具体实施方式
针对现有技术的缺点,本发明提出一种全新的RAID实现方案,使用单一算法支持多个磁盘同时发生故障时,仍然能够恢复数据,且对多个故障盘无逻辑上的要求,提升RAID使用的灵活性和健壮性。请参考图2,在优选的实施方式中,本发明提供一种应用于计算机系统上的RAID数据处理装置,其中该RAID包括n+m个成员磁盘,其中n为一个RAID条带中数据单元的数量,m为一个RAID条带中校验单元的数量,n和m均为自然数。该RAID处理装置包括:写处理模块以及读处理模块。所述计算机系统指包括有若干个成员磁盘的设备,其可能是任意形式的计算系统,比如工作站,或者服务器,或者专用的网络存储设备,甚至可能是个人主机。需要说明的是RAID数据处理装置可以使用软件实现,也可以使用硬件实现,比如RAID插卡等形式,甚至可以使用软硬结合的方式实现。
所述写处理模块,用于处理来自用户侧的写命令,当故障成员磁盘数量小于或等于m时,确定该写命令对应的当前条带中需要写入的数据单元;使用相同的有限域校验算法更新当前条带上所有可以访问且需要写入的数据单元以及校验单元中的数据,其中不同的校验单元中的校验数据不同;
所述读处理模块,用于处理来自用户侧的读命令,当故障成员磁盘数量小于或等于m时,确定该读命令对应的当前条带中需要读取的数据单元,若需要读取的数据单元位于正常状态的成员磁盘上,从该数据单元中读取对应的用户数据,若需要读取的数据单元位于故障成员磁盘上,则根据当前可访问的数据单元以及校验单元中的数据使用所述有限域校验算法恢复出需要读取的用户数据。
以下通过实例来介绍本发明的具体实施,在本发明中,RAID的级别可以由开发者或者标准组织重新定义。本发明使用有限域校验算法进行数据校验和恢复以改善RAID校验算法的缺陷。以下以伽罗瓦域运算为例进行说明,伽罗瓦域是一种典型有限域,在这个域上的算术运算是封闭的,伽罗瓦域乘法就是在这种域中的两个单元的乘积,结果也必定在相同的域中。
如前所述n表示一个RAID条带中的数据单元个数,m表示一个RAID条带中的校验单元个数,即该RAID能容忍的故障磁盘数目的上限。除了n和m之外,还引入位宽w这个参数,以下没有特别说明的情况下,各个表征数量的参数均为大于或等于零的整数。伽罗瓦域的位宽w:其常用的域为GF(28),该域的位宽为8,即该域中的所有元素都是一个字节。
RAID中的上述参数通常需要满足算式(1)和(2)的基本约束条件:
n≥m      (1)
2w≥n+m      (2)
在用户数据与校验数据的关系上,本发明RAID中每个校验单元由该条带中数据单元通过伽罗瓦域乘法计算出来;每个条带上一共有m个校验组,其中第i个校验组的表达式为算式(3):
Ci=ai1D1+ai2D2+ai3D3+...+aijDj+...+ainDn       (3)
其中i=(1,2...m),aij是伽罗瓦域中的常数,aijDj表示常数aij和用户数据Dj进行伽罗瓦域乘法运算,‘+’表示伽罗瓦域加法运算,而Ci表示校验数据。其中所述m个校验组的表达式中使用的常数可以表达为一个m行n列的矩阵,在本发明中该矩阵称为RAID常数矩阵,该RAID常数矩阵中的元素由选定伽罗瓦域中的常数确定,具体如算式(4)式所示:
a 11 a 12 a 13 . . . a 1 n a 21 a 22 a 23 . . . a 2 n . . . . . . . . . . . . . . . a m 1 a m 2 a m 3 . . . a mn - - - ( 4 )
在本发明中RAID常数矩阵通常需要满足下列2个条件:
条件一:常数矩阵是满秩的,即常数矩阵是可逆的、各行都是线性不相关的。
条件二:常数矩阵的任意子矩阵也是满秩的,即常数矩阵的任意子阵是可逆的、各行都是线性不相关的。
满足上述条件的常数矩阵有多种,开发人员在实现时可选择其中一种矩阵作为常数矩阵。在创建RAID时,根据数据盘个数m和校验盘个数n选择对应的m×n常数矩阵。RAID创建成功后,其常数矩阵固定不变,可以一直使用。
请参考图3,以包括8个磁盘的RAID为例,该RAID包含5个数据盘,3个校验盘,选用GF(28)伽罗瓦域。此时该RAID的参数是:n=5;m=3;w=8,此时该RAID最多支持3个磁盘故障而不丢失用户数据。该RAID选用的RAID常数矩阵如算式(5)所示:
1 142 170 93 96 142 1 93 170 138 170 93 1 142 112 - - - ( 5 )
请继续参考图3,假设Dx表示数据单元中的用户数据,而Ci表示校验单元中的校验数据。以条带1为例,由于数据单元的用户数据是已知的,条带1中各校验单元的校验数据可通过算式(6)得到:
C1=D1+142·D2+170·D3+93·D4+96·D5
C2=142·D1+D2+93·D3+170·D4+138·D5
C3=170·D1+93·D2+D3+142·D4+112·D5       (6)
基于以上参数与算法的基本描述,以下结合一定的实例针对RAID上的用户数据读写进行更为详细的说明。
I,正常情况下的读写命令处理
假设RAID中所有磁盘均在位且状态正常的。当接收到用户侧读命令时,读处理模块直接读磁盘上对应的数据返回给主机即可,当然条带中的数据有可能在读缓存中,是否使用读缓存或写缓存并不是本发明所关心的,缓存只是为了提升数据读写速度,并不会改变数据在磁盘上的实际存储位置。在接收到写命令时,如果每个数据单元都需要写入数据,那么不涉及回读问题,直接用写入的数据计算出m校验数据即可。如果写命令不是写满整个条带的话,那么条带中无需修改的数据则需要回读。接下来根据回读到的未修改数据和以及待修改的新数据一起计算出m个校验数据。以图3中的条带1为例,假设写命令涉及用户数据D1以及D2的修改,需要分别修改为D1ˊ和D2ˊ,而D3到D5不修改。此时使用D1ˊ、D2ˊ、D3、D4、D5根据算式6来重新计算出三个新校验数据C1ˊ、C2ˊ、C3ˊ。把新用户数据D1ˊ、D2ˊ以及新校验数据C1ˊ、C2ˊ、C3ˊ分别写入对应的数据单元以及对应校验单元。与现有技术不同的是,本发明中因为RAID支持m个校验组,因此需要计算m个校验组中的校验数据,并写入到对应的校验单元,m个校验数据的算法却是相同的,因此本发明可以大幅度降低算法开发的难度。
II、磁盘故障时读写命令处理
如前所述,RAID支持m个校验盘,即1到m个磁盘故障的情况下,用户数据都不会丢失。下面以最为极端的m个磁盘故障为例进行说明。
RAID中m个磁盘故障对应到条带层面,可能导致x个数据单元和y个校验单元不能访问,z个数据单元可访问,x,y,z均为自然数;此时各个参数之间的关系可以表达为算式(7):
m=x+y
n=x+z           (7)
对于这种极端的故障,可以细分为下面几种情况:
a)当前条带中不能访问的单元是校验单元,即x=0,y=m:
在a)这种情况下,由于用户数据并没有丢失,因此读处理模块在确定需要读取的数据单元后同样可以直接读取用户数据,比如说图3中disk6-8故障,对于条带1上的用户数据读取而言,只需要根据读命令的需要读取D1到D5即可,不需要处理校验单元。当接收到写命令时,因为校验单元所在磁盘都故障了,此时也不需要写校验单元,写处理模块直接将新数据写到对应的数据单元即可。
b)当前条带中不能访问的都是数据单元,即y=0,x=m:
在接收到读命令时,如果读命令要读取的数据单元位于可访问的磁盘上,那么读处理模块可直接读出对应的用户数据;如果读命令需要读取的数据单元不能访问,则需要通过可访问的数据单元和校验单元的数据使用算法进行恢复。
在接收到收到写命令时,此时需要重新计算所有校验单元的校验数据,重新计算校验数据的过程若涉及对其他数据单元进行回读处理,则同样需要通过可访问的数据单元和校验单元的数据对该数据单元的用户数据进行恢复。不可访问的数据单元中的数据恢复过程如下:
假设不能访问的数据单元是Dj1...Djm所在的数据单元,可访问的数据单元是Dk1...Dkz所在的数据单元,则此时可以根据算式(3)变形出算式(8):
a1j1Dj1+a1j2Dj2+...+a1jmDjm=C1+a1k1Dk1+..+a1kzDkz
a2j1Dj1+a2j2Dj2+...+a2jmDjm=C2+a2k1Dk1+...+a2kzDkz
......
amj1Dj1+amj2Dj2+...+amjmDjm=Cm+am1kDk1+...+amkzDkz      (8)
在算式(8)中,C1......Cm和Dk1...Dkz都是可访问数据,ak1...akz是常数矩阵中定义的常数,因此根据这些已知的数据,可计算出等号右边的值。接下来对算式(8)表达的该线性方程进行求解,根据算式(8)可推导出Dj1...Djm中数据恢复算式(9):
D x = ( A ′ - 1 A * | A ′ - 1 ) ( D * C ) - - - ( 9 )
此时回读该条带位于n个正常磁盘上的数据单元和校验单元中的数据,可根据算式(9)计算不可访问磁盘中的用户数据。其中A′-1表示故障数据盘对应的常数矩阵中常数组成的子阵A′的逆矩阵,是一个m×m矩阵;A*表示所有可访问的数据盘对应的常数矩阵中常数组成的子矩阵,是一个m×z矩阵;D*和C对应可访问的数据单元和校验单元中数据;Dx对应需要恢复的数据。
继续以图3为例进行说明,假设丢失的是disk2、disk3、disk4三个数据盘,对应到条带1,丢失的数据是D2、D3、D4,则:
A ′ = 142 170 93 1 93 170 93 1 142 - - - ( 10 )
A * = 1 96 142 138 170 112 - - - ( 11 )
对方阵A′求逆:
A ′ - 1 = 113 159 173 217 166 159 5 217 113 - - - ( 12 )
则:
( A ′ - 1 A * | A ′ - 1 ) = 226 30 113 159 173 7 140 217 166 159 14 136 5 217 113 - - - ( 13 )
根据算式(9)可以得到D2、D3、D4的算式(14),根据该算式分别计算出原来的数据D2,D3以及D4:
D2=226·D1+30·D5+113·C1+159·C2+173·C3
D3=7·D1+140·D5+217·C1+166·C2+159·C3
D4=14·D1+136·D5+5·C1+217·C2+113·C3       (14)
III、不能访问的单元包含数据单元和校验单元,即x和y均不等于0。
这种情况和情况II类似,也可以根据算式(3)推导出一个类似算式(9)的数据恢复算式(15):
D x = ( A ′ - 1 A * | A ′ - 1 ) ( D * C * )
Cy=ay1D1+ay2D2+ay3D3+...+ayjDj+...+aynDn      (15)
其中A′-1表示不可访问数据单元在常数矩阵中对应的常数组成的子矩阵A′的逆矩阵;A*表示所有可访问的数据单元在常数矩阵中常数组成的子矩阵;D*和C*对应可访问的数据单元和校验单元中数据;Dx对应需要恢复的数据单元中数据;Cy对应需要恢复的校验单元中数据,Cy的计算需要在Dx计算完成后再进行。
继续以图3为例来说明,假设故障的磁盘是disk2、disk3和disk8,对应到条带1,丢失的数据是D2、D3、C3,此时:
A ′ = 142 170 1 93 - - - ( 16 )
A * = 1 93 96 142 170 138 - - - ( 17 )
对矩阵Aˊ求逆矩阵:
A ′ - 1 = 32 17 221 224 - - - ( 18 )
则:
( A ′ - 1 A * | A ′ - 1 ) = 166 183 94 32 17 173 166 44 221 224 - - - ( 19 )
接下来根据算式(16)到(19)可以得到D2、D3的计算算式(20),从而计算出原来的数据D2和D3。由于D1到D5的数据都已经知道,因此可以根据算式(6)计算出C3。
D2=166·D1+183·D4+94·D5+32·C1+17·C2
D3=173·D1+166·D4+44·D5+221·C1+224·C2
C3=170·D1+93·D2+D3+142·D4+112·D5       (20)
从以上的过程中可以看出,本发明在使用同一个算法的前提下可以支持RAID灵活配置一个校验组中校验单元的数量,以一个RAID中包括八个磁盘为例,在需要高可靠性的场景中,n可以为4,而m可以为4,此时只要RAID中同时故障的磁盘不超过4个,那么用户数据不会丢失,且4个故障盘可以是任意磁盘,无逻辑要求。在需要可靠性与容量比较均衡的场景中,n可以为6,而m可以为2;假设所有磁盘容量都相同,那么可以存放用户数据的有效容量可以达到所有磁盘容量的75%。在需要一定可靠性,但有限考虑容量的场景中,n可以为7,而m可以为1。对于存储领域的开发者而言,其不再需要因为RAID级别的不同,而开发和维护很多套算法,可大幅度降低开发成本。并且对于用户而言,其打破了现有技术中m数量不灵活的问题,RAID中磁盘越多,其灵活性问题越突出,而本发明并无这方面的限制。
进一步来说,本发明还可以进一步包括同步处理模块以及重建处理模块,对于RAID同步特性而言,其是计算校验数据写入校验单元,因此同样可以利用前述算式计算出每个条带上的校验数据,写入对应的校验单元即可。如果一个条带上存在多个校验组,需要分别计算多个校验单元的数据并写入,该条带中所有校验单元的校验数据写入成功后,才认为该条带同步完成。对于RAID重建来说,同样可以参考前述恢复数据的过程来计算出不能访问的数据单元或校验单元中原来的数据,写入重建盘即可。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (16)

1.一种RAID数据处理装置,应用于计算机系统上,该RAID包括n+m个成员磁盘,其中n为一个RAID条带中数据单元的数量,m为一个RAID条带中校验单元的数量,n和m均为自然数;该装置包括写处理模块以及读处理单元,其特征在于:
写处理模块,用于处理来自用户侧的写命令,当故障成员磁盘数量小于或等于m时,确定该写命令对应的当前条带中需要写入的数据单元;使用相同的有限域校验算法更新当前条带上所有可以访问且需要写入的数据单元以及校验单元中的数据,其中不同的校验单元中的校验数据不同;
读处理模块,用于处理来自用户侧的读命令,当故障成员磁盘数量小于或等于m时,确定该读命令对应的当前条带中需要读取的数据单元,若需要读取的数据单元位于正常状态的成员磁盘上,从该数据单元中读取对应的用户数据,若需要读取的数据单元位于故障成员磁盘上,则根据当前可访问的数据单元以及校验单元中的数据使用所述有限域校验算法恢复出需要读取的用户数据。
2.如权利要求1所述的装置,其特征在于:所述有限域校验算法为伽罗瓦域运算。
3.如权利要求2所述的装置,其特征在于:更新当前条带上所有可以访问且需要写入用户数据的数据单元以及校验单元中的数据的过程具体包括:
若所有成员磁盘都正常且该条带的数据单元均需要写入用户数据,根据需要写入的用户数据使用所述有限域校验算法计算出m个不同的校验数据;
若所有数据单元所在成员磁盘都正常且存在无需写入的数据单元,则回读该数据单元中的数据,根据回读用户数据以及需要写入的用户数据使用所述有限域校验算法计算出m个不同的校验数据;
若故障成员磁盘数量等于m且所有校验单元均位于故障成员磁盘上,将需要写入的用户数据写入到当前条带上需要写入的数据单元中;
若故障成员磁盘数量小于或等于m,且至少一个不可访问的数据单元位于故障成员磁盘上,对于不可访问且无需写入的数据单元,根据所述有限域校验算法恢复出对应的用户数据,对于可访问且无需写入的数据单元从该数据单元回读出用户数据,根据需要写入的用户数据、恢复出的用户数据以及回读出的用户数据使用有限域校验算法计算出u个校验数据,其中u为可访问的校验单元的数量;
将需要写入的用户数据以及计算出的校验数据分别写入到可访问且需要写入的数据单元以及可访问的校验单元中。
4.如权利要求2或3所述的装置,其特征在于:所述有限域校验算法中计算校验数据的算式为:
Ci=ai1D1+ai2D2+ai3D3+...+aijDj+...+ainDn
其中i为小于等于m的自然数,j为小于等于n的自然数,aij是伽罗瓦域中的常数,aijDj表示常数aij和用户数据Dj进行伽罗瓦域乘法运算,‘+’表示伽罗瓦域加法运算,而Ci表示校验数据。
5.如权利要求4所述的装置,其特征在于:所述aij所构成的m行n列的RAID常数矩阵是满秩的,且该矩阵的任意子矩阵也是满秩的。
6.如权利要求5所述的装置,其特征在于:当校验单元均可访问时,使用有限域校验算法恢复出用户数据的算式具体为:
D x = ( A ′ - 1 A * | A ′ - 1 ) ( D * C )
其中A′-1表示不可访问数据单元在常数矩阵中对应的常数组成的子矩阵A′的逆矩阵;A*表示所有可访问的数据单元在常数矩阵中常数组成的子矩阵;D*和C分别对应可访问的数据单元和校验单元中的数据;Dx对应需要恢复的数据单元中的数据。
7.如权利要求5所述的装置,其特征在于:当部分校验数据可访问时,使用有限域校验算法恢复出用户数据或校验数据的算式具体为:
D x = ( A ′ - 1 A * | A ′ - 1 ) ( D * C * )
Cy=ay1D1+ay2D2+ay3D3+...+ayjDj+...+aynDn
其中A′-1表示不可访问数据单元在常数矩阵中对应的常数组成的子矩阵A′的逆矩阵;A*表示所有可访问的数据单元在常数矩阵中常数组成的子矩阵;D*和C*对应可访问的数据单元和校验单元中数据;Dx对应需要恢复的数据单元中数据;Cy对应需要恢复的校验单元中数据。
8.如权利要求2所述的装置,其特征在于:所述伽罗瓦域的位宽为w,w为自然数,其中所述n大于等于m,n与m之和小于等于2的w次方。
9.一种RAID数据处理方法,应用于计算机系统上,该RAID包括n+m个成员磁盘,其中n为一个RAID条带中数据单元的数量,m为一个RAID条带中校验单元的数量,n和m均为自然数;其特征在于,该方法包括以下步骤:
步骤A、处理来自用户侧的写命令,当故障成员磁盘数量小于或等于m时,确定该写命令对应的当前条带中需要写入的数据单元;使用相同的有限域校验算法更新当前条带上所有可以访问且需要写入的数据单元以及校验单元中的数据,其中不同的校验单元中的校验数据不同;
步骤B、处理来自用户侧的读命令,当故障成员磁盘数量小于或等于m时,确定该读命令对应的当前条带中需要读取的数据单元,若需要读取的数据单元位于正常状态的成员磁盘上,从该数据单元中读取对应的用户数据,若需要读取的数据单元位于故障成员磁盘上,则根据当前可访问的数据单元以及校验单元中的数据使用所述有限域校验算法恢复出需要读取的用户数据。
10.如权利要求9所述的方法,其特征在于:所述有限域校验算法为伽罗瓦域运算。
11.如权利要求10所述的方法,其特征在于:更新当前条带上所有可以访问且需要写入用户数据的数据单元以及校验单元中的数据的过程具体包括:
若所有成员磁盘都正常且该条带的数据单元均需要写入用户数据,根据需要写入的用户数据使用所述有限域校验算法计算出m个不同的校验数据;
若所有数据单元所在成员磁盘都正常且存在无需写入的数据单元,则回读该数据单元中的数据,根据回读用户数据以及需要写入的用户数据使用所述有限域校验算法计算出m个不同的校验数据;
若故障成员磁盘数量等于m且所有校验单元均位于故障成员磁盘上,将需要写入的用户数据写入到当前条带上需要写入的数据单元中;
若故障成员磁盘数量小于或等于m,且至少一个不可访问的数据单元位于故障成员磁盘上,对于不可访问且无需写入的数据单元,根据所述有限域校验算法恢复出对应的用户数据,对于可访问且无需写入的数据单元从该数据单元回读出用户数据,根据需要写入的用户数据、恢复出的用户数据以及回读出的用户数据使用有限域校验算法计算出u个校验数据,其中u为可访问的校验单元的数量;
将需要写入的用户数据以及计算出的校验数据分别写入到可访问且需要写入的数据单元以及可访问的校验单元中。
12.如权利要求10或11所述的方法,其特征在于:所述有限域校验算法中计算校验数据的算式为:
Ci=ai1D1+ai2D2+ai3D3+...+aijDj+...+ainDn
其中i为小于等于m的自然数,j为小于等于n的自然数,aij是伽罗瓦域中的常数,aijDj表示常数aij和用户数据Dj进行伽罗瓦域乘法运算,‘+’表示伽罗瓦域加法运算,而Ci表示校验数据。
13.如权利要求12所述的方法,其特征在于:所述aij所构成的m行n列的RAID常数矩阵是满秩的,且该矩阵的任意子矩阵也是满秩的。
14.如权利要求13所述的方法,其特征在于:当校验单元均可访问时,使用有限域校验算法恢复出用户数据的算式具体为:
D x = ( A ′ - 1 A * | A ′ - 1 ) ( D * C )
其中A′-1表示不可访问数据单元在常数矩阵中对应的常数组成的子矩阵A′的逆矩阵;A*表示所有可访问的数据单元在常数矩阵中常数组成的子矩阵;D*和C对应可访问的数据单元和校验单元中数据;Dx对应需要恢复的数据。
15.如权利要求13所述的方法,其特征在于:当部分校验数据可访问时,使用有限域校验算法恢复出用户数据或校验数据的算式具体为:
D x = ( A ′ - 1 A * | A ′ - 1 ) ( D * C * )
Cy=ay1D1+ay2D2+ay3D3+...+ayjDj+...+aynDn
其中A′-1表示不可访问数据单元在常数矩阵中对应的常数组成的子矩阵A′的逆矩阵;A*表示所有可访问的数据单元在常数矩阵中常数组成的子矩阵;D*和C*对应可访问的数据单元和校验单元中数据;Dx对应需要恢复的数据单元中数据;Cy对应需要恢复的校验单元中数据。
16.如权利要求10所述的方法,其特征在于:所述伽罗瓦域的位宽为w,w为自然数,其中所述n大于等于m,n与m之和小于等于2的w次方。
CN201310423447.5A 2013-09-16 2013-09-16 一种raid数据处理方法及装置 Active CN104461373B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310423447.5A CN104461373B (zh) 2013-09-16 2013-09-16 一种raid数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310423447.5A CN104461373B (zh) 2013-09-16 2013-09-16 一种raid数据处理方法及装置

Publications (2)

Publication Number Publication Date
CN104461373A true CN104461373A (zh) 2015-03-25
CN104461373B CN104461373B (zh) 2018-01-09

Family

ID=52907504

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310423447.5A Active CN104461373B (zh) 2013-09-16 2013-09-16 一种raid数据处理方法及装置

Country Status (1)

Country Link
CN (1) CN104461373B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106293543A (zh) * 2016-08-25 2017-01-04 中国科学院计算技术研究所 一种基于捎带回收的瓦记录raid写顺序化方法及装置
CN107168817A (zh) * 2016-03-07 2017-09-15 华为技术有限公司 应用于存储阵列的数据修复方法与装置及存储设备
CN109144787A (zh) * 2018-09-03 2019-01-04 郑州云海信息技术有限公司 一种数据恢复方法、装置、设备及可读存储介质
WO2020001059A1 (zh) * 2018-06-28 2020-01-02 华为技术有限公司 一种数据处理方法及设备
WO2021088615A1 (zh) * 2019-11-06 2021-05-14 华为技术有限公司 一种校验数据计算方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090024879A1 (en) * 2003-11-17 2009-01-22 Nec Corporation Disk array device, parity data generating circuit for raid and galois field multiplying circuit
CN101504623A (zh) * 2009-03-20 2009-08-12 杭州华三通信技术有限公司 独立磁盘冗余阵列构建方法及装置
CN101526885A (zh) * 2009-04-21 2009-09-09 杭州华三通信技术有限公司 一种提升独立磁盘冗余阵列性能的方法及其控制器
CN102043685A (zh) * 2010-12-31 2011-05-04 成都市华为赛门铁克科技有限公司 独立磁盘冗余阵列系统及其数据恢复方法
CN102081559A (zh) * 2011-01-11 2011-06-01 成都市华为赛门铁克科技有限公司 一种独立磁盘冗余阵列的数据恢复方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090024879A1 (en) * 2003-11-17 2009-01-22 Nec Corporation Disk array device, parity data generating circuit for raid and galois field multiplying circuit
CN101504623A (zh) * 2009-03-20 2009-08-12 杭州华三通信技术有限公司 独立磁盘冗余阵列构建方法及装置
CN101526885A (zh) * 2009-04-21 2009-09-09 杭州华三通信技术有限公司 一种提升独立磁盘冗余阵列性能的方法及其控制器
CN102043685A (zh) * 2010-12-31 2011-05-04 成都市华为赛门铁克科技有限公司 独立磁盘冗余阵列系统及其数据恢复方法
CN102081559A (zh) * 2011-01-11 2011-06-01 成都市华为赛门铁克科技有限公司 一种独立磁盘冗余阵列的数据恢复方法和装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107168817A (zh) * 2016-03-07 2017-09-15 华为技术有限公司 应用于存储阵列的数据修复方法与装置及存储设备
CN106293543A (zh) * 2016-08-25 2017-01-04 中国科学院计算技术研究所 一种基于捎带回收的瓦记录raid写顺序化方法及装置
CN106293543B (zh) * 2016-08-25 2019-03-12 中国科学院计算技术研究所 一种基于捎带回收的瓦记录raid写顺序化方法及装置
WO2020001059A1 (zh) * 2018-06-28 2020-01-02 华为技术有限公司 一种数据处理方法及设备
CN110659152A (zh) * 2018-06-28 2020-01-07 华为技术有限公司 一种数据处理方法及设备
CN110659152B (zh) * 2018-06-28 2021-04-09 华为技术有限公司 一种数据处理方法及设备
CN109144787A (zh) * 2018-09-03 2019-01-04 郑州云海信息技术有限公司 一种数据恢复方法、装置、设备及可读存储介质
WO2021088615A1 (zh) * 2019-11-06 2021-05-14 华为技术有限公司 一种校验数据计算方法及装置

Also Published As

Publication number Publication date
CN104461373B (zh) 2018-01-09

Similar Documents

Publication Publication Date Title
CN103577274B (zh) 管理存储器阵列的方法和装置
CN103718162B (zh) 用于ssd中灵活的raid的方法和设备
US7934120B2 (en) Storing data redundantly
JP3742494B2 (ja) 大容量記憶装置
US8433685B2 (en) Method and system for parity-page distribution among nodes of a multi-node data-storage system
CN103034458B (zh) 固态硬盘中实现独立磁盘冗余阵列的方法及装置
US20110029728A1 (en) Methods and apparatus for reducing input/output operations in a raid storage system
CN102207895B (zh) 一种独立磁盘冗余阵列数据重建方法和装置
CN101546249A (zh) 磁盘阵列在线容量扩展方法
CN102981927A (zh) 分布式独立冗余磁盘阵列存储方法及分布式集群存储系统
US20060242540A1 (en) System and method for handling write commands to prevent corrupted parity information in a storage array
CN102799533B (zh) 一种磁盘损坏扇区屏蔽方法及装置
CN107436733A (zh) 分片管理方法和分片管理装置
CN104461373A (zh) 一种raid数据处理方法及装置
US9063869B2 (en) Method and system for storing and rebuilding data
US7870464B2 (en) System and method for recovery of data for a lost sector in a storage system
US20080091916A1 (en) Methods for data capacity expansion and data storage systems
CN104733051B (zh) 奇偶校验码的解码方法、存储器储存装置及控制电路单元
CN106557143A (zh) 用于数据存储设备的装置和方法
CN104516679A (zh) 一种raid数据处理方法及装置
CN104881242A (zh) 数据写入方法及装置
CN109739436A (zh) Raid重构方法、存储介质和装置
CN101251812A (zh) 一种应用于集群系统数据容错的方法
CN111930552A (zh) 坏块数据的恢复方法、装置、存储介质及电子设备
CN115543223A (zh) 灵活构成磁盘阵列卡的方法、介质、设备及磁盘阵列卡

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 310052 Zhejiang City, Binjiang District Province, Torch Road, No. 581, block B, three-dimensional building, floor 9

Applicant after: Hangzhou Sequoia Polytron Technologies Inc

Address before: 310052 Zhejiang City, Binjiang District Province, Torch Road, No. 581, block B, three-dimensional building, floor 9

Applicant before: Hangzhou MacroSAN Technologies Co., Ltd.

COR Change of bibliographic data
GR01 Patent grant
GR01 Patent grant