CN111381997A - 一种raid重建方法及装置 - Google Patents
一种raid重建方法及装置 Download PDFInfo
- Publication number
- CN111381997A CN111381997A CN201811618077.XA CN201811618077A CN111381997A CN 111381997 A CN111381997 A CN 111381997A CN 201811618077 A CN201811618077 A CN 201811618077A CN 111381997 A CN111381997 A CN 111381997A
- Authority
- CN
- China
- Prior art keywords
- disk
- data
- stripe
- raid
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 230000008439 repair process Effects 0.000 claims abstract description 33
- 230000008569 process Effects 0.000 claims abstract description 31
- 235000013399 edible fruits Nutrition 0.000 claims abstract description 6
- 230000011218 segmentation Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 238000012795 verification Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008092 positive effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1092—Rebuilding, e.g. when physically replacing a failing disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种RAID重建方法及装置。方法包括:检测到RAID中的某一磁盘出现故障时,将故障磁盘的数据以分条单元为单位分别校验重建至备用磁盘;并将重建结果实时标记于重建记录表中;在重建过程中,如果有除故障磁盘以外的其他磁盘的分条单元出现故障时,查询重建记录表,判断故障磁盘的分条单元是否为已重建状态,如果其他磁盘的分条单元为未重建状态,并且故障磁盘还处于可访问状态,则通过故障磁盘和RAID中的其他处于正常工作的磁盘中的数据对分条单元进行修复,并在修复完成以后将故障磁盘的与分条单元对应的数据重建至备用磁盘,更新所述重建记录表。如此,可以提高重建的安全性。
Description
技术领域
本申请涉及存储设备技术领域,具体而言,涉及一种数据读写方法及装置。
背景技术
RAID(Redundan Array of Inexpensive Disk)独立磁盘冗余阵列,是一种把多块独立的磁盘按不同的方式组合起来形成一个磁盘组,从而提供比单个磁盘更高的存储性能和提供数据备份技术。
在独立磁盘冗余阵列(例如RAID5、RAID6等)中,如果有一块磁盘出现故障时,为避免数据的丢失需要将故障磁盘的数据恢复到另外一块正常的磁盘中;现有技术中,一般所采用的方法是,在某一磁盘出现故障时,将故障的磁盘从所属RAID中剔除,然后利用冗余阵列中其他处于正常工作状态的磁盘的数据计算出该故障磁盘的数据,然后再写入到备用盘,但是如果在校验重建的过程中,其他原本处于正常工作状态的磁盘也出现故障时,会导致校验重建失败,进而导致数据丢失。
发明内容
有鉴于此,本申请提供一种RAID重建方法及装置,以达到在对故障磁盘进行重建时避免数据丢失的目的。
具体地,本申请是通过如下技术方案实现的:
第一方面,本申请实施例提供了一种RAID重建方法,所述方法包括:
检测到所述RAID中的某一磁盘出现故障时,将故障磁盘的数据以分条单元为单位分别校验重建至备用磁盘;并将重建结果实时标记于重建记录表中;
在重建过程中,如果有除所述故障磁盘以外的其他磁盘的分条单元出现故障时,查询所述重建记录表,判断所述故障磁盘的所述分条单元是否为已重建状态,如果是,则通过所述备用磁盘和所述RAID中的其他处于正常工作状态的磁盘中的数据对所述其他磁盘的分条单元进行修复;
如果所述其他磁盘的分条单元为未重建状态,并且所述故障磁盘还处于可访问状态,则通过所述故障磁盘和所述RAID中的其他处于正常工作的磁盘中的数据对所属分条单元进行修复,并在修复完成以后将所述故障磁盘的与所述分条单元对应的数据重建至所述备用磁盘,更新所述重建记录表。
第二方面,本申请实施例提供了一种RAID重建装置,包括:
重建模块,用于检测到所述RAID中的某一磁盘出现故障时,将故障磁盘的数据以分条单元为单位分别校验重建至备用磁盘;并将重建结果实时标记于重建记录表中;
第一修复模块,用于在重建过程中,如果有除所述故障磁盘以外的其他磁盘的分条单元出现故障时,查询所述重建记录表,判断所述故障磁盘的所述分条单元是否为已重建状态,如果是,则通过所述备用磁盘和所述RAID中的其他处于正常工作状态的磁盘中的数据对所述其他磁盘的分条单元进行修复;
第二修复模块,用于如果所述其他磁盘的分条单元为未重建状态,并且所述故障磁盘还处于可访问状态,则通过所述故障磁盘和所述RAID中的其他处于正常工作的磁盘中的数据对所属分条单元进行修复,并在修复完成以后将所述故障磁盘的与所述分条单元对应的数据重建至所述备用磁盘,更新所述重建记录表。
第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如第一方面所述方法的步骤。
第四方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述方法的步骤。
本申请所提供的一种RAID重建方法及装置,在检测到RAID中的某一磁盘出现故障时,将故障磁盘的数据校验重建至备用磁盘;此过程中没有把故障磁盘剔除,在将故障磁盘的数据校验重建至备用磁盘的过程中,如果其他磁盘的分条单元也出现故障,导致无法被读取时,此时如果该分条单元为已被重建的状态,则根据备用磁盘的数据和其他正常磁盘的数据对该无法被读取的分条单元进行修复;如果该分条单元为未重建状态,则尝试读取故障磁盘的数据,如果该故障磁盘还可以被访问,则根据该故障磁盘的数据和其他处于正常工作状态的磁盘的数据继续对该分条单元进行修复;进而避免了现有技术中,将RAID中的故障磁盘直接剔除后,在对故障磁盘数据进行重建过程中,如果出现该RAID中其他磁盘故障时所导致的校验重建失败,进而导致数据丢失的问题;具有安全性高的积极效果。
附图说明
图1是本申请一示例性实施例示出的一种RAID重建方法的流程示意图;
图2是本申请一示例性实施例示出的一种RAID的结构示意图;
图3是本申请一示例性实施例示出的一种RAID重建的整体流程示意图;
图4是本申请一示例性实施例示出的一种RAID重建的装置的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
考虑到现有技术中,在磁盘冗余阵列RAID中如果有磁盘出现故障时,该阵列需要进行重建,如果此时直接将故障盘剔除然后再进行重建,在重建过程中如果有其他磁盘出现故障,此时容易导致重建失败,进而导致数据丢失;基于此,本申请实施例提供了一种RAID重建方法及装置,以提高重建的安全性。
图1是本申请一示例性实施例示出的一种RAID重建方法的流程示意图。该方法应用于RAID控制器,参照图1所示,该方法包括如下步骤:
S100、控制器检测到所述RAID中的某一磁盘出现故障时,将故障磁盘的数据以分条单元为单位分别校验重建至备用磁盘;并将重建结果实时标记于重建记录表中。
上述控制器检测RAID中的每个磁盘的工作状态,当检测到有某个磁盘出现故障时,进行校验重建,将故障磁盘的数据以分条单元为单位分别重建至备用磁盘,该处进行重建的方式可以是校验重建,将RAID中除故障磁盘以外的其他磁盘的数据通过相应的算法(例如异或算法、纠删码算法等),计算出故障磁盘的数据,并将该数据写入到备用磁盘。
本实施例中,预先建立重建记录表(重建bitmap表),该重建记录表中记录有每个分条单元(cell)的重建状态;例如,在将故障磁盘的每一个分条单元进行重建至备用磁盘以后,将该分条单元的bit位置1,此时故障盘的在该分条单元位置的数据变为无效。进而,控制器可以通过查询上述的重建记录表(重建bitmap表)就可以确定某一个分条单元是否已被重建。
S102、在重建过程中,如果有除所述故障磁盘以外的其他磁盘的分条单元出现故障,不能读取时,查询所述重建记录表,判断所述分条单元是否为已重建状态,如果是,则通过所述备用磁盘和所述RAID中的其他处于正常工作的磁盘中的数据对所述分条单元进行修复。
本实施例中,在将故障磁盘的数据按照分条单元重建至备用磁盘的过程中,如果检测到除故障磁盘以外的其他磁盘也出现故障,该其他磁盘的分条单元不能被读取时,通过查询重建记录表得到该分条单元的状态,如果该分条单元已被重建,则根据备用磁盘的数据和RAID中的其他处于正常工作状态的磁盘的数据对该分条单元进行修复,在修复成功以后,该分条单元处于可读取的状态。进而,本申请实施例在RAID重建过程中可以实现对除故障磁盘以外的其他故障磁盘进行修复。
S104、如果所述其他磁盘的分条单元为未重建状态,并且所述故障磁盘还处于可访问状态,则通过所述故障磁盘和所述RAID中的其他处于正常工作的磁盘中的数据对所述分条单元进行修复,并在修复完成以后将所述故障盘的与该分条单元对应的数据重建至所述备用磁盘,更新所述重建记录表。
本实施例中,如果出现故障的其他磁盘的分条单元为未重建状态,则尝试读取故障磁盘的数据,如果此时该故障磁盘还可以被访问,则根据该故障磁盘的数据和其他处于正常工作状态的磁盘的数据对该分条单元进行修复。
进而避免了现有技术中,将RAID中的故障磁盘直接剔除后,在对故障磁盘数据进行重建过程中,如果出现其他磁盘故障时所导致的校验重建失败,进而导致数据丢失的问题;具有安全性高的积极效果。
本申请另一实施例中,上述方法,还包括如下步骤A10:
A10、如果所述分条单元为未重建状态,并且所述故障磁盘还处于不可访问状态,将所述分条单元标记为等待修复状态。
如果故障磁盘处于不可访问状态,此时无法利用故障磁盘对该分条单元进行重建,进而将该分条单元标记为等待修复状态,以提示人工进行修复。
本申请另一实施例中,上述方法,还包括如下步骤B10:
B10、在重建过程中,如果有数据写入,通过查询所述重建记录表得到所要写入的数据的分条单元为已重建状态,采用优化写的方式将所述数据写入至所述分条单元。
B20、通过查询所述重建记录表判断所要写入数据的分条单元为未重建状态,利用所述备用磁盘的数据将所述所要写入的数据进行重构写至所述备用磁盘的分条单元,并更新所述重建记录表。
本申请又一实施例中,上述方法,还包括如下步骤C10:
C10、在将故障磁盘的数据以分条单元为单位分别校验重建至备用磁盘结束以后,对所述备用磁盘的分条单元进行检测,确认所述备用磁盘中没有错误分条单元时,将所述故障磁盘从所述RAID中剔除。
本实施例中,每个磁盘的分条单元的总数是已知的,根据该总数和已经重建的分条单元的数目就可以确定故障磁盘的数据是否已经重建结束,在重建结束以后,对备用磁盘上的每个分条单元所写入的数据进行检测,确认该备用磁盘中的分条单元所写入的数据没有错误时,将故障磁盘从RAID中剔除,并由该备用磁盘代替原来的故障磁盘进行工作。
下面给出一个具体的应用实例,图2为本申请一示例性实施例示出的一种RAID的结构示意图,参照图2所示,以RAID中包含有5块磁盘为例,分别为:disk0、disk1、disk2、disk3和disk4;此外还设置有一块备用磁盘spare disk。假设磁盘disk3发生了故障,此时需要将磁盘disk3上的数据重建至备用磁盘spare disk上。
具体的,上述磁盘disk0、disk1、disk2、disk3和disk4分别具有相同的分条单元(cell)组成模式,例如,都包含有cell0、cell1、cellx、cellz1、、、;预先设置一个重建bitmap表,该bitmap表中记录有每个cell的重建情况;例如,当故障盘磁盘的cell0的数据被重建完成以后,将该cell0对应的bit位设置为1。
本实施例中,如果disk3的cell0的数据被重建时,分别读取磁盘disk0、disk1、disk2、disk4的cell0的数据,然后通过异或算法计算出disk3的cell0的原本的数据,然后将该数据写入到spare disk的cell0中。此时,由于不需要访问disk3,所以避免了现有技术中对于只有部分扇区不能访问的磁盘,采用快速重建的方式时需要保持对故障磁盘的频繁访问,带来整个RAID性能下降、影响前端业务等的负面影响。
在进行将故障磁盘disk3的数据重建至备用磁盘spare disk的过程中,如果前端有数据写入该冗余阵列中某一磁盘的分条单元时,例如将数据写入cellx,如果通过查询上述的bitmap表,确定该cellx为已重建状态,则采用优化写的方式,将所要写入的数据进行写入cell x。再例如,如果是将数据写入cell y,如果通过查询上述的bitmap表,确定该cell y为未重建状态时,根据备用磁盘的数据进行重构写,进而将所要写入的数据写入备用磁盘的cell y,并在写入完成以后将bitmap表中的cell y对应的bit位设置为1,表示该位置已进行重建。
参照图3所示,图中的热备盘即为备用磁盘,在进行将故障磁盘disk3的数据重建至备用磁盘spare disk的过程中,如果除故障磁盘以外的其他磁盘出现故障,例如,disk0的cell z1出现故障,不能读取;如果此时cell z1是已经重建完成,备用磁盘spare disk在cell z1的数据有效,可以利用disk1、disk2、disk4和spare disk的在cell z1的数据对该disk0的cell z1进行修复;如果修复失败,此时需要再添加一块磁盘进行双重重建。再例如,如果重建过程中,disk0的cell z2出现故障,不能读取;如果此时cell z2还没有进行重建,由于还没有对故障磁盘disk3进行踢盘处理,如果该故障磁盘disk3处于可访问状态,则可以使用disk1、disk2、disk3、disk4的数据对该cell z2进行修复;在将上述的disk0的cell z2的数据修复成功以后,把disk3的cell z2的数据重建至spare disk,并在重建bitmap表中把cell z2的bit位设置为1。
上述实施例中,如果重建过程中,disk0的cell z2出现故障,不能读取;此时如果cell z2还没有进行重建,且disk3在cell z2位置的数据也不能访问,那么该cell z2会被置为等待修复状态。由于没有对disk3进行踢盘处理,所以,这里就留有修复的余地(可以对故障盘进行人工修复,例如更换硬盘控制器,更换磁盘的磁碟等),如果后续disk3在cellz2位置的数据可以访问(例如修复完成之后,disk3在cellz2位置的数据可以正常读取),仍然还可以对disk0的cell z2的数据进行修复。
进而,上述实施例中,在重建过程中,故障盘没有踢盘,所以至少具有如下好处;
第一,重建过程中,如果没有问题,则不会访问故障磁盘,RAID整体的性能不会因为故障盘的性能有受到影响;
第二,重建过程中,RAID其他磁盘出现IO错误时,可以利用故障磁盘,修复其他磁盘出现IO错误的位置;
第三,重建中需要用到故障磁盘,但是故障磁盘对应又不能访问时,本技术预留了后续修复的接口,后续在经过修复以后当故障磁盘的对应位置可以访问时,就可以自动对之前错误的位置进行修复。
与前述RAID重建方法的实施例相对应,本申请还提供了RAID重建装置的实施例。
图4为本申请实施例所提供的一种RAID重建装置的结构示意图。参照图4所示,该装置包括:
重建模块400,用于检测到所述RAID中的某一磁盘出现故障时,将故障磁盘的数据以分条单元为单位分别校验重建至备用磁盘;并将重建结果实时标记于重建记录表中;
第一修复模块402,用于在重建过程中,如果有除所述故障磁盘以外的其他磁盘的分条单元出现故障时,查询所述重建记录表,判断所述故障磁盘的所述分条单元是否为已重建状态,如果是,则通过所述备用磁盘和所述RAID中的其他处于正常工作状态的磁盘中的数据对所述其他磁盘的分条单元进行修复;
第二修复模块404,用于如果所述其他磁盘的分条单元为未重建状态,并且所述故障磁盘还处于可访问状态,则通过所述故障磁盘和所述RAID中的其他处于正常工作的磁盘中的数据对所属分条单元进行修复,并在修复完成以后将所述故障磁盘的与所述分条单元对应的数据重建至所述备用磁盘,更新所述重建记录表。
本申请一可选的实施例中,上述装置,还包括:
标记模块,用于将所述分条单元标记为等待修复状态。
本申请一可选的实施例中,上述装置,还包括:
第一写入模块,用于在重建过程中,如果有数据写入,通过查询所述重建记录表得到所要写入数据的分条单元为已重建状态,采用优化写的方式将所述数据写入至所述分条单元。
本申请请另一可选的实施例中,上述装置,还包括:
第二写入模块,用于利用所述备用磁盘的数据将所述所要写入的数据进行重构写至所述备用磁盘的分条单元,并更新所述重建记录表。
本申请请又一可选的实施例中,上述装置,还包括:
剔除模块,用于在将故障磁盘的数据以分条单元为单位分别校验重建至备用磁盘结束以后,对所述备用磁盘的分条单元进行检测,确认所述备用磁盘中没有错误分条单元时,将所述故障磁盘从所述RAID中剔除。
装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在控制器的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本说明书中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、包括本说明书中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。
本说明书中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。所述处理及逻辑流程还可以由专用逻辑电路—例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。
适合用于执行计算机程序的计算机包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件包括用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏操纵台、全球定位系统(GPS)接收机、或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如EPROM、EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及CD ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种RAID重建方法,其特征在于,所述方法包括:
检测到所述独立磁盘冗余阵列RAID中的某一磁盘出现故障时,将故障磁盘的数据以分条单元为单位分别校验重建至备用磁盘;并将重建结果实时标记于重建记录表中;
在重建过程中,如果有除所述故障磁盘以外的其他磁盘的分条单元出现故障时,查询所述重建记录表,判断所述故障磁盘的所述分条单元是否为已重建状态,如果是,则通过所述备用磁盘和所述RAID中的其他处于正常工作状态的磁盘中的数据对所述其他磁盘的分条单元进行修复;
如果所述其他磁盘的分条单元为未重建状态,并且所述故障磁盘还处于可访问状态,则通过所述故障磁盘和所述RAID中的其他处于正常工作的磁盘中的数据对所述分条单元进行修复,并在修复完成以后将所述故障磁盘的与所述分条单元对应的数据重建至所述备用磁盘,更新所述重建记录表。
2.根据权利要求1所述的方法,其特征在于,还包括:如果所述其他磁盘的分条单元为未重建状态,并且所述故障磁盘处于不可访问状态,则将所述分条单元标记为等待修复状态。
3.根据权利要求1所述的方法,其特征在于,还包括:
在重建过程中,如果有数据写入,通过查询所述重建记录表得到所要写入数据的分条单元为已重建状态,采用优化写的方式将所述数据写入至所述分条单元。
4.根据权利要求3所述的方法,其特征在于,还包括:
通过查询所述重建记录表判断所要写入数据的分条单元为未重建状态,利用所述备用磁盘的数据将所述所要写入的数据进行重构写至所述备用磁盘的分条单元,并更新所述重建记录表。
5.根据权利要求1所述的方法,其特征在于,还包括:
在将故障磁盘的数据以分条单元为单位分别校验重建至备用磁盘结束以后,对所述备用磁盘的分条单元进行检测,确认所述备用磁盘中没有错误分条单元时,将所述故障磁盘从所述RAID中剔除。
6.一种RAID重建装置,其特征在于,包括:
重建模块,用于检测到所述RAID中的某一磁盘出现故障时,将故障磁盘的数据以分条单元为单位分别校验重建至备用磁盘;并将重建结果实时标记于重建记录表中;
第一修复模块,用于在重建过程中,如果有除所述故障磁盘以外的其他磁盘的分条单元出现故障时,查询所述重建记录表,判断所述故障磁盘的所述分条单元是否为已重建状态,如果是,则通过所述备用磁盘和所述RAID中的其他处于正常工作状态的磁盘中的数据对所述其他磁盘的分条单元进行修复;
第二修复模块,用于如果所述其他磁盘的分条单元为未重建状态,并且所述故障磁盘还处于可访问状态,则通过所述故障磁盘和所述RAID中的其他处于正常工作的磁盘中的数据对所属分条单元进行修复,并在修复完成以后将所述故障磁盘的与所述分条单元对应的数据重建至所述备用磁盘,更新所述重建记录表。
7.根据权利要求6所述的装置,其特征在于,还包括:
标记模块,用于将所述分条单元标记为等待修复状态。
8.根据权利要求6所述的装置,其特征在于,还包括:
第一写入模块,用于在重建过程中,如果有数据写入,通过查询所述重建记录表得到所要写入数据的分条单元为已重建状态,采用优化写的方式将所述数据写入至所述分条单元。
9.根据权利要求8所述的装置,其特征在于,还包括:
第二写入模块,用于利用所述备用磁盘的数据将所述所要写入的数据进行重构写至所述备用磁盘的分条单元,并更新所述重建记录表。
10.根据权利要求6所述的装置,其特征在于,还包括:
剔除模块,用于在将故障磁盘的数据以分条单元为单位分别校验重建至备用磁盘结束以后,对所述备用磁盘的分条单元进行检测,确认所述备用磁盘中没有错误分条单元时,将所述故障磁盘从所述RAID中剔除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811618077.XA CN111381997B (zh) | 2018-12-28 | 2018-12-28 | 一种raid重建方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811618077.XA CN111381997B (zh) | 2018-12-28 | 2018-12-28 | 一种raid重建方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111381997A true CN111381997A (zh) | 2020-07-07 |
CN111381997B CN111381997B (zh) | 2024-03-01 |
Family
ID=71216795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811618077.XA Active CN111381997B (zh) | 2018-12-28 | 2018-12-28 | 一种raid重建方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111381997B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113238991A (zh) * | 2021-07-12 | 2021-08-10 | 湖南博匠信息科技有限公司 | 一种基于fpga实现硬raid卡功能的方法 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5913927A (en) * | 1995-12-15 | 1999-06-22 | Mylex Corporation | Method and apparatus for management of faulty data in a raid system |
CN1503224A (zh) * | 2002-11-22 | 2004-06-09 | 华为技术有限公司 | 5级独立冗余磁盘阵列中多盘失败情况下的读写操作方法 |
US20050283654A1 (en) * | 2004-05-24 | 2005-12-22 | Sun Microsystems, Inc. | Method and apparatus for decreasing failed disk reconstruction time in a raid data storage system |
CN1834932A (zh) * | 2005-03-15 | 2006-09-20 | 富士通株式会社 | 存储控制装置和方法 |
US20100251012A1 (en) * | 2009-03-24 | 2010-09-30 | Lsi Corporation | Data Volume Rebuilder and Methods for Arranging Data Volumes for Improved RAID Reconstruction Performance |
CN102023902A (zh) * | 2010-12-28 | 2011-04-20 | 创新科存储技术有限公司 | 一种磁盘阵列重建方法 |
CN102164165A (zh) * | 2011-02-18 | 2011-08-24 | 杭州宏杉科技有限公司 | 一种网络存储系统的管理方法及装置 |
CN102207895A (zh) * | 2011-05-27 | 2011-10-05 | 杭州华三通信技术有限公司 | 一种独立磁盘冗余阵列数据重建方法和装置 |
CN105302492A (zh) * | 2015-11-18 | 2016-02-03 | 浙江大华技术股份有限公司 | 一种磁盘阵列raid重建方法及装置 |
CN105531677A (zh) * | 2013-08-27 | 2016-04-27 | 新加坡科技研究局 | Raid奇偶校验条带重建 |
CN106371947A (zh) * | 2016-09-14 | 2017-02-01 | 郑州云海信息技术有限公司 | 一种用于raid的多故障盘数据恢复方法及其系统 |
CN107220148A (zh) * | 2016-03-21 | 2017-09-29 | 伊姆西公司 | 针对独立磁盘冗余阵列的重建方法和设备 |
-
2018
- 2018-12-28 CN CN201811618077.XA patent/CN111381997B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5913927A (en) * | 1995-12-15 | 1999-06-22 | Mylex Corporation | Method and apparatus for management of faulty data in a raid system |
CN1503224A (zh) * | 2002-11-22 | 2004-06-09 | 华为技术有限公司 | 5级独立冗余磁盘阵列中多盘失败情况下的读写操作方法 |
US20050283654A1 (en) * | 2004-05-24 | 2005-12-22 | Sun Microsystems, Inc. | Method and apparatus for decreasing failed disk reconstruction time in a raid data storage system |
CN1834932A (zh) * | 2005-03-15 | 2006-09-20 | 富士通株式会社 | 存储控制装置和方法 |
US20100251012A1 (en) * | 2009-03-24 | 2010-09-30 | Lsi Corporation | Data Volume Rebuilder and Methods for Arranging Data Volumes for Improved RAID Reconstruction Performance |
CN102023902A (zh) * | 2010-12-28 | 2011-04-20 | 创新科存储技术有限公司 | 一种磁盘阵列重建方法 |
CN102164165A (zh) * | 2011-02-18 | 2011-08-24 | 杭州宏杉科技有限公司 | 一种网络存储系统的管理方法及装置 |
CN102207895A (zh) * | 2011-05-27 | 2011-10-05 | 杭州华三通信技术有限公司 | 一种独立磁盘冗余阵列数据重建方法和装置 |
CN105531677A (zh) * | 2013-08-27 | 2016-04-27 | 新加坡科技研究局 | Raid奇偶校验条带重建 |
US20160217040A1 (en) * | 2013-08-27 | 2016-07-28 | Agency For Science, Technology And Research | Raid parity stripe reconstruction |
CN105302492A (zh) * | 2015-11-18 | 2016-02-03 | 浙江大华技术股份有限公司 | 一种磁盘阵列raid重建方法及装置 |
CN107220148A (zh) * | 2016-03-21 | 2017-09-29 | 伊姆西公司 | 针对独立磁盘冗余阵列的重建方法和设备 |
CN106371947A (zh) * | 2016-09-14 | 2017-02-01 | 郑州云海信息技术有限公司 | 一种用于raid的多故障盘数据恢复方法及其系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113238991A (zh) * | 2021-07-12 | 2021-08-10 | 湖南博匠信息科技有限公司 | 一种基于fpga实现硬raid卡功能的方法 |
CN113238991B (zh) * | 2021-07-12 | 2021-11-05 | 湖南博匠信息科技有限公司 | 一种基于fpga实现硬raid卡功能的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111381997B (zh) | 2024-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10152249B2 (en) | Data memory device and controller with interface error detection and handling logic | |
CN102708019B (zh) | 一种硬盘数据恢复方法、装置及系统 | |
US8230255B2 (en) | Blocking write acces to memory modules of a solid state drive | |
US8700951B1 (en) | System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata | |
US9152512B2 (en) | Apparatus and methods for providing data integrity | |
US9170898B2 (en) | Apparatus and methods for providing data integrity | |
TWI442407B (zh) | 在固態儲存系統中之資料回復 | |
CN104035830B (zh) | 一种数据恢复方法和装置 | |
TWI528174B (zh) | 基於可用記憶體空間選擇冗餘儲存組態 | |
US7689890B2 (en) | System and method for handling write commands to prevent corrupted parity information in a storage array | |
US20140215262A1 (en) | Rebuilding a storage array | |
CN101840360A (zh) | Raid系统的快速重建方法及装置 | |
MX2012010944A (es) | Detección de distribución de paridad no regulada vía etiqueta de metadatos. | |
CN105468479B (zh) | 一种磁盘阵列raid坏块处理方法及装置 | |
CN103455386A (zh) | 一种修复出错数据的方法和设备 | |
CN108958961B (zh) | 数据储存装置以及数据错误管理方法 | |
CN111816239B (zh) | 磁盘检测方法、装置、电子设备及机器可读存储介质 | |
CN105183590A (zh) | 一种磁盘阵列的容错处理方法 | |
TW201329701A (zh) | 具有自動重映射功能的磁碟陣列及其自動重映射方法 | |
CN111381997B (zh) | 一种raid重建方法及装置 | |
US7577804B2 (en) | Detecting data integrity | |
CN111428280A (zh) | SoC安全芯片密钥信息完整性存储及错误自修复方法 | |
JP5908106B2 (ja) | 妥当性マスクを記憶する装置および方法ならびに操作装置 | |
CN102385544B (zh) | 一种磁盘重建方法和装置 | |
US20180181467A1 (en) | Hard disk array and method for reconstructing thereof |
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 |