一种基于数据覆盖集的分布式运算集群动态能耗管理方法

文档序号:1390736 发布日期:2020-02-28 浏览:20次 >En<

阅读说明:本技术 一种基于数据覆盖集的分布式运算集群动态能耗管理方法 (Distributed operation cluster dynamic energy consumption management method based on data coverage set ) 是由 王培健 齐勇 侯迪 林锦炜 田真 李文涛 赵文嘉 于 2019-10-28 设计创作,主要内容包括:一种基于数据覆盖集的分布式运算集群动态能耗管理方法,包括以下步骤:步骤1,准备阶段:在集群中划分出若干数量的互不相同的数据覆盖集;划分时要求所有数据覆盖集的并集应涵盖集群中的所有节点;步骤2,工作阶段:启动集群时,选择列表内的一个数据覆盖集,并启用其中的所有节点,在启动完成后,除数据覆盖集外,工作节点的数量依据需要动态调整;步骤3,调整阶段:在集群运行一段时间后,要更换使用的数据覆盖集;切换间隔应以天为单位,将其与集群的关机维护相结合,即选择在集群定期维护时更换数据覆盖集合。本发明动态的调整工作节点数量,可以在保证数据可用性的情况下,降低能耗,减少设备损耗,从而大幅度降低运行成本。(A distributed operation cluster dynamic energy consumption management method based on a data coverage set comprises the following steps: step 1, preparation phase: dividing a plurality of different data coverage sets in a cluster; when dividing, requiring the union of all data coverage sets to cover all nodes in the cluster; step 2, working stage: when the cluster is started, one data coverage set in the list is selected, all nodes in the data coverage set are started, and after the start is finished, the number of the working nodes is dynamically adjusted according to the requirement except the data coverage set; step 3, an adjusting stage: after the cluster runs for a period of time, the used data coverage set is replaced; the switching interval should be in units of days, which is combined with the shutdown maintenance of the cluster, i.e. the data coverage set is selected to be replaced when the cluster is regularly maintained. The invention dynamically adjusts the number of the working nodes, can reduce energy consumption and equipment loss under the condition of ensuring the availability of data, thereby greatly reducing the operation cost.)

一种基于数据覆盖集的分布式运算集群动态能耗管理方法

技术领域

本发明属于数据中心能耗管理领域,特别涉及一种基于数据覆盖集的分布式运算集群动态能耗管理方法。

背景技术

诸如雅虎公司的Hadoop一类的分布式运算框架可对海量的数据进行有效处理。Hadoop的实现依赖于具有高容错性的分布式文件系统(HDFS)。HDFS被设计用来部署在大量的廉价硬件上,这些硬件上分布着数据块的多个副本,为用户提供快速的数据访问并可在部分机器故障时,通过副本继续提供服务。

HDFS采用主/从节点结构,典型架构如图1所示。每个集群包含一个主节点和多个数据节点,主节点负责管理文件系统命名空间以及用户的文件访问;存储着数据块的数据节点分布在不同的机架上,提供直接的数据读取和写入服务。

在HDFS中,文件通常被切分成一定大小的数据块,并分布在多个数据节点中,主节点保存着文件数据块的分布信息,用户向主节点发出基于文件的操作(打开、关闭、重命名或删除等)请求,在涉及到文件数据的读取和写入时,主节点返回目标数据块在集群中的位置,用户可直接和对应数据节点交互完成操作。

在分布式运算集群中,为了保证数据的可用性,通常需要同时运行足够数量的数据节点,部分节点虽然没有计算任务,但是却因此无法进入休眠。

按传统方法,由于数据块存放节点的选择没有考虑数据可用性的因素,数据块分布随机性高,难以确定保证数据可用性所需的节点集合,导致大量节点无法进入休眠。

为降低集群能耗,减少启用机器的数量,可改用“数据覆盖集”来确保数据可用性,也就是保证一个集群子集的运行,该子集至少包含了所有数据块的一个副本。采用数据覆盖集后,就能依据性能需求灵活地启用/关闭集合外的节点,而不必顾虑数据的可用性。

但在目前的技术实践中,采用数据覆盖集时,通常集群内仅建立一个数据覆盖集,此时,集群的可用性就对数据覆盖集内机器的可靠性有了极大的依赖。同时,数据覆盖集的持续工作也会导致机器寿命/性能下降较快。

发明内容

