一种数据编码方法、系统、设备以及介质技术方案

技术编号:32574159 阅读:14 留言:0更新日期:2022-03-09 17:02
本发明专利技术公开了一种数据编码方法,包括以下步骤:获取预先配置的纠删位数以及数据盘的数量;根据所述纠删位数和所述数据盘的数量生成纠删矩阵,其中纠删矩阵的第一行中前纠删位数的元素的值为1,其余值为0,其余行在所述第一行的基础上将前纠删位数的元素向右依次平移一位得到;将所述纠删矩阵和数据盘中的数据块矩阵相乘以得到检验块;将校验块保存到相应的数据盘。本发明专利技术还公开了一种系统、计算机设备以及可读存储介质。本发明专利技术提出的方案能够对纠删位数可配置,并根据不同的纠删位数配置校验条带的生成方式,不同错误纠错需求下,并不需要经过复杂的解码运算,仅需要调用不同的数据块进行异或即可得到相应的恢复。块进行异或即可得到相应的恢复。块进行异或即可得到相应的恢复。

【技术实现步骤摘要】
一种数据编码方法、系统、设备以及介质


[0001]本专利技术涉及RAID领域,具体涉及一种数据编码方法、系统、设备以及存储介质。

技术介绍

[0002]RAID主要利用数据条带、数据校验和镜像技术来获得较强的性能、更高的可靠性、较好的容错能力和较强的扩展性。根据不同的数据应用需求,可以运用或者组合运用这三种技术的策略和架构,所以按照不同的策略和架构,RAID可以被分为不同的等级:RAID 0,1,5,6,10。
[0003]其中,RAID 0是最早出现的RAID模式,即Data Stripping数据分条技术。RAID 0是组建磁盘阵列中最简单的一种形式,只需要2块以上的硬盘即可,成本低,可以提高整个磁盘的性能和吞吐量。RAID 0没有提供冗余或错误修复能力,但实现成本是最低的。
[0004]RAID 0最简单的实现方式就是把N块同样的硬盘用硬件的形式通过智能磁盘控制器或用操作系统中的磁盘驱动程序以软件的方式串联在一起创建一个大的卷集。在使用中电脑数据依次写入到各块硬盘中,它的最大优点就是可以整倍的提高硬盘的容量。如使用了三块80GB的硬盘组建成RAID 0模式,那么磁盘容量就会是240GB。其速度方面,和单独一块硬盘的速度完全相同。最大的缺点在于任何一块硬盘出现故障,整个系统将会受到破坏,可靠性仅为单独一块硬盘的1/N。
[0005]RAID 1称为磁盘镜像,原理是把一个磁盘的数据镜像到另一个磁盘上,也就是说数据在写入一块磁盘的同时,会在另一块闲置的磁盘上生成镜像文件,在不影响性能情况下最大限度的保证系统的可靠性和可修复性上,只要系统中任何一对镜像盘中至少有一块磁盘可以使用,甚至可以在一半数量的硬盘出现问题时系统都可以正常运行,当一块硬盘失效时,系统会忽略该硬盘,转而使用剩余的镜像盘读写数据,具备很好的磁盘冗余能力。虽然这样对数据来讲绝对安全,但是成本也会明显增加,磁盘利用率为50%,以四块80GB容量的硬盘来讲,可利用的磁盘空间仅为160GB。另外,出现硬盘故障的RAID系统不再可靠,应当及时的更换损坏的硬盘,否则剩余的镜像盘也出现问题,那么整个系统就会崩溃。更换新盘后原有数据会需要很长时间同步镜像,外界对数据的访问不会受到影响,只是这时整个系统的性能有所下降。因此,RAID 1多用在保存关键性的重要数据的场合。
[0006]RAID 5(分布式奇偶校验的独立磁盘结构)。它的奇偶校验码存在于所有磁盘上,其中的p0代表第0带区的奇偶校验值,其它的意思也相同。RAID 5的读出效率很高,写入效率一般,块式的集体访问效率不错。因为奇偶校验码在不同的磁盘上,所以提高了可靠性。但是它对数据传输的并行性解决不好,而且控制器的设计也相当困难。对于RAID 5来说,大部分数据传输只对一块磁盘操作,可进行并行操作。在RAID 5中有“写损失”,即每一次写操作,将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。
[0007]RAID 5只有一个parity stripe,一般命名为P。当进行编码时,设需要编码的数据分为n个stripe,每个命名为d
n
,则其关系表示为:
[0008][0009]RAID 5通过上式的设置,可以通过一个parity p实现上述任意一个数据块(d和p)发生错误时都可以进行纠错。
[0010]RAID 6是带两种分布存储的奇偶校验码独立磁盘结构。它是对RAID 5的扩展,主要是用于要求数据绝对不能出错的场合。由于引入了第二种奇偶校验值,所以需要N+2个磁盘,同时对控制器的设计变得十分复杂,进一步提升了磁盘阵列的数据可靠性。需要更多的空间来存储校验值,同时在写操作中具有更高的性能损失。
[0011]实现RAID 6时需要同时支持两个parity strip:p和q,举例其关系为:
[0012][0013]通过上式的设置,RAID 6可以通过两个parity:p和q。当上述任意一个或两个数据块(d,p和q)发生错误时,都可进行纠错。
[0014]然而在谷歌的分布式云服务器工作统计《Availability in Globally Distributed Storage Systems》里提到,在现今的分布式云服务器工作环境中有37%的可能会出现同时有两个以上错误需要纠错的环境。这时普通的RAID6就无法满足需求。

