一种基于PBS作业调度管理集群负载的实现方法与流程

文档序号:12733256阅读:404来源:国知局
一种基于PBS作业调度管理集群负载的实现方法与流程

本发明属于计算机应用技术领域,具体涉及一种基于PBS作业调度管理集群负载的实现方法。



背景技术:

高性能计算(High performance computing,缩写HPC)是计算机科学的一个分支,通过研究体系结构、并行算法和应用软件等方面开发高性能计算机。其诞生之初一直为量子物理、气候研究、海洋研究、石油勘探等领域的科学与工程计算提供计算支持,随着高性能计算技术的快速发展,高性能计算已经逐渐扩展到电商、金融、信息等高新产业和服务业,并为传统的工业和制造业提供场景模拟、模型优化等计算支持。

随着服务器性能越来越高,应用环境越来越高密度化,集群运行时的功耗控制也越来越重要,高功耗不仅意味着会耗费更多的电能,同时也会带来在电源布线、机房通风、空调散热等各方面的巨大压力,大大增加了运营成本,目前社会上的计算节能意识已经越来越强烈,节能型服务器产品将成为企业信息化建设的又一趋势。

此为现有技术不足之处。因此,针对现有技术中的上述缺陷,提供一种基于PBS作业调度管理集群负载的实现方法,是非常有必要的。



技术实现要素:

为了克服上述集群服务器功耗大的问题,提供一种基于PBS作业调度管理集群负载的实现方法以解决上述技术问题。

为实现上述目的,本发明型给出以下技术方案:

一种基于PBS作业调度管理集群负载的实现方法,包括如下步骤:

步骤1:定义数据模型,阈值配置文件为config.xml、节点IPMI配置文件为node_ipmi.conf、扫描输出文件为scaner.conf、节点实时开关机状态文件为ipmi-state.conf、策略输出文件为policy.conf;节点IPMI配置文件node_ipmi.conf存放节点配置信息包括节点主机名和IPMI地址信息;

步骤2:定义阈值配置模块,配置信息包括缓冲池空闲节点数、单次最多操作节点数、节点保护时长以及服务轮询时长,将配置信息存放到阈值配置文件config.xml中;

步骤3:定义扫描模块,根据配置的服务轮询时长定时扫描,通过PBS作业调度器得到当前集群的节点实时开关机状态、节点状态列表、作业信息列表以及负载操作信息,分析节点实时开关机状态和节点状态列表得到离线节点列表和空闲节点列表,将节点实时开关机状态存放到节点实时开关机状态文件ipmi-state.conf中,将离线节点列表、空闲节点列表、作业信息列表以及负载操作信息存放到扫描输出文件scaner.conf中并到记录数据库日志;

步骤4:定义策略模块,设置定时以扫描模块获取的当前集群的离线节点列表和空闲节点列表、作业信息列表作为输入,结合负载策略判断当前是否需要进行节点开关机以及如何操作,将负载操作信息提供给扫描模块同时存入策略输出文件policy.conf中 ;

步骤5:创建扫描脚本并运行,根据配置的服务轮询时长定时扫描,扫描分析得到节点实时开关机状态、离线节点列表、空闲节点列表、作业信息列表,

判断策略输出文件policy.conf中有无负载操作信息,

若有,将节点实时开关机状态存入节点实时开关机状态文件ipmi-state.conf中,将离线节点列表、空闲节点列表、作业信息列表和负载操作信息存放到扫描输出文件scaner.conf中并记录到数据库日志,

若没有,则将节点实时开关机状态存入节点实时开关机状态文件ipmi-state.conf中,将离线节点列表、空闲节点列表、作业信息列表存放到扫描输出文件scaner.conf中并记录到数据库日志;

步骤6:创建策略脚本并运行,定时判断当前是否存在扫描输出文件scaner.conf,

若存在,以扫描模块获取的当前集群的离线节点列表和空闲节点列表、作业信息列表作为输入,结合负载策略判断当前是否需要进行节点开关机以及如何操作,将负载操作信息提供给扫描模块同时存入策略输出文件policy.conf中,

若不存在,则等待下次轮询。