本发明的目的在于提供一种基于数据覆盖集的分布式运算集群动态能耗管理方法,以解决上述问题。

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

一种基于数据覆盖集的分布式运算集群动态能耗管理方法,包括以下步骤:

步骤1,准备阶段:在集群中划分出若干数量的互不相同的数据覆盖集;划分时要求所有数据覆盖集的并集应涵盖集群中的所有节点;

步骤2,工作阶段:启动集群时,选择列表内的一个数据覆盖集,并启用其中的所有节点,在启动完成后,除数据覆盖集外,工作节点的数量依据需要动态调整;

步骤3,调整阶段:在集群运行一段时间后,要更换使用的数据覆盖集;切换间隔应以天为单位,将其与集群的关机维护相结合,即选择在集群定期维护时更换数据覆盖集合。

进一步的,步骤1中具体包括以下步骤:

1)假设集群中包含了S个机架,将每个机架均分为W个区域,并将得到的S*W个区域进行编号;

2)将每个数据覆盖集的大小设定为n个区域,则每个数据覆盖集包括的区域编号依次为(1~n)、(2~n+1)、(3~n+2)…(WS,1~n-1);

3)完成划分后,集群中将包含W*S个数据覆盖集,且不同数据覆盖集之间的最大重叠比例为1-1/n;

4)完成数据覆盖集的划分后,将结果保存到主节点中,供未来调度使用。

进一步的,在选择n时,使n不等于S;在划分时,使单个数据覆盖集的大小在集群整体的10%~30%之间;要求每个数据覆盖集中都包含数据块的一个副本,则副本数量的最小值为[WS/n]+1。

进一步的,步骤2中调整方式如下:

1)首先提前测试单个服务器的任务上限,在运行时得到当前可用节点的总体服务能力;初始状态下集群的服务能力取决于当前使用的数据覆盖集的大小;

2)在运行中,如果主节点检测到用户对集群的需求增大,且超过了集群此时可用节点的负载能力,唤醒休眠中的节点;如果主节点检测到用户需求远低于当前服务能力,减少工作节点,此时不可关闭数据覆盖集中的节点;如果负载与需求相对均衡,则不需要调整工作节点数量;

3)在选择启用(关闭)节点时,应优先唤醒保存着当前用户/应用所需数据块数量较多的节点。

进一步的,步骤3中更换过程如下:

1)唤醒集群中尚在休眠中的节点,并同步数据,将唤醒的节点中的数据更新至最新版本;

2)从数据覆盖集列表中选择下一段时间使用的数据覆盖集,选择时,将列表中的所有数据覆盖集与先前使用的集合作比较,分别计算每个数据覆盖集与该集合的重叠部分的大小,并在重叠部分最小的数据覆盖集中随机选择下一时间段内使用的数据覆盖集;

3)根据历史数据预估重新启动集群时的服务需求,决定需要启动的机器数量,并在选定的数据覆盖集外选择相应数量的额外机器;

4)在重新启动集群时,改为启动第2)步中选择的数据覆盖集中的节点和第3)步中选择的额外工作节点。

与现有技术相比,本发明有以下技术效果:

通过启用最小覆盖集的概念,保证每一时刻,数据集中的每个数据块在启动的机器上至少有一个副本,从而确保数据中心的正常工作,并在此基础上结合数据节点的按需启用,在保证数据可用性的情况下,启动额外的非必需节点,增加工作节点数量,可提升集群性能、处理速度;相应地,关闭非必需节点,减少工作节点的数量,可降低集群整体的能耗,减少设备损耗,大幅度降低电力成本和设备成本。

当运行成本不是需要考虑的首要因素时,本发明为适应性能需要提供了灵活的应对策略。在划分数据覆盖集时,选择不同的集合容量,就能生成不同的方案,数据覆盖集容量越大的方案,由于包含节点数量多,能适应的负载量也就越大。

不同层级的方法对应着不同的应用场景。在负载相对稳定的情况下,选用容量大的数据覆盖集,既可满足性能需求,也能提高集群稳定性;在负载变化频繁的情况下,选用容量较小的数据覆盖集,通过及时启用/关闭集合外工作节点来适应负载,可在满足用户性能需求的情况下,尽可能地降低能耗。

附图说明

图1为HDFS的架构示意图。

图2为分布式运算集群动态能耗管理方法工作流程图。

图3为本发明区域编号示意图。

