一种纠删码存储中负载感知的数据归档方法技术

技术编号:11100044 阅读:114 留言:0更新日期:2015-03-04 11:51
本发明专利技术公开了一种纠删码存储中负载感知的数据归档方法,包括步骤:获取纠删码存储集群中生产集群的每个节点的负载权重值,并将负载权重值存储在数组中,并根据节点负载权重值来确定不同条带在生产集群中的归档节点集合。对第i个条带,初始化其归档节点集合为空,从第i个条带的数据分布集合中选择负载权重值最高的节点,并判断该节点的负载权重值是否大于该节点的数据块个数,如果为是,则将该节点对应的数据块填充在该条带的归档节点集合中,并更新所涉及节点的负载权重值;如果为否,则选择该条带数据分布集合中负载权值第二高的节点。本发明专利技术解决了现有方法中编码节点不考虑节点权值,仅从固定节点获取条带上所有数据块而导致的性能瓶颈问题。

【技术实现步骤摘要】
一种纠删码存储中负载感知的数据归档方法
本专利技术属于计算机存储
,更具体地,涉及一种纠删码存储中负载感知的数据归档方法。
技术介绍
分布式存储集群利用本身不可靠的单节点提供的冗余数据保证数据的可靠性。在GFS,HDFS和amazonS3等分布式存储环境下采用三副本的冗余方式,在三副本的情况下可以很好地获得数据可靠性以及负载均衡特性。在大规模集群中,三副本带来的缺陷是存储效率低,进而存储成本过高。对于数据一次写多次读集群环境,纠删码数据归档,可以有效的提高存储效率。大规模集群环境下,由于不同方式的I/O服务请求导致集群中节点的异构。在归档过程中归档速度过慢的节点是影响归档性能的重要因素。传统上是使用基于Reed-Solomon(简称RS)编码的归档方法,即RS(N,K)码归档方法,如果满足HDFS机架感知的三副本数据需要归档,该集中式归档过程包括以下六步:(I)集群管理节点向归档管理节点提交数据归档请求;(II)归档管理节点向数据生产集群提交一个条带上K个数据块的请求;(III)生产集群依据归档管理节点数据请求,从K个数据块的三副本中随机选取一个副本发送给归档管理节点;(Ⅳ)归档管理节点由接收的K个数据块编码生成N个块的归档条带,发送给归档集群;(Ⅴ)重复步骤(Ⅱ)(Ⅲ)(Ⅳ)直到编码生成所有归档数据;(Ⅵ)删除生产集群中旧有的三个副本的数据。如图1所示,为传统的HDFS集群的集中式归档过程,该过程是对于一个条带上的K个数据块{D1,D2,D3,...Dk},随机选取三副本中的一个副本,将该副本数据发送给归档管理节点,归档节点对这K个数据块进行RS编码计算,得到r(r=N-K)个校验分块{P1,P2,…,Pr},归档管理节点将K个数据块以及r个校验块发送给归档集群,重复之前的步骤完成不同条带上的数据归档。如图2所示是传统的集中式归档流程图。在上述的传统集中式归档过程中,如果生产集群中各个节点的负载相近,并且归档管理节点的网络带宽以及性能远远高于生产集群中节点,则生产集群中负载过大的节点和归档管理节点不会成为归档过程中的性能拼颈。但是,当生产集群中的各个节点负载相差很大,归档管理节点带宽以及性能与生产集群节点相近时,传统的集中式归档会存在如下两方面问题:一方面,在归档管理节点在生产集群中拉取数据时,得到K个数据块的时间,取决于K个数据块中最晚到达的数据块的时间,当生产集群中某一个提供数据的节点负载过重,发送数据块给编码节点的时间过长,编码节点一直在等待数据,该节点就会成为单条带归档过程中的性能瓶颈。另一方面,归档管理节点是整个归档过程的“中心节点”,完成所有条带的归档请求,所有的数据块都是经过归档管理节点,由生产集群到归档集群。对于单条带的归档过程,归档管理节点需要等待K个数据块到达才能进行编码操作,归档管理节点接收数据过程是影响单条带归档的主要因素;对于整个归档过程,所有条带的数据归档都是由归档管理节点完成,这样在归档节点带宽与性能与生产集群中节点相近时,归档管理节点会成为整个归档过程的性能瓶颈。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供了一种纠删码存储中负载感知的数据归档方法,其目的在于,解决现有集中式归档方法中存在的编码节点一直在等待数据从而成为单条带归档过程中的性能瓶颈、以及所有归档编码任务均有归档管理节点完成所形成的该管理节点成为整个归档过程的性能瓶颈的技术问题。为实现上述目的,按照本专利技术的一个方面,提供了一种纠删码存储中负载感知的数据归档方法,包括如下步骤:(1)获取纠删码存储集群中生产集群的每个节点的负载权重值,并将负载权重值存储在数组中;(2)设置计数器i=1;(3)对第i个条带,初始化其归档节点集合为空;(4)从纠删码存储集群中的管理节点读取数据分布位图,以获取不同条带在生产集群中的数据分布集合;(5)从纠删码存储集群的第i个条带的数据分布集合中选择负载权重值最高的节点,并判断该节点的负载权重值是否大于该节点的数据块个数,如果大于则进入步骤(6),否则进入步骤(9);(6)将该节点对应的数据块填充在该条带的归档节点集合中,将该数据块的三个副本均从该条带的数据分布集合中删除,并将该节点对应的负载权重值减去该节点添加至归档节点集合中的数据块数量。(7)重复上述步骤(5)和步骤(6),直到第i个条带的数据分布集合变为全空为止;(8)设置计数器i=i+1,并返回步骤(3);(9)计时器启动,根据上述步骤(2)至步骤(8)得到的条带的归档节点集合对该条带中的数据块进行分布式编码,以得到校验块,并将该校验块发送到归档集群;(10)在T2时间点观察生产集群中的每个节点,并判断其数据块的编码是否完成,如果完成则根据步骤(1)计算该节点的负载权重值,否则根据该节点的数据块已经被编码的数量减去未完成编码的数据块数量作为该节点的负载权重值;(11)重复步骤(2)至步骤(10),直到每个节点的数据块均被编码完成为止。优选地,步骤(1)具体为,首先,计算生产集群中节点j的过去T1时间内的AJPPTj值,其次,计算生产集群中节点j的ARJPj值,再计算T2时间内节点j的负载权重值Wj:Wj=T2*(AJPPTj-ARJPj)/BS,其中BS为数据块大小,最后,将所有生产节点的负载权重值存入数组中,其中,AJPPTj表示节点j在单位处理时间内任务长度的平均值,ARJPj表示节点j每秒所接收的任务数。优选地,步骤(9)具体包括以下子步骤:(9-1)对于每一个条带的归档节点集合ANS,依据每个节点的数据块个数由多到少进行排序;(9-2)依据由多到少的排序结果,由数据块少的节点发送数据至数据块多的节点,当某个节点的数据块个数累计>=(N-K)个时,该节点作为编码节点进行流水线式编码,以生成校验块,其中K表示原始分块的个数,N表示编码生成的编码分块的个数;(9-3)判断条带中所有数据编码是否完成,若是,则将校验块发送到编码集群,否则返回步骤(9-2)。按照本专利技术的另一方面,提供了一种纠删码存储中负载感知的数据归档系统,其特征在于,包括:第一模块,用于获取纠删码存储集群中生产集群的每个节点的负载权重值,并将负载权重值存储在数组中;第二模块,用于设置计数器i=1;第三模块,用于对第i个条带,初始化其归档节点集合为空;第四模块,用于从纠删码存储集群中的管理节点读取数据分布位图,以获取不同条带在生产集群中的数据分布集合;第五模块,用于从纠删码存储集群的第i个条带的数据分布集合中选择负载权重值最高的节点,并判断该节点的负载权重值是否大于该节点的数据块个数,如果大于则进入第六模块,否则进入第九模块;第六模块,用于将该节点对应的数据块填充在该条带的归档节点集合中,将该数据块的三个副本均从该条带的数据分布集合中删除,并将该节点对应的负载权重值减去该节点添加至归档节点集合中的数据块数量;第七模块,用于重复上述第五模块和第六模块,直到第i个条带的数据分布集合变为全空为止;第八模块,用于设置计数器i=i+1,并返回第三模块;第九模块,用于计时器启动,根据上述第二模块至第八模块得到的条带的归档节点集合对该条带中的数据块进行分布式编码,以得到校验块,并将该校验块发送到归档集群;第十模块,用于在T2时间点观察生产集本文档来自技高网
...
一种纠删码存储中负载感知的数据归档方法