进一步地,步骤1中的节点IPMI配置文件node_ipmi.conf存放节点配置信息包括节点主机名和IPMI地址信息。

进一步地,步骤3中的PBS作业调度器采用PBS Torque作业调度器。

进一步地,步骤3中定义扫描模块具体步骤如下:

步骤31.设置通过PBS作业调度器同时根据配置的服务轮询时长定时扫描;

步骤32.通过节点IPMI配置文件node_ipmi.conf文件获取节点的ipmi地址信息,根据IPMI命令获取节点实时开关机状态,存入节点实时开关机状态文件ipmi-state.conf中;

IPMI命令返回的节点状态为on、off或unknown三种;

步骤33.根据PBS命令获取集群当前的节点状态列表以及作业信息列表;

PBS命令返回的节点状态为idle,busy,runnning或down四种;

步骤34.分析节点实时开关机状态,节点状态列表以及作业信息列表,得到当前空闲节点列表、离线节点列表以及等待作业数量并存入扫描输出文件scaner.conf中;

步骤35.判断是否存在策略输出文件policy.conf;

若存在,将当前空闲节点列表当前空闲节点列表、离线节点列表以及等待作业数量和负载操作信息存入数据库日志;

若不存在,则只将当前空闲节点列表当前空闲节点列表、离线节点列表以及等待作业数量存入数据库日志。

进一步地,步骤34中离线状态列表具体分析如下:

节点的IPMI命令返回的节点状态为on,则判断该节点在线;

节点的IPMI命令返回的节点状态为off,则判断该节点为离线状态,计入离线节点列表;

对节点的IPMI命令返回节点为unknown的节点,

若PBS命令返回的该节点状态为idle、busy或runnning,则判断该节点在线,若PBS命令返回的该节点状态为down则判断该节点为离线状态,计入离线节点列表;

步骤34中空闲状态列表具体分析如下:

判断是否有PBS命令返回的该节点状态为idle且被资源预留的节点,

若没有,则PBS命令返回的该节点状态为idle节点为空闲节点,计入空闲节点列表;

若有,将被资源预留的节点从节点状态为idle节点中去掉,剩余节点计入空闲节点列表。

进一步地,所述步骤4中结合负载策略进行的判断如下:

若存在排队作业,则通过IPMI命令进行第一开机操作;

若不存在排队作业,则根据配置的缓冲池空闲节点数以及当前空闲的节点数量进行判断,

若当前空闲的节点数量小于配置的缓冲池空闲节点数,则通过IPMI命令进行第二开机操作,

若当前空闲的节点数量大于配置的缓冲池空闲节点数,则通过IPMI命令进行关机操作。

进一步地,所述第一开机操作具体如下:

从离线节点列表得到离线节点数量,

根据离线节点数和单次最多操作节点数取小作为操作数量,

根据节点IPMI配置文件node_ipmi.conf中的配置信息开启离线节点列表中的节点并记录操作到策略输出文件policy.conf中。

进一步地,所述第二开机操作具体如下:

从空闲节点列表得到空闲节点数量,

计算配置的缓冲池空闲节点数与当前空闲的节点数量的差值,

将差值与单次最多操作节点数取小作为操作数量,

根据节点IPMI配置文件node_ipmi.conf中的配置信息开启离线节点列表中的节点并记录操作到策略输出文件policy.conf中。

进一步地,所述关机操作具体如下:

从空闲节点列表得到空闲节点和空闲节点数量,

计算当前空闲的节点数量与配置的缓冲池空闲节点数的差值,

将差值与单次最多操作节点数取小作为操作数量,

对空闲节点列表中的节点,若某一节点的当前状态时长小于配置的节点保护时长,则不进行关机操作,

否则根据节点IPMI配置文件node_ipmi.conf中的配置信息关闭空闲节点列表中节点并记录到操作策略输出文件policy.conf中。

进一步地,还包括如下步骤:

步骤7:定义服务启停模块,支持用户通过页面操作进行策略服务的启动与停止操作,服务停止后将不会自动对节点进行开关机;

步骤8:定义日志统计模块,支持数据库日志查询与统计,统计查询时间内的开关机操作以及节省的节点总量。

本发明的有益技术效果:发明基于PBS作业调度中已有的资源及作业统计功能进行信息获取,并在此基础上增加负载阈值配置和负载策略定义,从而可以使集群能根据作业排队情况、作业趋势、负载等情况,动态释放及回收资源,从而在不影响作业运行的条件下减少集群运行功耗,降低用户的运营成本。

此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。

由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。

附图说明

图1为本发明的流程图;

图2 为本发明定义扫描模块分析得到离线节点列表的流程图;

图3为本发明策略模块负载策略判断流程图。

具体实施方式:

为使得本发明的目的、特征、优点能够更加的明显和易懂,下面将结合本具体实施例中的附图,对本发明中的技术方案进行清楚、完整地描述。

如图1所示,本发明提供一种基于PBS作业调度管理集群负载的实现方法,包括如下步骤:

步骤1:定义数据模型,阈值配置文件为config.xml、节点IPMI配置文件为node_ipmi.conf、扫描输出文件为scaner.conf、节点实时开关机状态文件为ipmi-state.conf、策略输出文件为policy.conf;

步骤2:定义阈值配置模块,配置信息包括缓冲池空闲节点数、单次最多操作节点数、节点保护时长以及服务轮询时长,将配置信息存放到阈值配置文件config.xml中;

步骤3:定义扫描模块,根据配置的服务轮询时长定时扫描,通过PBS作业调度器得到当前集群的节点实时开关机状态、节点状态列表、作业信息列表以及负载操作信息,分析节点实时开关机状态和节点状态列表得到离线节点列表和空闲节点列表,将节点实时开关机状态存放到节点实时开关机状态文件ipmi-state.conf中,将离线节点列表、空闲节点列表、作业信息列表以及负载操作信息存放到扫描输出文件scaner.conf中并到记录数据库日志;PBS作业调度器采用PBS Torque作业调度器;

具体步骤如下:

步骤31.设置通过PBS作业调度器同时根据配置的服务轮询时长定时扫描;

步骤32.通过节点IPMI配置文件node_ipmi.conf文件获取节点的ipmi地址信息,根据IPMI命令获取节点实时开关机状态,存入节点实时开关机状态文件ipmi-state.conf中;

IPMI命令返回的节点状态为on、off或unknown三种;

步骤33.根据PBS命令获取集群当前的节点状态列表以及作业信息列表;

PBS命令返回的节点状态为idle,busy,runnning或down四种;

步骤34.分析节点实时开关机状态,节点状态列表以及作业信息列表,得到当前空闲节点列表、离线节点列表以及等待作业数量并存入扫描输出文件scaner.conf中;

如图2所示,分析得到离线状态列表具体分析如下:

节点的IPMI命令返回的节点状态为on,则判断该节点在线;

节点的IPMI命令返回的节点状态为off,则判断该节点为离线状态,计入离线节点列表;

对节点的IPMI命令返回节点为unknown的节点,

若PBS命令返回的该节点状态为idle、busy或runnning,则判断该节点在线,若PBS命令返回的该节点状态为down则判断该节点为离线状态,计入离线节点列表;

分析得到空闲状态列表具体分析如下:

判断是否有PBS命令返回的该节点状态为idle且被资源预留的节点,

若没有,则PBS命令返回的该节点状态为idle节点为空闲节点,计入空闲节点列表;

若有,将被资源预留的节点从节点状态为idle节点中去掉,剩余节点计入空闲节点列表;

步骤35.判断是否存在策略输出文件policy.conf;

若存在,将当前空闲节点列表当前空闲节点列表、离线节点列表以及等待作业数量和负载操作信息存入数据库日志;

若不存在,则只将当前空闲节点列表当前空闲节点列表、离线节点列表以及等待作业数量存入数据库日志;

步骤4:定义策略模块,设置定时以扫描模块获取的当前集群的离线节点列表和空闲节点列表、作业信息列表作为输入,结合负载策略判断当前是否需要进行节点开关机以及如何操作,将负载操作信息提供给扫描模块同时存入策略输出文件policy.conf中 ;

