CN101604267A - 独立磁盘冗余阵列的架构 - Google Patents

独立磁盘冗余阵列的架构 Download PDF

Info

Publication number
CN101604267A
CN101604267A CNA2009101464676A CN200910146467A CN101604267A CN 101604267 A CN101604267 A CN 101604267A CN A2009101464676 A CNA2009101464676 A CN A2009101464676A CN 200910146467 A CN200910146467 A CN 200910146467A CN 101604267 A CN101604267 A CN 101604267A
Authority
CN
China
Prior art keywords
data
field
sub
logical blocks
parity
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
CNA2009101464676A
Other languages
English (en)
Other versions
CN101604267B (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.)
INFORTREND Inc
Infortrend Technology Inc
Original Assignee
INFORTREND Inc
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 INFORTREND Inc filed Critical INFORTREND Inc
Publication of CN101604267A publication Critical patent/CN101604267A/zh
Application granted granted Critical
Publication of CN101604267B publication Critical patent/CN101604267B/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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1057Parity-multiple bits-RAID6, i.e. RAID 6 implementations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/109Sector level checksum or ECC, i.e. sector or stripe level checksum or ECC in addition to the RAID parity calculation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • G11B2020/1843Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information using a cyclic redundancy check [CRC]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/40Combinations of multiple record carriers
    • G11B2220/41Flat as opposed to hierarchical combination, e.g. library of tapes or discs, CD changer, or groups of record carriers that together store one title
    • G11B2220/415Redundant array of inexpensive disks [RAID] systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本发明是有关于一种独立磁盘冗余阵列(Redundant Array ofIndependent Disks,RAID)的架构,其具有多奇偶校验数据(multipleparity data),在奇偶校验数据序列的每一段基本数据存取单元(basicdata access unit)之后加入一段数据保护栏位,并依照不同的应用,定义数据保护栏位内各子栏位的内容,以保护奇偶校验数据的基本数据存取单元、或有效载荷数据的数据保护栏位,在数据传输过程中不会发生错误。

Description