【技术保护点】
一种纠删码存储中负载感知的数据归档方法,其特征在于,包括如下步骤:(1)获取纠删码存储集群中生产集群的每个节点的负载权重值,并将负载权重值存储在数组中;(2)设置计数器i=1;(3)对第i个条带,初始化其归档节点集合为空;(4)从纠删码存储集群中的管理节点读取数据分布位图,以获取不同条带在生产集群中的数据分布集合;(5)从纠删码存储集群的第i个条带的数据分布集合中选择负载权重值最高的节点,并判断该节点的负载权重值是否大于该节点的数据块个数,如果大于则进入步骤(6),否则进入步骤(9);(6)将该节点对应的数据块填充在该条带的归档节点集合中,将该数据块的三个副本均从该条带的数据分布集合中删除,并将该节点对应的负载权重值减去该节点添加至归档节点集合中的数据块数量。(7)重复上述步骤(5)和步骤(6),直到第i个条带的数据分布集合变为全空为止;(8)设置计数器i=i+1,并返回步骤(3);(9)计时器启动,根据上述步骤(2)至步骤(8)得到的条带的归档节点集合对该条带中的数据块进行分布式编码,以得到校验块,并将该校验快发送到归档集群;(10)在T2时间点观察生产集群中的每个节点,并判断其数据块的编码是否完成,如果完成则根据步骤(1)计算该节点的负载权重值,否则根据该节点的数据块已经被编码的数量减去未完成编码的数据块数量作为该节点的负载权重值;(11)重复步骤(2)至步骤(10),直到每个节点的数据块均被编码完成为止。...

