首页> 中国专利> 基于集群节点负载状态预测的冷热区域划分节能存储方法

基于集群节点负载状态预测的冷热区域划分节能存储方法

摘要

本发明公开了一种基于集群节点负载状态预测的冷热区域划分节能存储方法,属于信息技术处理领域。本申请首先介绍了方法的思想,进而描述了方法的执行步骤,以及方法的伪代码实现;接着对该节能策略的节能效果进行理论上的分析;然后介绍了实验的过程,包括实验的环境,数据集的选用,数据块的访问格式,最后对实验的结果做了分析,通过和Hadoop集群未做冷热区域划分的方式的能耗进行量化的分析比较,验证了本申请的节能存储策略具有一定的实际节能效果。

著录项

  • 公开/公告号CN110096350A

    专利类型发明专利

  • 公开/公告日2019-08-06

    原文格式PDF

  • 申请/专利权人 山东科技大学;

    申请/专利号CN201910282581.5

  • 发明设计人 倪丽娜;韩庆亮;禹继国;张金泉;

    申请日2019-04-10

  • 分类号

  • 代理机构青岛智地领创专利代理有限公司;

  • 代理人种艳丽

  • 地址 266590 山东省青岛市黄岛区经济技术开发区前湾港路579号

  • 入库时间 2024-02-19 12:09:05

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-03-17

    未缴年费专利权终止 IPC(主分类):G06F 9/48 专利号:ZL2019102825815 申请日:20190410 授权公告日:20200505

    专利权的终止

  • 2020-05-05

    授权

    授权

  • 2019-08-30

    实质审查的生效 IPC(主分类):G06F9/48 申请日:20190410

    实质审查的生效

  • 2019-08-06

    公开

    公开

说明书

技术领域

本发明属于信息技术处理领域,具体涉及一种基于集群节点负载状态预测的冷热区域划分节能存储方法。

背景技术

云计算技术的发展使得数据中心的规模和数量不断扩大,同时也带来数据中心集群能耗成本越来越高的问题。在Hadoop集群中为了实现数据的可靠性,每个数据块有多个备份。随着时间推移,数据块的访问频率逐步下降,节点的计算负载也逐步降低。这就导致了某些计算节点以较低的负载在运行,造成了能源浪费。同时,数据节点存储的数据块会有相当大比例的时间变为冷数据,而且这些数据会占用计算节点的存储资源。因此,需要对数据块的多个备份进行迁移,休眠部分节点,节省能源。

发明内容

针对现有技术中存在的上述技术问题,本发明提出了一种基于集群节点负载状态预测的冷热区域划分节能存储方法,设计合理,克服了现有技术的不足,具有良好的效果。

为了实现上述目的,本发明采用如下技术方案:

一种基于集群节点负载状态预测的冷热区域划分节能存储方法,包括如下步骤:

步骤1:基于LSTM预测模型,预测节点周期T内的负载,并按照负载从高到低排列列表Load_List:

其中,nodei表示第i个节点,i=1,2,…,m;表示节点nodei在周期T内的负载;nodej表示第j个节点,j=m+1,m+2,…,n;表示节点nodej在周期T内的负载;

步骤2:根据负载值列表Load_List,通过预设负载阈值Threshold,划分为热区域Nsethot和冷区域Nsetcold,假定热区域中有m个节点,冷区域中有n-m个节点,m≤n,即:

Nsethot={node1,node2,…,nodei,…,nodem};其中,i=1,2,…,m;

Nsetcold={nodem+1,nodem+2,…,nodej,…,noden};其中,j=m+1,m+2,…,n;

步骤3:判断热区域的资源量Resource和需求量Requirement的关系;

若:判断结果是Resource<Requirement,则执行步骤4;

或判断结果是Resource≥Requirement,则执行步骤5;

步骤4:将缓冲队列的节点逐个加入到热区域中,直到热区域中资源量Resource≥Requirement,或缓冲队列中所有节点都加入热区域为止;如果仍然不满足Resource≥Requirement,则逐个激活休眠队列的节点,并将其加入到热区域直到满足Resource≥Requirement为止,然后进行负载均衡操作;

