一种纠删码存储中负载感知的读优化方法技术

技术编号:8862219 阅读:187 留言:0更新日期:2013-06-28 01:27
本发明专利技术公开了一种纠删码存储中负载感知的读优化方法,包括:初始化纠删码存储集群中所有节点的节点负载权重值为零,从用户接收应用访问请求,从纠删码存储集群的数据节点中任选一个数据节点,判断该数据节点是否在应用访问请求操作对应的节点号内,如果是则判断该数据节点的节点负载权重值是否大于或等于预定的阈值,若是则将纠删码存储集群中所有节点的节点负载权重值按照从小到大的顺序进行排列,读取前K个节点对应的偏移地址的分块数据,并获取读取该分块数据各自所花费的时间,并利用RS解码算法对分块数据进行解码操作。本方法能够解决传统方法在各节点负载相差很大时存在的应用访问请求的响应时间长、纠删码存储集群的可靠性低的问题。

【技术实现步骤摘要】

本专利技术属于计算机存储领域,更具体地,涉及。
技术介绍
廉价冗余磁盘阵列RAID(Redundant Array of Independent DisK)是一种将一堆磁盘通过相关的技术连接起来,构成逻辑上的空间。同时RAID可以使诸多磁盘驱动器同时传输数据,在逻辑上面这些磁盘驱动器又是被看成一个磁盘驱动器。同时对于一般的RAID来说比如RAID2、RAID3、RAID4和RAID5等都提供了相应的校验技术来进行数据的校验。通过校验技术可以保证RAID系统在某个或某些磁盘的数据出现错误的时候还可以通过校验盘的数据和其余剩余未出错盘上的数据恢复出失效数据。作为RAID码的一般化形式,纠删码也具备这种特性,如纠删码在存储集群下的应用,它能保护集群节点的数据失效,构成具有容错特性的纠删码存储集群。在传统的纠删码存储集群中读取数据的大致过程可以分为以下两步:(1)首先接收客户的访问请求,获得所请求分块数据在纠删码集群的具体位置(位于某数据节点上的具体偏移地址)。(2)根据数据节点相应的偏移地址读取出相应的分块数据,并将请求结果返回给客户。如图1所示,其为传统纠删码存储集群中的数据读过程,该过程是接收应用访问请求,直接从数据节点读取相应的分块数据返回给客户,具体不涉及对校验节点进行操作。如图2所示,其为传统纠删码存储集群中数据读的流程图。在传统纠删码存储集群中的读取数据过程中,如果各节点的负载相对比较均衡,读取各分块数据的返回时间是接近的。然而如果各节点的负载相差很大(具体表现为:从不同节点读取相应分块数据的完成时间参差不齐,相差I 2个数量级)时,传统纠删码存储集群中的读数据方法会存在以下问题:1、在纠删码存储集群中请求完成时间受限于最晚返回的分块请求,因此会导致纠删码存储集群很差的读性能,增加应用访问请求的响应时间。2、在纠删码存储集群中,此时某些节点的负载相对较轻,甚至处于空闲状态,而一些节点处于重负载状态,频繁的超重负载往往增加节点崩溃的概率,从而降低了纠删码存储集群的可靠性。
技术实现思路
针对现有技术的缺陷,本专利技术的目的在于提供,其不仅能够保证在各个节点的负载相对比较均衡时,读取应用请求的分块数据与传统纠删码集群读数据方法有相同的性能,同时能够解决传统纠删码集群读数据方法在各节点负载相差很大时存在的应用访问请求的响应时间长、纠删码存储集群的可靠性低的问题。为实现上述目的,本专利技术提供了,其是应用于纠删码存储集群中,该方法包括以下步骤:( I)初始化纠删码存储集群中所有节点的节点负载权重值为零;(2)从用户接收应用访问请求;(3)从纠删码存储集群的数据节点中任选一个数据节点;(4)判断该数据节点是否在应用访问请求操作对应的节点号内,如果是则进入步骤(5),否则转入步骤(10);(5)判断该数据节点的节点负载权重值是否大于或等于预定的阈值,若是则转入步骤(6),否则转入步骤(10);(6)将纠删码存储集群中所有节点的节点负载权重值按照从小到大的顺序进行排列;(7)读取前K个节点对应的偏移地址的分块数据,并获取读取该分块数据各自所花费的时间,并利用RS解码算法对读取的前K个节点对应的偏移地址的分块数据进行解码操作;(8)使用步骤(7)获取的前K个节点中各个节点的时间替换该节点最近M次被访问中第一次被访问的响应时间;(9)从解码后的分块数据中选取应用访问请求对应的分块数据,将该分块数据返回给用户,然后转入步骤(12);(10)读取应用访问请求指定的各个节点对应的偏移地址的分块数据,并获取应用访问请求指定的各个节点读取分块数据所花费的时间,并将分块数据返回给用户;(11)使用步骤(10)获取的各个节点的时间替换该节点最近M次被访问中第一次被访问的响应时间;(12)从用户接收下一条应用访问请求,并判断该应用访问请求是否是结束命令,如果是则过程结束,否则将纠删码存储集群中所有节点的节点负载权重值按照从小到大的顺序进行排列,从中选取节点负载权重值最大的数据节点,并返回步骤(4)。应用访问请求包括节点号、偏移、大小和跨越四个元素。阈值的取值范围是50至100毫秒。数据节点的节点负载权重值是通过计算该数据节点最近M次被访问的响应时间之和来获得,M的取值范围是5至10。通过本专利技术所构思的以上技术方案,与现有技术相比,本专利技术具有以下的有益效果:1、在各个节点负载不均衡的情况下响应时间短:由于采用了步骤(5)、步骤(6)以及步骤(7)三个步骤对负载权重值最大的节点进行调度处理,减少了该情况下的响应时间。2、提高纠删码存储集群的可靠性:由于采用了步骤(5)、步骤(6)、步骤(7)、步骤(8)和步骤(9)对负载权重值最大的节点进行调度,一定程度上平衡了各个节点的负载情况,降低了纠删码存储集群中各个节点因频繁的超负载而崩溃的概率,从而提高整个纠删码存储集群的可靠性。附图说明图1为传统数据读示意图。图2为传统纠删码存储集群数据读流程图。图3为纠删码存储集群中各节点的条带与分块数据示意图。图4为RS (N, K)编码的结构组成图。图5为本专利技术数据读示意图。图6为本专利技术纠删码存储中负载感知的读优化方法的流程图。图7为RS (8,5)编码应用访问请求分布图。具体实施例方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。以下首先就本专利技术的技术术语进行解释和说明:节点负载权重:在本专利技术中以Load_weight表示,其指示节点在一段时间窗口内的负载情况,负载权重值(LoacLweight)还可以用许多状态量如CPU利用率、存储空间、I/O带宽等表征。在本专利技术中,用负载权重值(Load_weight)表示节点在一段时间窗口内的平均请求响应时间。Load_weight值越大表示节点的负载越重,负载权重值(Load_weight)的取值可以是任意的正数。调度层:本专利技术中在客户层和底层节点之间增加一调度功能模块,充当I/O调度层,其主要任务是维护纠删码存储集群中各个节点的负载权重值(LoacLweight)。分块数据和数据条带以及偏移地址:节点的分块数据表示节点中一定大小的数据块。如图3中所示的分块数据Du、Dcu…、D0,^等即为数据节点上的分块数据,校验分块P。,。、Pcu等即为校验节点上的分块数据。偏移地址表示为相对于节点首地址的偏移量。如图3中所示的0、1...η-1、η表示的离节点首地址偏移量为0*512字节、1*512字节…(η_1)*512字节、η*512字节的位置。所有节点上相同偏移地址的各个分块数据构成一个数据条带。在图3中表示为分块数据Dci^Dcu-Dtl,,这N块分块数据组成一个数据条带。如图3所示一分块数据的大小为512字节。本专利技术提供了,其采用RS(N, K)编码,即水平Vandermondev Reed-Solomon编码,如图4所示,其中K表示存储集群中数据节点数目,N表示存储集群中节点的总数(具体表示为:存储集群中节点总数为数据节点数目与校验节点数目之和,即校验节点数目为(Ν-Κ)),对于节点数N处于重构时间考虑,节点数通常低于20,比如微软Azure存储中,参数K=12,(N-K)=4,这本文档来自技高网
...