如图3所示,输入结合负载策略进行的判断如下:

若存在排队作业,则通过IPMI命令进行第一开机操作,所述第一开机操作具体如下:

从离线节点列表得到离线节点数量,

根据离线节点数和单次最多操作节点数取小作为操作数量,

根据节点IPMI配置文件node_ipmi.conf中的配置信息开启离线节点列表中的节点并记录操作到策略输出文件policy.conf中;

若不存在排队作业,则根据配置的缓冲池空闲节点数以及当前空闲的节点数量进行判断,

若当前空闲的节点数量小于配置的缓冲池空闲节点数,则通过IPMI命令进行第二开机操作,所述第二开机操作具体如下:

从空闲节点列表得到空闲节点数量,

计算配置的缓冲池空闲节点数与当前空闲的节点数量的差值,

将差值与单次最多操作节点数取小作为操作数量,

根据节点IPMI配置文件node_ipmi.conf中的配置信息开启离线节点列表中的节点并记录操作到策略输出文件policy.conf中;

若当前空闲的节点数量大于配置的缓冲池空闲节点数,则通过IPMI命令进行关机操作,所述关机操作具体如下:

从空闲节点列表得到空闲节点和空闲节点数量,

计算当前空闲的节点数量与配置的缓冲池空闲节点数的差值,

将差值与单次最多操作节点数取小作为操作数量,

对空闲节点列表中的节点,若某一节点的当前状态时长小于配置的节点保护时长,则不进行关机操作,

否则根据节点IPMI配置文件node_ipmi.conf中的配置信息关闭空闲节点列表中节点并记录到操作策略输出文件policy.conf中。

步骤5:创建扫描脚本并运行,根据配置的服务轮询时长定时扫描,扫描分析得到节点实时开关机状态、离线节点列表、空闲节点列表、作业信息列表,

判断策略输出文件policy.conf中有无负载操作信息,

若有,将节点实时开关机状态存入节点实时开关机状态文件ipmi-state.conf中,将离线节点列表、空闲节点列表、作业信息列表和负载操作信息存放到扫描输出文件scaner.conf中并记录到数据库日志,

若没有,则将节点实时开关机状态存入节点实时开关机状态文件ipmi-state.conf中,将离线节点列表、空闲节点列表、作业信息列表存放到扫描输出文件scaner.conf中并记录到数据库日志;

步骤6:创建策略脚本并运行,定时判断当前是否存在扫描输出文件scaner.conf,

若存在,以扫描模块获取的当前集群的离线节点列表和空闲节点列表、作业信息列表作为输入,结合负载策略判断当前是否需要进行节点开关机以及如何操作,将负载操作信息提供给扫描模块同时存入策略输出文件policy.conf中,

若不存在,则等待下次轮询;

步骤7:定义服务启停模块,支持用户通过页面操作进行策略服务的启动与停止操作,服务停止后将不会自动对节点进行开关机;

步骤8:定义日志统计模块,支持数据库日志查询与统计,统计查询时间内的开关机操作以及节省的节点总量。

本发明通过设置缓冲池空闲节点数可以保证集群可用节点的数目,设置单次最多操作节点数可以避免同时开关多节点造成的电路脉冲,设置节点保护时长可以避免节点被频繁操作,该发明同时可以记录负载及作业状况日志,提供智能负载历史操作的查询。

PBS Torque是PBS作业调度管理器。PBS 是功能最为齐全,历史最悠久,支持最广泛的本地集群调度器之一,PBS 的目前包括 openPBS,PBS Pro 和 Torque 三个主要分支,其中 OpenPBS 是最早的 PBS 系统,目前已经没有太多后续开发,PBS pro 是 PBS 的商业版本,功能最为丰富,Torque 是 Clustering 公司接过了 OpenPBS,并给与后续支持的一个开源 版本。

IPMI智能平台管理接口,是Intelligent Platform Management Interface的缩写,是管理基于 Intel结构的企业系统中所使用的外围设备采用的一种工业标准。

上述实施例是说明性的,而非限定性的,上述实施例只是帮助理解本发明,因此本发明不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他的具体实施方式,同样属于本发明保护的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1