一种实时监测RACK机柜电源的方法与流程

文档序号:16998347发布日期:2019-03-02 01:33阅读:193来源:国知局
一种实时监测RACK机柜电源的方法与流程

本发明涉及服务器电源监测技术领域,具体涉及一种实时监测rack机柜电源的方法。



背景技术:

rack整机由一组电源集中供电,整机功耗很高,对供电的要求比较严苛。随着对数据中心安全日益稳定运行的需求,rack整机供电稳定性变的尤为重要。

psu在失效时,对应psu内部过压、过流、过温等标志位会发生置位,rmc通过检测标志位来判断电源是否失效,但是这就可能会遇到电源失效的时候标志位并没有置起,导致rmc并不能发现电源已经失效。



技术实现要素:

为了克服上述现有技术中的不足,本发明提供一种实时监测rack机柜电源的方法,以解决上述技术问题。

本发明的技术方案是:

一种实时监测rack机柜电源的方法,包括如下步骤:

rmc轮询各个psu读取psu的输出电流值;

对读取的电流值进行比较判断;

rmc输出psu电流过低的log;

若rmc输出同一个psu电流过低log的次数达到设置的次数阈值,rmc下发电源重启命令到该psu。

进一步的,步骤rmc轮询各个psu读取psu的输出电流值中,具体包括:

rmc通过pmbus轮询各个psu读取psu输出电流的数值。

进一步的,步骤对读取的电流值进行比较判断包括:

分别将读取的psu输出电流值与设定的电流阈值进行比较,若psu输出电流值小于设定的电流阈值,则执行步骤rmc输出psu电流过低的log。

进一步的,步骤若rmc输出同一个psu电流过低log的次数达到设置的次数阈值,rmc下发电源重启命令到该psu,包括:

针对每个psu,统计rmc输出该psu电流过低的log的次数;

若rmc输出的同一个psu电流过低log的次数达到设置的次数阈值;

rmc下发电源重启命令到该psu。

进一步的,步骤rmc下发电源重启命令到该psu,包括:

rmc下发关闭命令到psu,并开始计时;

若时间达到设定时间阈值,rmc下发开启命令到psu;

读取psu输出电流值,并对读取的电流值进行判断。

进一步的,步骤读取psu输出电流值,并对读取的电流值进行判断,包括:

若判断读取的电流值小于设定的电流阈值,rmc下发关闭命令到psu,并开始计时;

若时间达到设定时间阈值,rmc下发开启命令到psu;

读取psu输出电流值,并对读取的电流值进行判断;

若连续三次对psu进行重启操作psu仍无法恢复正常,则输出对应psu的报警log。

进一步的,该方法还包括:

自动收集psu异常log,并进行保存。

进一步的,步骤自动收集psu异常log,并进行保存,具体包括如下步骤:

获取psu异常log;

根据psu异常log中的返回的结果代码和节点id确定出异常log对应事件的序列号;

根据所述的结果代码和序列号将psu异常log按照优先级顺序存储到rmc内日志表的存储队列中。

进一步的,步骤根据psu异常log中的返回的结果代码和节点id确定出异常log对应事件的序列号,包括:

将结果代码和节点id作为关键字查询当前存储队列中是否存在该异常log对应的事件;

若存在,获取存储队列中存在的该事件的序列号,并将获取的序列号分配给新产生的psu异常log对应的事件,;

若不存在,则分配一个新的序列号给新产生的psu异常log对应的事件,所述的新的序列号为当前已存在的最大序列号加1。

进一步的,步骤针对每个psu,统计rmc输出该psu电流过低的log的次数,具体包括:

结果代码和节点id作为关键字查询当前存储队列中的序列号;

统计相同序列号出现的次数,即该psu输出的电流过低log的次数。