【技术保护点】
一种纠删码存储中负载感知的读优化方法,其是应用于纠删码存储集群中,其特征在于,该方法包括以下步骤:(1)初始化纠删码存储集群中所有节点的节点负载权重值为零;(2)从用户接收应用访问请求;(3)从纠删码存储集群的数据节点中任选一个数据节点;(4)判断该数据节点是否在应用访问请求操作对应的节点号内,如果是则进入步骤(5),否则转入步骤(10);(5)判断该数据节点的节点负载权重值是否大于或等于预定的阈值,若是则转入步骤(6),否则转入步骤(10);(6)将纠删码存储集群中所有节点的节点负载权重值按照从小到大的顺序进行排列;(7)读取前K个节点对应的偏移地址的分块数据,并获取读取该分块数据各自所花费的时间,并利用RS解码算法对读取的前K个节点对应的偏移地址的分块数据进行解码操作;(8)使用步骤(7)获取的前K个节点中各个节点的时间替换该节点最近M次被访问中第一次被访问的响应时间;(9)从解码后的分块数据中选取应用访问请求对应的分块数据,将该分块数据返回给用户,然后转入步骤(12);(10)读取应用访问请求指定的各个节点对应的偏移地址的分块数据,并获取应用访问请求指定的各个节点读取分块数据所花费的时间,并将分块数据返回给用户;(11)使用步骤(10)获取的各个节点的时间替换该节点最近M次被访问中第一次被访问的响应时间;(12)从用户接收下一条应用访问请求,并判断该应用访问请求是否 是结束命令,如果是则过程结束,否则将纠删码存储集群中所有节点的节点负载权重值按照从小到大的顺序进行排列,从中选取节点负载权重值最大的数据节点,并返回步骤(4)。...

【技术特征摘要】
1.一种纠删码存储中负载感知的读优化方法,其是应用于纠删码存储集群中,其特征在于,该方法包括以下步骤: (1)初始化纠删码存储集群中所有节点的节点负载权重值为零; (2)从用户接收应用访问请求; (3)从纠删码存储集群的数据节点中任选一个数据节点; (4)判断该数据节点是否在应用访问请求操作对应的节点号内,如果是则进入步骤(5),否则转入步骤(10); (5)判断该数据节点的节点负载权重值是否大于或等于预定的阈值,若是则转入步骤(6),否则转入步骤(10); (6)将纠删码存储集群中所有节点的节点负载权重值按照从小到大的顺序进行排列; (7)读取前K个节点对应的偏移地址的分块数据,并获取读取该分块数据各自所花费的时间,并利用RS解码算法对读取的前K个节点对应的偏移地址的分块数据进行解码操作; (8 )使用步骤(7 )获取的前K个节点中各个节点的时间替换该节点最近M次被访问中第一次被访问的响应时间; (9)从解码后的分块数据中选取应用访问请...

【专利技术属性】
技术研发人员:黄建忠曹强谢长生黄思倜梁先海
申请(专利权)人:华中科技大学
类型:发明
国别省市:

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

1