步骤5:将新创建的数据块存储在热区域Nsethot节点中,并且采用集群默认的数据块放置策略;

步骤6:计算热区域节点数据块访问频度列表判断节点nodei中数据块访问频度与冷度阈值θ的大小关系;

若:判断结果是则该数据块集合迁移到冷区域缓冲队列;

或判断结果是则该数据块集合仍然保留在热区域;

步骤7:计算冷区域Nsetcold缓冲节点的数据块访问频度列表

判断节点nodej中数据块访问频度与休眠阈值λ的大小关系;

若:判断结果是则将节点nodej休眠;

或判断结果是则节点nodej继续保留在冷区域缓冲节点队列中;

步骤8:更新预测模型,预测下一周期T的节点负载情况。

本发明所带来的有益技术效果:

本申请首先介绍了方法的思想,进而描述了方法的执行步骤,以及方法的伪代码实现;接着对该节能策略的节能效果进行理论上的分析;然后介绍了实验的过程,包括实验的环境,数据集的选用,数据块的访问格式,最后对实验的结果做了分析,通过和Hadoop集群未做冷热区域划分的方式的能耗进行量化的分析比较,验证了本申请的节能存储策略具有一定的实际节能效果。

传统Hadoop集群在默认的数据块放置策略下,集群的负载情况相对均衡,集群的负载率在32%左右,本申请在采用了HES-Storage策略后,集群热点区域的工作负载绝大部分在40%到60%之间,热点区域的节点平均负载率约50.1%,相比较于传统集群的32%左右的负载,更好地利用了集群节点的资源,同时20%~30%的主机数量在不同时间段休眠,从而降低了集群的总能耗。

本发明有效提高了集群中热点区域的节点平均负载,显著降低了集群的耗能总量,对于提高能源利用率,降低数据中心的运营成本,打造清洁、绿色、节能环保的数据中心具有深远的意义。

附图说明

图1为冷热区域划分策略节点分布示意图。

图2为热点区域的节点数量示意图。

图3为10个小时区间内的单位时间的能耗值示意图。

具体实施方式

下面结合附图以及具体实施方式对本发明作进一步详细说明:

Hadoop集群的数据块访问是有一般规律的。本申请通过查阅文献得到该规律的一般阐述,本申请根据数据访问规律,设计了Hadoop集群数据块的存储策略。

1、数据块存储设计思想

数据块的访问一般发生在其上传后较短的时间内,随着时间的推移,该数据块会变冷,被访问的概率会降低。验证该规律的合理性对设计数据块的存储策略有很大帮助。

1.1、Hadoop集群数据块存储分析

(1)副本存储机制分析

对于一份数据块Data,Hadoop集群默认的副本存储机制会将其副本存储在三个位置。该数据块的副本集合记为:data={file1,file2,file3},其位置的集合表示为:location={Location1,Location2,Location3},其中Location1是集群随机选择的一个节点,Location2的位置和Location1在同一机架但是不同的节点,Location3存储在与Location2不同机架的节点上。

Hadoop集群的数据块存储主要考虑其可靠性,以保证当放置某个数据块的节点发生故障时,能够在集群的其他节点取到该数据块的备份,这样也保证了数据存储的安全性,但是该策略不利于降低能耗。

(2)数据规律访问分析

为了验证数据块访问规律,本申请借助于Graylog日志分析工具,通过调用其API接口分析了在一个月时间内维基百科英文页面的访问日志集。

通过Graylog对日志文件的统计分析,共有14226个文件,在统计时间段内访问次数少于6次的有10799个,占日志文件的75.9103%。集群中所有文件的访问量是1769884,访问次数少于6次的文件访问量为212352,占文件总访问量的11.9981%。可以看出,约76%的文件,其文件的访问量只占到总访问量的约12%。进一步统计可以发现,文件访问量只有一次的占到总量的63.2863%,文件访问最热的文件被访问了24964次。由此数据规律访问分析可见,对文件的访问是有明显的时间特征倾向的。

1.2、冷热区域划分策略设计

