一种BMC故障检测方法、系统及相关组件与流程

文档序号:18464162发布日期:2019-08-17 02:18阅读:842来源:国知局
一种BMC故障检测方法、系统及相关组件与流程

本发明涉及服务器维护技术领域,特别涉及一种bmc故障检测方法、系统、一种计算机可读存储介质及一种电子设备。



背景技术:

bmc(baseboardmanagementcontroller,基板管理控制器)是一种专用芯片和控制器,bmc内置arm处理器,可以实现服务器的管理、控制、监控、自动调节等相关功能,为维护人员掌握服务器运行状态提供了良好的展示和操作界面。

随着目前用户的定制化需求越来越多,在bmc实现基本监控功能的基础上,客户需要根据自身的需求进行各种各样的定制化开发,因此,当bmc出现如段错误、内存溢出、内存泄露、内存踩踏等问题的时,需要一种良好的调试方法。

相关技术中bmc故障检测的方式为通过‘printf’打印调试信息。但是上述相关技术中的串口调试信息需要通过串口输出,而针对bmc在现场运行的环境中,尤其是在管理和机房不处于同一个地方的时候,极大地增加了维护的工作量,而且需要拿着串口到机房找到对应的机器,开盖插入串口线进行监听才可以进行问题定位,费时费力,效率较低。

因此,如何提高获取bmc的串口调试信息的便捷性,实现快速检测bmc故障是本领域技术人员目前需要解决的技术问题。



技术实现要素:

本申请的目的是提供一种bmc故障检测方法、系统、一种计算机可读存储介质及一种电子设备,能够提高获取bmc的串口调试信息的便捷性,实现快速检测bmc故障。

为解决上述技术问题,本申请提供一种bmc故障检测方法,该bmc故障检测方法包括:

当接收到bmc调试指令时,根据所述bmc调试指令确定目标bmc终端;

获取所述bmc终端内ssh端口的第一文件描述符,并将所述第一文件描述符添加至ioctl函数;

向所述目标bmc终端发送串口调试信息打印指令,以便利用所述第一文件描述符将所述目标bmc终端的串口调试信息重定向至目标文件夹;

根据所述串口调试信息检测bmc故障。

可选的,在根据所述串口调试信息检测bmc故障之后,还包括:

通过open系统打开所述bmc终端所在设备的console端口,得到第二文件描述符;

将所述第二文件描述符添加至所述ioctl函数,以便所述目标bmc终端恢复串口调试信息打印功能。

可选的,还包括:

根据bmc故障检测结果生成相应的报警信息。

可选的,所述获取所述bmc终端内ssh端口的第一文件描述符包括:

通过ssh协议登录所述目标bmc终端,并基于所述ssh协议获取所述bmc终端内ssh端口的第一文件描述符。

本申请还提供了一种bmc故障检测系统,该bmc故障检测系统包括:

终端确定模块,用于当接收到bmc调试指令时,根据所述bmc调试指令确定目标bmc终端;

文件描述符处理模块,用于获取所述bmc终端内ssh端口的第一文件描述符,并将所述第一文件描述符添加至ioctl函数;

信息获取模块,用于向所述目标bmc终端发送串口调试信息打印指令,以便利用所述第一文件描述符将所述目标bmc终端的串口调试信息重定向至目标文件夹;

检测模块,用于根据所述串口调试信息检测bmc故障。

可选的,还包括:

恢复模块,用于通过open系统打开所述bmc终端所在设备的console端口,得到第二文件描述符;还用于将所述第二文件描述符添加至所述ioctl函数,以便所述目标bmc终端恢复串口调试信息打印功能。

可选的,还包括:

报警模块,用于根据bmc故障检测结果生成相应的报警信息。

可选的,所述文件描述符处理模块具体为用于通过ssh协议登录所述目标bmc终端,并基于所述ssh协议获取所述bmc终端内ssh端口的第一文件描述符,并将所述第一文件描述符带入ioctl的模块。

本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述bmc故障检测方法执行的步骤。

本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述bmc故障检测方法执行的步骤。

本申请提供了一种bmc故障检测方法,包括当接收到bmc调试指令时,根据所述bmc调试指令确定目标bmc终端;获取所述bmc终端内ssh端口的第一文件描述符,并将所述第一文件描述符添加至ioctl函数;向所述目标bmc终端发送串口调试信息打印指令,以便利用所述第一文件描述符将所述目标bmc终端的串口调试信息重定向至目标文件夹;根据所述串口调试信息检测bmc故障。

