一种数据编码方法、装置、设备及介质转让专利
申请号 : CN202210119841.9
文献号 : CN114153651B
文献日 : 2022-04-29
发明人 : 吴睿振 , 陈静静 , 张永兴 , 张旭 , 王凛
申请人 : 苏州浪潮智能科技有限公司
摘要 :
权利要求 :
1.一种数据编码方法,其特征在于,包括:获取基于原始编码方法确定的存储纠删结构,其中,所述存储纠删结构中对应第一预设数量的硬盘以及第二预设数量的条带,所述硬盘包括数据盘以及校验盘;
基于第一划分规则对所述存储纠删结构中所述第二预设数量的条带进行分组,以得到不同条带小组,并基于第二划分规则对每组内不同所述条带对应的数据盘进行分组,以得到不同数据盘小组;
根据所述不同条带小组以及所述不同数据盘小组并按照预设编码规则对待更新校验块进行更新,以完成数据编码;
其中,所述基于第二划分规则对每组内不同所述条带对应的数据盘进行分组,以得到不同数据盘小组具体为:
确定出每组内不同所述条带对应的数据块数量与所述待更新校验块数量;计算所述数据块数量与所述待更新校验块数量的比值,并当所述比值不为整数时,对所述比值进行向上取整;以所述比值为划分长度,对每组内不同所述条带对应的数据盘进行分组,并当每组内不同所述条带对应的未划分数据盘数量小于所述划分长度时,将所述未划分数据盘分为一组,以得到不同数据盘小组。
2.根据权利要求1所述的数据编码方法,其特征在于,当所述第二预设数量为偶数时,所述基于第一划分规则对所述存储纠删结构中所述第二预设数量的条带进行分组,以得到不同条带小组,包括:
将所述存储纠删结构中的每两个所述条带分为一组,以得到不同条带小组。
3.根据权利要求1所述的数据编码方法,其特征在于,当所述第二预设数量为奇数时,所述基于第一划分规则对所述存储纠删结构中所述第二预设数量的条带进行分组,以得到不同条带小组,还包括:
将所述存储纠删结构中的每两个所述条带分为一组,然后将所述存储纠删结构中剩余的一个所述条带分为一组,以得到不同条带小组,并对包括所述一个所述条带的所述条带小组使用所述原始编码方法进行编码。
4.根据权利要求1所述的数据编码方法,其特征在于,还包括:基于预设运算原则从所有所述校验盘中确定出一个校验盘,并对所述一个校验盘中的所述校验块使用原始编码方法进行编码,然后将所述所有校验盘中剩余的所述校验盘中的所述校验块确定为所述待更新校验块。
5.根据权利要求1至4任一项所述的数据编码方法,其特征在于,所述根据所述分组后的所述存储纠删结构并按照预设编码规则对待更新校验块进行更新,包括:对每个所述数据盘小组以及所述待更新校验分别进行排序;
在每个所述条带小组中,在确定出所述待更新校验块的序号后,利用本组内偶数条带对应的校验盘中的所述待更新校验块,以及所述本组内奇数条带对应的数据盘中与所述待更新校验块的序号具有相同序号的所述数据盘小组中的数据块,对所述本组内偶数条带对应的校验盘中的所述待更新校验块进行更新。
6.根据权利要求1至4任一项所述的数据编码方法,其特征在于,所述根据所述分组后的所述存储纠删结构并按照预设编码规则对待更新校验块进行更新,包括:对每个所述数据盘小组以及所述待更新校验分别进行排序;
在每个所述条带小组中,在确定出所述待更新校验块的序号后,利用本组内奇数条带对应的校验盘中的所述待更新校验块,以及所述本组内偶数条带对应的数据盘中与所述待更新校验块的序号具有相同序号的所述数据盘小组中的数据块,对所述本组内奇数条带对应的校验盘中的所述待更新校验块进行更新。
7.一种数据编码装置,其特征在于,包括:纠删结构获取模块,用于获取基于原始编码方法确定的存储纠删结构,其中,所述存储纠删结构中对应第一预设数量的硬盘以及第二预设数量的条带,所述硬盘包括数据盘以及校验盘;
分组模块,用于基于第一划分规则对所述存储纠删结构中所述第二预设数量的条带进行分组,以得到不同条带小组,并基于第二划分规则对每组内不同所述条带对应的数据盘进行分组,以得到不同数据盘小组;
更新模块,用于根据所述不同条带小组以及所述不同数据盘小组并按照预设编码规则对待更新校验块进行更新,以完成数据编码;
其中,所述分组模块具体用于:确定出每组内不同所述条带对应的数据块数量与所述待更新校验块数量;计算所述数据块数量与所述待更新校验块数量的比值,并当所述比值不为整数时,对所述比值进行向上取整;以所述比值为划分长度,对每组内不同所述条带对应的数据盘进行分组,并当每组内不同所述条带对应的未划分数据盘数量小于所述划分长度时,将所述未划分数据盘分为一组,以得到不同数据盘小组。
8.一种电子设备,其特征在于,包括:存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至6任一项所述的数据编码方法。
9.一种计算机可读存储介质,其特征在于,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的数据编码方法。
说明书 :
一种数据编码方法、装置、设备及介质
技术领域
背景技术
越来越被人们所关注,现如今面对如此庞大的数据规模,存储系统中数据的可靠性和存储
系统中包含的组件数量成反比关系,即存储系统组件数越多,存储系统中数据的可靠性就
越低。根据相关调查显示,在一个由600个磁盘构成的互联网数据中心中,每月大约会有30
个磁盘出现损坏的情况,在大规模存储系统中,磁盘故障造成的数据可靠性下降是相当严
重的问题,对此人们展开了相关容错技术的研究。纠删码(Erasure Coding,EC)是一种数据
保护方法,它将数据分割成片段,把冗余数据扩展、编码,并将其存储在不同的位置,比如磁
盘、存储节点或者其它地理位置。将原始数据分割成k个数据块,并根据编码矩阵生成m编码
块,将n(n=k+m)块分布到不同的服务器上,当不大于m块数据出现错误时,只需要k块就可以
恢复原来的数据。
很大的提高,减少硬盘检查的需求几率。但是在大条带纠删的情况下,在对数据进行恢复
时,利用现有的纠删算法,需要取出的数据量太大,由于目前限制存储工作速度的主要是硬
盘的IOPS(Input/Output Operations Per Second,每秒进行读写操作的次数),因此当数
据量很大时,数据读取速度就会变慢,进一步导致数据恢复速度变慢。
发明内容
如下:
以得到不同数据盘小组;
条带小组使用所述原始编码方法进行编码。
为一组,以得到不同数据盘小组。
所述所有校验盘中剩余的所述校验盘中的所述校验块确定为所述待更新校验块。
述待更新校验块的序号具有相同序号的所述数据盘小组中的所述数据块,对所述本组内偶
数条带对应的校验盘中的所述待更新校验块进行更新。
述待更新校验块的序号具有相同序号的所述数据盘小组中的所述数据块,对所述本组内奇
数条带对应的校验盘中的所述待更新校验块进行更新。
以及校验盘;
据盘进行分组,以得到不同数据盘小组;
述硬盘包括数据盘以及校验盘;基于第一划分规则对所述存储纠删结构中所述第二预设数
量的条带进行分组,以得到不同条带小组,并基于第二划分规则对每组内不同所述条带对
应的数据盘进行分组,以得到不同数据盘小组;根据所述不同条带小组以及所述不同数据
盘小组并按照预设编码规则对待更新校验块进行更新,以完成数据编码,如此一来,本申请
通过改进原始编码方法,使得在基于改进后编码方法进行解码时,解码所需要读取的数据
量减少,进一步使得解码速度得到较大的提高。
附图说明
发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据
提供的附图获得其他的附图。
具体实施方式
本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他
实施例,都属于本发明保护的范围。
读取速度就会变慢,进一步导致数据恢复速度变慢。
中对应第一预设数量的硬盘以及第二预设数量的条带,所述硬盘包括数据盘以及校验盘,
所述数据盘用来存来数据块,所述校验盘用来存储校验块。
进行分组,以得到不同数据盘小组。
第二预设数量的条带进行分组,以得到不同条带小组,并基于第二划分规则对每组内不同
所述条带对应的数据盘进行分组,以得到不同数据盘小组。
成数据编码。
始编码方法进行编码,然后将所述所有校验盘中剩余的所述校验盘中的所述校验块确定为
所述待更新校验块,本实施例中,所述预设运算原则是指最简运算原则,也即,所述待更新
校验块是基于能够使整个运算过程最简化的原则确定的。
述硬盘包括数据盘以及校验盘;基于第一划分规则对所述存储纠删结构中所述第二预设数
量的条带进行分组,以得到不同条带小组,并基于第二划分规则对每组内不同所述条带对
应的数据盘进行分组,以得到不同数据盘小组;根据所述不同条带小组以及所述不同数据
盘小组并按照预设编码规则对待更新校验块进行更新,以完成数据编码,如此一来,本申请
通过改进原始编码方法,使得在基于改进后编码方法进行解码时,解码所需要读取的数据
量减少,进一步使得解码速度得到较大的提高。
每两个所述条带分为一组,以得到不同条带小组;此外,当所述第二预设数量为奇数时,将
所述存储纠删结构中的每两个所述条带分为一组,然后将所述存储纠删结构中剩余的一个
所述条带分为一组,以得到不同条带小组,并对包括所述一个所述条带的所述条带小组使
用所述原始编码方法进行编码。需要指出的是,所述对包括所述一个所述条带的所述条带
小组使用所述原始编码方法进行编码是指,包括所述一个所述条带的所述条带小组不参与
重新编码,按照所述原始编码方法进行编码。
述比值进行向上取整;以所述比值为划分长度,对每组内不同所述条带对应的数据盘进行
分组,并当每组内不同所述条带对应的未划分数据盘数量小于所述划分长度时,将所述未
划分数据盘分为一组,以得到不同数据盘小组。
的数据块数量与所述待更新校验块数量;计算所述数据块数量与所述待更新校验块数量的
比值,并当所述比值不为整数时,对所述比值进行向上取整;以所述比值为划分长度,对每
组内不同所述条带对应的数据盘进行分组,并当每组内不同所述条带对应的未划分数据盘
数量小于所述划分长度时,将所述未划分数据盘分为一组,以得到不同数据盘小组。
的所述待更新校验块,以及所述本组内奇数条带对应的数据盘中与所述待更新校验块的序
号具有相同序号的所述数据盘小组中的所述数据块,对所述本组内偶数条带对应的校验盘
中的所述待更新校验块进行更新。
数据编码,具体的,对每个所述数据盘小组以及所述待更新校验分别进行排序;在每个所述
条带小组中,在确定出所述待更新校验块的序号后,利用本组内偶数条带对应的校验盘中
的所述待更新校验块,以及所述本组内奇数条带对应的数据盘中与所述待更新校验块的序
号具有相同序号的所述数据盘小组中的所述数据块,对所述本组内偶数条带对应的校验盘
中的所述待更新校验块进行更新,以完成数据编码。
述硬盘包括数据盘以及校验盘;将所述存储纠删结构中的每两个所述条带分为一组,以得
到不同条带小组;确定出每组内不同所述条带对应的数据块数量与所述待更新校验块数
量;计算所述数据块数量与所述待更新校验块数量的比值,并当所述比值不为整数时,对所
述比值进行向上取整;以所述比值为划分长度,对每组内不同所述条带对应的数据盘进行
分组,并当每组内不同所述条带对应的未划分数据盘数量小于所述划分长度时,将所述未
划分数据盘分为一组,以得到不同数据盘小组;对每个所述数据盘小组以及所述待更新校
验分别进行排序;在每个所述条带小组中,在确定出所述待更新校验块的序号后,利用本组
内偶数条带对应的校验盘中的所述待更新校验块,以及所述本组内奇数条带对应的数据盘
中与所述待更新校验块的序号具有相同序号的所述数据盘小组中的所述数据块,对所述本
组内偶数条带对应的校验盘中的所述待更新校验块进行更新,如此一来,本申请通过改进
原始编码方法,使得在基于改进后编码方法进行解码时,解码所需要读取的数据量减少,进
一步使得解码速度得到较大的提高。
每两个所述条带分为一组,以得到不同条带小组;此外,当所述第二预设数量为奇数时,将
所述存储纠删结构中的每两个所述条带分为一组,然后将所述存储纠删结构中剩余的一个
所述条带分为一组,以得到不同条带小组,并对包括所述一个所述条带的所述条带小组使
用所述原始编码方法进行编码。需要指出的是,所述对包括所述一个所述条带的所述条带
小组使用所述原始编码方法进行编码是指,包括所述一个所述条带的所述条带小组不参与
重新编码,按照所述原始编码方法进行编码。
述比值进行向上取整;以所述比值为划分长度,对每组内不同所述条带对应的数据盘进行
分组,并当每组内不同所述条带对应的未划分数据盘数量小于所述划分长度时,将所述未
划分数据盘分为一组,以得到不同数据盘小组。
的数据块数量与所述待更新校验块数量;计算所述数据块数量与所述待更新校验块数量的
比值,并当所述比值不为整数时,对所述比值进行向上取整;以所述比值为划分长度,对每
组内不同所述条带对应的数据盘进行分组,并当每组内不同所述条带对应的未划分数据盘
数量小于所述划分长度时,将所述未划分数据盘分为一组,以得到不同数据盘小组。
的所述待更新校验块,以及所述本组内偶数条带对应的数据盘中与所述待更新校验块的序
号具有相同序号的所述数据盘小组中的所述数据块,对所述本组内奇数条带对应的校验盘
中的所述待更新校验块进行更新。
数据编码,具体的,对每个所述数据盘小组以及所述待更新校验分别进行排序;在每个所述
条带小组中,在确定出所述待更新校验块的序号后,利用本组内奇数条带对应的校验盘中
的所述待更新校验块,以及所述本组内偶数条带对应的数据盘中与所述待更新校验块的序
号具有相同序号的所述数据盘小组中的所述数据块,对所述本组内奇数条带对应的校验盘
中的所述待更新校验块进行更新。
利用本组内偶数条带对应的校验盘中的所述待更新校验块,以及所述本组内奇数条带对应
的数据盘中与所述待更新校验块的序号具有相同序号的所述数据盘小组中的所述数据块,
对所述本组内偶数条带对应的校验盘中的所述待更新校验块进行更新,或利用本组内奇数
条带对应的校验盘中的所述待更新校验块,以及所述本组内偶数条带对应的数据盘中与所
述待更新校验块的序号具有相同序号的所述数据盘小组中的所述数据块,对所述本组内奇
数条带对应的校验盘中的所述待更新校验块进行更新。两种情况不能同时存在。
述硬盘包括数据盘以及校验盘;将所述存储纠删结构中的每两个所述条带分为一组,以得
到不同条带小组;确定出每组内不同所述条带对应的数据块数量与所述待更新校验块数
量;计算所述数据块数量与所述待更新校验块数量的比值,并当所述比值不为整数时,对所
述比值进行向上取整;以所述比值为划分长度,对每组内不同所述条带对应的数据盘进行
分组,并当每组内不同所述条带对应的未划分数据盘数量小于所述划分长度时,将所述未
划分数据盘分为一组,以得到不同数据盘小组;对每个所述数据盘小组以及所述待更新校
验分别进行排序;在每个所述条带小组中,在确定出所述待更新校验块的序号后,利用本组
内奇数条带对应的校验盘中的所述待更新校验块,以及所述本组内偶数条带对应的数据盘
中与所述待更新校验块的序号具有相同序号的所述数据盘小组中的所述数据块,对所述本
组内奇数条带对应的校验盘中的所述待更新校验块进行更新,如此一来,本申请通过改进
原始编码方法,使得在基于改进后编码方法进行解码时,解码所需要读取的数据量减少,进
一步使得解码速度得到较大的提高。
好的效果,因此被引入存储领域。纠删码可以在保证相同可靠性的前提下有效地降低存储
开销,因此纠删码技术被广泛地应用于各大存储系统以及数据中心例如微软的Azure、
Facebook的F4等。纠删码是指将原始数据分割成k个数据块,并根据编码矩阵生成m编码块,
将n(n=k+m)块分布到不同的服务器上。当不大于m块数据出现错误时,只需要k块就可以恢
复原来的数据,其参数配置如下所示:
为D+C部分,总量为k+m=8个,有效存储比为:k/n=5/8。这样的纠删系统,可以对K个D进行编
码,得到m个C。纠删系统可在m个编码实现后很对系统中任意m个错误进行解码恢复。
的校验块。而r个校验块基于范德蒙矩阵或柯西矩阵进行编码的方式就称为利用范德蒙矩
阵或柯西矩阵编码的RS纠删码,基于范德蒙矩阵的RS纠删码以及基于柯西矩阵的RS纠删码
的具体编码过程分别如下所示:
任意做多r个数据在传输中出错或丢失,需要纠错时,即用剩余数据对应矩阵的逆矩阵与数
据相乘,即会得到原始数据块D1到Dk。以D1到Dr数据丢失,进行解码为例,过程如下所示:
矩阵,这样的优势是所得到的矩阵可逆,其任意子矩阵也都可逆,并且矩阵的大小扩充简
单。
算法。这里无论采用何种算法,本申请将其编码的关系和解码的关系分别设置为:
式生成的校验数据,相应的,其他条带编码关系相同。则在原始的编码情况下,上述编码可
以恢复1‑4个任意盘的错误。当发生一个错误,且错误为盘1的情况下,原始的RS编码需要求
出盘2‑5的数据以及盘6‑9的任意一个校验,来完成解码运算,此时所需取出的数据块数为
20。
的编码速度并没有受到影响,而解码的速度会因为读取数据的减少,得到较大的提升。
增加为:
给偶数(或奇数)的校验码的增加的异或数据,只需要在进行其本身涉及的编码时,将其同
时送给更新的校验码块进行运算即可。
可,这里的操作并行进行,无需增加新的数据读取和搬移,因此对速度和面积没有影响。
复,得到d25,d45两个数据块。然后再取出p24’和p44’,基于上述分组增加的公式可知,此时
已经取得d21‑d25和d41‑d45,则通过上述分组增加的公式可直接求得d15和d35。也就是说,
完成一个盘错误时的恢复,仅需从硬盘中取出d21‑d24,d41‑d44,p21,p41,p24’,p44’总共
12个数据块。相比原始方法需要取出20个数据块相比,减少了一部分数据读取需求,一定程
度上提高读取速度。同理在发生一个以上错误的时候,也有不同的速度提升,这里不再举例
说明。如此一来,本深情提出了一种针对大条带纠删下纠错恢复速度改进的纠删硬件加速
器方案,针对用户当今实际的需求下,发生错误的恢复速度要求高的情况,针对限制存储纠
删结构速度的主要原因是数据搬运的IOPS限制的特性,在原有RS纠删方法的前提下,改进
编码方案,使得解码需求发生时,可以减少数据的搬运量以提高解码速度。
盘以及校验盘;
数据盘进行分组,以得到不同数据盘小组;
述硬盘包括数据盘以及校验盘;基于第一划分规则对所述存储纠删结构中所述第二预设数
量的条带进行分组,以得到不同条带小组,并基于第二划分规则对每组内不同所述条带对
应的数据盘进行分组,以得到不同数据盘小组;根据所述不同条带小组以及所述不同数据
盘小组并按照预设编码规则对待更新校验块进行更新,以完成数据编码,如此一来,本申请
通过改进原始编码方法,使得在基于改进后编码方法进行解码时,解码所需要读取的数据
量减少,进一步使得解码速度得到较大的提高。
电源26、和通信总线27。其中,所述存储器22 用于存储计算机程序,所述计算机程序由所述
处理器21加载并执行,以实现前述任一实施例公开的数据编码方法中的相关步骤。另外,本
实施例中的电子设备20具体可以为电子计算机。
用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口24,用于获
取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,
在此不进行具体限定。
储。其中,计算机程序221除了包括能够用于完成前述任一实施例公开的由电子设备20执行
的数据编码方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算
机程序。
置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分
说明即可。
软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些
功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业
技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应
认为超出本申请的范围。
储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD‑ROM、或技术
领域内所公知的任意其它形式的存储介质中。
之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意
在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那
些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者
设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排
除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申
请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理
解为对本申请的限制。