本申请提出了基于节点状态预测的HES-Storage(Hadoop Energy-SavingStorage)的节能存储策略。根据集群节点数据训练的模型,划分集群的冷区域和热区域。目前很多数据中心划分的方法是静态划分,即在集群部署的时候,就将集群划分为热区域和冷区域,这种方法的好处是管理简单,但是产生的问题不容忽视,由于集群输入的计算需求是不断变化的,集群的负载会不断变化,当集群的负载增加,热区域节点不够时需要冷区域的节点参与,这个过程会涉及到大量的文件块的迁移等操作,造成很大的能耗损失;如果集群的负载很小,就会浪费热区域节点的计算能力。

根据数据访问特点,将访问频度高的数据块存储在活跃节点中,将访问频度低的节点,先存储在待休眠队列中,同时设置数据块访问冷度阈值θ,如果节点中的数据块符合冷度阈值θ的条件,将该节点进行休眠。

本申请在设计存储策略时主要考虑以下几个方面:

(1)将集群中某个节点记为Slavei,通过历史数据的训练,给出Slavei未来时间周期T内的负载值预测,当其低于预设负载值的时候,将Slavei归为低负载节点,不再分配新的计算任务,将其加入到缓冲队列,同时作为冷数据的备用迁入节点。

(2)历史状态下负载高的节点,一般情况下存储了更多访问热点的数据块,即将更多与计算任务相关的数据备份。备份的一般原则是将数据块少的节点向数据块多的节点迁移,维持这些节点的高负载,这样能够在一定程度上降低迁移能耗的成本。

通过以上分析,本申请将集群划分为热区域和冷区域,并且在冷热区域中采用不同的数据块存储策略,同时在冷区域中维护一个缓冲队列和一个休眠队列,缓冲节点是冷区域中负载很低但是未休眠的节点,设置该区域的目的是存储热区域中达到冷度阈值的数据块,因为这些数据块变冷时间不长。根据数据块访问规律,这些数据有可能会被再次访问,所以设置该区域是为了达到较好的服务性能。

图1为冷热区域划分策略节点分布示意图。

A.热区域:集群能耗的主要贡献部分,同时存储了集群访问频度高的数据。当集群的计算需求增加,热区域的节点负载过高导致集群的服务质量下降,这时首先会将处于缓冲队列状态的集群加入到热区域节点,然后重新计算整个集群资源量和任务请求量的关系,如果还不满足要求,则需要激活休眠队列的节点,这样就达到了动态的调整集群活跃节点规模的目的。新的数据块默认存储在热区域中,同时,存储策略使用Hadoop集群默认的存储机制,因为该存储机制根据负载均衡的思想将数据块相对均衡地存储到集群中,有利于充分利用热区域节点的计算能力。

B.冷区域:该区域维护休眠队列和缓冲队列。休眠队列存放集群中变冷的数据,这些数据再次被访问的可能性很低;缓冲队列是根据预测模型,得到未来时间周期T内节点的负载状态,按照预测的负载情况从大到小排队,同时将预测的负载情况低的节点放在缓冲队列里。这些节点是备用的冷数据存储节点。节点由缓冲队列节点加入休眠节点需要满足休眠的条件,即当该缓冲节点上所有数据块的访问频度满足休眠阈值λ,将该节点进行休眠操作。

2、数据存储策略描述

定义2.1集群节点数量为n,则节点集合表示为Nset={node1,node2...,noden},则热区域为Nset的子集Nsethot,记为:其中ki(i=1,2,…,m)∈[1,n],Nset其他节点构成冷区域Nsetcold,表示为:其中kj(j=m+1,m+2,…,n)∈[1,n]。

定义2.2数据块记作blocki,则从热区域迁移该数据块到冷区域缓冲节点时,需要满足冷度阈值,记作θ;缓冲节点休眠操作需要满足休眠阈值,记作λ。

(1)算法步骤描述:

该节能存储过程首先基于预测模型的负载预测结果,将集群根据负载阈值Threshold分类到不同的区域,热区域采用默认存储策略,冷区域采用集中存储,计算热区域数据块的访问频度,如果满足冷度阈值则向缓冲节点迁移;计算缓冲节点的数据块访问频度集合,将满足休眠阈值的缓冲节点休眠;更新集群资源量和需求量的关系;更新预测模型。

具体的算法描述见算法1-1:

