一种监控进程动态加载方法、装置、设备及存储介质与流程

文档序号:33279862发布日期:2023-02-24 20:41阅读:27来源:国知局
一种监控进程动态加载方法、装置、设备及存储介质与流程

1.本发明涉及服务器技术领域,特别涉及一种监控进程动态加载方法、装置、设备及存储介质。


背景技术:

2.互联网的快速发展,也带来了服务器市场的繁荣。bmc(baseboard management controller,基板管理控制器)在服务器中承担监控管理服务器的作用。在服务器设备的监控管理过程中,有些设备是必须依赖开机上电才能有信息展示,而这些设备有的是在bmc的内核里是有驱动程序的。bmc的驱动程序里配置的内核设备树,只有在bmc启动的时候会进行调用以及去发现设备,而bmc启动的时候往往服务器还没有开机。这就面临一个问题:bmc启动的时候无法发现依赖开机的设备。


技术实现要素:

3.有鉴于此,本发明的目的在于提供一种监控进程动态加载方法、装置、设备及存储介质,能够根据当前机器上的真实的设备进行动态的加载和监控管理,而不需要bmc固定配置。依赖真实设备启动监控服务而不是依赖配置文件进行启动监控服务。其具体方案如下:
4.第一方面,本技术提供了一种监控进程动态加载方法,应用于服务器,包括:
5.启动基板管理控制器,并利用位于所述基板管理控制器的内核中的预设驱动代码探测当前是否存在在位设备,若存在,则通过所述内核确定所述在位设备处于连接状态并产生相应的热插拔事件;
6.若监听到所述内核产生所述热插拔事件,则获取所述在位设备的初始化后设备信息;
7.确定与所述在位设备对应的监控管理进程,并利用所述初始化后设备信息启动所述监控管理进程,以便利用所述监控管理进程对所述在位设备进行监控。
8.可选的,所述启动基板管理控制器之前,还包括:
9.编写各种待监控设备的驱动代码,并在内核设备树中完成对各种所述待监控设备的配置操作。
10.可选的,所述启动基板管理控制器之后,还包括:
11.启动监听所述服务器的成功开机信号的进程;
12.相应的,所述利用位于所述基板管理控制器的内核中的预设驱动代码探测当前是否存在在位设备,包括:
13.当监听到所述服务器的成功开机信号,则利用位于所述基板管理控制器的内核中的预设驱动代码探测当前是否存在第一类在位设备;所述第一类在位设备为在所述服务器开机后才能被发现的设备。
14.可选的,所述利用位于所述基板管理控制器的内核中的预设驱动代码探测当前是否存在在位设备,包括:
15.利用位于所述基板管理控制器的内核中的预设驱动代码探测当前是否存在第二类在位设备;所述第二类在位设备为在所述基板管理控制器启动后并且在所述服务器开机之前便能够被发现的设备。
16.可选的,所述获取所述在位设备的初始化后设备信息之前,还包括:
17.将利用所述预设驱动代码探测到的所述在位设备进行初始化,以得到所述在位设备的初始化后设备信息;所述初始化后设备信息包括设备类型、设备位置以及设备数目。
18.可选的,所述确定与所述在位设备对应的监控管理进程,并利用所述初始化后设备信息启动所述监控管理进程,以便利用所述监控管理进程对所述在位设备进行监控,包括:
19.将所述初始化后设备信息传递到监控管理设备,并通过所述监控管理设备启动与所述初始化后设备信息对应的所述在位设备的监控管理进程,以便利用所述监控管理进程对所述在位设备进行监控。
20.可选的,所述将所述初始化后设备信息传递到监控管理设备,并通过所述监控管理设备启动与所述初始化后设备信息对应的所述在位设备的监控管理进程,包括:
21.将所述初始化后设备信息传递到监控管理设备,并通过所述监控管理设备根据所述设备类型以及所述设备位置启动相应的所述监控管理进程,以便利用所述监控管理进程对所述在位设备进行监控。
22.第二方面,本技术提供了监控进程动态加载装置,应用于服务器,包括:
23.设备探测模块,用于启动基板管理控制器,并利用位于所述基板管理控制器的内核中的预设驱动代码探测当前是否存在在位设备,若存在,则通过所述内核确定所述在位设备处于连接状态并产生相应的热插拔事件;
24.信息获取模块,用于若监听到所述内核产生所述热插拔事件,则获取所述在位设备的初始化后设备信息;
25.监控启动模块,用于确定与所述在位设备对应的监控管理进程,并利用所述初始化后设备信息启动所述监控管理进程,以便利用所述监控管理进程对所述在位设备进行监控。
26.第三方面,本技术提供了一种电子设备,所述电子设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现前述监控进程动态加载方法。
27.第四方面,本技术提供了一种计算机可读存储介质,所述计算机程序被处理器执行时实现前述的监控进程动态加载方法。
28.由上可知,本技术在进行监控进程动态加载时,先启动基板管理控制器,并利用位于所述基板管理控制器的内核中的预设驱动代码探测当前是否存在在位设备,若存在,则通过所述内核确定所述在位设备处于连接状态并产生相应的热插拔事件;若监听到所述内核产生所述热插拔事件,则获取所述在位设备的初始化后设备信息;确定与所述在位设备对应的监控管理进程,并利用所述初始化后设备信息启动所述监控管理进程,以便利用所述监控管理进程对所述在位设备进行监控。可见,本技术通过使用驱动代码去发现设备,并对设备进行简单的初始化后,如果设备被发现并且被成功初始化,将会根据驱动实际识别到的设备,发出信号并唤醒监控管理进程,并能够发现依赖开机的设备,根据驱动代码发现
的固件类型启动不同的固件监控进程,动态的实现监控设备的加载和监控。
附图说明
29.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
30.图1为本技术提供的一种监控进程动态加载方法流程图;
31.图2为本技术提供的一种监控进程动态加载方法时序图;
32.图3为本技术提供的一种具体的监控进程动态加载方法流程图;
33.图4为本技术提供的一种具体的监控进程动态加载方法流程图;
34.图5为本技术提供的一种监控进程动态加载装置结构示意图;
35.图6为本技术提供的一种电子设备结构图。
具体实施方式
36.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
37.现有技术中,是将设备的类型、地址位置固定,开机以后就去读取,读取不到就设置不在位,且需要根据情况更换配置。为了解决上述问题,本技术提供了一种监控进程动态加载方法,能够动态的通过驱动代码去发现设备,可以使用户程序更简单,不必固定于一个配置,只需在内核发现设备简单初始化后,应用程序根据真实的设备启动对应的监控管理进程。
38.参见图1所示,本发明实施例公开了一种监控进程动态加载方法,应用于服务器,包括:
39.步骤s11、启动基板管理控制器,并利用位于所述基板管理控制器的内核中的预设驱动代码探测当前是否存在在位设备,若存在,则通过所述内核确定所述在位设备处于连接状态并产生相应的热插拔事件。
40.本实施例中,在启动基板管理控制器之前,需要给bmc即基板管理控制器监控的设备编写驱动代码,之后再启动bmc,在bmc启动之后利用位于所述基板管理控制器的内核中的预设驱动代码探测当前是否存在在位设备,如图2所示,内核启动,并辨认出设备连接同时产生一个热插拔事件。
41.步骤s12、若监听到所述内核产生所述热插拔事件,则获取所述在位设备的初始化后设备信息。
42.本实施例中,若监听到所述内核产生所述热插拔事件,则表示设备被发现,便获取所述在位设备的初始化后设备信息。需要指出的是,内核去发现设备的时候,会进行简单的初始化,内核驱动可能是个全功能的一类驱动,简单初始化后应用程序就会知道当前的设备是那种具体的设备,多少个具体的接口这样便能够发现的设备的具体信息进行精准的监
控。
43.步骤s13、确定与所述在位设备对应的监控管理进程,并利用所述初始化后设备信息启动所述监控管理进程,以便利用所述监控管理进程对所述在位设备进行监控。
44.本实施例中,通过获取所述在位设备的初始化后设备信息精准地确定与所述在位设备对应的监控管理进程。例如发现硬盘背板后,根据发现的硬盘背板型号进行启动监控硬盘背板进程,发现了12盘的前置背板,启动背板的监控传递12盘和前置等必须的信息到硬盘的监控管理进程,实现灵活的动态加载,不再固定写死一些参数。传统方法的方式是从上到下,在一种具体的实施例中,传统方法表现为一个机器固定好类型和位置,启动监控管理进程,等待开机,就去把固定位置固定类型的硬盘背板信息去取出来,读取不到就设置不在位。硬盘背板的驱动代码可能支持三种硬盘背板,一个机型搭配两种硬盘背板,更换了背板就需要更换配置。而本技术提供的方式是从下到上,使用本发明提出的动态加载的方法,机型只需要配置成满配,当开机后,使用驱动代码去发现设备,进行简单的初始化后,如果设备被发现并且被成功初始化,将会根据驱动实际识别到的设备,发出信号并唤醒监控管理进程。而不是监控管理进程先启动,一直等待开机,然后固定的去读取。
45.由上可知,本技术在进行监控进程动态加载时,先启动基板管理控制器,并利用位于所述基板管理控制器的内核中的预设驱动代码探测当前是否存在在位设备,若存在,则通过所述内核确定所述在位设备处于连接状态并产生相应的热插拔事件;若监听到所述内核产生所述热插拔事件,则获取所述在位设备的初始化后设备信息;确定与所述在位设备对应的监控管理进程,并利用所述初始化后设备信息启动所述监控管理进程,以便利用所述监控管理进程对所述在位设备进行监控。可见,本技术通过使用驱动代码去发现设备,并对设备进行简单的初始化后,如果设备被发现并且被成功初始化,将会根据驱动实际识别到的设备,发出信号并唤醒监控管理进程,并能够发现依赖开机的设备,根据驱动代码发现的固件类型启动不同的固件监控进程,动态的实现监控设备的加载和监控。
46.基于上述实施例可知,本技术通过使用驱动代码去发现设备,根据驱动代码发现的固件类型启动不同的固件监控进程,动态的实现监控设备的加载和监控,下面便对设备的发现过程进行具体的描述。
47.参见图3所示,本发明实施例公开了一种具体的监控进程动态加载方法,应用于服务器,包括:
48.步骤s21、编写各种待监控设备的驱动代码,并在内核设备树中完成对各种所述待监控设备的配置操作。
49.本实施例中,在服务器的设备的监控管理过程中,设备在bmc的内核里是有驱动程序的,并且bmc的驱动程序里配置的内核设备树,故先给需要监控的设备编写程序存储在bmc的内核中,能够在监控时调用这些驱动代码去发现设备。并根据可能的最大配置在内核设备树里全部配置好,例如可能在bus1-channel0-7上配置硬盘背板,即此时的机型是满配,在更换背板时便不需要再更换配置,可以理解的是,服务器bmc在开发过程中可以使用最大配置进行编写代码,不同的机型烧录相同的固件。
50.步骤s22、启动基板管理控制器。
51.步骤s23、利用位于所述基板管理控制器的内核中的预设驱动代码探测当前是否存在第二类在位设备;所述第二类在位设备为在所述基板管理控制器启动后并且在所述服
务器开机之前便能够被发现的设备。
52.本实施例中,是在启动基板管理控制器,第一次利用位于所述基板管理控制器的内核中的预设驱动代码探测设备是否在位,这些设备是不依赖服务器开机上电才能有信息展示的设备,是在服务器未开机之前便够被发现的,即所述第二类在位设备为在所述基板管理控制器启动后并且在所述服务器开机之前便能够被发现的设备。需要指出的是,在内核去发现设备的时候,便会进行简单的初始化,简单初始化后应用程序就会知道当前的设备是那种具体的设备,多少个具体的接口。
53.步骤s24、启动监听所述服务器的成功开机信号的进程。
54.步骤s25、当监听到所述服务器的成功开机信号,则利用位于所述基板管理控制器的内核中的预设驱动代码探测当前是否存在第一类在位设备;所述第一类在位设备为在所述服务器开机后才能被发现的设备。
55.本实施例中,在bmc启动后,先使用内核的设备里的驱动,探测设备是否在位,这是第一次探测,能够探测在所述基板管理控制器启动后并且在所述服务器开机之前便能够被发现的设备,之后启动监听开机信号的进程,在监听到开机成功之后,便再次使用内核驱动去探测设备,这是第二次探测,能够利用位于所述基板管理控制器的内核中的预设驱动代码探测当前是否存在第一类在位设备;所述第一类在位设备为在所述服务器开机后才能被发现的设备。这样一来,所有的设备包括依赖开机开机上电才能有信息展示的设备都能够被探测到。
56.步骤s26、若存在,则通过所述内核确定所述在位设备处于连接状态并产生相应的热插拔事件。
57.由上可知,本技术通过在bmc启动后,先利用位于所述基板管理控制器的内核中的预设驱动代码探测当前是否存在第二类在位设备,之后再监听到开机成功的信号后,再次利用位于所述基板管理控制器的内核中的预设驱动代码探测当前是否存在第一类在位设备,进而能够充分地探测所有设备,不会遗漏依赖服务器开机的设备。
58.参见图4所示,本发明实施例公开了一种具体的监控进程动态加载方法,应用于服务器,包括:
59.步骤s31、启动基板管理控制器,并利用位于基板管理控制器的内核中的预设驱动代码探测当前是否存在在位设备,若存在,则通过所述内核确定所述在位设备处于连接状态并产生相应的热插拔事件。
60.步骤s32、将利用所述预设驱动代码探测到的所述在位设备进行初始化,以得到所述在位设备的初始化后设备信息;所述初始化后设备信息包括设备类型、设备位置以及设备数目。
61.本实施例中,利用内核中的所述预设驱动代码探测设备时,便会对设备进行简单的初始化,以得到所述在位设备的初始化后的设备信息,其中设备信息包括设备类型、设备位置以及设备数目。
62.步骤s33、若监听到所述内核产生所述热插拔事件,则获取所述在位设备的初始化后设备信息。
63.本实施例中,若监听到所述内核产生所述热插拔事件则代表设备被发现,若设备已经初始化成功,则获取所述在位设备的初始化后设备信息,所述初始化后设备信息包括
设备类型、设备位置以及设备数目。
64.步骤s34、将所述初始化后设备信息传递到监控管理设备,并通过所述监控管理设备启动与所述初始化后设备信息对应的所述在位设备的监控管理进程,以便利用所述监控管理进程对所述在位设备进行监控。
65.本实施例中,将所述初始化后设备信息传递到监控管理设备,并通过所述监控管理设备根据所述设备类型以及所述设备位置启动相应的所述监控管理进程,以便利用所述监控管理进程对所述在位设备进行监控。在传统方案中,监控管理流程为启动bmc之后,便启动前置背板(固定12盘)和后置背板(固定4盘)的监控进程,若当前服务器为开机状态,便进行监控管理,是一种根据配置文件去启动对应的监控管理进程的方法,且方法不够灵活,对设备的监控不够全面。通过本技术提供的动态加载监控的方法,能够根据真实的设备启动对应的监控管理进程,实现灵活的动态加载,不再固定写死一些参数。
66.由上可知,本技术通过使用驱动代码去发现设备,进行简单的初始化后,如果设备被发现并且被成功初始化,将会根据驱动实际识别到的设备,发出信号并唤醒监控管理进程。而不是监控管理进程先启动,一直等待开机,然后固定的去读取。能够根据驱动发现的固件类型启动不同的固件监控进程,动态的实现监控设备的加载和监控,而不需要bmc固定配置,依赖真实设备启动监控服务而不是依赖配置文件进行启动监控服务。
67.参见图5所示,本发明实施例公开了一种监控进程动态加载装置,应用于服务器,包括:
68.设备探测模块11,用于启动基板管理控制器,并利用位于所述基板管理控制器的内核中的预设驱动代码探测当前是否存在在位设备,若存在,则通过所述内核确定所述在位设备处于连接状态并产生相应的热插拔事件;
69.信息获取模块12,用于若监听到所述内核产生所述热插拔事件,则获取所述在位设备的初始化后设备信息;
70.监控启动模块13,用于确定与所述在位设备对应的监控管理进程,并利用所述初始化后设备信息启动所述监控管理进程,以便利用所述监控管理进程对所述在位设备进行监控。
71.由上可知,本技术在进行监控进程动态加载时,先启动基板管理控制器,并利用位于所述基板管理控制器的内核中的预设驱动代码探测当前是否存在在位设备,若存在,则通过所述内核确定所述在位设备处于连接状态并产生相应的热插拔事件;若监听到所述内核产生所述热插拔事件,则获取所述在位设备的初始化后设备信息;确定与所述在位设备对应的监控管理进程,并利用所述初始化后设备信息启动所述监控管理进程,以便利用所述监控管理进程对所述在位设备进行监控。可见,本技术通过使用驱动代码去发现设备,并对设备进行简单的初始化后,如果设备被发现并且被成功初始化,将会根据驱动实际识别到的设备,发出信号并唤醒监控管理进程,并能够发现依赖开机的设备,根据驱动代码发现的固件类型启动不同的固件监控进程,动态的实现监控设备的加载和监控。
72.在一些具体实施例中,所述设备探测模块11具体可以包括:
73.代码编写单元,用于编写各种待监控设备的驱动代码,并在内核设备树中完成对各种所述待监控设备的配置操作。
74.在一些具体实施例中,所述设备探测模块11具体可以包括:
75.进程监听单元,用于启动监听所述服务器的成功开机信号的进程;
76.第一设备探测单元,用于当监听到所述服务器的成功开机信号,则利用位于所述基板管理控制器的内核中的预设驱动代码探测当前是否存在第一类在位设备;所述第一类在位设备为在所述服务器开机后才能被发现的设备。
77.第二设备探测单元,用于利用位于所述基板管理控制器的内核中的预设驱动代码探测当前是否存在第二类在位设备;所述第二类在位设备为在所述基板管理控制器启动后并且在所述服务器开机之前便能够被发现的设备。
78.在一些具体实施例中,所述信息获取模块12具体可以包括:
79.设备初始化单元,用于将利用所述预设驱动代码探测到的所述在位设备进行初始化,以得到所述在位设备的初始化后设备信息;所述初始化后设备信息包括设备类型、设备位置以及设备数目。
80.在一些具体实施例中,所述监控启动模块13具体可以包括:
81.信息传递单元,用于将所述初始化后设备信息传递到监控管理设备,并通过所述监控管理设备启动与所述初始化后设备信息对应的所述在位设备的监控管理进程,以便利用所述监控管理进程对所述在位设备进行监控。
82.在一些具体实施例中,所述监控启动模块13具体可以包括:
83.监控进程启动单元,用于将所述初始化后设备信息传递到监控管理设备,并通过所述监控管理设备根据所述设备类型以及所述设备位置启动相应的所述监控管理进程,以便利用所述监控管理进程对所述在位设备进行监控。
84.进一步的,本技术实施例还公开了一种电子设备,图6是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本技术的使用范围的任何限制。
85.图6为本技术实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的监控进程动态加载方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
86.本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本技术技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
87.另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
88.其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是windows server、netware、unix、linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的监控进程动态加载方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
89.进一步的,本技术还公开了一种计算机可读存储介质,用于存储计算机程序;其
中,所述计算机程序被处理器执行时实现前述公开的监控进程动态加载方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
90.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
91.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
92.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
93.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
94.以上对本技术所提供的技术方案进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1