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

一种服务器启动方法、系统、设备以及介质

文献发布时间:2023-06-19 16:09:34



技术领域

本发明涉及服务器领域,具体涉及一种服务器启动方法、系统、设备以及存储介质。

背景技术

目前对服务器的启动状态检测大多基于对硬件信息的检测,传感器或者监测芯片检测物理硬件的温度,转速等状态,将信息传递给BMC,并在BMC界面显示出来。目前是通过IPMI的sensor功能来检测各种状态,由于IPMI协议自身的缺陷,能够控制的传感器数量有限,面对当前日益增长的服务器传感器需求,IPMI的缺陷也越来越明显。

服务器一般都是运行在机房中,在固件开机过程中,由于BMC串口配置的问题,有时不会显示开机信息,有时显示的是日志信息,但是日志信息滚动太快,导致使用者无法精确确定服务器当前处于什么状态。当前通用的方法是使用IPMI控制sensor获取机器启动状态,并反馈给BMC,由于IPMI协议本身的缺陷,能控制得sensor数量有限,目前sensor的需求又逐渐增多,导致无法全面了解机器得启动状态。

发明内容

有鉴于此,为了克服上述问题的至少一个方面,本发明实施例提出一种服务器启动方法,包括以下步骤:

响应于服务器上电,利用固件初始化虚拟传感器仓库;

获取所述BMC中具有预设标志位的虚拟传感器记录的信息以应用到固件;

响应于所述固件运行到预设状态或运行异常且不影响开机,通过PDR创建虚拟传感器并添加到所述虚拟传感器仓库中;

利用创建的虚拟传感器记录运行状态;

响应于所述固件进入petitboot,将所述虚拟传感器中所有的虚拟传感器发送到BMC。

在一些实施例中,还包括:

响应于所述固件运行异常且影响开机,直接将所述虚拟传感器中所有的虚拟传感器发送BMC。

在一些实施例中,将所述虚拟传感器中所有的虚拟传感器发送到BMC,进一步包括:

利用PLDM以及MCTP协议经过LPC总线将虚拟传感器中的信息发送到BMC;

利用BMC将虚拟传感器中的信息公示到web界面。

在一些实施例中,利用PLDM以及MCTP协议经过LPC总线将虚拟传感器中的信息发送到BMC,进一步包括:

根据PLDM协议对信息进行封装,然后将信息传输到MCTP的传输层;

利用MCTP协议将接收到的信息再次封装后发送到LPC总线的发送区域;

BMC通过轮询LPC中的发送区域以获取相应的虚拟传感器的信息。

基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种服务器启动系统,包括:

初始化模块,配置为响应于服务器上电,利用固件初始化虚拟传感器仓库;

获取模块,配置为获取所述BMC中具有预设标志位的虚拟传感器记录的信息以应用到固件;

创建模块,配置为响应于所述固件运行到预设状态或运行异常且不影响开机,通过PDR创建虚拟传感器并添加到所述虚拟传感器仓库中;

记录模块,配置为利用创建的虚拟传感器记录运行状态;

发送模块,配置为响应于所述固件进入petitboot,将所述虚拟传感器中所有的虚拟传感器发送到BMC。

在一些实施例中,发送模块还配置为:

响应于所述固件运行异常且影响开机,直接将所述虚拟传感器中所有的虚拟传感器发送BMC。

在一些实施例中,发送模块还配置为:

利用PLDM以及MCTP协议经过LPC总线将虚拟传感器中的信息发送到BMC;

利用BMC将虚拟传感器中的信息公示到web界面。

在一些实施例中,发送模块还配置为:

根据PLDM协议对信息进行封装,然后将信息传输到MCTP的传输层;

利用MCTP协议将接收到的信息再次封装后发送到LPC总线的发送区域;

BMC通过轮询LPC中的发送区域以获取相应的虚拟传感器的信息。

基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机设备,包括:

至少一个处理器;以及

存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如上所述的任一种服务器启动方法的步骤。

基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时执行如上所述的任一种服务器启动方法的步骤。

本发明具有以下有益技术效果之一:本发明提出的方案通过PDR来虚拟出大量的虚拟传感器用于监控服务器启动过程,避免了IPMI协议对传感器数量的限制,可以方便的检测服务器启动状态,而且如果需要监控其他得状态,也需要通过PDR来添加虚拟传感器,BMC可以将机器的状态实时展示给用户,并展示启动异常的状态。这样通过PDR创建虚拟传感器用于监控机器启动时得实时状态,对传感器数量没有限制,将状态传递给BMC,BMC解析数据将状态展示在WEB界面。用户可以通过状态来查看启动状态以及进行调试。

附图说明

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

