CN103593253A - 一种基于异或的垂直raid-6编码方法 - Google Patents
一种基于异或的垂直raid-6编码方法 Download PDFInfo
- Publication number
- CN103593253A CN103593253A CN201310595326.9A CN201310595326A CN103593253A CN 103593253 A CN103593253 A CN 103593253A CN 201310595326 A CN201310595326 A CN 201310595326A CN 103593253 A CN103593253 A CN 103593253A
- Authority
- CN
- China
- Prior art keywords
- block
- reconstruct
- band
- raid
- sign
- 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
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种基于异或的垂直RAID-6编码方法,包括以下步骤:从API接口获取请求队列信息,判断该请求队列信息是否是构建请求,如果是构建请求,则根据该构建请求获取RAID-6系统中的一个未构建条带,以获取该未构建条带的条带信息,根据所获取的条带信息对该未构建条带中所有块进行编号,以得到所有块的标识,根据块标识,选择一个未构建的校验块Cm-1,j,以获取该校验块Cm-1,j标识,其中m表示RAID-6系统中一个条带的总行数,根据获取的校验块Cm-1,j标识,得到该校验块Cm-1,j的值。本发明在磁盘失效的情况下保障了失效磁盘的快速重构,同时具有构建灵活的RAID阵列大小,具有均匀负载的特性。
Description
技术领域
本发明属于计算机网络存储领域,更具体地,涉及一种基于异或的垂直RAID-6编码方法。
背景技术
为了提升计算机网络存储系统的性能和可靠性,现有数据中心普遍采用独立磁盘冗余阵列(Redundant Array of Independent Disk,简称RAID)技术。研究表明网络存储系统中磁盘失效发生的概率随着存储系统规模的扩大而增加。由于RAID-6编码方法能够容任意的两磁盘失效,因而该编码方法在企业数据中心得到广泛使用。基于RAID-6规范的阵列编码主要分为水平编码(如,Reed-Solomon、EVENODD、RDP和Liberation)和垂直编码(如,X-Code、Cyclic code、P-Code和Code-M)。
然而,现有的RAID-6阵列编码存在以下问题:在磁盘阵列失效的情况下,失效磁盘的重构性能不高;构建存储系统的阵列大小受素数的限定,即构建RAID阵列大小不灵活;在写密集的负载情况下,磁盘阵列负载不均衡。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于异或的垂直RAID-6编码方法,其目的在于在磁盘失效的情况下保障了失效磁盘的快速重构,同时具有构建灵活的RAID阵列大小,具有均匀负载的特性。。
为实现上述目的,按照本发明的一个方面,提供了一种基于异或的垂直RAID-6编码方法,包括以下步骤:
(1)从API接口获取请求队列信息;
(2)判断该请求队列信息是否是构建请求,如果是构建请求,则进入步骤(3),否则进入步骤(9);
(3)根据该构建请求获取RAID-6系统中的一个未构建条带,以获取该未构建条带的条带信息;
(4)根据所获取的条带信息对该未构建条带中所有块进行编号,以得到所有块的标识;
(5)根据块标识,选择一个未构建的校验块Cm-1,j,以获取该校验块Cm-1,j标识,其中m表示RAID-6系统中一个条带的总行数,n表示一个条带的总列数,且有0≤j≤n-1;
(6)根据获取的校验块Cm-1,j标识,利用以下公式进行计算,以得到该校验块Cm-1,j的值:
(7)判断该未构建条带上的所有校验块是否都已计算完毕,如果都已计算完毕,则进入步骤(8),否则设置j=j+1,并返回步骤(5);
(8)判断该RAID-6系统中所有条带是否都已构建完毕,如果都已构建完毕,则过程结束,否则返回步骤(3);
(9)判断该请求队列信息是否是重构请求,如果是重构请求,则进入步骤(10),否则返回步骤(1);
(10)根据该重构请求获取RAID-6系统中的一个未重构条带,以获取该未重构条带的条带信息;
(11)根据所获取的条带信息对该未重构条带中的所有块进行编号,以得到所有块的标识(i,j),其中0≤i≤m-1;
(12)根据RAID-6系统中失效条带中的失效块信息对该未重构条带中失效的数据块和校验块进行重构;
(13)判断该RAID-6系统中的所有条带是否都已重构完毕,如果重构完毕,则过程结束,否则返回步骤(10)。
优选地,步骤(12)包括:
(12-1)获取该未重构条带中第一个失效块的标识i=0;
(12-2)判断失效块的标识i是否等于m-1,如果等于m-1,则表示该失效块是校验块,然后进入步骤(12-3),否则表示该失效块是数据块,然后进入步骤(12-4);
(12-3)根据所获取的失效块标识,利用步骤(6)的公式进行计算,以重构该校验块Cm-1,j,然后进入步骤(12-5);
(12-4)根据所获取的失效块标识,利用以下公式进行计算,以重构数据块Ci,j:
(12-5)判断该未重构条带上的所有失效块是否都已计算完毕,如果都已计算完毕,则过程结束,否则设置i=i+1,并返回步骤(12-2)。
优选地,步骤(12)包括:
(12-1)获取该未重构条带中第一个失效块的标识i=0;
(12-2)判断失效块的标识i是否等于m-1,如果等于m-1,则表示该失效块是校验块,然后进入步骤(12-3),否则表示该失效块是数据块,然后进入步骤(12-4);
(12-3)根据所获取的失效块标识,利用步骤(6)的公式进行计算,以重构该校验块Cm-1,j,然后进入步骤(12-5);
(12-4)根据所获取的失效块标识,利用以下公式进行计算,以重构数据块Ci,j:
(12-5)判断该未重构条带上的所有失效块是否都已计算完毕,如果都已计算完毕,则过程结束,否则设置i=i+1,并返回步骤(12-2)。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)最低密度编码:每一个校验块的生成仅仅由数据块异或而成,校验块之间都是相互独立的,每一个数据块仅仅参与两个校验块的生成,因此更新一个数据块仅仅导致两个校验块的更新,因此该编码有最优的更新复杂度,实现了最低密度编码要求。
(2)最优的重构性能:每一条校验链的长度都为2m-1,因而对于一个固定行数为m的矩阵,其校验链的长度不随阵列中总列数n(总磁盘个数)而变化,显然,这与校验链的长度随阵列的扩大而增长的最大距离分割编码(Maximum Distance Separable,简称MDS)相比,本发明的V2-Code编码有更好的重构性能;
(3)灵活的磁盘阵列大小:在该编码中m和n都不受素数的限制,比起受限于素数的EVENODD,RDP和Code-M编码,显然V2-Code编码在构建RAID的大小上有更好的灵活性。
(4)负载均衡性:每一列(磁盘)仅仅只有一个校验块,每一个校验块都是2m-2个数据块的异或,因而每一列中校验块的生成都需要2m-3个异或操作,显然各磁盘的IO操作的均衡的
附图说明
图1是本发明基于异或的垂直RAID-6编码方法的应用环境图。
图2是本发明基于异或的垂直RAID-6编码方法的流程图。
图3是本发明方法中步骤(12)的细化流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明提出了一种基于异或的垂直RAID-6编码方法(简称V2-Code(m,n)编码)是应用在一种RAID-6系统中(如图1所示,其中m=3,n=9),其中RAID-6系统中一个条带为一个m×n阵列,m表示条带的总行数且m≥2,n表示一个条带的总列数且n≥4m-3,其中每一列(盘)有m-1个数据块(用字母d表示)和1个校验块(用字母p表示),并且每一个校验块都位于每一列的最后一行,每个数据块仅参与两个校验块的计算,每一个校验块是2(m-1)个数据块的异或值,并且2(m-1)个信息块来自阵列不同的列,每一条校验链的长度都为2m-1。RAID-6阵列中的二维码字记为C=[ci,j],ci,j为RAID-6系统中一个条带的第i(0≤i≤m-1)行第j(0≤j≤n-1)列的数据块或校验块,每个校验块是采用以下公式构建(即,编码):
在构建V2-Code编码时,首先取RAID-6系统上的一个未构建条带,对此条带中的所有块(包括数据块和校验块)进行编号,然后对于所有未构建的校验块cm-1,j,利用公式(1)构建这些校验块,最后,照此方案构建所有的未构建条带。
V2-Code的重构(即解码):该方法是RAID-6规范的编码,因而在磁盘失效的情况下只能重构两个并发失效磁盘,由于每一个数据块仅参与两个校验块的生成,因而每一个数据块的重构都存在有两种解码算法,见式(2)和(3)。
具体而言,在重构V2-Code编码时,首先取RAID-6系统上的一个未重构条带,对此条带中的所有块(包括数据块和校验块)进行编号,然后对于所有未重构的校验块ci,j,利用公式(2)或(3)重构这些校验块,最后,照此方案重构所有的未重构条带。
如图2所示,本发明一种基于异或的垂直RAID-6编码方法包括以下步骤:
(1)获取请求队列信息;请求队列信息是来自于应用程序接口(Application Program Interface,简称API);
(2)判断该请求队列信息是否是构建请求,如果是构建请求,则进入步骤(3),否则进入步骤(9);
(3)根据该构建请求获取RAID-6系统中的一个未构建条带,以获取该未构建条带的条带信息;具体而言,条带信息是该未构建条带在RAID-6系统中的编号;
(4)根据所获取的条带信息对该未构建条带中所有块进行编号,以得到所有块的标识;
(5)根据块标识,选择一个未构建的校验块Cm-1,j,以获取该校验块Cm-1,j标识,其中m表示RAID-6系统中一个条带的总行数,n表示一个条带的总列数,且有0≤j≤n-1;
(6)根据获取的校验块Cm-1,j标识,利用以下公式(1)进行计算,以得到该校验块Cm-1j的值:
本步骤的优点在于,每一个校验块的值仅由固定长度为2(m-1)个数据块的异或而生成,并且这2(m-1)个数据块都来自不同的磁盘,这种特性使得本RAID-6编码具有快速的重构性能和负载均衡的特性。
(7)判断该未构建条带上的所有校验块是否都已计算完毕,如果都已计算完毕,则进入步骤(8),否则设置j=j+1,并返回步骤(5);
(8)判断该RAID-6系统中所有条带是否都已构建完毕,如果都已构建完毕,则过程结束,否则返回步骤(3);
(9)判断该请求队列信息是否是重构请求,如果是重构请求,则进入步骤(10),否则返回步骤(1);
(10)根据该重构请求获取RAID-6系统中的一个未重构条带,以获取该未重构条带的条带信息;具体而言,条带信息是该未重构条带在RAID-6系统中的编号;
(11)根据所获取的条带信息对该未重构条带中的所有块进行编号,以得到所有块的标识(i,j),其中0≤i≤m-1;
(12)根据RAID-6系统中失效条带中的失效块信息对该未重构条带中失效的数据块和校验块进行重构;
(13)判断该RAID-6系统中的所有条带是否都已重构完毕,如果重构完毕,则过程结束,否则返回步骤(10)。
如图3所示,本发明基于异或的垂直RAID-6编码方法的步骤(12)包括:
(12-1)获取该未重构条带中第一个失效块的标识i=0;
(12-2)判断失效块的标识i是否等于m-1,如果等于m-1,则表示该失效块是校验块,然后进入步骤(12-3),否则表示该失效块是数据块,然后进入步骤(12-4);
(12-3)根据所获取的失效块标识,利用上述公式(1)进行计算,以重构该校验块Cm-1,j,然后进入步骤(12-5);
(12-4)根据所获取的失效块标识,利用公式(2)或(3)进行计算,以重构数据块Ci,j:
(12-5)判断该未重构条带上的所有失效块是否都已计算完毕,如果都已计算完毕,则过程结束,否则设置i=i+1,并返回步骤(12-2)。
至此,本发明所述的一种基于异或的垂直RAID-6编码方法全部结束。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种基于异或的垂直RAID-6编码方法,其特征在于,包括以下步骤:
(1)从API接口获取请求队列信息;
(2)判断该请求队列信息是否是构建请求,如果是构建请求,则进入步骤(3),否则进入步骤(9);
(3)根据该构建请求获取RAID-6系统中的一个未构建条带,以获取该未构建条带的条带信息;
(4)根据所获取的条带信息对该未构建条带中所有块进行编号,以得到所有块的标识;
(5)根据块标识,选择一个未构建的校验块Cm-1,j,以获取该校验块Cm-1,j标识,其中m表示RAID-6系统中一个条带的总行数,n表示一个条带的总列数,且有0≤j≤n-1;
(6)根据获取的校验块Cm-1,j标识,利用以下公式进行计算,以得到该校验块Cm-1,j的值:
(7)判断该未构建条带上的所有校验块是否都已计算完毕,如果都已计算完毕,则进入步骤(8),否则设置j=j+1,并返回步骤(5);
(8)判断该RAID-6系统中所有条带是否都已构建完毕,如果都已构建完毕,则过程结束,否则返回步骤(3);
(9)判断该请求队列信息是否是重构请求,如果是重构请求,则进入步骤(10),否则返回步骤(1);
(10)根据该重构请求获取RAID-6系统中的一个未重构条带,以获取该未重构条带的条带信息;
(11)根据所获取的条带信息对该未重构条带中的所有块进行编号,以得到所有块的标识(i,j),其中0≤i≤m-1;
(12)根据RAID-6系统中失效条带中的失效块信息对该未重构条带中失效的数据块和校验块进行重构;
(13)判断该RAID-6系统中的所有条带是否都已重构完毕,如果重构完毕,则过程结束,否则返回步骤(10)。
2.根据权利要求1所述的垂直RAID-6编码方法,其特征在于,步骤(12)包括:
(12-1)获取该未重构条带中第一个失效块的标识i=0;
(12-2)判断失效块的标识i是否等于m-1,如果等于m-1,则表示该失效块是校验块,然后进入步骤(12-3),否则表示该失效块是数据块,然后进入步骤(12-4);
(12-3)根据所获取的失效块标识,利用步骤(6)的公式进行计算,以重构该校验块Cm-1,j,然后进入步骤(12-5);
(12-4)根据所获取的失效块标识,利用以下公式进行计算,以重构数据块Ci,j:
(12-5)判断该未重构条带上的所有失效块是否都已计算完毕,如果都已计算完毕,则过程结束,否则设置i=i+1,并返回步骤(12-2)。
3.根据权利要求1所述的垂直RAID-6编码方法,其特征在于,步骤(12)包括:
(12-1)获取该未重构条带中第一个失效块的标识i=0;
(12-2)判断失效块的标识i是否等于m-1,如果等于m-1,则表示该失效块是校验块,然后进入步骤(12-3),否则表示该失效块是数据块,然后进入步骤(12-4);
(12-3)根据所获取的失效块标识,利用步骤(6)的公式进行计算,以重构该校验块Cm-1,j,然后进入步骤(12-5);
(12-4)根据所获取的失效块标识,利用以下公式进行计算,以重构数据块Ci,j:
(12-5)判断该未重构条带上的所有失效块是否都已计算完毕,如果都已计算完毕,则过程结束,否则设置i=i+1,并返回步骤(12-2)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310595326.9A CN103593253A (zh) | 2013-11-22 | 2013-11-22 | 一种基于异或的垂直raid-6编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310595326.9A CN103593253A (zh) | 2013-11-22 | 2013-11-22 | 一种基于异或的垂直raid-6编码方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103593253A true CN103593253A (zh) | 2014-02-19 |
Family
ID=50083408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310595326.9A Pending CN103593253A (zh) | 2013-11-22 | 2013-11-22 | 一种基于异或的垂直raid-6编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103593253A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104765660A (zh) * | 2015-04-24 | 2015-07-08 | 中国人民解放军国防科学技术大学 | 一种基于ssd的raid6系统的单盘快速恢复方法器 |
CN104932835A (zh) * | 2015-05-31 | 2015-09-23 | 上海交通大学 | 基于纠删码的分布式存储系统的扩容和缩容方法 |
CN105812448A (zh) * | 2016-06-13 | 2016-07-27 | 青海师范大学 | 一种云存储系统的纠删编码方法 |
CN106874140A (zh) * | 2016-12-30 | 2017-06-20 | 北京联想核芯科技有限公司 | 数据存储方法及装置 |
WO2018028107A1 (zh) * | 2016-08-07 | 2018-02-15 | 成都信息工程大学 | 一种阵列式存储系统的编码容错方法 |
CN108614670A (zh) * | 2016-12-13 | 2018-10-02 | 杭州海康威视数字技术股份有限公司 | 一种信息处理方法及装置 |
CN109542671A (zh) * | 2018-11-30 | 2019-03-29 | 湖南国科微电子股份有限公司 | 校验数据生成方法及固态硬盘 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012792A (zh) * | 2010-11-02 | 2011-04-13 | 华中科技大学 | 一种快速重构的raid-6编码及重构方法 |
CN102419697A (zh) * | 2011-11-02 | 2012-04-18 | 华中科技大学 | 垂直raid-6编码中单盘重构的方法 |
CN102521067A (zh) * | 2011-12-01 | 2012-06-27 | 华中科技大学 | 优化部分条带写性能的raid-6编码和重构方法 |
-
2013
- 2013-11-22 CN CN201310595326.9A patent/CN103593253A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012792A (zh) * | 2010-11-02 | 2011-04-13 | 华中科技大学 | 一种快速重构的raid-6编码及重构方法 |
CN102419697A (zh) * | 2011-11-02 | 2012-04-18 | 华中科技大学 | 垂直raid-6编码中单盘重构的方法 |
CN102521067A (zh) * | 2011-12-01 | 2012-06-27 | 华中科技大学 | 优化部分条带写性能的raid-6编码和重构方法 |
Non-Patent Citations (1)
Title |
---|
PING XIE 等: "V -Code:A New Non-MDS Array Code with Optimal Reconstruction Performance for RAID-6", 《2013 IEEE INTERNATIONAL CONFERENCE ON CLUSTER COMPUTING(CLUSTER 13)》, 27 September 2013 (2013-09-27), pages 1 - 8, XP032541028, DOI: doi:10.1109/CLUSTER.2013.6702621 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104765660A (zh) * | 2015-04-24 | 2015-07-08 | 中国人民解放军国防科学技术大学 | 一种基于ssd的raid6系统的单盘快速恢复方法器 |
CN104765660B (zh) * | 2015-04-24 | 2017-04-05 | 中国人民解放军国防科学技术大学 | 一种基于ssd的raid6系统的单盘快速恢复方法器 |
CN104932835A (zh) * | 2015-05-31 | 2015-09-23 | 上海交通大学 | 基于纠删码的分布式存储系统的扩容和缩容方法 |
CN105812448A (zh) * | 2016-06-13 | 2016-07-27 | 青海师范大学 | 一种云存储系统的纠删编码方法 |
WO2018028107A1 (zh) * | 2016-08-07 | 2018-02-15 | 成都信息工程大学 | 一种阵列式存储系统的编码容错方法 |
CN108614670A (zh) * | 2016-12-13 | 2018-10-02 | 杭州海康威视数字技术股份有限公司 | 一种信息处理方法及装置 |
CN108614670B (zh) * | 2016-12-13 | 2020-07-03 | 杭州海康威视数字技术股份有限公司 | 一种信息处理方法及装置 |
CN106874140A (zh) * | 2016-12-30 | 2017-06-20 | 北京联想核芯科技有限公司 | 数据存储方法及装置 |
CN109542671A (zh) * | 2018-11-30 | 2019-03-29 | 湖南国科微电子股份有限公司 | 校验数据生成方法及固态硬盘 |
CN109542671B (zh) * | 2018-11-30 | 2022-06-07 | 湖南国科微电子股份有限公司 | 校验数据生成方法及固态硬盘 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103593253A (zh) | 一种基于异或的垂直raid-6编码方法 | |
US11080140B1 (en) | Data reconstruction in distributed storage systems | |
US8856619B1 (en) | Storing data across groups of storage nodes | |
Silberstein et al. | Lazy means smart: Reducing repair bandwidth costs in erasure-coded distributed storage | |
CN106484559B (zh) | 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 | |
US20160378624A1 (en) | Erasure coding of data within a group of storage units based on connection characteristics | |
CN103106124B (zh) | 一种基于纠删码集群存储系统的交叉重构方法 | |
CN107203442B (zh) | 独立磁盘冗余阵列的重建性能的评估方法和设备 | |
CN110089035B (zh) | 存储控制器、数据处理芯片及数据处理方法 | |
CN110413454B (zh) | 基于存储阵列的数据重建方法、装置及存储介质 | |
US20100262755A1 (en) | Memory systems for computing devices and systems | |
US20210133029A1 (en) | Methods for data writing and for data recovery, electronic devices, and program products | |
US10740182B2 (en) | Erased memory page reconstruction using distributed coding for multiple dimensional parities | |
CN112799604B (zh) | 一种基于N-Code的RAID6磁盘阵列扩容方法及数据填充方法 | |
CN105573680A (zh) | 副本数据的存储方法及装置 | |
US20190129796A1 (en) | Flexible redundant array of independent disks (raid) computation device | |
Qiu et al. | Ec-fusion: An efficient hybrid erasure coding framework to improve both application and recovery performance in cloud storage systems | |
CN109358980A (zh) | 一种对数据更新和单磁盘错误修复友好的raid6编码方法 | |
CN104881365A (zh) | 基于纠删码相似性的raid-6可扩展方法 | |
EP2889751B1 (en) | Method and apparatus for determining redundant array of independent disks | |
CN103809919B (zh) | 高效容多错的快速恢复编码方法及其验证矩阵生成方法 | |
Mohan et al. | Benchmarking the performance of hadoop triple replication and erasure coding on a nation-wide distributed cloud | |
CN104932836B (zh) | 一种提高单写性能的三盘容错编码和解码方法 | |
Li et al. | Tier-code: An XOR-based RAID-6 code with improved write and degraded-mode read performance | |
CN105812448A (zh) | 一种云存储系统的纠删编码方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for 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: 20140219 |