CN115729778A - 一种事件驱动bmc的方法、系统、电子设备及存储介质 - Google Patents

一种事件驱动bmc的方法、系统、电子设备及存储介质 Download PDF

Info

Publication number
CN115729778A
CN115729778A CN202211361905.2A CN202211361905A CN115729778A CN 115729778 A CN115729778 A CN 115729778A CN 202211361905 A CN202211361905 A CN 202211361905A CN 115729778 A CN115729778 A CN 115729778A
Authority
CN
China
Prior art keywords
processing task
access request
monitoring data
processing
bmc
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
Application number
CN202211361905.2A
Other languages
English (en)
Inventor
董宜清
张秀波
袁传博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202211361905.2A priority Critical patent/CN115729778A/zh
Publication of CN115729778A publication Critical patent/CN115729778A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种事件驱动BMC的方法、系统、电子设备及存储介质,本发明属于服务器故障监测技术领域。该方法应用于BMC,包括:接收对目标设备的访问请求;根据所述访问请求,确定与所述访问请求对应的处理任务;执行所述处理任务,获得所述处理任务对应的监测数据;将所述监测数据返回至发送所述访问请求的发送模块。旨在避免BMC资源浪费,以及提高服务器的硬件设备的性能。

Description

一种事件驱动BMC的方法、系统、电子设备及存储介质
技术领域
本发明涉及服务器故障监测技术领域,尤其涉及一种事件驱动BMC的方法、系统、电子设备及存储介质。
背景技术
随着移动互联网的发展,各大互联网厂商对服务器的需求不断增大,BMC作为服务器的管理控制单元,对服务器的正常运行有着至关重要的作用。目前基板管理控制器BMC(Baseboard Management Controller)对服务硬件设备的监控采用的都是轮询监控方式,即无论是否需要硬件设备信息,BMC都会去轮询访问硬件设备。这种无目的的轮询方式,一方面会造成BMC资源浪费,另一方面频繁访问硬件会造成一些硬件设备性能下降。
发明内容
有鉴于此,本发明提供一种事件驱动BMC的方法、系统、电子设备及存储介质。旨在避免BMC资源浪费,以及提高硬件设备的性能。
在本发明实施例的第一方面,提供了一种事件驱动BMC的方法,所述方法应用于BMC,所述方法包括:
接收对目标设备的访问请求;
根据所述访问请求,确定与所述访问请求对应的处理任务;
执行所述处理任务,获得所述处理任务对应的监测数据;
将所述监测数据返回至发送所述访问请求的发送模块。
可选的,所述根据所述访问请求,确定与所述访问请求对应的处理任务,包括:
根据所述访问请求,确定所述访问请求对应的处理任务的优先级;
根据所述优先级和所述访问请求,确定与所述访问请求对应的包括所述优先级的处理任务。
可选的,执行所述处理任务,获得所述处理任务对应的监测数据之前,所述方法还包括:
确定所述访问请求对应的处理任务与其他处理任务的互斥关系;
在所述其他处理任务中具有与所述处理任务互斥的待处理任务时,在所述处理任务执行完成并释放后,执行所述与所述处理任务互斥的待处理任务。
可选的,所述将所述监测数据返回至发送所述访问请求的发送模块,包括:
将监测数据存储至共享内存;
通过所述共享内存将所述监测数据返回至发送所述访问请求的发送模块。
可选的,所述将所述监测数据返回至发送所述访问请求的发送模块,包括:
将监测数据存储至共享内存;
通过对所述处理任务的执行结果进行解析,确定所述处理任务是否正确执行;
在所述处理任务正确执行时,通过所述共享内存将所述监测数据返回至发送所述访问请求的发送模块;
在所述处理任务未正确执行时,继续执行步骤:执行所述处理任务,获得所述处理任务对应的监测数据。
可选的,所述方法还包括:
设定重复执行所述处理任务的预设次数;
所述处理任务在重复执行预设次数均未得到正确执行结果时,停止所述处理任务的执行,并进行异常预警。
可选地,所述方法还包括:
在预设时长内未接收到对目标设备的相关监测数据的访问请求时,创建并执行与所述相关监测数据对应的处理任务,获得对应的监测数据;
通过对获得的监测数据进行解析,确定获得的监测数据是否异常。
可选地,所述方法还包括:
在预设时长内未接收到对目标设备的相关监测数据的访问请求时,获取历史发送所述对目标设备的相关监测数据的访问请求的发送模块列表;
确定所述发送模块列表中的各个发送模块是否正确运行。
在本发明实施例的第二方面,提供了一种事件驱动BMC的系统,所述系统包括:
事件处理器,用于接收对目标设备的访问请求,以及,用于根据所述访问请求,确定与所述访问请求对应的处理任务;
任务调度器,用于接收所述事件处理器发送的所述处理任务,并将所述处理任务发送给任务处理单元;
任务处理单元,用于执行所述处理任务,获得所述处理任务对应的监测数据,并将所述监测数据返回至发送所述访问请求的发送模块。
在本发明实施例的第三方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现本发明第一方面提供的一种事件驱动BMC的方法的步骤。
在本发明实施例的第四方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明第一方面所述的一种事件驱动BMC的方法。
针对在先技术,本发明具备如下优点:
本发明实施例提供的一种事件驱动BMC的方法,对于需要获取到相关监测数据的模块,通过发送访问请求,通过执行该访问请求对应的处理任务以获得相关监测数据,并将获取到的监测数据反馈给发送该访问请求的模块,以使得对于一些需要用到的可能性较低的监测数据,通过本发明的通过发送访问请求,以访问事件驱动的方式来获取到该监测数据,而在一个BMC的大的轮询监测过程中不再去获取到这类监测数据,这样可以有效减少BMC资源的浪费,同时对这类监测数据所对应的硬件设备的访问次数也将得到明显降低,从而还可有效提高这些硬件设备的性能。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的一种事件驱动BMC的方法的流程图;
图2为本发明实施例提供的一种事件驱动BMC的方法的另一流程图;
图3为本发明实施例提供的一种事件驱动BMC的系统的示意图;
图4为本发明实施例提供的一种电子设备的示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。
在对本发明进行说明之前,先对本发明提出的背景进行说明,目前基板管理控制器BMC(Baseboard Management Controller)对服务硬件设备的监控采用的都是轮询监控方式,即无论是否需要硬件设备信息,BMC都会去轮询访问硬件设备。这种无目的的轮询方式,一方面会造成BMC资源浪费,另一方面频繁访问硬件会造成一些硬件设备性能下降。有鉴于此,本发明提出一种新的BMC监控机制,旨在通过事件来驱动BMC执行监控任务。以使得对于一些需要用到的可能性较低的监测数据,通过本发明的通过发送访问请求,以访问事件驱动的方式来获取到该监测数据,而在一个BMC的大的轮询监测过程中不再去获取到这类监测数据,这样可以有效减少BMC资源的浪费,同时对这类监测数据所对应的硬件设备的访问次数也将得到明显降低,从而还可有效提高这些硬件设备的性能。
图1为本发明实施例提供的一种事件驱动BMC的方法的流程图,如图1所示,该方法应用于BMC,该方法包括:
步骤S101:接收对目标设备的访问请求;
步骤S102:根据所述访问请求,确定与所述访问请求对应的处理任务;
步骤S103:执行所述处理任务,获得所述处理任务对应的监测数据;
步骤S104:将所述监测数据返回至发送所述访问请求的发送模块。
在本发明的实施例中,首先在基板管理控制器BMC(Baseboard ManagementController)中创建多个应用,包括事件处理器、任务调度器、任务处理单元等。
在本发明的实施例中,步骤S101具体包括:首先由想要获取到相关目标设备的监测数据的服务器模块向基板管理控制器BMC(Baseboard Management Controller)中的事件处理器发送该监测数据对应的访问请求,由基板管理控制器BMC(Baseboard ManagementController)中的事件处理器接收到该访问请求。其中,服务器模块至少包括ipmi进程(智能平台管理接口,Intelligent Platform Management Interface)、风扇调度进程、WEB服务进程等;相关目标设备属于服务器中的各个硬件设备,各个硬件设备至少包括CPU(中央处理器,central processing unit)、内存、PCIE设备(peripheral componentinterconnect express相关设备)等。
在本发明的实施例中,步骤S102具体包括:在基板管理控制器BMC(BaseboardManagement Controller)中的事件处理器接收到该访问请求后,由事件处理器解析该访问请求,并根据对该访问请求的解析结果,创建与该访问请求对应的处理任务。
在本发明的实施例中,步骤S103具体包括:基板管理控制器BMC(BaseboardManagement Controller)中的事件处理器将创建的处理任务发送至基板管理控制器BMC(Baseboard Management Controller)中的任务调度器,任务调度器接收到该处理任务后,将该处理任务分发给基板管理控制器BMC(Baseboard Management Controller)中的任务处理单元,由任务处理单元处理该处理任务,以获得处理任务对应的监测数据。
在本发明的实施例中,步骤S104具体包括:基板管理控制器BMC(BaseboardManagement Controller)中的任务处理单元处理该处理任务,获得该处理任务对应的监测数据后,将该监测数据返回至发送该访问请求的服务器模块。
示例地,在服务器中的风扇调度进程这一服务器模块想要获取到服务器中的CPU这一目标设备的温度监测数据时。此时由服务器中的风扇调度进程向BMC中的事件处理器发出获取服务器中的目标设备CPU的温度监测数据的访问请求。BMC中的事件处理器在接收到由服务器中的风扇调度进程发出的想要获取到服务器中的目标设备CPU的温度监测数据的访问请求后,对该访问请求进行解析,得到相应的解析结果。根据获得的该解析结果,由BMC中的事件处理器创建服务器中的风扇调度进程获取服务器中的目标设备CPU的温度监测数据的处理任务。在服务器中的风扇调度进程获取服务器中的目标设备CPU的温度监测数据的处理任务创建完成后,BMC中的事件处理器将该处理任务发送至BMC中的任务调度器,在BMC中的任务调度器接收到该处理任务后,将该处理任务分发给BMC中的任务处理单元。在BMC中的任务处理单元接收到分发的该处理任务后,对该处理任务进行处理,也就是获取到服务器中的目标设备CPU的温度监测数据,并在获取到该服务器中的目标设备CPU的温度监测数据后,将该服务器中的目标设备CPU的温度监测数据返回至发送该访问请求的服务器中的风扇调度进程,以便于服务器中的风扇调度进程基于该服务器中的目标设备CPU的温度监测数据进行后续的风扇调度工作。
由此,本发明所提供的一种事件驱动BMC的方法,对于需要获取到服务器中的硬件设备的相关监测数据的服务器中的相关模块,通过发送访问请求,通过执行该访问请求对应的处理任务以获得服务器中的硬件设备的相关监测数据,并将获取到的相关监测数据反馈给发送该访问请求的服务器中的相关模块,以使得对于一些需要用到的可能性较低的监测数据,通过本发明的通过发送访问请求,以访问事件驱动的方式来获取到该监测数据,而在一个BMC的大的轮询监测过程中不再去获取到这类监测数据,这样可以有效减少BMC资源的浪费,同时对这类监测数据所对应的硬件设备的访问次数也将得到明显降低,从而还可有效提高这些硬件设备的性能。同时,以往BMC通过轮询监测的方式获取相关监测数据的监测机制,在服务器的一些模块想要立刻获取到该服务器的一些硬件设备的相关监测数据时,无法立刻获取到当前时刻的该相关监测数据,从而时效性不足。而通过本发明的实施方式,对于服务器中的一些模块想要立刻获取到服务器的一些硬件设备的相关监测数据时,可以通过该服务器中的一些模块立刻发送获取到该服务器中的一些硬件设备的相关监测数据的访问请求,来获取到当前时刻的该相关监测数据,以使得BMC监控具有更好的时效性。
在本发明中,所述根据所述访问请求,确定与所述访问请求对应的处理任务,包括:根据所述访问请求,确定所述访问请求对应的处理任务的优先级;根据所述优先级和所述访问请求,确定与所述访问请求对应的包括所述优先级的处理任务。
在本发明的实施例中,在上述本发明的第一个实施方式的基础上,由于是通过发送访问请求,以创建对应的访问事件来驱动BMC执行特定的监测任务,也就是上述提到的处理任务。而这种实施方式可以通过服务器中的模块发送访问请求来针对性地只对某一个硬件设备,或某几个硬件设备进行相应的监测任务,而在此过程中的一段时间内势必会存在多个监测任务,一种实现方式为:按BMC中的任务调度器接收到处理任务的顺序将各个处理任务按顺序依次分发给BMC中的任务处理单元,由BMC中的处理单元按BMC中的任务调度器接收到处理任务的顺序执行处理任务;另一种实现方式为:BMC中的任务调度器在该一段时间内接收到的多个处理任务中,处理任务之间的紧急程度是不同的,对于紧急程度更高的处理任务,对其进行先处理将可以使得BMC的监控效果更佳,因此本发明在根据访问请求确定该访问请求对应的处理任务时,为该处理任务创建对应的优先级,对于紧急程度更高的处理任务,为其分配更高的优先级,以使得在一段时间内对处理任务进行处理器,优先级更高的处理任务能够更先被执行。
具体地,在服务器中的模块发送对服务器中的目标设备的访问请求时,在该访问请求中添加该访问请求对应的处理任务的处理优先级,在BMC中的事件处理器接收到该访问请求,并对其进行解析后,确定到该访问请求对应的处理任务的处理优先级,然后创建与该访问请求对应的包括该优先级的处理任务。
示例地,BMC中的任务调度器在一段时间内接收到由BMC中的事件处理器发送来的多个包括优先级的处理任务,其中多个包括优先级的处理任务中处理任务A的优先级高于处理任务B的优先级,而实际上BMC中的任务调度器先接收到的处理任务B,再接收到的处理任务B,此时根据优先级确定处理任务A和处理任务B的执行顺序为先执行处理任务A,再执行处理任务B。
在本发明中,执行所述处理任务,获得所述处理任务对应的监测数据之前,所述方法还包括:确定所述访问请求对应的处理任务与其他处理任务的互斥关系;在所述其他处理任务中具有与所述处理任务互斥的待处理任务时,在所述处理任务执行完成并释放后,执行所述与所述处理任务互斥的待处理任务。
在本发明的实施例中,在一段时间内BMC中的任务调度器可能同时接收到由服务器中的多个模块发送的相同的处理任务,而为了避免将该相同的处理任务的执行结果发送给该多个服务器,导致服务器接收到的执行结果,并不是通过对自身发送的访问请求对应的处理任务进行执行,而得到的执行结果,从而导致向该服务器中的多个模块返回的监测数据出现混乱,本发明通过对每个处理任务进行上锁,以使得对一个处理任务的执行得到的监测数据只能返回给该处理任务的访问请求所对应的服务器中的模块,而其他与该处理任务相同的处理任务只能通过重新执行该其他处理任务来获得相应的监测数据。
具体地,在执行处理任务,获得所述处理任务对应的监测数据之前,首先确定该处理任务与其他处理任务的互斥关系,以确定BMC中的任务调度器中是否存在与该处理任务互斥的其他处理任务,也就是是否存在其他处理任务也需要获得与该处理任务相同类型的监测数据。若存在这样的其他处理任务,则为该处理任务上锁,在该处理任务执行完成并释放后,再执行与该处理任务存在互斥的待处理任务。
示例地,在一段时间内,BMC中的任务调度器接收到了多个处理任务,分别为处理任务a和处理任务b,处理任务a是基于服务器中的模块1发送的访问请求创建的,处理任务b是基于服务器中的模块2发送的访问请求创建的,BMC中的任务调度器接收到的处理任务a优先级高于处理任务b,同时处理任务a和处理任务b都是想要获取到服务器中的硬件设备3的温度监测数据,此时BMC中的任务调度器在需要将处理任务a发送至任务处理单元进行执行之前,先判断自身接收到的所有处理任务中是否有与处理任务a互斥的其他处理任务,而此时存在处理任务b与处理任务a互斥,此时BMC的任务调度器为处理任务a上锁,以使得BMC中的任务处理单元在执行处理任务a得到的相关监测数据只能返回给该处理任务a对应的服务器中的模块1,而在处理任务a执行完成并释放后,再在后续的过程中执行处理任务b,来获得相关监测数据,以避免由于处理任务a和处理任务b是需要获得相同类型的监测数据,而导致原本是执行处理任务a得到的监测数据返回给了处理任务b对应的服务器中的模块2。
在本发明中,所述将所述监测数据返回至发送所述访问请求的发送模块,包括:将监测数据存储至共享内存;通过所述共享内存将所述监测数据返回至发送所述访问请求的发送模块。
在本发明的实施例中,在BMC中的任务处理单元执行相关处理任务得到对应的监测数据后,为留存监测数据,以便于后续管理人员可以通过查询历史监测数据来确定服务器的各个硬件设备是否存在异常的异常情况,本发明在BMC中的任务处理单元执行相关处理任务得到对应的监测数据后,将得到的监测数据存储至共享内存或数据库中,再通过所述共享内存或数据库向服务器中的各个模块返回对应的监测数据。
在本发明中,所述将所述监测数据返回至发送所述访问请求的发送模块,包括:将监测数据存储至共享内存;通过对所述处理任务的执行结果进行解析,确定所述处理任务是否正确执行;在所述处理任务正确执行时,通过所述共享内存将所述监测数据返回至发送所述访问请求的发送模块;在所述处理任务未正确执行时,继续执行步骤:执行所述处理任务,获得所述处理任务对应的监测数据。
在本发明的实施例中,上述实施方式中,在通过BMC中的任务处理单元执行相应的处理任务后,就会将监测数据存储至共享内存或数据库中,然后通过共享内存或数据库将监测数据返回至对应的服务器中的模块。而在此过程中,BMC中的任务处理单元在处理任务时,处理任务在执行过程中存在异常,导致处理任务并未得到正确执行,因此此时获得的该处理任务对应的监测数据也就存在异常,从而导致向对应的服务器中的相关模块返回了异常的监测数据,从而导致服务器中的相关模块根据返回的异常监测数据执行错误的控制操作。
为避免该问题的发生,本发明在基板管理控制器BMC(Baseboard ManagementController)中还创建跟踪处理单元,用于确定任务处理单元是否正确执行处理任务,在BMC中的任务处理单元未正确执行处理任务时,向BMC中的事件处理器返回未正确执行处理任务的结果,此时BMC中的事件处理器再次发送该处理任务给BMC中的任务调度器,BMC中的任务调度器再根据该处理任务的优先级和互斥关系,控制BMC中的任务处理单元处理该处理任务。并在BMC中的任务处理单元再一次处理该处理任务后,继续通过BMC中的跟踪处理单元确定BMC中的任务处理单元是否正确执行了该再一次的处理任务。在该再一次的处理任务正确执行后,将该处理任务对应的监测数据存储至共享内存或数据库,通过共享内存或数据库返回至该再一次的处理任务对应的服务器中的相关模块。在该再一次的处理任务仍未正确执行时,向BMC中的事件处理器返回该再一次的处理任务仍未正确执行的结果,由BMC中的事件处理器再次向BMC中的任务调度器发送一次该处理任务,后续的执行过程与上述说明的过程相同在此不再赘述,如此循环,直至处理任务执行成功为止。
在本发明中,所述方法还包括:设定重复执行所述处理任务的预设次数;所述处理任务在重复执行预设次数均未得到正确执行结果时,停止所述处理任务的执行,并进行异常预警。
在本发明的实施例中,在一个处理任务无法正确执行时,可通过本发明的上述实施方式进行重试,以使得得到该一个处理任务对应的正确监测数据,而在实际执行过程中,在服务器的一些硬件设备存在故障时,可能导致该一个处理任务一直无法正确执行,而如果一直对该一个处理任务进行重试,将导致其他可以正常执行的处理任务的执行受到影响。为避免该问题的发生,本发明预设每个处理任务重复执行的预设次数。在一个处理任务在连续预设次数的重复执行后,仍旧无法正确执行时,则终止对该处理任务的执行,并继续后续的其他处理任务的执行,同时记录被终止的该处理任务的相关日志信息,并向管理人员进行告警,以告知管理人员该监测过程中,该处理任务无法正确执行,以便于管理人员可以通过查询执行日志信息来确定并解决导致该处理任务无法正确执行的原因。
应当理解的是,不同的处理任务可以重复执行的预设次数可根据实际应用需求进行设定为不同的取值,在此不做具体限定。例如,对于处理任务1,可以预设该处理任务1的重复执行的预设次数为3次;对于处理任务2,可以预设该处理任务2的重复执行的预设次数为5次等。
具体地,预设各种类型的处理任务可以重复执行的预设次数。在各个处理任务处理完成后,通过BMC中的跟踪处理单元确定该次处理任务是否正确执行,以及未正确执行的次数。在正确执行时,则终止该处理任务的重复执行,在重复执行预设次数后仍未正确执行时,则终止该处理任务的执行,并记录相关的处理日志和向管理人员进行告警,以告知管理人员该监测过程中,该处理任务无法正确执行,以便于管理人员可以通过查询执行日志信息来确定并解决导致该处理任务无法正确执行的原因。
在本发明中,所述方法还包括:在预设时长内未接收到对目标设备的相关监测数据的访问请求时,创建并执行与所述相关监测数据对应的处理任务,获得对应的监测数据;通过对获得的监测数据进行解析,确定获得的监测数据是否异常。
在本发明的实施例中,由于本发明在BMC通过轮询进行故障监测的基础上,引入事件驱动的故障监测方式,对于一些需要用到的可能性较低的监测数据,通过本发明的通过发送访问请求,以访问事件驱动的方式来获取到该监测数据,而在一个BMC的大的轮询监测过程中不再去获取到这类监测数据,这样可以有效减少BMC资源的浪费,同时对这类监测数据所对应的硬件设备的访问次数也将得到明显降低,从而还可有效提高这些硬件设备的性能。而在此过程中,为避免长时间未接收到对一些目标设备的相关监测数据的访问请求,所导致的BMC一直不对该目标设备的相关监测数据进行监测获取,进而导致的该目标设备异常,本发明在长时间未接收到目标设备的相关监测数据的访问请求时,此时BMC需要主动对该目标设备的相关监测数据进行监测获取,以避免该目标设备的相关监测数据实际上已经是异常状态,而因为未接收到对其的访问请求导致BMC一直未对其进行监测。
具体地,在预设时长内未接收到对目标设备的相关监测数据的访问请求时,BMC主动创建对目标设备的相关监测数据进行监测获取的处理任务,然后执行该处理任务获得对应的监测数据,通过对获得的监测数据进行解析,确定获得的监测数据是否异常,在异常时及时进行告警。
示例地,风扇调度进程在预设时长内都未发送对目标设备CPU的温度进行监测获取的访问请求,同时其他进程在该预设时长内也未发送对目标设备CPU的温度进行监测获取的访问请求时,BMC主动创建对目标设备CPU的温度进行监测获取的处理任务,然后执行该处理任务获得对应的温度监测数据,通过对获得的温度监测数据进行解析,确定获得的温度监测数据是否异常,在异常时及时进行告警,以避免目标设备在异常状态下长时间工作导致更大的故障发生。
在本发明中,所述方法还包括:在预设时长内未接收到对目标设备的相关监测数据的访问请求时,获取历史发送所述对目标设备的相关监测数据的访问请求的发送模块列表;确定所述发送模块列表中的各个发送模块是否正确运行。
在本发明的实施例中,在长时间未接收到对一些目标设备的相关监测数据的访问请求时,可能是发送访问请求的服务器模块出现了异常,此时为保证及时对出现异常的服务器模块进行故障告警。在长时间未接收到对目标设备的相关监测数据的访问请求时,确定会发送该访问请求的所有发送模块,也就是会发送该访问请求的所有服务器模块,然后通过BMC对会发送该访问请求的所有服务器模块进行故障监测,以确定会发送该访问请求的所有服务器模块中是否均能正常运行,对于不能正常运行的服务器模块进行故障告警。
具体地,在预设时长内未接收到对目标设备的相关监测数据的访问请求时,获取历史发送过该访问请求的发送模块列表。通过BMC对发送模块列表中的各个发送模块进行监测,以确定发送模块列表中的各个发送模块是否能够正确运行。对于无法正常运行的发送模块进行异常告警。
在本发明的实施例中,图2为本发明实施例提供的一种事件驱动BMC的方法的另一流程图。如图2所示,在本发明的第一种实施方式中,在服务器中的模块1想要获取服务器中的硬件设备2的监测数据时,由服务器中的模块1向BMC中的事件处理器发送该监测数据对应的访问请求,在BMC中的事件处理器接收到该访问请求后,由BMC中的事件处理器解析该访问请求,并根据对该访问请求的解析结果,创建与该访问请求对应的处理任务。BMC中的事件处理器将创建的处理任务发送至BMC中的任务调度器,BMC中的任务调度器接收到该处理任务后,将该处理任务发送给BMC中的任务处理单元,由BMC中的任务处理单元处理该处理任务,以获得处理任务对应的监测数据。在BMC中的任务处理单元处理该处理任务,获得该处理任务对应的监测数据后,将该监测数据返回至发送该访问请求的服务器中的模块,以便于该服务器中的模块基于该监测数据进行后续的调度控制工作。
在本发明的第二种实施方式中,在服务器中的模块1向BMC中的事件处理器发送该监测数据对应的访问请求时,在该访问请求中添加该访问请求对应的处理任务的处理优先级,在BMC中的事件处理器接收到该访问请求并对其进行解析后,确定到该访问请求对应的处理任务的处理优先级,然后创建与该访问请求对应的包括该优先级的处理任务。BMC中的事件处理器将创建的该包括优先级的处理任务发送至BMC中的任务调度器,BMC中的任务调度器接收到该包括优先级的处理任务后,将该包括优先级的处理任务中的优先级,与BMC中的任务调度器中的其他待处理的处理任务的优先级进行比较,按照优先级的先后顺序将BMC中的任务调度器中的各个待处理的处理任务发送至BMC中的任务处理单元,由BMC中的任务处理单元按照优先级先后顺序处理各个待处理的处理任务,从而获得各个待处理的处理任务对应的监测数据。
在本发明的第三种实施方式中,在执行处理任务,获得处理任务对应的监测数据之前,首先确定BMC中的任务调度器中的当前准备进行处理的处理任务与其他处理任务的互斥关系,以确定BMC中的任务调度器中是否存在与该处理任务互斥的其他处理任务,也就是是否存在其他处理任务也需要获得与该处理任务相同类型的监测数据。若存在这样的其他处理任务,则为当前准备进行处理的处理任务上锁,在该当前准备进行处理的处理任务执行完成并释放后,再执行与该当前准备进行处理的处理任务存在互斥的待处理任务。
在本发明的第四种实施方式中,在BMC中的任务处理单元执行相关处理任务得到对应的监测数据后,为留存监测数据,以便于后续管理人员可以通过查询历史监测数据来确定服务器的各个硬件设备是否存在异常的异常情况,本发明在BMC中的任务处理单元执行相关处理任务得到对应的监测数据后,将得到的监测数据存储至共享内存或数据库中,再通过所述共享内存或数据库向服务器中的各个模块返回对应的监测数据。
在本发明的第五种实施方式中,在基板管理控制器BMC(Baseboard ManagementController)中创建跟踪处理单元,用于确定任务处理单元是否正确执行处理任务,也就是在BMC中的任务处理单元完成对处理任务的执行后,解析该处理任务的执行结果,在解析结果表征BMC中的任务处理单元未正确执行该处理任务时,向BMC中的事件处理器返回未正确执行处理任务的结果,此时BMC中的事件处理器再次发送该处理任务给BMC中的任务调度器,BMC中的任务调度器再根据该处理任务的优先级和互斥关系,控制BMC中的任务处理单元重新执行该处理任务。并在BMC中的任务处理单元重新完成对该处理任务的执行后,继续通过BMC中的跟踪处理单元确定BMC中的任务处理单元是否正确执行了该重新执行的处理任务。在该重新执行的处理任务正确执行后,将该重新执行的处理任务对应的监测数据存储至共享内存或数据库,通过共享内存或数据库返回至该重新执行的处理任务对应的服务器中的相关模块。在该重新执行的处理任务仍未正确执行时,向BMC中的事件处理器继续返回该重新执行的处理任务仍未正确执行的结果,由BMC中的事件处理器再次向BMC中的任务调度器发送一次该处理任务,后续的执行过程与上述说明的过程相同,在此不再赘述,如此循环,直至该处理任务正确执行为止。
在本发明的第六种实施方式中,在第五种实施方式的基础上增加对处理任务重复执行次数的设置,以使得在一个处理任务无法正确执行时,可通过本发明的该实施方式进行重试,来得到该一个处理任务对应的正确监测数据,同时在实际执行过程中,在服务器的一些硬件设备存在故障时,导致的该一个处理任务一直无法正确执行,通过设置重复执行的次数来避免该一个处理任务一直重试所导致的其他可以正常执行的处理任务的执行受到影响。具体地,预设各种类型的处理任务可以重复执行的预设次数,在各个处理任务处理完成后,通过BMC中的跟踪处理单元确定该次处理任务是否正确执行,以及未正确执行的次数。在一个处理任务在连续预设次数的重复执行过程中均无法正确执行时,则终止对该处理任务的执行,并继续后续的其他处理任务的执行,同时记录被终止的该处理任务的相关日志信息,并向管理人员进行告警,以告知管理人员该监测过程中,该处理任务无法正确执行,以便于管理人员可以通过查询执行日志信息来确定并解决导致该处理任务无法正确执行的原因。
由此,本发明所提供的一种事件驱动BMC的方法,对于需要获取到服务器中的硬件设备的相关监测数据的服务器中的相关模块,通过发送访问请求,通过执行该访问请求对应的处理任务以获得服务器中的硬件设备的相关监测数据,并将获取到的相关监测数据反馈给发送该访问请求的服务器中的相关模块,以使得对于一些需要用到的可能性较低的监测数据,通过本发明的通过发送访问请求,以访问事件驱动的方式来获取到该监测数据,而在一个BMC的大的轮询监测过程中不再去获取到这类监测数据,这样可以有效减少BMC资源的浪费,同时对这类监测数据所对应的硬件设备的访问次数也将得到明显降低,从而还可有效提高这些硬件设备的性能。同时,以往BMC通过轮询监测的方式获取相关监测数据的监测机制,在服务器的一些模块想要立刻获取到该服务器的一些硬件设备的相关监测数据时,无法立刻获取到当前时刻的该相关监测数据,从而时效性不足。而通过本发明的实施方式,对于服务器中的一些模块想要立刻获取到服务器的一些硬件设备的相关监测数据时,可以通过该服务器中的一些模块立刻发送获取到该服务器中的一些硬件设备的相关监测数据的访问请求,来获取到当前时刻的该相关监测数据,以使得BMC监控具有更好的时效性。
其次,本发明根据处理任务之间的紧急程度不同,为各个处理任务设置优先级,通过优先级来进行处理任务的执行,从而可以使得BMC的监控效果更佳。
同时,本发明通过确定在BMC中的任务调度器中是否有与当前准备进行处理的处理任务存在互斥关系的其他待处理任务,在存在这样的其他待处理任务时,为当前准备进行处理的处理任务进行上锁,来有效避免将该相同的处理任务的执行结果发送给多个服务器,导致服务器接收到的执行结果,并不是通过对自身发送的访问请求对应的处理任务进行执行,而得到的执行结果,从而导致向该服务器中的多个模块返回的监测数据出现混乱的问题发生。以使得对一个处理任务的执行得到的监测数据只能返回给该处理任务的访问请求所对应的服务器中的模块,而其他与该处理任务相同的处理任务只能通过重新执行该其他处理任务来获得相应的监测数据。
最终,本发明通过设置跟踪处理单元,以在处理任务执行异常,导致得到的该处理任务对应的监测数据异常情况下,能够及时控制任务处理单元重新执行该处理任务以获得对应的正常监测数据。同时,为避免处理任务已经完全无法正确执行时所导致的该处理任务占用处理资源,进行无效重复执行,从而影响其他可以正确执行的处理任务的执行,本发明设置各个处理任务各自可重复执行的预设次数,在处理任务在自身的可重复执行的预设次数内均未正确执行时,则直接终止该处理任务的执行,并继续后续的其他处理任务的执行,同时记录被终止的该处理任务的相关日志信息,并向管理人员进行告警,以告知管理人员该监测过程中,该处理任务无法正确执行,以便于管理人员可以通过查询执行日志信息来确定并解决导致该处理任务无法正确执行的原因。
在本发明实施例的第二方面,提供了一种事件驱动BMC的系统,图3为本发明实施例提供的一种事件驱动BMC的系统的示意图。如图3所示,所述系统300包括:
事件处理器301,用于接收对目标设备的访问请求,以及,用于根据所述访问请求,确定与所述访问请求对应的处理任务;
任务调度器302,用于接收所述事件处理器301发送的所述处理任务,并将所述处理任务发送给任务处理单元303;
任务处理单元303,用于执行所述处理任务,获得所述处理任务对应的监测数据,并将所述监测数据返回至发送所述访问请求的发送模块。
可选地,所述事件处理器301,还用于根据所述访问请求,确定所述访问请求对应的处理任务的优先级,以及还用于根据所述优先级和所述访问请求,确定与所述访问请求对应的包括所述优先级的处理任务。
可选地,所述任务调度器302,还用于确定所述访问请求对应的处理任务与其他处理任务的互斥关系,以及,还用于在所述其他处理任务中具有与所述处理任务互斥的待处理任务时,在所述处理任务执行完成并释放后,执行所述与所述处理任务互斥的待处理任务。
可选地,所述任务处理单元303,包括:
数据存储单元,用于将监测数据存储至共享内存;
数据反馈单元,用于通过所述共享内存将所述监测数据返回至发送所述访问请求的发送模块。
可选地,所述任务处理单元303,包括:
所述数据存储单元,用于将监测数据存储至共享内存;
跟踪处理单元,用于通过对所述处理任务的执行结果进行解析,确定所述处理任务是否正确执行;
数据反馈单元,用于在所述处理任务正确执行时,通过所述共享内存将所述监测数据返回至发送所述访问请求的发送模块;
循环执行单元,用于在所述处理任务未正确执行时,继续执行步骤:执行所述处理任务,获得所述处理任务对应的监测数据。
可选地,所述系统300还包括:
重复执行次数设定单元,用于设定重复执行所述处理任务的预设次数;
终止执行单元,用于所述处理任务在重复执行预设次数均未得到正确执行结果时,停止所述处理任务的执行,并进行异常预警。
可选地,所述系统300还包括:
第一监测单元,用于在预设时长内未接收到对目标设备的相关监测数据的访问请求时,创建并执行与所述相关监测数据对应的处理任务,获得对应的监测数据;
第一解析单元,用于通过对获得的监测数据进行解析,确定获得的监测数据是否异常。
可选地,所述系统300还包括:
发送模块列表获取单元,用于在预设时长内未接收到对目标设备的相关监测数据的访问请求时,获取历史发送所述对目标设备的相关监测数据的访问请求的发送模块列表;
异常监测单元,用于确定所述发送模块列表中的各个发送模块是否正确运行。
在本发明实施例的第三方面,还提供了一种电子设备,图4为本发明实施例提供的一种电子设备的示意图。如图4所示,所述一种电子设备包括处理器401、通信接口402、存储器403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信;
存储器403,用于存放计算机程序;
处理器401,用于执行存储器303上所存放的程序时,实现本发明第一方面提供的一种事件驱动BMC的方法的步骤。
在本发明实施例的第四方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明第一方面所述的一种事件驱动BMC的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (11)

