CN115542067A - 一种故障检测方法及装置 - Google Patents
一种故障检测方法及装置 Download PDFInfo
- Publication number
- CN115542067A CN115542067A CN202110732299.XA CN202110732299A CN115542067A CN 115542067 A CN115542067 A CN 115542067A CN 202110732299 A CN202110732299 A CN 202110732299A CN 115542067 A CN115542067 A CN 115542067A
- Authority
- CN
- China
- Prior art keywords
- component
- components
- node
- parent
- probability
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 117
- 238000000034 method Methods 0.000 claims abstract description 114
- 238000012163 sequencing technique Methods 0.000 claims description 27
- 238000003062 neural network model Methods 0.000 claims description 22
- 238000004891 communication Methods 0.000 claims description 20
- 238000011144 upstream manufacturing Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 7
- 238000012423 maintenance Methods 0.000 abstract description 15
- 102100033591 Calponin-2 Human genes 0.000 description 50
- 101000945403 Homo sapiens Calponin-2 Proteins 0.000 description 50
- 230000008569 process Effects 0.000 description 47
- 102100033620 Calponin-1 Human genes 0.000 description 32
- 101000945318 Homo sapiens Calponin-1 Proteins 0.000 description 32
- 230000001939 inductive effect Effects 0.000 description 32
- 101100284507 Schizosaccharomyces pombe (strain 972 / ATCC 24843) hdd1 gene Proteins 0.000 description 29
- 238000010586 diagram Methods 0.000 description 29
- 230000006870 function Effects 0.000 description 16
- 238000013461 design Methods 0.000 description 14
- 102100033592 Calponin-3 Human genes 0.000 description 10
- 101000945410 Homo sapiens Calponin-3 Proteins 0.000 description 10
- 238000012549 training Methods 0.000 description 9
- 238000012937 correction Methods 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- -1 CNN4 is highlighted Proteins 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000001965 increasing effect Effects 0.000 description 3
- 230000008439 repair process Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 101100494448 Caenorhabditis elegans cab-1 gene Proteins 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 101100440990 Mus musculus Cradd gene Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000008187 granular material Substances 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910000679 solder Inorganic materials 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/08—Locating faults in cables, transmission lines, or networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0631—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0677—Localisation of faults
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本申请提供一种故障检测方法及装置,该方法可以由计算机设备中的故障检测装置执行,在该方法中,故障检测装置获取组件拓扑图,确定组件拓扑图中,与报错的第一组件具有连接关系的其他组件是否可能发生故障;输出可能发生故障的第二组件,所述第二组件是所述其他组件和所述第一组件的子集。上述方式,可以在检测到计算机设备内的组件报障时,基于组件拓扑图检测该组件的关联组件是否可能发生故障,从而发现可能存在故障的一系列组件,并输出这些可能存在故障的组件,以指导用户进行检修,提高检修效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种故障检测方法及装置。
背景技术
随着电子技术的发展,计算机设备中包含的组件越来越多,组件之间的连接关系也越来越复杂。其中有些组件自带有故障传感器,可以在检测到组件可能存在故障时进行报警,然而大部分组件没有故障传感器,并且由于组件之间可能会相互影响,当某个组件出现故障时,还可能引起其他组件故障。
当前出于成本以及产品实现的角度,无法为每个组件配置故障传感器,当组件出现故障时,要定位到哪些组件可能存在故障的难度也越来越高。
发明内容
本申请提供一种故障检测方法及装置,用于对可能存在故障的组件进行定位,以向用户提供检修指导,提高检修效率。
第一方面,本申请实施例提供了一种故障检测方法,该方法可以由故障检测装置执行,在该方法可以应用于计算机设备中。在该方法中,故障检测装置获取组件拓扑图,该组件拓扑图用于描述计算机设备中的各个组件,以及各个组件之间的连接关系;确定组件拓扑图中,与报错的第一组件具有连接关系的其他组件是否可能发生故障;输出可能发生故障的第二组件,第二组件是其他组件和第一组件的子集。
通过上述方法,故障检测装置可以在侦测到第一组件报障后,基于组件拓扑图检测出第一组件的关联组件中可能存在故障的组件,并输出故障检测结果,以向用户提供检修指导。由于第二节点可以具有故障传感器也可以不具有故障传感器,因此本申请技术方案可以在不增加硬件成本的基础上,提高检修效率,适用场景也更广泛。
在一种可能的实施方式中,组件拓扑图用于描述使用同一通信协议的组件之间的硬件连接关系。
通过上述方法,使用同一通信协议的组件之间的交互更加频繁,更易发现可能发生故障的组件,能够提高故障检测效率。
在一种可能的实施方式中,输出第二组件包括:通过图形界面输出第二组件;图形界面显示有组件拓扑图,组件拓扑包括多个节点标识,多个节点标识与计算机设备中的各个组件一一对应;在组件拓扑图中与第二组件对应的节点标识被高亮显示;或图形界面显示计算机设备的各个组件的硬件实物图,硬件实物图包括多个控件,多个控件与计算机设备中的各个组件一一对应,每个控件用于显示一个组件的硬件;在硬件实物图中与第二组件相对应的控件被高亮显示。
通过上述方法,能够更加直观地为用户展示可能发生故障的组件,进一步,如果通过硬件实物图来展示可能发生故障的组件,则能够更加方便用户快速确定这些可能发生故障的硬件组件的位置,提高用户使用体验。
在一种可能的实施方式中,第二组件是通过神经网络模型确定的;其中,神经网络模型用于根据报错的组件确定与报错的组件具有连接关系的其他组件是否可能发生故障,以及可能发生故障的组件的排序。这里的神经网络模型可以基于训练数据不断学习基于报障组件得到其他可能发生故障的组件的规则,以及多个可能发生故障的组件之间的排序规则。
通过上述方法,通过神经网络模型可以适应不同的设备和应用场景,学习到不同的检测规则和排序规则,有利于提高故障检测准确率,适用范围广。
在一种可能的实施方式中,其他组件包括在组件拓扑图中,第一组件的上游组件以及第一组件的下游组件。
在一种可能的实施方式中,确定组件拓扑图中,与报错的第一组件具有连接关系的其他组件是否可能发生故障,包括:针对其他组件中的任意一个组件,若组件存在至少一个可能存在故障的下一级组件,则确定组件可能存在故障。
通过上述方法,基于组件拓扑图确定出于报错的组件具有连接关系的其他组件,可以快速定位故障检测范围,提高故障检测效率。
在一种可能的实施方式中,第二组件的数量大于1,输出第二组件具体包括:对多个第二组件发生故障的概率进行排序;输出排序后的多个第二组件。
通过上述方法,通过排序可以将较大可能发生故障的节点排在前面,以此向用户指导检修顺序,提高用户的检修效率。
在一种可能的实施方式中,针对多个第二组件中的任意一个组件集合,组件集合包括一个父组件,以及父组件的一个或多个子组件;对多个第二组件发生故障的概率进行排序,包括:若父组件不具有传感器,且一个或多个子组件的数量大于1,则确定父组件发生故障的概率大于子组件发生故障的概率。
在一种可能的实施方式中,针对多个第二组件中的任意一个组件集合,组件集合包括一个父组件,以及父组件的一个或多个子组件;对多个第二组件发生故障的概率进行排序,包括:若父组件不具有传感器,且子组件的数量等于1,则确定父组件发生故障的概率与子组件发生故障的概率相同。
通过上述方法,可以检测不具有传感器的组件,不需要增加硬件开销。
在一种可能的实施方式中,针对多个第二组件中的任意一个组件集合,组件集合包括一个父组件,以及父组件的一个或多个子组件;对多个第二组件发生故障的概率进行排序,包括:若父组件具有传感器,且父组件的传感器报错,则父组件发生故障的概率大于子级组件发生故障的概率。
在一种可能的实施方式中,针对多个第二组件中的任意一个组件集合,组件集合包括一个父组件,以及父组件的一个或多个子组件;对多个第二组件发生故障的概率进行排序,包括:若父组件具有传感器,且父组件的传感器未报错,且子组件的数量大于1,则确定父组件发生故障的概率大于子组件发生故障的概率。
通过上述方法,不仅依赖传感器进行故障检测,及时发现可能发生故障的节点,避免传感器故障导致的漏检,提高用户的检修效率。
在一种可能的实施方式中,针对多个第二组件中的任意一个组件集合,组件集合包括一个父组件,以及父组件的一个或多个子组件;对多个第二组件发生故障的概率进行排序,包括:若父组件具有传感器,且父组件的传感器未报错,且子组件的数量等于1,则确定父组件发生故障的概率小于子组件发生故障的概率。
在一种可能的实施方式中,输出第二组件包括:通过图形界面输出第二组件;图形界面还包括用于指示第二组件排序的编号,编号位于预设区域内。
通过上述方法,能够更加直观地为用户展示排序结果,提高用户使用体验。
在一种可能的实施方式中,第一组件具有传感器;还包括:根据传感器确定第一组件已发生故障。
第二方面,本申请实施例还提供了一种故障检测装置,该装置具有实现上述第一方面的方法实例中行为的功能,有益效果可以参见第一方面的描述此处不再赘述。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,所述故障检测装置的结构中包括获取模块、确定模块和输出模块。这些模块可以执行上述第一方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
第三方面,本申请还提供了一种故障检测设备,所述故障检测设备包括处理器和存储器,还可以包括通信接口,所述处理器执行所述存储器中的程序指令执行上述第一方面或第一方面任一可能的实现方式提供的方法。该故障检测设备可以为计算机设备中的独立模块,如基板管理控制器(baseboard manager controller,BMC)。所述存储器与所述处理器耦合,其保存故障检测过程中必要的程序指令和数据(如保存组件拓扑图)。所述通信接口,用于与其他设备进行通信。
第四方面,本申请提供了一种计算机可读存储介质,所述计算书可读存储介质被计算设备执行时,所述计算设备执行前述第一方面或第一方面的任意可能的实现方式中提供的方法。该存储介质中存储了程序。该存储介质包括但不限于易失性存储器,例如随机访问存储器,非易失性存储器,例如快闪存储器、硬盘(hard disk drive,HDD)、固态硬盘(solid state drive,SSD)。
第五方面,本申请提供了一种计算设备程序产品,所述计算设备程序产品包括计算机指令,在被计算设备执行时,所述计算设备执行前述第一方面或第一方面的任意可能的实现方式中提供的方法。该计算机程序产品可以为一个软件安装包,在需要使用前述第一方面或第一方面的任意可能的实现方式中提供的方法的情况下,可以下载该计算机程序产品并在计算设备上执行该计算机程序产品。
第六方面,本申请还提供一种计算机芯片,所述芯片与存储器相连,所述芯片用于读取并执行所述存储器中存储的软件程序,执行上述第一方面以及第一方面的各个可能的实现方式中所述的方法。
附图说明
图1A为本申请实施例提供的一种可能的系统架构示意图;
图1B为本申请实施例体提供的一种故障检测装置140的功能示意图;
图2为本申请实施例提供的故障检测方法所对应的流程示意图;
图3为本申请实施例提供的一种组件拓扑图;
图4为本申请实施例提供的故障检测方法中的主检测流程示意图;
图5为本申请实施例提供的故障检测方法中无感节点检测流程示意图;
图6为本申请实施例提供的故障检测方法中有感节点未报障的检测流程示意图;
图7为本申请实施例提供的基于神经网络模型的训练校正流程示意图;
图8为本申请实施例提供的一种图像界面的示意图;
图9为本申请实施例提供的另一种图像界面的示意图;
图10为本申请实施例提供的第三种图像界面的示意图;
图11为本申请实施例提供的计算机设备10内的部分组件的硬件结构示意图;
图12为本申请实施例提供的计算机设备10的一种组件拓扑图;
图13为本申请提供的一种故障检测装置的结构示意图。
具体实施方式
本申请提供的故障检测方法可以应用于计算机设备,该方法可以在检测到计算机设备内的组件报障时,基于组件拓扑图检测该组件的关联组件,从而发现可能存在故障的一系列组件,并输出这些可能存在故障的组件,以指导用户进行检修,提高检修效率。
本申请中的计算机设备包括但不限于:服务器、存储设备、计算设备、用户设备(user equipment,UE)等。UE包括台式电脑、笔记本电脑、平板电脑、手机、手持式设备、车载设备、可穿戴设备等等。本申请实施例对计算机设备的类型和结构不做限定,任何具备电子组件的设备均适用于本申请实施例。
图1A为本申请实施例提供的一种计算机设备10的结构示意图。如图1A所示,该计算机设备10包括处理器110、内存120、外存130、故障检测装置140、总线150。其中,处理器110、内存120、外存130以及故障检测装置140之间通过总线150连接。
处理器110可以为中央处理器(central processing unit,CPU)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammable gate array,FPGA)、人工智能(artificial intelligence,AI)芯片、片上系统(system on chip,SoC)或复杂可编程逻辑器件(complex programmable logic device,CPLD),图形处理器(graphics processing unit,GPU)等。
内存120,是指与处理器110直接交换数据的内部存储器,它可以随时读写数据,而且速度很快,作为运行在处理器112上的操作系统或其他正在运行中的程序的临时数据存储器。内存包括易失性存储器(volatile memory),例如随机存取存储器(Random AccessMemory,RAM)、动态随机存取存储器(Dynamic Random Access Memory,DRAM)等,也可以包括非易失性存储器(non-volatile memory),例如存储级内存(storage class memory,SCM)等,或者易失性存储器与非易失性存储器的组合等。
外存130,也可以称为辅助存储器,可以为非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),硬盘驱动器(hard disk drive,HDD)或固态驱动器(solid state disk,SSD)等。
值得注意的是,计算机设备10中的一些组件中还集成有故障传感器(图1A中未示出),例如,图1A中的CPU、硬盘(如HDD、SSD)等均具有各自的故障传感器。
故障传感器可以位于组件内部,用于检测该组件的运行状态,运行状态包括运行正常和故障,故障传感器可以通过不同的值来指示这两种不同的状态。例如,故障传感器的值为1表示运行正常,值为0表示故障。在检测到组件故障时,故障传感器生成用于指示组件故障的信号(如下称为故障信号),以指示该节点故障。例如,电子设备上的运行状态指示灯,当设备运行正常时该指示灯显示为绿灯,当设备运行异常时显示为红灯。为便于说明,下文中,将组件的故障传感器发送故障信号称为组件报障。
故障检测装置140,是计算机设备10内独立内运行的管理子系统,可以获取计算机设备10内其他组件的故障信号,以执行本申请实施例提供的故障检测方法。
本申请中,故障检测装置140可以是新的组件集成在计算机设备10内,该新的组件具有本申请实施例提供的故障检测方法这一功能。或者,故障检测装置140也可以是计算机设备10内具备本申请实施例所提供的故障检测方法这一功能的已有组件,例如BMC,BMC是服务器的关键构成部分,是一个单独在服务器内运行的管理子系统。BMC作为一个平台管理系统,具备一系列的监控和控制功能,其硬件是服务器的主板第一个上电启动部件和带外管理系统。如下结合图1A和图1B以BMC为例对故障检测装置140进行介绍。
如图1A所示,在硬件上,故障检测装置140包括处理器151、内存152、外存153、通信接口154,其中,处理器151、内存152、外存153以及通信接口154通过总线连接。
处理器151,用于对数据进行处理、计算等,例如,处理器151可以运行本申请实施例提供的故障检测方法。处理器151与处理器110类似,如该处理器151可以为CPU、ASIC、FPGA、AI芯片、SoC、CPLD、或GPU等。在软件层面,处理器151上运行有操作系统,该操作系统可以是X86、Arm、UNIX、轻量级系统或自定义操作系统等等,本申请实施例对此不做限定。应注意,处理器151运行的操作系统与处理器110运行的操作系统是相互独立的。也就是说,计算机设备10内的组件故障时,如处理器110故障,不会对故障检测装置140产生影响。
内存152是指与处理器151直接交换数据的内部存储器,它可以随时读写数据,而且速度很快,作为运行在处理器151上的操作系统或其他正在运行中的程序的临时数据存储器。例如内存152中可以存储计算机设备10的组件拓扑图,当处理器151执行本申请提供的故障检测方法时,可以从该内存152中获取计算机设备10的组件拓扑图。
外存153,用于提供存储资源,可以为非易失性存储器(non-volatile memory),例如ROM、HDD、SSD、闪存(flash)存储器等。通用BMC是使用flash颗粒来充当硬盘的功能。与内存不同之处在于,硬盘的读写速度比内存慢,通常用于持久性地存储数据。在申请中,计算机设备10的组件拓扑图也可以在外存153中进行持久化存储,当处理器151执行本申请提供的故障检测方法时,可以将该组件拓扑图从外存153迁移至内存152中,处理器151从内存152中获取该组件拓扑图。
通信接口154,用于与计算机设备10内的其他组件或计算机设备10外部的设备通信。例如,处理器151通过通信接口154获取处理器110、内存120、外存130的故障传感器生成的故障信号。又例如,处理器151可以通过通信接口154将检测结果发送给显示设备。其中,显示设备为用户侧设备,如图1B所示,显示设备例如可以是BMC的web(网页)显示屏,移动终端设备,如手机、平板电脑等、具有特定软件如工具软件、网管软件、云端运维软件的设备、以及各种显示器如液晶显示器(liquid crystal display,LCD)、发光二极管(lightemitting diode,LED)屏,本申请实施例对显示设备不做限定,任何具有显示屏的设备均适用于本申请实施例。
处理器151还可以与其他处理器如人工智能引擎通信等等,该人工智能引擎可以部署在计算机设备10内部,也可以部署在计算机设备10外部,人工智能引擎可以用于辅助故障检测装置140执行本申请实施例提供的故障检测方法,下文会进行详细介绍,这里不做赘述。
下面结合附图2,以图1A所示出的计算机设备10为例,对本申请实施例提供的故障检测方法进行说明。需要说明的是,图1A仅示出计算机设备10的少量组件以保持简洁,实际应用中,计算机设备10可以具有比图1A所示出的更多的组件,例如,计算机设备10还可以包括网卡、主板等,当然,计算机设备10也可以具有更少的组件,本申请实施例对此计算机设备10的结构不做限定。
图2为本申请实施例提供的故障检测方法所对应的流程示意图。该方法可以由图1A中的故障检测装置140(或处理器151)来执行,用于检测计算机设备10中可能存在故障的组件。为便于说明,下文中以故障检测装置140为BMC为例。也就是说,下文中的BMC均可以被替换为故障检测装置140。如图2所示,该方法包括如下步骤:
步骤201,BMC获取计算机设备10的组件拓扑图。
计算机设备10的组件拓扑图,用于描述计算机设备10中的组件以及组件之间的连接关系。该连接关系可以是组件之间的逻辑连接关系,或者是组件之间的物理连接关系。通常,软件系统的组件拓扑图是基于逻辑连接关系生成的,而硬件系统的组件拓扑图是基于组件之间的物理连接关系生成的。
以硬件系统的组件拓扑图为例,示例性地,组件拓扑图中的每个节点用于表示一个可更换的组件,例如CPU、内存、硬盘、网卡、通信线缆、接口转接卡等等。该组件可以是具有故障传感器的组件,也可以是不具有故障传感器的组件,例如,CPU、内存、硬盘等具有故障传感器,通信线缆、接口转接卡等不具有故障传感器。如下将组件拓扑图中具有故障传感器的节点称为有感节点,将不具有故障传感器的节点称为无感节点。
组件拓扑图中每个组件可以由节点标识来表示,节点标识用于唯一标识一个组件。在组件拓扑图中,组件和节点是相同的概念,两者可以互换。节点标识可以由数字、字母等一项或多项组成。节点标识的位数还可以表示该组件在组件拓扑图中的层级。例如,节点标识为一位数表示该节点位于第一层级,在组件拓扑图中位于第一层级的节点为根节点。节点标识为两位数表示该节点位于第二层级,节点标识为三位数表示该节点位于第三层级,以此类推。
其中,第一层级是第二层级的上一层级,第二层级是第三层级的上一层级,依此类推。对应的,第二层级是第一层级的下一层级,第三层级是第二层级的下一层级,依此类推。以某一节点如节点A为例,对节点之间的关系进行说明:在组件拓扑图中,节点A的上一层级中与节点A有连接关系的节点为节点A的父节点,节点A的下一层级中与节点A有连接关系的节点为节点A的子节点。节点A的上游节点包括根节点至节点A的路径所经过的所有节点,节点A的下游节点包括节点A的子节点,以及节点A的子节点的子节点等等,直至最末端的节点。本申请中,节点A的关联节点包括节点A的上游节点和节点A的下游节点。
请参见图3,图3为本申请实施例提供的一种组件拓扑图的示意图。如图3所示,该组件拓扑图中,根节点的节点标识为0,根节点0的子节点的节点标识依次为00,01,…,0i,i取正整数。以节点00为例,节点00的子节点为000,001,002,…,00j,j取正整数。其中,节点0000的父节点为000,节点0000的子节点包括节点00000,还可以包括节点00001、节点00002等(图3未示出)。节点0000的上游节点包括节点000,节点00,节点0。节点0000的下游节点包括节点00000等。
基于上述节点标识的编制方法可以得出,任意一个节点如mno,去掉其末尾字符可得到其父节点mn,在mno末尾字符后增加0,1,2,…则可匹配到其子节点mno0,mno1,…。
需要说明的是,上述节点标识的编制方法仅为举例,凡是可以唯一表征组件的节点标识均适用于本申请实施例,并且本申请实施例对节点标识的功能不做限定,其可以通过位数表示层级也可以不做表示。其可以通过是否包含相同的字符来表示节点之间是否存在关联关系,也可以不做表示,例如,根节点的节点标识为abc,根节点的子节点的节点标识为def,等等。由于前述的节点标识的编制方法便于理解和记忆,在下文中,将继续基于前述的节点标识的编制方法进行说明。
如上介绍了组件拓扑图,在步骤201中,BMC获取组件拓扑图的方式有多种,例如,可以是基于导入或烧录在BMC中的配置脚本生成的,该配置脚本用于描述组件拓扑图所包含的组件的节点标识以及节点之间的连接关系,该配置脚本还可以包括组件与节点标识的对应关系,还可以包括节点的其他信息,例如是否为有感节点等。
步骤202,BMC检测到第一节点报障。
这里的第一节点可以是组件拓扑图中的任意一个有感节点,BMC检测到第一节点报障是指,BMC获取到第一节点的故障传感器生成的故障信号,下文类似之处不再重复说明。
示例性地,在图1A所示的计算机设备10内,BMC可能检测到处理器110、内存120或外存130故障。BMC可能检测到一个或多个节点报障,如下以一个为例进行介绍。
步骤203,BMC基于组件拓扑图检测其他可能存在故障的第二节点。
当BMC检测到第一节点报障后,基于组件拓扑图查找第一节点的关联节点(包括第一节点的上游节点和第一节点的下游节点),并检测第一节点的关联节点中是否存在可能故障的节点(如第二节点),应理解,这里的第二节点表示被检测到的可能存在故障的节点,因此,第二节点的数量可以有一个或多个,也即该步骤可能检测到一个或多个第二节点。更进一步地,本领域技术人员可以知道,即使故障传感器报障也不一定是节点自身故障,可能是其他节点故障引起该节点的故障传感器报障,因此,这里赋予每个可能存在故障的节点一个故障概率,下文类似之处也不再重复说明。后续可以根据故障概率来确定故障起因。
举例来说,BMC检测到第一节点报障,如该第一节点为节点mno,BMC将节点mno作为目标节点,然后基于组件拓扑图向上追溯,检测目标节点mno的父节点mn是否故障,在检测父节点mn是否存在故障时,可以基于父节点mn是有感节点还是无感节点来执行不同的检测,如果父节点mn是无感节点,则执行本申请实施提供的无感节点检测方式。如果父节点是有感节点,则继续判断该父节点是否报障,如果未报故障,则执行本申请实施提供的有感节点未报障的检测方式。如果通过上述一系列检测发现了该父节点相关的故障现象,则认为父节点mn也可能存在故障,且父节点mn故障的可能性大于节点mno,也就是说,节点mno发生故障有可能是父节点mn引起的。该父节点mn即为一个第二节点,之后,将节点mn作为新的目标节点,返回执行上述流程,直至将节点mno的关联节点都检测完成。
如下结合图4至图6,对上述各检测方式进行详细说明。应理解,在图4至图6的方法中均由BMC执行。
参见图4,图4为本申请实施例提供的主检测流程示意图。如图4所示,该方法包括如下步骤:
步骤401,检测到节点可能存在故障,如该节点报障,将该节点作为目标节点。
步骤402,高亮该目标节点,并记录该目标节点的故障概率f1=x。
这里的高亮可以是记录或标记该节点为可能存在故障的节点,也可以是在包含组件拓扑图的图像界面中高亮该节点,下文类似之处不再重复说明。另外,这里的x是一个参考值,可以取任意值。在下文中,被高亮的节点表示可能存在故障(现象)的节点,未被高亮的节点表示认为不存在故障的节点。
步骤403,基于组件拓扑图查找该目标节点的父节点。
步骤404,判断该父节点是否是有感节点;如果是,则执行有感节点检测流程(续参见步骤405~步骤408),否则,执行无感节点检测流程(参见图5所示的流程),即跳转至步骤501。
步骤405,判断该父节点是否报障,如果是,则执行步骤406,否则,执行有感节点不报障的检测流程(参见图6所示的方法流程),即跳转至步骤601。
步骤406,高亮该父节点,并定义该父节点的故障概率f1=x+1。
如果父节点报障,则确定父节点可能存在故障,并且子节点的故障也可能是父节点引起的,因此父节点的故障概率大于子节点的故障概率。应理解,这里的父节点的f1=x+1,表示父节点的故障概率在子节点的故障概率的基础上+1,用于指示父节点的故障概率大于子节点的故障概率,实际上,本申请实施例并不限定在+1,任何可以表示两者之间大小的算法均适用于本申请实施例。
步骤407,判断该父节点是否为根节点,如果是,则执行步骤408,否则,将该父节点作为新的目标节点,并返回执行步骤403。
步骤408,得到可能存在故障的各节点,以及各节点的故障概率。
参见图5,图5为本申请实施例提供的一种无感节点检测流程示意图。如图5所示,该方法包括如下步骤:
步骤501,基于组件拓扑图查找该无感节点的子节点。
步骤502,判断该无感节点的子节点的数量是否≥1,如果≥1,即该无感节点至少有一个子节点,则执行步骤503,如果﹤1,即该无感节点没有子节点,执行步骤509。
步骤503,逐一遍历该无感节点的子节点【0,1,2…】。
需要说明的是,这里所示出的无感节点的子节点【0,1,2…】仅为示意,并不表示该无感节点肯定有子节点,也不表示该无感节点的字节点包括至少3个。该无感节点也可能只有1个或2或更多个子节点,本申请实施例对此不做限定。下文类似之处不再重复说明。
应理解,当该无感节点具有至少两个子节点时,该无感节点子节点遍历流程会执行多次,例如通过多个线程并行执行,也可以通过一个线程串行执行,当最后一个子节点检测完成后,不论该最后一个子节点执行有感节点检测流程(步骤503~步骤506),还是执行有感节点不报障检测流程,当最后一个子节点检测完成后,均跳转至步骤507。
在遍历时,可以按照子节点的节点标识顺序选择一个子节点作为当前子节点。
步骤504,判断当前子节点是否为有感节点,如果是,则执行步骤505,否则,返回执行步骤501。
应注意,通过步骤504可以执行迭代的检测,例如,节点mno的子节点包括节点mno0和节点mno1,首先遍历节点mno0,判断节点mno0是否为有感节点,如果是,则继续检测节点mno0是否报障(参见步骤505),如果mno0为无感节点,则返回执行步骤501:检测节点mno0的子节点,如包括节点mno00、节点mno01,继续执行后续流程,检测节点mno00的子节点数量等等,后续不再赘述。
值得注意的是,图5所示出为同一次迭代的步骤流程,换而言之,步骤505中的当前子节点与步骤504中的当前子节点是同一个节点。
步骤505,检测当前子节点是否报障,如果是,则执行步骤506,否则,执行有感节点不报障的检测流程(参见图6所示的方法流程),即跳转至步骤601。
步骤506,高亮该当前子节点,并定义该当前子节点的故障概率f1=x。
应理解,在本轮迭代中,该当前子节点为步骤401中目标节点的父节点的子节点,也即,目标节点的兄弟节点,因此,该当前子节点报障时,其故障概率与目标节点的故障概率相等。
步骤507,该无感节点的子节点遍历完成后,确定该无感节点的子节点【0,1,2…】中被高亮的子节点的数量,并判断该数量是否≥1;如果≥1,则执行步骤508,如果﹤1,即该无感节点的子节点均未被高亮,则该无感节点不高亮。
步骤508,判断该无感节点的子节点【0,1,2…】中被高亮的子节点的数量是否≥2;如果﹤2(即=1),执行步骤509;如果≥2,则执行步骤510。
步骤509,高亮该无感节点,并定义该无感节点的故障概率f1=x。
如果该无感节点具有一个被高亮的子节点,该被高亮的一个子节点的故障可能是该无感节点的故障引起的,因此,该无感节点也可能存在故障。由于该无感节点没有故障传感器,无法明确界定该无感节点是否存在故障,因此,可以将其故障概率设置为与子节点的故障概率相等。
步骤510,高亮该无感节点,并定义该无感节点的故障概率f1=x+1。
如果该无感节点具有至少两个被高亮的子节点,该被高亮的至少两个子节点的故障很可能是该无感节点的故障引起的,因此,该无感节点也可能存在故障,且其故障概率高于子节点的故障概率。
参见图6,图6为本申请实施例提供的一种有感节点不报故障的检测流程示意图。如图6所示,该方法包括如下步骤:
步骤601,基于组件拓扑图查找该未报障的有感节点的子节点【0,1…】。
步骤602,判断该有感节点的子节点的数量是否≥1,如果≥1,即该有感节点有至少一个子节点,则执行步骤603,否则,即该有感节点没有子节点,该有感节点不高亮。
步骤603,逐一遍历该有感节点的子节点【0,1…】。
应理解,当该有感节点具有至少两个子节点时,该有感节点子节点遍历流程会多次执行的,可以通过多个线程并行执行遍历,也可以通过一个线程串行执行遍历,当遍历到最后一个子节点,不论该最后一个子节点执行有感节点检测流程(步骤603~步骤605),还是执行无感节点检测流程,当最后一个子节点检测完成后,均跳转至步骤607。
在遍历时,可以按照子节点的节点标识顺序选择一个子节点作为当前子节点。
步骤604,判断当前子节点是否为有感节点,如果是,则执行步骤605,否则,执行无感节点检测流程(参见图5所示的方法流程),即跳转至步骤501。
步骤605,判断当前子节点是否报障,如果是,则执行步骤606,否则,将该子节点作为新的未报障的有感节点,返回执行步骤601。
应注意,通过步骤605可以执行迭代的检测,例如,节点mn的子节点包括节点mn0和节点mn1,首先遍历节点mn0,判断节点mn0是否为有感节点,如果是,则继续检测节点mn0是否报障(参见步骤605),如果节点mn0未报障,则返回执行步骤601:检测节点mn0的子节点,如包括节点mn00、节点mn01,继续执行后续流程,检测节点mn00的子节点数量等等,后续不再赘述。
值得注意的是,图6所示出为同一次迭代的步骤流程,换而言之,步骤606中的当前子节点与步骤605中的当前子节点是同一个节点。
步骤606,高亮该当前子节点,并定义该当前子节点的故障概率f1=x。
参见步骤506的解释,此处不再赘述。
步骤607,该有感节点的子节点遍历完成后,判断该有感节点的子节点【0,1…】中被高亮的子节点的数量,并判断该数量是否≥1;如果≥1,则执行步骤608,如果﹤1,即被高亮的子节点的数量为0,则该有感节点不高亮。
步骤608,判断该有感节点的子节点中被高亮的子节点的数量是否≥2,如果﹤2(即=1),则执行步骤609;如果≥2,则执行步骤610。
步骤609,高亮该有感节点,并定义该有感节点的故障概率f1=x-1。
由于该有感节点存在一个被高亮的子节点,也即存在一个存在故障现象的子节点,该子节点的故障可能是该有感节点的故障引起的,因此,即使该有感节点未报障,仍可以认为其可能存在故障,但其故障概率要低于报障的子节点的故障概率。
步骤610,高亮该有感节点,并定义该有感节点的故障概率f1=x+1。
如果该有感节点具有至少两个被高亮的子节点,该被高亮的至少两个子节点的故障很可能是该有感节点的故障引起的,因此,该无感节点也可能存在故障,且其故障概率高于子节点的故障概率。
值得注意的是,上述图4至图6所示的方法可能是重复执行的,例如,BMC可能检测到多个节点报障,则针对每个报障的节点可以分别作为目标节点通过上述流程进行检测,又例如,上述流程中可以确定出其他的被高亮的节点,BMC可以将高亮的节点当作新的目标节点,继续追溯与该节点相关的可能存在故障的节点。然而,由于节点之间存在着复杂的连接关系,在重复执行上述流程时,如果该节点已被检测过,且具有故障概率值,则不需要重复检测,下文会结合实施例进行具体举例说明。
通过上述方式,BMC可以基于报障的第一节点检测到与第一节点的关联节点中可能存在故障的一个或多个第二节点。为便于说明,如下将第一节点,和该一个或多个第二节点均称为故障节点。
步骤204,BMC输出故障检测结果。
在一种实施方式中,BMC可以输出故障概率超过预设阈值的故障节点,即故障检测结果包括故障概率超过预设阈值的故障节点。其中,预设阈值≥0。更进一步地,BMC还可以对故障检测结果所包含的故障节点进行排序,输出排序后的多个故障节点。如下将故障序列表示排序后的多个故障节点。该故障序列可以用于向用户指示检修顺序,由于某些节点的故障可能是其他节点引起的,当检修某个节点后,可能使得其他故障节点不再故障,从而提高检修效率。
示例性地,BMC可以根据故障节点的排序变量,对故障节点进行排序,从而得到故障序列。其中,排序变量包括但不限于故障概率f1、用于指示维修难度的排序变量f2、用于指示故障率的排序变量f3;其中,故障节点的故障概率f1是基于步骤203确定的;排序变量f2用于指示检修、更换节点的难易程度,每个节点的排序变量f2的值可以是预设的,在实际应用中,可以根据节点所对应的硬件的安装位置、体积、工作环境、成本价格、维修价格等因素确定。排序变量f3是指节点的故障率,该故障率可以是经过实验测试得到的节点固有的故障率,也可以是在运行过程中统计的,如果是节点固有的故障率,则节点的排序变量f3是预设值,如果是后者,则节点的排序变量f3可以是变化的。需要说明的是,上述列举的排序变量仅为举例,本申请实施例对此不做限定,任何与节点故障或维修难易相关的因素均可以作为排序变量。
由上可知,每个节点可以具有一个或多个排序变量,BMC可以根据各个故障节点的排序变量对该多个故障节点进行排序,如下列举几种排序方式。
排序方式一:按照故障概率大小排序。
即,基于各故障节点的故障概率f1的值由大到小进行排序,得到故障序列。
排序方式二:权重排序法。
示例性地,每个排序变量被赋予一个预设的权重值,BMC可以并通过下列公式1确定每个故障节点的故障综合值:
y=f1w1+f2w2+…+fiwi 公式1;
其中,y表示故障综合值;fi表示排序变量fi;wi表示排序变量fi的权重值。其中,i取正整数。
应理解,每个故障节点可以具有一个或多个排序变量,每个故障节点所包含的排序变量可以相同,也可以不同,或者不完全相同,例如,节点mn的排序变量包括f1、f2,节点m的排序变量包括f1、f3,本申请实施例对此不做限定。
BMC通过上述公式1分别计算每个故障节点的故障综合值,并按照各故障节点的故障综合值由大到小进行排序,得到故障序列。
排序方式三:优先级排序法。
示例性地,每个排序变量被赋予一个预设的优先级,或优先级顺序,BMC可以按照优先级由高到低的顺序,先按照优先级最高的排序变量的值的大小,对多个故障节点进行排序,如果存在值相等的多个节点,则可以继续按照优先级其次的排序变量的值进行排序,依此类推。例如,f1、f2、f3的优先级排序为:f1>f2>f3,BMC可以先按照各f1的值的大小对多个故障节点进行排序,如果存在f1值相同的多个节点,则再继续按照该多个节点的f2的值的大小进行排序,依次类推,直到将所有节点排序完成。
如假设:
节点m的排序变量包括:f1(值为0.8),f2(值为0.6),f3(值为0.2);
节点mn的排序变量包括:f1(值为0.2),f2(值为0.4);
节点mn0的排序变量包括:f1(值为0.6),f3(值为0.1);
节点mn01的排序变量包括:f1(值为0.2),f2(值为0.9)。
BMC首先按照优先级最高的f1值的大小进行排序,可以确定m>mn0,由于mn和mn01的f1值相等,则可以继续按照优先级次之的f2值的大小进行排序,可以继续确定故障序列为:m>mn0>mn01>mn。需要说明的是,上述数值仅为举例,并不表示逻辑上的可能性。
排序方式四:基于神经网络模型进行排序。
BMC可以结合神经网络模型对故障序列进行辅助决策以及训练校正。也即其可以用于确定故障序列,也可以对上述确定的故障序列进行训练校正。
一、为便于理解,首先从训练校正进行介绍。
结合上述排序方式三的例子,BMC确定的故障序列为:m>mn0>mn01>mn。该故障序列可以作为故障检测结果输出给用户,以向用户指导检修顺序。例如,用户基于上述故障序列首先检修节点m,如果检修节点m后其他节点的故障解除,则确认故障起因是节点m,如果检修节点m后其他节点的故障未解除,则按照故障序列继续检修下一个节点mn0,同理,如果检修节点mn0后故障解除,则确认故障起因是节点mn0,如果故障未解除,则继续检修下一个,依次类推。
用户可以将检修结果输入至神经网络模型。对应的,神经网络模型可以基于该检修结果对排序算法进行训练校正。如图7所示,图7示出了该训练校正的流程示意图,其流程包括:
步骤701,选择故障序列中的首个节点。
步骤702,基于检测结果判定该节点检修完成之后,其他节点的故障是否解除,如果解除,则执行步骤703,否则执行步骤704。
步骤703,该节点的置信度+1。
步骤704,该节点的置信度-1。
步骤后705,判定该节点是否为故障序列中的末尾节点,如果是,则结束该流程,否则,执行步骤706。
步骤706,顺序选择故障序列中的下一个节点,并返回执行步骤702。
举例来说,针对上述故障序列:m>mn0>mn01>mn,该故障序列中的首个节点为节点m;若检修结果指示节点m是故障起因,则将该场景下节点m的置信度加1,其余节点的置信度不变;又例如,若检修结果指示节点mn0是故障起因,也即上述故障序列的排序错误,则将该场景中节点m的置信度减1,节点mn0的置信度加1。再例如,若检修结果指示节点mn01是故障起因,则将该场景中节点m的置信度减1,节点mn0的置信度减1,节点mn01的置信度加1,其余节点的置信度不变,依此类推。
这里所指的场景包括两个条件,1)首先检测到报障的节点,即步骤401中检测到的报障节点;2)基于该报障的节点触发的故障检测所得到的故障序列。例如,节点mn01发生故障,故障序列为m>mn0>mn01>mn,这是一个完整的场景。这是由于不同的节点报障,得到的故障序列可能是相同的,但实际上经过训练校正后的故障序列可能是不同的,又例如,节点mn0发生故障,故障序列为m>mn0>mn01>mn。所以该场景要包括触发故障检测的故障节点。
针对任一个场景,神经网络模型可以确定每个节点在该故障序列中的位置的置信度,若经过训练校正,该节点的置信度的值超过第一预设值,则将该节点的位置前移,或者,如果低于第二预设值,则将该节点的位置后移。例如,经过多次训练校正,确定节点m的置信度低于第二预设值,则将节点m移至节点mn0之后,得到校正后的故障序列mn0>m>mn01>mn;可以理解的是,置信度的值可以表示该节点的位置,置信度越大则在故障序列中的位置越靠前。
二、如下对基于该神经网络模型辅助决策故障序列的方式进行介绍。
BMC可以结合上述方式生成的故障序列以及神经网络模型确定在该场景下的故障序列,确定最终要输出给用户的故障序列。为便于描述,如下将排序方式一至排序方式三生成的故障序列称为第一故障序列,将神经网络模型确定的故障序列称为第二故障序列。将最终输出给用户的故障序列称为目标故障序列。如果第一故障序列与第二故障序列相同,则目标故障序列为第一故障序列或第二故障序列。如果第一故障序列与第二故障序列不同,则目标故障序列为第二故障序列。
在一种可选的实施方式中,BMC也可以单独使用神经网络模型确定目标故障序列。需要说明的是,该神经网络模型可以部署在BMC中,也可以部署于其他处理器中,例如,FPGA中,BMC可以与该处理器通信获取神经网络模型确定的故障序列。
步骤204:BMC输出故障检测结果。
在一种实施方式中,BMC可以通过图像界面的方式将故障检测结果展示给用户,用于向用户指导需要检修的组件以及检修顺序。
如下对BMC生成图像界面的方式进行介绍。
在一种实现方式中,BMC可以根据组件拓扑图生成包括组件拓扑图的图像,这里包括组件拓扑图的图像是指该图像包含该组件拓扑图中每个节点的控件,控件与节点标识一一对应。根据故障检测结果中故障节点的节点标识和该对应关系可以定位到该故障节点在图像中的控件,并高亮标记该控件。应理解,这里的高亮也是一种示意,也可以通过其他方式区分故障节点和非故障节点,例如文字、不同颜色、是否闪烁灯方式来区分,本申请实施例对此不做限定。如果在图4至图6的流程中,如果BMC已生成该图像,并且在该图像中高亮了故障节点,则BMC可以直接使用该图像。
BMC还可以基于故障序列对该图像执行后处理,如将高亮的节点串接形成故障路径,以及基于故障序列为故障节点编制编号,该编号可以用于表示该节点在故障序列中的位置。例如,在故障序列m>mn0>mn01>mn中,节点m的编号为1,节点mn0的编号为2,节点mn01的编号为3,依此类推。
参见图8,图8为本申请实施例提供的一种图像界面的示意图。如图8所示,该图像界面显示了图3所示的组件拓扑图,以及基于该组件拓扑图的故障路径和各故障节点的编号。
在另一种实现方式中,上述图像界面中的组件拓扑图也可以被替换为该组件拓扑图所对应的硬件实物图。请参见图9,图9为本申请实施例提供的另一种图像界面的示意图。如图9所示,该图像界面在计算机设备10的硬件实物图显示故障检测结果。类似于组件拓扑图,硬件实物图中每个控件表示一个组件的硬件实物,该控件与该组件的节点标识绑定,控件与节点标识一一对应,根据故障节点的节点标识和该对应关系可以定位到硬件实物图中的控件上。图9与图8的区别在,将用于表示节点标识的控件替换为用于表示该节点标识所对应的物理硬件的控件。
需要说明的是,(1)图8~图9仅为举例,本申请实施例的图像界面可以具有比图8或图9更多或更少的信息,如还可以显示故障节点的名称、IP地址、故障时间等等其他信息,本申请实施例对此不做限定。(2)上述通过图像界面展示故障检测结果的方式仅为举例,本申请还可以通过其他方式展示故障检测结果,如图10所示,为通过文字的方式来展示故障检测结果,除此之外,还可以通过如视频、动画、语音等方式来显示故障检测结果,本申请实施例对此不做限定,任何能够展示故障检测结果的方式均适用于本申请实施例。
BMC也可以将故障检测结果发送至其他设备或组件,例如处理器110,或具备计算能力的显示设备,由这些设备或组件按照上述BMC执行的方式来生成用于表示故障检测结果的图像,这样,可以降低对BMC运算能力的要求。应理解,如果由BMC之外的设备生成图像,则该设备应具有与BMC相同的组件拓扑图,如可以是BMC发送给该设备的,也可以是其他方式如用户导入的,这里对此不做限定。
通过上述方式,BMC可以在侦测到第一节点报障后,基于组件拓扑图检测出第一节点的关联节点中可能存在故障的第二节点,并输出故障检测结果,以向用户提供检修指导。由于第二节点可以具有故障传感器也可以不具有故障传感器,因此本申请技术方案可以在不增加硬件成本的基础上,提高检修效率,适用场景也更广泛。
接下来以图1A所示的计算机设备10为例,对本申请实施例提供的故障检测方法进行举例说明。
首先,对计算机设备10内组件的硬件连接方式进行介绍。
如前所述,计算机设备10内的处理器110、内存120、外存130以及故障检测装置140之间通过总线150连接。其他组件请参见上文相关说明,如下仅对总线150进行介绍:
总线150,包括但不限于:双数据速率(double data rate,DDR)总线、快捷外设互联标准(peripheral component interconnect express,PCIe)总线、串行连接SCSI(serial attached scsi,SAS)总线、串行高级技术附件(serial advanced technologyattachment,SATA)总线等。
从数据传输速度来比较,DDR总线快于PCIe总线,PCIe总线快于SAS总线和SATA总线。通常,处理器110与内存120之间通过DDR总线连接。处理器110与故障检测装置140之间可以通过PCIe总线连接。处理器110和外存130之间可以通过SATA总线或SAS总线连接,实际上,计算机设备10的实物内部之间的连接方式可能更复杂,下文会进行详细说明。
本领域技术可以知道,计算机设备是以主板为中心来集成各种组件的,请参见图11,图11示出了图1A所示的计算机设备10的实物连接方式。
其中,主板也叫母板,是计算机硬件系统的核心,计算机设备10中的组件通过主板连接。在硬件上,主板是一块印刷电路板(printed circuit board,PCB),主板上具有CPU插槽、内存插槽以及其他插槽(如显卡插槽)等。处理器110可以安插在主板的CPU插槽上,内存120可以安插在主板的内存插槽上。主板内部通过总线(例如DDR总线、PCIe总线等)实现插槽之间的连接。例如,CPU插槽与DDR插槽之间可以通过DDR总线连接,以实现处理器110与内存120的连接。
主板上还可以有各种通信接口如通用串行总线(universal serial bus,USB)接口、PCIe接口等等。其中,USB接口,可以用于接入具有USB接口的设备。又例如,PCIe接口,可以用于接入具有PCIe接口的组件,例如具有PCIe接口的网卡、PCIe接口转接卡(PCIeriser)等。PCIe riser,是主板上的PCIe接口的转接口,在硬件上,PCIe riser具有两个接口,该两个接口均为PCIe接口,其中前端接口与主板上的PCIe接口相连,后端接口可以与其他具有PCIe接口的组件相连,从而实现转接功能。虽然两端都是PCIe接口,但后端接口可以适配于不同接口形态、或不同安装方式的组件,并且可以具有多个后端接口,从而接入多个具有PCIe接口的组件。在功能上,PCIe riser用于进行数据传输,不具有数据处理功能,类似于通信线缆的作用。
上文在介绍硬盘时所述的,硬盘的读写读速相较于内存慢,除了存储器自身的原因之外,还在于内存是直接接入处理器110的,而硬盘通常是通过SAS总线或SATA总线间接接入处理器110的。当然,如果硬盘具有内存接口如非易失性内存主机控制器(non-volatile memory express,NVMe)接口:NVMe接口也可以通过PCIe总线直接接入处理器110,这样可以提升硬盘的读写速度,但是性能仍低于内存。
示例性地,在间接接入方式中,硬盘通常需要借助一些组件例如磁盘阵列(redundant arrays of independent disks,RAID)和PCIe riser来接入处理器110,其中,RAID具有协议转换功能,示例性地,RAID具有SAS接口和PCIe接口,通过SAS接口接收SAS消息,通过PCIe接口接收PCIe消息,并可以将SAS的消息与PCIe的消息互相转换,以实现两侧设备的通信。如下SAS总线和HDD为例,对硬盘与处理器之间的连接方式进行介绍。
如图11所示,在实际产品中,为了便于扩容或缩容,通常是将HDD插入HDD背板(bacplane)的一个插槽(slot)中,HDD背板的每个插槽(也称为接口连接器(connector,CNN))用于接入一个HDD,其插槽数量决定外存可以集成的硬盘的数量。CNN一端连接HDD,另一端通过SAS线缆(如SAS CABLE)接入RAID的SAS接口,也即,CNN与RAID之间通过SAS CABLE相连,RAID的PCIe接口与PCIe riser的后端接口相连,PCIe riser的前端接口接入主板固有的PCIe接口,至此实现HDD与处理器的连接。
本领域技术人员可以知道,SAS CABLE通常为1*4型,即一根SAS CABLE可以并行将4个HDD接入RAID,应注意,这4个HDD之间是相互独立的。区别于主板上的焊接线,SAS CABLE为可更换的独立线缆,其损坏可能导致HDD故障。可以理解的是,对于1*4型的SAS CABLE,不论其中哪个HDD的SAS连接线损坏,该SAS CABLE均需要更换,因此,SAS CABLE为一个组件并非4个组件。
由于现有设备越来越复杂,其中可以同时存在多种通信协议,使用不同通信协议的组件通常不会互相干扰。因此,本申请中,如果用组件拓扑图来表示组件之间的物理连接关系,则构成该组件拓扑图的这些组件可以是使用同一总线协议连接的。也就是说一个组件拓扑图中不能包含2种及2种以上不同属性的总线。例如,A、B、C、D之间通过SAS总线互连,E、F和G之间通过PCIe总线互连。那么A、B、C、D属于同一个组件结构图,但是与E、F、G则不属于同一个组件结构图,E、F、G可以组成另一个组件拓扑图。
针对图11所示的计算机设备10,可以将使用同一总线协议(如SAS总线),且可更换的组件纳入一个组件拓扑图中,例如,HDD、HDD背板、SAS CABLE、RAID。参见图12,图12为计算机设备10的一种组件拓扑图,该组件拓扑图用于描述计算机设备10内的HDD、HDD背板、SAS CABLE、RAID的连接关系。在图12中,给定每个SAS CABLE为1*4型,每个RAID包括8个SAS通道。即每个RAID可以至少两个SAS CABLE。应注意,为了便于理解,图12所示的组件拓扑图展示的为组件的名称,实际上可以是节点标识。
下面结合图12所示的组件拓扑图架构,对本申请实施例提供的故障检测方法进行介绍。在介绍方法之前,首先声明,在图12中,RAID、HDD等为有感节点,其余组件为无感节点。
场景一:假设HDD2报障。
在场景一中,假设BMC已导入图12所示的组件拓扑图,在下文中出现的组件拓扑图均指图12所示的组件拓扑图,如下结合图4~图6所示的方法,对该场景一的检测流程进行介绍:
1)步骤401,检测到HDD2报障,将该HDD2作为目标节点。
步骤402,高亮该HDD2,并记录该HDD2的f1=x,例如,假设x=10。
步骤403,基于组件拓扑图确定目标节点(HDD2)的父节点,即HDD背板的CNN2(如下简称为CNN2)。下文中的CNN均指该HDD背板上的CNN。
步骤404,判断该父节点CNN2是否为有感节点,CNN2为无感节点,执行步骤501(无感节点检测流程)。
步骤501,基于组件拓扑图查找CNN2的子节点,即HDD2。
步骤502,判断CNN2的子节点(即HDD2)的数量是否≥1,由于CNN2有1个子节点,因此执行步骤503。
步骤503,遍历该CNN2的子节点HDD2。
步骤504,子节点HDD2是有感节点,执行步骤505。
步骤505,子节点HDD2报障,执行步骤506。
步骤506,高亮HDD2,记录HDD2的f1=10。
应理解,由于节点之间的关联关系较多,在向上溯源或向下溯源的检测过程中,该节点可能已被高亮,如果节点已被高亮,则不需要重复高亮,也即在遍历节点时,如果节点被高亮则可以不重复遍历,即上述步骤504至步骤506可以不执行。具体的,在一种可能的实现方式中,BMC可以仅遍历未被高亮的节点。在另一种可能的实现方式中,BMC可以记录已被遍历过的节点(包括已被遍历但未高亮的节点),对于已被遍历的节点不需要重复遍历。
步骤507,CNN2的子节点遍历完成后,确定CNN2的子节点中被高亮的子节点的数量,即1个(HDD2),执行步骤509。
步骤509,高亮CNN2,并定义CNN2的f1=10。
2)接下来,BMC将CNN2作为新的目标节点,重复执行上述流程,向上追溯CNN2的父节点是否故障。参见如下流程:
步骤401,BMC将CNN2作为目标节点。
值得注意的是,以CNN2为新的目标节点时确定其他可能故障的节点时,将以CNN2的f1的值作为参考值,例如,如果CNN2的f1=10,则x=10,若CNN2的关联节点的f1=x+1时,则该关联节点的f1=11。又如,如果CNN2的f1=11,则x=11,若CNN2的关联节点的f1=x+1时,则该关联节点的f1=12。
步骤402,高亮该CNN2,并记录该CNN2的f1,由上一轮检测得出CNN2的f1=10。
步骤403,基于组件拓扑图查找CNN2的父节点SAS CABLE1。
步骤404,判断父节点SAS CABLE1是否为有感节点,由于SAS CABLE1为无感节点,继续执行步骤501。
步骤501,基于组件拓扑图查找SAS CABLE1的子节点,其子节点包括CNN1、CNN2、CNN3和CNN4。
步骤502,判断SAS CABLE1的子节点的数量是否≥1,SAS CABLE1的子节点数量为4个,因此执行步骤503。
步骤503,逐一遍历CNN1、CNN2、CNN3和CNN4。
步骤504,首先选择CNN1,判断CNN1是否为有感节点,由于CNN1为无感节点,返回执行步骤501。
步骤501,基于组件拓扑图查找CNN1的子节点,即HDD1。
步骤502,判断该CNN1的子节点的数量是否≥1,由于CNN1的子节点的数量=1,执行步骤503。
步骤503,遍历HDD1。
步骤504,判断HDD1是否为有感节点;HDD1是有感节点,执行步骤505。
步骤505,检测HDD1是否报障,基于前述假设的场景一可得,HDD1未报障,执行步骤601(有感节点未报障流程)。
步骤601,基于组件拓扑图查找HDD1的子节点。
步骤602,判断HDD1的子节点的数量是否≥1,由于HDD1没有子节点,即子节点的数量为0,执行步骤609。
步骤609,HDD1不高亮。
CNN1的子节点全部遍历完成后,跳转至CNN1这轮迭代的步骤507。
步骤507,判断CNN1中被高亮的子节点的数量是否≥1,由于CNN1没有被高亮的子节点,其数量为0,因此,该CNN1不高亮。
CNN1遍历完成后,顺序遍历CNN2、CNN3和CNN4。其中,CNN1、CNN3、CNN4均不高亮,有上述的1)流程可知CNN2高亮。
当SAS CABLE1的所有子节点遍历完成后,执行SAS CABLE1这轮迭代的步骤507。
步骤507,确定SAS CABLE1的子节点中被高亮的子节点的数量,仅CNN2被高亮,该数量为1,因此,经过步骤508的判断,执行步骤509。
步骤509,高亮该SAS CABLE1,并定义该SAS CABLE1的故障概率f1=10。
3)接下来,BMC继续将SAS CABLE1作为新的目标节点,重复执行上述流程,向上追溯SAS CABLE1的父节点是否故障。参见如下流程:
步骤401,BMC将SAS CABLE1作为目标节点。
步骤402,高亮该SAS CABLE1,并记录该SAS CABLE1的f1,由上一轮检测得出SASCABLE1的f1=10。
步骤403,基于组件拓扑图查找SAS CABLE1的父节点RAID1。
步骤404,判断父节点RAID1是否为有感节点,由于RAID1是有感节点,继续执行步骤405。
步骤405,判断RAID1是否报障,基于前述假设的场景一可得,RAID1未报障,执行步骤601(有感节点未报障流程)。
步骤601,基于组件拓扑图查找RAID1的子节点,即SAS CABLE1和SAS CABLE2。
步骤602,RAID1的子节点的数量为2,执行步骤603。
步骤603,逐一遍历RAID1的子节点SAS CABLE1和SAS CABLE2。
其中,SAS CABLE1已被高亮即被遍历过(参见上述步骤501~步骤509),因此,这里可以仅遍历SAS CABLE2。
步骤604,判断SAS CABLE2是否为有感节点,由于SAS CABLE2为无感节点,执行步骤501(即无感节点检测流程)。
步骤501,基于组件拓扑图查找SAS CABLE2的子节点,即CNN5~CNN8。
步骤502,SAS CABLE2的子节点的数量为4,执行步骤503。
步骤503,逐一遍历SAS CABLE2的子节点CNN5~CNN8。
步骤504,首先是CNN5,CNN5为无感节点,返回执行步骤501。
步骤501,基于组件拓扑图查找CNN5的子节点,即HDD5。
步骤502,CNN5的子节点的数量=1,执行步骤503。
步骤503,遍历HDD5。
步骤504,HDD5为有感节点,执行步骤505。
步骤505,基于前述假设的场景一可得,HDD5未报障,执行步骤601(即有感节点未报障流程)。
步骤601,基于组件拓扑图查找HDD5的子节点。
步骤602,HDD5没有子节点,该HDD5不高亮。
CNN5的子节点(即HDD5)均遍历完成后,返回执行CNN5这轮迭代的步骤507。
步骤507,判断CNN5的子节点中被高亮的子节点的数量,由于CNN5仅有1个子节点HDD5,且该HDD5未被高亮,也即该CNN5被高亮的子节点的数量为0,则该CNN5也不高亮。
CNN5遍历完成后,顺序遍历CNN6、CNN7和CNN8,参见上述遍历CNN5的流程,此处不再赘述,其中,基于前述假设的场景一可知,由于HDD6~HDD8均未报障,因此,CNN6、CNN7、CNN8均不高亮。
当SAS CABLE2的所有子节点遍历完成后,返回执行SAS CABLE2这轮迭代步骤507。
步骤507,确定SAS CABLE2的被高亮的子节点的数量,由于CNN5~CNN8均未被高亮,也即该数量为0,因此,SAS CABLE2也不高亮。
当RAID1的子节点(即SAS CABLE1和SAS CABLE2)全部遍历完成后,返回执行步骤607。
步骤607,确定RAID1的子节点中被高亮的子节点的数量,由于SAS CABLE1被高亮,SAS CABLE2未被高亮,因此,该数量为1,执行步骤608。
步骤608,高亮RAID1,被定义该RAID1的故障概率为f1=10-1=9。
基于上述流程可以确定,当检测HDD2报障时,基于组件拓扑图,可以得到被高亮的节点包括HDD2、CNN2、SAS CABLE1和RAID1,其中,HDD2的f1=10,CNN2的f1=10,SAS CABLE1的f1=10,RAID1的f1=9。
各故障节点按照f1的值由大到小的排序为:HDD2=CNN2=SAS CABLE1>RAID1。
场景二:假设HDD1和HDD2报障。
在场景二中,仍假设BMC已导入图12所示的组件拓扑图,如下结合图4~图6所示的方法,对该场景二的检测流程进行介绍,为保持简洁,如下不再示出具体的步骤:
(1)BMC检测到HDD2报障,将HDD2作为目标节点,记录HDD2的f1=10,基于组件拓扑图确定HDD2的父节点CNN2,判断CNN2是否为有感节点,由于CNN2为无感节点,跳转至无感节点检测流程:基于组件拓扑图查找CNN2的子节点,即HDD2,HDD已被高亮,可以不再重复遍历。当CNN2的子节点遍历完成后,判断CNN2的子节点中被高亮的子节点数量是否≥1,该数量为1(即HDD2),高亮CNN2,并记录CNN2的f1=10。
(2)BMC将CNN2作为新的目标节点,基于组件拓扑图确定CNN2的父节点SASCABLE1,该SAS CABLE1为无感节点,执行无感节点检测流程:基于组件拓扑图查找该SASCABLE1的子节点,CNN1~CNN4,逐一遍历其子节点,首先是CNN1,由于CNN1是无感节点,执行无感节点检测流程:查找CNN1的子节点HDD1,HDD1是有感节点,判断HDD1是否报障,基于前述假设的场景可知,HDD1报障,将HDD1高亮。当CNN1的子节点遍历完成后,判断CNN1被高亮的子节点的数量是否≥1,该数量为1,高亮CNN1,并记录CNN1的f1=10。
当CNN1遍历完成后,由于CNN2已被遍历,BMC可以继续遍历CNN3,CNN3为无感节点,查找CNN3的子节点HDD3,HDD3为有感节点,且基于前述假设的场景二可知HDD3未报障,因此,HDD3不高亮,CNN3的子节点遍历完成,确定CNN3的子节点中被高亮的子节点的数量为0,因此CNN3也不高亮。继续遍历CNN4,同理,CNN4也不高亮。
BMC将SAS CABLE1的子节点CNN1~CNN4均遍历完成后,判断SAS CABLE1的子节点中被高亮的子节点数量,其中CNN1和CNN2被高亮,即SAS CABLE1被高亮的子节点的数量=2,高亮该SAS CABLE1,并记录SAS CABLE1的f1=10+1=11。
(3)BMC将SAS CABLE1当作目标节点,SAS CABLE1的f1=11。基于组件拓扑图查找SAS CABLE1的父节点即RAID1,RAID1的父节点为有感节点,检测RAID1是否报障,基于前述假设的场景可知,RAID1未报障,执行有感节点未报障流程:查找RAID1的子节点,即SASCABLE1和SAS CABLE2,遍历RAID1的子节点,首先是SAS CABLE1,由于SAS CABLE1已被遍历过,这里可以继续遍历SAS CABLE2,由于场景二中也假设了HDD5~HDD8未报障,因此,遍历SAS CABLE2的流程可以参见上述场景一的描述,此次不再赘述。由上述流程可知,SASCABLE2未被高亮。
当BMC遍历完SAS CABLE1和SAS CABLE2之后,判断RAID1的子节点中被高亮的子节点的数量,其数量为1,即SAS CABLE1被高亮,因此高亮RAID1并记录RAID1的故障概率为f1=11-1=10。
需要说明的是,由于HDD1和HDD2从属于同一个父节点,因此,可以不重复将HDD2作为目标节点重复向上溯源检测,如果HDD2和HDD1没有关联,则类似于HDD1的流程,BMC可以将HDD2作为新的目标节点向上溯源检测HDD2相关的节点是否存在可能故障的节点,具体流程可以参见上述以HDD1为目标节点的检测流程,此处不再赘述。
基于上述流程可以确定,当检测HDD1和HDD2报障时,基于图12所示的组件拓扑图,可以得到被高亮的节点包括HDD1、HDD2、CNN1、CNN2、SAS CABLE1和RAID1,其中,HDD1的f1=10,HDD2的f1=10,CNN1的f1=10,CNN2的f1=10,SAS CABLE1的f1=11,RAID1的f1=10。各故障节点按照f1的值由大到小的排序为:SAS CABLE1>HDD1=HDD2=CNN1=CNN2=RAID1。
场景三:假设HDD1、HDD2和RAID1报障。
该场景三中,基于HDD1、HDD2检测CNN1和CNN2,以及SAS CABLE1的流程请参见上述场景二中的相关描述,此处不再赘述。如下对将SAS CABLE1作为目标节点,检测RAID1的流程进行介绍:
BMC将SAS CABLE1作为目标节点,从上述流程可得SAS CABLE1的f1=11,基于组件拓扑图查找SAS CABLE1的父节点,RAID1,RAID1为有感节点,检测RAID1是否报障,基于前述假设的场景三可以确定,RAID1报障,高亮该RAID1并记录该RAID1的f1=f1(SAS CABLE1)+1=11+1=12。
基于上述流程可以确定,当检测HDD1、HDD2和RAID1报障时,基于图12所示的组件拓扑图,可以得到被高亮的节点包括HDD1、HDD2、CNN1、CNN2、SAS CABLE1和RAID1,其中,HDD1的f1=10,HDD2的f1=10,CNN1的f1=10,CNN2的f1=10,SAS CABLE1的f1=11,RAID1的f1=12。各故障节点按照f1的值由大到小的排序为:RAID1>SAS CABLE1>HDD1=HDD2=CNN1=CNN2。
基于上述流程可以确定,以报障节点的关联节点中的某一节点为例,如果该节点有至少一个被高亮的子节点,则高亮该节点。通过下列方式确定各被高亮的节点的故障概率:
1,如果上游节点中无感节点的子节点中被高亮的子节点的数量大于1,那么无感节点故障的可能性高于目标节点。
2,如果上游节点中无感节点的子节点中被高亮的子节点的数量等于1,那么无感节点故障的可能性与目标节点相等。
3,如果上游节点中无感节点的子节点被高亮的数量为0,那么该无感节点不被高亮。
4,如果上游节点中有感节点报障,或有感节点未报障但有感节点的子节点被高亮的数量大于1,则该有感节点的可能性高于目标节点。
5,如果上游节点中有感节点未报障,且该有感节点被高亮的子节点的数量为1,该有感节点的可能性低于目标节点。
6,如果上游节点中有感节点未报障,且该有感节点被高亮的子节点的数量为0,该有感节点不高亮。
基于与方法实施例相同的构思,本申请实施例还提供了一种故障检测装置,该故障检测装置用于执行上述方法实施例中BMC所执行的方法。如图13所示,该故障检测装置1300包括获取模块1301、确定模块1302和输出模块1303。具体地,在故障检测装置1300中,各模块之间通过通信通路建立连接。
获取模块1301,用于获取组件拓扑图,组件拓扑图用于描述计算机设备中的各个组件,以及各个组件之间的连接关系;具体实现方式请参见图2中的步骤201的描述此处不再赘述。
确定模块1302,用于确定组件拓扑图中,与报错的第一组件具有连接关系的其他组件是否可能发生故障;具体实现方式请参见图2中的步骤202~步骤203的描述,此处不再赘述。
输出模块1303,用于输出可能发生故障的第二组件,第二组件是其他组件和第一组件的子集。具体实现方式请参见图2中的步骤204的描述此处不再赘述。
在一个可能的设计中,组件拓扑图用于描述使用同一通信协议的组件之间的硬件连接关系。
在一个可能的设计中,输出模块1303具体用于通过图形界面输出第二组件;其中,图形界面显示有组件拓扑图,组件拓扑包括多个节点标识,多个节点标识与计算机设备中的各个组件一一对应;在组件拓扑图中与第二组件对应的节点标识被高亮显示;或图形界面显示计算机设备的各个组件的硬件实物图,硬件实物图包括多个控件,多个控件与计算机设备中的各个组件一一对应,每个控件用于显示一个组件的硬件;在硬件实物图中与第二组件相对应的控件被高亮显示。
在一个可能的设计中,第二组件是通过神经网络模型确定的;其中,神经网络模型用于根据报错的组件确定与报错的组件具有连接关系的其他组件是否可能发生故障,以及可能发生故障的组件的排序。
在一个可能的设计中,其他组件包括在组件拓扑图中,第一组件的上游组件以及第一组件的下游组件。
在一个可能的设计中,确定模块1302具体用于针对其他组件中的任意一个组件,若组件存在至少一个可能存在故障的下一级组件,则确定组件可能存在故障。
在一个可能的设计中,第二组件的数量大于1;
确定模块1302还用于对多个第二组件发生故障的概率进行排序;参加图4~图7的描述,此处不再赘述。
输出模块1303还用于输出排序后的多个第二组件。
在一个可能的设计中,针对多个第二组件中的任意一个组件集合,组件集合包括一个父组件,以及父组件的一个或多个子组件;
确定模块1302具体用于,若父组件不具有传感器,且一个或多个子组件的数量大于1,则确定父组件发生故障的概率大于子组件发生故障的概率。
在一个可能的设计中,针对多个第二组件中的任意一个组件集合,组件集合包括一个父组件,以及父组件的一个或多个子组件;
确定模块1302具体用于,若父组件不具有传感器,且子组件的数量等于1,则确定父组件发生故障的概率与子组件发生故障的概率相同。
在一个可能的设计中,针对多个第二组件中的任意一个组件集合,组件集合包括一个父组件,以及父组件的一个或多个子组件;
确定模块1302具体用于,若父组件具有传感器,且父组件的传感器报错,则确定父组件发生故障的概率大于子级组件发生故障的概率。
在一个可能的设计中,针对多个第二组件中的任意一个组件集合,组件集合包括一个父组件,以及父组件的一个或多个子组件;
确定模块1302具体用于,若父组件具有传感器,且父组件的传感器未报错,且子组件的数量大于1,则确定父组件发生故障的概率大于子组件发生故障的概率。
在一个可能的设计中,针对多个第二组件中的任意一个组件集合,组件集合包括一个父组件,以及父组件的一个或多个子组件;
确定模块1302具体用于,若父组件具有传感器,且父组件的传感器未报错,且子组件的数量等于1,则确定父组件发生故障的概率小于子组件发生故障的概率。
在一个可能的设计中,输出模块1303具体用于通过图形界面输出第二组件;其中,图形界面还包括用于指示第二组件排序的编号,编号位于预设区域内。
在一个可能的设计中,第一组件具有传感器;确定模块1302还用于根据传感器确定第一组件已发生故障。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
本申请实施例中所描述的各种说明性的逻辑单元和电路可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列(FPGA)或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本申请实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件单元、或者这两者的结合。软件单元可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包括这些改动和变型在内。
Claims (30)
1.一种故障检测方法,其特征在于,所述方法应用于计算机设备中,包括:
获取组件拓扑图,所述组件拓扑图用于描述所述计算机设备中的各个组件,以及各个组件之间的连接关系;
确定所述组件拓扑图中,与报错的第一组件具有连接关系的其他组件是否可能发生故障;
输出可能发生故障的第二组件,所述第二组件是所述其他组件和所述第一组件的子集。
2.如权利要求1所述的方法,其特征在于,所述组件拓扑图用于描述使用同一通信协议的组件之间的硬件连接关系。
3.如权利要求1或2所述的方法,其特征在于,所述输出所述第二组件包括:通过图形界面输出所述第二组件;
所述图形界面显示有所述组件拓扑图,所述组件拓扑包括多个节点标识,所述多个节点标识与所述计算机设备中的各个组件一一对应;在所述组件拓扑图中与所述第二组件对应的节点标识被高亮显示;或
所述图形界面显示所述计算机设备的各个组件的硬件实物图,所述硬件实物图包括多个控件,所述多个控件与所述计算机设备中的各个组件一一对应,每个所述控件用于显示一个组件的硬件;在所述硬件实物图中与所述第二组件相对应的控件被高亮显示。
4.如权利要求1-3任一项所述的方法,其特征在于,所述第二组件是通过神经网络模型确定的;其中,所述神经网络模型用于根据报错的组件确定与所述报错的组件具有连接关系的其他组件是否可能发生故障,以及可能发生故障的组件的排序。
5.如权利要求1-4任一项所述的方法,其特征在于,所述其他组件包括在所述组件拓扑图中,所述第一组件的上游组件以及所述第一组件的下游组件。
6.如权利要求1-5任一项所述的方法,其特征在于,确定所述组件拓扑图中,与报错的第一组件具有连接关系的其他组件是否可能发生故障,包括:
针对所述其他组件中的任意一个组件,若所述组件存在至少一个可能存在故障的下一级组件,则确定所述组件可能存在故障。
7.如权利要求1-6任一项所述的方法,其特征在于,所述第二组件的数量大于1,所述输出所述第二组件具体包括:
对多个所述第二组件发生故障的概率进行排序;
输出排序后的多个所述第二组件。
8.如权利要求7所述的方法,其特征在于,针对多个所述第二组件中的任意一个组件集合,所述组件集合包括一个父组件,以及所述父组件的一个或多个子组件;
对多个所述第二组件发生故障的概率进行排序,包括:
若所述父组件不具有传感器,且所述一个或多个子组件的数量大于1,则确定所述父组件发生故障的概率大于所述子组件发生故障的概率。
9.如权利要求7所述的方法,其特征在于,针对多个所述第二组件中的任意一个组件集合,所述组件集合包括一个父组件,以及所述父组件的一个或多个子组件;
对多个所述第二组件发生故障的概率进行排序,包括:
若所述父组件不具有传感器,且所述子组件的数量等于1,则确定所述父组件发生故障的概率与所述子组件发生故障的概率相同。
10.如权利要求7所述的方法,其特征在于,针对多个所述第二组件中的任意一个组件集合,所述组件集合包括一个父组件,以及所述父组件的一个或多个子组件;
对多个所述第二组件发生故障的概率进行排序,包括:
若所述父组件具有传感器,且所述父组件的传感器报错,则确定所述父组件发生故障的概率大于所述子级组件发生故障的概率。
11.如权利要求7所述的方法,其特征在于,针对多个所述第二组件中的任意一个组件集合,所述组件集合包括一个父组件,以及所述父组件的一个或多个子组件;
对多个所述第二组件发生故障的概率进行排序,包括:
若所述父组件具有传感器,且所述父组件的传感器未报错,且所述子组件的数量大于1,则确定所述父组件发生故障的概率大于所述子组件发生故障的概率。
12.如权利要求7所述的方法,其特征在于,针对多个所述第二组件中的任意一个组件集合,所述组件集合包括一个父组件,以及所述父组件的一个或多个子组件;
对多个所述第二组件发生故障的概率进行排序,包括:
若所述父组件具有传感器,且所述父组件的传感器未报错,且所述子组件的数量等于1,则确定所述父组件发生故障的概率小于所述子组件发生故障的概率。
13.如权利要求7-12任一项所述的方法,其特征在于,所述输出所述第二组件包括:通过图形界面输出所述第二组件;
所述图形界面还包括用于指示所述第二组件排序的编号,所述编号位于预设区域内。
14.如权利要求1-13任一项所述的方法,其特征在于,所述第一组件具有传感器;还包括:
根据所述传感器确定所述第一组件已发生故障。
15.一种故障检测装置,其特征在于,该装置应用于计算机设备中,包括:
获取模块,用于获取组件拓扑图,所述组件拓扑图用于描述所述计算机设备中的各个组件,以及各个组件之间的连接关系;
确定模块,用于确定所述组件拓扑图中,与报错的第一组件具有连接关系的其他组件是否可能发生故障;
输出模块,用于输出可能发生故障的第二组件,所述第二组件是所述其他组件和所述第一组件的子集。
16.如权利要求15所述的装置,其特征在于,所述组件拓扑图用于描述使用同一通信协议的组件之间的硬件连接关系。
17.如权利要求15或16所述的装置,其特征在于,所述输出模块具体用于通过图形界面输出所述第二组件;
其中,所述图形界面显示有所述组件拓扑图,所述组件拓扑包括多个节点标识,所述多个节点标识与所述计算机设备中的各个组件一一对应;在所述组件拓扑图中与所述第二组件对应的节点标识被高亮显示;或
所述图形界面显示所述计算机设备的各个组件的硬件实物图,所述硬件实物图包括多个控件,所述多个控件与所述计算机设备中的各个组件一一对应,每个所述控件用于显示一个组件的硬件;在所述硬件实物图中与所述第二组件相对应的控件被高亮显示。
18.如权利要求15-17任一项所述的装置,其特征在于,所述第二组件是通过神经网络模型确定的;其中,所述神经网络模型用于根据报错的组件确定与所述报错的组件具有连接关系的其他组件是否可能发生故障,以及可能发生故障的组件的排序。
19.如权利要求15-18任一项所述的装置,其特征在于,所述其他组件包括在所述组件拓扑图中,所述第一组件的上游组件以及所述第一组件的下游组件。
20.如权利要求15-19任一项所述的装置,其特征在于,所述确定模块具体用于针对所述其他组件中的任意一个组件,若所述组件存在至少一个可能存在故障的下一级组件,则确定所述组件可能存在故障。
21.如权利要求15-20任一项所述的装置,其特征在于,所述第二组件的数量大于1;
所述确定模块还用于对多个所述第二组件发生故障的概率进行排序;
所述输出模块还用于输出排序后的多个所述第二组件。
22.如权利要求21所述的装置,其特征在于,针对多个所述第二组件中的任意一个组件集合,所述组件集合包括一个父组件,以及所述父组件的一个或多个子组件;
所述确定模块具体用于,若所述父组件不具有传感器,且所述一个或多个子组件的数量大于1,则确定所述父组件发生故障的概率大于所述子组件发生故障的概率。
23.如权利要求21所述的装置,其特征在于,针对多个所述第二组件中的任意一个组件集合,所述组件集合包括一个父组件,以及所述父组件的一个或多个子组件;
所述确定模块具体用于,若所述父组件不具有传感器,且所述子组件的数量等于1,则确定所述父组件发生故障的概率与所述子组件发生故障的概率相同。
24.如权利要求21所述的装置,其特征在于,针对多个所述第二组件中的任意一个组件集合,所述组件集合包括一个父组件,以及所述父组件的一个或多个子组件;
所述确定模块具体用于,若所述父组件具有传感器,且所述父组件的传感器报错,则确定所述父组件发生故障的概率大于所述子级组件发生故障的概率。
25.如权利要求21所述的装置,其特征在于,针对多个所述第二组件中的任意一个组件集合,所述组件集合包括一个父组件,以及所述父组件的一个或多个子组件;
所述确定模块具体用于,若所述父组件具有传感器,且所述父组件的传感器未报错,且所述子组件的数量大于1,则确定所述父组件发生故障的概率大于所述子组件发生故障的概率。
26.如权利要求21所述的装置,其特征在于,针对多个所述第二组件中的任意一个组件集合,所述组件集合包括一个父组件,以及所述父组件的一个或多个子组件;
所述确定模块具体用于,若所述父组件具有传感器,且所述父组件的传感器未报错,且所述子组件的数量等于1,则确定所述父组件发生故障的概率小于所述子组件发生故障的概率。
27.如权利要求21-26所述的装置,其特征在于,所述输出模块具体用于通过图形界面输出所述第二组件;其中,所述图形界面还包括用于指示所述第二组件排序的编号,所述编号位于预设区域内。
28.如权利要求15-27任一项所述的装置,所述第一组件具有传感器;所述确定模块还用于根据所述传感器确定所述第一组件已发生故障。
29.一种计算设备,其特征在于,所述计算设备包括处理器和存储器;
所述存储器,用于存储计算机程序指令;
所述处理器执行调用所述存储器中的计算机程序指令执行如权利要求1至14中任一项所述的方法。
30.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质被计算设备执行时,所述计算设备执行上述权利要求1至14中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110732299.XA CN115542067A (zh) | 2021-06-30 | 2021-06-30 | 一种故障检测方法及装置 |
PCT/CN2022/092738 WO2023273637A1 (zh) | 2021-06-30 | 2022-05-13 | 一种故障检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110732299.XA CN115542067A (zh) | 2021-06-30 | 2021-06-30 | 一种故障检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115542067A true CN115542067A (zh) | 2022-12-30 |
Family
ID=84692487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110732299.XA Pending CN115542067A (zh) | 2021-06-30 | 2021-06-30 | 一种故障检测方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115542067A (zh) |
WO (1) | WO2023273637A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116009480A (zh) * | 2023-03-24 | 2023-04-25 | 中科航迈数控软件(深圳)有限公司 | 一种数控机床的故障监测方法、装置、设备及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117890504A (zh) * | 2023-12-27 | 2024-04-16 | 浙江富春江环保科技研究有限公司 | 二噁英检测设备运维系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5771274A (en) * | 1996-06-21 | 1998-06-23 | Mci Communications Corporation | Topology-based fault analysis in telecommunications networks |
GB0325560D0 (en) * | 2003-10-31 | 2003-12-03 | Seebyte Ltd | Intelligent integrated diagnostics |
US8635496B2 (en) * | 2008-08-04 | 2014-01-21 | Nec Corporation | Trouble analysis apparatus |
CN104796273B (zh) * | 2014-01-20 | 2018-11-16 | 中国移动通信集团山西有限公司 | 一种网络故障根源诊断的方法和装置 |
CN107633307B (zh) * | 2017-09-08 | 2021-08-31 | 国家计算机网络与信息安全管理中心 | 供配电系统根源告警检测方法、装置、终端及计算机存储介质 |
CN108494591A (zh) * | 2018-03-16 | 2018-09-04 | 北京京东金融科技控股有限公司 | 系统告警处理方法与装置 |
CN110493042B (zh) * | 2019-08-16 | 2022-09-13 | 中国联合网络通信集团有限公司 | 故障诊断方法、装置及服务器 |
CN110716842B (zh) * | 2019-10-09 | 2023-11-21 | 北京小米移动软件有限公司 | 集群故障检测方法和装置 |
CN111490897B (zh) * | 2020-02-27 | 2021-04-20 | 华中科技大学 | 一种针对复杂网络的网络故障分析方法和系统 |
-
2021
- 2021-06-30 CN CN202110732299.XA patent/CN115542067A/zh active Pending
-
2022
- 2022-05-13 WO PCT/CN2022/092738 patent/WO2023273637A1/zh active Application Filing
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116009480A (zh) * | 2023-03-24 | 2023-04-25 | 中科航迈数控软件(深圳)有限公司 | 一种数控机床的故障监测方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023273637A1 (zh) | 2023-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10649838B2 (en) | Automatic correlation of dynamic system events within computing devices | |
WO2023273637A1 (zh) | 一种故障检测方法及装置 | |
CN105468484B (zh) | 用于在存储系统中确定故障位置的方法和装置 | |
JP5535322B2 (ja) | バックエンドでの通信の規格がsasであるストレージシステム | |
US20200133758A1 (en) | Method, device, and computer program product for facilitating prediction of disk failure | |
WO2016082156A1 (zh) | 元数据的恢复方法及装置 | |
US7823016B2 (en) | Message analyzing apparatus, message analyzing method, and computer product | |
US20160342358A1 (en) | Storage control apparatus and storage system | |
CN107765994A (zh) | 在智能存储器装置内部执行数据擦除的方法 | |
CN111400121A (zh) | 一种服务器硬盘slot定位与维护方法 | |
US9983970B2 (en) | Redundant cable routing management in storage systems | |
CN110262870B (zh) | 利用dump文件定位异常的方法、装置、计算机设备及存储介质 | |
US10866875B2 (en) | Storage apparatus, storage system, and performance evaluation method using cyclic information cycled within a group of storage apparatuses | |
US10783042B2 (en) | System and method of assessing and managing storage device degradation | |
CN101963931A (zh) | 可扩展固件接口下的硬盘测试方法 | |
CN109861863B (zh) | 数据中心的连接故障确定方法、装置、电子设备和介质 | |
CN110399132B (zh) | 项目代码的维护方法、装置、计算机设备和存储介质 | |
CN111045948A (zh) | 模块间接口信号的检查方法、设备和存储介质 | |
CN113342651B (zh) | 一种用于测试用例缺陷与用例模糊关联关系的恢复方法 | |
US9934093B2 (en) | Control device, method of controlling a storage device, and storage system | |
CN112084097B (zh) | 一种磁盘告警方法及装置 | |
CN112380127B (zh) | 测试用例回归方法、装置、设备和存储介质 | |
CN113868137A (zh) | 埋点数据的处理方法、装置、系统和服务器 | |
CN108231134B (zh) | Ram良率补救方法及装置 | |
CN101136802A (zh) | 一种记录诊断数据的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |