基于条带合并的局部可修复码冗余度转换方法及存储介质

文档序号:30266730发布日期:2022-06-02 04:31阅读:178来源:国知局
基于条带合并的局部可修复码冗余度转换方法及存储介质

1.本发明涉及计算机存储系统容错相关的纠删码技术领域,具体涉及一种基于条带合并的局部可修复码冗余度转换方法及存储介质。


背景技术:

2.基于大数据时代的到来,使得工业界和学术界在数据存储领域开展了广泛的研究。为了对系统用户屏蔽节点故障,容错存储技术近年来成为研究的热点,纠删码技术以其低存储开销、弹性可调的容错度在非频繁更新的需求场景中逐渐取代了传统的多副本容错技术。纠删码通过将数据组织成条带,并且为原始数据增添一定量的校验计算,使得在部分数据丢失时,可以通过条带中剩余的原数据和校验计算结果重新恢复丢失的数据。特别地,局部可修复码由于具备更高效的修复能力,减少了修复所需时间,使得系统的可用性大大提高,被各大互联网企业广泛使用。
3.为了应对随时间变化的容错冗余度要求以及动态可变的工作负载,现代存储系统往往需要利用冗余度转换来调节容错带来的存储开销,以保证系统性能。2018年出版的《usenix文件和存储技术会议》提出调整纠删码的参数实现纠删码冗余度的转换可以满足不同冷热程度数据的容错需求。2015年出版的《usenix文件和存储技术会议》,2020年出版的《ieee国际通信网络会议》也提到了倾斜和动态工作负载下,冗余度转换机制的高效与否决定了系统的性能。同时,2021年出版的《usenix文件和存储技术会议》对于超宽条带的研究指出,冗余度转换也是宽带条生成过程中可以采用的一种方法。因此,高效的冗余转换机制对面向数据中心的现代存储系统而言至关重要。
4.然而,现有的冗余度转换机制的研究主要关注从多副本到纠删码的冗余度转换,而针对于纠删码不同参数间的冗余度转换相对较少。并且,大型数据中心通常是集群化部署的,但现有的转换机制忽略了集群部署的场景的特殊性从而不能达到最优的性能。
5.因此,有必要研究集群化存储系统高效的冗余度转换机制,本发明即专门为集群部署下的局部修复码设计的一套冗余度转换方法。


技术实现要素:

