CN101901115B - 一种磁盘阵列raid6级别的构建方法 - Google Patents
一种磁盘阵列raid6级别的构建方法 Download PDFInfo
- Publication number
- CN101901115B CN101901115B CN2010102345111A CN201010234511A CN101901115B CN 101901115 B CN101901115 B CN 101901115B CN 2010102345111 A CN2010102345111 A CN 2010102345111A CN 201010234511 A CN201010234511 A CN 201010234511A CN 101901115 B CN101901115 B CN 101901115B
- Authority
- CN
- China
- Prior art keywords
- disk
- data
- mark
- block
- check block
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000011084 recovery Methods 0.000 claims abstract description 12
- 238000010276 construction Methods 0.000 claims abstract description 7
- 238000012384 transportation and delivery Methods 0.000 claims description 4
- 238000012795 verification Methods 0.000 claims description 3
- 238000013500 data storage Methods 0.000 abstract description 4
- 230000000875 corresponding effect Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 208000034423 Delivery Diseases 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
一种磁盘阵列RAID6级别的构建方法,属于计算机数据存储方法,解决数据存储和容错恢复的问题,并且支持双盘容错,提升了数据的安全性,同时支持任意磁盘数构建RAID6阵列,这大大提升了阵列构建的方便性。本发明包括初始化过程、校验块对应过程,数据存放过程和数据恢复过程。本发明基于设计一种全新的RAID6构建方法,并且采用异或方式产生校验数据,具有相当好的双盘数据容错性能;同时根据磁盘个数的不同来采用不同的校验数据存放方式,很好的实现了支持任意磁盘数构建RAID6。
Description
技术领域
本发明属于计算机数据存储方法,具体涉及一种磁盘阵列RAID6级别的构建方法。
背景技术
随着计算机技术和网络通信技术的发展,信息化程度越来越高,人们对数据可靠性的要求也越来越高。磁盘阵列RAID(Redundant Array ofIndependent Disks)是可靠存储系统领域中的一个典型装置,磁盘阵列的工作原理与特征:RAID的基本结构特征就是组合(Striping),捆绑2个或多个物理磁盘成组,形成一个单独的逻辑盘。
RAID结构已经被划分为几个标准。RAID0级:无冗余无校验的磁盘阵列。数据同时分布在各个磁盘驱动器上,没有容错能力,读写速度在RAID中最快,但因为任何一个磁盘驱动器损坏都会使整个RAID系统失效,所以安全系数反倒比单个的磁盘驱动器还要低。RAID1级:镜象磁盘阵列。每一个磁盘驱动器都有一个镜像磁盘驱动器,镜像磁盘驱动器随时保持与原磁盘驱动器的内容一致。RAID1具有最高的安全性,但只有一半磁盘空间被用来存储数据。RAID5级:无独立校验盘的奇偶校验磁盘阵列。同样采用奇偶校验来检查错误,但没有独立的校验盘,校验信息分布在各个磁盘驱动器上。RAID6级和RAID5级很相似,但是RAID6级可以恢复任意双盘出错。
RAID6级结构在存储系统中扮演着越来越重要的角色。通常有两种RAID6级的编码结构,一种是水平编码,一种是垂直编码。水平编码很容易被扩展成任意长度,但是垂直编码长度经常受到限制。这里,我们采用一种新颖的有效的编码算法用于RAID6级垂直编码,使得RAID6级垂直编码可以扩展到任意长度。
发明内容
本发明提出一种磁盘阵列RAID6级别的构建方法,解决现有的磁盘阵列RAID6级别垂直编码不易被扩展成任意长度的问题。
为实现本发明的目的所采用的技术方案如下:
一种磁盘阵列RAID6级别的构建方法,包括初始化、校验块对应、数据存放和数据恢复四个步骤,具体如下:
(1)初始化步骤
(1.1)根据创建磁盘阵列的磁盘数Col对磁盘进行数据块和校验块的划分:
首先,将每个磁盘的第一个块作为校验块,组成一个校验条带;
其次,若磁盘数Col与1的和P为质数,即若P=Col+1为质数,则将每个磁盘的其余块都为存放数据的数据块,划分完后,一共有(P-1)/2个条带;
若P为非质数,先确定出比P大的最小质数Q,再对第一个磁盘划分校验块,即对第一个磁盘从第二个块起依次向下作为校验块,直到校验块的总数为Q-1或已经把第一个磁盘的第(Q-1)/2个块作为校验块为止,若此时校验块总数为Q-1,则校验块划分结束,其余磁盘块都作为数据块;若此时校验块总数没有达到Q-1,则继续对后续的磁盘划分校验块,直至校验块总数为Q-1;
(1.2)分别往划分好的校验块和数据块中填充数据“0”,完成磁盘阵列的初始化。
(2)校验块和数据块对应步骤
(2.1)对校验块进行标记
若P为质数,从第一个磁盘开始将P-1个校验块分别以从1开始的连续P-1个自然数作为标记号进行顺序标记;否则,先把P-1个磁盘逻辑上扩充为Q-1个盘,再从第一个磁盘开始将Q-1个校验块分别标记为从1到Q-1的连续自然数;
(2.2)对数据块进行标记
每个磁盘的数据块标记号为从校验块的标记号中任选两个不重复的数所组成的一个自然数对,并且该自然数对之和与校验块标记号最大值加1所得数值进行取模后等于该被标记的数据块所在磁盘的第一块校验块的标记值。
(3)数据存放步骤
(3.1)若是小块写入,则先读取要被覆盖掉的数据块的数据内容,然后与待写入内容进行异或后作为校验块的值,最后分别将所述待写入内容和所述校验块的值写入数据块和校验块;
(3.2)若是大块写入,则先读取不会被覆盖掉的数据块的数据内容,然后与待写入内容进行异或后作为校验块的值,最后分别将所述待写入内容和所述校验块的值写入数据块和校验块。
(4)数据恢复步骤
当有两块磁盘损坏时,对于磁盘阵列中的每个磁盘,首先确定出一数值m,其中,若此磁盘中第一块校验块的标记号K为偶数,则m=K/2;若磁盘标记号为奇数,则当P为质数时,m=(K+P)/2,P为非质数时,m=(K+Q)/2;
对于其中一块损坏的磁盘i,根据其对应的数值mi,首先恢复另一块磁盘j中标记号含有数值mi的块jA,然后根据上述已恢复的jA的标记号中数值,恢复磁盘i中标记号含有该数值的块jB,并每次都根据前一次恢复的块的标记号的数值,依次交替进行两块磁盘各块的恢复,直至两损坏磁盘中待恢复的块的标记号中不含前一次恢复的块中的标记号数值;
若此时所述两块损坏的磁盘所有块均已恢复,则恢复完成;否则,再根据另一块磁盘j对应的数值mj,按上述过程再依次交替恢复,从而完成所述两块损坏的磁盘所有块的数据恢复。
本发明基于一个普遍存在的现象,即RAID6级别的磁盘阵列水平编码很容易被扩展成任意长度,但是垂直编码长度经常受到限制。本发明通过采用了一种新的垂直编码方法,包括初始化、校验块对应、数据存放、数据恢复等过程,解决了RAID6级别磁盘阵列垂直编码不可扩展问题,大大提升了RAID6级别磁盘阵列的可适用性。
附图说明
图1为本发明流程示意图;
图2为本发明的初始化步骤过程示意图;
图3为本发明的校验块对应步骤过程示意图;
图4为本发明的数据存放步骤过程示意图;
图5为本发明的数据恢复步骤过程示意图;
图6为本发明的磁盘数加1为质数的数据分布示意图;
图7为本发明的磁盘数加1为非质数的数据分布示意图;
图8为本发明的磁盘损坏后的数据恢复示意图。
具体实施方式
下面结合附图对本发明进一步详细说明。
本发明的一种磁盘阵列RAID6级别的构建方法,包括初始化、校验块对应、数据存放和数据恢复,具体过程如下,如图1所示:
(1)初始化步骤,顺序进行下述过程,如图2所示:
(1.1)根据创建磁盘阵列的磁盘数Col对磁盘进行数据块和校验块的划分:
首先,每个磁盘的第一个块作为校验块,组成一个校验条带,
其次,若P=Col+1为质数,则每个磁盘的其余块都为存放数据的数据块,这些数据块组成多个数据条带,数据条带的个数为((P-1)÷2-1);
若P=Col+1为非质数,先确定出比P大的最小质数Q,再对第一个磁盘划分校验块,即从第一个磁盘的第二个块起依次向下作为校验块,直到校验块的总数为(Q-1)或已经把第一个磁盘的第((Q-1)÷2)个块作为校验块为止。
若此时校验块总数为(Q-1),则校验块划分结束,其余磁盘块都作为数据块;若此时校验块总数没有达到(Q-1),则继续对后续的磁盘划分校验块,直至校验块总数为(Q-1)。划分完成后,一共有((Q-1)÷2)个条带,除了校验块外其他全是数据块。
(1.2)分别往校验块和数据块填充数据“0”,完成磁盘阵列的初始化。
(2)校验块和数据块对应步骤,如图3所示:
(2.1)通过标记号对校验块进行标记
若P为质数,从第一个磁盘开始将P-1个校验块分别以从1开始的连续P-1个自然数作为标记号分别进行标记;否则,先把P-1个磁盘逻辑上扩充为Q-1个盘,再从第一个磁盘开始将Q-1个校验块分别标记为从1到Q-1的连续自然数;
(2.2)标记数据块
每个磁盘的数据块标记号为从校验块的标记号中任选两个不重复的数所组成的一个自然数对,并且该自然数对之和与校验块标记号最大值加1所得数值进行取模后等于该被标记的数据块所在列即所在磁盘的第一块校验块的标记值。
一个校验块与多个含有此校验块标记号值的数据块相对应,至此校验块与数据块对应结束。
实际上(Q-P)个效验块并没有存放空间,从第一个磁盘开始,依次在数据块标记中由上往下找含有那些没有存放空间的效验块标记号的数据块,找到一块后,此数据块就被当成了相应的效验块和对应的数据块的双重身份;
(3)数据存放步骤,如图4所示:
(3.1)若是小块写入,则先读取要被覆盖掉的数据块的数据内容,然后与待写入内容进行异或后作为校验块的值,最后分别将所述待写入内容和所述校验块的值写入数据块和校验块;
(3.2)若是大块写入,则先读取不会被覆盖掉的数据块的数据内容,然后与待写入内容进行异或后作为校验块的值,最后分别将所述待写入内容和所述校验块的值写入数据块和校验块。
(4)数据恢复如图5:
当有两块磁盘损坏时,对于磁盘阵列中的每个磁盘,首先确定出一数值m,其中,若此磁盘中第一块校验块的标记号K为偶数,则m=K/2;若磁盘标记号为奇数,则当P为质数时,m=(k+P)/2,P为非质数时,m=(k+Q)/2;
对于其中一块损坏的磁盘i,根据其对应的数值mi,首先恢复另一块磁盘j中标记号含有数值mi的块jA,然后根据上述已恢复的jA的标记号中数值,恢复磁盘i中标记号含有该数值的块jB,并每次都根据前一次恢复的块的标记号的数值,依次交替进行两块磁盘各块的恢复,直至两损坏磁盘中待恢复的块的标记号中不含前一次恢复的块中的标记号数值;
若此时所述两块损坏的磁盘所有块均已恢复,则恢复完成;否则,再根据另一块磁盘j对应的数值mj,按上述过程再依次交替恢复,从而完成所述两块损坏的磁盘所有块的数据恢复。
图6为本发明的磁盘数加1为质数的数据分布示意图,这里对磁盘数为6的情况进行讨论:首先每个磁盘的第一块为效验块,编号依次为1,2,3,4,5,6,数据块一共有2个条带,并且每一个数据块被标记为一个自然数对,且这两个自然数不相同,而且相加后与7取模后的值为该列的校验块的编号。
图7为本发明的磁盘数加1为非质数的数据分布示意图,这里对磁盘数为5的情况进行讨论:首先把5块盘逻辑上扩充为6块盘,然后按照图6的6块盘的状态为校验块和数据块进行编号,最后把实际上不存在的第6块盘的校验块存放到第一个磁盘的第二块(即(2,6))中,此时(2,6)既是校验块又是数据块。
图8为本发明的磁盘损坏后的数据恢复示意图:这里我们讨论两块磁盘损坏的情况,损坏盘分别是磁盘3和磁盘4。首先确定磁盘3不包含的数据编号为5,磁盘4不包含的数据编号为2;然后通过含有编号5的数据块和校验块值的异或确定磁盘4的(5,6)的值,接着确定磁盘3的(4,6)的值和磁盘4的校验块(4)的值,然后再通过含有编号2的数据块和校验块值的异或确定磁盘3的(1,2)的值,接着确定磁盘4的(1,3)的值和磁盘3的校验块(3)的值。至此恢复了坏盘的全部数据。
Claims (1)
1.一种磁盘阵列RAID6级别的构建方法,包括初始化、校验块对应、数据存放和数据恢复四个步骤,具体如下:
(1)初始化步骤
(1.1)根据创建磁盘阵列的磁盘数Col对磁盘进行数据块和校验块的划分:
首先,将每个磁盘的第一个块作为校验块,组成一个校验条带;
其次,若磁盘数Col与1的和P为质数,即若P=Col+1为质数,则将每个磁盘的其余块都为存放数据的数据块,划分完后,一共有(P-1)/2个条带;
若P为非质数,先确定出比P大的最小质数Q,再对第一个磁盘划分校验块,即对第一个磁盘从第二个块起依次向下作为校验块,直到校验块的总数为Q-1或已经把第一个磁盘的第(Q-1)/2个块作为校验块为止,若此时校验块总数为Q-1,则校验块划分结束,其余磁盘块都作为数据块;若此时校验块总数没有达到Q-1,则继续对后续的磁盘划分校验块,直至校验块总数为Q-1;
(1.2)分别往划分好的校验块和数据块中填充数据“0”,完成磁盘阵列的初始化;
(2)校验块和数据块对应步骤
(2.1)对校验块进行标记
若P为质数,从第一个磁盘开始将P-1个校验块分别以从1开始的连续P-1个自然数作为标记号进行顺序标记;否则,先把P-1个磁盘逻辑上扩充为Q-1个盘,再从第一个磁盘开始将Q-1个校验块分别标记为从1到Q-1的连续自然数;
(2.2)对数据块进行标记
每个磁盘的数据块标记号为从校验块的标记号中任选两个不重复的数所组成的一个自然数对,并且该自然数对之和与校验块标记号最大值加1所得数值进行取模后等于该被标记的数据块所在磁盘的第一块校验块的标记值;
(3)数据存放步骤
(3.1)若是小块写入,则先读取要被覆盖掉的数据块的数据内容,然后与待写入内容进行异或后作为校验块的值,最后分别将所述待写入内容和所述校验块的值写入数据块和校验块;
(3.2)若是大块写入,则先读取不会被覆盖掉的数据块的数据内容,然后与待写入内容进行异或后作为校验块的值,最后分别将所述待写入内容和所述校验块的值写入数据块和校验块;
(4)数据恢复步骤
当有两块磁盘损坏时,对于磁盘阵列中的每个磁盘,首先确定出一数值m,其中,若此磁盘中第一块校验块的标记号K为偶数,则m=K/2;若磁盘标记号为奇数,则当P为质数时,m=(K+P)/2,P为非质数时,m=(K+Q)/2;
对于其中一块损坏的磁盘i,根据其对应的数值mi,首先恢复另一块磁盘j中标记号含有数值mi的块jA,然后根据上述已恢复的jA的标记号中数值,恢复磁盘i中标记号含有该数值的块jB,并每次都根据前一次恢复的块的标记号的数值,依次交替进行两块磁盘各块的恢复,直至两损坏磁盘中待恢复的块的标记号中不含前一次恢复的块中的标记号数值;
若此时所述两块损坏的磁盘所有块均已恢复,则恢复完成;否则,再根据另一块磁盘j对应的数值mj,按上述过程再依次交替恢复,从而完成所述两块损坏的磁盘所有块的数据恢复。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102345111A CN101901115B (zh) | 2010-07-23 | 2010-07-23 | 一种磁盘阵列raid6级别的构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102345111A CN101901115B (zh) | 2010-07-23 | 2010-07-23 | 一种磁盘阵列raid6级别的构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101901115A CN101901115A (zh) | 2010-12-01 |
CN101901115B true CN101901115B (zh) | 2011-12-14 |
Family
ID=43226683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102345111A Expired - Fee Related CN101901115B (zh) | 2010-07-23 | 2010-07-23 | 一种磁盘阵列raid6级别的构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101901115B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019880B (zh) * | 2012-12-14 | 2016-06-29 | 华为技术有限公司 | 一种数据校验方法及存储设备、存储系统 |
CN106919340B (zh) * | 2015-12-28 | 2020-03-17 | 南宁富桂精密工业有限公司 | 提高raid读取性能的系统及方法 |
CN105959356B (zh) * | 2016-04-26 | 2019-04-12 | 华中科技大学 | 一种实现多云存储容错转换机制的方法 |
CN111078472B (zh) * | 2019-12-23 | 2023-06-02 | 四川效率源信息安全技术股份有限公司 | 一种raid6缺失磁盘后的数据恢复方法 |
CN111158596A (zh) * | 2019-12-28 | 2020-05-15 | 天地伟业技术有限公司 | 一种raid快速初始化方法 |
CN114090345B (zh) * | 2022-01-21 | 2022-04-26 | 苏州浪潮智能科技有限公司 | 一种磁盘阵列数据恢复方法、系统、存储介质及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183565A (zh) * | 2007-12-12 | 2008-05-21 | 深圳市硅格半导体有限公司 | 存储介质中数据校验方法 |
US7464289B2 (en) * | 2004-12-10 | 2008-12-09 | Infortrend Technology, Inc. | Storage system and method for handling bad storage device data therefor |
CN101546249A (zh) * | 2008-03-26 | 2009-09-30 | 中兴通讯股份有限公司 | 磁盘阵列在线容量扩展方法 |
-
2010
- 2010-07-23 CN CN2010102345111A patent/CN101901115B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7464289B2 (en) * | 2004-12-10 | 2008-12-09 | Infortrend Technology, Inc. | Storage system and method for handling bad storage device data therefor |
CN101183565A (zh) * | 2007-12-12 | 2008-05-21 | 深圳市硅格半导体有限公司 | 存储介质中数据校验方法 |
CN101546249A (zh) * | 2008-03-26 | 2009-09-30 | 中兴通讯股份有限公司 | 磁盘阵列在线容量扩展方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101901115A (zh) | 2010-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9552258B2 (en) | Method and system for storing data in raid memory devices | |
US10210045B1 (en) | Reducing concurrency bottlenecks while rebuilding a failed drive in a data storage system | |
CN101901115B (zh) | 一种磁盘阵列raid6级别的构建方法 | |
CN102483686B (zh) | 数据存储系统和用于操作数据存储系统的方法 | |
CN102880428B (zh) | 分布式独立磁盘冗余阵列的创建方法及装置 | |
CN103718162B (zh) | 用于ssd中灵活的raid的方法和设备 | |
CN104503706B (zh) | 一种基于磁盘阵列的数据存储及读取方法 | |
Xiang et al. | A hybrid approach to failed disk recovery using RAID-6 codes: Algorithms and performance evaluation | |
US9292228B2 (en) | Selective raid protection for cache memory | |
US9063869B2 (en) | Method and system for storing and rebuilding data | |
CN103577111B (zh) | 基于非易失性存储器的动态独立冗余阵列存储系统及方法 | |
WO2016078193A1 (zh) | 一种基于固态存储介质的raid系统及方法 | |
CN102207895B (zh) | 一种独立磁盘冗余阵列数据重建方法和装置 | |
CN101023412A (zh) | 半静态奇偶性分布技术 | |
CN104035830A (zh) | 一种数据恢复方法和装置 | |
Park et al. | Reliability and performance enhancement technique for SSD array storage system using RAID mechanism | |
CN101546249A (zh) | 磁盘阵列在线容量扩展方法 | |
CN104111880A (zh) | 一种容三盘失效纠删码的单数据盘失效快速重建方法 | |
CN101504623A (zh) | 独立磁盘冗余阵列构建方法及装置 | |
CN103336727B (zh) | 对nand闪存存储设备进行数据操作的方法 | |
CN104267913A (zh) | 一种可动态异步调整raid级别的存储方法及存储系统 | |
US20150089328A1 (en) | Flex Erasure Coding of Controllers of Primary Hard Disk Drives Controller | |
CN108228382B (zh) | 一种针对evenodd码单盘故障的数据恢复方法 | |
CN103761195A (zh) | 一种利用分布式数据编码的存储方法 | |
CN104375784A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111214 |