技术实现思路

[0015]有鉴于此,为了克服上述问题的至少一个方面,本专利技术实施例提出一种数据编码方法,包括以下步骤:
[0016]获取预先配置的纠删位数以及数据盘的数量;
[0017]根据所述纠删位数和所述数据盘的数量生成纠删矩阵,其中纠删矩阵的第一行中前纠删位数的元素的值为1,其余值为0,其余行在所述第一行的基础上将前纠删位数的元素向右依次平移一位得到;
[0018]将所述纠删矩阵和数据盘中的数据块矩阵相乘以得到检验块;
[0019]将校验块保存到相应的数据盘。
[0020]在一些实施例中,还包括:
[0021]响应于若干个数据块错误,利用所述纠删矩阵和所述校验块恢复错误的若干个数据块。
[0022]在一些实施例中,利用所述纠删矩阵和所述校验块恢复错误的若干个数据块,进一步包括:
[0023]根据错误的数据块的位置从所述纠删矩阵中搜索对应列并组成恢复矩阵;
[0024]从所述恢复矩阵按照预设规则选择若干行并确定选择的行对应的校验块;
[0025]将所述恢复矩阵进行消元运算以得到单位矩阵,并利用对应的校验块执行同样的消元运算以得到恢复后的若干个数据块。
[0026]在一些实施例中,从所述恢复矩阵按照预设规则选择若干行,进一步包括:
[0027]从第一行开始选择含有1的行,并顺序向下,直至选择得到的每列都具有1,且各行之间不同。
[0028]基于同一专利技术构思,根据本专利技术的另一个方面,本专利技术的实施例还提供了一种数
据编码系统,包括:
[0029]获取模块,配置为获取预先配置的纠删位数以及数据盘的数量;
[0030]生成模块,配置为根据所述纠删位数和所述数据盘的数量生成纠删矩阵,其中纠删矩阵的第一行中前纠删位数的元素的值为1,其余值为0,其余行在所述第一行的基础上将前纠删位数的元素向右依次平移一位得到;
[0031]计算模块,配置为将所述纠删矩阵和数据盘中的数据块矩阵相乘以得到检验块;
[0032]保存模块,配置为将校验块保存到相应的数据盘。
[0033]在一些实施例中,还包括恢复模块,配置为:
[0034]响应于若干个数据块错误,利用所述纠删矩阵和所述校验块恢复错误的若干个数据块。
[0035]在一些实施例中,恢复模块还配置为:
[0036]根据错误的数据块的位置从所述纠删矩阵中搜索对应列并组成恢复矩阵;
[0037]从所述恢复矩阵按照预设规则选择若干行并确定选择的行对应的校验块;
[0038]将所述恢复本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据编码方法,其特征在于,包括以下步骤:获取预先配置的纠删位数以及数据盘的数量;根据所述纠删位数和所述数据盘的数量生成纠删矩阵,其中纠删矩阵的第一行中前纠删位数的元素的值为1,其余值为0,其余行在所述第一行的基础上将前纠删位数的元素向右依次平移一位得到;将所述纠删矩阵和数据盘中的数据块矩阵相乘以得到检验块;将校验块保存到相应的数据盘。2.如权利要求1所述的方法,其特征在于,还包括:响应于若干个数据块错误,利用所述纠删矩阵和所述校验块恢复错误的若干个数据块。3.如权利要求2所述的方法,其特征在于,利用所述纠删矩阵和所述校验块恢复错误的若干个数据块,进一步包括:根据错误的数据块的位置从所述纠删矩阵中搜索对应列并组成恢复矩阵;从所述恢复矩阵按照预设规则选择若干行并确定选择的行对应的校验块;将所述恢复矩阵进行消元运算以得到单位矩阵,并利用对应的校验块执行同样的消元运算以得到恢复后的若干个数据块。4.如权利要求3所述的方法,其特征在于,从所述恢复矩阵按照预设规则选择若干行,进一步包括:从第一行开始选择含有1的行,并顺序向下,直至选择得到的每列都具有1,且各行之间不同。5.一种数据编码系统,其特征在于,包括:获取模块,配置为获取预先配置的纠删位数以及数据盘的数量;生成模块,配置为根据所述纠删位数和所述数据盘的数量生成纠删矩阵,其中纠删矩阵的第一行中前纠删位数的元素的值为...

【专利技术属性】
技术研发人员:吴睿振王凛
申请(专利权)人:山东云海国创云计算装备产业创新中心有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1