本申请通过将目标bmc终端内ssh端口的第一文件描述符添加至ioctl函数,在需要获取串口调试信息时,向目标bmc终端发送串口调试信息打印指令并利用添加有第一文件描述符的ioctl函数将串口调试信息重定向至目标文件夹。相对于相关技术中工作人员只能拿着串口线到机房连接机器才能获得串口调试信息的方案,本申请通过串口重定向的方式解决了bmc的串口调试信息获取不便的问题,通过本申请提供的方案能够提高获取bmc的串口调试信息的便捷性,实现快速检测bmc故障。本申请同时还提供了一种bmc故障检测系统、一种计算机可读存储介质和一种电子设备,具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例所提供的一种bmc故障检测方法的流程图;

图2为本申请实施例所提供的另一种bmc故障检测方法的流程图;

图3为本申请实施例所提供的一种bmc故障检测系统的结构示意图。

具体实施方式

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

下面请参见图1,图1为本申请实施例所提供的一种bmc故障检测方法的流程图。

具体步骤可以包括:

s101:当接收到bmc调试指令时,根据所述bmc调试指令确定目标bmc终端;

其中,本实施例的目的在于实现bmc终端的串口信息便捷获取,由于bmc终端的自身属性在相关技术中bmc串口调试信息只能打印到串口,需要工作人员来到bmc所在机箱附近通过串口线获取bmc串口调试信息。在本实施例中在接收到bmc调试指令后,首先根据bmc调试指令确定需要获取串口调试信息的bmc终端。本实施例可以应用于与多个bmc终端连接的故障分析设备,本实施例所确定的目标bmc终端的数量可以为1个,也可以为多个,此处不进行限定。

可以理解的是,本步骤中确定目标bmc终端后就相当于获取了目标bmc的终端机名称。

s102:获取所述bmc终端内ssh端口的第一文件描述符,并将所述第一文件描述符添加至ioctl函数;

其中,文件描述符在形式上是一个非负整数。文件描述符是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在本步骤之前可以存在通过open系统打开目标bmc终端获取所述bmc终端内ssh端口的第一文件描述符。ioctl是设备驱动程序中对设备的i/o通道进行管理的函数,通过将第一文件描述符添加至ioctl函数,可以实现利用ioctl函数将bmc终端原需要通过串口输出的信息重定向至特定的位置。ioctl函数可以为bmc终端内的函数。

作为一种可行的实施方式,本步骤可以通过ssh协议登录bmc终端内部,然后通过串口重定向技术,将本应打印到串口的调试信息,重定向到ssh所处终端,即可以远程通过ssh查看到本应在串口打印的调试信息。

s103:向所述目标bmc终端发送串口调试信息打印指令,以便利用所述第一文件描述符将所述目标bmc终端的串口调试信息重定向至目标文件夹;

其中,在已经将第一文件描述符添加至ioctl函数的基础上,本实施例可以向需要获取串口调试信息的目标bmc终端发送串口调试信息打印指令,以便bmc终端的ioctl函数利用文件描述符将所述目标bmc终端的串口调试信息重定向至目标文件夹。作为一种可行的实施方式,本步骤提到的目标文件夹可以为上述提到的故障分析设备的文件夹。

该故障分析设备可以为基于linux系统的设备,本实施例的目的在于实现bmc终端的串口信息便捷获取,bmc在实际运行过程中,基于安全基线的考虑,一般只允许其他设备通过网络与bmc进行交互,而一般的linux系统都支持ssh协议,因此本实施例考虑到可以通过ssh协议登录bmc终端内部,然后通过串口重定向技术,将本应打印到串口的调试信息,重定向到ssh所处终端,即可以远程通过ssh查看到本应在串口打印的调试信息。

s104:根据所述串口调试信息检测bmc故障。

其中,在得到了串口调试信息的基础上,本实施例可以对串口调试信息中的语句进行分析进而检测bmc故障,作为一种可行的实施方式,在检测到bmc故障之后可以生成相应的提示信息,以便修复故障。

本实施例通过将目标bmc终端内ssh端口的第一文件描述符添加至ioctl函数,在需要获取串口调试信息时,向目标bmc终端发送串口调试信息打印指令并利用添加有第一文件描述符的ioctl函数将串口调试信息重定向至目标文件夹。相对于相关技术中工作人员只能拿着串口线到机房连接机器才能获得串口调试信息的方案,本实施例通过串口重定向的方式解决了bmc的串口调试信息获取不便的问题,通过本实施例提供的方案能够提高获取bmc的串口调试信息的便捷性,实现快速检测bmc故障。

下面请参见图2,图2为本申请实施例所提供的另一种bmc故障检测方法的流程图,具体步骤可以包括:

s201:当接收到bmc调试指令时,根据所述bmc调试指令确定目标bmc终端;

s202:通过ssh协议登录所述目标bmc终端,并基于所述ssh协议获取所述bmc终端内ssh端口的第一文件描述符,将所述文件描述符添加至ioctl函数;

s203:向所述目标bmc终端发送串口调试信息打印指令,以便利用所述第一文件描述符将所述目标bmc终端的串口调试信息重定向至目标文件夹;

s204:根据所述串口调试信息检测bmc故障,根据bmc故障检测结果生成相应的报警信息。

s205:通过open系统打开所述bmc终端所在设备的console端口,得到第二文件描述符;

s206:将所述第二文件描述符添加至所述ioctl函数,以便所述目标bmc终端恢复串口调试信息打印功能。

上述实施例提出了通过ssh协议的方式登录目标bmc终端的方案来获取第一文件描述符,通过串口重定向技术实现了将串口调试信息输出至目标文件夹。无需工作人员到现场通过串口线获取串口调试信息。进一步的,本申请在重定向了串口调试信息后,通过open系统调用打开/dev/console得到console端口的第二文件描述符,将第二文件描述符添加至ioctl函数使得重口信息通过串口输出,恢复了串口调试信息打印功能。

下面通过在实际应用中的实施例说明上述实施例描述的流程。

步骤1、开发具体的串口重定向工具。通过ttyname系统调用,并输入参数stdout_fileno获取到标准输出的终端机名称;

步骤2、根据工具使用者的输入参数为on或者off判断需要进行重定向操作或者恢复串口信息打印,如果需要进行串口重定向,则转步骤3,反之,则转步骤4;

步骤3、根据步骤1中获取到的终端机名称,通过open系统调用打开终端机,返回文件描述符,然后将该文件描述符带入ioctl(tty,tioccons)即可通过ssh查看到串口的打印调试信息;

步骤4、通过open系统调用打开“/dev/console”,返回文件描述符,然后将该文件描述符带入ioctl(tty,tioccons)即可以恢复串口调试信息的打印;

步骤5、串口重定向工具开发完成之后,集成在bmc内部,当需要进行调试的时候,可以ssh登录bmc内部,然后输入on或者off命令进行重定向或恢复。

本实施例主要是通过linux的串口重定向技术进行工具开发,然后将开发的工具集成在bmc内部,通过该工具实现ssh打印bmc调试信息的功能。此种方法针对客户现场出现的运行时问题有极大帮助,可以在很大程度上减少维护人员和调试人员的工作量,省时省力,提高了问题排查的效率。

请参见图3,图3为本申请实施例所提供的一种bmc故障检测系统的结构示意图;

该系统可以包括:

终端确定模块100,用于当接收到bmc调试指令时,根据所述bmc调试指令确定目标bmc终端;

文件描述符处理模块200,用于获取所述bmc终端内ssh端口的第一文件描述符,并将所述第一文件描述符添加至ioctl函数;

信息获取模块300,用于向所述目标bmc终端发送串口调试信息打印指令,以便利用所述第一文件描述符将所述目标bmc终端的串口调试信息重定向至目标文件夹;

检测模块400,用于根据所述串口调试信息检测bmc故障。

本实施例通过将目标bmc终端内ssh端口的第一文件描述符添加至ioctl函数,在需要获取串口调试信息时,向目标bmc终端发送串口调试信息打印指令并利用添加有第一文件描述符的ioctl函数将串口调试信息重定向至目标文件夹。相对于相关技术中工作人员只能拿着串口线到机房连接机器才能获得串口调试信息的方案,本实施例通过串口重定向的方式解决了bmc的串口调试信息获取不便的问题,通过本实施例提供的方案能够提高获取bmc的串口调试信息的便捷性,实现快速检测bmc故障。

进一步的,该bmc故障检测系统还包括:

恢复模块,用于通过open系统打开所述bmc终端所在设备的console端口,得到第二文件描述符;还用于将所述第二文件描述符添加至所述ioctl函数,以便所述目标bmc终端恢复串口调试信息打印功能。

进一步的,该bmc故障检测系统还包括:

报警模块,用于根据bmc故障检测结果生成相应的报警信息。

进一步的,所述文件描述符处理模块200具体为用于通过ssh协议登录所述目标bmc终端,并基于所述ssh协议获取所述bmc终端内ssh端口的第一文件描述符,并将所述第一文件描述符带入ioctl的模块。

由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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