一种基于纠删码的条带合并方法及系统技术方案

技术编号:30755557 阅读:10 留言:0更新日期:2021-11-10 12:09
本发明专利技术提供一种基于纠删码的条带合并方法及系统,首先通过StripeMerge

【技术实现步骤摘要】
一种基于纠删码的条带合并方法及系统


[0001]本专利技术属于计算机存储领域,更具体地,涉及一种基于纠删码的条带合并方法及系统。

技术介绍

[0002]纠删码已广泛部署在现代大规模存储系统中,通过存储数据块和校验块来实现高效存储的容错。纠删码种类很多,Reed

Solonon码最受欢迎并已经被广泛应用于工业界。在实践中,大规模存储系统会存储多个条带,这些条带独立编码并分布在不同的k+m个节点集上。此外,每个块通常配置为大尺寸,例如,64MiB或256MiB,以减轻I/O开销。最近,企业探索了大条带的概念,以抑制每个条带中校验块的比例,以实现极大的存储节省。然而,如何以更小的开销生成大条带仍然是一个重要的问题。特别是,将当前存储的纠删码条带(称为小条带)重新编码为大条带会在为大条带重新放置数据块和重新生成校验块时触发大量带宽开销。

技术实现思路

[0003]针对现有技术的缺陷,本专利技术的目的在于提供一种基于纠删码的条带合并方法及系统,旨在解决现有技术将纠删码条带重新编码合并为大条带时会触发大量宽带开销的问题。
[0004]为实现上述目的,第一方面,本专利技术提供了一种基于纠删码的条带合并方法,包括如下步骤:
[0005]S1,对若干个纠删码条带进行预处理,确定每个纠删码条带校验块的存放位置,并构建哈希表;所述哈希表指示各个纠删码条带校验块的位置和各个纠删码条带的编号;
[0006]S2,基于所述哈希表确定若干个纠删码条带中与某一个纠删码条带校验块位置全部对齐和部分对齐的纠删码条带的集合,在所述纠删码条带集合中选取与所述某一个纠删码条带合并开销相对较小的纠删码条带,将选取的纠删码条带与所述某一个纠删码条带合并,生成合并后的条带;
[0007]S3,在所述若干个纠删码条带中删除选取的纠删码条带和所述某一个纠删码条带,得到更新的若干个纠删码条带;
[0008]S4,重复执行步骤S2和步骤S3,当无法选取出可以合并的两个纠删码条带时,执行步骤S5;
[0009]S5,在所述步骤S3得到的更新的若干个纠删码条带中,计算任意两个纠删码条带组成的纠删码条带对的合并开销;
[0010]S6,在所有纠删码条带对中选取合并开销最低的纠删码条带对,并将选取的纠删码条带对合并,生成合并后的条带;
[0011]S7,在所有纠删码条带对中删除与步骤S6选取的纠删码条带对相关的纠删码条带对,得到新的所有纠删码条带对;所述与步骤S6选取的纠删码条带对相关的纠删码条带对
指的是含有步骤S6选取的纠删码条带对中之一纠删码条带的纠删码条带对;
[0012]S8,重复执行步骤S6和步骤S7,直至步骤S7得到的所有纠删码条带对为空。
[0013]在一个可选的示例中,所述步骤S2中,在所述纠删码条带集合中选取与所述某一个纠删码条带合并开销相对较小的纠删码条带,具体为:
[0014]当所述纠删码条带集合中包括校验块位置与所述某一个纠删码条带校验块位置全部对齐的纠删码条带时,从对齐的纠删码条带中选取合并开销最小或合并开销小于阈值的一个纠删码条带;
[0015]当所述纠删码条带集合中不包括校验块位置与所述某一个纠删码条带校验块位置对齐的纠删码条带时,从部分对齐的纠删码条带中选取合并开销最小或合并开销小于阈值的一个纠删码条带;其中,部分对齐的纠删码条带按照对齐校验块数量从大到小的顺序被选取;所述对齐校验块数量指的是部分对齐的两个纠删码条带中对齐的校验块的数量。
[0016]可以理解的是,本专利技术中选取合并的纠删码条带对时,是先从对齐校验块数量最多的纠删码条带对中进行选择,然后再从对齐校验块相对多的纠删码条带对中进行选择,以此类推。可以将此过程理解为“贪心策略”,所谓贪心策略指的是:每次都采取在当前状况下最好的选择,从而希望得到整体最好的结果。本专利技术基于“贪心策略”选择要合并的小条带对,减少了大量不必要的计算开销。
[0017]在一个可选的示例中,将两个纠删码条带合并,具体包括如下步骤:
[0018]检查纠删码条带各个数据块的位置,如果某个节点中同时存储了两个数据块,则将其中一个数据块迁移到对于当前合并后条带而言的空闲节点;
[0019]将具有相同编码系数的所有校验块迁移至同一个节点中;
[0020]在存储校验块的节点中如果仍然有数据块,则将该数据块进行迁移;
[0021]上述过程中所有迁移的校验块数量和数据块数量总和即为合并开销。
[0022]在一个可选的示例中,所述步骤S5