具体实施方式

以下结合附图对本发明进一步说明:

请参阅图2和图3,一种基于数据覆盖集的分布式运算集群动态能耗管理方法,包括以下步骤:

步骤1,准备阶段:在集群中划分出若干数量的互不相同的数据覆盖集;划分时要求所有数据覆盖集的并集应涵盖集群中的所有节点;

步骤2,工作阶段:启动集群时,选择列表内的一个数据覆盖集,并启用其中的所有节点,在启动完成后,除数据覆盖集外,工作节点的数量依据需要动态调整;

步骤3,调整阶段:在集群运行一段时间后,要更换使用的数据覆盖集;切换间隔应以天为单位,将其与集群的关机维护相结合,即选择在集群定期维护时更换数据覆盖集合。

步骤1中具体包括以下步骤:

1)假设集群中包含了S个机架,将每个机架均分为W个区域,并将得到的S*W个区域进行编号;

2)将每个数据覆盖集的大小设定为n个区域,则每个数据覆盖集包括的区域编号依次为(1~n)、(2~n+1)、(3~n+2)…(WS,1~n-1);

3)完成划分后,集群中将包含W*S个数据覆盖集,且不同数据覆盖集之间的最大重叠比例为1-1/n;

4)完成数据覆盖集的划分后,将结果保存到主节点中,供未来调度使用。

在选择n时,使n不等于S,否则可能出现一个数据块的所有副本都保存在同一个机架上的情况;在划分时,使单个数据覆盖集的大小在集群整体的10%~30%之间;按以上方法划分集群后,对数据块的副本数量也有了限制,要求每个数据覆盖集中都包含数据块的一个副本,则副本数量的最小值为[WS/n]+1。

与以往的分布式集群工作方式相比,除了动态增减工作节点外,本方案还要求对集群数据副本管理方式进行修改。集群运行过程中,需要在传统的副本生成、更改机制上做出部分调整。

首先,在为新创建的数据块选择副本存放节点时,要保证每个数据覆盖集中至少存在一个副本。以前述划分方法为例,在生成新的数据块时,首先在区域1~n中的任一区域K中的任意机器上创建第一个副本。之后在区域K+n、K+2n…的任意机器上分别添加副本,直到每个数据覆盖集中都包含新数据块的一个副本。按如上方式,由于每个区域都是n个不同数据覆盖集的一部分,且每间隔n个区域添加一个副本可保证前后两个副本所在的数据覆盖集没有重叠,因此只需创建[WS/n]+1个副本即可满足需求。

其次,在处理涉及到数据块副本数量的操作时,主节点回复客户时只计算当前正在工作的节点中的副本而忽略休眠节点中的副本,以避免不必要的新副本生成。

步骤2中调整方式如下:

1)首先提前测试单个服务器的任务上限,在运行时得到当前可用节点的总体服务能力;由于集群最初只启用了数据覆盖集中的节点,故初始状态下集群的服务能力取决于当前使用的数据覆盖集的大小;

2)在运行中,如果主节点检测到用户对集群的需求增大,且超过了集群此时可用节点的负载能力,唤醒休眠中的节点;如果主节点检测到用户需求远低于当前服务能力(即需求与服务能力的差距超过一个节点的服务能力),减少工作节点,此时不可关闭数据覆盖集中的节点;如果负载与需求相对均衡,则不需要调整工作节点数量;

3)由于每个节点上保存的数据块不尽相同,在选择启用(关闭)节点时,应优先唤醒保存着当前用户/应用所需数据块数量较多的节点。

步骤3中更换过程如下:

1)唤醒集群中尚在休眠中的节点,并同步数据,将唤醒的节点中的数据更新至最新版本;

2)从数据覆盖集列表中选择下一段时间使用的数据覆盖集,选择时,将列表中的所有数据覆盖集与先前使用的集合作比较,分别计算每个数据覆盖集与该集合的重叠部分的大小,并在重叠部分最小的数据覆盖集中随机选择下一时间段内使用的数据覆盖集;

3)根据历史数据预估重新启动集群时的服务需求,决定需要启动的机器数量,并在选定的数据覆盖集外选择相应数量的额外机器;

4)在重新启动集群时,改为启动第2)步中选择的数据覆盖集中的节点和第3)步中选择的额外工作节点。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种边缘计算场景下通过休眠降低系统功耗的调度方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!