System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 数据存储方法、装置及存储介质制造方法及图纸_技高网

数据存储方法、装置及存储介质制造方法及图纸

技术编号:40541123 阅读:4 留言:0更新日期:2024-03-05 18:56
本申请实施例公开了一种数据存储方法、装置及存储介质,属于数据存储领域。在本申请实施例中,同一个数据盘中不同条带中相同排序的数据分片将连续存储。同一个校验盘中不同条带中相同排序的校验分片将连续存储。这样,如果m个数据盘和n个校验盘中少于n个的硬盘发生故障,则在进行数据重构时,对于任一待读取数据的未故障硬盘,通过一个IO请求就能从该未故障硬盘中读取到连续存储的属于不同条带的多个数据分片或校验分片,以实现数据重构,减少了数据重构过程中的IO操作的数量,降低了对读写带宽的占用,提升了重构性能。

【技术实现步骤摘要】

本申请涉及数据存储,特别涉及一种数据存储方法、装置及存储介质


技术介绍

1、纠删码(erasure code,ec)技术主要是通过ec算法将原始数据进行编码得到冗余数据,并将该原始数据和冗余数据一起存储,以达到容错的目的。例如,里德-所罗门((reed-solomon,rs)码技术即为纠删码技术的一种。目前,由于rs码技术中硬盘故障后进行数据重构时所需传输的数据量较大,所以业界提出了再生码(regenerating code,rc)技术,以减少数据重构时所需传输的数据量。

2、目前,在rc技术中,获取m个数据单元,每个数据单元包括多个数据分片,利用该m个数据单元包含的数据分片进行编码,得到n个校验单元,其中,每个校验单元包括多个校验分片。将该m个数据单元和n个校验单元存储至m+n个硬盘中。其中,m+n个硬盘中的每个硬盘上存储一个数据单元或一个校验单元,这样,该m个数据单元和n个校验单元组成一个条带。当m+n个硬盘中的任一个硬盘发生故障,则可以通过读取其他硬盘中的部分数据分片和校验分片来重构各个条带中位于故障设备上的数据。然而,在从其他硬盘中读取数据分片和校验分片时,同一个硬盘中用于重构不同条带中的数据的数据分片或校验分片的物理存储地址可能并不连续,在这种情况下,则需要通过多次的输入输出(input/output,io)操作从该硬盘中读取分片,这将占用大量读写带宽,影响前台业务的每秒读写次数(input/output operations per second,iops)。


技术实现思路</b>

1、本申请实施例提供了一种数据存储方法、装置及存储介质,可以减少rc解码过程中的io操作的次数,降低对读写带宽的占用,并改善重构性能。所述技术方案如下:

2、第一方面,提供了数据存储方法,所述方法包括:获取m个第一数据单元和m个第二数据单元,每个数据单元包括k个数据分片,所述m和所述k均为不小于2的整数;对所述m个第一数据单元中的数据分片进行再生码rc编码,得到n个第一校验单元,对所述m个第二数据单元中的数据分片进行rc编码,得到n个第二校验单元,每个校验单元包括k个校验分片,所述n为小于所述m的正整数;将所述m个第一数据单元和所述m个第二数据单元存储至m个数据盘,并将所述n个第一校验单元和所述n个第二校验单元存储至n个校验盘,其中,每个数据盘存储有一个第一数据单元和一个第二数据单元,且每个数据盘中的第一数据单元的第i个数据分片与第二数据单元中的第i个数据分片的物理存储地址连续,每个校验盘存储有一个第一校验单元和一个第二校验单元,且每个校验盘中的第一校验单元的第i个校验分片与第二校验单元的第i个校验分片的物理存储地址连续。

3、其中,m为预设的ec配比中数据单元的数量,n为预设的ec配比中校验单元的数量。

4、在本申请实施例中,对m个第一数据单元进行rc编码,得到n个第一校验单元,对m个第二数据单元进行rc编码,得到n个第二校验单元。之后,将m个第一数据单元和m个第二数据单元存储至m个数据盘,并将n个第一校验单元和n个第二校验单元存储至n个校验盘。这样,m个第一数据单元和n个第一校验单元将组成一个逻辑条带,而m个第二数据单元和n个第二校验单元则组成了另一个逻辑条带。在此基础上,每个数据盘中的第一数据单元的第i个数据分片和第二数据单元的第i个数据分片的物理存储地址连续,也即,同一个数据盘中不同条带中相同排序的数据分片将连续存储。每个校验盘中的第一校验单元中的第i个校验分片和第二校验单元中的第i个校验分片的物理存储地址连续,也即,同一个校验盘中不同条带中相同排序的校验分片将连续存储。这样,如果m个数据盘和n个校验盘中少于n个的硬盘发生故障,则在进行数据重构时,对于任一待读取数据的未故障硬盘,通过一个io请求就能从该未故障硬盘中读取到连续存储的属于不同条带的多个数据分片或校验分片,以实现数据重构,减少了数据重构过程中的io操作的数量,降低了对读写带宽的占用,提升了重构性能。

5、可选地,每个数据盘中同一个数据单元的第i个数据分片的物理存储地址与第i+1个数据分片的物理存储地址不连续,每个校验盘中的同一个校验单元的第i个校验分片的物理存储地址与第i+1个校验分片的物理存储地址不连续。

6、也即,每个数据盘中的同一个数据单元中数据分片间隔存储。由于一个数据盘中的一个数据单元属于一个逻辑条带,因此,当每个数据盘中该数据单元的数据分片间隔存储时,则说明该数据单元所属的逻辑条带中位于同一个数据盘上的的数据分片间隔存储。

7、可选地,所述获取m个第一数据单元和m个第二数据单元的实现过程可以为:获取m个数据块,每个数据块的数据量相同;从所述m个数据块中的每个数据块中获取一个第一数据单元和一个第二数据单元,得到所述m个第一数据单元和所述m个第二数据单元。

8、可选地,各个数据块的数据量也可以不相同,在此基础上,从m个数据块中获得m个第一数据单元的大小也不相同,m个第二数据单元的大小也不同。

9、可选地,所述从所述m个数据块中的每个数据块中获取一个第一数据单元和一个第二数据单元的实现过程可以为:基于第一数据量,将第一数据块划分为多个数据分片,所述第一数据块为所述m个数据块中的任一个,每个数据分片的数据量等于所述第一数据量;按照所述多个数据分片的先后顺序,将所述第一数据块划分为k个数据子块,每个数据子块包括r个数据分片,所述r等于任一数据块的数据量与任一数据单元的数据量的比值,且所述r为不小于2的整数;获取所述k个数据子块中的每个数据子块的第j个数据分片,以得到一个第一数据单元;获取所述k个数据子块中的每个数据子块的第j+1个数据分片,以得到一个第二数据单元。在这种情况下,第一数据单元和第二数据单元即为相邻的数据单元,所谓相邻的数据单元是指这两个数据单元中相同排位的数据分片相邻,后续,在将第一数据单元和第二数据单元存储至数据盘时,该第一数据单元和第二数据单元中相同排位的数据分片也将连续存储。

10、可选地,所述m个数据块与所述m个数据盘一一对应,所述将所述m个第一数据单元和所述m个第二数据单元存储至m个数据盘的实现过程可以为:将从所述第一数据块中获得的第一数据单元和第二数据单元存储至所述第一数据块对应的第一数据盘。

11、可选地,所述第一数据盘中的第一数据单元的第i个数据分片的物理存储地址与第i+1个数据分片的物理存储地址之间存储有r-1个数据分片,所述r-1个数据分片为所述k个数据子块中第i个数据子块中的第j个数据分片与第i+1个数据子块中的第j个数据分片之间的数据分片,每个校验盘中的第一校验单元的第i个校验分片的物理存储地址与第i+1个校验分片的物理存储地址之间存储有r-1个校验分片,所述r-1个校验分片与所述r-1个数据分片一一对应。

12、可选地,所述n个第一校验单元和所述n个第二校验单元对应n种校验类型,每种校验类型对应一个校验盘,在此基础上,将n个第一校验单元和n个第二校验单元存储至n个校验盘时,本文档来自技高网...

【技术保护点】

1.一种数据存储方法,其特征在于,所述方法包括;

2.根据权利要求1所述的方法,其特征在于,每个数据盘中同一个数据单元的第i个数据分片的物理存储地址与第i+1个数据分片的物理存储地址不连续,每个校验盘中的同一个校验单元的第i个校验分片的物理存储地址与第i+1个校验分片的物理存储地址不连续。

3.根据权利要求1或2所述的方法,其特征在于,所述获取m个第一数据单元和m个第二数据单元,包括:

4.根据权利要求3所述的方法,其特征在于,所述从所述m个数据块中的每个数据块中获取一个第一数据单元和一个第二数据单元,包括:

5.根据权利要求4所述的方法,其特征在于,所述m个数据块与所述m个数据盘一一对应,所述将所述m个第一数据单元和所述m个第二数据单元存储至m个数据盘,包括:

6.根据权利要求5所述的方法,其特征在于,所述第一数据盘中的第一数据单元的第i个数据分片的物理存储地址与第i+1个数据分片的物理存储地址之间存储有r-1个数据分片,所述r-1个数据分片为所述k个数据子块中第i个数据子块中的第j个数据分片与第i+1个数据子块中的第j个数据分片之间的数据分片,每个校验盘中的第一校验单元的第i个校验分片的物理存储地址与第i+1个校验分片的物理存储地址之间存储有r-1个校验分片,所述r-1个校验分片与所述r-1个数据分片一一对应。

7.根据权利要求1-6任一所述的方法,其特征在于,所述方法还包括:

8.一种数据存储装置,其特征在于,所述装置包括;

9.根据权利要求8所述的装置,其特征在于,每个数据盘中同一个数据单元的第i个数据分片的物理存储地址与第i+1个数据分片的物理存储地址不连续,每个校验盘中的同一个校验单元的第i个校验分片的物理存储地址与第i+1个校验分片的物理存储地址不连续。

10.根据权利要求8或9所述的装置,其特征在于,所述获取模块主要用于:

11.根据权利要求10所述的装置,其特征在于,所述获取模块主要用于:

12.根据权利要求11所述的装置,其特征在于,所述m个数据块与所述m个数据盘一一对应,所述存储模块主要用于:

13.根据权利要求12所述的装置,其特征在于,所述第一数据盘中的第一数据单元的第i个数据分片的物理存储地址与第i+1个数据分片的物理存储地址之间存储有r-1个数据分片,所述r-1个数据分片为所述k个数据子块中第i个数据子块中的第j个数据分片与第i+1个数据子块中的第j个数据分片之间的数据分片,每个校验盘中的第一校验单元的第i个校验分片的物理存储地址与第i+1个校验分片的物理存储地址之间存储有r-1个校验分片,所述r-1个校验分片与所述r-1个数据分片一一对应。

14.根据权利要求8-13任一所述的装置,其特征在于,所述装置还包括:

15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括指令,当所述指令在计算机上运行时,使得所述计算机执行权利要求1至7任一项所述的数据存储方法。

...

【技术特征摘要】

1.一种数据存储方法,其特征在于,所述方法包括;

2.根据权利要求1所述的方法,其特征在于,每个数据盘中同一个数据单元的第i个数据分片的物理存储地址与第i+1个数据分片的物理存储地址不连续,每个校验盘中的同一个校验单元的第i个校验分片的物理存储地址与第i+1个校验分片的物理存储地址不连续。

3.根据权利要求1或2所述的方法,其特征在于,所述获取m个第一数据单元和m个第二数据单元,包括:

4.根据权利要求3所述的方法,其特征在于,所述从所述m个数据块中的每个数据块中获取一个第一数据单元和一个第二数据单元,包括:

5.根据权利要求4所述的方法,其特征在于,所述m个数据块与所述m个数据盘一一对应,所述将所述m个第一数据单元和所述m个第二数据单元存储至m个数据盘,包括:

6.根据权利要求5所述的方法,其特征在于,所述第一数据盘中的第一数据单元的第i个数据分片的物理存储地址与第i+1个数据分片的物理存储地址之间存储有r-1个数据分片,所述r-1个数据分片为所述k个数据子块中第i个数据子块中的第j个数据分片与第i+1个数据子块中的第j个数据分片之间的数据分片,每个校验盘中的第一校验单元的第i个校验分片的物理存储地址与第i+1个校验分片的物理存储地址之间存储有r-1个校验分片,所述r-1个校验分片与所述r-1个数据分片一一对应。

7.根据权利要求1-6任一所述的方法,其特征在于,所述方法还包括:

8.一种数据存储装置...

【专利技术属性】
技术研发人员:张晓阳付克博沈建强刘义
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1