提升分布式存储集群中LRC码修复性能的方法、装置及系统制造方法及图纸

技术编号:22329907 阅读:40 留言:0更新日期:2019-10-19 12:14
本发明专利技术公开了一种提升分布式存储集群中LRC码修复性能的方法、装置及系统,属于计算机存储领域,包括:执行LRC编码以生成相应的条带;对于每一个条带,将其中的每一个局部组进一步划分为一个或多个小分组后,将同一个小分组内的编码块放置到同一个机架中的不同节点,不同的小分组放置到不同机架中;对单个编码块进行修复时,获得待修复编码块所在的目标小分组,以及同一局部组内的其他小分组;在各小分组所在机架内,由中继节点收集同一小分组内的编码块,并解码得到中间结果;在目标小分组所在机架内,由目标节点收集中间结果后,解码以修复得到待修复的编码块并存储该编码块,从而完成修复操作。本发明专利技术能够提升分布式存储集群中LRC码的修复性能。

Methods, devices and systems for improving LRC code repair performance in distributed storage cluster

【技术实现步骤摘要】
提升分布式存储集群中LRC码修复性能的方法、装置及系统
本专利技术属于计算机存储领域,更具体地,涉及一种提升分布式存储集群中LRC码修复性能的方法、装置及系统。
技术介绍
随着信息技术的快速发展,需要存储的数据量不断增大,大规模的分布式存储集群获得了广泛的应用廉价存储设备的应用也逐渐变得广泛。而随着存储规模的增大、廉价磁盘数目的增多,分布式存储集群中磁盘发生故障的概率也在上升,从而导致存储系统的可靠性面临严峻的挑战。为了保证存储系统的可靠性,大多数存储系统都使用了容错技术。LRC码(locallyrepairablecodes,局部性修复编码)是一种重要的存储容错技术,已经应用在Microsoft和Facebook的分布式存储集群中。LRC码在RS码(Reed-solomoncodes,里所码)的基础上,将条带内的编码块分组,每一个分组称为一个局部组,再对每个局部组内的块进行编码生成一个额外的局部校验块,单个块丢失时,只需同局部组内的其它块的数据解码即可恢复丢失的数据。现代分布式存储集群大多具有层次架构,一个机架包含多台服务器,再由多个机架组成一个集群。分布式存储集群的层次架构使得节点间的网络传输被分为机架内传输和机架间传输,机架内传输带宽比较富余,机架间传输带宽则相对紧张,对于某个节点来说,二者的可用量可能相差5-20倍。例如,在Google的存储集群中,机架间访问吞吐量仅为机架内访问吞吐量的约十分之一。而目前,在分布式存储集群中,为了最大化故障域,提高容错能力,往往将同一条带的编码块放入不同机架的节点中,例如,相应的条带分布和修复过程都是水平的,分布式存储集群本身的层次拓扑结构被忽略或刻意消除了。这导致在分布式存储集群中执行LRC码修复操作时,消耗的都是稀缺的机架间网络带宽资源,这大大限制了分布式集群中LRC码的修复性能。
技术实现思路
针对现有技术的缺陷和改进需求,本专利技术提供了一种提升分布式存储集群中LRC码修复性能的方法、装置及系统,其目的在于,提升分布式存储集群中LRC码的修复性能。为实现上述目的,按照本专利技术的第一方面,提供了一种提升分布式存储集群中LRC码修复性能的方法,包括:对待存储的数据块执行LRC编码,以生成相应的条带;对于每一个条带,将其中的每一个局部组进一步划分为一个或多个小分组后,将同一个小分组内的编码块放置到同一个机架中的不同节点,不同的小分组放置到不同机架中;对单个编码块进行修复时,获得待修复编码块所在的小分组,记为目标小分组,并获得与目标小分组属于同一局部组的所有小分组;在各小分组所在机架内,由中继节点通过机架内网络收集同一小分组内的编码块,并通过解码计算得到中间结果;在目标小分组所在机架内,由目标节点收集各中继节点所计算的中间结果后,通过解码计算修复得到待修复的编码块并存储该编码块,从而完成修复操作;其中,中继节点和目标节点均为相应机架内的节点。本专利技术所提供的提升分布式存储集群中LRC码修复性能的方法,在通过执行LRC码得到条带后,对条带内的局部组进一步分组,并将同一个小分组内的编码块放置到同一个机架中的不同节点,不同的小分组放置到不同机架中,由此实现了对条带的分层放置;在对单个编码块执行修复时,先由中继节点通过同一小分组内的编码块,并通过解码计算得到中间结果,然后由目标节点收集中间结果后,通过解码计算修复得到待修复的编码块并存储该编码块,由此将单个编码块的修复过程分为了机架内修复阶段和机架间修复阶段,即实现了分层修复;由于在机架内修复阶段中,仅使用机架内带宽,因此,相比于传统的LRC码修复操作,本专利技术能够将大量的机架间修复带宽转换为机架内修复带宽,使得节点故障时的降级读和节点恢复等修复操作的性能大幅提升,还能提高系统的可靠性。进一步地,本专利技术所提供的提升分布式存储集群中LRC码修复性能的方法,还包括:在对多个不同条带的单个编码块进行修复时,将单个编码块的修复操作划分为磁盘读取、机架内传输、机架内计算、机架间传输以及目标节点内计算这五个操作,并按照流水线的方式并发执行对多个编码块的修复操作。本专利技术所提供的提升分布式存储集群中LRC码修复性能的方法,通过流水线的方式并发执行对多个编码块的修复操作,能够有效提升节点恢复的效率,从而提升LRC码的修复性能,提高系统的可靠性。进一步地,各小分组的大小相等,以平衡各机架的负载。进一步地,机架内的中继节点为该机架内存储有编码块的机架,以减小机架内的数据传输,提高修复性能。进一步地,目标节点内为目标小分组所在机架内的空闲节点,以使得修复得到待修复的编码块后,可以直接由目标节点存储该编码块。按照本专利技术的第二方面,提供了一种提升分布式存储集群中LRC码修复性能的控制装置,包括:编码模块、分层放置模块以及分层修复模块;编码模块,用于对待存储的数据块执行LRC编码,以生成相应的条带;分层放置模块,用于对于由编码模块生成的每一个条带,将其中的每一个局部组进一步划分为一个或多个小分组后,将同一个小分组内的编码块放置到同一个机架中的不同节点,不同的小分组放置到不同机架中;分层修复模块,用于在对单个编码块进行修复时,获得待修复编码块所在的小分组,记为目标小分组,并获得与目标小分组属于同一局部组的所有小分组;使得各小分组所在机架内,由中继节点通过机架内网络收集同一小分组内的编码块,并通过解码计算得到中间结果;使得目标小分组所在机架内,由目标节点收集各中继节点所计算的中间结果后,通过解码计算修复得到待修复的编码块并存储该编码块,从而完成修复操作;其中,中继节点和目标节点均为相应机架内的节点。按照本专利技术的第三方面,提供了一种分布式存储集群,该分布式存储集群包括本专利技术第二方面所提供的控制装置。总体而言,通过本专利技术所构思的以上技术方案,能够取得以下有益效果:(1)本专利技术所提供的提升分布式存储集群中LRC码修复性能的方法、装置及系统,通过将同一条带的多个块放入同一机架实现了对条带的分层放置,并通过分层修复的方法将对单个编码块的修复过程分为机架内修复和机架间修复,从而将大量机架间修复带宽转换为机架内修复带宽,使得节点故障时的降级读和节点恢复等修复操作的性能大幅提升,还能提升系统的可靠性。(2)本专利技术所提供的提升分布式存储集群中LRC码修复性能的方法、装置及系统,在其优选方案中,通过流水线的方式并发执行对多个编码块的修复操作,能够有效提升节点恢复的效率,从而提升LRC码的修复性能,提高系统的可靠性。附图说明图1为本专利技术实施例提供的提升分布式集群中LRC码修复性能的方法示意图;其中,(a)为编码和编码过程示意图,(b)为修复过程示意图;图2为本专利技术实施例提供的提升分布式集群中LRC码修复性能的方法的应用实例。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。此外,下面所描述的本专利技术各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。本专利技术所提供的提升分布式存储集群中LRC码修复性能的方法,如图1所示,包括:对待存储的数据块执行LRC编码,以生成相应的条带;如图1(a)所示,以RS(m,k)编码为例,执行LRC编码后本文档来自技高网
...

