掌桥专利:专业的专利平台
掌桥专利
首页

通过BMC实现动作自定义的方法、系统、设备和存储介质

文献发布时间:2023-06-19 19:28:50


通过BMC实现动作自定义的方法、系统、设备和存储介质

技术领域

本发明涉及服务器领域,更具体地,特别是指一种通过BMC实现动作自定义的方法、系统、设备和存储介质。

背景技术

BMC(Baseboard Management Controller,基板管理控制器)具有restful接口、ipmi接口等网络接口可以提供批量部署能力,BMC可根据自身的逻辑执行相应动作。BMC是一个独立于服务器系统的小型操作系统,作用是方便服务器远程管理、监控、安装、重启等操作。BMC接通电源即启动运行,由于独立于业务程序不受影响,避免了因死机或者重新安装系统而进入机房。BMC对外表现形式只有一个标准RJ45网口,拥有独立IP。普通维护只需使用浏览器访问IP:PORT登录管理页面,服务器集群一般使用BMC指令进行大规模无人值守操作。工程师通过BMC代码把BMC运行逻辑写好,编译出镜像文件进行烧录,烧录后BMC按照固定逻辑运行。当前方案BMC只能按照固定逻辑运行。

发明内容

有鉴于此,本发明实施例的目的在于提出一种通过BMC实现动作自定义的方法、系统、计算机设备及计算机可读存储介质,本发明通过BMC实现服务器动作自定义编程让用户可以自定义的去利用BMC编写服务器的运行逻辑,容许用户在一定范围内进行服务器的动作自定义,可以定制逻辑满足用户的需求,可以不依靠厂家随时调整逻辑,改变BMC逻辑时也不需要进行大规模的固件升级。

基于上述目的,本发明实施例的一方面提供了一种通过BMC实现动作自定义的方法,包括如下步骤:将状态条件组成状态库,将逻辑状态封装为逻辑库,将BMC能够执行的动作封装为动作库;将所述状态库、逻辑库和动作库中的数据进行组合以生成请求;响应于接收到包含状态、逻辑和动作的请求,获取实时的状态数据并与所述请求中的状态和逻辑进行比对;以及响应于状态数据达到所述请求中的状态和逻辑,执行所述请求中对应的动作。

在一些实施方式中,所述将状态条件组成状态库包括:将每个状态条件赋予唯一的key值以使得key值和状态条件形成键值对。

在一些实施方式中,所述将逻辑状态封装为逻辑库包括:定义包含与、或、非在内的逻辑连接符和包含大于、小于、等于在内的逻辑判断符。

在一些实施方式中,所述获取实时的状态数据并与所述请求中的状态和逻辑进行比对包括:通过BMC监控服务器的各种状态并实时采集状态数据,并判断采集的状态数据与所述请求中的状态和逻辑是否一致。

本发明实施例的另一方面,提供了一种通过BMC实现动作自定义的系统,包括:封装模块,配置用于将状态条件组成状态库,将逻辑状态封装为逻辑库,将BMC能够执行的动作封装为动作库;输入模块,配置用于将所述状态库、逻辑库和动作库中的数据进行组合以生成请求;比对模块,配置用于响应于接收到包含状态、逻辑和动作的请求,获取实时的状态数据并与所述请求中的状态和逻辑进行比对;以及执行模块,配置用于响应于状态数据达到所述请求中的状态和逻辑,执行所述请求中对应的动作。

在一些实施方式中,所述封装模块配置用于:将每个状态条件赋予唯一的key值以使得key值和状态条件形成键值对。

在一些实施方式中,所述封装模块配置用于:定义包含与、或、非在内的逻辑连接符和包含大于、小于、等于在内的逻辑判断符。

在一些实施方式中,所述比对模块配置用于:通过BMC监控服务器的各种状态并实时采集状态数据,并判断采集的状态数据与所述请求中的状态和逻辑是否一致。

本发明实施例的又一方面,还提供了一种计算机设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现如上方法的步骤。

本发明实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。

本发明具有以下有益技术效果:通过BMC实现服务器动作自定义编程让用户可以自定义的去利用BMC编写服务器的运行逻辑,容许用户在一定范围内进行服务器的动作自定义,可以定制逻辑满足用户的需求,可以不依靠厂家随时调整逻辑,改变BMC逻辑时也不需要进行大规模的固件升级。

附图说明

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

图1为本发明提供的通过BMC实现动作自定义的方法的实施例的示意图;

图2为本发明提供的通过BMC实现动作自定义的系统的实施例的示意图;

图3为本发明提供的通过BMC实现动作自定义的计算机设备的实施例的硬件结构示意图;

图4为本发明提供的通过BMC实现动作自定义的计算机存储介质的实施例的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。