2)算法伪代码

3、算法节能分析

随着时间的推移,一些热点数据会变为冷数据,需要根据一定的策略将这些“变冷”的数据迁向冷区域的缓冲节点,如果在冷区域的缓冲队列节点中存储的这些冷数据满足休眠阈值λ,则将该缓冲节点进行休眠。

(1)冷区域数据块存储方式

冷热区域中的数据采用不同的存储方式,在冷区域中,采用“集中式”的存储方式,因为冷数据会随着时间的推移,其被访问的概率越来越低。采用这种存储方式,由于该区域存储的数据是从热区域节点迁移过来的,所以节点休眠时间越早,其被访问的概率越低。即越早进入冷区域的数据块,其所宿主的主机会越早的进入休眠的状态。同时,在某个相邻的时间段内进入冷区域的数据,会存储在相同的数据节点上,直到达到该节点的存储上限。

例如,对于冷区域Queue_Cold_Area中的节点,存储在该队列相邻的节点中的数据块迁入冷区域的时间是接近的。即节点Slavei和Slavei+1中存储的数据块的迁入时间相比较Slavei和Slavei+2更为接近。这样做的优点是可以将变冷时间差异较小的数据块储在一起,当计算该节点存储的数据块列表访问频度时,相比较于分散或者随机放置的方式,更容易地满足休眠阈值λ,从而具有较好的节能效果。

(2)热区域数据块存储方式

热区域中的数据采用的是“均衡式”的分布,根据集群默认的负载均衡策略,尽可能均匀地将数据分布在热点区域的节点中,以提供更好的访问服务。

HES-Storage数据存储策略需要统计集群节点开始服务到休眠的时间段内的能耗,分别统计热区域节点和冷区域节点的能耗值,热区域节点是集群能耗的主要贡献部分,但是冷区域的缓冲队列节点也需要统计。

所以,集群总的能耗可以用公式(1)计算:

根据数据的访问规律,将访问频度不同的数据按照不同的策略进行存储是本申请算法的核心思想。如果将冷区域的缓冲队列的能耗考虑在内,同时根据数据的变冷规律,将热区域中的数据存储到冷区域,可以达到根据预测的负载情况动态调整集群活跃节点规模的目的,进而降低集群的能耗。

4、实验结果和分析

4.1实验设计

实验场景是模拟用户访问网页,本申请算法只针对该场景下做数据分区存储策略。为了验证此数据块放置策略的有效性,首先设计请求数据块的输入格式,见表1.1:

表1.1数据块的读写请求格式

Tab.1.1 The format of read and write request of data blocks

数据集选用的是2018年10月1日到2018年10月14日维基百科的英文页面访问日志数据,可在cloudsuite官网下载。访问的格式见表1.1。主要利用这些数据集来模拟真实用户的访问情况,并且查看整个集群的负载变化以及休眠队列节点的输出结果,最后通过能耗模型,量化分析能耗结果,对比没有采取冷热区域划分的情况下的集群能耗数据。

4.2实验过程

该实验过程是要验证本申请提出的存储策略节能效果,所以在数据集选用,数据块访问格式等方面进行了设计,下面是实验的主要步骤:

(1)训练历史数据,首先要对数据进行预处理,由于在底层的数据收集层安装的Agent探针,所以使用实时获得的CPU和内存数据,用来训练LSTM预测模型,同时通过预设Threshold对节点归类。

(2)分析结果设置访问频度阈值;主要包括数据块从热区域迁移到冷区域缓冲队列的阈值θ,以及缓冲节点中数据块频度集合满足的休眠阈值λ。

(3)持续的请求访问,将按照接口的要求传入参数,同时底层监控集群所有节点资源使用率的情况,节点的活跃状态,节点休眠时间段等,详细指标见表1.2:

表1.2集群能耗关键指标

Tab.1.2 Key index of energy consumption in cluster

将这些系统指标数据收集并存储在SERVER端的数据库中,并且输出到集群的运行日志中以供下一阶段的数据分析。

4.3结果与分析

