阵列数据保护方法及系统的制作方法

xiaoxiao2020-10-23  16

阵列数据保护方法及系统的制作方法
【技术领域】
[0001] 本发明涉及数据存储领域,特别是涉及阵列数据保护方法及系统。
【背景技术】
[0002] 传统的存储系统采用RAID(RedundantArrayofIndependentDisks,独立硬盘兀 余阵列)技术,通过镜像、校验和条带化等手段,同时使用多个磁盘,来提高存储系统的性 能和可靠性。
[000引在CPU(CentralProcessingUnit,中央处理器)运算速度大幅度提高,存储性能 不受影响的情况下,运算资源的成本相对于数据丢失的风险变得可W接受。尽管RAID6技 术能允许系统同时两块磁盘失效,但在磁盘数量不断增加的情况下,两个校验块的可靠性 会大打折扣,且其建议磁盘的数量是有限制的,形成了存储系统的扩展瓶颈。

【发明内容】

[0004] 针对存储系统可靠性不高的问题,本发明提供了一种可任意选择校验块数量来保 护数据,提高存储系统可靠性的阵列数据保护方法及系统。
[0005] 为达到技术目的,本发明提供一种阵列数据保护方法,包括W下步骤:
[0006] 生成原数据矩阵,所述原数据矩阵由N个数据块向量构成,所述N为自然数;
[0007] 生成运算矩阵,所述运算矩阵是由N行N列的单位矩阵和M行N列的校验矩阵构 成,所述M为自然数;
[0008] 将所述运算矩阵与所述原数据矩阵进行乘积运算,得到最终数据矩阵,并将所述 最终数据矩阵的数据行对应写入N+M个不同的磁盘中;
[0009] 当有m个磁盘失效时,将所述运算矩阵中失效磁盘对应的数据行删除,得到恢复 矩阵,所述m为自然数且小于等于M;
[0010] 删除所述最终数据矩阵中失效磁盘对应的数据行,得到保留矩阵;
[0011] 将所述恢复矩阵的逆矩阵与所述保留矩阵进行乘积运算,计算得到新的原数据矩 阵,恢复所述失效磁盘对应的原始数据。
[0012] 作为一种可实施方式,在所述生成原数据矩阵之前,包括如下步骤:
[0013] 根据需要设定数据块数量N和校验块数量M;
[0014] 所述数据块数量N为小于等于255的自然数;
[0015] 所述校验块数量M为小于等于128的自然数。
[0016] 作为一种可实施方式,在所述根据需要设定数据块数量N和校验块数量M之后,还 包括如下步骤:
[0017] 将需要保存的数据根据所述数据块数量N划分成大小相等的数据块,数据块不足 的用零数据补充。
[0018] 作为一种可实施方式,所述校验矩阵由加罗瓦域中的生成元及生成元的幕组成。
[0019] 作为一种可实施方式,将所述恢复矩阵的逆矩阵与所述保留矩阵进行乘积运算, 计算得到新的原数据矩阵,恢复所述失效磁盘对应的原始数据,包括如下步骤:
[0020] 将所述恢复矩阵的逆矩阵与所述保留矩阵进行乘积运算,计算得到新的原数据矩 阵;
[0021] 将所述校验矩阵与所述新的原数据矩阵进行乘积运算,计算得到校验数据矩阵;
[0022] 由所述新的原数据矩阵和所述校验数据矩阵生成新的最终数据矩阵;
[0023] 将所述失效磁盘对应的所述新的最终数据矩阵中的数据行写入新的磁盘中,恢复 所述失效磁盘对应的数据。
[0024] 作为一种可实施方式,还包括W下步骤:
[0025]当原数据矩阵中原始数据更新为新数据时,读取保存在磁盘中的所述原始数据及 所述最终数据矩阵中所述原始数据对应列的校验数据;
[0026] 计算所述原始数据和所述新数据之间的差异A;
[0027] 根据公式计算新的校验数据,所述公式为<4 ,其中,Cd为所述原 始数据对应列的校验数据,C'd为所述新数据对应列的新的校验数据,gy为所述校验数据 对应的生成元;
[0028] 所述X为所述校验矩阵的行数,所述i为所述新数据在所述原数据矩阵中对应的 行数,所述j为所述新数据在所述原数据矩阵中对应的列数;
[0029] 将所述新数据和所述新的校验数据写入对应的磁盘中。
[0030] 本发明还提供一种阵列数据保护系统,包括原数据矩阵模块,运算矩阵模块,最终 数据矩阵模块,恢复矩阵模块,保留矩阵模块和数据恢复模块,其中:
[0031] 所述原数据矩阵模块,用于生成原数据矩阵,所述原数据矩阵由N个数据块向量 构成,所述N为自然数;
[0032] 所述运算矩阵模块,用于生成运算矩阵,所述运算矩阵是由N行N列的单位矩阵和 M行N列的校验矩阵构成,所述M为自然数;
[0033] 所述最终数据矩阵模块,用于将所述运算矩阵与所述原数据矩阵进行乘积运算, 得到最终数据矩阵,并将所述最终数据矩阵的数据行对应写入N+M个不同的磁盘中;
[0034] 所述恢复矩阵模块,用于当有m个磁盘失效时,将所述运算矩阵中失效磁盘对应 的数据行删除,得到恢复矩阵,所述m为自然数且小于等于M;
[0035] 所述保留矩阵模块,用于删除所述最终数据矩阵中失效磁盘对应的数据行,得到 保留矩阵;
[0036] 所述数据恢复模块,用于将所述恢复矩阵的逆矩阵与所述保留矩阵进行乘积运 算,计算得到新的原数据矩阵,恢复所述失效磁盘对应的原始数据。
[0037] 作为一种可实施方式,所述原数据矩阵模块包括设定单元和划分单元;
[0038] 所述设定单元,用于根据需要设定数据块数量N和校验块数量M ;所述数据块数量 N为小于等于255的自然数;所述校验块数量M为小于等于128的自然数;
[0039] 所述划分单元,用于将需要保存的数据根据数据块数量N划分成大小相等的数据 块,数据块不足的用零数据补充。
[0040] 作为一种可实施方式,所述校验矩阵由加罗瓦域中的生成元及生成元的幕组成。
[0041] 作为一种可实施方式,所述数据恢复模块包括第一计算单元,第二计算单元,生成 单元和恢复单元;
[0042] 所述第一计算单元,用于将所述恢复矩阵的逆矩阵与所述保留矩阵进行乘积运 算,计算得到新的原数据矩阵;
[0043] 所述第二计算单元,用于将所述校验矩阵与所述新的原数据矩阵进行乘积运算, 计算得到校验数据矩阵;
[0044] 所述生成单元,用于由所述新的原数据矩阵和所述校验数据矩阵生成新的最终数 据矩阵;
[0045] 所述恢复单元,用于将所述失效磁盘对应的所述新的最终数据矩阵中的数据行写 入新的磁盘中,恢复所述失效磁盘对应的数据。
[0046] 作为一种可实施方式,还包括数据更新模块;
[0047] 所述数据更新模块包括读取单元,第H计算单元,第四计算单元和更新单元;
[0048] 所述读取单元,用于当原数据矩阵中原始数据更新为新数据时,读取保存在磁盘 中的所述原始数据及所述最终数据矩阵中所述原始数据对应列的校验数据;
[0049] 所述第H计算单元,用于计算所述原始数据和所述新数据之间的差异A ;
[0050] 所述第四计算单元,用于根据公式计算新的校验数据,所述公式为 4 +客i*A,其中,Cd为所述原始数据对应列的校验数据,C'd为所述新数据对应 列的新的校验数据,gy为所述校验数据对应的生成元;
[0051] 所述X为所述校验矩阵的行数,所述i为所述新数据在所述原数据矩阵中对应的 行数,所述j为所述新数据在所述原数据矩阵中对应的列数;
[0052] 所述更新单元,用于将所述新数据和所述新的校验数据写入对应的磁盘中。
[0053] 本发明的有益效果包括:
[0054] 本发明的阵列数据保护方法及系统,最多可允许任意M个磁盘失效,突破了传统 存储系统最多只能允许两个磁盘同时失效的限制,提高了存储系统的可靠性;由于允许的 校验块数量M可W提高,需要保存的数据可W分散存储在更多的磁盘上,从而提高了存储 系统的吞吐量;校验块数量在存储系统搭建初期根据实际需要设定,而存储系统的利用率 由N/(N+M)的比率决定,因此可W通过合理的选择数据块数量N和校验块数量M达到存储 系统利用率的最优化。
【附图说明】
[0055] 图1为本发明的阵列数据保护方法的一实施例的流程示意图;
[0056]图2为本发明的阵列数据保护方法的一实施例的数据恢复的流程示意图;
[0057] 图3为本发明的阵列数据保护方法的一实施例的数据更新的流程示意图;
[0058]图4为本发明的阵列数据保护系统的一实施例的结构示意图;
[0059] 图5为本发明的阵列数据保护系统的一实施例的数据更新模块的结构示意图。
【具体实施方式】
[0060]为了使本发明的目的、技术方案及优点更加清楚明白,W下结合附图及实施例对 本发明阵列数据保护方法及系统进行进一步详细说明。应当理解,此处所描述的具体实施 例仅用w解释本发明,并不用于限定本发明。
[0061]传统的存储系统采用RAID (Redundant Array of Independent Disks,独立硬盘兀 余阵列)技术来 提高其性能和可靠性。常见的RAID模式包括RAIDO, RAIDl,RAIDS和RAID6, 它们之间的优缺点如表1所示:
[0062] 表1
[0063]
[0064]
[0065] 本发明的阵列数据保护方法及系统在RAID6技术的基础上,突破了系统同时只能 允许2个磁盘失效的限制,在系统搭建初期根据实际情况选择数据块和校验块的数量,满 足了系统对数据安全的需要。
[0066] 本发明的阵列数据保护方法及系统在选择数据块和校验块的数量对数据进行保 护时,运用到W下数学基础:
[0067] 校验块的产生通过在加罗瓦域GF(28)上的运算实现。加罗瓦域GF(28)是一种有 限域,只有256个元素,加罗瓦域GF(28)中的元素用两个16进制数表示,并写在W中,例 如{00},{8巧)。其有如下属性:
[006引 1.加法运算(+),实际上是异或(X0R)运算,所W加法等同于减法;A+B=A-B。
[006引 2.由1不难得出;加法恒等元是{00},而且有A+A=A-A= {00},A+{00} =A-{00} =A。
[0070] 3.乘法运算(*)由下面位变换得出;GF(28)中的元素A可W看成是一个系数为一 位二进债J数的多项式A= 3片7+36义6+35义5+34义4+33义3+32义2+31义+3〇,同样B=byX^+bexS+bsxS+bAxA+b3X3+b2X2+V+b。,它们的积C为多项式A和B的乘积除W生成多项式,所得的余数多项式。 GF(28)的生成多项式是一个8次不可约多项式,该样的多项式有16个,每个定义了不同的 GF(28)乘法结果。我们后面要用到的生成多项式为x8+x4+x3+x2+l。
[ocm] 4.乘法恒等元是{01},A*un} =Un}*A=A。{〇〇}乘W任何元素结果为{〇〇}。[0072] 5.满足如下关系:
[0073]
[0074]
[007引6.对任意A声{00},存在元素B使得A地二{(n}。B称为A的乘法逆元素,记为A^,{01} = {01厂1,{00}没有乘法逆元素。
[007引 7.除法定义为A/B=A地-1,显然B不能为{00},如果A地=C且B不为{00},可W得到C/B=A;如果A不为{00},A/A=A*A-1 = {(n}。
[0077] 8. -个元素自乘n次记为A。。且有A256 = {(n}*A=A;A。=A?°d255 ;
[0078] 9.有一类元素g,其乘方结果在0到254之间不重复,该类元素称为生成元。该样 的元素有128个,决定了本发明最多只能有128个校验块。对于选定的g,任何不等于{00} 的元素A都可W写为gx,或者说X=log/。于是乘法可W该样实现:
[0079]
[0080] 实施例一
[0081] 参见图1所示,本发明实施例提供一种阵列数据保护方法,包括W下步骤:
[0082] S100,生成原数据矩阵D,所述原数据矩阵D由N个数据块向量构成,所述N为自然 数;
[0083] S200,生成运算矩阵A,所述运算矩阵是由N行N列的单位矩阵E和M行N列的校 验矩阵G构成,所述M为自然数;
[0084] S300,将所述运算矩阵A与所述原数据矩阵D进行乘积运算,得到最终数据矩阵H, 并将所述最终数据矩阵H的数据行对应写入N+M个不同的磁盘中;
[0085] S400,当有m(m为自然数且小于等于M)个磁盘失效时,将所述运算矩阵中A失效 磁盘对应的数据行删除,得到恢复矩阵A';
[0086] S500,删除所述最终数据矩阵H中失效磁盘对应的数据行,得到保留矩阵H';
[0087] S600,将所述恢复矩阵A'的逆矩阵与所述保留矩阵H'进行乘积运算,计算得到 新的原数据矩阵D',恢复所述失效磁盘对应的原始数据。
[0088] 本发明的阵列数据保护方法,首先根据要保存的数据生成原数据矩阵D,再生成 N+M行N列的运算矩阵A,用于对原数据矩阵D进行运算,该运算矩阵A由N行N列的单位 矩阵E和M行N列的校验矩阵G构成,其中单位矩阵E为对角线上的数据为{01},其余数 据都为{〇〇}的矩阵;上述原数据矩阵D是由N个数据块向量构成的列矩阵,数据块向量的 长度根据数据的大小和数据块的数量N决定,设数据块向量的长度为以则原数据矩阵D为 N行L列的矩阵;运算矩阵A对原数据矩阵D进行矩阵的乘积运算,得到最终数据矩阵H,最 终数据矩阵H可看成由原数据矩阵D和原始校验数据矩阵C构成,原始校验数据矩阵C为 校验矩阵G与原数据矩阵D的乘积。由矩阵的性质可知,最终数据矩阵H为N+M行L列矩 阵,将最终数据矩阵H的每一行数据对应的输入到N+M个不同的磁盘中,每个磁盘存放最终 数据矩阵H的一行数据,每一行有L个数据;当有m(m为自然数且小于等于M)个磁盘被损 坏失效时,将失效磁盘对应的运算矩阵A中的m行数据删除,得到N+M-m行N列的恢复矩阵 A',将最终数据矩阵H中没有失效磁盘对应的数据行依次保留下来,得到N+M-m行L列的 保留矩阵H',将恢复矩阵A'的逆矩阵对保留矩阵H'进行矩阵乘积运算,得到N行L列新 的原数据矩阵D',由计算得到的新的原数据矩阵可知,新的原数据矩阵与原数据矩阵是相 同的,将失效磁盘对应的新的原数据矩阵D'中的数据行写入新的磁盘中,由此可W恢复失 效磁盘对应的原始数据。该方法将失效磁盘对应的的原始数据恢复出来,从而达到了保护 数据的目的,且其最多可W同时允许任意M个磁盘失效,克服了传统技术只能允许两个磁 盘同时失效的限制,提高了存储系统的可靠性;本发明的阵列数据保护方法可任意选择校 验块数量M,相对传统技术而言,允许的校验块数量有所提高,数据可W分散在更多的磁盘 上,从而提高了存储系统的吞吐量;存储系统的利用率是由N/(N+M)的比率决定的,因此可 W通过合理的选择数据块数量N和校验块数量M达到存储系统利用率的最优化。
[0089] 作为一种可实施方式,在所述生成原数据矩阵之前,包括如下步骤:
[0090] S010,根据需要设定数据块数量N和校验块数量M;
[0091] 数据块数量N为小于等于255的自然数;
[0092] 校验块数量M为小于等于128的自然数。
[0093] 传统的存储系统中,为了提高系统性能,当有大量磁盘条带化时,两个校验块的技 术的数据损失风险很高,存储系统需要更多的校验块来满足数据安全的需要,本发明的阵 列数据保护方法在存储系统搭建初期根据实际情况选择数据块的数量N和校验块的数量 M,突破了RAID6技术只有两个校验块的限制,校验块数量可W是不大于128的任意非负整 数,数据块的数量可W是不大于255的任意非负整数,数据块可W存放在不同的磁盘上,实 现多个磁盘同时工作,极大地降低了数据丢失的风险,且提高了存储系统的吞吐量;合理的 选择数据块和校验块,还能提高存储系统的利用率。
[0094] 作为一种可实施方式,在所述根据需要设定数据块数量N和校验块数量M之后,还 包括如下步骤:
[0095] S020,将需要保存的数据根据数据块数量N划分成大小相等的数据块,数据块不 足的用零数据补充。
[0096] 数据通过条带化分成N个数据块,不足的用零数据补足。该样,无论有多少数据, 都能将该些数据划分成N个长度为L的组,其中任意一组为一个数据块向量,共有N个数据 块向量,记为;D。,〇1,〇2,...,咕_1,方便后续原数据矩阵的生成。该些数据块存放在不同的 磁盘上,实现多个磁盘同时工作,提高了存储系统的吞吐量和利用率。
[0097] 作为一种可实施方式,所述校验矩阵G由加罗瓦域中的生成元及生成元的幕组 成。
[0098] 校验块是通过在加罗瓦域上的运算实现的,假设加罗瓦域中所有的生成元记为 g〇,gl,g2,…gl27,则校验矩阵G可写为:
[0099]
[0100] 其中,加罗瓦域中生成元及生成元的幕如表2所示:
[0101] 表 2
[0102]
[0103] 作为一种可实施方式,参见图2所示,将所述恢复矩阵A'的逆矩阵与所述保留矩 阵H'进行乘积运算,计算得到新的原数据矩阵D',恢复所述失效磁盘对应的原始数据, 包括如下步骤:
[0104] S610,将所述恢复矩阵A'的逆矩阵与所述保留矩阵H'进行乘积运算,计算得到 新的原数据矩阵D';
[0105] S620,将所述校验矩阵G与所述新的原数据矩阵D'进行乘积运算,计算得到校验 数据矩阵C';
[0106] S630,由所述新的原数据矩阵D'和所述校验数据矩阵C'生成新的最终数据矩 阵H'';
[0107] S640,将所述失效磁盘对应的所述新的最终数据矩阵H''中的数据行写入新的 磁盘中,恢复所述失效磁盘对应的数据。
[010引该实施例是完成数据恢复S600的【具体实施方式】,根据上述的校验矩阵G,将校验 矩阵G乘W计算得到的新的原数据矩阵D',计算校验数据,进而得到校验数据矩阵C',恢 复失效磁盘对应的校验数据矩阵C'中的校验数据行,由新的原数据矩阵D'和新的校验 数据矩阵C'得到新的最终数据矩阵H'',将失效磁盘对应的新的最终数据矩阵H''中 的数据行写入新的磁盘中,恢复失效磁盘对应的数据。其完成失效磁盘对应的原始数据和 校验数据的恢复,实现了保护数据的目的,可W将损坏磁盘中的数据行根据矩阵的相关性 质恢复出来,不会因为任意m个磁盘失效而引起数据的丢失,提高存储系统的可靠性。
[0109] 作为一种可实施方式,参见图3所示,还包括步骤S700 :
[0110]S710,当原数据矩阵D中原始数据du更新为新数据du'时,读取保存在磁盘中的 所述原始数据du及所述最终数据矩阵H中所述原始数据dy对应列的校验数据Cd;
[0111] S720,计算原始数据du和新数据di/之间的差异A ;
[0112] S730,根据公式计算新的校验数据C'd,所述公式为容^ *A,其中,Cd 为原始数据对应列的校验数据,C'd为新数据对应列的新的校验数据,gy为校验数据对应 的生成元;所述X为所述校验矩阵的行数,所述i为所述新数据在所述原数据矩阵中对应的 行数,所述j为所述新数据在所述原数据矩阵中对应的列数。
[0113]S740,将所述新数据du'和所述新的校验数据C'd写入对应的磁盘中。
[0114] 该实施例是完成数据更新S700的具体步骤,当原数据矩阵D中有数据被更新时, 原始数据dy被更新为新数据dy',其中i= 0, 1,2,. . .,N-1,j= 0, 1,2,. . .,1^-1 ;先读 取保存在磁盘中的原数据矩阵D的原始数据du及最终数据矩阵中原始数据对应列的校验 数据c〇,j,Ci,j,. . .,计算新数据中/和原始数据du之间的差异A,A=du+di/ ; 根据公式為'=Cg'+技*A计算新的校验数据c〇',j,Ci' M-ij,其中x= 0,1,2,...,1-1;最后将新数据(1。.'和计算得到的新的校验数据(3。'^,(3/^,...,(3'?-^ 保存到对应的磁盘中,完成数据的更新。该方法将更新的新数据及其对应的校验数据进行 实时更新,保证数据的可靠传输,从而实现保护数据的目的,提高存储系统的可靠性。
[0115] W下结合一具体实施例对本发明的阵列数据保护方法进行详细解释说明。值得说 明的是,下述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因 此而理解为对本发明范围的限制。
[0116]假设需要保存的数据为0x00, 0x01,...,OxFF该样256个字节,在系统搭建初期, 根据实际需要设定数据块数量N= 16,校验块数量M= 4。显然,一共需要N+M= 20个磁 盘进行保存,将该20个磁盘分别编号为0, 1,2…,19。
[0117] 首先,生成运算矩阵A,表示如下(注意,单位矩阵中的{00}数据元素省略不写): [011引
[0119] 要保护的数据分为16个数据块,而需要保护数据为256个字节,因此设置每个数 据块的长度L= 16,生成原数据矩阵D,该原数据矩阵D为方阵,该里不影响一般性:
[0120]
[0121] 运算矩阵A与原数据矩阵D进行矩阵乘积运算,得到最终数据矩阵H,表示如下:
[0122]
[0123] 上述最终数据矩阵H可看成由原数据矩阵D和原始校验数据矩阵C构成,为M+N 行L列的数据矩阵,其中原始校验数据矩阵C为校验矩阵G与原数据矩阵D的乘积。将最 终数据矩阵H的数据行对应的保存到20个磁盘中,每一行数据对应一个磁盘,如该实施例 所示,第一行行数据保存到编号为0的磁盘中,第二行行数据保存到编号为1的磁盘中,依 次类推,将第二十行行数据保存到编号为19的磁盘中。若其中任意m= 4个磁盘被损坏 时,则损坏的磁盘失效,失效磁盘中保存的数据将丢失,则将运算矩阵A中失效磁盘对应的 数据行删除(假设4个失效磁盘的编号为0,15,16,19),该里不具有唯一性,也可W是其他 的任意4个磁盘或小于4个磁盘,则由运算矩阵A删除失效磁盘对应数据行后
[0124] 得到的恢复矩阵A'如下所示:
[0125]
[0126] 将最终数据矩阵H中失效磁盘对应的数据行删除,没有失效磁盘对应的数据行依 次保留,即将最终数据矩阵H的2, 3,4, 5,6, 7,8,9,10,11,12,13,14,17,18行的数据行保留 下来,得到保留矩阵H',如下所示:
[0127]
[012引计算恢复矩阵的逆矩阵(A'ri,如下所示:
[0129]
[0130] 计算恢复矩阵逆矩阵(A' )4与保留矩阵H'的乘积,得到新的原数据矩阵D', 表不如下:
[0131]
[0132] 由计算得到的新的原数据矩阵D'可知,新的原数据矩阵D'与原数据矩阵D是相 同的,由此可见,采用本发明的阵列数据保护方法,可W将失效磁盘丢失的原始数据恢复出 来,不会因为磁盘损坏而丢失数据,保护了数据,提高了存储系统的可靠性。
[0133] 根据前述生成的校验矩阵G将损失的校验数据进行恢复,即校验矩阵G与新的原 数据矩阵D'进行乘积运算,得到校验数据矩阵C',表示如下:
[0134]
[0135]由上述校验数据矩阵C'可知,其与原始校验数据矩阵C是相同的,可W将失效磁 盘对应的校验数据矩阵C'中的数据行写入新的磁盘中,恢复失效磁盘对应的校验数据矩 阵中的数据,提高原始数据传输的可靠性。由新的原数据矩阵D'与恢复的校验数据矩阵 C'组成新的最终数据矩阵H'',表示如下:
[0136]
[0137] 将新的最终数据矩阵H''中恢复的数据行保存到新的磁盘中。由此完成每个丢 失的原始数据和校验数据的恢复,达到保护数据的目的,提高存储系统的可靠性。
[0138]当原数据矩阵D中有原始数据dy被更新为新数据dy'时,进行数据的更新步 骤。若原数据矩阵D中的原始数据韦,13= {7D},需更新为新数据韦,13' = {8A},则读取 保存在磁盘中的原始数据du3W及原始数据du3在最终数据矩阵H中对应列的校验数据 。0,13,〇1,。,〇2,13,〇3,。,分别为{啡,{14},师},{卿,计算原始数据(17,。和新数据(17,。'之间 的差异Ad,,。,Adu3 =d7,i3+d7,。' =I7D} + {8A} = {F7},则根据公式4=£?讀+接李么计 算新的校验数据:

[0143] 将新的数据du3'和计算得到的新的校验数据C。'J3,c/ ,13,C2'J3,C3' 写 入对应的磁盘中,将原始数据和校验数据进行更新,更新后的新的数据和新的校验数据能 够保证数据的可靠传输,达到保护数据的目的,提高存储系统的可靠性。
[0144] 实施例二
[0145] 基于同一发明构思,本发明还提供了一种阵列数据保护系统,由于此系统解决问 题的原理与前述一种阵列数据保护方法相似,因此该系统的实施可W参见前述方法的实 施,重复之处不再费述。
[0146] 本发明实施例提供的阵列数据保护系统,参见图4所示,包括原数据矩阵模块 100,运算矩阵模块200,最终数据矩阵模块300,恢复矩阵模块400,保留矩阵模块500和数 据恢复模块600。其中:
[0147] 原数据矩阵模块100,用于生成原数据矩阵D,所述原数据矩阵由N个数据块向量 构成,所述N为自然数;
[0148] 运算矩阵模块200,用于生成运算矩阵A,所述运算矩阵是由N行N列的单位矩阵 E和M行N列的校验矩阵G构成,所述M为自然数;
[0149] 最终数据矩阵模块300,用于将所述运算矩阵A与所述原数据矩阵D进行乘积运 算,得到最终数据矩阵H,并将所述最终数据矩阵H的数据行对应写入N+M个不同的磁盘 中;
[0150] 恢复矩阵模块400,用于当有m个磁盘失效时,将所述运算矩阵A中失效磁盘对应 的数据行删除,得到恢复矩阵A',所述m为自然数且小于等于M;
[0151] 保留矩阵模块500,用于删除所述最终数据矩阵H中失效磁盘对应的数据行,得到 保留矩阵H';
[0152] 数据恢复模块600,用于将所述恢复矩阵A'的逆矩阵与所述保留矩阵H'进行乘 积运算,计算得到新的原数据矩阵D',恢复所述失效磁盘对应的原始数据。
[0153] 该阵列数据保护系统可W将因磁盘失效而丢失的原始数据恢复出来,从而达到保 护数据的目的,该系统最多可W同时允许任意M个磁盘失效,克服了传统技术只能允许两 个磁盘同时失效的限制,提高了存储系统的可靠性;且该阵列数据保护系统可任意选择校 验块数量M,相对传统技术而言,允许的校验块数量有所提高,数据可W分散在更多的磁盘 上,从而提高了存储系统的吞吐量;存储系统的利用率是由N/(N+M)的比率决定的,因此可 W通过合理的选择数据块数量N和校验块数量M达到存储系统利用率的最优化。
[0154] 作为一种可实施方式,所述原数据矩阵模块100包括设定单元110和划分单元。其 中:
[0155] 设定单元110,用于根据需要设定数据块数量N和校验块数量M。所述数据块数量 N为小于等于255的自然数。所述校验块数量M为小于等于128的自然数。
[0156 ] 划分单元120,用于将需要保存的数据根据数据块数量N划分成大小相等的数据 块,数据块不足的用零数据补充。
[0157] 作为一种可实施方式,所述校验矩阵G由加罗瓦域中的生成元及生成元的幕组 成。
[015引作为一种可实施方式,所述数据恢复模块600包括第一计算单元610,第二计算单 元620,生成单元630和恢复单元640。其中:
[0159] 第一计算单元610,用于将所述恢复矩阵的逆矩阵与所述保留矩阵进行乘积运算, 计算得到新的原数据矩阵;
[0160] 第二计算单元620,用于将所述校验矩阵G与所述新的原数据矩阵D'进行乘积运 算,计算得到新的校验数据矩阵C';
[0161] 生成单元630,用于由所述新的原数据矩阵D'和所述校验数据矩阵C'生成新的 最终数据矩阵H'';
[0162] 恢复单元640,用于将所述失效磁盘对应的所述新的最终数据矩阵H''中的数 据行写入新的磁盘中,恢复所述失效磁盘对应的数据。
[0163] 作为一种可实施方式,参见图5所示,还包括数据更新模块700,数据更新模块700 包括读取单元710,第H计算单元720,第四计算单元730和更新单元740。其中:
[0164] 读取单元710,用于当原数据矩阵D中原始数据du更新为新数据du'时,读取保 存在磁盘中的原始数据dy及所述最终数据矩阵中所述原始数据du对应列的校验数据C".; [016引第H计算单元720,用于计算原始数据du和新数据du'之间的差异A;
[0166] 第四计算单元730,用于根据公式计算新的校验数据,所述公式为 4 =Cg. ,其中,Cd为所述原始数据对应列的校验数据,C'd为所述新数据对应 列的新的校验数据,gy为所述校验数据对应的生成元;所述X为所述校验矩阵的行数,所述i为所述新数据在所述原数据矩阵中对应的行数,所述j为所述新数据在所述原数据矩阵 中对应的列数。
[0167] 更新单元740,用于将所述新数据dy'和所述新的校验数据C'd写入对应的磁 盘中。
[016引 W上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并 不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员 来说,在不脱离本发明构思的前提下,还可W做出若干变形和改进,该些都属于本发明的保 护范围。因此,本发明专利的保护范围应W所附权利要求为准。
【主权项】
1. 一种阵列数据保护方法,其特征在于,包括以下步骤: 生成原数据矩阵,所述原数据矩阵由N个数据块向量构成,所述N为自然数; 生成运算矩阵,所述运算矩阵是由N行N列的单位矩阵和M行N列的校验矩阵构成,所 述M为自然数; 将所述运算矩阵与所述原数据矩阵进行乘积运算,得到最终数据矩阵,并将所述最终 数据矩阵的数据行对应写入N+M个不同的磁盘中; 当有m个磁盘失效时,将所述运算矩阵中失效磁盘对应的数据行删除,得到恢复矩阵, 所述m为自然数且小于等于M ; 删除所述最终数据矩阵中失效磁盘对应的数据行,得到保留矩阵; 将所述恢复矩阵的逆矩阵与所述保留矩阵进行乘积运算,计算得到新的原数据矩阵, 恢复所述失效磁盘对应的原始数据。2. 根据权利要求1所述的阵列数据保护方法,其特征在于,在所述生成原数据矩阵之 前,包括如下步骤: 根据需要设定数据块数量N和校验块数量M ; 所述数据块数量N为小于等于255的自然数; 所述校验块数量M为小于等于128的自然数。3. 根据权利要求2所述的阵列数据保护方法,其特征在于,在所述根据需要设定数据 块数量N和校验块数量M之后,还包括如下步骤: 将需要保存的数据根据所述数据块数量N划分成大小相等的数据块,数据块不足的用 零数据补充。4. 根据权利要求1所述的阵列数据保护方法,其特征在于,所述校验矩阵由加罗瓦域 中的生成元及生成元的幂组成。5. 根据权利要求1至4任一项所述的阵列数据保护方法,其特征在于,将所述恢复矩阵 的逆矩阵与所述保留矩阵进行乘积运算,计算得到新的原数据矩阵,恢复失效磁盘对应的 原始数据,包括如下步骤: 将所述恢复矩阵的逆矩阵与所述保留矩阵进行乘积运算,计算得到新的原数据矩阵; 将所述校验矩阵与所述新的原数据矩阵进行乘积运算,计算得到校验数据矩阵; 由所述新的原数据矩阵和所述校验数据矩阵生成新的最终数据矩阵; 将所述失效磁盘对应的所述新的最终数据矩阵中的数据行写入新的磁盘中,恢复所述 失效磁盘对应的数据。6. 根据权利要求1所述的阵列数据保护方法,其特征在于,还包括以下步骤: 当原数据矩阵中原始数据更新为新数据时,读取保存在磁盘中的所述原始数据及所述 最终数据矩阵中所述原始数据对应列的校验数据; 计算所述原始数据和所述新数据之间的差异Δ ; 根据公式计算新的校验数据,所述公式为=? ,其中,Cjy.为所述原始数据 对应列的校验数据,c' 为所述新数据对应列的新的校验数据,gx为所述校验数据对应的 生成元; 所述X为所述校验矩阵的行数,所述i为所述新数据在所述原数据矩阵中对应的行数, 所述j为所述新数据在所述原数据矩阵中对应的列数; 将所述新数据和所述新的校验数据写入对应的磁盘中。7. -种阵列数据保护系统,其特征在于,包括原数据矩阵模块,运算矩阵模块,最终数 据矩阵模块,恢复矩阵模块,保留矩阵模块和数据恢复模块,其中: 所述原数据矩阵模块,用于生成原数据矩阵,所述原数据矩阵由N个数据块向量构成, 所述N为自然数; 所述运算矩阵模块,用于生成运算矩阵,所述运算矩阵是由N行N列的单位矩阵和M行 N列的校验矩阵构成,所述M为自然数; 所述最终数据矩阵模块,用于将所述运算矩阵与所述原数据矩阵进行乘积运算,得到 最终数据矩阵,并将所述最终数据矩阵的数据行对应写入N+M个不同的磁盘中; 所述恢复矩阵模块,用于当有m个磁盘失效时,将所述运算矩阵中失效磁盘对应的数 据行删除,得到恢复矩阵,所述m为自然数且小于等于M ; 所述保留矩阵模块,用于删除所述最终数据矩阵中失效磁盘对应的数据行,得到保留 矩阵; 所述数据恢复模块,用于将所述恢复矩阵的逆矩阵与所述保留矩阵进行乘积运算,计 算得到新的原数据矩阵,恢复所述失效磁盘对应的原始数据。8. 根据权利要求7所述的阵列数据保护系统,其特征在于,所述原数据矩阵模块包括 设定单元和划分单元; 所述设定单元,用于根据需要设定数据块数量N和校验块数量M ;所述数据块数量N为 小于等于255的自然数;所述校验块数量M为小于等于128的自然数; 所述划分单元,用于将需要保存的数据根据所述数据块数量N划分成大小相等的数据 块,数据块不足的用零数据补充。9. 根据权利要求7所述的阵列数据保护系统,其特征在于,所述校验矩阵由加罗瓦域 中的生成元及生成元的幂组成。10. 根据权利要求7至9任一项所述的阵列数据保护系统,其特征在于,所述数据恢复 模块包括第一计算单元,第二计算单元,生成单元和恢复单元; 所述第一计算单元,用于将所述恢复矩阵的逆矩阵与所述保留矩阵进行乘积运算,计 算得到新的原数据矩阵; 所述第二计算单元,用于将所述校验矩阵与所述新的原数据矩阵进行乘积运算,计算 得到校验数据矩阵; 所述生成单元,用于由所述新的原数据矩阵和所述校验数据矩阵生成新的最终数据矩 阵; 所述恢复单元,用于将所述失效磁盘对应的所述新的最终数据矩阵中的数据行写入新 的磁盘中,恢复所述失效磁盘对应的数据。11. 根据权利要求7所述的阵列数据保护系统,其特征在于,还包括数据更新模块; 所述数据更新模块包括读取单元,第三计算单元,第四计算单元和更新单元; 所述读取单元,用于当原数据矩阵中原始数据更新为新数据时,读取保存在磁盘中的 所述原始数据及所述最终数据矩阵中所述原始数据对应列的校验数据; 所述第三计算单元,用于计算所述原始数据和所述新数据之间的差异Λ ; 所述第四计算单元,用于根据公式计算新的校验数据,所述公式为=Cx7. +gi *Δ, 其中,Cjy.为所述原始数据对应列的校验数据,c' 为所述新数据对应列的新的校验数据, gx为所述校验数据对应的生成元; 所述X为所述校验矩阵的行数,所述i为所述新数据在所述原数据矩阵中对应的行数, 所述j为所述新数据在所述原数据矩阵中对应的列数; 所述更新单元,用于将所述新数据和所述新的校验数据写入对应的磁盘中。
【专利摘要】本发明提供一种阵列数据保护方法及系统。其中方法包括以下步骤:生成原数据矩阵;生成运算矩阵;将运算矩阵与原数据矩阵进行乘积运算,得到最终数据矩阵,并将最终数据矩阵的数据行对应写入N+M个不同的磁盘中;当有m个磁盘失效时,将运算矩阵中失效磁盘对应的数据行删除,得到恢复矩阵,m为自然数且小于等于M;删除最终数据矩阵中失效磁盘对应的数据行,得到保留矩阵;将恢复矩阵的逆矩阵与保留矩阵进行乘积运算,计算得到新的原数据矩阵,恢复失效磁盘对应的原始数据。其提高了存储系统的可靠性和吞吐量,且可使存储系统的利用率达到最优化。
【IPC分类】G06F3/06, G06F11/07
【公开号】CN104881243
【申请号】CN201410232076
【发明人】陈杰
【申请人】陈杰
【公开日】2015年9月2日
【申请日】2014年5月27日
转载请注明原文地址:https://www.famiwei.com/read-8138829.html

最新回复(0)