从以上技术方案可以看出,本发明具有以下优点:通过rmc不断读取psu的输出电流值来判断电源是否失效,同时rmc可以实时打印异常log,并在失效后进行电源重启动作尝试恢复,并自动保存psu异常log,此方法从根本上确保了电源失效后能够被检测到,并且可以一定程度的尝试修复,确保了数据中心安全稳定的运行,保证了机柜供电的可靠性和稳定性。

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

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

附图说明

图1为一种实时监测rack机柜电源的方法流程图。

具体实施方式

本发明提供一种实时监测rack机柜电源的方法,通过rmc不断读取psu的输出电流值来判断电源是否失效,同时rmc可以实时打印异常log,并在失效后进行电源重启动作尝试恢复,并自动保存psu异常log,此方法从根本上确保了电源失效后能够被检测到,并且可以一定程度的尝试修复,确保了数据中心安全稳定的运行,保证了机柜供电的可靠性和稳定性。

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

实施例一

如图1所示,本发明实施例提供一种实时监测rack机柜电源的方法,包括如下步骤:

s1:rmc轮询各个psu读取psu的输出电流值;

需要说明的是,rack机柜内设有多个psu模块,本步骤中,rmc通过pmbus(powermanagementbus,电源管理总线)轮询各个psu读取psupage00x8c(read_iout)的数值,也就是psu输出电流的数值;

s2:对读取的电流值进行比较判断;

首先可以将读取的psu输出电流值按不同的psu进行分类存储;同时将读取的psu输出电流值与设定的电流阈值进行比较,在这里,设定的电流阈值可以是0.5a,若psu输出电流值小于0.5a,执行步骤s3,;

s3:rmc输出psu电流过低的log;

上述步骤的实现具体命令如下:

rmc通过pmcbus命令轮询读取0x8c的值,也就是psu输出电流值:

############轮询读取read_iout0x8c数值############

~#psu_clia100x8c

--------------------------

read_iout(l16n=-7):0.250000(amps)

--------------------------

rawbytes(read):

0x200x00

如上psu输出电流为0.25a,rmc判断此值小于0.5a,rmc下报出如下log:

091208/23/201813:54:26123456:criticalpsua1outputcurrentwas0.250000,0001

s4:若同一个psu输出电流低于设置电流阈值的次数达到设置的次数阈值,rmc下发电源重启命令到该psu。

首先,针对每个psu,统计psu输出电流低于设置电流阈值的次数,也就是,rmc输出该psu电流过低的log的次数;

当rmc重复检测到该psu3次电流均小于0.5a的时候,主动对该psu下发stoppsu命令,过20s后重新startpsu,然后检测psu输出电流是否正常。如果连续三次stop/startpsu,psu仍然无法恢复正常,则rmc停止恢复psu,并输出对应报警log。

开关机psu操作如下:

stoppower/psua1//rmc下自动关闭psua1

startpower/psua1//rmc下自动开启psua1

如果psu输出电流恢复正常,rmc下会报出如下日志:

091408/23/201813:54:43123456:infopsua1outputcurrentgotbacktonormal0002

如果开关机psu三次,psu仍然无法恢复正常,rmc下会报出如下日志:

092508/23/201813:57:45123456:infopsua1autorecoveryfail0003该方法还包括步骤s5:自动收集psu异常log,并进行保存。

当rmc尝试修复psu失败时,rmc自动收集psu异常log,并保存在rmc下,供后续问题分析判断。

rmc自动收集psu异常log命令如下:

~#get_psu_loga1

logsavedinfile:/conf/rmc/log/psua1_log_all.txt

后续可以通过查看psua1_log_all.txt文件来定位psu问题。

实施例二

本发明实施例提供一种实时监测rack机柜电源的方法,包括如下步骤:

s1:rmc轮询各个psu读取psu的输出电流值;

需要说明的是,rack机柜内设有多个psu模块,本步骤中,rmc通过pmbus(powermanagementbus,电源管理总线)轮询各个psu读取psupage00x8c(read_iout)的数值,也就是psu输出电流的数值;

