基于纠删码的数据处理方法与装置制造方法及图纸

技术编号:24010310 阅读:84 留言:0更新日期:2020-05-02 01:31
本申请公开了一种基于纠删码的数据处理方法。存储控制器获取K个数据块chunk后,将每个数据chunk划分为2个数据分片,然后基于一个包括2*M行、2*(K+M)列元素的校验矩阵对这2*K个数据分片进行编码以获得2*M个校验分片。最后,存储控制器将K个数据chunk和M个校验chunk分别存入不同的存储设备。采用该数据处理方法的存储控制器的重建过程占用的计算资源少。

Data processing method and device based on erasure correction code

【技术实现步骤摘要】
基于纠删码的数据处理方法与装置
本申请涉及存储
,更具体地,涉及一种基于纠删码的数据处理方法与执行该数据处理方法的存储控制器。
技术介绍
纠删码(erasurecode,EC)是经典的纠错编码中的一个技术分支,其核心是通过对数据块(chunk)进行编码得到校验chunk,数据chunk和校验chunk共同组成了chunk组。举例来说,假设有K个数据chunk,M个校验chunk,则通过EC编码之后的chunk组长度为K+M。对应到存储系统中,K个数据chunk和M个校验chunk分别存储到不同硬盘(或其他类型的存储设备)上,从而构成了具有容错能力的存储系统。其中,K+M称为EC的配比方式,EC通常包括传统的里德-所罗门码(reed-solomoncodes,RS)。以传统的RS码为例,对于一个K+M配比的RS码,当任意一个硬盘中的数据出错时,重建(恢复)该硬盘中的数据需读取其他硬盘中的数据。然而,随着硬盘容量越来越大,当某一硬盘发生故障时,重建该硬盘内存储的数据所需的数据读取量便会增加,重建该硬盘内存储的数据所需的时间也会随之增加,从而影响了存储系统的工作效率。
技术实现思路
本申请提供一种基于纠删码的数据处理方法,采用该方法的存储控制器的重建过程占用的计算资源较少。第一方面,提供了一种基于纠删码的数据处理方法,包括:存储控制器获取K个数据块chunk,K为正整数。随后,该存储控制器将每个数据chunk划分成2个数据分片,获得2*K个数据分片。该存储控制器根据校验矩阵,对该2*K个数据分片进行编码,获得2*M个校验分片,该2*M个校验分片构成M个校验chunk,M为正整数,这K个数据chunk和M个校验chunk组成一个chunk组。最后,该存储控制器将该K个数据chunk和该M个校验chunk存入多个存储设备。这K+M个chunk可以被存入K+M个不同的存储设备,每个存储设备存储一个chunk。其中,前述采用的该校验矩阵包括2*M行、2*(K+M)列元素,每一列元素对应一个数据分片或者一个校验分片,第1列至第2*K列分别对应一个数据分片,第2*K+1列至2*(K+M)列分别对应一个校验分片。该校验矩阵的每一行元素对应一个异或方程,每一行元素对应的异或方程用于根据该2*K个数据分片中的部分来获得一个校验分片,具体根据哪些数据分片来获得某一校验分片基于该行的非零元素。采用本申请提供的编码方法构建的chunk组在后续重建损坏chunk中,存储控制器需要执行的IO请求的数量更少,重建过程占用的存储控制器的计算资源更少,存储控制器上运行的其他业务受到的影响更少。结合第一方面,所述校验矩阵是预先设置在所述存储控制器中的,所述校验矩阵符合至少一个设置规则。结合第一方面,在第一方面的某些实现方式中,所述至少一个设置规则包括:该校验矩阵中的元素为0,1,或有限域中的元素。结合第一方面,在第一方面的某些实现方式中,所述至少一个设置规则包括:任一数据chunk包括的2个数据分片或任一校验chunk包括的2个校验分片在该校验矩阵中对应的两列构成了包括2*M行、2列元素的第一子矩阵,该第一子矩阵的任意2个偶数行或任意两个奇数行构成的2*2矩阵中的至少一个为满秩的。结合第一方面,在第一方面的某些实现方式中,所述至少一个设置规则包括:任意r个chunk包括的2*r个分片在该校验矩阵中对应的2*r列构成了包括2*M行、2*r列元素的第二子矩阵,该第二子矩阵的秩为2r,r为小于或等于M的整数。所述至少一个设置规则,可以包括前述任意一个或任意两个或多个实现方式的组合。结合第一方面,在第一方面的某些实现方式中,该方法还包括:该存储控制器确定该K个数据chunk和该M个校验chunk中的r个chunk损坏;该存储控制器根据该校验矩阵中的多行元素对应的异或方程,重建该损坏的r个chunk,并将损坏的r个chunk存入未损坏的存储设备,r为小于或等于M的整数。当存储控制器确认该K个数据chunk和该M个校验chunk中超过M个chunk损坏,存储控制器无法重建损坏的chunk。第二方面,提供了一种存储控制器,包括通信模块和处理模块。该通信模块,用于获取K个数据chunk,K为正整数;该处理模块,用于将每个数据chunk划分成2个数据分片,获得2*K个数据分片;根据校验矩阵,对该2*K个数据分片进行编码,获得2*M个校验分片,该2*M个校验分片构成M个校验chunk,M为正整数;其中,该校验矩阵包括2*M行、2*(K+M)列元素,每一列元素对应一个数据分片或者一个校验分片,每一行元素对应一个异或方程,每一行元素对应的异或方程用于根据该2*K个数据分片中的部分来获得一个校验分片;该通信模块,还用于将该K个数据chunk和该M个校验chunk存入多个存储设备。结合第二方面,所述校验矩阵是预先设置在所述存储控制器中的,所述校验矩阵符合至少一个设置规则。结合第二方面,在第二方面的某些实现方式中,所述至少一个设置规则包括:该校验矩阵中的元素为0,1,或有限域中的元素。结合第二方面,在第二方面的某些实现方式中,所述至少一个设置规则包括:任一数据chunk包括的2个数据分片或任一校验chunk包括的2个校验分片在该校验矩阵中对应的两列构成了包括2*M行、2列元素的第一子矩阵,该第一子矩阵的任意2个偶数行或任意两个奇数行构成的2*2矩阵中的至少一个为满秩的。结合第二方面,在第二方面的某些实现方式中,所述至少一个设置规则包括:任意r个chunk包括的2*r个分片在该校验矩阵中对应的2*r列构成了包括2*M行、2*r列元素的第二子矩阵,该第二子矩阵的秩为2r,r为小于或等于M的整数。结合第二方面,在第二方面的某些实现方式中,该处理模块,还用于确定该K个数据chunk和该M个校验chunk中的r个chunk损坏;根据该校验矩阵中的多行元素对应的异或方程,重建该损坏的r个chunk。第三方面,提供了另一种存储控制器,包括处理器和存储器。该处理器用于执行该存储器中的程序以执行第一方面及其任一实现方式提供的方法。第四方面,提供了另一种存储控制器,包括处理器、存储器和数据处理芯片。该数据处理芯片和执行该存储器中的程序的该处理器配合以执行第一方面及其任一实现方式提供的方法。第五方面,提供了一种存储系统,包括多个存储设备以及至少一个第二方面及其任一实现方式提供的存储控制器,或至少一个第三方面提供的存储控制器,或至少一个第四方面提供的存储控制器。第六方面,提供了一种非瞬态的可读存储介质。该非瞬态的可读存储介质中存储的指令被存储控制器执行时,该存储控制器执行前述第一方面及其任一实现方式提供的方法。该存储介质中存储了程序指令。该存储介质包括但不限于易失性存储器,例如随机访问存储器,和非易失性存储器。第七方面提供了一种计算机程序产品,该计算机程序产品包含的指令被存储控制器执行时,该存储控制器执行前述第一方面及其任一实现方式提供的方法。该计算机本文档来自技高网...

