CN102508620B - 一种处理raid5坏扇区的方法 - Google Patents
一种处理raid5坏扇区的方法 Download PDFInfo
- Publication number
- CN102508620B CN102508620B CN201110392504.9A CN201110392504A CN102508620B CN 102508620 B CN102508620 B CN 102508620B CN 201110392504 A CN201110392504 A CN 201110392504A CN 102508620 B CN102508620 B CN 102508620B
- Authority
- CN
- China
- Prior art keywords
- sector
- bad sector
- disk
- bad
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 15
- 238000013507 mapping Methods 0.000 claims description 31
- 230000006870 function Effects 0.000 claims description 5
- 238000012217 deletion Methods 0.000 claims description 2
- 230000037430 deletion Effects 0.000 claims description 2
- 238000011084 recovery Methods 0.000 claims description 2
- 238000005728 strengthening Methods 0.000 claims description 2
- 230000002708 enhancing effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明提供一种处理RAID5坏扇区的方法,是在写数据过程中,把出现坏扇区的条带转移到一个预留区域,避免因为磁盘存在的少量坏扇区而影响了磁盘阵列的使用,当某一块磁盘的坏扇区数量先达到一定警戒数目的时候,把这块盘的一些数据先备份到热备盘上去,以此加强磁盘阵列的可靠性。
Description
技术领域
本发明涉及计算机***及存储领域,具体涉及一种RAID5坏扇区处理的方法。
背景技术
对于具有冗余校验信息的RAID5***,容错功能已成为磁盘阵列最受青睐的特性,为了加强容错的功能以及使***在磁盘故障的情况下能迅速的重建数据,以维持***的性能,一般的磁盘阵列***都可使用热备份的功能,所谓热备份是在建立磁盘阵列***的时候,将其中一磁盘指定为后备磁盘,此一磁盘在平常并不操作,但若阵列中某一磁盘发生故障时,磁盘阵列即以后备磁盘取代故障磁盘,并自动将故障磁盘的 数据重建在后备磁盘之上。RAID5***是只允许有一块盘失效,当有第二块盘失效的时候,整个磁盘阵列就失效了。
但是,有的磁盘失效是有少量磁盘坏扇区引起的,因为少量坏扇区而放弃的话,这个损失有些大。因为几乎所有的硬盘都有一些坏扇区,坏扇区是计算机硬盘中无法写入数据的地方。对于单盘的坏扇区处理是有Bad Sector Remapping机制,所谓Bad Sector Remapping,就是将坏扇区中的数据写到另一个位置,将来所有对原先坏扇区的访问今后都会重新定向到新的位置。但是磁盘用做BSR的空间并不多。另外,如果一个条带有一块坏扇区,是可以做BSR的,但是如果一个条带中有两块盘存在坏扇区的话,是不能做BSR的,磁盘阵列可能就会因为存在的几个坏扇区而失效。如果其它的扇区是正常的话,这个损失是不正常的。这些少量的坏扇区完全可以跳过不用。
本发明是在条带上有一个或者多个坏扇区的话,就把这个条带的数据重新写到一个预留区域。同时也放弃只有单个盘有坏扇区时的BSR机制,一个或者多个坏扇区都按照重新的映射去处理。对于大容量的磁盘,预留这些区域不会带来太大空间的损失,反而能增加可靠性。为了加快出现失效盘的修复,当某一块磁盘的坏扇区数量先达到一定警戒数目的时候,把这块盘的一些数据先备份到热备盘上去,大大加强了磁盘阵列的可靠性。
发明内容
本发明的目的是提供一种处理RAID5坏扇区的方法。
本发明的目的是按以下方式实现的,是在写数据过程中,把出现坏扇区的条带转移到一个预留区域,避免因为磁盘存在的少量坏扇区而影响了磁盘阵列的使用,当某一块磁盘的坏扇区数量先达到一定警戒数目的时候,把这块盘的一些数据先备份到热备盘上去,以此加强磁盘阵列的可靠性,步骤如下:
1)首先要建立一个扇区映射表格,表格的每一项包含原来扇区号和新映射的扇区号,这个表格可以放到磁盘预留空间,使用的时候放到内存中即可,另外,还需有个计数器remap记录有多少个条带完成了映射;
2)当有扇区写错误的时候,计数器remap记录是哪个磁盘出现的坏扇区,并增加该盘的坏扇区统计计数,不管该条带之前是否有已经写过的数据,都要让这个条带重新写,做好标记,写到预留空间,在扇区映射表格里填上原来扇区号和新映射的扇区号,预留空间是按照时间先后顺序排序写入的,每写一次预留空间就把计数器remap记录位置加1,当计数器remap记录到达一定数目的时候就报警,提示用户做相应的处理;
3)当有多个这样的连续的条带出现坏扇区的时候,就说明这一片大的区域都是受到损坏,那么其后的一片区域就放弃不用,再有写的时候,就跳过这个区域,但是,如果紧挨着这个区域的条带还是有坏扇区的话,就再扩大这个区域,扩大的范围要比第一次的大,跳过这个重新扩大的区域,如果紧挨着这个区域的条带没有坏扇区的话,就正常写入数据,如果紧挨着这个区域的条带还有坏扇区的话,就不再扩大,这个时候产生报警,不再进行写入,然后,查看是哪个盘的坏扇区数目过多,替换坏扇区数目过多的磁盘;
4)如果新映射的位置也有坏扇区的话,就再重新找个位置映射,如果还有坏扇区的话,就提示更换磁盘;
5)当某一块盘的坏扇区数目过多的时候,就宣告这块盘失效,把这块盘踢出阵列,在添加热备盘进行修复时,对于完成映射的原扇区和新扇区要做特殊处理,其它的正常扇区直接计算写入即可,对于只是因为被踢出的这一块磁盘出现坏扇区引起映射的条带,恢复原来的扇区,对于新扇区不恢复,并删除在映射表格的记录,而对于是因为有其它磁盘存在坏扇区引起的映射的条带,不恢复原来的扇区,只恢复新映射之后的扇区就即可;
6)为了加快修复,在某一块磁盘的坏扇区数量先达到一定警戒数目,但还没到宣告失效的数目,把这块盘的一些数据先备份到热备盘上去,因为这块盘的坏扇区数目最多,最后宣告失效的概率最大,如果是这块盘最后失效,添加对应的热备盘,写过的数据就不用恢复了,减少了修复的时间,如果是另一块盘最后达到宣告失效的数值,当热备盘足够时,就找另一个热备盘进行修复,保留原来写入数据的热备盘,虽然那块盘没有宣告失效,但已经过了警戒线,依然有失效的可能,所以,保留与之对应的热备盘,为之后的可靠性做了保障,当然,用户也会在那块盘的坏扇区数目过了警戒线但还没到宣告失效的时候,提前换出;
7)当对一个条带读或者再次写操作的时候,如果报错,查找在表格中是否有这个条带存在,如果有的话,直接读取或者再次写入,如果没有的话,说明该错误是上次写入之后才发生的损坏,这个情况下就看是几块盘存在坏扇区了,如果只是一块盘存在坏扇区,那么这个坏扇区的数据是要通过计算得到的,添加热备盘进行替换恢复即可,如果是多个磁盘存在坏扇区,这部分的数据就会丢失,这个时候停止写数据,记录条带以及扇区的位置,对其它位置的数据保存,让少量位置数据的损坏和丢失,不影响其它位置的数据的正确性。
本发明的有益效果是:这个方法对坏扇区做了多方面的处理,在一个条带中有多块盘存在坏扇区的时候有很好的作用,可以避免因为少量的扇区而让整个磁盘阵列失效。当坏扇区过多的时候,才宣告失效,并能在失效之前做一些准备工作,大大增加了整个磁盘阵列的可靠性。
附图说明
附图1 磁盘数据布局示意图;
附图2 存在坏扇区的写流程图;
附图3存在坏扇区的读流程图。
具体实施方式
参照说明书附图对本发明的方法作以下详细地说明。
处理步骤如下:首先要建立一个扇区映射表格,表格的每一项包含原来扇区号和新映射的扇区号,这个表格可以放到磁盘预留空间,使用的时候放到内存就可以了。另外,还有个计数器remap记录有多少个条带完成了映射。
当有扇区写错误的时候,记录是哪个磁盘出现的坏扇区,并增加该盘的坏扇区统计计数。不管该条带之前是否有已经写过的数据,都要让这个条带重新写,做好标记,写到预留空间,在扇区映射表格里填上原来扇区号和新映射的扇区号。预留空间是按照时间先后顺序排序写入的。每写一次预留空间就把remap位置加1,当remap到达一定数目的时候就报警,提示用户做相应的处理。
当有多个这样的连续的条带出现坏扇区的时候,就说明这一片大的区域都是受到损坏,那么其后的一片区域就放弃不用,再有写的时候,就跳过这个区域,但如果紧挨着这个区域的条带还是有坏扇区的话,就再扩大这个区域,扩大的范围要比第一次的大,跳过这个重新扩大的区域,如果紧挨着这个区域的条带没有坏扇区的话,就正常写入数据。如果紧挨着这个区域的条带还有坏扇区的话,就不再扩大,这个时候产生报警,不再进行写入。然后,查看是哪个盘的坏扇区数目过多,替换坏扇区数目过多的磁盘。
如果新映射的位置也有坏扇区的话,就再重新找个位置映射,如果还有坏扇区的话,就提示更换磁盘。
当某一块盘的坏扇区数目过多的时候,就宣告这块盘失效,把这块盘踢出阵列,在添加热备盘进行修复时,对于完成映射的原扇区和新扇区要做特殊处理,其它的正常扇区直接计算写入就可以。对于只是因为被踢出的这一块磁盘出现坏扇区引起映射的条带,恢复原来的扇区,对于新扇区不恢复,并删除在映射表格的记录。而对于是因为有其它磁盘存在坏扇区引起的映射的条带,不恢复原来的扇区,只恢复新映射之后的扇区就可以了。
为了加快修复,在某一块磁盘的坏扇区数量先达到一定警戒数目的时候(还没到宣告失效的数目),把这块盘的一些数据先备份到热备盘上去。因为这块盘的坏扇区数目最多,最后宣告失效的概率最大,如果是这块盘最后失效,添加对应的热备盘,写过的数据就不用恢复了,减少了修复的时间。如果是另一块盘最后达到宣告失效的数值,当热备盘足够时,就找另一个热备盘进行修复,保留原来写入数据的热备盘。虽然那块盘没有宣告失效,但已经过了警戒线,依然有失效的可能,所以,保留与之对应的热备盘,为之后的可靠性做了保障。当然,用户也可以在那块盘的坏扇区数目过了警戒线但还没到宣告失效的时候,提前换出。
当对一个条带读或者再次写操作的时候,如果报错,查找在表格中是否有这个条带存在,如果有的话,直接读取,或者再次写入。如果没有的话,说明该错误是上次写入之后才发生的损坏,这个情况下就看是几块盘存在坏扇区了,如果只是一块盘存在坏扇区,那么这个坏扇区的数据是可以通过计算得到的,添加热备盘进行替换恢复就可以了。如果是多个磁盘存在坏扇区,这部分的数据就会丢失,这个时候停止写数据,记录条带以及扇区的位置,对其它位置的数据保存,让少量位置数据的损坏和丢失,不影响其它位置的数据的正确性。
这个方法对坏扇区做了多方面的处理,在一个条带中有多块盘存在坏扇区的时候有很好的作用,可以避免因为少量的扇区而让整个磁盘阵列失效。当坏扇区过多的时候,才宣告失效,并能在失效之前做一些准备工作,大大增加了整个磁盘阵列的可靠性。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (1)
1.一种处理RAID5坏扇区的方法, 其特征在于是在写数据过程中,把出现坏扇区的条带转移到一个预留区域,避免因为磁盘存在的少量坏扇区而影响了磁盘阵列的使用,当某一块磁盘的坏扇区数量先达到一定警戒数目的时候,把这块盘的一些数据先备份到热备盘上去,以此加强磁盘阵列的可靠性,步骤如下
1)首先要建立一个扇区映射表格,表格的每一项包含原来扇区号和新映射的扇区号,这个表格可以放到磁盘预留空间,使用的时候放到内存中即可,另外,还需有个计数器remap记录有多少个条带完成了映射;
2)当有扇区写错误的时候,计数器remap记录是哪个磁盘出现的坏扇区,并增加该盘的坏扇区统计计数,不管该条带之前是否有已经写过的数据,都要让这个条带重新写,做好标记,写到预留空间,在扇区映射表格里填上原来扇区号和新映射的扇区号,预留空间是按照时间先后顺序排序写入的,每写一次预留空间就把计数器remap记录位置加1,当计数器remap记录到达一定数目的时候就报警,提示用户做相应的处理;
3)当有多个这样的连续的条带出现坏扇区的时候,就说明这一片大的区域都是受到损坏,那么其后的一片区域就放弃不用,再有写的时候,就跳过这个区域,但是,如果紧挨着这个区域的条带还是有坏扇区的话,坏扇区范围就会扩大,而且会跳过这个坏扇区重新扩大坏扇区域,如果紧挨着这个坏扇区域的条带没有坏扇区的话,就正常写入数据,如果紧挨着这个坏扇区域的条带还有坏扇区的话,就不再扩大,这个时候产生报警,不再进行写入,然后,查看是哪个盘的坏扇区数目过多,替换坏扇区数目过多的磁盘;
4)如果新映射的位置也有坏扇区的话,就再重新找个位置映射,如果还有坏扇区的话,就提示更换磁盘;
5)当某一块盘的坏扇区数目过多的时候,就宣告这块盘失效,把这块盘踢出阵列,在添加热备盘进行修复时,对于完成映射的原扇区和新扇区要做特殊处理,其它的正常扇区直接计算写入即可,对于只是因为被踢出的这一块磁盘出现坏扇区引起映射的条带,恢复原来的扇区,对于新扇区不恢复,并删除在映射表格的记录,而对于是因为有其它磁盘存在坏扇区引起的映射的条带,不恢复原来的扇区,只恢复新映射之后的扇区就即可;
6)为了加快修复,在某一块磁盘的坏扇区数量先达到一定警戒数目,但还没到宣告失效的数目,把这块盘的一些数据先备份到热备盘上去,因为这块盘的坏扇区数目最多,最后宣告失效的概率最大,如果是这块盘最后失效,添加对应的热备盘,写过的数据就不用恢复了,减少了修复的时间,如果是另一块盘最后达到宣告失效的数值,当热备盘足够时,就找另一个热备盘进行修复,保留原来写入数据的热备盘,虽然那块盘没有宣告失效,但已经过了警戒线,依然有失效的可能,所以,保留与之对应的热备盘,为之后的可靠性做了保障,当然,用户也会在那块盘的坏扇区数目过了警戒线但还没到宣告失效的时候,提前换出;
7)当对一个条带读或者再次写操作的时候,如果报错,查找在表格中是否有这个条带存在,如果有的话,直接读取或者再次写入,如果没有的话,说明该错误是上次写入之后才发生的损坏,这个情况下就看是几块盘存在坏扇区了,如果只是一块盘存在坏扇区,那么这个坏扇区的数据是要通过计算得到的,添加热备盘进行替换恢复即可,如果是多个磁盘存在坏扇区,这部分的数据就会丢失,这个时候停止写数据,记录条带以及扇区的位置,对其它位置的数据保存,让少量位置数据的损坏和丢失,不影响其它位置的数据的正确性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110392504.9A CN102508620B (zh) | 2011-12-01 | 2011-12-01 | 一种处理raid5坏扇区的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110392504.9A CN102508620B (zh) | 2011-12-01 | 2011-12-01 | 一种处理raid5坏扇区的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102508620A CN102508620A (zh) | 2012-06-20 |
CN102508620B true CN102508620B (zh) | 2014-08-13 |
Family
ID=46220715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110392504.9A Active CN102508620B (zh) | 2011-12-01 | 2011-12-01 | 一种处理raid5坏扇区的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102508620B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102945191B (zh) * | 2012-11-15 | 2016-02-24 | 浪潮电子信息产业股份有限公司 | 一种raid5数据转移的方法 |
CN102981930A (zh) * | 2012-11-15 | 2013-03-20 | 浪潮电子信息产业股份有限公司 | 一种磁盘阵列多级数据自动修复的方法 |
CN102968361A (zh) * | 2012-11-19 | 2013-03-13 | 浪潮电子信息产业股份有限公司 | 一种raid数据自修复的方法 |
CN103488434A (zh) * | 2013-09-23 | 2014-01-01 | 浪潮电子信息产业股份有限公司 | 一种加强磁盘阵列可靠性的方法 |
CN103530069A (zh) * | 2013-11-05 | 2014-01-22 | 浪潮(北京)电子信息产业有限公司 | 一种raid5磁盘阵列坏扇区处理方法 |
CN103713969A (zh) * | 2013-12-30 | 2014-04-09 | 华为技术有限公司 | 提高固态硬盘可靠性方法和装置 |
CN105279057A (zh) * | 2015-11-10 | 2016-01-27 | 浪潮(北京)电子信息产业有限公司 | 一种磁盘坏道检测方法与*** |
CN106933490A (zh) | 2015-12-29 | 2017-07-07 | 伊姆西公司 | 控制对磁盘阵列进行读写操作的方法和装置 |
CN106095330B (zh) * | 2016-05-30 | 2019-04-16 | 杭州宏杉科技股份有限公司 | 一种元数据的存储方法和装置 |
CN106648470A (zh) * | 2016-12-29 | 2017-05-10 | 北京奇虎科技有限公司 | 一种监控数据服务***中磁盘阵列的方法和装置 |
CN107329903B (zh) * | 2017-06-28 | 2021-03-02 | 苏州浪潮智能科技有限公司 | 一种内存垃圾回收方法及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101527142A (zh) * | 2009-04-17 | 2009-09-09 | 杭州华三通信技术有限公司 | 一种磁盘冗余阵列中数据的读写方法和设备 |
CN101567211A (zh) * | 2009-05-27 | 2009-10-28 | 杭州华三通信技术有限公司 | 一种提高磁盘可用性的方法和磁盘阵列控制器 |
CN101576833A (zh) * | 2009-06-26 | 2009-11-11 | 杭州华三通信技术有限公司 | 一种独立磁盘冗余阵列raid数据重建方法和装置 |
CN102207893A (zh) * | 2010-03-29 | 2011-10-05 | 北京邦诺存储科技有限公司 | 廉价磁盘冗余阵列的管理设备和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5974544A (en) * | 1991-12-17 | 1999-10-26 | Dell Usa, L.P. | Method and controller for defect tracking in a redundant array |
-
2011
- 2011-12-01 CN CN201110392504.9A patent/CN102508620B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101527142A (zh) * | 2009-04-17 | 2009-09-09 | 杭州华三通信技术有限公司 | 一种磁盘冗余阵列中数据的读写方法和设备 |
CN101567211A (zh) * | 2009-05-27 | 2009-10-28 | 杭州华三通信技术有限公司 | 一种提高磁盘可用性的方法和磁盘阵列控制器 |
CN101576833A (zh) * | 2009-06-26 | 2009-11-11 | 杭州华三通信技术有限公司 | 一种独立磁盘冗余阵列raid数据重建方法和装置 |
CN102207893A (zh) * | 2010-03-29 | 2011-10-05 | 北京邦诺存储科技有限公司 | 廉价磁盘冗余阵列的管理设备和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102508620A (zh) | 2012-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102508620B (zh) | 一种处理raid5坏扇区的方法 | |
CN103309775B (zh) | 一种高可靠磁盘阵列的容错方法 | |
US9009526B2 (en) | Rebuilding drive data | |
CN101276302B (zh) | 一种磁盘阵列***中磁盘故障处理和数据重构方法 | |
CN104035830B (zh) | 一种数据恢复方法和装置 | |
CN102023815B (zh) | 在固态存储器中实现raid | |
US7640452B2 (en) | Method for reconstructing data in case of two disk drives of RAID failure and system therefor | |
CN101840360A (zh) | Raid***的快速重建方法及装置 | |
CN101916173B (zh) | 一种基于raid的数据读写方法及其*** | |
CN101609420A (zh) | 实现磁盘冗余阵列重建的方法和磁盘冗余阵列及其控制器 | |
CN102799533B (zh) | 一种磁盘损坏扇区屏蔽方法及装置 | |
CN105468479B (zh) | 一种磁盘阵列raid坏块处理方法及装置 | |
CN104484251A (zh) | 一种硬盘故障的处理方法及装置 | |
CN103718162A (zh) | 用于ssd中灵活的raid的方法和设备 | |
CN103699457A (zh) | 基于条带化的磁盘阵列修复方法及装置 | |
CN102184129A (zh) | 磁盘阵列的容错方法和装置 | |
CN102968361A (zh) | 一种raid数据自修复的方法 | |
CN104166601B (zh) | 一种存储数据的备份方法和装置 | |
CN102999399B (zh) | 一种jbod阵列自动恢复存储的方法和装置 | |
CN101526885A (zh) | 一种提升独立磁盘冗余阵列性能的方法及其控制器 | |
US9772782B2 (en) | Non-volatile complement data cache | |
CN104407821A (zh) | 一种实现raid重构的方法及装置 | |
CN103544995B (zh) | 一种坏道修复方法及装置 | |
CN103678025A (zh) | 一种磁盘阵列中的磁盘故障处理方法 | |
CN105183590A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |