首页 娱乐 新闻 视频 体育 博客 图库

一种隔离故障PCIE设备的方法及系统与流程

文档序号:21460563 发布日期:2020-07-10 18:27
一种隔离故障PCIE设备的方法及系统与流程

本申请涉及服务器故障处理技术领域,特别是涉及一种隔离故障pcie(peripheralcomponentinterconnectexpress,一种高速串行计算机扩展总线标准)设备的方法及系统。



背景技术:

随着服务器性能的提高,用户对服务器功能的要求也越来越多样化,相应地,实现这些服务器功能的pcie设备也越来越多样化。每种服务器机型中所配置的pcie设备并并完全相同,不同的pcie设备具备不同的功能,如果某一种pcie设备发生故障,就会导致服务器的相应功能中断或系统宕机,进而造成服务器中重要数据的丢失等严重问题。因此,当服务器中pcie设备发生故障时,如何发现故障并对故障pcie设备进行处理,是个重要问题。

目前对故障pcie设备的处理方法通常是,当服务器中的pcie设备发生故障时,停止服务器运行,定位故障,确认故障后对服务器关机,手动更换故障pcie设备。

然而,目前对故障pcie设备的处理方法中,由于定位故障需要停止服务器运行,而且,从pcie设备发生故障到更换完毕pcie设备期间,服务器处于暂停运行或关机状态,故障处理时间较长,严重影响服务器的运行,因此,目前的pcie设备故障处理效率较低。



技术实现要素:

本申请提供了一种隔离故障pcie设备的方法及系统,以解决现有技术中pcie设备故障处理效率较低的问题。

为了解决上述技术问题,本申请实施例公开了如下技术方案:

一种隔离故障pcie设备的方法,所述方法包括:

搭建服务器集群,所述服务器集群中包括一个主控服务器和多个子服务器,所述主控服务器分别与多个子服务器协议连接,任一所述子服务器上设置有多个pcie设备,所述主控服务器用于收集并处理多个子服务器的pcie设备故障信息;

获取pcie设备所在子服务器的日志信息,所述日志信息包括:bmc(baseboardmanagementcontroller,基板管理控制器)日志信息和系统日志信息;

比对所述日志信息和设定的pcie故障信息;

判断所述日志信息和设定的pcie故障信息是否有相同内容;

如果是,判定当前子服务器发生pcie设备故障;

将当前子服务器发生pcie设备故障的故障信息反馈至主控服务器;

主控服务器根据所述故障信息,将冗余pcie设备接入发生pcie设备故障的子服务器中,并断开故障pcie设备,所述冗余pcie设备安装于所述主控服务器上。

可选地,比对所述日志信息和设定的故障信息的方法,具体为:

每隔设定的时间,比对一次所述日志信息和设定的故障信息。

可选地,所述将当前子服务器发生pcie设备故障的故障信息反馈至主控服务器,包括:

将所述相同内容写入当前子服务器的指定文件中;

读取当前子服务器的所有pcie设备信息,并将当前子服务器中所有pcie设备的bus_id号追加至所述指定文件中;

根据所述相同内容以及bus_id号,查找speed字段信息以及width字段信息;

将所述speed字段信息以及width字段信息追加至所述指定文件中;

将所述指定文件回传至主控服务器。

可选地,主控服务器根据所述故障信息,将冗余pcie设备接入发生pcie设备故障的服务器中,并断开故障pcie设备,包括:

主控服务器根据所述故障信息,确定发生pcie设备故障的子服务器的ip地址;

分配冗余pcie设备的id号;

根据冗余pcie设备的id号和发生pcie设备故障的子服务器的ip地址,将冗余pcie设备通过网络协议连接至发生pcie设备故障的子服务器;

断开故障pcie设备。

可选地,主控服务器根据所述故障信息,将冗余pcie设备接入发生pcie设备故障的子服务器中,并断开故障pcie设备之后,所述方法还包括:

对所述冗余pcie设备进行校验。

一种隔离故障pcie设备的系统,所述系统包括:

集群搭建模块,用于搭建服务器集群,所述服务器集群中包括一个主控服务器和多个子服务器,所述主控服务器分别与多个子服务器协议连接,任一所述子服务器上设置有多个pcie设备,所述主控服务器用于收集并处理多个子服务器的pcie设备故障信息;

日志信息获取模块,用于获取pcie设备所在服务器的日志信息,所述日志信息包括:bmc日志信息和系统日志信息;

比对模块,用于比对所述日志信息和设定的pcie故障信息,并判断所述日志信息和设定的pcie故障信息是否有相同内容,如果是,判定当前子服务器发生pcie设备故障,否则,判定当前子服务器没有发生pcie设备故障;

故障信息反馈模块,用于将当前子服务器发生pcie设备故障的故障信息反馈至主控服务器;

替换模块,用于根据所述故障信息,将冗余pcie设备接入发生pcie设备故障的服务器中,并断开故障pcie设备,所述冗余pcie设备安装于所述主控服务器上。

可选地,所述故障信息反馈模块包括:

写入单元,用于将所述相同内容写入当前子服务器的指定文件中;

pcie设备信息读取单元,用于读取当前子服务器的所有pcie设备信息,并将当前子服务器中所有pcie设备的bus_id号追加至所述指定文件中;

信息查找单元,用于根据所述相同内容以及bus_id号,查找speed字段信息以及width字段信息;

追加单元,用于将所述speed字段信息以及width字段信息追加至所述指定文件中;

回传单元,用于将所述指定文件回传至主控服务器。

可选地,替换模块包括:

故障确定单元,用于根据所述故障信息,确定发生pcie设备故障的子服务器的ip地址;

冗余分配单元,用于分配冗余pcie设备的id号;

连接单元,用于根据冗余pcie设备的id号和发生pcie设备故障的子服务器的ip地址,将冗余pcie设备通过网络协议连接至发生pcie设备故障的子服务器;

断开单元,用于断开故障pcie设备。

一种隔离故障pcie设备的系统,所述系统包括:一主控服务器和多个子服务器,所述主控服务器分别与多个子服务器协议连接,任一所述子服务器上设置有多个pcie设备,所述主控服务器用于收集并处理多个子服务器的pcie设备故障信息,任一所述子服务器中包括:日志信息获取模块、比对模块以及故障信息反馈模块,所述主控服务器包括:替换模块;

所述日志信息获取模块,用于获取当前子服务器的日志信息,所述日志信息包括:bmc日志信息和系统日志信息;

所述比对模块,用于比对所述日志信息和设定的pcie故障信息,并判断所述日志信息和设定的pcie故障信息是否有相同内容,如果是,判定当前子服务器发生pcie设备故障,否则,判定当前子服务器没有发生pcie设备故障;

所述故障信息反馈模块,用于将当前子服务器发生pcie设备故障的故障信息反馈至主控服务器;

所述替换模块,用于根据所述故障信息,将冗余pcie设备接入发生pcie设备故障的子服务器中,并断开故障pcie设备,所述冗余pcie设备安装于所述主控服务器上。

本申请的实施例提供的技术方案可以包括以下有益效果:

本申请提供一种隔离故障pcie设备的方法,该方法首先搭建服务器集群,其次获取pcie设备所在子服务器的日志信息,然后比对该日志信息和设定的pcie故障信息,判断两者是否有相同内容,如果是,判定当前子服务器发生pcie设备故障,将故障信息反馈至主控服务器;主控服务器根据故障信息,将冗余pcie设备接入发生pcie设备故障的子服务器中,并断开故障pcie设备。本实施例通过获取pcie设备所在子服务器的bmc日志信息和系统日志信息,并将两种信息分别于设定的pcie故障信息相比较,判断pcie设备所在的子服务器是否发生pcie设备故障。并对故障信息进行处理,根据处理结果及时启动冗余pcie设备,从故障判断到故障处理的过程并没有中断pcie设备所在的子服务器,设置冗余pcie设备有利于提高pcie设备故障处理效率。本实施例通过搭建服务器集群,将该方法应用于服务器集群中,能够通过主控服务器快速定位子服务器中的pcie设备故障,并对故障及时启动冗余pcie设备,有利于进一步提高pcie设备故障处理效率。

本申请还提供一种隔离故障pcie设备的系统,该系统主要包括:集群搭建模块、日志信息获取模块、比对模块、故障信息反馈模块和替换模块。通过集群搭建模块,搭建一服务器集群,使得本系统在服务器集群中快速响应故障,并准确定位和处理故障。日志信息获取模块和比对模块,能够及时收集服务器中pcie设备的故障信息,并通过故障信息反馈模块及时将故障信息反馈至主控服务器,最后替换模块根据故障信息启动冗余pcie设备,及时替换,从而避免对发生pcie设备故障的子服务器进行停机,有利于提高pcie设备的故障处理效率以及提高服务器运行的稳定性。

本申请还提供另一种隔离故障pcie设备的系统,该系统中主要包括一主控服务器和多个子服务器,多个子服务器分别采集自身的日志信息以及将日志信息和设定的pcie故障信息进行比对,并将故障信息反馈至主控服务器,主控服务器根据故障信息及时启动冗余pcie设备,能够有效提高pcie设备的故障处理效率,避免中断服务器运行,有利于提高各子服务器运行的稳定性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

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

图1为本申请实施例所提供的一种隔离故障pcie设备的方法的流程示意图;

图2为本申请实施例所提供的一种隔离故障pcie设备的系统的结构示意图;

图3为本申请实施例所提供的另一种隔离故障pcie设备的系统的结构示意图。

具体实施方式

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

为了更好地理解本申请,下面结合附图来详细解释本申请的实施方式。

实施例一

参见图1,图1为本申请实施例所提供的一种隔离故障pcie设备的方法的流程示意图。由图1可知,本实施例中隔离故障pcie设备的方法,主要包括如下过程:

s1:搭建服务器集群。

其中,服务器集群中包括一个主控服务器和多个子服务器,主控服务器分别与多个子服务器协议连接,任一子服务器上设置有多个pcie设备,主控服务器用于收集并处理多个子服务器的pcie设备故障信息。在集群环境中,可以通过一台主控服务器方便快捷地监控多台子服务器中设备的工作状态,并及时处理、调度资源给各子服务器,实现资源的利用最大化,有利于提高故障处理效率。

s2:获取pcie设备所在子服务器的日志信息。

该日志信息包括:bmc日志信息和系统日志信息。本实施例中的pcie设备主要包括:网卡、显卡、hca卡、图像处理器以及加速卡等。

本实施例中主控服务器中包括:cpu、内存、硬盘等基本的组成和需求组件。

继续参见图1可知,获取到日志信息之后,执行步骤s3:比对日志信息和设定的pcie故障信息。

s4:判断日志信息和设定的pcie故障信息是否有相同内容。

本实施例中比对日志信息和设定的pcie故障信息的方法,可以采用实时比对,也可以采用周期性比对。由于子服务器的bmc日志和系统日志在工作过程中实时更新,实时比对能够及时发现pcie故障,有利于提高故障判断的准确性。周期性比对,即设置固定的时间,每隔设定的时间,比对一次日志信息和设定的故障信息,设定的时间根据服务器的日志更新周期确定。周期性比对,能够在确保尽可能及时发现pcie设备故障的前提下,有效节省服务器系统资源。本实施例中优选周期性比对的方式。

另外,本实施例中比对日志信息和设定的pcie故障消息,具体包括:

s31:比对子服务器的bmc日志信息和设定的pcie故障信息;

s32:比对子服务器的系统日志信息和设定的pcie故障信息。

相应地,本实施例中步骤s4包括如下过程:

s41:判断日志信息和设定的pcie故障信息是否有相同内容;

s42:判断日志信息和设定的pcie故障信息是否有相同内容。

即bmc日志信息和系统日志信息分别与设定的pcie故障信息进行比对,只有两个比对结果都没有相同内容时,判定当前子服务器没有发生pcie设备故障。

如果bmc日志信息和设定的pcie故障信息有相同内容,或者,系统日志信息和设定的pcie故障信息有相同内容,或者,bmc日志信息和设定的pcie故障信息有相同内容且系统日志信息和设定的pcie故障信息有相同内容时,执行步骤s5:判定当前子服务器发生pcie设备故障。

判定当前子服务器发生pcie设备故障之后,执行步骤s6:将当前子服务器发生pcie设备故障的故障信息反馈至主控服务器。

具体地,步骤s6包括如下过程:

s61:将相同内容写入当前子服务器的指定文件中。

s62:读取当前子服务器的所有pcie设备信息,并将当前子服务器中所有pcie设备的bus_id号追加至指定文件中。

s63:根据相同内容以及bus_id号,查找speed字段信息以及width字段信息。

speed字段信息即速度字段信息,width字段信息即带宽字段信息,这两种字段信息是判断pcie设备性能和确定pcie设备的关键字段信息。通过查找这些信息,有助于后续从子服务器中准确定位发生故障的那一个pcie设备。

s64:将speed字段信息以及width字段信息追加至指定文件中。

s65:将指定文件回传至主控服务器。

根据以上步骤s61-s65,发生故障的pcie设备所在的子服务器能够及时将故障信息反馈至主控服务器,从而提高故障处理效率。

继续参见图1可知,故障信息反馈至主控服务器之后,执行步骤s7:主控服务器根据故障信息,将冗余pcie设备接入发生pcie设备故障的子服务器中,并断开故障pcie设备。其中,冗余pcie设备安装于主控服务器上,是用于协助各子服务器紧急情况下应急的pcie设备。

具体地,步骤s7包括如下过程:

s71:主控服务器根据故障信息,确定发生pcie设备故障的子服务器的ip地址。

s72:分配冗余pcie设备的id号。

s73:根据冗余pcie设备的id号和发生pcie设备故障的子服务器的ip地址,将冗余pcie设备通过网络协议连接至发生pcie设备故障的子服务器。

s74:断开故障pcie设备。

进一步地,本实施例步骤s7之后,还包括步骤s8:对冗余pcie设备进行校验。即:判断新接入的冗余pcie设备是否可以正常使用,或者,判断替换是否成功,从而进一步提高故障隔离的效率,提高服务器运行的稳定性。

具体地,步骤s8包括如下步骤:

s81:根据所获取的指令,查询冗余pcie设备信息,冗余pcie设备信息包括:冗余pcie设备的bus_id号;

s82:根据冗余pcie设备的bus_id号,查找冗余pcie设备的speed字段信息和width字段信息;

s83:将冗余pcie设备信息,以及冗余pcie设备的speed字段信息和width字段信息写入指定文件中;

s84:将修改后的指定文件回传至主控服务器;

s85:判断修改后的指定文件运行结果是否正确;

如果运行正确,执行步骤s86:判定替换成功。

如果运行不正确,判定运行不成功,重新进行校验,或者返回步骤s7,重新替换冗余pcie设备。

下面以一实际应用为例,详细说明本实施例中的方法。

1)搭建一服务器集群环境,该服务器集群环境中包括:一个主控服务器和多个子服务器。

2)将含有pcie故障可能的提示信息汇总为文件a.txt,由主控服务器发送到各个子服务器中。

3)使用文件a.txt分别与各子服务器bmc日志b.txt和系统日志c.txt做周期性比对。

其中,文件b.txt和文件c.txt在服务器工作过程中实时更新。在os下使用ipmitoolselelist查看bmc日志信息,使用cat/var/log/messages和cat/var/log/dmesg查看系统日志信息。比对文件的代码程序表达方式很多,下述表达是其中一种:

4)若比对结果中出现相同的日志提示信息,将该条相同日志信息写入文件d.txt中。

5)读取该台子服务器的所有pcie信息。

使用指令lspci–t,定位pcie链路上所接设备的bus_id号,并追加到文件d.txt中;

使用指令lspci-xxvv|grep-abus_id|greplnksta从中查找speed、width字段信息并追加到d.txt文件中

6)点亮该自服务器的定位灯,并将收集的文件d.txt回传给主控服务器。

7)主控服务器接收到对应编号服务器传回的文件d.txt并解析确认,确认是反馈回来信息的自服务器中的哪个pcie设备出现的问题;

8)主控服务器通过虚拟网络启动冗余pcie设备,使其接入故障pcie设备所在的服务器中,断开故障设备。