s2:对读取的电流值进行比较判断;

首先可以将读取的psu输出电流值按不同的psu进行分类存储;同时将读取的psu输出电流值与设定的电流阈值进行比较,在这里,设定的电流阈值可以是0.5a,若psu输出电流值小于0.5a,执行步骤s3,;

s3:rmc输出psu电流过低的log;

需要说明的是,输出的log中需要携带相关的信息,例如rack机柜中节点id、rack机柜id以及返回的结果代码;

其中,结果代码可以是十六进制数,rack机柜id是以机柜为单位,可以是a、b、c等,由于rack机柜内设有多个psu,每个psu设有一个节点id,并且节点的id不能重复,a1、a2、b1、b2等,rack机柜id和节点的id主要是为了明确的表示结果代码具体是哪个机柜中的哪个节点返回的。

上述步骤的实现具体命令如下:

rmc通过pmcbus命令轮询读取0x8c的值,也就是psu输出电流值:

############轮询读取read_iout0x8c数值############

~#psu_clia100x8c

--------------------------

read_iout(l16n=-7):0.250000(amps)

--------------------------

rawbytes(read):

0x200x00

如上psu输出电流为0.25a,rmc判断此值小于0.5a,rmc下报出如下log:

091208/23/201813:54:26123456:criticalpsua1outputcurrentwas0.250000,0001

s4:若同一个psu输出电流低于设置电流阈值的次数达到设置的次数阈值,rmc下发电源重启命令到该psu。

首先,针对每个psu,统计psu输出电流低于设置电流阈值的次数,也就是,rmc输出该psu电流过低的log的次数;

当检测到该psu3次电流均小于0.5a的时候,主动对该psu下发stoppsu命令,过20s后重新startpsu,然后检测psu输出电流是否正常。如果连续三次stop/startpsu,psu仍然无法恢复正常,则rmc停止恢复psu,并输出对应报警log。

开关机psu操作如下:

stoppower/psua1//rmc下自动关闭psua1

startpower/psua1//rmc下自动开启psua1

如果psu输出电流恢复正常,rmc下会报出如下日志:

091408/23/201813:54:43123456:infopsua1outputcurrentgotbacktonormal0002

如果开关机psu三次,psu仍然无法恢复正常,rmc下会报出如下日志:

092508/23/201813:57:45123456:infopsua1autorecoveryfail0003该方法还包括步骤s5:自动收集psu异常log,并进行保存。

步骤s5中,具体包括如下步骤:

s51:获取psu异常log;

异常log中返回的每个结果代码代表一种类型的事件,为了便于日志的分类存储对每个类型的事件对应设置一个用于存储日志的存储队列;

s52:根据psu异常log中的结果代码和节点id确定出对应事件的序列号;

根据返回的结果代码可以确定对应的事件类型,对同一个类型的事件包含返回结果可以有多个,但是每个事件可以设置唯一的序列号,例如psua1输出电流小于0.5a的时候,输出log,对应的序列号0912,每当输出psua1输出电流小于0.5a的log的时候,首先以结果代码和节点id为关键字在当前的存储队列中查询该对应的事件是否已经存在于该存储队列中,若是,获取队列中存在的事件对应的序列号0912分配给新产生的事件,否则,则分配一个新的序列号给新产生的事件,所述的新的序列号为当前已存在的最大序列号加1。

s53:根据所述的结果代码和序列号将psu异常log按照优先级顺序存储到rmc内日志表的存储队列中。

上述步骤s4中提到的,首先,针对每个psu,统计psu输出电流低于设置电流阈值的次数,也就是,rmc输出该psu电流过低的log的次数的实现可以通过如下步骤:

首先以返回的结果代码和节点id作为关键字查询当前存储队列中的序列号;

统计相同序列号出现的次数,即该psu输出的电流过低log的次数。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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