独立磁盘冗余阵列的架构
技术领域
本发明涉及一种数据保护方法,特别是涉及一种利用类似于数据保护信息(Data Protection Information)的数据保护方法保护具有多奇偶校验数据(multiple parity data)的独立磁盘冗余阵列(RAID)的数据。
背景技术
由于电脑设备的发达,使得现代人的工作与生活离不开信息产品。在信息化社会中,数据的传输与储存扮演着重要的角色。只是数据在传输的过程中,由于硬件或软件的关系,难免会发生错误。如何正确地将传输数据中的错误侦测出来,一直是一个很重要的课题,因此目前市面上即有各式的检查码被使用在网络通讯、以及数据的存取、储存、传输等范畴。
CRC错误侦测技术,即是所谓的循环冗余检查码(Cyclic RedundancyCheck Code,CRC),简称CRC码或CRC,是一种侦测数据封包在传输过程中有无发生错误的技术。CRC的计算方式是将待传输的数据区块视为一堆连续位所构成的一整个数值,并将此数值除以一特定的除数,通常以二进位表示,此除数又称为衍生多项式(Generation Polynomial)。该除数一般皆由设计硬件或软件的厂商所提供。而除数值位数目则视欲得到的CRC位数目而定,目前较常使用的CRC位数目有8、16或32,一般缩写为CRC-8、CRC-16、CRC-32。通常CRC码越长,则数据发生干扰却不反应在CRC值的机率也就越低,不过得多花些时间传送较长的CRC码。理论上,计算CRC非常简单,只要一个除法运算即可,运算之后的余数即是CRC值。此CRC值会被加在欲传输的数据封包之后一起传送至目标装置。目标装置接受到该数据封包后,以相同的演算法对接收到的数据另算一组新的CRC码,若新的CRC码与伴随该数据封包一起接收到的CRC码相同,则表示接收到的数据正确;反之,则是数据错误,须请发送数据端重新发送数据。
虽然CRC错误侦测技术已被广泛地应用在各领域中,用以检查数据传输的正确性,但是此技术只能侦测因硬件讯号干扰而产生的比特错误(biterror),无法解决因软件错误而引起的“将正确数据写入错误位址”的错误(data displacement error)。
是故,一种“数据保护信息”(Data Protection Information,以下简称DPI)的标准被提出,提供端对端(end-to-end)传输的数据保护。请参照图1A与图1B所示,DPI标准是在传统SCSI(Small Computer System Interface)协定的基本数据存取单元(Basic Data Access Unit)11(例如:512字节(byte))后另外附加一段数据保护栏位12(例如:8字节(byte)),而成为一个新的混合数据区块10(例如:520字节(byte))。若以8字节的数据保护栏位12为例,其中更可划分为:2字节的逻辑区块护卫(logical block guard)子栏位121、2字节的逻辑区块应用标签(logical block application tag)子栏位122、以及4字节的逻辑区块参考标签(logical block reference tag)子栏位123。其中,逻辑区块护卫子栏位121是用来储存基本数据存取单元11的循环冗余检查码(CRC);逻辑区块参考标签子栏位123是用来储存数据的逻辑区块位址(Logical Block Address,以下简称LBA)的最后四个字节;而逻辑区块应用标签子栏位122的定义则视不同的应用而定。基本上,逻辑区块应用标签子栏位122与逻辑区块参考标签子栏位123两者皆可由使用者定义。
虽然DPI标准为SCSI协定的有效载荷数据(payload data)传输提供了端对端的数据错误侦测,但是对于独立磁盘冗余阵列(Redundant Array ofIndependent Disks,以下简称RAID)系统中的奇偶校验数据(parity data)的数据错误侦测却未有定义;而RAID系统则是数据储存系统的主流,其中又以具有多奇偶校验数据的RAID系统为未来发展的趋势。因此,如何在多奇偶校验数据的环境中,利用DPI标准保护RAID系统中的奇偶校验数据及/或有效载荷数据的查核数据,实为当前有待解决的重要课题。
由此可见,上述现有的利用数据保护信息保护独立磁盘冗余阵列数据的架构在结构与使用上,显然仍存在有不便与缺陷,而亟待加以进一步改进。为了解决上述存在的问题,相关厂商莫不费尽心思来谋求解决之道,但长久以来一直未见适用的设计被发展完成,而一般产品又没有适切结构能够解决上述问题,此显然是相关业者急欲解决的问题。因此如何能创设一种新的利用数据保护信息保护独立磁盘冗余阵列数据的架构,实属当前重要研发课题之一,亦成为当前业界极需改进的目标。
发明内容
本发明的目的在于,克服现有的利用数据保护信息保护独立磁盘冗余阵列数据的架构存在的缺陷,而提供一种新的具有多奇偶校验数据(multiple parity data)的独立磁盘冗余阵列(Redundant Array ofIndependent Disk,RAID)架构,所要解决的技术问题是通过定义奇偶校验数据(parity data)的“数据保护信息”(Data Protection Information,DPI)的数据保护内容,来达到保护奇偶校验数据、或者是有效载荷数据(payloaddata)的数据保护信息,在传输过程中没有发生错误的目的,非常适于实用。
本发明的目的及解决其技术问题是采用以下技术方案来实现的。依据本发明提出的一种独立磁盘冗余阵列的架构,其包含:一冗余物理储存装置阵列,包含多个物理储存装置;该冗余物理储存装置阵列界定有多个储存分割带,每一该储存分割带包含有多个有效载荷数据区块及多个奇偶校验数据区块,藉此,任意多个失效的该有效载荷数据区块中的至少一基本数据存取单元,可藉由该多个奇偶校验数据区块及未失效的该有效载荷数据区块计算产生;每一该有效载荷数据区块与该奇偶校验数据区块包含该至少一基本数据存取单元及至少一附随的数据保护栏位,其中:对于每一该有效载荷数据区块,该数据保护栏位为一第一数据保护栏位,用于储存数据保护信息,其包含有一逻辑区块护卫子栏位、一逻辑区块应用标签子栏位、以及一逻辑区块参考标签子栏位,以保护该有效载荷数据区块的该基本数据存取单元内的数据;以及,对于每一奇偶校验数据区块,该数据保护栏位为一第二数据保护栏位,包含有多个子栏位,该多个子栏位能以不同的组合方式来储存多种查核数据,以保护该奇偶校验数据区块的该基本数据存取单元内的数据、或该有效载荷数据区块的该数据保护栏位内的数据。
本发明的目的及解决其技术问题还可采用以下技术措施进一步实现。
前述的架构,其中所述的多个奇偶校验数据区块包含一第一奇偶校验数据区块与一第二奇偶校验数据区块。
前述的架构,其中所述的多个奇偶校验数据区块的该第二数据保护栏位的该多个子栏位更包含有一第一子栏位,用于储存该多种查核数据的其中之一;藉此,任意两个失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位,可藉由该多个奇偶校验数据区块的该第二数据保护栏位的该第一子栏位、以及未失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位中的数据而计算产生。
前述的架构,其中利用Galois Field乘法运算,使得任意两个失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位,可藉由该多个奇偶校验数据区块的该第二数据保护栏位的该第一子栏位、以及未失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位中的数据而计算产生。
前述的架构,其中所述的多个奇偶校验数据区块的该第二数据保护栏位的该多个子栏位更包含有一第二子栏位,用于储存该多种查核数据的其中之一;藉此,任意两个失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块应用标签子栏位,可藉由该多个奇偶校验数据区块的该第二数据保护栏位的该第二子栏位、以及未失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块应用标签子栏位中的数据而计算产生。
前述的架构,其中所述的多个奇偶校验数据区块的该第二数据保护栏位的该多个子栏位更包含有一第三子栏位,用于储存该多种查核数据的其中之一;藉此,任意两个失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块参考标签子栏位,可藉由该多个奇偶校验数据区块的该第二数据保护栏位的该第三子栏位、以及未失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块参考标签子栏位中的数据而计算产生。
前述的架构,其中是利用Galois Field乘法运算,使得任意两个失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块参考标签子栏位,可藉由该多个奇偶校验数据区块的该第二数据保护栏位的该第三子栏位、以及未失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块参考标签子栏位中的数据而计算产生。
前述的架构,其中所述的多个奇偶校验数据区块的该第二数据保护栏位的该多个子栏位更包含有一第三子栏位,用于储存该多种查核数据的其中之一,其为一逻辑区块参考标签,且该逻辑区块参考标签分别为该多个奇偶校验数据区块的基本数据存取单元所对应的物理储存装置的逻辑区块位址。
前述的架构,其中所述的多个奇偶校验数据区块的该第二数据保护栏位的该多个子栏位更包含有一第三子栏位,该第三子栏位划分为一第一空间与一第二空间。
前述的架构,其中所述的第一空间用于储存一缩减大小后的该多种查核数据的其中之一;该缩减大小后的查核数据,用于验证经推算而得的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块参考标签子栏位内的数据是否正确。
前述的架构,其中所述的第二空间用于储存该多种查核数据的其中之一;藉此,任意两个失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位,可藉由该多个奇偶校验数据区块的该第二数据保护栏位的该第三子栏位的该第二空间、以及未失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位中的数据而计算产生。
前述的架构,其中利用Galois Field乘法运算,使得任意两个失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位,可藉由该多个奇偶校验数据区块的该第二数据保护栏位的该第三子栏位的该第二空间、以及未失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位中的数据而计算产生。
前述的架构,其中所述的多个奇偶校验数据区块的该第二数据保护栏位的该多个子栏位更包含有一第一子栏位,用于储存该多种查核数据的其中之一,其为一循环冗余检查码,且储存于该第一子栏位的该循环冗余检查码分别根据该多个奇偶校验数据区块的基本数据存取单元计算而得。
前述的架构,其中所述的第二空间用于储存该多种查核数据的其中之一,其为一循环冗余检查码,且储存于该第二空间的该循环冗余检查码分别根据该多个奇偶校验数据区块的基本数据存取单元计算而得。
前述的架构,其中所述的多个奇偶校验数据区块的该第二数据保护栏位的该多个子栏位更包含有一第一子栏位,用于储存该多种查核数据的其中之一;藉此,任意两个失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位,可藉由该多个奇偶校验数据区块的该第二数据保护栏位的该第一子栏位、以及未失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位中的数据而计算产生。
前述的架构,其中是利用Galois Field乘法运算,使得任意两个失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位,可藉由该多个奇偶校验数据区块的该第二数据保护栏位的该第一子栏位、以及未失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位中的数据而计算产生。
前述的架构,其中所述的多个奇偶校验数据区块的该第二数据保护栏位的该多个子栏位更包含有一第一子栏位,用于储存该多种查核数据的其中之一,其为一循环冗余检查码,且储存于该第一子栏位的该循环冗余检查码分别根据该多个奇偶校验数据区块的基本数据存取单元计算而得。
前述的架构,其中所述的多个奇偶校验数据区块的该第二数据保护栏位的该多个子栏位更包含有一第二子栏位,用于储存该多种查核数据的其中之一;藉此,任意两个失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位,可藉由该多个奇偶校验数据区块的该第二数据保护栏位的该第二子栏位、以及未失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位中的数据而计算产生。
前述的架构,其中是利用Galois Field乘法运算,使得任意两个失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位,可藉由该多个奇偶校验数据区块的该第二数据保护栏位的该第二子栏位、以及未失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位中的数据而计算产生。
前述的架构,其中所述的多个奇偶校验数据区块的该第二数据保护栏位的该多个子栏位更包含有一第三子栏位,用于储存该多种查核数据的其中之一,其为一逻辑区块参考标签,且该逻辑区块参考标签分别为该多个奇偶校验数据区块的基本数据存取单元所对应的物理储存装置的逻辑区块位址。
前述的架构,其中所述的多个奇偶校验数据区块的该第二数据保护栏位的该多个子栏位更包含有一第三子栏位,用于储存该多种查核数据的其中之一;藉此,任意两个失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块参考标签子栏位,可藉由该多个奇偶校验数据区块的该第二数据保护栏位的该第三子栏位、以及未失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块参考标签子栏位中的数据而计算产生。
前述的架构,其中是利用Galois Field乘法运算,使得任意两个失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块参考标签子栏位,可藉由该多个奇偶校验数据区块的该第二数据保护栏位的该第三子栏位、以及未失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块参考标签子栏位中的数据而计算产生。
前述的架构,其中所述的基本数据存取单元的长度为512字节。
前述的架构,其中所述的第二数据保护栏位的该多个子栏位更包含有一第一子栏位、一第二子栏位以及一第三子栏位,所述第一、第二、第三栏位的大小分别为2字节、2字节与4字节。
前述的架构,其中所述的第一空间与该第二空间的大小分别为2字节与2字节。
前述的架构,其更包含有一阵列控制器,耦接于该冗余物理储存装置阵列,该阵列控制器处理涉及该多个奇偶校验数据区块的乘法运算,并且使用一特定数值做为乘法运算的溢位处理,该特定数值选自以下组合的其中之一:
0x11b    0x163    0x18d    0x1cf    0x11d
0x165    0x19f    0x1d7    0x12b    0x169
0x1a3    0x1dd    0x12d    0x171    0x1a9
0x1e7    0x139    0x177    0x1b1    0x1f3
0x13f    0x17b    0x1bd    0x1f5    0x14d
0x187    0x1c3    0x1f9    0x15f    0x18b
前述的架构,其更包含有一阵列控制器,耦接于该冗余物理储存装置阵列,该阵列控制器使用查对数表/反对数表的方式来处理涉及该多个奇偶校验数据区块的乘法运算,并且使用一特定数值做为乘法运算的溢位处理,该特定数值是选自以下组合的其中之一:
0x11d    0x12d    0x15f    0x187
0x171    0x169    0x1f5    0x1c3
0x12b    0x14d    0x163    0x1cf
0x1a9    0x165    0x18d    0x1e7
本发明与现有技术相比具有明显的优点和有益效果。由以上可知,为达到上述目的,本发明提供了一种独立磁盘冗余阵列(Redundant Array ofIndependent Disks,RAID)的架构,其包含:一冗余物理储存装置阵列(redundant PSD array)包含多个物理储存装置(Physical Storage Device,PSD);该冗余物理储存装置阵列界定有多个储存分割带(stripe),每一储存分割带包含有多个有效载荷数据区块(payload data block)及多个奇偶校验数据区块(parity data block),藉此,任意多个失效的该有效载荷数据区块中的至少一基本数据存取单元,可藉由该多个奇偶校验数据区块及未失效的该有效载荷数据区块而计算产生;每一该有效载荷数据区块与该奇偶校验数据区块包含至少一个基本数据存取单元及至少一个附随的数据保护栏位,其中:对于每一该有效载荷数据区块,该数据保护栏位为一第一数据保护栏位,用于储存数据保护信息,其包含有一逻辑区块护卫(logical block guard)子栏位、一逻辑区块应用标签(logical blockapplication tag)子栏位、以及一逻辑区块参考标签(logical blockreference tag)子栏位,以保护该有效载荷数据区块的该基本数据存取单元内的数据;对于每一奇偶校验数据区块,该数据保护栏位为一第二数据保护栏位,包含有多个子栏位,该多个子栏位可以不同的组合方式来储存多种查核数据(check data),以保护该奇偶校验数据区块的该基本数据存取单元内的数据、或该有效载荷数据区块的该数据保护栏位内的数据。
借由上述技术方案,本发明独立磁盘冗余阵列数据的架构至少具有下列优点及有益效果:藉由本发明在奇偶校验数据序列的每一段基本数据存取单元之后加入一段数据保护栏位,并依照不同的应用,定义数据保护栏位内各子栏位的内容,以达到保护奇偶校验数据的基本数据存取单元、或有效载荷数据的数据保护栏位,在数据传输过程中不会发生错误的目的。
综上所述,本发明在技术上有显著的进步,并具有明显的积极效果,诚为一新颖、进步、实用的新设计。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
图1A是数据保护信息附加于SCSI基本数据存取单元的示意图。
图1B是图1A的数据保护信息中包含三种不同栏位的示意图。
图2是储存有两组奇偶校验数据的RAID 6系统中,有效负荷数据与奇偶校验数据间储存关系的示意图。
图3A与图3B是本发明测试一设定的候选数值是否为有效(valid)密钥(encryption key)的第一实施例。
图3A与图3C是本发明测试一设定的候选数值是否为有效(valid)密钥(encryption key)的第二实施例。
图4是储存有两组奇偶校验数据的RAID 6系统中,有效载荷数据与奇偶校验数据间的数据区块对应图。
图5A~图5F是本发明在RAID6系统中利用数据保护信息(DataProtection Information)数据区块保护数据的六种实施例。
CRC(D01)~CRC(D21)、App(D01)~App(D21)、Ref(D01)~Ref(D21):第一种查核数据
X-CRC、X-App、X-Ref:第二种查核数据
G-CRC、G-App、G-Ref:第三种查核数据
CRC(P01)、CRC(P11)、Ref(P01)、Ref(P11):第四种查核数据
具体实施方式
为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的独立磁盘冗余阵列数据的架构其具体实施方式、结构、特征及其功效,详细说明如后。
本发明主要是在具有多奇偶校验数据(multiple parity data)的冗余独立磁盘冗余阵列(Redundant Array of Independent Disk,以下简称RAID)系统中,定义奇偶校验数据(parity data)的数据保护信息(DataProtection Information,以下简称DPI)的数据内容,以达到保护奇偶校验数据、或者是有效载荷数据(payload data)的数据保护信息(DPI)在传输过程中没有发生错误的目的。
储存于RAID系统中的奇偶校验数据(parity data),依照不同系统设定,可能是一组、两组、或是两组以上。在本发明中,定义RAID 6是储存有两组或两组以上奇偶校验数据的冗余独立磁盘冗余阵列系统。请参照图2所示,是以储存两组奇偶校验数据的RAID 6系统为例,图中绘示的冗余物理储存装置阵列(redundant PSD array)包含五个硬盘驱动器(HDD),其中三个硬盘驱动器(HDD)储存有效载荷数据(payload data),分别表示为D0至D2,另两个硬盘驱动器(HDD)储存奇偶校验数据,分别表示为P0与P1。在其他实施例中,硬盘驱动器(HDD)可以用其他物理储存装置(PhysicalStorage Device,PSD)替代,例如(但不限于):磁带(Tape)、可读写光碟(CD-R/W)、影音光碟(Digital Versatile Disc,DVD)等各种物理储存装置(PSD)。虽然图2是以三个储存有效载荷数据的硬盘与二个储存奇偶校验数据的硬盘为例,说明有效载荷数据与奇偶校验数据的数据储存的关系,但本发明不以此为限,在其他实施例中,有效载荷数据碟与奇偶校验数据碟只要是两个或两个以上皆可。又,虽然图中绘示有效载荷数据与奇偶校验数据是分开储存于特定的硬盘中,但在其他实施例中,每一硬盘皆可能同时储存有位于不同储存分割带(stripe)20的有效载荷数据与奇偶校验数据,只要对应各硬盘的同一储存分割带(stripe)2 0上的数据可以达到利用奇偶校验数据保护其对应的有效载荷数据即可。以图2为例说明,某一储存分割带(stripe)2 0包含有三个有效载荷数据区块(payload datablock)D01-D21及一个第一奇偶校验数据区块(parity data block)P01与一个第二奇偶校验数据区块(parity data block)P11,藉此,任意两个因硬盘故障或其他因素而失效的有效载荷数据区块)D01、D11、D21,可藉由第一奇偶校验数据区块P01、第二奇偶校验数据区块P11及部分有效载荷数据区块而重新计算产生。
再以图2为例,P01与P11的计算方式可表示如下:
P 01 = a 0 · D 01 ⊕ a 1 · D 11 ⊕ a 2 · D 21 . . . . . . . . . . . . ( 1 )
P 11 = b 0 · D 01 ⊕ b 1 · D 11 ⊕ b 2 · D 21 . . . . . . . . . . . ( 2 )
以上两式中的
Figure G2009101464676D00093
代表异或(XOR)运算;P01与P11各自代表储存于P0与P1硬盘上奇偶校验数据序列的总称;D01、D11与D21各自代表储存于D0、D1与D2硬盘上有效载荷数据序列的总称;(a0,a1,a2)与(b0,b1,b2)分别代表运算系数。一般来说,第一个奇偶校验数据P01的运算系数(a0,a1,a2)均设定为1,也就是(1)式可以改为:
P 01 = D 01 ⊕ D 11 ⊕ D 21 . . . . . . . . . . . . ( 3 )
如此一来,P01的计算只须单纯地对其对应的有效载荷数据做异或(XOR)运算。若此RAID6系统中只有一有效载荷数据盘故障或因其他因素而导致数据错误或毁损,即可利用上述(3)式将错误或毁损的数据反算回来。至于如何利用(3)式将错误或毁损的数据反算回来,为现有习知此技艺者所熟知,因此其细节便不再多加赘述。
至于(2)式中的系数(b0,b1,b2)则不可皆设定为1,因为(2)式与(3)式须保持线性独立,以致于若有两个有效载荷数据盘故障或其中的数据毁损时,可以线性联立解两个未知数(即两个有效载荷数据碟上的数据)。这意味着,无论藉由(2)式计算P11值或反算毁损的有效载荷数据(D01、D11、D21),均会牵涉到相当多的乘法运算。为确保数据盘中的数据可以唯一地被回算以确保RAID系统的可靠性(reliability),对于相同的乘法系数,不同有效载荷数据盘上的数据与乘法运算结果之间必须具有唯一的一对一关系。除此之外,在实做上亦须考量到此乘法运算的结果须与原本的数据长度一致。因此,实务上常见RAID6系统采用Reed-Solomon数学理论与Galois Field的代数规则处理涉及第二个奇偶校验数据的运算。
根据Reed-Solomon理论,(20,21,22)是(b0,b1,b2)的一组有效系数,因此(2)式可改为:
P 11 = 2 0 · D 01 ⊕ 2 1 · D 11 ⊕ 2 2 · D 21 . . . . . . . . . . . ( 4 )
上式中的
Figure G2009101464676D00102
代表异或(XOR)运算。
更进一步地,依据本发明的另一实施例,当RAID6系统储存有第三组奇偶校验数据(P21)时,P21的计算方式可以根据一与(1)式、(2)式类似的方程式(例如: P 21 = c 0 · D 01 ⊕ c 1 · D 11 ⊕ c 2 · D 21 ),只要其系数(c0,c1,c2)设定为可与其他奇偶校验数据的方程式(例如:(1)式与(2)式)产生线性独立即可。如何依据Reed-Solomon理论求得与(1)式、(2)式线性独立的系数(c0,c1,c2)为现有习知此技艺人士所熟知,因此本发明不再多做赘述。
当D01、D11、D21等数据序列乘上运算系数后,由于实务上数据储存的需要,乘法运算结果需要跟原数据序列的长度一致。举例来说,若以8bits(1byte)为数据单位,当其乘上一运算系数后,乘法运算结果也必须维持在8bits的长度;这其中意味着需要处理“溢位”的问题。
Galois Field(GF)为一有限域(finite field),其代数规则有以下特点:定义域内任二数的乘法运算结果必落在同一有限定义域之中,且一固定数与其他任意数的乘法运算结果并不重复。由上述特点可知:依照GaloisField代数处理乘法运算时,需要有一“特定数值”用于处理溢位,并且,依据此“特定数值”处理溢位的结果,能满足让Galois Field定义域中任一固定数与其他任意数间的乘法运算结果是唯一的要求。
基于Galois Field是有限域(finite field)的特质,该“特定数值”必定也是定义域中的数值,因此,只要测试Galois Field定义域中的每一数值,是否以该数值处理溢位可以让Galois Field定义域中任一固定数与其他任意数相乘得到的运算结果是唯一;如果是,则可确定该数值即是可以用作溢位处理的“特定数值”。举例来说,假设Galois Field的定义域为GF(28),其包含的数值为[0,1,2,...,2 55],除了“0”以外,其他1至255皆有可能是该“特定数值”;因此,只要利用试误法对每一个数值做测试,便可以找出定义域GF(28)中的有效(valid)数值做为该“特定数值”。
若是进行乘法运算时,是采用查对数表/反对数表的方式(以下称“查表法”)来处理乘法运算,以定义域GF(28)为例,经验证可以用做溢位处理的“特定数值”共有16个,列举如下:
0x11d    0x12d    0x15f    0x187
0x171    0x169    0x1f5    0x1c3
0x12b    0x14d    0x163    0x1cf
0x1a9    0x165    0x18d    0x1e7
以上数值是以十六进位(hexadecimal)表示,每一个数字前皆以“0x”表示为十六进位,例如:“0x11d”表示是十六进位的数字“11d”,二进位表示为“100011101”,若以多项式(即质式)表示为至于如何得到此16个有效数值,为现有习知此技艺人士所熟知,因此本发明不再多做赘述。有关Galois Field的定义、特性及运算法则可参阅以下的参考文献:(1)“The mathematics of RAID6”,H.Peter Anvin,December,2004;(2)“A Tutorial on Reed-Solomon Coding for Fault-Tolerancein RAID-like Systems”,James S.Plank,Software-Practice &Experience,27(9),pp995-1012,September,1997。
若是进行乘法运算时,是采用另一种“相加与移位(Add-and-Shift)”的方式处理乘法运算,则亦需要一有效的“特定数值”用做处理溢位的基数,并使得定义域中任一固定数与其他任意数的乘法运算结果皆是唯一。请参照图3A与图3B所示,为本发明测试有效(valid)“特定数值”的第一实施例。图3A中步骤301至307表示:在设定定义域中一个候选数值为“特定数值”的前提下,依据Galois Field乘法运算规则产生所有定义域中任两数的乘积的流程。图3B中步骤310至323则是将所有图3A中产生的乘积以一定的规则进行比较,此一定的规则为:以任一乘积为基准与其同行或是同列的所有其他乘积进行比较。上述比较是为验证:在乘数(或被乘数)固定的情况下,是否所有的乘积与被乘数(或乘数)间都是唯一的一对一的关系。在比较的过程中,只要遇到任两个乘积相同,则进入节点C,回到图3A,并注记该候选数值为无效(invalid)(步骤309);若所有的乘积皆完成比较后,没有发现任两个乘积相同,则最后至节点B,回到图3A,并注记该候选数值为一个有效的(valid)的“特定数值”(步骤308)。图3A与图3B的详细流程内容将在后面的段落中叙述。
值得注意的是,执行一次上述图3A与图3B的流程,代表只测试了“一个”设定的候选数值。当一次上述流程(图3A与图3B)执行完后,须再设定另一个候选数值为乘法运算中处理溢位的“特定数值”,以再一次执行以上图3A与图3B的流程。如此重复测试定义域中所有的候选数值,直到所有的候选数值皆测试过后,便可以知道哪些数值可以做为有效的(valid)“特定数值”,其可以用来处理RAID系统中与第二个奇偶校验数据(例如:P11)相关的乘法运算。
图3A的流程详述如下:步骤301设定乘数i等于1;步骤302测试i是否小于等于设定的最大值(例如:若是定义域为GF(28),i的最大值为255);若步骤302的测试结果为“是”,则进入步骤303,否则表示所有定义域中任两数的乘积皆已产生并储存,则进入节点A以进行图3B的流程;步骤303设定被乘数j等于1;步骤304测试j是否小于等于设定的最大值(例如:若是定义域为GF(28),j的最大值为255);若步骤304的测试结果为“是”,则进入步骤305,否则表示同一i值已和所有j值产生乘积并储存,如此则进入步骤307以增加1个i值;步骤305以Galois Field的乘法运算规则且以设定的候选数值为处理溢位的“特定数值”,计算D[i][j]等于i*j的乘积并将之储存于记忆体中;步骤306增加1个j值。其中,若将D[i][j]视为一个数据矩阵中的一个元素(element),则其是表示位于矩阵的i行(row)j列(column)且对应储存i*j的乘积。
整体来说,步骤304至步骤306的循环(即回圈,以下均称为循环)是计算同一i值对所有j值的乘积,步骤302至步骤307的循环则是计算所有i值对所有j值的乘积。
图3B的流程详述如下:步骤310设定i等于1;步骤311测试i是否小于设定的最大值(例如:若是定义域为GF(28),i的最大值为255);若步骤311的测试结果为“是”,则进入步骤312,令j等于i;步骤313测试j是否小于设定的最大值(例如:若是定义域为GF(28),j的最大值为255);若步骤313的测试结果为“是”,则进入步骤314,令一变量k等于
Figure G2009101464676D00121
步骤314以及步骤315至步骤317的循环,是以D[i][j]为基准,测试其与同一行(row)且k>j的各元素(D[i][k])所对应储存的乘积是否相同。其中,步骤315测试k是否小于或等于设定的最大值(例如:若是定义域为GF(28),k的最大值为255);若步骤315的测试结果为“是”,则进入步骤316,比较D[i][k]是否等于D[i][j];若步骤316的比较结果为“是”,表示已出现两相同乘积,则进入节点C并结束图3B的流程,回到图3A以注记该设定的候选数值是无效的(invalid);若步骤316的比较结果为“否”,则k值增加1(步骤317),并再回到步骤315以进行下一个D[i][k]与D[i][j]的比较;如此重复进行直到步骤315测试到k大于设定的最大值(Max),然后进入步骤318。
步骤318令变量k等于步骤318以及步骤319至步骤321的循环,是以D[i][j]为基准,测试其与同一列(column)且k>i的各元素(D[k][j])所对应储存的乘积是否相同。其中,步骤319测试k是否小于或等于设定的最大值(例如:若是定义域为GF(28),k的最大值为255);若步骤319的测试结果为“是”,则进入步骤320,比较D[k][j]是否等于D[i][j];若步骤320的比较结果为“是”,表示有两乘积相同,则进入节点C并结束图3B的流程,以注记该设定的候选数值是无效(invalid)(图3A);若步骤320的比较结果为“否”,则k值增加1(步骤321),并再回到步骤319以进行下一个D[k][j]与D[i][j]的比较;如此重复进行直到步骤319测试到k大于设定的最大值(Max),然后进入步骤322。
步骤322递增一个j值,如此使得做为比较基准的D[i][j]往右移一位至同一行(row)中的下一列(column),然后重复进行步骤313至步骤321的流程,直到步骤313测试到j大于等于最大值(Max);此表示同一行(row)中所有的D[i][j]皆已做为基准与其同行(row)和同列(column)的所有其他元素进行过两两的相互比较,且没有发现有相同的乘积。如此则进入步骤323,递增一个i值(亦即,换下一行(row)),再重复进行前述流程(步骤311至步骤323)。若一直没有比较到两个相同的乘积,且步骤311测试到i大于等于最大值(Max),则表示已做完所有定义域中任一个两数乘积与其同行(row)和同列(column)的所有其他乘积的比较,且没有发现任两个乘积相同(亦即:D[i][j]≠D[i][k]且D[i][j]≠D[k][j],当i,j<k≤Max),如此则进入节点B并结束图3B的流程,回到图3A以注记该设定的候选数值是有效的(valid)。
请参照图3A与图3C,为本发明测试有效(valid)“特定数值”的第二实施例。图3A中步骤301至307表示:在定义域中设定一个候选数值为处理溢位的“特定数值”的前提下,依据Galois Field乘法运算规则产生所有定义域中任两数的乘积的流程。图3C中步骤324至333则是将所有图3A中产生的乘积以一定的规则进行比较,此一定的规则为:以任一乘积为基准与其同行(row)的所有其他乘积进行比较。上述比较是为验证:在乘数固定的情况下,是否所有的乘积与被乘数间都是唯一的一对一的关系。在另一实施例中,图3C亦可更改为:任一固定的乘积与其同列(column)的所有其他乘积进行比较。在比较的过程中,只要遇到任两个乘积相同,则进入节点C,回到图3A,并注记该候选数值为无效(invalid)(步骤309);若所有的乘积皆完成比较后,没有发现任两个乘积相同,则最后至节点B,回到图3A,并注记该候选数值为一个有效的(valid)的“特定数值”(步骤308)。图3A的详细流程内容已于前面段落中叙述过;而图3C的详细流程内容将在后面的段落中叙述。
同样地,执行一次上述图3A与图3C的流程,亦只测试了“一个”设定的候选数值。当一次上述流程(图3A与图3C)执行完后,须再设定另一个候选数值为乘法运算中处理溢位的“特定数值”,以再一次执行以上图3A与图3C的流程。如此重复测试定义域中所有的候选数值,直到所有的候选数值皆测试过后,便可以知道哪些数值可以做为有效的(valid)的“特定数值”,其可以用来处理RAID系统中与第二个奇偶校验数据(例如:P11)相关的乘法运算。
图3C的流程详述如下:步骤324设定i等于1;步骤325测试i是否小于设定的最大值(例如:若是定义域为GF(28),i的最大值为255);若步骤325的测试结果为“是”,则进入步骤326,令j等于1;步骤327测试j是否小于设定的最大值(例如:若是定义域为GF(28),j的最大值为255);若步骤327的测试结果为“是”,则进入步骤328,令一变量k等于
Figure G2009101464676D00131
步骤328以及步骤329至步骤331的循环,是以D[i][j]为基准,测试其与同一行(row)且k>j的各元素(D[i][k])所对应储存的乘积是否相同。其中,步骤329测试k是否小于等于设定的最大值(例如:若是定义域为GF(28),k的最大值为255);若步骤329的测试结果为“是”,则进入步骤330,比较D[i][k]是否等于D[i][j];若步骤330的比较结果为“是”,表示已出现两相同乘积,则进入节点C并结束图3C的流程,回到图3A以注记该设定的候选数值是无效的(invalid);若步骤330的比较结果为“否”,则k值增加1(步骤331),并再回到步骤329以进行下一个D[i][k]与D[i][j]的比较;如此重复进行直到步骤329测试到k大于设定的最大值(Max),然后进入步骤332。
步骤332递增一个j值,如此使得做为比较基准的D[i][j]往右移一位至同一行(row)中的下一列(column),然后重复进行步骤327至步骤332的流程,直到步骤327测试到j大于等于最大值(Max);此表示同一行(row)中所有的D[i][j]皆已做为基准与同行(row)的其他元素进行过两两的相互比较,且没有发现有相同的乘积。如此则进入步骤333,递增一个i值(亦即,换下一行(row)),再重复进行前述流程(步骤325至步骤333)。若一直没有比较到两个相同的乘积,且步骤325测试到i大于或等于最大值(Max),则表示已做完所有定义域中任一个两数乘积与其同行(row)的所有其他乘积的互相比较,且没有发现任两个乘积相同,如此则进入节点B并结束图3C的流程,回到图3A以注记该设定的候选数值是有效的(valid)。
值得注意的是,图3B与图3C同为比较定义域中两个数值的乘积是否相同的流程,而产生此所有两个数值的乘积者是依据图3A的流程。虽然图3B与图3C的内容有所差异,但其比较的效果实质上是相同的-皆能对所有的乘积进行与其同行或是同列的所有其他乘积的相互比较。
经过上述图3A搭配图3B的流程,或是图3A搭配图3C的流程后,即可得到特定定义域(例如:GF(28))中有效的(valid)“特定数值”。若是选择定义域为GF(28),也就是数据长度为8位(bits)时,经测试出的有效的(valid)“特定数值”共有30个列举如下:
0x11b    0x163    0x18d    0x1cf    0x11d
0x165    0x19f    0x1d7    0x12b    0x169
0x1a3    0x1dd    0x12d    0x171    0x1a9
0x1e7    0x139    0x177    0x1b1    0x1f3
0x13f    0x17b    0x1bd    0x1f5    0x14d
0x187    0x1c3    0x1f9    0x15f    0x18b
以上30个有效的”特定数值”是以十六进位(hexadecimal)表示,每一个数字前皆以“0x”表示为十六进位,例如:“0x11d”表示是十六进位的数字“11d”,二进位表示为“100011101”。有了以上经测试证实有效的(valid)”特定数值”,便可以选择其中之一用来计算与第二个奇偶校验数据(如:P11)相关的乘法运算。
请再参考(2)式与(3)式,依据Galois Field代数规则处理与第二个奇偶校验数据P11相关的乘法运算,(2)式中的运算系数(b0,b1,b2)通常选择为2的幂次方(20,21,22),如第(4)式所示;若再考虑到有n个有效载荷数据序列,则(2)式与(3)式可以改写为:
P 01 = D 01 ⊕ D 11 ⊕ D 21 ⊕ . . . ⊕ D ( n - 1 ) 1 . . . . . . . . . . . . . . . . . . . . . . . ( 5 )
P 11 = 2 0 · D 01 ⊕ 2 1 · D 11 ⊕ 2 2 · D 21 ⊕ . . . ⊕ 2 n - 1 · D ( n - 1 ) 1 . . . . . ( 6 )
(6)式中的“.”代表Galois Field的乘法运算符号。上述与第二个奇偶校验数据相关的乘法运算可能是:将有效载荷数据序列(如:D01、D11、D21、...、D(n-1)1)代入(6)式以计算第二个奇偶校验数据(如:P11);或是利用第二个奇偶校验数据(如:P11)与其对应的部分有效载荷数据(如:D11、D21、...、D(n-1)1)计算没有回应的一有效载荷数据(如:D01);或是联立(5)式与(6)式,以第一与第二个奇偶校验数据(如:P01、P11)与其对应的部分有效载荷数据(如:D21~D(n-1)1)计算没有回应的二有效载荷数据(如:D01、D11)。
请参照图4所示,相较于图2,图4中的每一个数据序列D01、D11、D21皆以一个混合数据区块50代表,每一个数据序列P01与P11皆以一个混合数据区块60代表,每一混合数据区块50、60皆分别包含一个基本数据存取单元51、61与一个数据保护栏位52、62。在一实施例中,基本数据存取单元51、61的长度可以是512字节(byte),数据保护栏位52、62的长度可以是8字节(byte);但是本发明不以此为限,在其他实施例中,基本数据存取单元51、61与数据保护栏位52、62的长度,可以是其他适当的数值;举例而言,在另一实施例中,该基本数据存取单元51、61的长度亦可为520字节(byte)。虽然图中是以三个代表有效载荷数据序列D01、D11、D21的混合数据区块50与二个代表奇偶校验数据序列P01、P11的混合数据区块60为例说明;但本发明不以此为限,在其他实施例中,代表有效载荷数据与奇偶校验数据的数据序列皆可以是两个或两个以上。每一有效载荷数据序列D01、D11、D21的混合数据区块50中的数据保护栏位52是用于保护其对应的基本数据存取单元51内的数据在传输过程中不发生错误。在本发明中,以下称每一跟随于基本数据存取单元51后的数据保护栏位为”第一数据保护栏位”52,该第一数据保护栏位52是用于储存”数据保护信息(DPI)”。用来保护有效载荷数据的数据保护信息(DPI)的规格定义,已为现有习知此技艺人士所熟知。举例来说,若定义每一第一数据保护栏位52的长度为8字节(byte),则其中包含有一个2字节的逻辑区块护卫(logicalblock guard)子栏位521、一个2字节的逻辑区块应用标签(logical blockapplication tag)子栏位522、以及一个4字节的逻辑区块参考标签(logical block reference tag)子栏位523。其中,逻辑区块护卫子栏位521是用来储存由基本数据存取单元51计算而得的循环冗余检查码(CyclicRedundancy Check Code,CRC);逻辑区块参考标签子栏位523是用来储存基本数据存取单元51的逻辑区块位址(Logical Block Address,以下简称LBA)的最后四个字节;而逻辑区块应用标签子栏位522的定义则视不同的应用而定。
现有习知技术在RAID系统中,对于奇偶校验数据序列的部分,或是没有提供”数据保护信息(DPI)”以保护传输的数据,或是只有考虑到一个奇偶校验数据(如:P01)的保护,例如:RAID5。本发明则是针对拥有两个以上奇偶校验数据的RAID系统(在本发明中定义有两个以上奇偶校验数据的RAID系统皆是RAID6),提供奇偶校验数据序列有类似于”数据保护信息(DPI)”的第二数据保护栏位62,以确保数据在传输过程中没有发生错误。在本发明中,依照不同的数据保护需求,奇偶校验数据(如:P01、P11)的数据保护栏位,以下称”第二数据保护栏位”62,亦区分为三个子栏位621、622、623。此三个子栏位621、622、623所储存的数据,可能会有所变动,而与第一数据保护栏位52中的三个子栏位521、522、523不尽相同。但是,基本上第二数据保护栏位62的格式还是与第一数据保护栏位52相仿,也都是用于储存查核数据(check data)。举例来说,若定义每一第二数据保护栏位62的长度为8字节(byte),则其亦区分为2字节的第一子栏位621、2字节的第二子栏位622、以及4字节的第三子栏位623。以下本发明将提出数种实施例,说明在RAID6系统中,如何利用此第二数据保护栏位62中的三个子栏位621、622、623来保护数据。
请参照图5A所示,其为定义奇偶校验数据(如:P01、P11)的第二数据保护栏位62中三个子栏位621、622、623所储存内容的第一实施例。图中只针对有效载荷数据的第一数据保护栏位52与奇偶校验数据的第二数据保护栏位62绘示其储存的对应关系(以下图5B至图5F亦同);因为基本数据存取单元51、61的定义与现有习知无异,因此不再多做赘述。
为更清楚说明以下图5A至图5F所代表的六种实施例,以下先就图中各栏位说明其定义如下:
1.CRC(D01)~CRC(D21)、App(D01)~App(D21)、Ref(D01)~Ref(D21):统称为第一种查核数据(check data),分别表示根据”数据保护信息(DPI)”的标准,依据有效载荷数据D01、D11、D21的基本数据存取单元51计算或对应而得的循环冗余检查码(Cyclic Redundancy Check Code,图中表示为CRC)、逻辑区块应用标签(logical block application tag,图中表示为App)、以及逻辑区块参考标签(logical block reference tag,图中表示为Ref)。举例来说,CRC(D01)表示由有效载荷数据D01的基本数据存取单元51计算而得的循环冗余检查码(CRC),用以保护有效载荷数据D01的基本数据存取单元51在传输过程中不会发生数据错误;Ref(D01)表示由有效载荷数据D01的基本数据存取单元51对应而得的逻辑区块参考标签(Ref),用以保护有效载荷数据D01的基本数据存取单元51在传输过程中不会发生逻辑区块位址(logical block address,LBA)错误。上述的逻辑区块参考标签(Ref)的内容是由主机命令(host command)中的逻辑区块位址(LBA)直接引用或据以推算而来。
2.X-CRC、X-App、X-Ref:统称为第二种查核数据(check data),表示根据(5)式,以异或(XOR)运算,各自针对有效载荷数据D01、D11、D21的第一数据保护栏位52的对应子栏位521、522、523计算而得的第一奇偶校验数据(parity data),并各自储存于第一奇偶校验数据P01的第二数据保护栏位62的指定子栏位621a、622a、623a中。举例来说, X - CRC = CRC ( D 01 ) ⊕ CRC ( D 11 ) ⊕ CRC ( D 21 ) , ,其中
Figure G2009101464676D00173
表示异或(XOR)运算;此运算结果,在图5A、图5B与图5D中分别储存于第一子栏位621a、621b、621d,在图5C中储存于第三子栏位623c的前半部,在图5E与图5F中分别储存于第二子栏位622e、622f。
3.G-CRC、G-App、G-Ref:统称为第三种查核数据(check data),表示根据(6)式,利用Galois Field乘法运算、以及异或(XOR)运算,各自针对有效载荷数据D01、D11、D21的第一数据保护栏位52的对应子栏位521、522、523计算而得的第二奇偶校验数据(parity data),并各自储存于第二奇偶校验数据P11的第二数据保护栏位62的指定子栏位621a、622a、623a中。举例来说, G - CRC = 2 0 · CRC ( D 01 ) ⊕ 2 1 · CRC ( D 11 ) ⊕ 2 2 · CRC ( D 21 ) , 其中“.”表示Galois Field乘法运算、
Figure G2009101464676D00175
表示异或(XOR)运算;此运算结果,在图5A、图5B与图5D中分别储存于第一子栏位621a、621b、621d,在图5C中储存于第三子栏位623c的前半部,在图5E与图5F中分别储存于第二子栏位622e、622f。
4.TX-Ref与TG-Ref:将原本四字节(byte)的X-Ref与G-Ref缩减(Truncated)后而得的第一奇偶校验数据与第二奇偶校验数据的逻辑区块参考标签(Ref),以适合分别储存于分享出部分空间储存其他数据的第三子栏位623c、623d。至于缩减的方式,在一实施例中可为:将原来四字节(byte)的X-Ref与G-Ref分别截去前两字节(byte)而得TX-Ref与TG-Ref;在另一实施例中可为:将原来四字节(byte)的X-Ref与G-Ref分别截去后两字节(byte)而得TX-Ref与TG-Ref。
5.CRC(P01)、CRC(P11):统称为第四种查核数据(check data),表示由奇偶校验数据P01、P11的基本数据存取单元61计算而得的循环冗余检查码(CRC)。
6.Ref(P01)、Ref(P11):亦属于第四种查核数据(check data),表示由奇偶校验数据P01、P11的基本数据存取单元61对应而得的逻辑区块参考标签(Ref),此逻辑区块参考标签(Ref)所储存的是奇偶校验数据P01、P11的基本数据存取单元61所对应的物理储存装置(Physical Storage Device,PSD)的逻辑区块位址(Logical Block Address,LBA)。此奇偶校验数据P01、P11的逻辑区块位址Ref(P01)、Ref(P11),为控制器根据系统的RAID组态计算而得的数据储存位址,其与Ref(D01)~Ref(D21)并不相同。
由以上定义对应图5A可知,图中奇偶校验数据P01、P11的第二数据保护栏位62的三个子栏位621a、622a、623a,皆是储存由有效载荷数据D01、D11、D21的第一数据保护栏位52的对应子栏位521、522、523计算而得的结果;也就是说,同时对照图4,第二数据保护栏位62的计算方式是比照基本数据存取单元61的计算方式,各自根据(5)式与(6)式计算同一储存分割带(stripe)20的相对应数据而得。
图5A所代表的第一实施例的优点是:提供有效载荷数据D01、D11、D21的第一数据保护栏位52完整的RAID功能,一但其中任一子栏位521、522、523的数据遗失,可以很快速地利用奇偶校验数据P01、P11的第二数据保护栏位62的对应子栏位621a、622a、623a计算并恢复(recovery)其遗失的数据,且此数据恢复机制与原本基本数据存取单元51、61的计算方式一致。但是,第一实施例也有其不足之处,例如:实际从PSD读/写数据的过程中,奇偶校验数据P01、P11的基本数据存取单元61没有”数据保护信息(DPI)”的保护,也因此在数据读/写的过程中无法得知奇偶校验数据P01、P11是否有发生错误;假如用已经发生错误的奇偶校验数据P01、P11去回算遗失的有效载荷数据D01、D11、D21,此错误的回算结果难以即时被发现。
图5B所代表的第二实施例,则是将奇偶校验数据P01、P11的第二数据保护栏位62的第三子栏位623b,改为储存由奇偶校验数据P01、P11的基本数据存取单元61对应而得的逻辑区块参考标签(Ref),各自表示为Ref(P01)与Ref(P11);至于第二数据保护栏位62的第一子栏位621b与第二子栏位622b的计算方式,则与图5A同。此实施例的做法可以补强图5A的实施例的部分不足之处,如此使得奇偶校验数据P01、P11的基本数据存取单元61在装置端的数据传输过程中,可以有逻辑区块参考标签(Ref)的保护;但是,相对地,若有效载荷数据D01、D11、D21的第一数据保护栏位52的第三子栏位523发生错误、毁损或遗失,无法利用RAID机制恢复其遗失的数据。至于奇偶校验数据P01、P11的第二数据保护栏位62的第一子栏位与第二子栏位621b、622b的部分,因其实施方式与图5A同,因此也具有相同的特点。
总而言之,图5A定义奇偶校验数据P01、P11的第二数据保护栏位62可提供有效载荷数据D01、D11、D21的第一数据保护栏位52全面性的RAID功能保护,但却无法侦测奇偶校验数据P01、P11的基本数据存取单元61在装置端的数据传输过程中有无发生错误。图5B则是牺牲有效载荷数据D01、D11、D21的逻辑区块参考标签(Ref)523的RAID保护功能,以确保奇偶校验数据P01、P11的基本数据存取单元61的逻辑区块位址(LBA)没有错误;但还是无法提供奇偶校验数据P01、P11的基本数据存取单元61的循环冗余检查码(CRC)保护。
若是需要提供奇偶校验数据P01、P11的第二数据保护栏位62更多的数据保护,在图5C与图5D中,将原本配置4字节(byte)的第三子栏位623c、623d更划分为两个2字节(byte)的空间;其中一个2字节(byte)的第一空间用来储存缩减(Truncated)大小后的X-Ref与G-Ref,各表示为TX-Ref与TG-Ref;另一个2字节(byte)的第二空间则是用来与第一子栏位621c、621d搭配,储存CRC(P01)、CRC(P11)或X-CRC、G-CRC。虽然缩减(Truncated)大小后的TX-Ref与TG-Ref只能协助恢复(recovery)一半的逻辑区块参考标签(Ref)523的内容;但是,因为传输数据的逻辑区块位址(LBA)事实上可以藉由程序逻辑等方式推算而得,因此TX-Ref与TG-Ref可以辅助提供验证。
藉由分割第三子栏位623c、623d的空间,使得图5C与图5D所代表的第三实施例与第四实施例可以多储存一组查核数据(check data)(如:CRC(P01)、CRC(P11)或X-CRC、G-CRC),如此同时提供奇偶校验数据P01、P11的基本数据存取单元61在装置端的数据传输过程中,有循环冗余检查码(CRC)的保护(例如:藉由CRC(P01)、CRC(P11)),以及提供有效载荷数据D01、D11、D21的第一数据保护栏位52的循环冗余检查码(CRC)521有RAID的数据修复(recovery)功能(例如:藉由X-CRC、G-CRC)。但是这样的做法也还有不足之处:第一,奇偶校验数据P01、P11的基本数据存取单元61的传输位址(LBA)还是没有受到”数据保护信息(DPI)”的保护(例如:没有如其他实施例般,将传输位址储存于第三子栏位623而受到保护);第二,图5D所代表的第四实施例虽有提供奇偶校验数据P01、P11的基本数据存取单元61在装置端的数据传输过程中的CRC保护,但将CRC(P01)与CRC(P11)储存在第三栏位623d的部分空间的做法与现有习知”数据保护信息(DPI)”的标准不同,也就是其数据偏移量(offset)与规格不符,因此一般含有”数据保护信息(DPI)”功能的晶片(chip)并无法侦测到CRC(P01)与CRC(P11),需要额外的软硬件配合才能提供此CRC保护的功能。
在有些状况下,”数据保护信息(DPI)”中的逻辑区块应用标签(App)是可以容许被修改、甚至是可以遗失的。本发明利用上述特性,在图5E与图5F所代表的第五实施例与第六实施例中,将奇偶校验数据P01、P11的第二数据保护栏位62的第二子栏位622e、622f用来储存X-CRC与G-CRC,以提供有效载荷数据D01、D11、D21的第一数据保护栏位52的循环冗余检查码(CRC)521有RAID的数据修复(recovery)功能。奇偶校验数据P01、P11的第二数据保护栏位62的第一子栏位621e、621f则依照现有习知”数据保护信息(DPI)”标准的定义,储存由奇偶校验数据P01、P11的基本数据存取单元61计算而得的循环冗余检查码(CRC),以提供奇偶校验数据P01、P11的基本数据存取单元61在装置端的数据传输过程中的CRC保护。至于奇偶校验数据P01、P11的第二数据保护栏位62的第三子栏位623e、623f,在图5E所代表的第五实施例中,是储存Ref(P01)、Ref(P11);在图5F所代表的第六实施例中,是储存X-Ref、G-Ref。
总而言之,图5E所代表的第五实施例,藉由第一子栏位621e的循环冗余检查码(CRC)与第三子栏位623e的逻辑区块参考标签(Ref),保护奇偶校验数据P01、P11的基本数据存取单元61在装置端的数据传输过程中不会发生数据错误与位址错误:以及藉由第二子栏位622e,提供有效载荷数据D01、D11、D21的第一数据保护栏位52的循环冗余检查码(CRC)521具有RAID的数据修复(recovery)功能。但是,此实施例无法提供有效载荷数据D01、D11、D21的第一数据保护栏位52的逻辑区块参考标签(Ref)523具有RAID的数据修复(recovery)功能。
图5F所代表的第六实施例,藉由第一子栏位621f的循环冗余检查码(CRC),保护奇偶校验数据P01、P11的基本数据存取单元61在装置端的数据传输过程中不会发生数据错误;以及藉由第二子栏位622f与第三子栏位623f,提供有效载荷数据D01、D11、D21的第一数据保护栏位52的循环冗余检查码(CRC)521与逻辑区块参考标签(Ref)523,具有RAID的数据修复(recovery)功能。但是,此实施例无法保护奇偶校验数据P01、P11的基本数据存取单元61在装置端的数据传输过程中不会发生位址错误。
更近一步地,图5E与图5F中的第二子栏位622e、622f是用来储存X-CRC与G-CRC的查核数据。藉此,任意两个失效的有效载荷数据区块的第一数据保护栏位的逻辑区块护卫子栏位,可藉由多个奇偶校验数据区块的第二数据保护栏位的第二子栏位、以及未失效的有效载荷数据区块的第一数据保护栏位的逻辑区块护卫子栏位中的数据而计算产生。
更近一步地,图5E与图5F中是利用Galois Field乘法运算,使得任意两个失效的有效载荷数据区块的第一数据保护栏位的逻辑区块护卫子栏位,可藉由多个奇偶校验数据区块的第二数据保护栏位的第二子栏位、以及未失效的有效载荷数据区块的第一数据保护栏位的逻辑区块护卫子栏位中的数据而计算产生。
更近一步地,图5E中的第三子栏位623e是用来储存逻辑区块参考标签的查核数据,且该逻辑区块参考标签分别为多个奇偶校验数据区块的基本数据存取单元所对应的物理储存装置的逻辑区块位址。
更近一步地,图5F中的第三子栏位623f是用来储存X-Ref与G-Ref的查核数据。藉此,任意两个失效的有效载荷数据区块的第一数据保护栏位的逻辑区块参考标签子栏位,可藉由多个奇偶校验数据区块的第二数据保护栏位的第三子栏位、以及未失效的有效载荷数据区块的第一数据保护栏位的逻辑区块参考标签子栏位中的数据而计算产生。
更近一步地,图5F中是利用Galois Field乘法运算,使得任意两个失效的有效载荷数据区块的第一数据保护栏位的逻辑区块参考标签子栏位,可藉由多个奇偶校验数据区块的第二数据保护栏位的第三子栏位、以及未失效的有效载荷数据区块的第一数据保护栏位的逻辑区块参考标签子栏位中的数据而计算产生。
虽然上述图5A至图5F中的各实施例是以两个奇偶校验数据P01、P11为例来说明,但是在有第三个奇偶校验数据P21时,该等实施例亦可以此类推实施在第三个奇偶校验数据P21上。举例来说,若图5B的实施例再增加一第三奇偶校验数据P21(图中没有绘示),则P21的第二数据保护栏位62也具有一第一子栏位621b、一第二子栏位622b与一第三子栏位623b。其中,P21的第一子栏位621b与第二子栏位622b亦是储存由有效载荷数据D01、D11、D21的第一数据保护栏位52的对应子栏位521、522计算而得的结果,只是前述计算需依据P21所对应的方程式(例如: P 21 = c 0 · D 01 ⊕ c 1 · D 11 ⊕ c 2 · D 21 );藉此,可以提供有效载荷数据D01、D11、D21的对应栏位521、522有三个奇偶校验数据的保护。至于P21的第三子栏位623b,对照原图5B的实施例,也是储存由本身奇偶校验数据的基本数据存取单元对应而得的逻辑区块参考标签(Ref),可表示为Ref(P21)(图中没有绘示);藉此,提供P21的基本数据存取单元在装置端的数据传输过程中,可以有逻辑区块参考标签(Ref)的保护。
根据上述图5A至图5F中的各实施例可知,本发明在具有多奇偶校验数据(multiple parity data)的独立磁盘冗余阵列(Redundant Array ofIndependent Disks,RAID)的架构下,对于每一奇偶校验数据的数据保护栏位,定义有多个子栏位,且使该多个子栏位可以不同的组合方式(如上述图5A至图5F中的各实施例)来储存多种查核数据,以保护奇偶校验数据区块的基本数据存取单元内的数据、或有效载荷数据区块的数据保护栏位内的数据。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

