本发明涉及服务器技术领域,特别是涉及一种服务器的故障诊断方法、装置、设备及存储介质。
背景技术:
随着计算机技术的不断发展,服务器得到了广泛的应用,服务器在设计时虽然进行了较多的容错以及可靠性的考虑,但随着服务器的复杂度越来越高以及服务器数量的增多,对服务器的故障诊断仍是服务器运维的一个重要部分。
在现有技术中,当服务器出现问题时,需要对所有的寄存器的数据进行采集,之后再由维护人员进行数据分析,判断服务器的故障原因。由于数据量较大,且包含了大量和故障部位无关的数据,维护人员进行故障原因分析的耗时较长,也就降低了服务器的故障诊断效率。并且由于不同维护人员有不同的理解,可能存在相同的故障数据经过不同的维护人员分析后,得出不一致的分析结果的情况,还可能存在经验不足的维护人员误判的情况,都会影响故障诊断的效率。故障诊断效率低,故障就无法得到及时的处理。
综上所述,如何有效地提高服务器的故障诊断的效率,以使得服务器的故障能够及时得到处理,是目前本领域技术人员急需解决的技术问题。
技术实现要素:
本发明的目的是提供一种服务器的故障诊断方法、装置、设备及存储介质,以提高服务器的故障诊断的效率,使得服务器的故障能够及时得到处理。
为解决上述技术问题,本发明提供如下技术方案:
一种服务器的故障诊断方法,该方法包括:
获得各个待测引脚的状态数据,其中,所述待测引脚为从服务器的全部引脚中预先选取的一个或多个引脚;
当存在状态数据异常的待测引脚时,按照预设的引脚与寄存器的对应规则确定与状态数据异常的引脚对应的各个目标寄存器;
获得各个所述目标寄存器的数据并按照预设的数据与故障的对应规则确定服务器的故障状态。
优选的,在所述获得各个所述目标寄存器的数据并按照预设的数据与故障的对应规则确定服务器的故障状态之后,还包括:
按照预设的故障与处理的对应规则确定与所述服务器的故障状态对应的故障处理方式。
优选的,在所述按照预设的故障与处理的对应规则确定与所述服务器的故障状态对应的故障处理方式之后,还包括:
存储所述服务器的故障状态以及故障处理方式。
优选的,在所述存储所述服务器的故障状态以及故障处理方式之后,还包括:
输出所述服务器的故障状态以及故障处理方式。
优选的,所述获得各个待测引脚的状态数据,包括:
实时获得各个待测引脚的状态数据。
优选的,所述获得各个待测引脚的状态数据,包括:
按照预设周期获得各个待测引脚的状态数据。
优选的,在所述获得各个所述目标寄存器的数据并按照预设的数据与故障的对应规则确定服务器的故障状态之后,还包括:
输出报警信息。
一种服务器的故障诊断装置,该装置包括:
状态数据获得模块,用于获得各个待测引脚的状态数据,其中,所述待测引脚为从服务器的全部引脚中预先选取的一个或多个引脚;
目标寄存器确定模块,用于当存在状态数据异常的待测引脚时,按照预设的引脚与寄存器的对应规则确定与状态数据异常的引脚对应的各个目标寄存器;
故障状态确定模块,用于获得各个所述目标寄存器的数据并按照预设的数据与故障的对应规则确定服务器的故障状态。
一种服务器的故障诊断设备,该设备包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现上述任一项所述的服务器的故障诊断方法的步骤。
一种存储介质,所述存储介质上存储有服务器的故障诊断程序,所述服务器的故障诊断程序被处理器执行时实现上述任一项所述的服务器的故障诊断方法的步骤。
应用本发明实施例所提供的技术方案,包括:获得各个待测引脚的状态数据,其中,待测引脚为从服务器的全部引脚中预先选取的一个或多个引脚;当存在状态数据异常的待测引脚时,按照预设的引脚与寄存器的对应规则确定与状态数据异常的引脚对应的各个目标寄存器;获得各个目标寄存器的数据并按照预设的数据与故障的对应规则确定服务器的故障状态。
本申请的方案并不是在出现故障时获取服务器的全部寄存器的数据,而是当存在状态数据异常的待测引脚时,按照预设的引脚与寄存器的对应规则确定与状态数据异常的引脚对应的各个目标寄存器,即从服务器的全部寄存器中选取与状态数据异常的引脚对应的各个目标寄存器,也就不会出现现有技术中用于故障分析的数据中包含大量无关数据的情况,实现了故障数据的精确采集。之后获得各个目标寄存器的数据并按照预设的数据与故障的对应规则确定服务器的故障状态,由于是按照预设的数据与故障的对应规则确定服务器的故障状态,也就是说,相同内容的故障数据按照数据与故障的对应规则得出的故障状态是一致的,不会出现人工分析时受到人员理解的影响的情况,并且由于不需要人工分析而是按照数据与故障的对应规则确定故障状态,相较于人工分析,本方案的故障数据分析的耗时更低。因此,本申请的方案实现了故障数据的精确采集,并且进行故障数据的分析时更为准确,耗时低,因此本申请的方案提高了故障诊断的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明中一种服务器的故障诊断方法的实施流程图;
图2为本发明中一种服务器的故障诊断装置的结构示意图;
图3为本发明中一种服务器的故障诊断设备的结构示意图。
具体实施方式
本发明的核心是提供一种服务器的故障诊断方法,提高了服务器的故障诊断的效率,使得服务器的故障能够及时得到处理。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明中一种服务器的故障诊断方法的实施流程图,该方法包括以下步骤:
s101:获得各个待测引脚的状态数据,其中,待测引脚为从服务器的全部引脚中预先选取的一个或多个引脚。
待测引脚为从服务器的全部引脚中预先选取的一个或多个引脚,通常可以选取多个引脚,以便对服务器的各个部件进行故障诊断。例如选取err2引脚、prochot引脚以及pmbusalert引脚等。当然,待测引脚的具体的选择可以根据实际情况进行设定和调整,并不影响本发明的实施。例如一种具体实施方式中,某服务器的硬盘状态较为重要,可以选取该服务器的多个与硬盘状态相关的引脚作为待测引脚,以使得对硬盘故障诊断更加及时且准确。
待测引脚的状态数据通常为该引脚的电位信息,即高电平或低电平,不同的待测引脚可以有不同的状态数据。通常由服务器的内部部件进行各个引脚的状态数据的获得,该服务器内部的部件可以是服务器原有的固件,也可以是新增并设置在服务器内部的部件,可以为一个单独的部件,也可以是具有不同功能的多个部件的组合,具体的形式可以根据实际情况进行设定和调整,并不影响本发明的实施。在本发明的一种具体实施方式中,可以通过bmc(baseboardmanagementcontroller,基板管理控制器)获得各个待测引脚的状态数据以及执行后续步骤。
在获得各个待测引脚的状态数据之后,可以进行步骤s102的操作。
s102:当存在状态数据异常的待测引脚时,按照预设的引脚与寄存器的对应规则确定与状态数据异常的引脚对应的各个目标寄存器。
当引脚的状态信息为使用高低电平表示的信息时,某个引脚的状态异常指的即为该引脚的电平状态异常,例如正常情况该引脚为高电平,当检测到该引脚为低电平时,可以确定该引脚的状态数据异常。
出现状态异常的待测引脚可以是一个也可以是多个。每个待测引脚均有各自对应的目标寄存器,目标寄存器即服务器中的寄存器。例如在一种具体实施方式中,根据预设的引脚与寄存器的对应规则,a引脚对应1号、2号以及3号目标寄存器,b引脚对应1号和4号目标寄存器,c引脚对应5号目标寄存器。当a引脚状态数据异常时,则确定出与a引脚对应的各个目标寄存器,即1号、2号以及3号目标寄存器。相应的,当b引脚的状态数据异常时,按照预设的引脚与寄存器的对应规则,确定出与b引脚对应的1号目标寄存器和4号目标寄存器,当c引脚的状态数据异常时,确定出与c引脚对应的5号目标寄存器。当然,当多个引脚的状态数据异常时,如a引脚和b引脚的状态数据均异常时,则确定出1号、2号、3号以及4号目标寄存器,也就是确定出a引脚以及b引脚对应的各个目标寄存器。
预设的引脚与寄存器的对应规则指的是待测引脚与目标寄存器之间的对应规则,预先确定并存储在服务器中,例如可以存储在bmc中。当然该对应规则可以根据实际情况,例如不同的服务器中寄存器的种类、数量以及功能的不同,对该预设的引脚与寄存器对应规则进行调整,并不影响本发明的实施。
s103:获得各个目标寄存器的数据并按照预设的数据与故障的对应规则确定服务器的故障状态。
确定出的目标寄存器可以是一个或多个,在确定出各个目标寄存器之后,获得各个目标寄存器的数据并按照预设的数据与故障的对应规则确定服务器的故障状态。
在具体实施时,例如可以通过bmc获得各个目标寄存器的数据。例如,bmc可以通过smbus(systemmanagementbus,系统管理总线)获得针对内存的各个目标寄存器的数据,通过peci(platformenvironmentcontrolinterface,平台环境式控制接口)获得针对cpu的各个目标寄存器的数据,通过pmbus(powermanagementbus,电源管理总线)获得针对电源的各个目标寄存器的数据,通过raid(redundantarraysofindependentdisks,磁盘阵列)/sas控制器的smbus获得针对硬盘的各个目标寄存器的数据。
预设的数据与故障的对应规则指的是目标寄存器的数据与故障状态之间的对应规则,可以根据实际情况进行设定和调整。例如,获得1号目标寄存器的数据之后,在正常情况下该数据在a位置应当为数据1,表示服务器的某个电源正常工作,而此次获得的数据在a位置的数据为0,按照预设的数据与故障的对应规则,则可以确定服务器的该电源工作异常。故障状态可以包括故障原因以及故障的严重等级,例如通过不同情况下的目标寄存器的数据,按照预设的数据与故障的对应规则,确定出故障不同的严重等级。例如某目标寄存器在正常情况下,b位置和c位置的数据均应为0,当某次故障时,获得的该目标寄存器的数据在b位置为数据1,根据预设的数据与故障的对应规则,可以确定网卡为一级故障,如可以通过重新插拔即可解决的故障,另一次故障时,获得的该目标寄存器的数据在c位置为数据1,根据预设的数据与故障的对应规则,可以确定网卡为二级故障,如必须更换网卡才能解决的故障。
应用本发明实施例所提供的方法,包括:获得各个待测引脚的状态数据,其中,待测引脚为从服务器的全部引脚中预先选取的一个或多个引脚;当存在状态数据异常的待测引脚时,按照预设的引脚与寄存器的对应规则确定与状态数据异常的引脚对应的各个目标寄存器;获得各个目标寄存器的数据并按照预设的数据与故障的对应规则确定服务器的故障状态。
本申请的方案并不是在出现故障时获取服务器的全部寄存器的数据,而是当存在状态数据异常的待测引脚时,按照预设的引脚与寄存器的对应规则确定与状态数据异常的引脚对应的各个目标寄存器,即从服务器的全部寄存器中选取与状态数据异常的引脚对应的各个目标寄存器,也就不会出现现有技术中用于故障分析的数据中包含大量无关数据的情况,实现了故障数据的精确采集。之后获得各个目标寄存器的数据并按照预设的数据与故障的对应规则确定服务器的故障状态,由于是按照预设的数据与故障的对应规则确定服务器的故障状态,也就是说,相同内容的故障数据按照数据与故障的对应规则得出的故障状态是一致的,不会出现人工分析时受到人员理解的影响的情况,并且由于不需要人工分析而是按照数据与故障的对应规则确定故障状态,相较于人工分析,本方案的故障数据分析的耗时更低。因此,本申请的方案实现了故障数据的精确采集,并且进行故障数据的分析时更为准确,耗时低,因此本申请的方案提高了故障诊断的效率。
在本发明的一种具体实施方式中,在步骤s103之后,还包括:
按照预设的故障与处理的对应规则确定与服务器的故障状态对应的故障处理方式。
考虑到不同的故障状态通常会有对应的故障处理方式,如果确定出与不同的故障状态对应的不同的故障处理方式,有助于维护人员或者用户对服务器进行故障处理。预设的故障与处理的对应规则指的即为故障状态与故障处理方式之间的对应规则,可以根据故障处理经验以及研究理论等进行设定,并可以根据实际情况进行设定和调整,并不影响本发明的实施。可以将故障与处理的对应规则存储在服务器中,例如可以存储在bmc中。例如在一种具体实施方式中,确定出服务器的故障状态为服务器的声卡出现了一级故障,按照预设的故障与处理的对应规则,可以确定对应的故障处理方式为更换声卡,维护人员进行故障处理时,则可以从bmc中下载该故障处理方式,能够协助维护人员的故障处理工作。
在具体实施方式中,在按照预设的故障与处理的对应规则确定与服务器的故障状态对应的故障处理方式之后,还可以包括:
存储服务器的故障状态以及故障处理方式。
由于发生故障时未必能够得到及时的处理,例如维护人员工作量较大,可能无法对每个服务器的故障及时进行处理,在该种实施方式中,可以存储服务器的故障状态以及故障处理方式,这样就使得维护人员可以随时下载故障状态以及故障处理方式,为故障处理提供了方便。
在进行了服务器的故障状态以及故障处理方式的存储之后,还可以包括:
输出服务器的故障状态以及故障处理方式。
可以采用远程输出的方式进行服务器的故障状态以及故障处理方式的输出,例如维护人员不在现场时,通过远程输出服务器的故障状态以及故障处理方式,可以使得维护人员及时得知服务器故障的相关情况。
在本发明的一种具体实施方式中,步骤s101可以包括:
实时获得各个待测引脚的状态数据。
在部分场合中,用户对服务器正常运行的要求可能较高,因此在本发明的该种具体实施方式中,可以实时获得各个待测引脚的状态数据。采用实时获得各个待测引脚的状态数据的方式,有利于及时地诊断出服务器的故障状态,提高了用户的使用体验。
在本发明的一种具体实施方式中,步骤s101可以包括:
按照预设周期获得各个待测引脚的状态数据。
考虑到部分场合中服务器发生故障的频率较低,如果较频繁地获得各个待测引脚的状态数据,可能会为服务器带来较大的能量损耗,因此在本发明的该种具体实施方式中,按照预设周期获得各个待测引脚的状态数据。预设周期的时长可以根据实际情况进行设定和调整。采用该种实施方式,有利于节约获得各个待测引脚的状态数据的能量损耗。
在本发明的一种具体实施方式中,在步骤s103之后,还可以包括:输出报警信息。可以采用提示灯、报警铃等方式输出报警信息,以便对维护人员或者用户进行提醒,使得服务器的故障能够及时被相关人员获知。
相应于上面的方法实施例,本发明实施例还提供了一种服务器的故障诊断装置,下文描述的服务器的故障诊断装置与上文描述的服务器的故障诊断方法可相互对应参照。
可参阅图2,图2为本发明中一种服务器的故障诊断装置的结构示意图,该装置包括以下模块:
状态数据获得模块1,用于获得各个待测引脚的状态数据,其中,待测引脚为从服务器的全部引脚中预先选取的一个或多个引脚;
目标寄存器确定模块2,用于当存在状态数据异常的待测引脚时,按照预设的引脚与寄存器的对应规则确定与状态数据异常的引脚对应的各个目标寄存器;
故障状态确定模块3,用于获得各个目标寄存器的数据并按照预设的数据与故障的对应规则确定服务器的故障状态。
应用本发明实施例所提供的装置,包括:状态数据获得模块,用于获得各个待测引脚的状态数据,其中,待测引脚为从服务器的全部引脚中预先选取的一个或多个引脚;目标寄存器确定模块,用于当存在状态数据异常的待测引脚时,按照预设的引脚与寄存器的对应规则确定与状态数据异常的引脚对应的各个目标寄存器;故障状态确定模块,用于获得各个目标寄存器的数据并按照预设的数据与故障的对应规则确定服务器的故障状态。
本申请的方案并不是在出现故障时获取服务器的全部寄存器的数据,而是当存在状态数据异常的待测引脚时,按照预设的引脚与寄存器的对应规则确定与状态数据异常的引脚对应的各个目标寄存器,即从服务器的全部寄存器中选取与状态数据异常的引脚对应的各个目标寄存器,也就不会出现现有技术中用于故障分析的数据中包含大量无关数据的情况,实现了故障数据的精确采集。之后获得各个目标寄存器的数据并按照预设的数据与故障的对应规则确定服务器的故障状态,由于是按照预设的数据与故障的对应规则确定服务器的故障状态,也就是说,相同内容的故障数据按照数据与故障的对应规则得出的故障状态是一致的,不会出现人工分析时受到人员理解的影响的情况,并且由于不需要人工分析而是按照数据与故障的对应规则确定故障状态,相较于人工分析,本方案的故障数据分析的耗时更低。因此,本申请的方案实现了故障数据的精确采集,并且进行故障数据的分析时更为准确,耗时低,因此本申请的方案提高了故障诊断的效率。
在本发明的一种具体实施方式中,还包括:
故障处理方式确定模块,用于在获得各个目标寄存器的数据并按照预设的数据与故障的对应规则确定服务器的故障状态之后,按照预设的故障与处理的对应规则确定与服务器的故障状态对应的故障处理方式。
在本发明的一种具体实施方式中,还包括:
存储模块,用于在按照预设的故障与处理的对应规则确定与服务器的故障状态对应的故障处理方式之后,存储服务器的故障状态以及故障处理方式。
在本发明的一种具体实施方式中,还包括:
输出模块,用于在存储服务器的故障状态以及故障处理方式之后,输出服务器的故障状态以及故障处理方式。
在本发明的一种具体实施方式中,状态数据获得模块1,具体用于:
实时获得各个待测引脚的状态数据。
在本发明的一种具体实施方式中,状态数据获得模块1,具体用于:
按照预设周期获得各个待测引脚的状态数据。
在本发明的一种具体实施方式中,还包括:
报警模块,用于在获得各个目标寄存器的数据并按照预设的数据与故障的对应规则确定服务器的故障状态之后,输出报警信息。
相应于上面的方法和装置实施例,本发明实施例还提供了一种服务器的故障诊断设备,下文描述的服务器的故障诊断设备与上文描述的服务器的故障诊断方法和装置可相互对应参照。
可参阅图3,图3为本发明中一种服务器的故障诊断设备的结构示意图,该设备包括:
存储器31,用于存储计算机程序;
处理器32,用于执行计算机程序以实现上述任一实施例描述的服务器的故障诊断方法的步骤。
相应于上面的方法、装置和设备实施例,本发明实施例还提供了一种存储介质,该存储介质可以为计算机可读存储介质,该存储介质上存储有服务器的故障诊断程序,该服务器的故障诊断程序被处理器执行时实现上述任一实施例描述的服务器的故障诊断方法的步骤,此处不重复说明。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置、设备和存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。