步骤S8的过程称为StripeMerge

G算法,具体步骤包括:
[0023]S10,在输入的小条带集合中,计算任意两个小条带的合并开销,并将三元组(c,s
i
,s
j
)存储在集合中,其中s
i
和s
j
表示两个不同的小条带,c表示s
i
和s
j
的合并开销;所述小条带集合指的是纠删码条带的集合,每个纠删码条带对应一个小条带;
[0024]S20,对集合中的所有三元组依照c进行升序排序;
[0025]S30,取出集合中的第一个三元组(c
*
,s
i*
,s
j*
),将s
i*
和s
j*
合并,并将集合中所有包含s
i*
和s
j*
的三元组都删除;其中,s
i*
和s
j*
表示排序后的两个不同的小条带,c
*
表示s
i*
和s
j*
的合并开销;
[0026]S40,重复步骤S30,直到集合为空。
[0027]具体地,本专利技术中小条带指的是合并前的纠删码条带。每个纠删码条带包括数据块个数相同,合并后条带的数据块个数为小条带数据块个数的2倍,因此可将合并后的条带称为大条带。
[0028]在一个可选的示例中,所述步骤S2

步骤S4的过程称为StripeMerge

P算法,具体步骤包括:
[0029]确定小条带集合以及校验块全部或部分对齐集合;
[0030]将校验块全部或部分对齐集合中的小条带对按照对齐数据块数量从大到小排序,
依次寻找合并开销最小或合并开销小于阈值的小条带对,将其进行合并;
[0031]对剩余的小条带使用所述StripeMerge