Claims (27)

1、一种独立磁盘冗余阵列的架构,其特征在于其包含:
一冗余物理储存装置阵列,包含多个物理储存装置;
该冗余物理储存装置阵列界定有多个储存分割带,每一该储存分割带包含有多个有效载荷数据区块及多个奇偶校验数据区块,藉此,任意多个失效的该有效载荷数据区块中的至少一基本数据存取单元,可藉由该多个奇偶校验数据区块及未失效的该有效载荷数据区块计算产生;
每一该有效载荷数据区块与该奇偶校验数据区块包含该至少一基本数据存取单元及至少一附随的数据保护栏位,其中:
对于每一该有效载荷数据区块,该数据保护栏位为一第一数据保护栏位,用于储存数据保护信息,其包含有一逻辑区块护卫子栏位、一逻辑区块应用标签子栏位、以及一逻辑区块参考标签子栏位,以保护该有效载荷数据区块的该基本数据存取单元内的数据;以及,
对于每一奇偶校验数据区块,该数据保护栏位为一第二数据保护栏位,包含有多个子栏位,该多个子栏位能以不同的组合方式来储存多种查核数据,以保护该奇偶校验数据区块的该基本数据存取单元内的数据、或该有效载荷数据区块的该数据保护栏位内的数据。
2、根据权利要求1所述的架构,其特征在于其中所述的多个奇偶校验数据区块包含一第一奇偶校验数据区块与一第二奇偶校验数据区块。
3、根据权利要求1所述的架构,其特征在于其中所述的多个奇偶校验数据区块的该第二数据保护栏位的该多个子栏位更包含有一第一子栏位,用于储存该多种查核数据的其中之一;藉此,任意两个失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位,可藉由该多个奇偶校验数据区块的该第二数据保护栏位的该第一子栏位、以及未失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位中的数据而计算产生。
4、根据权利要求3所述的架构,其特征在于,其中利用Galois Field乘法运算,使得任意两个失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位,可藉由该多个奇偶校验数据区块的该第二数据保护栏位的该第一子栏位、以及未失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位中的数据而计算产生。
5、根据权利要求1所述的架构,其特征在于其中所述的多个奇偶校验数据区块的该第二数据保护栏位的该多个子栏位更包含有一第二子栏位,用于储存该多种查核数据的其中之一;藉此,任意两个失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块应用标签子栏位,可藉由该多个奇偶校验数据区块的该第二数据保护栏位的该第二子栏位、以及未失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块应用标签子栏位中的数据而计算产生。
6、根据权利要求1所述的架构,其特征在于其中所述的多个奇偶校验数据区块的该第二数据保护栏位的该多个子栏位更包含有一第三子栏位,用于储存该多种查核数据的其中之一;藉此,任意两个失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块参考标签子栏位,可藉由该多个奇偶校验数据区块的该第二数据保护栏位的该第三子栏位、以及未失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块参考标签子栏位中的数据而计算产生。
7、根据权利要求6所述的架构,其特征在于,其中是利用Galois Field乘法运算,使得任意两个失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块参考标签子栏位,可藉由该多个奇偶校验数据区块的该第二数据保护栏位的该第三子栏位、以及未失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块参考标签子栏位中的数据而计算产生。
8、根据权利要求1所述的架构,其特征在于其中所述的多个奇偶校验数据区块的该第二数据保护栏位的该多个子栏位更包含有一第三子栏位,用于储存该多种查核数据的其中之一,其为一逻辑区块参考标签,且该逻辑区块参考标签分别为该多个奇偶校验数据区块的基本数据存取单元所对应的物理储存装置的逻辑区块位址。
9、根据权利要求1所述的架构,其特征在于其中所述的多个奇偶校验数据区块的该第二数据保护栏位的该多个子栏位更包含有一第三子栏位,该第三子栏位划分为一第一空间与一第二空间。
10、根据权利要求9所述的架构,其特征在于其中所述的第一空间用于储存一缩减大小后的该多种查核数据的其中之一;该缩减大小后的查核数据,用于验证经推算而得的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块参考标签子栏位内的数据是否正确。
11、根据权利要求9所述的架构,其特征在于其中所述的第二空间用于储存该多种查核数据的其中之一;藉此,任意两个失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位,可藉由该多个奇偶校验数据区块的该第二数据保护栏位的该第三子栏位的该第二空间、以及未失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位中的数据而计算产生。
12、根据权利要求11所述的架构,其特征在于,其中利用Galois Field乘法运算,使得任意两个失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位,可藉由该多个奇偶校验数据区块的该第二数据保护栏位的该第三子栏位的该第二空间、以及未失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位中的数据而计算产生。
13、根据权利要求11所述的架构,其特征在于其中所述的多个奇偶校验数据区块的该第二数据保护栏位的该多个子栏位更包含有一第一子栏位,用于储存该多种查核数据的其中之一,其为一循环冗余检查码,且储存于该第一子栏位的该循环冗余检查码分别根据该多个奇偶校验数据区块的基本数据存取单元计算而得。
14、根据权利要求9所述的架构,其特征在于其中所述的第二空间用于储存该多种查核数据的其中之一,其为一循环冗余检查码,且储存于该第二空间的该循环冗余检查码分别根据该多个奇偶校验数据区块的基本数据存取单元计算而得。
15、根据权利要求14所述的架构,其特征在于其中所述的多个奇偶校验数据区块的该第二数据保护栏位的该多个子栏位更包含有一第一子栏位,用于储存该多种查核数据的其中之一;藉此,任意两个失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位,可藉由该多个奇偶校验数据区块的该第二数据保护栏位的该第一子栏位、以及未失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位中的数据而计算产生。
16、根据权利要求15所述的架构,其特征在于,其中是利用GaloisField乘法运算,使得任意两个失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位,可藉由该多个奇偶校验数据区块的该第二数据保护栏位的该第一子栏位、以及未失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位中的数据而计算产生。
17、根据权利要求1所述的架构,其特征在于其中所述的多个奇偶校验数据区块的该第二数据保护栏位的该多个子栏位更包含有一第一子栏位,用于储存该多种查核数据的其中之一,其为一循环冗余检查码,且储存于该第一子栏位的该循环冗余检查码分别根据该多个奇偶校验数据区块的基本数据存取单元计算而得。
18、根据权利要求17所述的架构,其特征在于其中所述的多个奇偶校验数据区块的该第二数据保护栏位的该多个子栏位更包含有一第二子栏位,用于储存该多种查核数据的其中之一;藉此,任意两个失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位,可藉由该多个奇偶校验数据区块的该第二数据保护栏位的该第二子栏位、以及未失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位中的数据而计算产生。
19、根据权利要求18所述的架构,其特征在于,其中是利用GaloisField乘法运算,使得任意两个失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位,可藉由该多个奇偶校验数据区块的该第二数据保护栏位的该第二子栏位、以及未失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块护卫子栏位中的数据而计算产生。
20、根据权利要求18所述的架构,其特征在于其中所述的多个奇偶校验数据区块的该第二数据保护栏位的该多个子栏位更包含有一第三子栏位,用于储存该多种查核数据的其中之一,其为一逻辑区块参考标签,且该逻辑区块参考标签分别为该多个奇偶校验数据区块的基本数据存取单元所对应的物理储存装置的逻辑区块位址。
21、根据权利要求18所述的架构,其特征在于其中所述的多个奇偶校验数据区块的该第二数据保护栏位的该多个子栏位更包含有一第三子栏位,用于储存该多种查核数据的其中之一;藉此,任意两个失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块参考标签子栏位,可藉由该多个奇偶校验数据区块的该第二数据保护栏位的该第三子栏位、以及未失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块参考标签子栏位中的数据而计算产生。
22、根据权利要求21所述的架构,其特征在于,其中是利用GaloisField乘法运算,使得任意两个失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块参考标签子栏位,可藉由该多个奇偶校验数据区块的该第二数据保护栏位的该第三子栏位、以及未失效的该有效载荷数据区块的该第一数据保护栏位的该逻辑区块参考标签子栏位中的数据而计算产生。
23、根据权利要求1所述的架构,其特征在于其中所述的基本数据存取单元的长度为512字节。
24、根据权利要求1所述的架构,其特征在于其中所述的第二数据保护栏位的该多个子栏位更包含有一第一子栏位、一第二子栏位以及一第三子栏位,所述第一、第二、第三栏位的大小分别为2字节、2字节与4字节。
25、根据权利要求9所述的架构,其特征在于其中所述的第一空间与该第二空间的大小分别为2字节与2字节。
26、根据权利要求1所述的架构,其特征在于其更包含有一阵列控制器,耦接于该冗余物理储存装置阵列,该阵列控制器处理涉及该多个奇偶校验数据区块的乘法运算,并且使用一特定数值做为乘法运算的溢位处理,该特定数值选自以下组合的其中之一:
0x11b    0x163    0x18d    0x1cf    0x11d
0x165    0x19f    0x1d7    0x12b    0x169
0x1a3    0x1dd    0x12d    0x171    0x1a9
0x1e7    0x139    0x177    0x1b1    0x1f3
0x13f    0x17b    0x1bd    0x1f5    0x14d
0x187    0x1c3    0x1f9    0x15f    0x18b。
27、根据权利要求1所述的架构,其特征在于其更包含有一阵列控制器,耦接于该冗余物理储存装置阵列,该阵列控制器使用查对数表/反对数表的方式来处理涉及该多个奇偶校验数据区块的乘法运算,并且使用一特定数值做为乘法运算的溢位处理,该特定数值是选自以下组合的其中之一:
0x11d    0x12d    0x15f    0x187
0x171    0x169    0x1f5    0x1c3
0x12b    0x14d    0x163    0x1cf
0x1a9    0x165    0x18d    0x1e7。
CN2009101464676A 2008-06-09 2009-06-08 独立磁盘冗余阵列系统 Active CN101604267B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US5981308P 2008-06-09 2008-06-09
US61/059,813 2008-06-09