实验有两个关键过程,即两次数据块迁移时机的选择。首先要计算热区域数据块频度集合,与阈值θ比较,将符合条件的数据块集合迁向冷区域,该阈值对算法的实际节能效果影响较大,同时该阈值也非常适用于模拟用户访问网页访问的场景;其次在决定冷区域的缓冲节点是否休眠时,需要遍历该节点上所有的数据块的访问频度,只有当其存储的数据块集合中的数据块全部满足休眠阈值λ,才能对该节点进行休眠操作。结果如下所示:

(1)集群活跃节点的数量变化情况

集群能耗的主要部分是由热区域节点产生的,主要受两方面因素的影响:集群热区域节点的数量以及热区域节点的平均负载情况。所以,热区域的节点数量和负载对节能效果有重要的影响,图2是模拟实验期间,集群热区域的节点数量变化情况示意图。

通过图2可以分析得出以下结论:

1)集群的活跃节点数量为8的时间段最长,但是某些时间会出现峰值的情况,比如在169H、170H的时间。出现这种情况的原因可能是集群的资源量不能满足需求,比如遇到集中访问的情况,此时集群需要更多的节点的资源量。还有一种原因是需要访问休眠节点的数据时,需要激活休眠节点加入到活跃节点中,会存在一定概率连续访问休眠节点的数据,这样就激活了较多的节点加入到集群中。

2)传统Hadoop集群在默认的数据块放置策略下,集群的负载情况相对均衡,集群的负载率在32%左右。在采用了HES-Storage策略后,集群的热区域的工作负载绝大部分处于区间40%到60%之间,热区域的节点平均负载率约为50.1%,相比较于传统集群的32%左右的负载,更好地利用了集群节点的资源。同时20%~30%的主机数量在不同时间段休眠,从而降低了集群的总能耗。

(2)集群单位时间的能耗分析

根据式(2)能耗计算公式计算能耗值。集群在t0到t1期间的总能耗值,用E表示,通过对节点的功率P(u(t))进行积分计算得到,如公式(2)所示:

由于集群的运行时间较长,在此采用单位时间的能耗值对比情况。将系统指标Per_node_CPUpercent、Per_node_MEMpercent、Per_node_aliveTime等指标数据代入计算可得到能耗值的估值,图3为10个小时区间内的单位时间的能耗值。

根据实验结果分析,集群的活跃节点能够根据访问量和访问热点的变化规律,达到调整集群的规模的目的,进而降低集群能耗。但是从图2可以看出,集群规模的调整过程整体趋势比较平缓,但是有的时间点上,会出现集群规模连续变化的现象,造成该现象的原因可能有以下几点:

1)文件的访问出现“长尾效应”,文件访问了访问频度很小的数据块,使其所在的节点很难进入休眠状态,或者进入休眠后需要激活以获取数据。

2)文件访问量遇到峰值的情况,集群平均负载会增加,但是集群的规模不会立即就提升上来,需要在下一个时间周期内,根据集群节点的平均负载,预测到很多节点的负载率超过阈值的情况。这种情况下会首先将缓冲队列的节点加入到集群,如果预测状态的平均负载率不够,会激活休眠节点。然而会有时间滞后的情况出现,对访问性能产生一定的影响。

3)通过图3可以看出,在采用HES-Storage策略存储数据块后,集群总体的能耗值低于Hadoop集群默认的存储方式。集群节点的数量是根据集群的负载量进行调整的,将某些达到阈值的节点休眠,从而降低了集群总的能耗值,达到本申请存储策略的设计目的。

5、小结

本申请提出了基于集群节点负载状态预测的冷热区域划分节能存储算法,主要依据是集群的数据访问是有一般规律的,根据数据访问规律,将这些数据的存储进行冷热区分区的方式存储,以达到休眠一部分存储了极低概率被访问到的冷数据节点的目的。本申请首先介绍了方法的思想,进而描述了方法的执行步骤,以及方法的伪代码实现;接着对该节能策略的节能效果进行理论上的分析;然后介绍了实验的过程,包括实验的环境,数据集的选用,数据块的访问格式,最后对实验的结果做了分析,通过和Hadoop集群未做冷热区域划分的方式的能耗进行量化的分析比较,验证了本申请的节能存储策略具有一定的实际节能效果。

当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号