首页> 中国专利> 一种校验矩阵的构造方法及水平阵列纠删码的构造方法

一种校验矩阵的构造方法及水平阵列纠删码的构造方法

摘要

本发明涉及一种校验矩阵的构造方法及水平阵列纠删码的构造方法。本发明所述水平阵列纠删码的校验矩阵H可表示为标准形式:H=[P|Ir],校验矩阵H的每一行都代表了一个校验方程,它表示该行中“1”相对应的水平阵列纠删码的码元的二进制异或和为“0”。本发明所述水平阵列纠删码校验矩阵构造方法,可根据预设的容错数量和存储效率构造出相应的水平阵列纠删码的校验矩阵,进而构造出相应的水平阵列纠删码。本发明所述的构造方法实现简单,能构造出容错能力在理论上不受限制的阵列码,且构造时也无需满足很强的约束条件、具有极高的运算效率;在阵列码确定后,其更新代价和修复代价为一个固定常量,不会随着系统规模的扩大或容错能力的提高而增加。

著录项

  • 公开/公告号CN106484559A

    专利类型发明专利

  • 公开/公告日2017-03-08

    原文格式PDF

  • 申请/专利权人 成都信息工程大学;

    申请/专利号CN201610901905.5

  • 发明设计人 唐聃;舒红平;王亚强;

    申请日2016-10-17

  • 分类号G06F11/10(20060101);H03M13/15(20060101);

  • 代理机构成都赛恩斯知识产权代理事务所(普通合伙);

  • 代理人张端阳

  • 地址 610225 四川省成都市西南航空港经济开发区学府路一段24号

  • 入库时间 2023-06-19 01:42:42

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-12-18

    授权

    授权

  • 2017-04-05

    实质审查的生效 IPC(主分类):G06F11/10 申请日:20161017

    实质审查的生效

  • 2017-03-08

    公开

    公开

说明书

技术领域

本发明属于计算机信息存储技术领域,具体是一种校验矩阵的构造方法及水平阵列纠删码的构造方法。

背景技术

随着网络和服务器的迅速成长,数据的容量越来越大,数据的重要性和安全性也更加得到重视。为了应对由数据量的快速增长而带来的数据存储可靠性问题,海量存储系统必须能够提供安全的存储服务、以及持续的在线运行和高效、可靠的容错机制;同时也为了提高数据访问的并发效率和降低成本,通常有效的做法是使用多个存储节点共同构建一个存储系统,该存储系统通常是基于网络的分布式存储系统,其雏形可以追溯到集中式的RAID(Redundant Array of Inexpensive Disk,廉价冗余磁盘阵列)系统。

采用高存储密度构建的RAID磁盘组,出现磁盘故障需要修正TB级别的数据时重建过程需要的时间较长,常常需要一天或者更长的时间;特别是在生产系统中,重建时间更长。在长时间重建大容量存储内容时,组成RAID组的第二个磁盘、第三个磁盘出现故障的可能性会大大增加;在重建过程中,一个磁盘故障明显加大了其它磁盘的访问负载,使得其它磁盘故障出现的概率急剧增加,较大的影响了存储系统的可用性。

针对传统数据冗余保护技术在大容量磁盘存储系统中所表现出的 不足,以分布式、大规模、大容量磁盘存储为特点的海量存储系统中出现了一种更加高效的数据冗余技术——纠删码。纠删码起源于通信传输领域,目前逐渐出现在大规模存储系统中,特别是分布式存储环境,用于实现数据的冗余保护。纠删码技术基本思想是将一份数据划分为k块原始的数据,基于k块原始数据冗余计算获得m块冗余数据。对于这k+m块数据,其中任意的m块元素出错时,存储系统均可以通过重构算法恢复出原来的k块数据,纠删码冗余保护技术解决了传统冗余保护技术不适于分布式生产存储系统的问题。

基于纠删码的方法与传统的镜像、副本技术相比,具有冗余度低、磁盘利用率高等优点。针对云计算、大数据业务对海量存储系统的多样性、大规模存储容量需求,能够较好的适应分布式存储应用环境。因此,在存储系统中,确定存储条块尺寸和期望的容错能力的情况下,构造纠删码具有重要意义。

发明内容

本发明的目的是,提供适用于在确定的存储条块尺寸和期望的容错能力的预设条件下的一种水平阵列纠删码的校验矩阵的构造方法,及得出相应的水平阵列纠删码的构造方法。

为实现上述目的,本发明所述水平阵列纠删码校验矩阵的构造方法的具体技术方案为:所述校验矩阵对应的存储阵列具有m行,容错能力为f,其中m和f为正整数;设I,I1,I2,…In-1均为n阶基本循环矩阵D的循环矩阵基本列,其中I=In为单位矩阵;所述方法的具体步骤为:

S1:将f个t阶循环矩阵的基本列I排成一列,构成的矩阵记作T1

其中t为正整数,t=f*(m-1)+1;

S2:将t阶循环矩阵中除I外的另外f*(m-1)个相异基本列I1,I2,……,If*(m-1),以行优先的顺序组合成一个矩阵,记作T2;矩阵T2行上有(m-1)个子矩阵,列上包含f个子矩阵;

S3:将T1、T2两个矩阵在行上进行拼接,记作P=[T1|T2];

S4:将f*t阶的单位矩阵Ir,与矩阵P在行上进行拼接组合构成的新矩阵H,即是水平阵列纠删码的校验矩阵:

利用以上方法所得出的一种水平阵列纠删码的构造方法,所述水平阵列纠删码的所有数据元素序号在数据阵列部分中以行优先进行排列,所有校验元素序号在校验阵列部分中以列优先进行排列,其特征在于:所述水平阵列纠删码的校验矩阵H的子矩阵P的每一个列向量对应水平阵列纠删码的一个数据元素,而单位矩阵Ir的每一个列向量对应一个校验元素;所述水平阵列纠删码的校验矩阵H每一行代表一个校验方程,即该行中“1”相对应水平阵列纠删码的码元二进制异或和为0。

本发明所述的校验矩阵H可表示为标准形式:H=[P|Ir],其中r=f*t,Ir为r阶的单位矩阵,r为编码中校验元素的个数。校验矩阵H的每一行都代表了一个校验方程,它表示该行中“1”相对应的水平阵列纠删码的码元的二进制异或和为“0”。因此,本发明所述校验矩阵H的标准形式还反映了校验元由哪些信息元决定,校验矩阵H的r行代表了r个校验方程,也表示由H决定的码的码字中有r个校验元。

对于水平阵列纠删码,校验矩阵一旦确定,水平阵列纠删码就可以被确定;而阵列码也是一类线性分组码,即通过校验矩阵,其对应的阵列码的大部分性质均可以分析得出。以上所述的方法是先利用基本循环矩阵构建出校验矩阵,再由校验矩阵确定出对应的水平阵列纠删码。

本发明根据预设的容错数量和存储效率构造出相应的校验矩阵,进而通过校验矩阵构造出水平阵列纠删码,其有益效果是:(1)本方法所述的构造方法实现简单,能构造出容错能力在理论上不受限制的阵列纠删码,且构造时也无需满足很强的约束条件;(2)使用本方法构造出的校验矩阵,得出水平阵列纠删码的编译运算时均使用二进制的异或运算,具有极高的运算效率,且方法简洁易于程序实现;(3)在水平阵列纠删码确定后,其更新代价和修复代价为一个固定常量,不会随着系统规模的扩大或容错能力的提高而增加。总之,本发明所述方法能够提高存储系统的可靠性,适于公司或机构等数据量大且对数据稳定性要求高的情况。

附图说明

附图用来提供对本发明的进一步理解,并不构成对本发明的限制。

图1为本发明所述水平阵列纠删码的元素示意图。

图2为本发明3*4的水平阵列纠删码的元素示意图。

图3为本发明3*4的水平阵列纠删码元素与其校验矩阵的对应关系。

具体实施方式

下面结合实施例,对本发明的实施作进一步的描述。

在水平阵列纠删码中的任意一列,或者仅存储数据元素,或者仅存储校验元素,不会存在一列上即有数据元素又有校验元素的情况。存储阵列中,全部存储数据元素的部分称为数据阵列部分,而全部存储校验元素的部分称为校验阵列部分。如图1所示,符号di表示第i个数据元素,所有数据元素序号在数据阵列部分中从1开始以行优先进行排列;符号cj表示第j个校验元素,而所有校验元素序号在校验阵列部分中从1开始以列优先进行排列。其中,i和j为正整数,且1≤i≤m·n,1≤j≤m·k。

水平阵列纠删码与其校验矩阵的对应关系:本发明所述的校验矩阵H可表示为标准形式:H=[P|Ir],Ir为r阶的单位矩阵,r为编码中校验元素的个数。矩阵P的每一个列向量对应水平阵列纠删码的一个数据元素,而单位矩阵Ir的每一个列向量对应一个校验元素。通常,在阵列式存储系统中,一列即对应一个存储节点,当有某个节点失效时即意味着该节点对应的列上的元素全部失效或变为未知状态。

例如,假设一个尺寸为3*4的存储阵列,其中的前3列用于原始数据存储,最后1列存储计算产生的校验数据,如图2所示。设三个校验元和一个数据元的校验关系为如下方程组(1):

则该水平阵列纠删码的校验矩阵H如下所示:

该例中,校验矩阵H显然也可以划分为P和I两个子矩阵,其中的I为三阶单位矩阵I3,P为H矩阵去除I3后的子矩阵,如图3所示出本校验矩阵各列与水平阵列纠删码元素的对应关系。

实施例一