Publications (2)

Publication Number Publication Date
CN101604267A true CN101604267A (zh) 2009-12-16
CN101604267B CN101604267B (zh) 2012-05-30

Family

ID=41470008

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009101464676A Active CN101604267B (zh) 2008-06-09 2009-06-08 独立磁盘冗余阵列系统

Country Status (2)

Country Link
US (1) US8234445B2 (zh)
CN (1) CN101604267B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104272261A (zh) * 2012-03-23 2015-01-07 Dssd股份有限公司 用于多维独立磁盘冗余阵列的方法和系统
TWI632459B (zh) * 2016-11-29 2018-08-11 台灣積體電路製造股份有限公司 記憶體位址保護電路與方法
CN110232935A (zh) * 2018-03-06 2019-09-13 株式会社东芝 磁盘装置及其记录方法
CN110784868A (zh) * 2019-10-22 2020-02-11 华南理工大学 无线通信的加密和解密、数据传输方法及无线通信系统
US10614019B2 (en) 2017-04-28 2020-04-07 EMC IP Holding Company LLC Method and system for fast ordered writes with target collaboration
US10936497B2 (en) 2017-04-28 2021-03-02 EMC IP Holding Company LLC Method and system for writing data to and read data from persistent storage

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8495469B2 (en) 2011-05-16 2013-07-23 International Business Machines Corporation Implementing enhanced IO data conversion with protection information model including parity format of data integrity fields
US8839083B2 (en) * 2011-10-25 2014-09-16 Taejin Info Tech Co., Ltd. Secure error detection and synchronous data tagging for high-speed data transfer
KR102146037B1 (ko) 2013-11-14 2020-08-19 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
US9952927B2 (en) * 2016-01-27 2018-04-24 Futurewei Technologies, Inc. Data protection for cold storage system
US11074130B2 (en) * 2019-03-28 2021-07-27 International Business Machines Corporation Reducing rebuild time in a computing storage environment
US11239864B2 (en) * 2019-07-03 2022-02-01 Vast Data Ltd. Techniques for improved erasure coding in distributed storage systems

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7797611B2 (en) * 2005-11-14 2010-09-14 International Business Machines Corporation Creating an error correction coding scheme and reducing data loss
US7617361B2 (en) * 2006-03-29 2009-11-10 International Business Machines Corporation Configureable redundant array of independent disks

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104272261A (zh) * 2012-03-23 2015-01-07 Dssd股份有限公司 用于多维独立磁盘冗余阵列的方法和系统
US11119856B2 (en) 2012-03-23 2021-09-14 EMC IP Holding Company LLC Method and system for multi-dimensional RAID
TWI632459B (zh) * 2016-11-29 2018-08-11 台灣積體電路製造股份有限公司 記憶體位址保護電路與方法
US10614019B2 (en) 2017-04-28 2020-04-07 EMC IP Holding Company LLC Method and system for fast ordered writes with target collaboration
US10936497B2 (en) 2017-04-28 2021-03-02 EMC IP Holding Company LLC Method and system for writing data to and read data from persistent storage
CN110232935A (zh) * 2018-03-06 2019-09-13 株式会社东芝 磁盘装置及其记录方法
CN110784868A (zh) * 2019-10-22 2020-02-11 华南理工大学 无线通信的加密和解密、数据传输方法及无线通信系统
CN110784868B (zh) * 2019-10-22 2020-12-22 华南理工大学 无线通信的加密和解密、数据传输方法及无线通信系统