9)通过指令lspci|more查询新接入设备的信息,再次使用指令lspci-xxvv|grep-abus_id|greplnksta查询speed、width等字段信息,并将新接入设备的信息和speed、width等字段信息一同写入文件d.txt中传回主控服务器,文件中结果正确则说明替换成功,该子服务器可正常工作。

10)在服务器方便时再去手动替换掉故障pcie设备即可。

实施例二

在图1所示实施例的基础之上参见图2,图2为本申请实施例所提供的一种隔离故障pcie设备的系统的结构示意图。

由图2可知,本实施例中隔离故障pcie设备的系统,主要包括:集群搭建模块、日志信息获取模块、比对模块、故障信息反馈模块和替换模块。其中,集群搭建模块,用于搭建服务器集群,服务器集群中包括一个主控服务器和多个子服务器,主控服务器分别与多个子服务器协议连接,任一子服务器上设置有多个pcie设备,主控服务器用于收集并处理多个子服务器的pcie设备故障信息。日志信息获取模块,用于获取pcie设备所在服务器的日志信息,日志信息包括:bmc日志信息和系统日志信息。比对模块,用于比对日志信息和设定的pcie故障信息,并判断日志信息和设定的pcie故障信息是否有相同内容,如果是,判定当前服务器发生pcie设备故障,否则,判定当前服务器没有发生pcie设备故障。故障信息反馈模块,用于将当前服务器发生pcie设备故障的故障信息反馈至指定服务器。替换模块,用于根据故障信息,将冗余pcie设备接入发生pcie设备故障的服务器中,并断开故障pcie设备。

本实施例中故障信息反馈模块包括:写入单元、pcie设备信息读取单元、信息查找单元、追加单元和回传单元。其中,写入单元,用于将相同内容写入当前子服务器的指定文件中。pcie设备信息读取单元,用于读取当前子服务器的所有pcie设备信息,并将当前子服务器中所有pcie设备的bus_id号追加至指定文件中。信息查找单元,用于根据相同内容以及bus_id号,查找speed字段信息以及width字段信息。追加单元,用于将speed字段信息以及width字段信息追加至指定文件中。回传单元,用于将指定文件回传至主控服务器。

替换模块包括:故障确定单元、冗余分配单元、连接单元和断开单元。其中,故障确定单元,用于根据故障信息,确定发生pcie设备故障的子服务器的ip地址。冗余分配单元,用于分配冗余pcie设备的id号。连接单元,用于根据冗余pcie设备的id号和发生pcie设备故障的子服务器的ip地址,将冗余pcie设备通过网络协议连接至发生pcie设备故障的子服务器。断开单元,用于断开故障pcie设备。

进一步地,本实施例的系统中还包括校验模块,用于对冗余pcie设备进行校验。

该实施例中隔离故障pcie设备的系统的工作原理和工作方法,在图1所示的实施例中已经详细阐述,在此不再赘述。

实施例三

在图1和图2所示实施例的基础之上参见图3,图3为本申请实施例所提供的另一种隔离故障pcie设备的系统的结构示意图。由图3可知,本实施例中的系统主要包括主控服务器和多个子服务器,主控服务器分别与多个子服务器协议连接,任一子服务器上设置有多个pcie设备,主控服务器用于收集并处理多个子服务器的pcie设备故障信息,任一子服务器中包括:日志信息获取模块、比对模块以及故障信息反馈模块,主控服务器包括:替换模块。

其中,日志信息获取模块,用于获取当前子服务器的日志信息,日志信息包括:bmc日志信息和系统日志信息。比对模块,用于比对日志信息和设定的pcie故障信息,并判断日志信息和设定的pcie故障信息是否有相同内容,如果是,判定当前子服务器发生pcie设备故障,否则,判定当前子服务器没有发生pcie设备故障。故障信息反馈模块,用于将当前子服务器发生pcie设备故障的故障信息反馈至主控服务器。替换模块,用于根据故障信息,将冗余pcie设备接入发生pcie设备故障的子服务器中,并断开故障pcie设备,其中,冗余pcie设备安装于所述主控服务器上。

该实施例中未详细描述的部分可以参考图1和图2所示的实施例,三个实施例之间可以互相参照,在此不再赘述。

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

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