1.一种事件驱动BMC的方法,其特征在于,所述方法应用于BMC,所述方法包括:
接收对目标设备的访问请求;
根据所述访问请求,确定与所述访问请求对应的处理任务;
执行所述处理任务,获得所述处理任务对应的监测数据;
将所述监测数据返回至发送所述访问请求的发送模块。
2.根据权利要求1所述的一种事件驱动BMC的方法,其特征在于,所述根据所述访问请求,确定与所述访问请求对应的处理任务,包括:
根据所述访问请求,确定所述访问请求对应的处理任务的优先级;
根据所述优先级和所述访问请求,确定与所述访问请求对应的包括所述优先级的处理任务。
3.根据权利要求1所述的一种事件驱动BMC的方法,其特征在于,执行所述处理任务,获得所述处理任务对应的监测数据之前,所述方法还包括:
确定所述访问请求对应的处理任务与其他处理任务的互斥关系;
在所述其他处理任务中具有与所述处理任务互斥的待处理任务时,在所述处理任务执行完成并释放后,执行所述与所述处理任务互斥的待处理任务。
4.根据权利要求1所述的一种事件驱动BMC的方法,其特征在于,所述将所述监测数据返回至发送所述访问请求的发送模块,包括:
将监测数据存储至共享内存;
通过所述共享内存将所述监测数据返回至发送所述访问请求的发送模块。
5.根据权利要求1所述的一种事件驱动BMC的方法,其特征在于,所述将所述监测数据返回至发送所述访问请求的发送模块,包括:
将监测数据存储至共享内存;
通过对所述处理任务的执行结果进行解析,确定所述处理任务是否正确执行;
在所述处理任务正确执行时,通过所述共享内存将所述监测数据返回至发送所述访问请求的发送模块;
在所述处理任务未正确执行时,继续执行步骤:执行所述处理任务,获得所述处理任务对应的监测数据。
6.根据权利要求5所述的一种事件驱动BMC的方法,其特征在于,所述方法还包括:
设定重复执行所述处理任务的预设次数;
所述处理任务在重复执行预设次数均未得到正确执行结果时,停止所述处理任务的执行,并进行异常预警。
7.根据权利要求1所述的一种事件驱动BMC的方法,其特征在于,所述方法还包括:
在预设时长内未接收到对目标设备的相关监测数据的访问请求时,创建并执行与所述相关监测数据对应的处理任务,获得对应的监测数据;
通过对获得的监测数据进行解析,确定获得的监测数据是否异常。
8.根据权利要求7所述的一种事件驱动BMC的方法,其特征在于,所述方法还包括:
在预设时长内未接收到对目标设备的相关监测数据的访问请求时,获取历史发送所述对目标设备的相关监测数据的访问请求的发送模块列表;
确定所述发送模块列表中的各个发送模块是否正确运行。
9.一种事件驱动BMC的系统,其特征在于,所述系统包括:
事件处理器,用于接收对目标设备的访问请求,以及,用于根据所述访问请求,确定与所述访问请求对应的处理任务;
任务调度器,用于接收所述事件处理器发送的所述处理任务,并将所述处理任务发送给任务处理单元;
任务处理单元,用于执行所述处理任务,获得所述处理任务对应的监测数据,并将所述监测数据返回至发送所述访问请求的发送模块。
10.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现如权利要求1-6任一所述的一种事件驱动BMC的方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的一种事件驱动BMC的方法。
CN202211361905.2A 2022-11-02 2022-11-02 一种事件驱动bmc的方法、系统、电子设备及存储介质 Pending CN115729778A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211361905.2A CN115729778A (zh) 2022-11-02 2022-11-02 一种事件驱动bmc的方法、系统、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211361905.2A CN115729778A (zh) 2022-11-02 2022-11-02 一种事件驱动bmc的方法、系统、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN115729778A true CN115729778A (zh) 2023-03-03

Family

ID=85294441

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211361905.2A Pending CN115729778A (zh) 2022-11-02 2022-11-02 一种事件驱动bmc的方法、系统、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115729778A (zh)

Similar Documents

Publication Publication Date Title
US8868986B2 (en) Relevant alert delivery in a distributed processing system with event listeners and alert listeners
US9419650B2 (en) Flexible event data content management for relevant event and alert analysis within a distributed processing system
Zheng et al. Co-analysis of RAS log and job log on Blue Gene/P
US9344381B2 (en) Event management in a distributed processing system
US5696701A (en) Method and system for monitoring the performance of computers in computer networks using modular extensions
CN108427616B (zh) 后台程序监控方法及监控装置
US8688769B2 (en) Selected alert delivery in a distributed processing system
US6418469B1 (en) Managing conditions in a network
US9021317B2 (en) Reporting and processing computer operation failure alerts
WO2019148727A1 (zh) 电子装置、基于redis的异常预警方法及存储介质
US6836881B2 (en) Remote tracing of data processing nodes in an asynchronous messaging network
CN109542718B (zh) 服务调用的监控方法、装置、存储介质及服务器
CN111427676A (zh) 一种机器人流程自动化任务处理方法及装置
CN113220433A (zh) 一种代理程序运行管理方法及系统
US20090089772A1 (en) Arrangement for scheduling jobs with rules and events
US11290330B1 (en) Reconciliation of the edge state in a telemetry platform
JP2003173272A (ja) 情報処理システム,情報処理装置及び保守センタ
CN115729778A (zh) 一种事件驱动bmc的方法、系统、电子设备及存储介质
CN114090268B (zh) 容器管理方法及容器管理系统
US20220141090A1 (en) System and method for managing clusters in an edge network
CN112214437B (zh) 一种存储设备及通信方法、装置、计算机可读存储介质
CN112913215B (zh) 用于管理与启用iot的设备上的对象相关联的操作的方法和系统
US20220129342A1 (en) Conserving computer resources through query termination
US11880266B2 (en) Malfunction monitor for computing devices
CN115700483A (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