Also Published As

Publication number Publication date
CN101604267B (zh) 2012-05-30
US20100037022A1 (en) 2010-02-11
US8234445B2 (en) 2012-07-31

Similar Documents

Publication Publication Date Title
CN101604267B (zh) 独立磁盘冗余阵列系统
CN100385405C (zh) 利用磁盘阵列奇偶校验的增强错误标识系统和方法
EP1828899B1 (en) Method and system for syndrome generation and data recovery
CN101236517B (zh) Raid系统和使用伽罗瓦域的数据恢复装置
US7925927B2 (en) Simulator for determining data loss in a fault tolerant system
CN105122213A (zh) 用于数据存储系统中的错误检测和纠正的方法和装置
US8489916B2 (en) Multi-disk fault-tolerant system, method for generating a check block, and method for recovering a data block
US9058291B2 (en) Multiple erasure correcting codes for storage arrays
CN102043685A (zh) 独立磁盘冗余阵列系统及其数据恢复方法
CN105353974B (zh) 一种适用于磁盘阵列及分布式存储系统的二容错编码方法
CN101868834A (zh) Raid信息的存储器效率检查
CN105808170B (zh) 一种能够修复单磁盘错误的raid6编码方法
CN109358980A (zh) 一种对数据更新和单磁盘错误修复友好的raid6编码方法
US9594631B2 (en) Method and controller for processing data multiplication in RAID system
US8489976B2 (en) Storage controlling device and storage controlling method
CN105117303A (zh) 一种数据恢复的方法及设备
US8443264B2 (en) Disk array apparatus, a disk array apparatus control method and a program for a disk array apparatus
US7340672B2 (en) Providing data integrity for data streams
US20140101366A1 (en) Writing memory blocks using codewords
Li et al. PDRS: A new recovery scheme application for vertical RAID-6 code
US8214589B2 (en) Data storage system redundancy scheme verification
CN104025056B (zh) 一种数据恢复的方法及设备
CN105938728A (zh) 用于近似平衡码的编码器和解码器设计
Lee et al. Review of Memory RAS for Data Centers
US20130086319A1 (en) Disk array device, disk array control method, and recording medium

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant