一种电源在位状态修正方法、装置、设备及可读存储介质与流程

未命名 10-08 阅读:69 评论:0


1.本发明涉及服务器技术领域,特别涉及一种电源在位状态修正方法、装置、设备及可读存储介质。


背景技术:

2.在服务器领域需要使用psu(电源)。当前电源的在位状态主要包括在位异常和在位正常,在位异常中包括不确定数值,即不确定该数值对应的在位故障类型是哪种,或者对于断电上电后出现的新的数值直接作为不确定状态数值,并直接归类为在位异常。由于出现在位信息异常会直接认为psu存在故障,而确定psu存在故障时,将对服务器的整机运行造成严重的安全隐患。
3.由于当前存在psu在位异常,但是psu实际无故障的情况,这种错误判断,会影响psu的正常运行。因此,需要提高确定psu在位状态的准确性。


技术实现要素:

4.有鉴于此,本发明的目的在于提供一种电源在位状态修正方法、装置、设备及可读存储介质,解决了现有技术中电源在位状态不准确的技术问题。
5.为解决上述技术问题,本发明提供了一种电源在位状态修正方法,包括:
6.获取不确定状态数值;其中,所述不确定状态数值为电源在位异常中不确定状态类别对应的数值;
7.获取所述不确定状态数值对应的历史实际工作状态;
8.当根据所述历史实际工作状态确定所述不确定状态数值的电源在位状态需要修正时,根据所述历史实际工作状态对所述不确定状态数值对应的电源在位状态进行修正。
9.可选的,在获取所述不确定状态数值对应的历史实际工作状态之前,还包括:
10.根据所述不确定状态数值进行预设次数的电源在位状态测试处理,得到预设次数的历史工作状态;
11.将所述历史工作状态中出现次数最多的工作状态作为所述历史实际工作状态。
12.可选的,在所述获取不确定状态数值之前,还包括:
13.利用目标设备获取电源在位状态寄存器对应的在位状态数值;
14.当将所述在位状态数值归类为电源异常中的不确定类型时,得到所述不确定状态数值。
15.可选的,所述根据所述历史实际工作状态对所述不确定状态数值对应的电源在位状态进行修正,包括:
16.获取与所述历史实际工作状态对应的修正规则;其中,所述修正规则为将所述不确定状态数值修改为正常状态对应的在位状态地址位逻辑值、对所述不确定状态数值对应的预设位数地址位进行删除和直接将所述不确定状态数值归类为正常状态中的任意一种规则;
17.根据所述修正规则对所述不确定状态数值对应的电源在位状态进行修正。
18.可选的,所述获取不确定状态数值,包括:
19.当电源断电立刻上电时,获取电源在位状态寄存器对应的实时在位状态数值;
20.当所述实时在位状态数值为最新不确定状态数值时,将所述最新不确定状态数值对应的电源状态确定为待分类状态;其中,所述待分类状态对应的电源处理方式为预设时间阈值内电源不断电;
21.存储所述预设时间阈值内所述最新不确定状态数值对应的电源工作参数和电源工作状态,并对所述最新不确定状态数值出现的次数进行标记。
22.可选的,在所述存储所述预设时间阈值内所述最新不确定状态数值对应的电源工作参数和电源工作状态,并对所述最新不确定状态数值出现的次数进行标记之后,还包括:
23.当所述最新不确定状态数值对应的出现次数达到预设出现次数时,获取所述最新不确定状态数值对应的所有的所述电源工作参数,以及所有的所述电源工作状态;
24.根据所有的所述电源工作参数和所有的所述电源工作状态,确定所述最新不确定状态数值对应的实际电源在位状态,并根据所述实际电源在位状态对所述最新不确定状态数值对应的电源在位状态进行修正;
25.或者根据所有的所述电源工作参数和所有的所述电源工作状态,对所述最新不确定状态数值对应的所述预设时间阈值进行调整;
26.或者当所述最新不确定状态数值对应的出现次数达到所述预设出现次数时,发送不确定状态数值提示信息;
27.接收测试结果,根据所述测试结果对所述最新不确定状态数值对应的电源在位状态进行修正;其中,所述测试结果是根据所述不确定状态数值提示信息进行测试得到的测试结果。
28.可选的,所述当电源断电立刻上电时,获取电源在位状态寄存器对应的实时在位状态数值,包括:
29.当正常运行时突然断电立刻上电或强制断电立刻上电时,获取所述电源在位状态寄存器对应的所述实时在位状态数值。
30.本发明还提供了一种电源在位状态修正装置,包括:
31.不确定状态数值获取模块,用于获取不确定状态数值;其中,所述不确定状态数值为电源在位异常中不确定状态类别对应的数值;
32.历史实际工作状态获取模块,用于获取所述不确定状态数值对应的历史实际工作状态;
33.修正模块,用于当根据所述历史实际工作状态确定所述不确定状态数值的电源在位状态需要修正时,根据所述历史实际工作状态对所述不确定状态数值对应的电源在位状态进行修正。
34.本发明还提供了一种电源在位状态修正设备,包括:
35.存储器,用于存储计算机程序;
36.处理器,用于执行所述计算机程序时实现上述的电源在位状态修正方法的步骤。
37.本发明还提供了一种计算机可读存储介质,所述可读存储介质上存储有程序,所述程序被处理器执行时实现上述电源在位状态修正方法的步骤。
38.可见,本发明通过获取不确定状态数值;其中,不确定状态数值为电源在位异常中不确定状态类别对应的数值;获取不确定状态数值对应的历史实际工作状态;当根据历史实际工作状态确定不确定状态数值的电源在位状态需要修正时,根据历史实际工作状态对不确定状态数值对应的电源在位状态进行修正。本发明提高的技术方案,和当前直接将所有不确定状态数值对应的电源在位状态确定为电源在位异常相比,可以根据历史实际工作状态对不确定状态数值对应的电源在位状态进行修正,进而提高不确定状态数值对应的电源在位状态的准确性,减少了直接确定为电源在位异常对服务器整机运行的安全隐患。
39.此外,本发明还提供了一种电源在位状态修正装置、设备及可读存储介质,同样具有上述有益效果。
附图说明
40.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
41.图1为本发明实施例提供的一种电源在位状态修正方法的流程图;
42.图2为本发明实施例提供的另一种电源在位状态修正方法的流程图;
43.图3为本发明实施例提供的一种电源在位状态修正方法的流程示例图;
44.图4为本发明实施例提供的另一种电源在位状态修正方法的流程示例图;
45.图5为本发明实施例提供的一种具体的电源在位状态修正方法的流程示例图;
46.图6为本发明实施例提供的一种电源在位状态修正装置的结构示意图;
47.图7为本发明实施例提供的一种电源在位状态修正设备的结构示意图。
具体实施方式
48.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
49.当出现电源在位信息异常则会认为电源存在问题,将对服务器的整机运行造成严重的安全隐患。但是,由于当前直接将不确定状态数值确定为电源在位异常,但是存在不确定状态数值对应的实际电源在位状态是正常的情况。故不能因为电源的在位信息异常就确认电源存在问题,需要确认不确定状态数值对应的实际在位状态,故本发明主要为了解决如何提高电源在位状态的准确性的技术问题。
50.请参考图1,图1为本发明实施例提供的一种电源在位状态修正方法的流程图)。该方法可以包括:
51.s100,获取不确定状态数值;其中,不确定状态数值为电源在位异常中不确定状态类别对应的数值。
52.该实施例中的不确定状态数值是指,电源在位异常状态中处于中间态(unknow)的数值。该实施例并不限定具体的不确定状态数值。例如,不确定状态数值可以是0x0844;或
者不确定状态数值还可以是0x4000;或者不确定状态数值还可以是0x0840。该实施例并不限定获取不确定状态数值的时机。例如,可以在整机服务器正常运行时突然断电或人为进行强制断电,服务器重新启动时获取不确定状态数值,即在服务器运行检测电源在位状态过程中获取不确定状态数值;或者还可以直接获取不确定状态数值,即从源存储文件中获取不确定状态数值,并对不确定状态数值对应的电源在位状态进行修正。可以理解的是,利用目标设备获取电源在位状态寄存器对应的在位状态数值;当将在位状态数值归类为电源异常中的不确定类型时,得到不确定状态数值。该实施例并不限定具体的目标设备,例如,目标设备可以是bios(basic input output system,基本输入输出系统),或者目标设备还可以是bmc(baseboard management controller,基板管理控制器)。
53.需要说明的是,当在电源在位状态确定的过程中对服务器电源进行处理,电源断电立刻上电时,获取电源在位状态寄存器对应的实时在位状态数值时,判断实时在位状态数值是否为最新不确定状态数值,当实时在位状态数值为最新不确定状态数值时,将最新不确定状态数值对应的电源状态确定为待分类状态;其中,待分类状态对应的电源处理方式为预设时间阈值内电源不断电;存储预设时间阈值内最新不确定状态数值对应的电源工作参数和电源工作状态,并对最新不确定状态数值出现的次数进行标记。当实时在位状态数值不是最新不确定状态数值时,表明该实时在位状态数值存在历史实际在位状态,此时可以直接根据历史实际工作状态进行修正。该实施例可以对最新出现的不确定状态数值进行处理,防止直接确定为电源在位故障从而造成数据丢失等安全隐患。
54.s101,获取不确定状态数值对应的历史实际工作状态。
55.该实施例并不限定历史实际工作状态获取的具体方式。例如,可以将之前服务器电源运行过程中的历史工作状态作为历史实际工作状态;或者还可以利用不确定状态数值进行测试,得到测试电源信号,根据测试电源信号确定历史实际工作状态;或者根据不确定状态数值进行预设次数的电源在位状态测试处理,得到预设次数的历史工作状态;将历史工作状态中出现次数最多的工作状态作为历史实际工作状态。可以理解的是,将出现次数最多的工作状态作为历史实际工作状态可以提高历史实际工作状态确定的准确性。
56.s102,当根据历史实际工作状态确定不确定状态数值的电源在位状态需要修正时,根据历史实际工作状态对不确定状态数值对应的电源在位状态进行修正。
57.该实施例并不限定根据历史实际工作状态修正不确定状态数值对应的电源在位状态的具体方式。例如,可以直接根据不确定状态数值对应的历史实际工作状态修正电源在位状态,即当不确定状态数值对应的历史实际工作状态为正常时,直接将不确定状态数值对应的电源在位状态修正为正常;或者可以根据历史实际工作状态确定不确定状态数值是否为历史实际工作状态正常中的预设修正数值,当不确定状态数值属于预设修正数值时,直接将不确定状态数值对应的电源在位状态修正为正常,其中,所有的预设修正数值(预设修正数值至少为一个)可以存储在列表中;或者所有的预设修正数值还可以存储在文件中;或者将不确定状态数值修正为电源在位正常对应的数值;或者对不确定状态数值的预设位数进行删除,以使将不确定状态数值对应的电源在位状态由电源在位异常修正为电源在位正常。
58.本发明实施例提供的电源在位状态修正方法,包括:获取不确定状态数值;其中,不确定状态数值为电源在位异常中不确定状态类别对应的数值;获取不确定状态数值对应
的历史实际工作状态;当根据历史实际工作状态确定不确定状态数值的电源在位状态需要修正时,根据历史实际工作状态对不确定状态数值对应的电源在位状态进行修正。可见,和当前直接将不确定状态数值对应的电源在位状态确定为电源在位异常相比,本发明会根据不确定状态数值对应的历史实际工作状态对不确定状态数值对应的电源在位状态进行修正,并且,可以在电源在位状态检测过程中实时修正,或者还可以直接在源头修正不确定状态数值对应的电源在位状态,后续当检测到该不确定状态数值,就无需修正;并且,对将最新出现的不确定状态数值归类为待分类状态,预设时间阈值内电源不断电,由于会给出一定的缓存时间,从而降低了电源断电的安全隐患。
59.为了使本发明更便于理解,具体请参考图2,图2为本发明实施例提供的另一种电源在位状态修正方法的流程图,具体可以包括:
60.s200,获取不确定状态数值;其中,不确定状态数值为电源在位异常中不确定状态类别对应的数值。
61.该实施例并不限定不确定状态数值的具体数值。例如,该不确定状态数值可以是电源在位状态异常对应数值中的0x0840;或者该不确定状态数值可以是电源在位状态异常对应数值中的0x2840。
62.s201,获取不确定状态数值对应的历史实际工作状态。
63.该实施例并不限定历史实际工作状态的具体状态。例如,历史实际工作状态可以是在位正常,或者历史实际工作状态还可以是在位异常;或者历史实际工作状态还可以是其他类型。
64.s202,当根据历史实际工作状态确定不确定状态数值的电源在位状态需要修正时,获取与历史实际工作状态对应的修正规则;其中,修正规则为将不确定状态数值修改为正常状态对应的在位状态地址位逻辑值、对不确定状态数值对应的预设位数地址位进行删除和直接将不确定状态数值归类为正常状态中的任意一种规则。
65.该实施例中的修正规则可以是将不确定状态数值修改为正常状态对应的在位状态地址位逻辑值;或者修正规则可以是对不确定状态数值对应的预设位数地址位进行删除,例如,因bios对bmc获取的psu(电源)状态寄存器是2个字节大小,而bios部分只需要对psu的第1个字节即末位字节进行条件判断转化即可,故将不确定状态数值0x0840和0x2840数值转为0x40并归为ok正常状态位即可;或者修正规则还可以是直接将不确定状态数值归类为正常状态,例如,直接将不确定状态数值0x0840和0x2840数值归类为正常状态位。
66.为便于理解,请参考表1,表1为本发明实施例提供的一种将不确定状态数值归类为正常状态(ok)后的对应表,其中,0x0840和0x2840数值对应的不确定状态数值类型为修正后对应的状态,即0x0840和0x2840数值原始对应的类型是中间态(unknown),经修正后对应正常(ok)。
67.表1一种将不确定状态数值归类为正常状态后的对应表
68.psu不确定状态数值不确定状态数值类型0x8860unknown0x8840unknown0x0004unknown0x0844unknown
0x4000unknown0x4850unknown0x0400unknown0x0c40unknown0x2000unknown0x2848unknown0x2840ok 0x0840ok
69.s203,根据修正规则对不确定状态数值对应的电源在位状态进行修正。
70.该实施例通过根据修正规则对不确定状态数值对应的电源在位状态进行修正,避免系统下误认为psu故障,保证psu在位信息在系统下准确无误,提高系统的稳定性,该发明可应用于任何架构服务器产品中。
71.为了使本发明更便于理解,具体请参考图3,图3为本发明实施例提供的一种电源在位状态修正方法的流程示例图,具体可以包括:
72.s300,当电源断电立刻上电时,获取电源在位状态寄存器对应的实时在位状态数值。
73.该实施例并不限定获取电源在位状态寄存器对应的实时在位状态数值的具体时机。例如,可以当正常运行时突然断电立刻上电时,获取电源在位状态寄存器对应的实时在位状态数值;或者当强制断电立刻上电时,获取电源在位状态寄存器对应的实时在位状态数值。可以理解的是,在整机服务器正常运行时突然断电或人为进行强制断电后,立刻进行上电并开机,此时,服务器正常启动;在服务器启动过程中bmc会通过i2c(nter-integrated circuit,总线)协议去读取psu的寄存器数据并进行解析和传递,bmc读取psu的寄存器时采用时间轮询方式进行数据读取。
74.s301,判断实时在位状态数值是否为最新不确定状态数值。
75.该实施例在获取到实时在位状态数值时,会判断实时在位状态数值是否为最新不确定状态数值。
76.s302,当实时在位状态数值为最新不确定状态数值时,将最新不确定状态数值对应的电源状态确定为待分类状态;其中,待分类状态对应的电源处理方式为预设时间阈值内电源不断电。
77.可以理解的是,当前在初始获取到不确定状态数值时,会直接确定电源存在异常,从而对电源进行断电处理,此时将对服务器的整机运行造成严重的安全隐患,例如数据丢失等。故该实施例在第一次获取到不确定状态数值,即获取到最新不确定状态数值时,将最新不确定状态数值对应的电源状态确定为待分类状态;其中,待分类状态对应的电源处理方式为预设时间阈值内电源不断电。从而给相关主体一定的反应时间,如何对该不确定状态数值进行处理,防止数据丢失。该实施例并不限定具体的预设时间阈值。例如,预设时间阈值可以是10分钟;或者预设时间阈值可以是20分钟;或者预设时间阈值还可以是30分钟。该实施例并不限定在预设时间阈值内相关主体是否对服务器电源进行处理,以及如何处理。例如,当相关主体发现该不确定状态数值时,可以根据经验自行对服务器电源进行断电处理;或者当相关主体发现该不确定状态数值时,可以根据经验自行确定在预设时间阈值
后不对服务器电源进行断电处理。
78.s303,存储预设时间阈值内最新不确定状态数值对应的电源工作参数和电源工作状态,并对最新不确定状态数值出现的次数进行标记。
79.该实施例中的电源工作参数是指,电源工作参数可以是psu的电流、电压、psu数量、psu厂商、psu支持的瓦数、psu的位置信息、psu的在位状态、psu的序列号、psu的型号、psu的固件版本信息等信息。可以理解的是,该实施例之所以存储电源工作参数和电源工作状态是为了后续对该不确定数值进行具体的分析,确定电源实际在位状态确定的准确性。
80.需要说明的是,该实施例在存储电源工作参数和电源工作状态,以及标记次数后执行的具体操作可以是,当最新不确定状态数值对应的出现次数达到预设出现次数时,获取最新不确定状态数值对应的所有的电源工作参数,以及所有的电源工作状态;根据所有的电源工作参数和所有的电源工作状态,确定最新不确定状态数值对应的实际电源在位状态,并根据实际电源在位状态对最新不确定状态数值对应的电源在位状态进行修正;或者根据所有的电源工作参数和所有的电源工作状态,对最新不确定状态数值对应的预设时间阈值进行调整;或者当最新不确定状态数值对应的出现次数达到预设出现次数时,发送不确定状态数值提示信息;接收测试结果,根据测试结果对最新不确定状态数值对应的电源在位状态进行修正;其中,测试结果是根据不确定状态数值提示信息进行测试得到的测试结果。该实施例中可以获取存储的所有的电源工作参数,以及所有的电源工作状态对电源在位状态进行修正,或者还可以根据所有的电源工作参数,以及所有的电源工作状态对预设时间阈值进行调整,或者还可以是发送不确定状态数值提示信息,以便根据该不确定状态数字进行测试,从而接收专业人员的测试结果,根据测试结果对电源在位状态进行修正。该实施例并不限定具体的不确定状态数值提示信息,不确定状态数值提示信息可以是提示出现最新不确定状态数值;或者该提示信息还可以是预警信息。可以理解的是,该实施例可以直接根据之前电源运行过程中的电源工作参数和电源工作状态确定最新不确定状态数值对应的实际电源在位状态,无需重新利用不确定数值进行测试处理,提高了不确定状态数值对应电源在位状态确定的效率,或者可以直接修正预设时间阈值,提高预设时间阈值设定的准确性,或者可以根据测试结果修正最新不确定状态数值对应的电源在位状态。因此,本发明可以提升对最新不确定状态数值处理的全面性,和修正的及时性。
81.s304,当实时在位状态数值不是最新不确定状态数值时,获取实时在位状态数值对应的历史实际工作状态。
82.该实施例之所以获取历史实际工作状态,是为了及时对该不确定状态数值对应的电源在位状态进行修正。
83.s305,当根据历史实际工作状态确定实时在位状态数值的电源在位状态需要修正时,获取与历史实际工作状态对应的修正规则。
84.s306,根据修正规则对不确定状态数值对应的电源在位状态进行修正。
85.为了使本发明更便于理解,具体请参考图4,图4为本发明实施例提供的另一种电源在位状态修正方法的流程示例图,具体可以包括:
86.s400,利用目标设备获取电源在位状态寄存器对应的在位状态数值。
87.该实施例并不限定具体的目标设备。例如,目标设备可以是基本输入输出系统;或者目标设备还可以是基板管理控制器。可以理解的是,在服务器整机中,psu(电源)不仅仅
给服务器进行整机供电,我们还需要通过查看psu的电源信息进行实时监控psu的工作状态,如查看psu的电流、电压、psu数量、psu厂商、psu支持的瓦数、psu的位置信息、psu的在位状态、psu的序列号、psu的型号、psu的固件版本信息等基本信息,上述信息都被记录到psu的寄存器当中,而bios(基本输入输出系统)和bmc(基板管理控制器)同样需要进行psu的信息保留,但是bios的smbios(统一产品管理信息)信息的type39(smbios协议的一种电源信息显示类型)功能是用来记录psu的上述信息,而bmc的web界面通用也会记录上述psu信息,但是bios从bmc获取的type 39信息只是在bios启动过程中从bmc处获取的且无法实时进行信息交互,而bmc从psu获取上述信息是通过i2c(两线式串行总线)协议进行实时获取。系统下bios(基本输入输出系统)的smbios信息(统一产品管理信息)中的type 39(电源信息显示类型)功能用于记录服务器的psu相关信息,尤其是psu的在位信息,而bios的type 39信息是在bios启动过程中通过ipmi协议从bmc处获取的psu数据信息,bmc的psu信息是通过bmc的i2c协议去读取psu的寄存器获取的,当服务器在运行中出现断电或者某种原因出现断电时立刻重新上电时,psu也会上电自检并记录各个阶段的状态值,此时bmc会通过i2c去读取psu的寄存器以获取状态信息并进行记录,当重新上电时bios启动阶段会通过ipmi协议去读取bmc通过i2c获取的psu的寄存器信息,当此时的psu信息在位状态不正确时则会将该信息传递给bios,bios会根据此时bmc读取psu的寄存器信息进行smbios协议type 39功能创建,同时,将psu的错误信息记录到bios中去,因bios启动过程中只会与bmc通信一次且创建type 39功能后不会进行数据刷新或者数据更新功能,故系统下读取的psu在位信息是错误的数据,导致校验检查时认为整机服务器的psu存在故障,但存在不确定状态数值是非电源在位异常的情况,故需要bios或者bmc端获取在位状态数值。
88.s401,当将在位状态数值归类为电源异常中的不确定类型时,存储不确定状态数值。
89.该实施例会存储不确定状态数值。
90.s402,根据不确定状态数值进行预设次数的电源在位状态测试处理,得到预设次数的历史工作状态。
91.该实施例会根据不确定状态数值进行预设次数的电源在位状态测试处理,得到对应的测试信号,从而根据测试信号确定历史工作状态。该实施例并不限定预设次数的具体次数。例如,预设次数可以是1次;或者预设次数还可以是3次;或者预设次数还可以是5次。
92.s403,将历史工作状态中出现次数最多的工作状态作为历史实际工作状态。
93.该实施例将历史工作状态中出现次数最多的工作状态作为历史实际工作状态。可以理解的是,本发明实施例考虑到在预设次数的历史工作状态中,可能存在工作状态不一致的情况,此时需要将历史工作状态中出现次数最多的工作状态作为历史实际工作状态,确保历史实际工作状态确定的准确性。
94.s404,根据历史实际工作状态对不确定状态数值对应的电源在位状态进行修正。
95.为了使本发明更便于理解,具体请参考图5,图5为本发明实施例提供的一种具体的电源在位状态修正方法的流程示例图,具体可以包括:
96.s500,电源正常运行时突然断电或人为进行强制断电后,立刻进行上电并开机,服务器正常启动时。
97.s501,当利用目标设备获取到电源在位状态寄存器对应的不确定状态数值时,确
定对不确定状态数值进行修正的设备。
98.可以理解的是,当服务器启动过程中,bios通过ipmi(intelligentplatform management interface,智能平台管理接口)协议去bmc获取psu信息数据时,若是采用bios对psu数值进行修正则bmc无需处理,若采用bmc对psu数值进行规范,则bios无需进行修正。系统下bios(基本输入输出系统)的smbios信息(统一产品管理信息)中的type 39(电源信息显示类型)功能用于记录服务器的psu相关信息,尤其是psu的在位信息,而bios的type 39信息是在bios启动过程中通过ipmi协议从bmc处获取的psu数据信息,bmc的psu信息是通过bmc的i2c协议去读取psu的寄存器获取的,当服务器在运行中出现断电或者某种原因出现断电时立刻重新上电时,psu也会上电自检并记录各个阶段的状态值,此时bmc会通过i2c去读取psu的寄存器以获取状态信息并进行记录,当重新上电时bios启动阶段会通过ipmi协议去读取bmc通过i2c获取的psu的寄存器信息,当此时的psu信息在位状态不正确时则会将该信息传递给bios,bios会根据此时bmc读取psu的寄存器信息进行smbios协议type 39功能创建,同时,将psu的错误信息记录到bios中去,因bios启动过程中只会与bmc通信一次且创建type 39功能后不会进行数据刷新或者数据更新功能,故系统下读取的psu在位信息是错误的数据,导致校验检查时认为整机服务器的psu存在故障,但存在不确定状态数值是非电源在位异常的情况,故需要bios或者bmc端对该不确定状态数值进行及时修正。
99.s502,当利用基板控制器修正不确定状态数值对应的电源在位状态时,利用基板控制器确定不确定状态数值是否属于第一预设修正数值中的数值。
100.s503,当基板控制器确定不确定状态数值属于第一预设修正数值中的数值时,根据第一预设修正数值对应的第一修正规则将不确定状态数值的在位状态归类为电源在位正常。
101.该实施例并不限定具体的第一修正规则。例如,该实施例中的第一修正规则可以是将不确定状态数值修改为正常状态对应的在位状态地址位逻辑值;或者第一修正规则可以是对不确定状态数值对应的预设位数地址位进行删除,即可以将不确定状态数值0x0840和0x2840数值转为0x40并归为ok正常状态位即可;或者第一修正规则还可以是直接将不确定状态数值归类为正常状态,例如,直接将不确定状态数值0x0840和0x2840数值归类为正常状态位。
102.s504,当基板控制器确定不确定状态数值不属于第一预设修正数值中的数值时,将不确定状态数值确定为待分类状态;其中,待分类状态对应的电源处理方式为预设时间阈值内电源不断电。
103.s505,当利用基本输入输出系统修正不确定状态数值对应的电源在位状态时,利用基本输入输出系统确定不确定状态数值是否为第二预设修正数值;
104.s506,当基本输入输出系统确定不确定状态数值为第二预设修正数值时,将不确定状态数值转为0x40并归为电源正常状态位。
105.s507,当基本输入输出系统确定不确定状态数值不属于第二预设修正数值中的数值时,将不确定状态数值确定为待分类状态;其中,待分类状态对应的电源处理方式为预设时间阈值内电源不断电。
106.该实施例在服务器整机突然断后或者人为断电后,立刻上电时psu在服务器启动过程中其状态寄存器会动态变化且数值不固定,导致bios启动过程中通过ipmi
(intelligentplatform management interface,智能平台管理接口)命令从bmc端获取psu状态位信息不正确而出现系统下smbios(system managementbios,主板或系统制造者以标准格式显示产品管理信息所需遵循的统一规范)协议type39信息显示错误,误认为psu出现故障进而影响服务器运行稳定性,其核心在于bios读取bmc中psu信息时,bmc通过i2c读取psu的状态位寄存器数值是否正确,若非正确值则出现psu故障问题,而对于中间状态且符合正常功能时(不确定状态数值)被误认为故障psu,导致psu状态信息不准确,而本发明bmc对不确定状态数值进行规范处理,或者利用bios通过ipmi从bmc获取的不确定状态数值进行修正处理,避免符合预期的不确定状态数值被误认为是psu故障。
107.下面对本发明实施例提供的一种电源在位状态修正装置进行介绍,下文描述的一种电源在位状态修正装置与上文描述的一种电源在位状态修正方法可相互对应参照。
108.具体请参考图6,图6为本发明实施例提供的一种电源在位状态修正装置的结构示意图,可以包括:
109.不确定状态数值获取模块100,用于获取不确定状态数值;其中,所述不确定状态数值为电源在位异常中不确定状态类别对应的数值;
110.历史实际工作状态获取模块200,用于获取所述不确定状态数值对应的历史实际工作状态;
111.修正模块300,用于当根据所述历史实际工作状态确定所述不确定状态数值的电源在位状态需要修正时,根据所述历史实际工作状态对所述不确定状态数值对应的电源在位状态进行修正。
112.进一步地,基于上述实施例,上述电源在位状态修正装置,还可以包括:
113.历史工作状态确定模块,用于根据所述不确定状态数值进行预设次数的电源在位状态测试处理,得到预设次数的历史工作状态;
114.历史实际工作状态确定模块,用于将所述历史工作状态中出现次数最多的工作状态作为所述历史实际工作状态。
115.进一步地,基于上述任意实施例,上述电源在位状态修正装置,还可以包括:
116.在位状态数值获取模块,用于利用目标设备获取电源在位状态寄存器对应的在位状态数值;
117.不确定状态数值确定模块,用于当将所述在位状态数值归类为电源异常中的不确定类型时,得到所述不确定状态数值。
118.进一步地,基于上述任意实施例,上述修正模块300,可以包括:
119.修正规则获取单元,用于获取与所述历史实际工作状态对应的修正规则;其中,所述修正规则为将所述不确定状态数值修改为正常状态对应的在位状态地址位逻辑值、对所述不确定状态数值对应的预设位数地址位进行删除和直接将所述不确定状态数值归类为正常状态中的任意一种规则;
120.修正单元,用于根据所述修正规则对所述不确定状态数值对应的电源在位状态进行修正。
121.进一步地,基于上述任意实施例,上述不确定状态数值获取模块100,可以包括:
122.实时在位状态数值获取模块,用于当电源断电立刻上电时,获取电源在位状态寄存器对应的实时在位状态数值;
123.待分类状态确定单元,用于当所述实时在位状态数值为最新不确定状态数值时,将所述最新不确定状态数值对应的电源状态确定为待分类状态;其中,所述待分类状态对应的电源处理方式为预设时间阈值内电源不断电;
124.源工作参数和电源工作状态存储单元,用于存储所述预设时间阈值内所述最新不确定状态数值对应的电源工作参数和电源工作状态,并对所述最新不确定状态数值出现的次数进行标记。
125.进一步地,基于上述实施例,上述电源在位状态修正装置,还可以包括:
126.预设出现次数判断模块,用于当所述最新不确定状态数值对应的出现次数达到预设出现次数时,获取所述最新不确定状态数值对应的所有的所述电源工作参数,以及所有的所述电源工作状态;
127.根据历史工作参数和状态修正模块,用于根据所有的所述电源工作参数和所有的所述电源工作状态,确定所述最新不确定状态数值对应的实际电源在位状态,并根据所述实际电源在位状态对所述最新不确定状态数值对应的电源在位状态进行修正;
128.预设时间阈值调整模块,用于或者根据所有的所述电源工作参数和所有的所述电源工作状态,对所述最新不确定状态数值对应的所述预设时间阈值进行调整;
129.提示信息获取模块,用于或者当所述最新不确定状态数值对应的出现次数达到所述预设出现次数时,发送不确定状态数值提示信息;
130.根据测试结果修正电源在位状态模块,用于接收测试结果,根据所述测试结果对所述最新不确定状态数值对应的电源在位状态进行修正;其中,所述测试结果是根据所述不确定状态数值提示信息进行测试得到的测试结果。
131.进一步地,基于上述实施例,上述实时在位状态数值获取模块,可以包括:
132.实时在位状态数值获取单元,用于当正常运行时突然断电立刻上电或强制断电立刻上电时,获取所述电源在位状态寄存器对应的所述实时在位状态数值。
133.需要说明的是,上述一种电源在位状态修正装置中的模块以及单元在不影响逻辑的情况下,其顺序可以前后进行更改。
134.本发明实施例提供的一种电源在位状态修正装置,包括:不确定状态数值获取模块100,用于获取不确定状态数值;其中,所述不确定状态数值为电源在位异常中不确定状态类别对应的数值;历史实际工作状态获取模块200,用于获取所述不确定状态数值对应的历史实际工作状态;修正模块300,用于当根据所述历史实际工作状态确定所述不确定状态数值的电源在位状态需要修正时,根据所述历史实际工作状态对所述不确定状态数值对应的电源在位状态进行修正。可见,和当前直接将不确定状态数值对应的电源在位状态确定为电源在位异常相比,本发明会根据不确定状态数值对应的历史实际工作状态对不确定状态数值对应的电源在位状态进行修正,并且,可以在电源在位状态检测过程中实时修正,或者还可以直接在源头修正不确定状态数值对应的电源在位状态,后续当检测到该不确定状态数值,就无需修正;并且,该实施例通过根据修正规则对不确定状态数值对应的电源在位状态进行修正,提高了修正的效率;并且,可以对最新不确定状态数值确定为待分类状态,在预设时间阈值内电源不断电,降低了电源断电的风险;并且,当最新不确定状态数值对应的出现次数达到预设出现次数时,会确定不确定状态数值对应的实际电源在位状态,或者修改预设时间阈值,提高了不确定状态数值处理的智能性。
135.下面对本发明实施例提供的一种电源在位状态修正设备进行介绍,下文描述的一种电源在位状态修正设备与上文描述的一种电源在位状态修正方法可相互对应参照。
136.请参考图7,图7为本发明实施例提供的一种电源在位状态修正设备的结构示意图,可以包括:
137.存储器10,用于存储计算机程序;
138.处理器20,用于执行计算机程序,以实现上述的一种电源在位状态修正方法。
139.存储器10、处理器20、通信接口30均通过通信总线40完成相互间的通信。
140.在本发明实施例中,存储器10中用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,在本发明实施例中,存储器10中可以存储有用于实现以下功能的程序:
141.获取不确定状态数值;其中,不确定状态数值为电源在位异常中不确定状态类别对应的数值;
142.获取不确定状态数值对应的历史实际工作状态;
143.当根据历史实际工作状态确定不确定状态数值的电源在位状态需要修正时,根据历史实际工作状态对不确定状态数值对应的电源在位状态进行修正。
144.在一种可能的实现方式中,存储器10可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及至少一个功能所需的应用程序等;存储数据区可存储使用过程中所创建的数据。
145.此外,存储器10可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括nvram。存储器存储有操作系统和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。操作系统可以包括各种系统程序,用于实现各种基础任务以及处理基于硬件的任务。
146.处理器20可以为中央处理器(central processingunit,cpu)、特定应用集成电路、数字信号处理器、现场可编程门阵列或者其他可编程逻辑器件,处理器20可以是微处理器或者也可以是任何常规的处理器等。处理器20可以调用存储器10中存储的程序。
147.通信接口30可以为通信模块的接口,用于与其他设备或者系统连接。
148.当然,需要说明的是,图7所示的结构并不构成对本发明实施例中一种电源在位状态修正设备的限定,在实际应用中一种电源在位状态修正设备可以包括比图7所示的更多或更少的部件,或者组合某些部件。
149.下面对本发明实施例提供的计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的一种电源在位状态修正方法可相互对应参照。
150.本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的一种电源在位状态修正方法的步骤。
151.该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
152.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装
置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
153.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本发明的范围。
154.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
155.以上对本发明所提供的一种电源在位状态修正方法、装置、设备及可读存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