【技术保护点】
1.一种基于纠删码的数据处理方法,其特征在于,包括:/n存储控制器获取K个数据块chunk,K为正整数;/n所述存储控制器将每个数据chunk划分成2个数据分片,获得2*K个数据分片;/n所述存储控制器根据校验矩阵,对所述2*K个数据分片进行编码,获得2*M个校验分片,所述2*M个校验分片构成M个校验chunk,M为正整数;/n所述存储控制器将所述K个数据chunk和所述M个校验chunk存入多个存储设备;/n其中,所述校验矩阵包括2*M行、2*(K+M)列元素,每一列元素对应一个数据分片或者一个校验分片,每一行元素对应一个异或方程,每一行元素对应的异或方程用于根据所述2*K个数据分片中的部分来获得一个校验分片。/n

【技术特征摘要】
20190624 CN 20191055139421.一种基于纠删码的数据处理方法,其特征在于,包括:
存储控制器获取K个数据块chunk,K为正整数;
所述存储控制器将每个数据chunk划分成2个数据分片,获得2*K个数据分片;
所述存储控制器根据校验矩阵,对所述2*K个数据分片进行编码,获得2*M个校验分片,所述2*M个校验分片构成M个校验chunk,M为正整数;
所述存储控制器将所述K个数据chunk和所述M个校验chunk存入多个存储设备;
其中,所述校验矩阵包括2*M行、2*(K+M)列元素,每一列元素对应一个数据分片或者一个校验分片,每一行元素对应一个异或方程,每一行元素对应的异或方程用于根据所述2*K个数据分片中的部分来获得一个校验分片。


2.如权利要求1所述的数据处理方法,其特征在于,所述校验矩阵是预先设置在所述存储控制器中的,所述校验矩阵符合至少一个设置规则。


3.如权利要求2所述的数据处理方法,其特征在于,所述至少一个设置规则包括:所述校验矩阵中的元素为0,1,或有限域中的元素。


4.如权利要求2或3所述的数据处理方法,其特征在于,所述至少一个设置规则包括:任一数据chunk包括的2个数据分片或任一校验chunk包括的2个校验分片在所述校验矩阵中对应的两列构成了包括2*M行、2列元素的第一子矩阵,所述第一子矩阵的任意2个偶数行或任意两个奇数行构成的2*2矩阵中的至少一个为满秩的。


5.如权利要求2至4任一所述的数据处理方法,其特征在于,所述至少一个设置规则包括:任意r个chunk包括的2*r个分片在所述校验矩阵中对应的2*r列构成了包括2*M行、2*r列元素的第二子矩阵,所述第二子矩阵的秩为2r,r为小于或等于M的整数。


6.如权利要求2至5任一所述的数据处理方法,其特征在于,还包括:
所述存储控制器确定所述K个数据chunk和所述M个校验chunk中的r个chunk损坏;
所述存储控制器根据所述校验矩阵中的多行元素对应的异或方程,重建所述损坏的r个chunk。


7.一种存储控制器,其特征在于,包括通信模块和处理模块;
所述通信模块...

【专利技术属性】
技术研发人员:曾雁星陈亮董如良张进毅付克博
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1