6.本发明提出的一种基于条带合并的局部可修复码冗余度转换方法,具体为集群部署环境下实现局部可修复码高效冗余转换的方法,可至少解决上述技术问题之一。
7.为实现上述目的,本发明采用了以下技术方案:
8.一种基于条带合并的局部可修复码冗余度转换方法,包括以下步骤:
9.第一步:单条带最优放置策略
10.针对转换前局部修复码编码的条带,记录配置参数:数据块块数k,局部校验块块数l,全局校验块块数g;根据参数,计算出单条带放置策略的局部性指标r=k/l;根据指标r和g+1的数量关系对单条带进行放置。
11.第二步:多条带最优放置策略
12.记录参与合并的条带数x,并将转换后的目标冗余度对应换算为上述配置参数中全局校验块块数g’,在单条带使用第一步的策略放置之后,再分类考虑多条带放置的最优策略;当转换后的新条带的参数g’,等于参与合并的条带数x,与参与合并的旧条带的参数g的乘积,即x*g=g’时,采用聚集型多条带放置策略;当转换后的新条带的参数g’,等于参与合并的旧条带的参数g时,采用分离型多条带放置策略。
13.第三步:多条带合并冗余度转换
14.该步骤重新计算合并后条带的全局校验块,任意选择一个不包含参与合并的条带中的数据块的新集群c,在该集群中选择g’个节点以及其中的一个转发服务器,g’个最终节点负责存储新条带的全局校验块,由原条带中各集群中数据块所在集群各任选一个工作服务器。工作服务器对比本集群中包含的所有需要合并条带的数据块块数a与g’的大小关系,在本集群下载原条带所有数据块,选择仅转发下载所得的数据块和计算中间结果后再转发到最终的c集群的较优者;由g’个最终节点计算新条带全局校验块,计算完成后,新条带所在各集群根据最优放置策略需要满足的性质,如有必要,迁移出一部分数据块到新集群,完成x个条带合并为新条带的冗余度转换。
15.又一方面,本发明还公开一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如上述方法的步骤。
16.再一方面,本发明还公开一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上方法的步骤。
17.由上述技术方案可知,本发明的基于条带合并的局部可修复码冗余度转换方法,在保证系统容错能力不受影响的情况下,可以节省存储开销,并提高存储系统的可用性。该方法适用于以局部修复码编码的集群化存储系统,相比现有方法,该方法考虑了集群部署场景下的网络特征,实现高效的冗余度转换。一方面,本发明包括局部修复码的放置策略,使得单条带在转换前后容错性能和修复性能达到最优;另一方面,使得冗余度转换过程中使数据传输开销最低,从而能更有效利用地数据中心带宽资源。
18.总的来说,本发明使用条带合并进行冗余度转换,能有效减少转换过程中跨集群的数据传输,在集群部署场景下,有效地节省了带宽,提升系统网络资源利用率;并且,通过单条带和多条带放置策略,能够在冗余度转换前后保持系统的高容错性和高可用性。
附图说明
19.图1为本发明实施例提供的一种基于条带合并的局部可修复码的冗余度转换方法的流程图;
20.图2为本发明实施例提供的集群存储系统架构示意图;
21.图3为本发明实施例提供的单条带放置策略示意图;
22.图4为本发明实施例提供的多条带放置策略示意图;
23.图5为本发明实施例提供的聚集型多条带冗余度转换过程示意图;
24.图6为本发明实施例提供的多条带随机放置示意图;
25.图7为本发明实施例提供的分离型多条带冗余度转换过程示意图;
26.图8为本发明实施例提供的分离型随机放置多条带冗余度转换过程示意图。
具体实施方式
27.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
28.如图1所示,本实施例所述的基于条带合并的局部可修复码冗余度转换方法,包括以下步骤:
29.第一步:单条带最优放置策略
30.针对转换前局部修复码编码的条带,记录配置参数:数据块块数k,局部校验块块数l,全局校验块块数g;根据参数,计算出单条带放置策略的局部性指标r=k/l;根据指标r和g+1的数量关系对单条带进行放置。
31.第二步:多条带最优放置策略
32.记录参与合并的条带数x,并将转换后的目标冗余度对应换算为上述配置参数中全局校验块块数g’,在单条带使用第一步的策略放置之后,再分类考虑多条带放置的最优策略;当转换后的新条带的参数g’,等于参与合并的条带数x,与参与合并的旧条带的参数g的乘积,即x*g=g’时,采用聚集型多条带放置策略;当转换后的新条带的参数g’,等于参与合并的旧条带的参数g时,采用分离型多条带放置策略。
33.第三步:多条带合并冗余度转换
34.该步骤重新计算合并后条带的全局校验块,任意选择一个不包含参与合并的条带中的数据块的新集群c,在该集群中选择g’个节点以及其中的一个转发服务器,g’个最终节点负责存储新条带的全局校验块,由原条带中各集群中数据块所在集群各任选一个工作服务器。工作服务器对比本集群中包含的所有需要合并条带的数据块块数a与g’的大小关系,在本集群下载原条带所有数据块,选择仅转发下载所得的数据块和计算中间结果后再转发到最终的c集群的较优者;由g’个最终节点计算新条带全局校验块,计算完成后,新条带所在各集群根据最优放置策略需要满足的性质,如有必要,迁移出一部分数据块到新集群,完成x个条带合并为新条带的冗余度转换。
35.以下具体说明,
36.如图1所示,一种基于条带合并的局部可修复码的冗余度转换方法,包括如下步骤:
37.步骤1、基于系统初始的配置要求,记录转换前局部可修复码条带的数据块块数k,局部校验块块数l,全局校验块块数g;由初始参数k,l,g,计算单条带的最优放置策略。本发明实施例中,对集群中每一数据块和校验块都进行了编号,其中,所述的数据块编号为di,局部校验块编号为li,全局校验块编号为gi;编号从小到大代表了条带中数据块编码时的顺序关系,即l0局部校验块与对应从d0开始到d(k/l-1)的数据块构成一个局部校验组,以此类推。
38.本发明实施例使用图2所示的集群部署架构,其中虚线框表示集群,虚线框中的实线框表示服务器,数据块和校验块存放在服务器中(为简洁起见,本发明实施例后续将直接用数据块和校验块代表它们所存储的服务器而直接略去服务器)集群间通过网络核心进行跨集群通信;由于集群化部署场景下,跨集群的带宽资源相比集群内的带宽资源明显受限,因此在本发明中,修复时的数据传输开销只考虑起决定性作用的跨集群传输数据量。
39.本发明实施例中,局部可修复码单条带最优放置策略步骤包括:
40.2)通过数据块块数k与局部校验块块数l计算出局部性指标r,公式为r=k/l。
41.2)根据局部性指标r与全局校验块块数g的数值关系,分为三种情况;当满足r《g时,将局部校验块特化为全局校验块,全局校验块退化为局部校验块,可归结为后两种情况,以下两种情况一定为r》=g的情况;当满足r%(g+1)=0时,这种情况可以在恰好在每一个集群中分配(g+1)个服务器存储同一个局部组的(g+1)块数据块,客户端将数据以固定大小切分成数据块后依次发送到服务器;之后,客户端编码计算单元计算出l块局部校验块和g块全局校验块,并发送至同一个集群的服务器中,每一个服务器存储一个校验块;当m=r%(g+1)≠0时,将每一个局部组(g+1)块数据块按上一种情况的放置方法发送到同一个集群的(g+1)台服务器,此时每一个局部组各余留m块数据块,与此局部组对应的一块局部校验块一共m+1块视作一个整体,放入(g/(m+1))个这样的整体上传到同一个集群的服务器直至所有数据块都已被成功存储,最后将所有的全局校验块分配给一个单独的服务器集群。
42.下面以6-2-2以及8-2-2配置参数为例,展示按上述步骤操作后,单条带在集群系统中的布局,分别如图3上下所示。本领域技术人员应该能够验证理解,本发明实施例给出的单条带放置策略是最优的,该放置策略能容忍单节点故障的同时,进一步能容忍单集群故障,并且数据块所在节点故障时修复代价最低。
43.步骤2、根据冗余度转换后新条带的全局校验块块数g’,基于条带合并方式实现冗余度转换可分为两种情况;当g’=x*g时,采用聚集型放置策略,记步骤1中生成的单条带放置策略存储有数据块的集群数为c,取c个集群,将x个条带均按照步骤1生成的放置策略放置,且每个条带选取存储数据块的集群时仅在之前取定的c个集群中选择,但顺序可不完全相同;当g’=g时,取x*c个集群,同样将x个条带均按照步骤1生成的放置策略放置,每个条带选取存储数据块的集群时仅在之前取定的x*c个集群中选择,且在放置第n个条带时,不能选择之前n-1个条带已选定的任何一个集群。
44.下面以合并6-2-2参数的x=2个局部可修复码编码的条带,目标为生成12-4-2,12-4-4的新条带来进行冗余度转换为例,展示按上述步骤操作后,2个条带在集群系统中的聚集型放置策略和分离型放置策略,分别如图4上下所示。
45.步骤3、由步骤2放置的2个条带合并生成的目标冗余度的新条带,完成冗余度转换,根据转换的两种情况,具体步骤分别如下:
46.当新条带有2*g=2*2=4个全局校验块时,由步骤2采取的聚集型放置策略,其中存储有数据块的集群为c0、c1,过程如图5所示:
47.步骤a、在存储有数据块的集群中各选取一个工作服务器,由这些工作服务器从其所在集群中的其他服务器中,下载被合并的2个条带中,分布在本集群中的所有数据块,并在本地计算g’=4块全局校验块的局部中间计算结果,存储在本工作服务器中。在图5中,以c0集群为例说明,选择d0数据块所在服务器为c0集群的工作服务器,由其负责从d1、d2、d6、d7、d8所在服务器下载d1、d2、d6、d7、d8数据块,下载完成后连同本地已有的d0数据块进行局部中间结果计算,计算所得为4块局部中间结果,存储于本地。c1集群亦同理,此处精简起见,略去对其描述。
48.步骤b、另选取一个集群,并指定g’=4个服务器作为最终存放新条带全局校验块的服务器;由步骤a中的各集群的工作服务器将已计算的局部中间结果分别发送给这4个最
终节点;最终节点服务器接收到所有局部中间计算结果后,将它们聚合计算为合并后新条带的全局校验块后,存储于本节点。在图5中,以选中c3集群为例,工作服务器(即d0、d3所在服务器)将上一步骤计算所得4块局部中间结果分别经c3集群的转发服务器g’0发送至c3集群选定的4个最终服务器。每个最终服务器都已收到2个工作服务器发送的局部中间结果后,计算出新条带的全局校验块,存储于本地。
49.步骤c、由本发明专利的多条带最优放置策略,合并后的新条带同样具有合并前单条带满足的性质:容忍单节点的故障,且能进一步容忍单集群故障,并且数据块的修复代价最低,不再需要额外迁移数据块到新集群。
50.作为对照,图6给出一种多条带仅采取随机放置的情况,在此布局情况下,若要合并成12-4-4参数的新条带完成冗余度转换,则在步骤a中,d0、d3、d9分别选为工作服务器,在步骤b中,c0集群一共有6个数据块,而传送局部中间计算结果只需要传送4块局部计算结果,相比之下开销较小,因此需要传送4块局部中间计算结果,而d3、d9工作服务器则传送原数据块代价更低。由于跨集群数据传输为决定性因素,本发明专利方案下此需求一共需要8块,而随机放置方案需要10块,对比可体现出本发明专利方案的优越性。
51.当新条带有g=2个全局校验块时,由步骤2采取的分离型放置策略,其中存储有数据块的集群为,过程如图6所示:
52.步骤a、在存储有数据块的集群中各选取一个工作服务器,由这些工作服务器从其所在集群中的其他服务器中,下载被合并的2个条带中,分布在本集群中的所有数据块,并在本地计算g’=2块全局校验块的局部中间计算结果,存储在本工作服务器中。在图6中,以c0集群为例说明,d0数据块所在服务器为c0集群的工作服务器,由其负责从d1、d2所在服务器下载d1、d2数据块,并与本地已有的d0数据块进行局部中间结果计算,计算所得为2块局部中间结果,存储于本地。c1、c3、c4集群同理,此处精简起见,略去对其描述。
53.步骤b、另选取一个集群,并指定g’=2个服务器作为最终存放新条带全局校验块的节点;由步骤a中的各集群的工作服务器将已计算的局部中间结果分别发送给这4个最终节点;最终节点服务器接收到所有局部中间计算结果后,在本地将它们聚合计算为合并后新条带的全局校验块后存储于本节点。
54.步骤c、由本发明专利的多条带最优放置策略,合并后的新条带同样具有合并前单条带满足的性质:容忍单节点的故障,且能进一步容忍单集群故障,并且数据块的修复代价最低,不再需要额外迁移数据块到新集群。
55.作为对照,图给出多条带仅采取随机放置的情况,在此布局情况下,合并成12-4-2参数的新条带完成冗余度转换,需要在步骤a中,d0、d3、d9被选为工作服务器,在步骤b中,均为传送局部中间计算代价更低,因此共需要传送6块局部计算结果,同时在步骤c中将d6、d7、d8数据块迁移至新集群(图示中为c4)。由于跨集群数据传输为决定性因素,本发明专利方案下此需求一共需要8块,而随机方案需要9块,因此,对比可体现出本发明专利方案的优越性:
56.完成上述操作后,此时新条带满足最优放置策略,通过调节全局检验块的数量,实现了冗余度的调整,即通过上述流程,基于本专利提出的条带合并,最终完成了冗余度转换,同时本领域专业技术人员可以理解并自行验证,使用本发明上述的放置策略,相比随机放置策略,转换开销更低。
57.在本技术提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一基于条带合并的局部可修复码冗余度转换方法的步骤。
58.在本技术提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一基于条带合并的局部可修复码冗余度转换方法。
59.再一方面,本发明还公开一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上方法的步骤。
60.可理解的是,本发明实施例提供的系统与本发明实施例提供的方法相对应,相关内容的解释、举例和有益效果可以参考上述方法中的相应部分。
61.本技术实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信,
62.存储器,用于存放计算机程序;
63.处理器,用于执行存储器上所存放的程序时,实现上述基于条带合并的局部可修复码冗余度转换方法;
64.上述电子设备提到的通信总线可以是外设部件互连标准(英文:peripheral component interconnect,简称:pci)总线或扩展工业标准结构(英文:extended industry standard architecture,简称:eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。
65.通信接口用于上述电子设备与其他设备之间的通信。
66.存储器可以包括随机存取存储器(英文:random access memory,简称:ram),也可以包括非易失性存储器(英文:non-volatile memory,简称:nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
67.上述的处理器可以是通用处理器,包括中央处理器(英文:central processing unit,简称:cpu)、网络处理器(英文:network processor,简称:np)等;还可以是数字信号处理器(英文:digital signal processing,简称:dsp)、专用集成电路(英文:application specific integrated circuit,简称:asic)、现场可编程门阵列(英文:field-programmable gatearray,简称:fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
68.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者
是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
69.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
70.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
71.以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1