图1为本发明的实施例提供的服务器启动方法的流程示意图;

图2为本发明的实施例提供的服务器启动方法的流程框图;

图3为本发明的实施例提供的基于邮箱的远程控制系统的结构示意图;

图4为本发明的实施例提供的计算机设备的结构示意图;

图5为本发明的实施例提供的计算机可读存储介质的结构示意图。

具体实施方式

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

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

根据本发明的一个方面,本发明的实施例提出一种服务器启动方法,如图1所示,其可以包括步骤:

S1,响应于服务器上电,利用固件初始化虚拟传感器仓库;

S2,获取所述BMC中具有预设标志位的虚拟传感器记录的信息以应用到固件;

S3,响应于所述固件运行到预设状态或运行异常且不影响开机,通过PDR创建虚拟传感器并添加到所述虚拟传感器仓库中;

S4,利用创建的虚拟传感器记录运行状态;

S5,响应于所述固件进入petitboot,将所述虚拟传感器中所有的虚拟传感器发送到BMC。

本发明提出的方案通过PDR来虚拟出大量的虚拟传感器用于监控服务器启动过程,避免了IPMI协议对传感器数量的限制,可以方便的检测服务器启动状态,而且如果需要监控其他得状态,也需要通过PDR来添加虚拟传感器,BMC可以将机器的状态实时展示给用户,并展示启动异常的状态。这样通过PDR创建虚拟传感器用于监控机器启动时得实时状态,对传感器数量没有限制,将状态传递给BMC,BMC解析数据将状态展示在WEB界面。用户可以通过状态来查看启动状态以及进行调试。

在一些实施例中,还包括:

响应于所述固件运行异常且影响开机,直接将所述虚拟传感器中所有的虚拟传感器发送BMC。

在一些实施例中,将所述虚拟传感器中所有的虚拟传感器发送到BMC,进一步包括:

利用PLDM以及MCTP协议经过LPC总线将虚拟传感器中的信息发送到BMC;

利用BMC将虚拟传感器中的信息公示到web界面。

在一些实施例中,利用PLDM以及MCTP协议经过LPC总线将虚拟传感器中的信息发送到BMC,进一步包括:

根据PLDM协议对信息进行封装,然后将信息传输到MCTP的传输层;

利用MCTP协议将接收到的信息再次封装后发送到LPC总线的发送区域;

BMC通过轮询LPC中的发送区域以获取相应的虚拟传感器的信息。

具体的,每台设备需要大量得物理传感器或者虚拟传感器来监控机器得启动状态,信息可直接传给BMC用于展示到界面上。其中物理传感器可以通过软件直接读取传感器状态及读数,虚拟传感器由PDR模拟,PDR中可以保存虚拟出来得传感器,数据保存到内存中,理论上可以控制得传感器数量远远大于IPMI,服务器运行到一定阶段,由不同得传感器检测当前状态,通过PLDM协议发送到BMC端,BMC解析数据后将信息展示到BMC状态栏里,对于虚拟传感器只记录服务器运行的软件状态,每运行到一个阶段,调用一次虚拟传感器PDR数据,填充当前状态信息到PDR中,保存状态信息得PDR被封装成一条数据,通过PLDM协议,经过LPC总线发送到BMC。然后BMC解析数据,分析服务器状态,将状态实时显示在当前web界面,此时如果某个阶段启动异常,可以通过web界面展示给用户,用户可以根据状态信息来进行调试服务器得系统,而不用直接查看日志。

sensor类型的PDR包含四种:数字传感器,数字效应器,状态传感器,状态效应器,每种传感器有固定的格式分别记录不同的服务器状态信息。数字传感器负责记录服务器开机过程中服务器与次数有关的信息。数字效应器负责与服务器数字操作有关的信息,状态传感器负责记录服务器固件运行状态相关信息,状态效应器负责与服务器状态操作相关的信息。PDR的数量是动态的,在程序执行过程中可以随时根据代码执行情况创建。

如图2所示,首先机器上电时,为提高效率,BMC会创建一部分通用PDR,此部分PDR为BMC与固件公用的。PDR中有一标志位记录此PDR中的信息是否应用于新开启的固件。只要不重刷BMC,此部分信息会永久保存在BMC中。

固件上电时,首先获取BMC中所有的PDR,固件运行到不同状态时,会扫描对应的PDR,查找到所需的PDR后,首先判断其标志位决定是否将此PDR记录的信息应用于固件。如果用户对此状态参数进行了修改,那PDR中相应的内容也会改变。

在固件运行的过程中,遇到突发状况时,例如BMC传递的参数不合规以及当前服务器的运行发生异常,而又不影响开机时。会自动创建PDR,记录当前参数,状态以及内存栈的信息。并把此PDR添加到PDR仓库中,此种类型的PDR为临时性的。

