CN102968361A - 一种raid数据自修复的方法 - Google Patents
一种raid数据自修复的方法 Download PDFInfo
- Publication number
- CN102968361A CN102968361A CN2012104650175A CN201210465017A CN102968361A CN 102968361 A CN102968361 A CN 102968361A CN 2012104650175 A CN2012104650175 A CN 2012104650175A CN 201210465017 A CN201210465017 A CN 201210465017A CN 102968361 A CN102968361 A CN 102968361A
- Authority
- CN
- China
- Prior art keywords
- data
- sector
- disk
- reserved area
- read
- 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.)
- Pending
Links
Images
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明提供一种RAID数据自修复的方法,对数据进行分段预留,不仅能提升转移的性能,减少了寻址的距离;还能对数据进行分层次转移,方便管理;预留区域分散,防止坏扇区集中产生于某个区域,或者是预留区域发生了损坏,若单一预留区域,发生损坏就无法转移,分段预留,即使一个活多个预留区损坏,还能继续转移到全局预留区域。
Description
技术领域
本发明涉及计算机系统及存储领域,具体涉及一种RAID5数据自修复的方法。
背景技术
对于具有冗余校验信息的RAID系统,容错功能已成为磁盘阵列最受青睐的特性,为了加强容错的功能以及使系统在磁 盘故障的情况下能迅速的重建数据,以维持系统的性能,一般的磁盘阵列系统都可使用 热备份的功能,所谓热备份是在建立磁盘阵列系统的时候,将其中一磁盘指定为后备磁盘,此一磁盘在平常并不操作,但若阵列中某一磁盘发生故障时,磁盘阵列即以后备磁盘取代故障磁盘,并自动将故障磁盘的数据重建在热备磁盘之上。有的磁盘阵列(比如RAID5)只允许有一块盘失效,当有第二块盘失效的时候,整个磁盘阵列就失效了。
有些磁盘阵列的掉盘是由于少量坏扇区引起的。由于少量坏扇区而引起的磁盘失效,大大降低了系统的可靠性。几乎所有的硬盘都会有坏扇区,从损坏形式上来说,坏扇区可分为两类:软损坏扇区和物理损坏扇区。软损坏扇区往往是病毒或某些软件造成的,不是真正的坏扇区,可以通过再次格式化来修复。另一种是物理损坏引起的坏扇区,数据将永远无法写入到这种扇区中。这两种形式引起的坏扇区都可以通过数据转移来避归。
发明内容
本发明的目的提供一种RAID数据自修复的方法,该方法是把数据区分成多个数据单元,对每个数据单元的数据都设置有一个局部预留区域;一旦某个扇区损坏,就把坏扇区的数据转移到预留区域,另外再磁盘的尾端还设置全局预留区域,一旦局部预留区域再出现坏扇区而发生错误是,将数据及时转移到全局预留区域,以此防止数据的丢失。
本发明的目的是按以下方式实现的,具体步骤如下:
(1)坏扇区数据转移的故障决策,包括以下两个方面:
1)通过扇区读写报错,做为数据转移的一个故障决策;
2)周期性扫描硬盘发现介质或者数据错误,做为数据转移的一个故障决策;
(2)数据布局
在创建RAID的时候,首先要把数据区域分成多个部分,对每个部分都设置一个预留区域,当数据发生读写错误的时候,先将数据转移到对应的局部预留区域;在磁盘的尾部再设置全局预留区域,如果转移到对应的局部预留区域再发生错误,就把数据转移到全局预留区域;当转移到全局预留区域还是错误,就认为该盘失效,数据的分配以及预留区域的大小是磁盘空间而定;
为了记录数据转移信息,对每个数据部分要建立一个扇区映射表,表格的每一项包含原来扇区号和新转移的扇区号,这个表格放到磁盘预留空间,使用的时候放到内存;
另外,磁盘内还设置有计数组,记录每个磁盘的每个预留区域扇区数据的转移信息;对于4TB的磁盘容量,使用34位即可表示扇区数,考虑以后磁盘容量扩展,以及标志位,用64位表示一个偏移记录,对于一次转移来说,因为要表示原扇区位置和预留扇区位置,所以,需要128位来表示,其中,第一位是标志位,来表示是否有过转移;
当有扇区发生读写错误的时候,记录是哪个扇区出现的错误,并增加该盘的坏扇区统计计数,在扇区映射表格里填上原始扇区号和新映射的扇区号,把数据写到预留空间,预留空间是按照时间先后顺序排序写入的,当某一块盘的坏扇区数目过多的时候,就宣告这块盘失效,把这块盘踢出阵列;
为了防止扇区映射表格丢失,需要将表格备份,通过冗余提高可靠性,把备份的表格记录副本放在每个数据部分的开头位置,同步扇区映射表格副本,但是同步会影响数据转移时的性能;或采用异步备份副本,虽然异步备份可能丢失一部分记录信息,但是大部分记录会保存下来,对于丢失的部分,可以比较原本对副本进行修复,当一份记录发生错误或者丢失,就去读另一个副本,当副本也发生错误或丢失,则宣告该磁盘失效;
综上所述,一个数据单元包括两份扇区映射表信息,一个数据区,一个局部预留区域;
(3)读写错误分析
具体步骤如下:
1)读写操作先在映射表中查询此扇区是否已经记录为坏扇区;
2)如果此扇区在映射表中有坏扇区记录,就到预留扇区上读写数据,并判断是否出错;否则读写该扇区的数据;
3)如果读写预留扇区或者原始扇区出现错误,则判断是否可修复,判断根据RAID算法,如果一个条带错误过多,则无法修复,如果能修复,就进行数据转移;如果无法修复,就设定该盘失效;
(4)周期扫描
本方法引入一个周期线程,用于扫描磁盘及时发现错误,为了不影响磁盘使用性能,该线程只在设备空闲的时候进行扫描;
磁盘中设置预留区域,对于大容量的磁盘,设置预留区域不会带来太大空间的损失,反而能增加磁盘的可靠性。
本发明的有益效果是:对数据进行分段预留,不仅能提升转移的性能,减少了寻址的距离;还能对数据进行分层次转移,方便管理;预留区域分散,防止坏扇区集中产生于某个区域,或者是预留区域发生了损坏,若单一预留区域,发生损坏就无法转移,分段预留,即使一个活多个预留区损坏,还能继续转移到全局预留区域。
附图说明
图1是故障决策示意图;
图2是磁盘数据布局示意图;
图3是扇区映射表;
图4是扇区映射单元结构示意图;
图5是读写出错分析流程图。
具体实施方式
参照说明书附图对本发明的方法作以下详细地说明。
本发明的方法是把数据区分成多个数据单元,对每个数据单元的数据都设置有一个局部预留区域;一旦某个扇区损坏,就把坏扇区的数据转移到预留区域,另外再磁盘的尾端还设置全局预留区域,一旦局部预留区域再出现坏扇区而发生错误是,将数据及时转移到全局预留区域,以此防止数据的丢失,如图1所示:坏扇区故障决策则主要有以下两个方面:
1)通过扇区读写报错,做为数据转移一个故障决策;
2)周期性扫描硬盘发现介质或者数据错误,做为数据转移的一个故障决策。
数据布局
在创建RAID的时候,首先要把数据区域分成多个部分,对每个部分都设置一个预留区域,如图2所示。当数据发生读写错误的时候,先转移到对应的局部预留区域;在磁盘的尾部还有个全局区域,如果转移到对应的局部预留区域再发生错误,就把数据转移到全局预留区域;当转移到全局预留区域还是错误,就认为该盘失效。具体把数据分成几个部分,以及预留区域的大小都可以设置。
业内有的做法是只对整体数据只有一个预留区域,本发明对数据进行分段预留,这样做的优点如下:可以提升转移的性能,减少了寻址的距离;可以对数据进行分层次转移,方便管理;预留区域分散,防止坏扇区集中产生于某个区域,或者是预留区域发生了损坏,如果只有一个预留区域,发生损坏就无法转移,而本发明则可以继续转移到全局预留区域。
为了记录数据转移信息,对每个数据部分要建立一个扇区映射表,如图3,表格的每一项包含原来扇区号和新转移的扇区号,这个表格可以放到磁盘预留空间,使用的时候放到内存。另外,还有个计数数组记录有每个磁盘的每个预留区域多少个扇区进行了转移。
对于4TB的磁盘容量,使用34位即可表示扇区数,考虑以后磁盘容量扩展,以及标志位,用64位表示一个偏移记录,对于一次转移来说,因为要表示原扇区位置和预留扇区位置,所以,需要128位来表示。其中,第一位是标志位,来表示是否有过转移,如图4所示。。
当有扇区发生读写错误的时候,记录是哪个扇区出现的错误,并增加该盘的坏扇区统计计数。在扇区映射表格里填上原始扇区号和新映射的扇区号,把数据写到预留空间。预留空间是按照时间先后顺序排序写入的。
当某一块盘的坏扇区数目过多的时候,就宣告这块盘失效,把这块盘踢出阵列。
为了防止扇区映射表格丢失,需要将表格备份,通过冗余提高可靠性。可以把备份的表格记录副本放在每个数据部分的开头位置。可以同步扇区映射表格副本,但是同步会影响数据转移时的性能;也可以异步备份副本,虽然异步备份可能丢失一部分记录信息,但是大部分记录会保存下来,对于丢失的部分,可以比较原本对副本进行修复。
当一份记录发生错误或者丢失,就去读另一个副本,当副本也发生错误或丢失,则宣告该磁盘失效。
综上所述,该结构的一个数据单元包括两份扇区映射表信息,一个数据区,一个局部预留区域。
读写错误分析
整个流程如图5所示,具体步骤如下:
1)读写操作先在映射表中查询此扇区是否已经记录为坏扇区;
2)如果此扇区在映射表中有记录,就到预留扇区上读写数据,并判断是否出错;否则读写该扇区的数据;
3)如果读写预留扇区或者原始扇区出现错误,则判断是否可修复(根据RAID算法,如果一个条带错误过多,则无法修复),如果能修复,就进行数据转移;如果无法修复,就设定该盘失效。
周期扫描
本发明的方法引入一个周期线程,用于扫描磁盘,及时发现错误。为了不影响使用性能,该线程只在设备空闲的时候进行扫描。
本发明的方法是对出现扇区的错误进行处理,可以避免因为少量的扇区而让整个磁盘阵列失效,当坏扇区过多的时候,才宣告失效,大大增加了整个磁盘阵列的可靠性。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (2)
1.一种RAID数据自修复的方法, 其特征在于该方法是把数据区分成多个数据单元,对每个数据单元的数据都设置有一个局部预留区域;一旦某个扇区损坏,就把坏扇区的数据转移到预留区域,另外再磁盘的尾端还设置全局预留区域,一旦局部预留区域再出现坏扇区而发生错误是,将数据及时转移到全局预留区域,以此防止数据的丢失,具体步骤如下:
(1)坏扇区数据转移的故障决策,包括以下两个方面:
1)通过扇区读写报错,做为数据转移的一个故障决策;
2)周期性扫描硬盘发现介质或者数据错误,做为数据转移的一个故障决策;
(2)数据布局
在创建RAID的时候,首先要把数据区域分成多个部分,对每个部分都设置一个预留区域,当数据发生读写错误的时候,先将数据转移到对应的局部预留区域;在磁盘的尾部再设置全局预留区域,如果转移到对应的局部预留区域再发生错误,就把数据转移到全局预留区域;当转移到全局预留区域还是错误,就认为该盘失效,数据的分配以及预留区域的大小是磁盘空间而定;
为了记录数据转移信息,对每个数据部分要建立一个扇区映射表,表格的每一项包含原来扇区号和新转移的扇区号,这个表格放到磁盘预留空间,使用的时候放到内存;
另外,磁盘内还设置有计数组,记录每个磁盘的每个预留区域扇区数据的转移信息;对于4TB的磁盘容量,使用34位即可表示扇区数,考虑以后磁盘容量扩展,以及标志位,用64位表示一个偏移记录,对于一次转移来说,因为要表示原扇区位置和预留扇区位置,所以,需要128位来表示,其中,第一位是标志位,来表示是否有过转移;
当有扇区发生读写错误的时候,记录是哪个扇区出现的错误,并增加该盘的坏扇区统计计数,在扇区映射表格里填上原始扇区号和新映射的扇区号,把数据写到预留空间,预留空间是按照时间先后顺序排序写入的,当某一块盘的坏扇区数目过多的时候,就宣告这块盘失效,把这块盘踢出阵列;
为了防止扇区映射表格丢失,需要将表格备份,通过冗余提高可靠性,把备份的表格记录副本放在每个数据部分的开头位置,同步扇区映射表格副本,但是同步会影响数据转移时的性能;或采用异步备份副本,虽然异步备份可能丢失一部分记录信息,但是大部分记录会保存下来,对于丢失的部分,可以比较原本对副本进行修复,当一份记录发生错误或者丢失,就去读另一个副本,当副本也发生错误或丢失,则宣告该磁盘失效;
综上所述,一个数据单元包括两份扇区映射表信息,一个数据区,一个局部预留区域;
(3)读写错误分析
具体步骤如下:
1)读写操作先在映射表中查询此扇区是否已经记录为坏扇区;
2)如果此扇区在映射表中有坏扇区记录,就到预留扇区上读写数据,并判断是否出错;否则读写该扇区的数据;
3)如果读写预留扇区或者原始扇区出现错误,则判断是否可修复,判断根据RAID算法,如果一个条带错误过多,则无法修复,如果能修复,就进行数据转移;如果无法修复,就设定该盘失效;
(4)周期扫描
本方法引入一个周期线程,用于扫描磁盘及时发现错误,为了不影响磁盘使用性能,该线程只在设备空闲的时候进行扫描。
2.根据权利要求1所述的方法, 其特征在于磁盘中设置预留区域,对于大容量的磁盘,设置预留区域不会带来太大空间的损失,反而能增加磁盘的可靠性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012104650175A CN102968361A (zh) | 2012-11-19 | 2012-11-19 | 一种raid数据自修复的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012104650175A CN102968361A (zh) | 2012-11-19 | 2012-11-19 | 一种raid数据自修复的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102968361A true CN102968361A (zh) | 2013-03-13 |
Family
ID=47798514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012104650175A Pending CN102968361A (zh) | 2012-11-19 | 2012-11-19 | 一种raid数据自修复的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102968361A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103309775A (zh) * | 2013-07-03 | 2013-09-18 | 苏州科达科技股份有限公司 | 一种高可靠磁盘阵列的容错方法 |
CN103390429A (zh) * | 2013-07-29 | 2013-11-13 | 华为技术有限公司 | 一种硬盘的在线检测方法及服务器 |
CN103699457A (zh) * | 2013-09-26 | 2014-04-02 | 深圳市泽云科技有限公司 | 基于条带化的磁盘阵列修复方法及装置 |
CN103729276A (zh) * | 2014-01-28 | 2014-04-16 | 深圳市迪菲特科技股份有限公司 | 一种扫描磁盘阵列的方法 |
CN104317730A (zh) * | 2014-10-27 | 2015-01-28 | 浪潮(北京)电子信息产业有限公司 | 一种基于二次分配管理磁盘扩展空间方法及系统 |
CN108804026A (zh) * | 2018-03-27 | 2018-11-13 | 深圳忆联信息系统有限公司 | 一种固态硬盘全盘扫描方法及固态硬盘 |
CN110795273A (zh) * | 2019-10-18 | 2020-02-14 | 苏州浪潮智能科技有限公司 | 一种raid的写洞保护方法、系统及存储介质 |
CN111813609A (zh) * | 2020-07-23 | 2020-10-23 | 深圳大普微电子科技有限公司 | 一种存储介质中数据恢复方法、数据恢复系统及相关设备 |
CN118069066A (zh) * | 2024-04-12 | 2024-05-24 | 四川华鲲振宇智能科技有限责任公司 | 一种提升存储系统性能的存储方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101527142A (zh) * | 2009-04-17 | 2009-09-09 | 杭州华三通信技术有限公司 | 一种磁盘冗余阵列中数据的读写方法和设备 |
US8171379B2 (en) * | 2008-02-18 | 2012-05-01 | Dell Products L.P. | Methods, systems and media for data recovery using global parity for multiple independent RAID levels |
CN102508620A (zh) * | 2011-12-01 | 2012-06-20 | 浪潮电子信息产业股份有限公司 | 一种处理raid5坏扇区的方法 |
-
2012
- 2012-11-19 CN CN2012104650175A patent/CN102968361A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8171379B2 (en) * | 2008-02-18 | 2012-05-01 | Dell Products L.P. | Methods, systems and media for data recovery using global parity for multiple independent RAID levels |
CN101527142A (zh) * | 2009-04-17 | 2009-09-09 | 杭州华三通信技术有限公司 | 一种磁盘冗余阵列中数据的读写方法和设备 |
CN102508620A (zh) * | 2011-12-01 | 2012-06-20 | 浪潮电子信息产业股份有限公司 | 一种处理raid5坏扇区的方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103309775B (zh) * | 2013-07-03 | 2015-08-12 | 苏州科达科技股份有限公司 | 一种高可靠磁盘阵列的容错方法 |
CN103309775A (zh) * | 2013-07-03 | 2013-09-18 | 苏州科达科技股份有限公司 | 一种高可靠磁盘阵列的容错方法 |
CN103390429A (zh) * | 2013-07-29 | 2013-11-13 | 华为技术有限公司 | 一种硬盘的在线检测方法及服务器 |
CN103390429B (zh) * | 2013-07-29 | 2016-07-27 | 华为技术有限公司 | 一种硬盘的在线检测方法及服务器 |
CN103699457A (zh) * | 2013-09-26 | 2014-04-02 | 深圳市泽云科技有限公司 | 基于条带化的磁盘阵列修复方法及装置 |
CN103729276A (zh) * | 2014-01-28 | 2014-04-16 | 深圳市迪菲特科技股份有限公司 | 一种扫描磁盘阵列的方法 |
CN104317730A (zh) * | 2014-10-27 | 2015-01-28 | 浪潮(北京)电子信息产业有限公司 | 一种基于二次分配管理磁盘扩展空间方法及系统 |
CN104317730B (zh) * | 2014-10-27 | 2018-02-06 | 浪潮(北京)电子信息产业有限公司 | 一种基于二次分配管理磁盘扩展空间方法及系统 |
CN108804026A (zh) * | 2018-03-27 | 2018-11-13 | 深圳忆联信息系统有限公司 | 一种固态硬盘全盘扫描方法及固态硬盘 |
CN110795273A (zh) * | 2019-10-18 | 2020-02-14 | 苏州浪潮智能科技有限公司 | 一种raid的写洞保护方法、系统及存储介质 |
US11650880B2 (en) | 2019-10-18 | 2023-05-16 | Inspur Suzhou Intelligent Technology Co., Ltd. | Write hole protection method and system for raid, and storage medium |
CN111813609A (zh) * | 2020-07-23 | 2020-10-23 | 深圳大普微电子科技有限公司 | 一种存储介质中数据恢复方法、数据恢复系统及相关设备 |
CN111813609B (zh) * | 2020-07-23 | 2021-10-15 | 深圳大普微电子科技有限公司 | 一种存储介质中数据恢复方法、数据恢复系统及相关设备 |
CN118069066A (zh) * | 2024-04-12 | 2024-05-24 | 四川华鲲振宇智能科技有限责任公司 | 一种提升存储系统性能的存储方法 |
CN118069066B (zh) * | 2024-04-12 | 2024-09-06 | 四川华鲲振宇智能科技有限责任公司 | 一种提升存储系统性能的存储方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102968361A (zh) | 一种raid数据自修复的方法 | |
US8307159B2 (en) | System and method for providing performance-enhanced rebuild of a solid-state drive (SSD) in a solid-state drive hard disk drive (SSD HDD) redundant array of inexpensive disks 1 (RAID 1) pair | |
CN104035830A (zh) | 一种数据恢复方法和装置 | |
CN102184129B (zh) | 磁盘阵列的容错方法和装置 | |
US20150371684A1 (en) | Ultra high capacity ssd | |
CN101840360A (zh) | Raid系统的快速重建方法及装置 | |
CN101923501B (zh) | 一种磁盘阵列多级容错方法 | |
CN102508620B (zh) | 一种处理raid5坏扇区的方法 | |
US20090327803A1 (en) | Storage control device and storage control method | |
CN101916173A (zh) | 一种基于raid的数据读写方法及其系统 | |
CN101681305A (zh) | 存储管理系统和方法 | |
CN102682012A (zh) | 一种文件系统内读写数据的方法及装置 | |
CN103718162A (zh) | 用于ssd中灵活的raid的方法和设备 | |
CN101609420A (zh) | 实现磁盘冗余阵列重建的方法和磁盘冗余阵列及其控制器 | |
CN102356382A (zh) | Dram缓冲器管理装置和方法 | |
CN103699457A (zh) | 基于条带化的磁盘阵列修复方法及装置 | |
CN103246478A (zh) | 一种基于软raid支持无分组式全局热备盘的磁盘阵列系统 | |
CN103092728A (zh) | 一种非易失性内存的磨损错误恢复方法和装置 | |
CN103530069A (zh) | 一种raid5磁盘阵列坏扇区处理方法 | |
KR20140086223A (ko) | 디스크 어레이의 패리티 재동기화 장치 및 방법 | |
CN103645997B (zh) | 一种数据保护的方法与系统 | |
CN104035886A (zh) | 磁盘重映射方法、装置及电子设备 | |
CN101169705B (zh) | 多硬盘下基于裸文件系统实现文件级镜像的方法及装置 | |
CN102945191B (zh) | 一种raid5数据转移的方法 | |
CN102609223B (zh) | 一种独立冗余磁盘阵列系统及其初始化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130313 |