技术特征:
1.一种电源在位状态修正方法,其特征在于,包括:获取不确定状态数值;其中,所述不确定状态数值为电源在位异常中不确定状态类别对应的数值;获取所述不确定状态数值对应的历史实际工作状态;当根据所述历史实际工作状态确定所述不确定状态数值的电源在位状态需要修正时,根据所述历史实际工作状态对所述不确定状态数值对应的电源在位状态进行修正。2.根据权利要求1所述的电源在位状态修正方法,其特征在于,在获取所述不确定状态数值对应的历史实际工作状态之前,还包括:根据所述不确定状态数值进行预设次数的电源在位状态测试处理,得到预设次数的历史工作状态;将所述历史工作状态中出现次数最多的工作状态作为所述历史实际工作状态。3.根据权利要求1所述的电源在位状态修正方法,其特征在于,在所述获取不确定状态数值之前,还包括:利用目标设备获取电源在位状态寄存器对应的在位状态数值;当将所述在位状态数值归类为电源异常中的不确定类型时,得到所述不确定状态数值。4.根据权利要求1所述的电源在位状态修正方法,其特征在于,所述根据所述历史实际工作状态对所述不确定状态数值对应的电源在位状态进行修正,包括:获取与所述历史实际工作状态对应的修正规则;其中,所述修正规则为将所述不确定状态数值修改为正常状态对应的在位状态地址位逻辑值、对所述不确定状态数值对应的预设位数地址位进行删除和直接将所述不确定状态数值归类为正常状态中的任意一种规则;根据所述修正规则对所述不确定状态数值对应的所述电源在位状态进行修正。5.根据权利要求1至4任一项所述的电源在位状态修正方法,其特征在于,所述获取不确定状态数值,包括:当电源断电立刻上电时,获取电源在位状态寄存器对应的实时在位状态数值;当所述实时在位状态数值为最新不确定状态数值时,将所述最新不确定状态数值对应的电源状态确定为待分类状态;其中,所述待分类状态对应的电源处理方式为预设时间阈值内电源不断电;存储所述预设时间阈值内所述最新不确定状态数值对应的电源工作参数和电源工作状态,并对所述最新不确定状态数值出现的次数进行标记。6.根据权利要求5所述的电源在位状态修正方法,其特征在于,在所述存储所述预设时间阈值内所述最新不确定状态数值对应的电源工作参数和电源工作状态,并对所述最新不确定状态数值出现的次数进行标记之后,还包括:当所述最新不确定状态数值对应的出现次数达到预设出现次数时,获取所述最新不确定状态数值对应的所有的所述电源工作参数,以及所有的所述电源工作状态;根据所有的所述电源工作参数和所有的所述电源工作状态,确定所述最新不确定状态数值对应的实际电源在位状态,并根据所述实际电源在位状态对所述最新不确定状态数值对应的电源在位状态进行修正;或者根据所有的所述电源工作参数和所有的所述电源工作状态,对所述最新不确定状
态数值对应的所述预设时间阈值进行调整;或者当所述最新不确定状态数值对应的出现次数达到所述预设出现次数时,发送不确定状态数值提示信息;接收测试结果,根据所述测试结果对所述最新不确定状态数值对应的电源在位状态进行修正;其中,所述测试结果是根据所述不确定状态数值提示信息进行测试得到的测试结果。7.根据权利要求5所述的电源在位状态修正方法,其特征在于,所述当电源断电立刻上电时,获取电源在位状态寄存器对应的实时在位状态数值,包括:当正常运行时突然断电立刻上电或强制断电立刻上电时,获取所述电源在位状态寄存器对应的所述实时在位状态数值。8.一种电源在位状态修正装置,其特征在于,包括:不确定状态数值获取模块,用于获取不确定状态数值;其中,所述不确定状态数值为电源在位异常中不确定状态类别对应的数值;历史实际工作状态获取模块,用于获取所述不确定状态数值对应的历史实际工作状态;修正模块,用于当根据所述历史实际工作状态确定所述不确定状态数值的电源在位状态需要修正时,根据所述历史实际工作状态对所述不确定状态数值对应的电源在位状态进行修正。9.一种电源在位状态修正设备,其特征在于,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的电源在位状态修正方法的步骤。10.一种计算机可读存储介质,其特征在于,所述可读存储介质上存储有程序,所述程序被处理器执行时实现如权利要求1至7任一项所述电源在位状态修正方法的步骤。

技术总结
本发明公开了一种电源在位状态修正方法、装置、设备及可读存储介质,应用于服务器技术领域,包括:获取不确定状态数值;不确定状态数值为电源在位异常中不确定状态类别对应的数值;获取不确定状态数值对应的历史实际工作状态;当根据历史实际工作状态确定不确定状态数值的电源在位状态需要修正时,根据历史实际工作状态对不确定状态数值对应的电源在位状态进行修正。可见,本发明通过获取电源在位异常中的不确定状态数值,和不确定状态数值对应的历史实际工作状态,当确定不确定状态数值的电源在位状态需要修正时,及时根据历史实际工作状态修正不确定状态数值对应的电源在位状态,故本发明可以提高不确定状态数值对应电源在位状态的准确性。位状态的准确性。位状态的准确性。


技术研发人员:孙秀强 黄家明 李博乐 朱慧蓉
受保护的技术使用者:浪潮(山东)计算机科技有限公司
技术研发日:2023.06.30
技术公布日:2023/10/6
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