在固件运行过程中,如因固件问题或者BMC传递参数问题导致无法开机的情况时,由于固件本身内存太小的限制,会首先删除所有临时性PDR,清空其他不必要的内存空间,创建PDR详细记录从开机到问题发生点的栈回溯以及所有运行函数以及参数信息,将其发送给BMC,供开发人员查看调试。

在到进入petitboot之前,固件中所有的PDR会全部发送给BMC,以更新BMC中的PDR仓库,当机器进入petitboot后,可以在操作界面通过命令或者打开BMC查看当前机器的PDR记录的相关状态信息,

在固件重启以及关机时,会向BMC发送一条信息,BMC清空所有的临时性PDR,只保留永久性的PDR等待下次开机时发送给固件。

本发明采用编码的方式在固件代码中将记录服务器运行状态的函数编写完成。服务器上电开机后,固件首先初始化PDR仓库,然后获取到BMC中记录的通用的sensor PDR,当机器运行到需要发送运行状态的代码段,由程序创建固件需要的sensor PDR,在此处运行检测固件某进程状态的程序代码,次程序代码用于检测服务器启动过程中关键函数的返回值,返回值表示函数执行的状态,这些状态值保存到对应的PDR中,PDR保存在PDR仓库中,PDR仓库是在内存中开辟的一个空间。此PDR保存的状态以及检测的代码模块通过PLDM以及MCTP协议经过LPC总线发送到BMC,BMC将状态信息公示到web界面,用户可以通过此界面查看固件中各个模块的加载结果,如果某个软件模块(例如某个驱动)加载异常,用户可以直观的看到,可以有针对性的查找日志并进行调试。

PDR仓库为一个PDR链表的集合,传感器类型的PDR可以作为一个虚拟的传感器来记录相关的机器信息,当PDR发生更新后,通过PLDM协议将信息发送给BMC,从而实现与BMC同步。此信息根据PLDM协议进行封装,首先将请求信息加上PLDM协议的header,然后将信息传输到MCTP传输层。该层收到信息后对信息再次加工,加上MCTP层的header,然后如果数据较长,则将其进行拆分,分多次发送到LPC总线的发送区域。BMC通过轮询LPC中的发送区域,当LPC中有未读取的数据时,BMC将其一段一段的读取出来,然后将其组成成一整条消息并对此消息进行解析。

基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种服务器启动系统400,如图3所示,包括:

初始化模块401,配置为响应于服务器上电,利用固件初始化虚拟传感器仓库;

获取模块402,配置为获取所述BMC中具有预设标志位的虚拟传感器记录的信息以应用到固件;

创建模块403,配置为响应于所述固件运行到预设状态或运行异常且不影响开机,通过PDR创建虚拟传感器并添加到所述虚拟传感器仓库中;

记录模块404,配置为利用创建的虚拟传感器记录运行状态;

发送模块405,配置为响应于所述固件进入petitboot,将所述虚拟传感器中所有的虚拟传感器发送到BMC。

在一些实施例中,发送模块405还配置为:

响应于所述固件运行异常且影响开机,直接将所述虚拟传感器中所有的虚拟传感器发送BMC。

在一些实施例中,发送模块405还配置为:

利用PLDM以及MCTP协议经过LPC总线将虚拟传感器中的信息发送到BMC;

利用BMC将虚拟传感器中的信息公示到web界面。

在一些实施例中,发送模块405还配置为:

根据PLDM协议对信息进行封装,然后将信息传输到MCTP的传输层;

利用MCTP协议将接收到的信息再次封装后发送到LPC总线的发送区域;

BMC通过轮询LPC中的发送区域以获取相应的虚拟传感器的信息。

基于同一发明构思,根据本发明的另一个方面,如图4所示,本发明的实施例还提供了一种计算机设备501,包括:

至少一个处理器520;以及

存储器510,存储器510存储有可在处理器上运行的计算机程序511,处理器520执行程序时执行如上的任一种服务器启动方法的步骤。

基于同一发明构思,根据本发明的另一个方面,如图5所示,本发明的实施例还提供了一种计算机可读存储介质601,计算机可读存储介质601存储有计算机程序指令610,计算机程序指令610被处理器执行时执行如上的任一种服务器启动方法的步骤。

最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。

此外,应该明白的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。

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

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

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

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

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

相关技术
  • 车辆启动控制系统、车载器、车辆、服务器、车辆启动方法、车辆启动程序及存储介质
  • 一种服务器启动方法、系统、计算机设备和存储介质
技术分类

06120114720945