【技术保护点】
1.一种提升分布式存储集群中LRC码修复性能的方法,其特征在于,包括:对待存储的数据块执行LRC编码,以生成相应的条带;对于每一个条带,将其中的每一个局部组进一步划分为一个或多个小分组后,将同一个小分组内的编码块放置到同一个机架中的不同节点,不同的小分组放置到不同机架中;对单个编码块进行修复时,获得待修复编码块所在的小分组,记为目标小分组,并获得与所述目标小分组属于同一局部组的所有小分组;在各小分组所在机架内,由中继节点通过机架内网络收集同一小分组内的编码块,并通过解码计算得到中间结果;在所述目标小分组所在机架内,由目标节点收集各中继节点所计算的中间结果后,通过解码计算修复得到待修复的编码块并存储该编码块,从而完成修复操作;其中,所述中继节点和所述目标节点均为相应机架内的节点。

【技术特征摘要】
1.一种提升分布式存储集群中LRC码修复性能的方法,其特征在于,包括:对待存储的数据块执行LRC编码,以生成相应的条带;对于每一个条带,将其中的每一个局部组进一步划分为一个或多个小分组后,将同一个小分组内的编码块放置到同一个机架中的不同节点,不同的小分组放置到不同机架中;对单个编码块进行修复时,获得待修复编码块所在的小分组,记为目标小分组,并获得与所述目标小分组属于同一局部组的所有小分组;在各小分组所在机架内,由中继节点通过机架内网络收集同一小分组内的编码块,并通过解码计算得到中间结果;在所述目标小分组所在机架内,由目标节点收集各中继节点所计算的中间结果后,通过解码计算修复得到待修复的编码块并存储该编码块,从而完成修复操作;其中,所述中继节点和所述目标节点均为相应机架内的节点。2.如权利要求1所述的提升分布式存储集群中LRC码修复性能的方法,其特征在于,还包括:在对多个不同条带的单个编码块进行修复时,将单个编码块的修复操作划分为磁盘读取、机架内传输、机架内计算、机架间传输以及目标节点内计算这五个操作,并按照流水线的方式并发执行对多个编码块的修复操作。3.如权利要求1或2所述的提升分布式存储集群中LRC码修复性能的方法,其特征在于,各小分组的大小相等。4.如权利要求1或2所述的提升分布式存储...

【专利技术属性】
技术研发人员:胡燏翀潘再余张晓阳冯丹薛愫
申请(专利权)人:华中科技大学深圳华中科技大学研究院
类型:发明
国别省市:湖北,42

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

1