需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。

本发明实施例的第一个方面,提出了一种通过BMC实现动作自定义的方法的实施例。图1示出的是本发明提供的通过BMC实现动作自定义的方法的实施例的示意图。如图1所示,本发明实施例包括如下步骤:

S1、将状态条件组成状态库,将逻辑状态封装为逻辑库,将BMC能够执行的动作封装为动作库;

S2、将所述状态库、逻辑库和动作库中的数据进行组合以生成请求;

S3、响应于接收到包含状态、逻辑和动作的请求,获取实时的状态数据并与所述请求中的状态和逻辑进行比对;以及

S4、响应于状态数据达到所述请求中的状态和逻辑,执行所述请求中对应的动作。

BMC:Baseboard Management Controller,基板管理控制器,是一个专门的服务处理机,它利用传感器来监控一台计算机、网络服务器或者是其他硬件驱动设备的状态,并且通过独立的连接线路和系统管理员进行通信,BMC是智能平台控制接口(IPMI,IntelligentPlatform Management Interface)的一部分并且通常被包含在模板或者被监控的设备的主电路板里。BMC的传感器用来测量内部物理变量,例如:温度,湿度,电源电压,风扇速度,通信参数和操作系统函数,如果这些变量中任何一个超出了指定限制的范围之外,它就会通知管理员,管理员就会利用远程控制来采取正确的措施。监控设备可以动力循环或者当必要的时候重新启动,这样,单一的管理员就可以同时远程控制无数个服务器和其他设备,节省了网络的总体成本,并且可以确保可靠性。

本发明实施例将状态条件组成状态库,将逻辑状态封装为逻辑库,将BMC能够执行的动作封装为动作库。本发明实施例中BMC将状态条件利用数据库或者其内存组成状态库供用户调用,同时将逻辑状态封装为逻辑库供用户对状态库进行排列组合,将BMC可以执行的动作封装为动作库供用户选择执行。所谓排列,就是指从给定个数的元素中取出指定个数的元素进行排序。组合则是指从给定个数的元素中仅仅取出指定个数的元素,不考虑排序。也即是可以分别从状态库、逻辑库和动作库中选择元素进行组合。

封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员。本发明实施例通过将状态条件封装成状态库,将逻辑条件封装成逻辑库,将能够执行的动作封装成动作库,进一步降低了用户使用的门槛。

在一些实施方式中,所述将状态条件组成状态库包括:将每个状态条件赋予唯一的key值以使得key值和状态条件形成键值对。服务器状态例如服务器电压、电流、CPU状态、内存状态等等各种状态,本发明实施例中将这些状态存放入一个BMC状态数据库,根据每个状态在BMC数据库中赋予唯一的key(键)值形成BMC自定义的状态库,用户可以通过key值随意选取BMC中的状态数据。键值对就是可以根据一个键值获得对应的一个值。例如,一般的面向对象编辑中,经常会使用FormEnable=True或False,就是用一系列API(ApplicationProgram Interface,应用程序接口)函数对一个值的封装。注册表中,是通过键和子键来管理各种信息。同时,在注册表里面的所有信息是以各种形式的键值项数据保存下来。在注册表编辑器的右窗口中,保存的都是各种键值项数据。键值项由键值名、数据类型和键值三部分组成,其格式为:“键值名:数据类型:键值”。本发明实施例通过键值对实现了用户输入键值即能获取对应状态条件的目的。

在一些实施方式中,所述将逻辑状态封装为逻辑库包括:定义包含与、或、非在内的逻辑连接符和包含大于、小于、等于在内的逻辑判断符。本发明实施例中在BMC中定义与、或、非、大于、小于、等于等基本的逻辑判断符号和逻辑连接符号允许用户选择这些逻辑连接符号或逻辑判断符号,可以让用户选择逻辑进行自定义编程。“逻辑与”相当于“并且”,就是两个条件都同时成立的情况下“逻辑与”的运算结果才为“真”。“逻辑或”相当于“或者”,当两个条件中有任一个条件满足,“逻辑或”的运算结果就为“真”。“逻辑非”就是指本来值的反值。

本发明实施例中将所述状态库、逻辑库和动作库中的数据进行组合以生成请求。本发明实施例中通过向用户开放这些状态的与或非等逻辑连接,最终让用户自行组合后向用户开放提供BMC所能执行的各种对服务器的操作,如开关机、风扇转速调整、发送报警、自动节流等。当用户把状态、逻辑、动作编辑完毕后即可传入BMC。

本发明实施例中响应于接收到包含状态、逻辑和动作的请求,获取实时的状态数据并与所述请求中的状态和逻辑进行比对。本发明实施例中BMC通过不断更新的状态数据,当状态数据达到用户指定的值和逻辑时触发用户想要执行的操作。

在一些实施方式中,所述获取实时的状态数据并与所述请求中的状态和逻辑进行比对包括:通过BMC监控服务器的各种状态并实时采集状态数据,并判断采集的状态数据与所述请求中的状态和逻辑是否一致。

本发明实施例中响应于状态数据达到所述请求中的状态和逻辑,执行所述请求中对应的动作。

本发明实施例中用户可以进行自定义操作,例如,在BMC监控到PSU(Power supplyunit,电源供应单元)输入电压低于210V时,启动BMC的功耗封顶策略,封顶功耗为额定功耗的百分之八十,可以有效的防止机柜供电不足导致的宕机问题。用户可以将包含“状态:电源供应单元输入电压低于210V;动作:启动BMC功耗封顶策略”在内的请求输入BMC,然后BMC实时获取电源供应单元的输入电压,并将实时获取的电源供应单元的输入电压与210V进行比较,如果此时获取的电源供应单元的输入电压低于210V,则执行请求中的对应动作,也即是启动BMC功耗封顶策略。本发明实施例中可以通过逻辑状态设置请求中的状态条件。

本发明实施例中用户可以进行自定义操作,又例如,用户可以通过根据BMC记录的POH(power on hours,接通电源时间)进行服务器的开放时间的控制,如仅在每天晚上八点到十点开放服务器的访问。也即是用户可以将“状态:时间为晚上八点到十点;动作:开放服务器的访问”的请求输入BMC,BMC实时获取当前时间,当获取到的当前时间属于晚上八点到十点,则执行请求中的对应动作,也即是动作开放服务器的访问。当获取到的当前时间不属于晚上八点到十点,则不执行请求中的对应动作。

本发明实施例通过BMC实现服务器动作自定义编程让用户可以自定义的去利用BMC编写服务器的运行逻辑,容许用户在一定范围内进行服务器的动作自定义,可以定制逻辑满足用户的需求,可以不依靠厂家随时调整逻辑,改变BMC逻辑时也不需要进行大规模的固件升级。

需要特别指出的是,上述通过BMC实现动作自定义的方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于通过BMC实现动作自定义的方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在实施例之上。

基于上述目的,本发明实施例的第二个方面,提出了一种通过BMC实现动作自定义的系统。如图2所示,系统200包括如下模块:封装模块,配置用于将状态条件组成状态库,将逻辑状态封装为逻辑库,将BMC能够执行的动作封装为动作库;输入模块,配置用于将所述状态库、逻辑库和动作库中的数据进行组合以生成请求;比对模块,配置用于响应于接收到包含状态、逻辑和动作的请求,获取实时的状态数据并与所述请求中的状态和逻辑进行比对;以及执行模块,配置用于响应于状态数据达到所述请求中的状态和逻辑,执行所述请求中对应的动作。

在一些实施方式中,所述封装模块配置用于:将每个状态条件赋予唯一的key值以使得key值和状态条件形成键值对。

在一些实施方式中,所述封装模块配置用于:定义包含与、或、非在内的逻辑连接符和包含大于、小于、等于在内的逻辑判断符。

在一些实施方式中,所述比对模块配置用于:通过BMC监控服务器的各种状态并实时采集状态数据,并判断采集的状态数据与所述请求中的状态和逻辑是否一致。

本发明实施例通过BMC实现服务器动作自定义编程让用户可以自定义的去利用BMC编写服务器的运行逻辑,容许用户在一定范围内进行服务器的动作自定义,可以定制逻辑满足用户的需求,可以不依靠厂家随时调整逻辑,改变BMC逻辑时也不需要进行大规模的固件升级。

基于上述目的,本发明实施例的第三个方面,提出了一种计算机设备,包括:至少一个处理器;以及存储器,存储器存储有可在处理器上运行的计算机指令,指令由处理器执行以实现如下步骤:S1、将状态条件组成状态库,将逻辑状态封装为逻辑库,将BMC能够执行的动作封装为动作库;S2、将所述状态库、逻辑库和动作库中的数据进行组合以生成请求;S3、响应于接收到包含状态、逻辑和动作的请求,获取实时的状态数据并与所述请求中的状态和逻辑进行比对;以及S4、响应于状态数据达到所述请求中的状态和逻辑,执行所述请求中对应的动作。

在一些实施方式中,所述将状态条件组成状态库包括:将每个状态条件赋予唯一的key值以使得key值和状态条件形成键值对。

在一些实施方式中,所述将逻辑状态封装为逻辑库包括:定义包含与、或、非在内的逻辑连接符和包含大于、小于、等于在内的逻辑判断符。

在一些实施方式中,所述获取实时的状态数据并与所述请求中的状态和逻辑进行比对包括:通过BMC监控服务器的各种状态并实时采集状态数据,并判断采集的状态数据与所述请求中的状态和逻辑是否一致。

本发明实施例通过BMC实现服务器动作自定义编程让用户可以自定义的去利用BMC编写服务器的运行逻辑,容许用户在一定范围内进行服务器的动作自定义,可以定制逻辑满足用户的需求,可以不依靠厂家随时调整逻辑,改变BMC逻辑时也不需要进行大规模的固件升级。

如图3所示,为本发明提供的上述通过BMC实现动作自定义的计算机设备的一个实施例的硬件结构示意图。

以如图3所示的装置为例,在该装置中包括一个处理器301以及一个存储器302。

处理器301和存储器302可以通过总线或者其他方式连接,图3中以通过总线连接为例。

存储器302作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的通过BMC实现动作自定义的方法对应的程序指令/模块。处理器301通过运行存储在存储器302中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现通过BMC实现动作自定义的方法。

存储器302可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据通过BMC实现动作自定义的方法的使用所创建的数据等。此外,存储器302可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器302可选包括相对于处理器301远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

一个或者多个通过BMC实现动作自定义的方法对应的计算机指令303存储在存储器302中,当被处理器301执行时,执行上述任意方法实施例中的通过BMC实现动作自定义的方法。

一种通过BMC实现动作自定义的方法,包括如下步骤:将状态条件组成状态库,将逻辑状态封装为逻辑库,将BMC能够执行的动作封装为动作库;将所述状态库、逻辑库和动作库中的数据进行组合以生成请求;响应于接收到包含状态、逻辑和动作的请求,获取实时的状态数据并与所述请求中的状态和逻辑进行比对;以及响应于状态数据达到所述请求中的状态和逻辑,执行所述请求中对应的动作。

在一些实施方式中,所述将状态条件组成状态库包括:将每个状态条件赋予唯一的key值以使得key值和状态条件形成键值对。

在一些实施方式中,所述将逻辑状态封装为逻辑库包括:定义包含与、或、非在内的逻辑连接符和包含大于、小于、等于在内的逻辑判断符。

在一些实施方式中,所述获取实时的状态数据并与所述请求中的状态和逻辑进行比对包括:通过BMC监控服务器的各种状态并实时采集状态数据,并判断采集的状态数据与所述请求中的状态和逻辑是否一致。

本发明实施例通过BMC实现服务器动作自定义编程让用户可以自定义的去利用BMC编写服务器的运行逻辑,容许用户在一定范围内进行服务器的动作自定义,可以定制逻辑满足用户的需求,可以不依靠厂家随时调整逻辑,改变BMC逻辑时也不需要进行大规模的固件升级。

执行上述通过BMC实现动作自定义的方法的计算机设备的任何一个实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。

本发明还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时执行通过BMC实现动作自定义的方法的计算机程序。

如图4所示,为本发明提供的上述通过BMC实现动作自定义的计算机存储介质的一个实施例的示意图。以如图4所示的计算机存储介质为例,计算机可读存储介质401存储有被处理器执行时执行如上方法的计算机程序402。

一种通过BMC实现动作自定义的方法,包括如下步骤:将状态条件组成状态库,将逻辑状态封装为逻辑库,将BMC能够执行的动作封装为动作库;将所述状态库、逻辑库和动作库中的数据进行组合以生成请求;响应于接收到包含状态、逻辑和动作的请求,获取实时的状态数据并与所述请求中的状态和逻辑进行比对;以及响应于状态数据达到所述请求中的状态和逻辑,执行所述请求中对应的动作。

在一些实施方式中,所述将状态条件组成状态库包括:将每个状态条件赋予唯一的key值以使得key值和状态条件形成键值对。

在一些实施方式中,所述将逻辑状态封装为逻辑库包括:定义包含与、或、非在内的逻辑连接符和包含大于、小于、等于在内的逻辑判断符。

在一些实施方式中,所述获取实时的状态数据并与所述请求中的状态和逻辑进行比对包括:通过BMC监控服务器的各种状态并实时采集状态数据,并判断采集的状态数据与所述请求中的状态和逻辑是否一致。

本发明实施例通过BMC实现服务器动作自定义编程让用户可以自定义的去利用BMC编写服务器的运行逻辑,容许用户在一定范围内进行服务器的动作自定义,可以定制逻辑满足用户的需求,可以不依靠厂家随时调整逻辑,改变BMC逻辑时也不需要进行大规模的固件升级。

最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,通过BMC实现动作自定义的方法的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。

以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。

应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。

上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

技术分类

06120115925840