【技术特征摘要】
1.一种纠删码存储中负载感知的数据归档方法,其特征在于,包括如下步骤:(1)获取纠删码存储集群中生产集群的每个节点的负载权重值,并将负载权重值存储在数组中;(2)设置计数器i=1;(3)对第i个条带,初始化其归档节点集合为空;(4)从纠删码存储集群中的管理节点读取数据分布位图,以获取不同条带在生产集群中的数据分布集合;(5)从纠删码存储集群的第i个条带的数据分布集合中选择负载权重值最高的节点,并判断该节点的负载权重值是否大于该节点的数据块个数,如果大于则进入步骤(6),否则进入步骤(9);(6)将该节点对应的数据块填充在该条带的归档节点集合中,将该数据块的三个副本均从该条带的数据分布集合中删除,并将该节点对应的负载权重值减去该节点添加至归档节点集合中的数据块数量;(7)重复上述步骤(5)和步骤(6),直到第i个条带的数据分布集合变为全空为止;(8)设置计数器i=i+1,并返回步骤(3);(9)计时器启动,根据上述步骤(2)至步骤(8)得到的条带的归档节点集合对该条带中的数据块进行分布式编码,以得到校验块,并将该校验块发送到归档集群;(10)在T2时间点观察生产集群中的每个节点,并判断其数据块的编码是否完成,如果完成则根据步骤(1)计算该节点的负载权重值,否则根据该节点的数据块已经被编码的数量减去未完成编码的数据块数量作为该节点的负载权重值;(11)重复步骤(2)至步骤(10),直到每个节点的数据块均被编码完成为止。2.根据权利要求1所述的数据归档方法,其特征在于,步骤(1)具体为:首先,计算生产集群中节点j的过去T1时间内的AJPPTj值,其次,计算生产集群中节点j的ARJPj值,再计算T2时间内节点j的负载权重值Wj:Wj=T2*(AJPPTj-ARJPj)/BS,其中BS为数据块大小,最后,将所有生产节点的负载权重值存入数组中,其中,AJPPTj表示节点j在单位处理时间内任务长度的平均值,ARJPj表示节点j每秒所接收的任务数。3.根据权利要求1所述的数据归档方法,其特征在于,步骤(9)具体包...

【专利技术属性】
技术研发人员:黄建忠曹强谢长生代尔卫罗海兵
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北;42

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

1