要求构造一个容错能力f=1的水平阵列纠删码,且水平阵列纠删码的条块尺寸m为2。在此条件下构造校验矩阵的步骤如下:

S1:将1个t阶循环矩阵的基本列I排成一列,构成的矩阵记作T1;其中t=1*(2-1)+1=2;2阶基本循环矩阵有2个不同的基本列,分别为I,I1,其中I为2阶单位矩阵;因此将1个2阶单位矩阵排成一列而形成矩阵T1:T1=(I)

S2:将2阶循环矩阵中除I外的另外1个相异基本列I1,以行优先的顺序组合成一个矩阵,记作T2;矩阵T2行上有(2-1)个子矩阵,列上包含1个子矩阵,如下所示:T2=I1

S3:将T1、T2两个矩阵在行上进行拼接,得到矩阵P如下:

P=(T1|T2)=(I|I1)

S4:将1*2阶的单位矩阵I2,与矩阵P在行上进行拼接组合构成如下所示的新矩阵H,即是阵列纠删码的校验矩阵:

至此,校验矩阵H被确定,而相应的阵列纠删码也可被确定下来:所述水平阵列纠删码的校验矩阵H的子矩阵P的每一个列向量对应水平阵列纠删码的一个数据元素,而单位矩阵Ir的每一个列向量对应一个校验元素;所述水平阵列纠删码的校验矩阵H每一行代表一个校验方程,即该行中“1”相对应水平阵列纠删码的码元二进制异或和为0。

本校验矩阵H适用在2行3列的阵列式存储系统中。根据水平阵列纠删码的数据元素、校验元素与其校验矩阵中各列的关系,可得出在该阵列码体系下,各校验元素和数据元素的线性关系线性方程组(2)所示:

该水平阵列纠删码的元素阵列结构如下:

实施例二

要求构造一个容错能力f=2的阵列纠删码,且条块尺寸m也为2。在此条件下构造校验矩阵的步骤如下:

S1:将2个t阶循环矩阵的基本列I排成一列,构成的矩阵记作T1;其中t=2*(2-1)+1=3;3阶基本循环矩阵有3个不同的基本列,分别为I,I1,I2,其中I为3阶单位矩阵;因此将2个3阶单位矩阵排成一列而形成矩阵T1,如下所示:

S2:将3阶循环矩阵中除I外的另外2个相异基本列I1,I2,以行优先的顺序组合成一个矩阵,记作T2;矩阵T2行上有(2-1)个子矩阵,列上包含2个子矩阵,如下所示:

S3:将T1、T2两个矩阵在行上进行拼接,得到矩阵P如下:

S4:将2*3阶的单位矩阵Ir,与矩阵P在行上进行拼接组合构成如>

显然,该校验矩阵H确定的水平阵列纠删码适用于2行6列的阵列式存储系统中,在这样的存储阵列中有3列用于存储数据元素而另外3列存储校验元素。根据水平阵列纠删码的数据元素、校验元素与其校验矩阵中各列的关系,可得出在该阵列码体系下,各校验元素和数据元素的线性关系线性方程组(3)所示:

该水平阵列纠删码的元素阵列结构如下:

实施例三

要求构造一个容错能力f=3的阵列纠删码,且条块尺寸m也为3。在此条件下构造校验矩阵的步骤如下:

S1:将3个t阶循环矩阵的基本列I排成一列,构成的矩阵记作T1;其中t=3*(3-1)+1=7;在此例中采用t=7,7阶基本循环矩阵有7个不同的基本列,分别为I,I1,…,I6,其中I为7阶单位矩阵;因此将3个7阶单位矩阵排成一列而形成矩阵T1,如下所示:

S2:将7阶循环矩阵中除I外的另外6个相异基本列I1,I2,……,I6,以行优先的顺序组合成一个矩阵,记作T2;矩阵T2行上有(3-1)个子矩阵,列上包含3个子矩阵,如下所示:

S3:将T1、T2两个矩阵在行上进行拼接,得到矩阵P如下:

S4:将3*7阶的单位矩阵I21,与矩阵P在行上进行拼接组合构成如下所示的新矩阵H,即是阵列纠删码的校验矩阵:

分析该校验矩阵,其中P矩阵有3列,因此存储阵列有3行,即存储阵列的条块尺寸为3;循环矩阵为7阶,因此可以确定存储阵列的数据阵列部分有7列;校验矩阵中的I矩阵为21阶的单位矩阵,这对应了21个校验元素,即存储阵列的校验阵列部分也有7列。此外,在该校验矩阵确定时,水平阵列纠删码中各元素之间的线性关系也就被确定了,如线性方程组(4)所示:

该水平阵列纠删码的元素阵列结构如下:

以上结合对本发明进行了示例性描述,显然本发明具体实现并不受上述方式的限制,只要采用了本发明的方法构思和技术方案进行的各种非实质性的改进,或未经改进将本发明的构思和技术方案直接应用于其它场合的,均在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号