G算法。
[0032]第二方面,本专利技术提供了一种基于纠删码的条带合并系统,包括:
[0033]纠删码条带预处理单元,用于执行步骤S1:S1,对若干个纠删码条带进行预处理,确定每个纠删码条带校验块的存放位置,并构建哈希表;所述哈希表指示各个纠删码条带校验块的位置和各个纠删码条带的编号;
[0034]第一合并单元,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于纠删码的条带合并方法,其特征在于,包括如下步骤:S1,对若干个纠删码条带进行预处理,确定每个纠删码条带校验块的存放位置,并构建哈希表;所述哈希表指示各个纠删码条带校验块的位置和各个纠删码条带的编号;S2,基于所述哈希表确定若干个纠删码条带中与某一个纠删码条带校验块位置全部对齐和部分对齐的纠删码条带的集合,在所述纠删码条带集合中选取与所述某一个纠删码条带合并开销相对较小的纠删码条带,将选取的纠删码条带与所述某一个纠删码条带合并,生成合并后的条带;S3,在所述若干个纠删码条带中删除选取的纠删码条带和所述某一个纠删码条带,得到更新的若干个纠删码条带;S4,重复执行步骤S2和步骤S3,当无法选取出可以合并的两个纠删码条带时,执行步骤S5;S5,在所述步骤S3得到的更新的若干个纠删码条带中,计算任意两个纠删码条带组成的纠删码条带对的合并开销;S6,在所有纠删码条带对中选取合并开销最低的纠删码条带对,并将选取的纠删码条带对合并,生成合并后的条带;S7,在所有纠删码条带对中删除与步骤S6选取的纠删码条带对相关的纠删码条带对,得到新的所有纠删码条带对;所述与步骤S6选取的纠删码条带对相关的纠删码条带对指的是含有步骤S6选取的纠删码条带对中之一纠删码条带的纠删码条带对;S8,重复执行步骤S6和步骤S7,直至步骤S7得到的所有纠删码条带对为空。2.根据权利要求1所述的条带合并方法,其特征在于,所述步骤S2中,在所述纠删码条带集合中选取与所述某一个纠删码条带合并开销相对较小的纠删码条带,具体为:当所述纠删码条带集合中包括校验块位置与所述某一个纠删码条带校验块位置全部对齐的纠删码条带时,从对齐的纠删码条带中选取合并开销最小或合并开销小于阈值的一个纠删码条带;当所述纠删码条带集合中不包括校验块位置与所述某一个纠删码条带校验块位置对齐的纠删码条带时,从部分对齐的纠删码条带中选取合并开销最小或合并开销小于阈值的一个纠删码条带;其中,部分对齐的纠删码条带按照对齐校验块数量从大到小的顺序被选取;所述对齐校验块数量指的是部分对齐的两个纠删码条带中对齐的校验块的数量。3.根据权利要求1所述的条带合并方法,其特征在于,将两个纠删码条带合并,具体包括如下步骤:检查纠删码条带各个数据块的位置,如果某个节点中同时存储了两个数据块,则将其中一个数据块迁移到对于当前合并后条带而言的空闲节点;将具有相同编码系数的所有校验块迁移至同一个节点中;在存储校验块的节点中如果仍然有数据块,则将该数据块进行迁移;上述过程中所有迁移的校验块数量和数据块数量总和即为合并开销。4.根据权利要求2所述的条带合并方法,其特征在于,所述步骤S5

步骤S8的过程称为StripeMerge

G算法,具体步骤包括:S10,在输入的小条带集合中,计算任意两个小条带的合并开销,并将三元组(c,s
i
,s
j
)存储在集合中,其中s
i
和s
j
表示两个不同的小条带,c表示s
i
和s
j
的合并开销;所述小条带
集合指的是纠删码条带的集合,每个纠删码条带对应一个小条带;S20,对集合中的所有三元组依照c进行升序排序;S30,取出集合中的第一个三元组(c
*
,s
i*
,s
j*
),将s
i*
和s
j*
合并,并将集合中所有包含s
i*
和s
j*
的三元组都删除;其中,s
i*
和s
j*
表示排序后的两个不同的小条带,c
*
表示s
i*
和s
j*
的合并开销;S40,重复步骤S30,直到集合为空。5.根据权利要求4所述的条带合并方法,其特征在于,所述步骤S2

步骤S4的过程称为StripeMerge

P算法,具体步骤包括:确定小条带集合以及校验块全部或部分对齐集合;将校验块全部或部分对齐集合中的小条带对按照对齐数据块数量从大到小排序,依次寻找合并开销最小或合并开销小于阈值的小条带对,将其进行合并;对剩余的小条带使用所述StripeMerge

G算法。6.一种基于纠删码的条带合并系统,其特征在于,包括:纠删码条带预处理单元,用于执行步骤S1:S1,对若干个纠删码条带进行预处理,确定每个纠删码条...

【专利技术属性】
技术研发人员:胡燏翀姚乔日程良锋张亚哲冯丹
申请(专利权)人:华中科技大学
类型:发明
国别省市:

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

1