CN104866243A - 优化输入输出负载的raid-6横向斜向校验编码及解码方法 - Google Patents
优化输入输出负载的raid-6横向斜向校验编码及解码方法 Download PDFInfo
- Publication number
- CN104866243A CN104866243A CN201510289990.XA CN201510289990A CN104866243A CN 104866243 A CN104866243 A CN 104866243A CN 201510289990 A CN201510289990 A CN 201510289990A CN 104866243 A CN104866243 A CN 104866243A
- Authority
- CN
- China
- Prior art keywords
- backslash
- verification
- square formation
- check
- raid
- 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
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明提供了一种优化输入输出负载的RAID-6横向斜向校验编码及解码方法,本发明为冗余磁盘阵列系统中纠删码的设计方案,包括了编码的横向与反斜向校验的编码方案,以及当至多两个磁盘失效时,利用校验链进行数据恢复的流程。与现有的双盘容错纠删码相比,本发明通过合理的编码设计,实现最佳的负载均衡,最优存储代价,以及良好的单盘恢复性能。
Description
技术领域
本发明属于计算机领域,涉及一种优化输入输出(I/O)负载的RAID-6横向斜向校验编码及解码方法。
背景技术
冗余磁盘阵列(RAID)是一种被广泛采用的,能以非常少的空间开销提升存储设备可靠性与性能的技术。近年来,由于大型存储系统中多盘失效几率的提升,能容忍两块磁盘同时失效的RAID-6方案得到了更多关注。现有的大多数RAID-6的实现是基于一类最大距离可分码(MDS编码)实现的,这类编码的特点是能以最优的额外空间代价以达到所需要的可靠性。根据编码本身的特性,MDS编码可进一步分为水平编码和垂直编码。一个典型的RAID-6水平编码由m块数据盘和2块校验盘构成,其中数据存放在m个数据块上,而校验单独存放在剩余2个盘上。垂直编码则将校验块分布在所有设备上。
大多数现有的MDS编码均存在负载不均衡的问题,当上层应用的写请求多的时候,这个现象更为严重。典型的水平编码由于将校验放在单独的磁盘上,因此在处理写请求时,校验盘将承受大量的更新操作,从而比数据盘具有更大的负载。对于某些垂直编码例如P-code,由于它的校验并未完全均匀分布,同样存在负载不均衡的问题。尽管,某些垂直编码具有负载均衡的特性,如X-code,但是他们在恢复单盘失效的时候,具有更高的恢复代价。
发明内容
本发明的目的在于提供一种优化输入输出负载的RAID-6横向斜向校验编码及解码方法,能够实现最佳的负载均衡,最优存储代价,以及良好的单盘恢复性能。
为解决上述问题,本发明提供一种优化输入输出负载的RAID-6横向斜向校验编码方法,包括:
用一个p-1行p-1列的方阵来表示规模为p-1的磁盘阵列,其中p是任意给定的大于2的质数,其中,方阵中的每一列表示一个磁盘,方阵中的每个元素表示磁盘上一个定长的存储空间;
在所述方阵的主对角线存放横向校验块,副对角线存放反斜向校验块,方阵的剩余元素存放数据块,主对角线为横向校验链,副对角线为反斜向校验链。
进一步的,在上述方法中,在所述方阵的主对角线存放横向校验块,副对角线存放反斜向校验块,方阵的剩余元素存放数据块包括:
根据横向和反斜向校验的计算公式在所述方阵的主对角线和副对角线之外的元素位置存放数据块;
根据所述横向和反斜向校验的计算公式,计算出所有横向校验块和反斜向校验块,并将所述横向校验块存放入所述方阵的主对角线上的对应的元素位置,将所述反斜向校验块存放入所述方阵的副对角线上的对应的元素位置。
进一步的,在上述方法中,所述横向校验的计算公式如下:
其中,Ci,i表示横向校验块,Ci,j表示方阵中第i行第j列的元素,0≤i,j≤p-2。
进一步的,在上述方法中,所述反斜向校验的计算公式如下:
其中,Ci,p-2-i表示反斜向校验,表示方阵中第<2i+j+2>p行第j列的元素,<2i+j+2>p表示将2i+j+2的值对p取模。
根据本发明的另一面,还提供一种优化输入输出负载的RAID-6横向斜向校验解码方法,包括:
当磁盘阵列的最多2个盘失效时,根据方阵中的横向和反斜向校验链恢复失效元素。
进一步的,在上述方法中,当磁盘阵列的1个盘失效时,根据方阵中的横向和反斜向校验链恢复失效元素包括:
读取方阵中的横向和反斜向校验链上的存活元素,计算存活元素的异或之和,将存活元素的异或之和作为失效元素的值。
进一步的,在上述方法中,当磁盘阵列的2个盘失效时,根据方阵中的横向和反斜向校验链恢复失效元素包括:
步骤一,寻找位于失效的磁盘上且是所在反斜向校验链上唯一缺失的元素作为起始元素;
步骤二,通过所述反斜向校验链对所述起始元素进行恢复;
步骤三,当所述起始元素被恢复后,得到所述起始元素所在横向校验链上且位于失效盘上的一个第二元素,则通过所述横向校验链对所述第二元素进行恢复;
步骤四,判断失效的磁盘上是否还有待恢复的元素,
若有,将所述第二元素的所在反斜向校验链上下一个待恢复的元素替换为新的起始元素后转到步骤二;
若无,则结束。具体的,对于双盘失效的情形,仍然可以利用校验链进行恢复。
与现有技术相比,本发明为冗余磁盘阵列系统中纠删码的设计方案,包括了编码的横向与反斜向校验的编码方案,以及当至多两个磁盘失效时,利用校验链进行数据恢复的流程。与现有的双盘容错纠删码相比,本发明通过合理的编码设计,实现最佳的负载均衡,最优存储代价,以及良好的单盘恢复性能。
附图说明
图1是本发明一实施例的优化输入输出负载的RAID-6横向斜向校验编码方法的横向校验编码方式示意图;
图2是本发明一实施例的本发明一实施例的优化输入输出负载的RAID-6横向斜向校验编码方法的反斜向校验编码方式示意图;
图3是本发明一实施例的优化输入输出负载的RAID-6横向斜向校验解码方法的双盘失效时编码恢复示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明提供一种优化输入输出负载的RAID-6横向斜向校验编码方法,包括:
步骤S1,用一个p-1行p-1列的方阵来表示规模为p-1的磁盘阵列,其中p是任意给定的大于2的质数,其中,方阵中的每一列表示一个磁盘,方阵中的每个元素表示磁盘上一个定长的存储空间;
步骤S2,在所述方阵的主对角线存放横向校验块,副对角线存放反斜向校验块,方阵的剩余元素存放数据块,主对角线为横向校验链,副对角线为反斜向校验链。具体的,本发明所展示的编码,适用于规模为p-1的磁盘阵列,其中p是任意给定的大于2的质数。采用该编码后,每个条带内的数据放置方案可用一个p-1行p-1列的方阵来表示,其中,方阵中的每一列表示一个磁盘,方阵中的每个元素表示磁盘上一个定长的存储空间,在所述方阵的主对角线存放横向校验块,副对角线存放反斜向校验块,方阵的剩余元素存放数据块,每个数据块即为原始数据。
本发明的优化输入输出负载的RAID-6横向斜向校验编码方法的一优选的实施例中,步骤S2,在所述方阵的主对角线存放横向校验块,副对角线存放反斜向校验块,方阵的剩余元素存放数据块包括:
根据横向和反斜向校验的计算公式在所述方阵的主对角线和副对角线之外的元素位置存放数据块;
根据所述横向和反斜向校验的计算公式,计算出所有横向校验块和反斜向校验块,并将所述横向校验块存放入所述方阵的主对角线上的对应的元素位置,将所述反斜向校验块存放入所述方阵的副对角线上的对应的元素位置。
本发明的优化输入输出负载的RAID-6横向斜向校验编码方法的一优选的实施例中,所述横向校验的计算公式如下:
其中,Ci,i表示横向校验块,Ci,j表示方阵中第i行第j列的元素,0≤i,j≤p-2。
本发明的优化输入输出负载的RAID-6横向斜向校验编码方法的一优选的实施例中,所述反斜向校验的计算公式如下:
其中,Ci,p-2-i表示反斜向校验,表示方阵中第<2i+j+2>p行第j列的元素,<2i+j+2>p表示将2i+j+2的值对p取模。
详细的,图1和图2展示了当该编码应用于6个磁盘的阵列中的样例。此时,该编码是一个6行6列的矩阵,其中两条对角线分别存放了横向校验块(如C0,0,C1,1,C2,2)和斜向校验(如C0,5,C1,4,C2,3)。其中,图1展示的是横向校验的编码方式。我们用不同的形状来表示不用的横向校验或斜向校验链。基于横向校验计算公式,我们可计算出所有横向校验块的值,例如C0,0是由计算而得。图2展示的是反斜向校验的编码方式,根据反斜向校验计算公式,我们计算出所有反斜向校验块的值,例如C1,4由计算而得。
根据本申请的另一面,还提供一种优化输入输出负载的RAID-6横向斜向校验解码方法,包括:
当磁盘阵列的最多2个盘失效时,根据方阵中的横向和反斜向校验链恢复失效元素。
本发明的优化输入输出负载的RAID-6横向斜向校验解码方法的一优选的实施例中,当磁盘阵列的1个盘失效时,根据方阵中的横向和反斜向校验链恢复失效元素包括:
读取方阵中的横向和反斜向校验链上的存活元素,所述存活元素包括横向和反斜向校验块,计算存活元素的异或之和,将存活元素的异或之和作为失效元素的值。具体的,单盘失效的恢复非常容易,当某个磁盘失效时,每个失效的元素均可用横向或者反斜向校验直接恢复,即读取方阵中的校验链上的存活元素,存活元素的异或之和就是失效元素的值。
本发明的优化输入输出负载的RAID-6横向斜向校验解码方法的一优选的实施例中,当磁盘阵列的2个盘失效时,根据方阵中的横向和反斜向校验链恢复失效元素包括:
步骤一,寻找位于失效的磁盘上且是所在反斜向校验链上唯一缺失的元素作为起始元素;
步骤二,通过所述反斜向校验链对所述起始元素进行恢复;
步骤三,当所述起始元素被恢复后,得到所述起始元素所在横向校验链上且位于失效盘上的一个第二元素,则通过所述横向校验链对所述第二元素进行恢复;
步骤四,判断失效的磁盘上是否还有待恢复的元素,
若有,将所述第二元素的所在反斜向校验链上下一个待恢复的元素替换为新的起始元素后转到步骤二;
若无,则结束。具体的,对于双盘失效的情形,仍然可以利用校验链进行恢复。当任意两块磁盘失效的时候,我们首先寻找这样一个元素,它位于失效的磁盘上,并且它是其所在反斜向校验链上唯一缺失的元素作为起始元素。此时,该起始元素可由反斜向校验链进行恢复。由于该编码本身的特性,这样的元素一定存在。我们假设失效的两个磁盘的编号分别是f1和f2,则和这两个元素均满足上述条件,因此首先被恢复。当所述起始元素被恢复后,所述起始元素所在横向校验上至多只有一个第二元素位于失效盘上,则借助横向校验链对所述第二元素进行恢复。此时,第二元素被恢复后,第二元素所在反斜向校验链上又存在下一个待恢复的元素。恢复过程即采用迭代方式,从开始给出的两个可直接恢复的元素开始,不断利用横向、反斜向校验,恢复出下一个元素,最终能将失效磁盘上的所有元素恢复出来。图3给出了在6个磁盘的阵列中的恢复样例。该例子中,第二、三块磁盘是失效盘,而恢复流程即按图中给出的顺序,利用校验链依次恢复出所有元素。
综上所述,本发明为冗余磁盘阵列系统中纠删码的设计方案,包括了编码的横向与反斜向校验的编码方案,以及当至多两个磁盘失效时,利用校验链进行数据恢复的流程。与现有的双盘容错纠删码相比,本发明通过合理的编码设计,实现最佳的负载均衡,最优存储代价,以及良好的单盘恢复性能。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
Claims (7)
1.一种优化输入输出负载的RAID-6横向斜向校验编码方法,其特征在于,包括:
用一个p-1行p-1列的方阵来表示规模为p-1的磁盘阵列,其中p是任意给定的大于2的质数,其中,方阵中的每一列表示一个磁盘,方阵中的每个元素表示磁盘上一个定长的存储空间;
在所述方阵的主对角线存放横向校验块,副对角线存放反斜向校验块,方阵的剩余元素存放数据块,主对角线为横向校验链,副对角线为反斜向校验链。
2.如权利要求1所述的优化输入输出负载的RAID-6横向斜向校验编码,其特征在于,在所述方阵的主对角线存放横向校验块,副对角线存放反斜向校验块,方阵的剩余元素存放数据块包括:
根据横向和反斜向校验的计算公式在所述方阵的主对角线和副对角线之外的元素位置存放数据块;
根据所述横向和反斜向校验的计算公式,计算出所有横向校验块和反斜向校验块,并将所述横向校验块存放入所述方阵的主对角线上的对应的元素位置,将所述反斜向校验块存放入所述方阵的副对角线上的对应的元素位置。
3.如权利要求2所述的优化输入输出负载的RAID-6横向斜向校验编码,其特征在于,所述横向校验的计算公式如下:
其中,Ci,i表示横向校验块,Ci,j表示方阵中第i行第j列的元素,0≤i,j≤p-2。
4.如权利要求3所述的优化输入输出负载的RAID-6横向斜向校验编码,其特征在于,所述反斜向校验的计算公式如下:
(j≠p-2-i且j≠<p-3-2i>p),其中,Ci,p-2-i表示反斜向校验,表示方阵中第<2i+j+2>p行第j列的元素,<2i+j+2>p表示将2i+j+2的值对p取模。
5.如权利要求1所述的优化输入输出负载的RAID-6横向斜向校验解码方法,其特征在于,包括:
当磁盘阵列的最多2个盘失效时,根据方阵中的横向和反斜向校验链恢复失效元素。
6.如权利要求1所述的优化输入输出负载的RAID-6横向斜向校验解码方法,其特征在于,当磁盘阵列的1个盘失效时,根据方阵中的横向和反斜向校验链恢复失效元素包括:
读取方阵中的横向和反斜向校验链上的存活元素,计算存活元素的异或之和,将存活元素的异或之和作为失效元素的值。
7.如权利要求1所述的优化输入输出负载的RAID-6横向斜向校验解码方法,其特征在于,当磁盘阵列的2个盘失效时,根据方阵中的横向和反斜向校验链恢复失效元素包括:
步骤一,寻找位于失效的磁盘上且是所在反斜向校验链上唯一缺失的元素作为起始元素;
步骤二,通过所述反斜向校验链对所述起始元素进行恢复;
步骤三,当所述起始元素被恢复后,得到所述起始元素所在横向校验链上且位于失效盘上的一个第二元素,则通过所述横向校验链对所述第二元素进行恢复;
步骤四,判断失效的磁盘上是否还有待恢复的元素,
若有,将所述第二元素的所在反斜向校验链上下一个待恢复的元素替换为新的起始元素后转到步骤二;
若无,则结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510289990.XA CN104866243A (zh) | 2015-05-31 | 2015-05-31 | 优化输入输出负载的raid-6横向斜向校验编码及解码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510289990.XA CN104866243A (zh) | 2015-05-31 | 2015-05-31 | 优化输入输出负载的raid-6横向斜向校验编码及解码方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104866243A true CN104866243A (zh) | 2015-08-26 |
Family
ID=53912107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510289990.XA Pending CN104866243A (zh) | 2015-05-31 | 2015-05-31 | 优化输入输出负载的raid-6横向斜向校验编码及解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104866243A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844098A (zh) * | 2016-12-29 | 2017-06-13 | 中国科学院计算技术研究所 | 一种基于十字交叉纠删编码的快速数据恢复方法及系统 |
US10210044B2 (en) | 2016-12-24 | 2019-02-19 | Huawei Technologies Co., Ltd | Storage controller, data processing chip, and data processing method |
CN111585582A (zh) * | 2020-05-14 | 2020-08-25 | 成都信息工程大学 | 一种基于阵列运算且码距自由确定的编码方法 |
CN111930552A (zh) * | 2020-06-17 | 2020-11-13 | 深圳佰维存储科技股份有限公司 | 坏块数据的恢复方法、装置、存储介质及电子设备 |
CN112905387A (zh) * | 2021-03-04 | 2021-06-04 | 河北工业大学 | 一种raid6编码及基于该编码的数据恢复方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012792A (zh) * | 2010-11-02 | 2011-04-13 | 华中科技大学 | 一种快速重构的raid-6编码及重构方法 |
CN102103533A (zh) * | 2011-02-25 | 2011-06-22 | 华中科技大学 | 一种双盘容错磁盘阵列中单盘重构的方法 |
CN102521067A (zh) * | 2011-12-01 | 2012-06-27 | 华中科技大学 | 优化部分条带写性能的raid-6编码和重构方法 |
-
2015
- 2015-05-31 CN CN201510289990.XA patent/CN104866243A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012792A (zh) * | 2010-11-02 | 2011-04-13 | 华中科技大学 | 一种快速重构的raid-6编码及重构方法 |
CN102103533A (zh) * | 2011-02-25 | 2011-06-22 | 华中科技大学 | 一种双盘容错磁盘阵列中单盘重构的方法 |
CN102521067A (zh) * | 2011-12-01 | 2012-06-27 | 华中科技大学 | 优化部分条带写性能的raid-6编码和重构方法 |
Non-Patent Citations (1)
Title |
---|
CHENTAO WU ETC: "HDP Code: A Horizontal-Diagonal Parity Code to Optimize I/O Load Balancing in RAID-6", 《IEEE/IFIP INTERNATIONAL CONFERENCE ON DEPENDABLE SYSTEMS & NETWORKS》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10210044B2 (en) | 2016-12-24 | 2019-02-19 | Huawei Technologies Co., Ltd | Storage controller, data processing chip, and data processing method |
CN106844098A (zh) * | 2016-12-29 | 2017-06-13 | 中国科学院计算技术研究所 | 一种基于十字交叉纠删编码的快速数据恢复方法及系统 |
CN106844098B (zh) * | 2016-12-29 | 2020-04-03 | 中国科学院计算技术研究所 | 一种基于十字交叉纠删编码的快速数据恢复方法及系统 |
CN111585582A (zh) * | 2020-05-14 | 2020-08-25 | 成都信息工程大学 | 一种基于阵列运算且码距自由确定的编码方法 |
CN111585582B (zh) * | 2020-05-14 | 2023-04-07 | 成都信息工程大学 | 一种基于阵列运算且码距自由确定的编码方法 |
CN111930552A (zh) * | 2020-06-17 | 2020-11-13 | 深圳佰维存储科技股份有限公司 | 坏块数据的恢复方法、装置、存储介质及电子设备 |
CN112905387A (zh) * | 2021-03-04 | 2021-06-04 | 河北工业大学 | 一种raid6编码及基于该编码的数据恢复方法 |
CN112905387B (zh) * | 2021-03-04 | 2022-05-24 | 河北工业大学 | 一种raid6编码及基于该编码的数据恢复方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102270161B (zh) | 一种基于纠删码的多等级容错数据存储、读取和恢复方法 | |
CN104866243A (zh) | 优化输入输出负载的raid-6横向斜向校验编码及解码方法 | |
CN101387975B (zh) | 一种磁盘阵列系统 | |
CA2532766C (en) | Data storage array | |
US8990495B2 (en) | Method and system for storing data in raid memory devices | |
CN102012792B (zh) | 一种快速重构的raid-6编码及重构方法 | |
KR102572357B1 (ko) | Raid-6 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템 | |
CN103761195B (zh) | 一种利用分布式数据编码的存储方法 | |
CN103034458B (zh) | 固态硬盘中实现独立磁盘冗余阵列的方法及装置 | |
Park et al. | Reliability and performance enhancement technique for SSD array storage system using RAID mechanism | |
US9063869B2 (en) | Method and system for storing and rebuilding data | |
WO2018072294A1 (zh) | 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 | |
CN104111880A (zh) | 一种容三盘失效纠删码的单数据盘失效快速重建方法 | |
CN103176865B (zh) | 一种纠删码存储中负载感知的读优化方法 | |
CN102184079A (zh) | 一种raid5级别磁盘阵列的写性能优化方法 | |
KR20120094782A (ko) | Ssd 기반 저장장치 시스템 | |
CN103336727A (zh) | Nand闪存存储设备及对其进行数据操作的方法 | |
CN103135946A (zh) | 基于ssd的大规模存储系统中的文件布局方法 | |
CN104461926A (zh) | 一种基于二维raid的固态硬盘数据保护方法 | |
CN105808170A (zh) | 一种能够以最小磁盘读写修复单磁盘错误的raid6编码方法 | |
CN101901115B (zh) | 一种磁盘阵列raid6级别的构建方法 | |
CN114546272A (zh) | 快速通用的raid降级为raid5的方法、系统、设备和存储介质 | |
CN102270102B (zh) | 一种raid6磁盘阵列写性能的优化方法 | |
CN114115729B (zh) | 一种raid下的高效数据迁移方法 | |
CN102103533A (zh) | 一种双盘容错磁盘阵列中单盘重构的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150826 |