一种BMC的修复方法、装置以及介质与流程

文档序号:33279712发布日期:2023-02-24 20:39阅读:33来源:国知局
一种BMC的修复方法、装置以及介质与流程
一种bmc的修复方法、装置以及介质
技术领域
1.本技术涉及控制器技术领域,特别是涉及一种bmc的修复方法、装置以及介质。


背景技术:

2.存储控制器中基板管理控制器(baseboard management controller,bmc)负责监控各种硬件的温度、电压和功耗,并根据监控到数据调节控制器中风扇等硬件运行,保证存储控制器的平稳运行。bmc在运行过程中会出现各种问题,当出现问题时,目前通常采用刷新bmc全量镜像的方法来解决。
3.但是,该方法因为全量镜像传输耗时长,且需要重启bmc设备,总共耗时5~8分钟。因此当前方法存在两个问题:一方面比较耗时,另一方面在这5~8分钟内整个bmc不可用。
4.由此可见,如何避免在修复问题时bmc长时间不可用的情况,是本领域技术人员亟待解决的问题。


技术实现要素:

5.本技术的目的是提供一种bmc的修复方法、装置以及介质,以避免在修复问题时bmc长时间不可用的情况。
6.为解决上述技术问题,本技术提供一种bmc的修复方法,所述bmc使用全局功能驱动表中的功能函数来实现和管理业务功能,所述方法包括:
7.若所述bmc的原始功能函数出现问题,则根据出现的问题在本地数据库修复所述原始功能函数得到功能修复函数;
8.编译所述功能修复函数为运行时库,并将编译出的所述运行时库加载到所述bmc上;
9.在所述bmc的所述全局功能驱动表中用修复后的所述功能修复函数替换存在问题的所述原始功能函数。
10.优选地,所述在所述bmc的所述全局功能驱动表中用修复后的所述功能修复函数替换存在问题的所述原始功能函数之后,还包括:
11.在本地数据库中保存存在问题的所述原始功能函数。
12.优选地,所述在本地数据库中保存存在问题的所述原始功能函数之后,还包括:
13.在需要复现问题时,在所述bmc的所述全局功能驱动表中用存在问题的所述原始功能函数替换修复后的所述功能修复函数。
14.优选地,所述在所述bmc的所述全局功能驱动表中用修复后的所述功能修复函数替换存在问题的所述原始功能函数之后,还包括:
15.验证替换后的所述全局功能驱动表以确定所述原始功能函数的问题得到修复。
16.优选地,所述在所述bmc的所述全局功能驱动表中用修复后的所述功能修复函数替换存在问题的所述原始功能函数之后,还包括:
17.若用修复后的所述功能修复函数替换存在问题的所述原始功能函数之后问题没
有解决,则根据出现的问题继续在本地数据库修复所述功能修复函数并得到新的所述功能修复函数;
18.编译新的所述功能修复函数为所述运行时库,并将编译出的所述运行时库加载到所述bmc上;
19.在所述bmc的所述全局功能驱动表中用新的所述功能修复函数替换原有的所述功能修复函数。
20.优选地,按功能级别将所述全局功能驱动表分为不同级别的所述全局功能驱动表。
21.优选地,所述功能级别包括:功能、子功能、功能函数。
22.为解决上述技术问题,本技术还提供一种bmc的修复装置,所述bmc使用全局功能驱动表中的功能函数来实现和管理业务功能,所述装置包括:
23.第一修复模块,用于若所述bmc的原始功能函数出现问题,则根据出现的问题在本地数据库修复所述原始功能函数得到功能修复函数;
24.第一编译模块,用于编译所述功能修复函数为运行时库,并将编译出的所述运行时库加载到所述bmc上;
25.第一替换模块,用于在所述bmc的所述全局功能驱动表中用修复后的所述功能修复函数替换存在问题的所述原始功能函数。
26.优选地,所述bmc的修复装置还包括:保存模块,用于在所述bmc的所述全局功能驱动表中用修复后的所述功能修复函数替换存在问题的所述原始功能函数之后,在本地数据库中保存存在问题的所述原始功能函数。
27.优选地,所述bmc的修复装置还包括:第二替换模块,用于在本地数据库中保存存在问题的所述原始功能函数之后,在需要复现问题时,在所述bmc的所述全局功能驱动表中用存在问题的所述原始功能函数替换修复后的所述功能修复函数。
28.优选地,所述bmc的修复装置还包括:第二修复模块,用于在所述bmc的所述全局功能驱动表中用修复后的所述功能修复函数替换存在问题的所述原始功能函数之后,若用修复后的所述功能修复函数替换存在问题的所述原始功能函数之后问题没有解决,则根据出现的问题继续在本地数据库修复所述功能修复函数并得到新的所述功能修复函数;
29.第二编译模块,用于编译新的所述功能修复函数为运行时库,并将编译出的所述运行时库加载到所述bmc上;
30.第三替换模块,用于在所述bmc的所述全局功能驱动表中用新的所述功能修复函数替换原有的所述功能修复函数。
31.优选地,所述bmc的修复装置还包括:验证模块,用于在所述bmc的所述全局功能驱动表中用修复后的所述功能修复函数替换存在问题的所述原始功能函数之后,验证替换后的所述全局功能驱动表以确定所述原始功能函数的问题得到修复。
32.为解决上述技术问题,本技术还提供一种bmc的修复装置,包括:存储器,用于存储计算机程序;
33.处理器,用于执行计算机程序时实现上述bmc的修复方法的步骤。
34.为解决上述技术问题,本技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述bmc的修复方法
的步骤。
35.本技术所提供的bmc的修复方法,若bmc的原始功能函数出现问题,则根据出现的问题在本地修复原始功能函数得到功能修复函数,然后编译功能修复函数为运行时库,并将编译出的运行时库加载到bmc上,最后在bmc的全局功能驱动表中用修复后的功能修复函数替换存在问题的原始功能函数。本技术的bmc使用全局功能驱动表来实现和管理业务功能,当某个功能出现问题时,首先加载修复后业务功能模块库,然后替换存在问题的原来的功能模块的库即可实现问题的快速修复。因为是在线运行中功能直接替换,在此过程中无需重启bmc,可以大大提升bmc的可用性。
36.本技术还提供了一种bmc的修复装置和计算机可读存储介质,与上述方法对应,故具有与上述方法相同的有益效果。
附图说明
37.为了更清楚地说明本技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
38.图1为本技术实施例提供的一种bmc的修复方法的流程图;
39.图2为本技术实施例提供的一种bmc业务功能实现方式的示意图;
40.图3为本技术实施例提供的一种bmc动态修复问题机制的示意图;
41.图4为本技术实施例提供的bmc的修复装置的结构图;
42.图5为本技术另一实施例提供的bmc的修复装置的结构图。
具体实施方式
43.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本技术保护范围。
44.本技术的核心是提供一种bmc的修复方法、装置以及介质,以避免在修复问题时bmc长时间不可用的情况。
45.为了使本技术领域的人员更好地理解本技术方案,下面结合附图和具体实施方式对本技术作进一步的详细说明。
46.bmc负责监控各种硬件的温度、电压和功耗,并根据监控到数据调节控制器中风扇等硬件运行,保证存储控制器的平稳运行。bmc在运行过程中会出现各种问题,当出现问题时,目前通常采用刷新bmc全量镜像的方法来解决。但是,该方法因为全量镜像传输耗时长,且需要重启bmc设备,总共耗时5~8分钟。因此当前方法存在两个问题:一方面比较耗时,另一方面在这5~8分钟内整个bmc不可用。
47.基于上述问题,本技术提供一种bmc的修复方法,涉及存储控制器中bmc系统在运行中快速修复的问题,本技术提出使用运行态补丁快速修复问题的方法。使用该方法,只需要刷新bmc中问题功能代码即可修复问题,且不需要重启bmc,大大提高了问题的修复效率和系统可用性。其中,bmc使用全局功能驱动表中的功能函数来实现和管理业务功能,图1为
本技术实施例提供的一种bmc的修复方法的流程图;如图1所示,该方法包括如下步骤:
48.s10:若bmc的原始功能函数出现问题,则根据出现的问题在本地数据库修复原始功能函数得到功能修复函数。
49.s11:编译功能修复函数为运行时库,并将编译出的运行时库加载到bmc上。
50.s12:在bmc的全局功能驱动表中用修复后的功能修复函数替换存在问题的原始功能函数。
51.在实际应用中,bmc可提供对全局功能表的实时管理能力,支持全局功能表中功能的替换、恢复和删除等。图2为本技术实施例提供的一种bmc业务功能实现方式的示意图;如图2所示,包括:功能驱动表11、子功能驱动表12、功能函数驱动表13。bmc使用不同级别全局驱动表来管理和实现各种业务功能,第一级驱动表按大功能划分,对应功能驱动表11,具体包括功能1、功能2、功能3、功能4、功能5、功能6,实际应用时功能驱动表11中的功能的数量不作限定。第二级驱动表按子功能划分,对应子功能驱动表12,具体包括子功能1、子功能2、子功能3、子功能4、子功能5、子功能6,实际应用时子功能驱动表12中子功能的数量不作限定。一直类推直到函数级别的全局驱动表,对应功能函数驱动表13,具体包括功能函数1、功能函数2、功能函数3、功能函数4、功能函数5、功能函数6,实际应用时功能函数驱动表13中功能函数的数量也不作限定,功能函数驱动表13中的各功能函数可能出现问题,本技术提供的方案是将出现问题的功能函数进行替换。驱动表在实现上是一组函数指针列表,bmc初始化时,加载默认的功能函数指针到功能驱动表中,可根据指针找到对应的功能函数。其中,默认的功能函数提供原始的功能实现。
52.图3为本技术实施例提供的一种bmc动态修复问题机制的示意图;bmc提供动态驱动表管理能力,包含功能的替换、恢复和删除功能;如图3所示,当功能函数驱动表13中的功能函数1存在问题需要修复时,首先在本地修改原始功能函数,并重命名函数名为功能修复函数1,然后编译修改后的功能函数为运行时库,并将编译出的运行时库加载到bmc上,接着将全局功能驱动表中的原始的功能函数1用修复后的功能修复函数1进行替换。对于任何级别功能驱动表均可采用类似的功能替换,反之如果要复现问题时,可以将原来的功能函数1替换回去。如果一次替换后问题没有解决,可以进行反复替换和恢复操作直到问题最终解决。在此过程中均不需要重启bmc,替换后即可进行问题是否修复的验证。因为是在线运行中功能直接替换不需要重启,时间上属于秒级,问题修复时间大大提升。本技术是在线运行中对功能直接替换,在此过程中无需重启bmc,可以大大提升bmc的可用性。
53.基板管理控制器bmc是嵌入在计算机(通常是服务器)主板上的专用微控制器,bmc负责管理系统管理软件和平台硬件之间的接口。用于实现命令,提供访问接口,以及提供标准化的看门狗定时器接口和看门狗内部事件产生功能,还提供初始化代理功能以初始化bmc和其他管理控制器的传感器和事件产生组件。简而言之,bmc就是嵌入到服务器主板上的一块独立处理器,通过各种接口收集与主机内部的其他软硬件组件进行通信,并通过网络、串行等接口传向本地主机/远程服务器提供查询和控制功能。如图2所示,bmc通过原始功能函数实现相应功能,若bmc的原始功能函数出现问题,则根据出现的问题在本地数据库修复原始功能函数得到功能修复函数,然后编译功能修复函数为运行时库,并将编译出的运行时库加载到bmc上,最后在bmc的全局功能驱动表中用修复后的功能修复函数替换存在问题的原始功能函数。在实际应用时,每次存在问题的原始功能函数的数量不作限定,可批
量替换,另外需要注意的是,上述实施例提供的方案只是本技术的其中一种,并不对本技术的其他方案造成限定。在计算机程序设计领域,运行时库是一种被编译器用来实现编程语言内置函数,以提供该语言程序运行时(执行)支持的一种特殊的计算机程序库,这种库一般包括基本的输入输出或是内存管理等支持。运行时库由编译器决定,以面向编程语言,提供其最基本的执行时需要。
54.本技术实施例所提供的bmc的修复方法,若bmc的原始功能函数出现问题,则根据出现的问题在本地修复原始功能函数得到功能修复函数,然后编译功能修复函数为运行时库,并将编译出的运行时库加载到bmc上,最后在bmc的全局功能驱动表中用修复后的功能修复函数替换存在问题的原始功能函数。本技术实施例的bmc使用全局功能驱动表来实现和管理业务功能,当某个功能出现问题时,首先加载修复后业务功能模块库,然后替换存在问题的原来的功能模块的库即可实现问题的快速修复。因为是在线运行中功能直接替换,在此过程中无需重启bmc,可以大大提升bmc的可用性。
55.在上述实施例中提到,若原始功能函数出现问题,则会在bmc的全局功能驱动表中用修复后的功能修复函数替换存在问题的原始功能函数,此时原始功能函数被替换掉,而在具体实施中,可能需要原始功能函数去寻找出现问题的原因。因此,本技术实施例提供一种方案,在bmc的全局功能驱动表中用修复后的功能修复函数替换存在问题的原始功能函数之后,还包括:在本地数据库中保存存在问题的原始功能函数。则工作人员可获取原始功能函数以便于寻找问题原因。具体的,可复现原始功能函数以找到问题,即在本地数据库中保存存在问题的原始功能函数之后,在需要复现问题时,在bmc的全局功能驱动表中用存在问题的原始功能函数替换修复后的功能修复函数,此时可将问题进行复现,从而方便工作人员找到问题并进行分析。
56.具体实施中,将功能函数进行一次替换后问题可能未被解决或者出现新的问题,则需要再次对功能函数进行替换。因此,在bmc的全局功能驱动表中用修复后的功能修复函数替换存在问题的原始功能函数之后,还包括:验证替换后的全局功能驱动表以确定原始功能函数的问题得到修复。若验证结果表征原始功能函数的问题未得到修复,则需要再次进行替换。本实施例提供一种方案,在bmc的全局功能驱动表中用修复后的功能修复函数替换存在问题的原始功能函数之后,还包括:若用修复后的功能修复函数替换存在问题的原始功能函数之后问题没有解决,则根据出现的问题继续在本地数据库修复功能修复函数并得到新的功能修复函数;编译新的功能修复函数为运行时库,并将编译出的运行时库加载到bmc上;在bmc的全局功能驱动表中用新的功能修复函数替换原有的功能修复函数。实际上,在实际应用中,可能需要重复多次替换以最终解决问题。
57.实际应用中,可按功能级别将全局功能驱动表分为不同级别的全局功能驱动表,功能级别具体可包括:功能、子功能、功能函数。即bmc使用不同级别全局驱动表来管理和实现各种业务功能,第一级驱动表按大功能划分,对应功能驱动表,包括多个功能。第二级驱动表按子功能划分,对应子功能驱动表,包括多个子功能,一直类推直到函数级别的全局驱动表,对应功能函数驱动表,包括多个功能函数,通常情况下,一个功能包括多个子功能,一个子功能又对应多个功能函数。驱动表在实现上是一组函数指针列表,bmc初始化时,加载默认的功能函数指针到功能驱动表中。默认的功能函数提供原始的功能实现。值得注意的是,全局功能驱动表的级别数量并不作限定,上述方案中按功能、子功能、功能函数分别分
为功能驱动表、子功能驱动表、功能函数驱动表三个级别,而实际应用时并不限于这三个级别,每个全局功能驱动表中功能、子功能、功能函数的数量也不作限定。
58.在上述实施例中,对于bmc的修复方法进行了详细描述,本技术还提供bmc的修复装置对应的实施例。需要说明的是,本技术从两个角度对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件的角度。
59.基于功能模块的角度,本实施例提供一种bmc的修复装置,bmc使用全局功能驱动表中的功能函数来实现和管理业务功能,图4为本技术实施例提供的bmc的修复装置的结构图,如图4所示,该装置包括:
60.第一修复模块14,用于若bmc的原始功能函数出现问题,则根据出现的问题在本地数据库修复原始功能函数得到功能修复函数;
61.第一编译模块15,用于编译功能修复函数为运行时库,并将编译出的运行时库加载到bmc上;
62.第一替换模块16,用于在bmc的全局功能驱动表中用修复后的功能修复函数替换存在问题的原始功能函数。
63.由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
64.作为优选的实施方式,bmc的修复装置还包括:保存模块,用于在bmc的全局功能驱动表中用修复后的功能修复函数替换存在问题的原始功能函数之后,在本地数据库中保存存在问题的原始功能函数。
65.第二替换模块,用于在本地数据库中保存存在问题的原始功能函数之后,在需要复现问题时,在bmc的全局功能驱动表中用存在问题的原始功能函数替换修复后的功能修复函数。
66.第二修复模块,用于在bmc的全局功能驱动表中用修复后的功能修复函数替换存在问题的原始功能函数之后,若用修复后的功能修复函数替换存在问题的原始功能函数之后问题没有解决,则根据出现的问题继续在本地数据库修复功能修复函数并得到新的功能修复函数;
67.第二编译模块,用于编译新的功能修复函数为运行时库,并将编译出的运行时库加载到bmc上;
68.第三替换模块,用于在bmc的全局功能驱动表中用新的功能修复函数替换原有的功能修复函数。
69.验证模块,用于在bmc的全局功能驱动表中用修复后的功能修复函数替换存在问题的原始功能函数之后,验证替换后的全局功能驱动表以确定原始功能函数的问题得到修复。
70.本实施例提供的bmc的修复装置,与上述方法对应,故具有与上述方法相同的有益效果。
71.基于硬件的角度,本实施例提供了另一种bmc的修复装置,图5为本技术另一实施例提供的bmc的修复装置的结构图,如图5所示,bmc的修复装置包括:存储器20,用于存储计算机程序;
72.处理器21,用于执行计算机程序时实现如上述实施例中所提到的bmc的修复方法
的步骤。
73.其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用数字信号处理器(digital signal processor,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(central processing unit,cpu);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以集成有图像处理器(graphics processing unit,gpu),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括人工智能(artificial intelligence,ai)处理器,该ai处理器用于处理有关机器学习的计算操作。
74.存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的bmc的修复方法的相关步骤。另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括windows、unix、linux等。数据203可以包括但不限于bmc的修复方法涉及到的数据等。
75.在一些实施例中,bmc的修复装置还可包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。
76.本领域技术人员可以理解,图中示出的结构并不构成对bmc的修复装置的限定,可以包括比图示更多或更少的组件。
77.本技术实施例提供的bmc的修复装置,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如下方法:bmc的修复方法。
78.本实施例提供的bmc的修复装置,与上述方法对应,故具有与上述方法相同的有益效果。
79.最后,本技术还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例中记载的步骤。
80.可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本技术各个实施例描述的方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
81.本实施例提供的计算机可读存储介质,与上述方法对应,故具有与上述方法相同的有益效果。
82.以上对本技术所提供的bmc的修复方法、装置以及介质进行了详细介绍。说明书中
各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
83.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括上述要素的过程、方法、物品或者设备中还存在另外的相同要素。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1