CN117311769A - 服务器日志生成方法和装置、存储介质及电子设备 - Google Patents

服务器日志生成方法和装置、存储介质及电子设备 Download PDF

Info

Publication number
CN117311769A
CN117311769A CN202311615385.8A CN202311615385A CN117311769A CN 117311769 A CN117311769 A CN 117311769A CN 202311615385 A CN202311615385 A CN 202311615385A CN 117311769 A CN117311769 A CN 117311769A
Authority
CN
China
Prior art keywords
version
information
target
target firmware
function
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.)
Granted
Application number
CN202311615385.8A
Other languages
English (en)
Other versions
CN117311769B (zh
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 Metabrain Intelligent Technology Co Ltd
Original Assignee
Suzhou Metabrain 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 Metabrain Intelligent Technology Co Ltd filed Critical Suzhou Metabrain Intelligent Technology Co Ltd
Priority to CN202311615385.8A priority Critical patent/CN117311769B/zh
Publication of CN117311769A publication Critical patent/CN117311769A/zh
Application granted granted Critical
Publication of CN117311769B publication Critical patent/CN117311769B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例提供了一种服务器日志生成方法和装置、存储介质及电子设备,其中,该方法包括:在通过服务器的操作系统中的目标程序开始将服务器中的目标固件从第一版本更新为第二版本的情况下,获取目标固件的第一版本信息,并将更新开始信息发送至服务器的基板管理控制器BMC;在通过目标程序完成将目标固件从第一版本更新为第二版本的情况下,获取目标固件的第二版本信息,并将更新结束信息发送至BMC。通过本申请,解决了在通过服务器的操作系统中的目标程序对服务器的固件进行更新的情况下,BMC无法在日志中记录固件的版本信息的问题。

Description

服务器日志生成方法和装置、存储介质及电子设备
技术领域
本申请实施例涉及计算机领域,具体而言,涉及一种服务器日志生成方法和装置、存储介质及电子设备。
背景技术
相关技术中,在通过BMC对服务器的固件进行更新的情况下,BMC可以记录固件的版本变化,但在不通过BMC对服务器的固件进行更新的情况下,例如,通过在服务器的操作系统中的更新工具对服务器的固件进行更新的情况下,由于更新服务器的固件的进程是在服务器的操作系统内进行的,而并不是通过BMC进行更新的,BMC对此并不知情,可以理解的是,BMC无法获取到相关信息并将其记录在日志中。
发明内容
本申请实施例提供了一种服务器日志生成方法和装置、存储介质及电子设备,以至少解决相关技术中在通过服务器的操作系统中的目标程序对服务器的固件进行更新的情况下,BMC无法在日志中记录固件的版本信息的问题。
根据本申请的一个实施例,提供了一种服务器日志生成方法,包括:在通过服务器的操作系统中的目标程序开始将所述服务器中的目标固件从第一版本更新为第二版本的情况下,获取所述目标固件的第一版本信息,并将更新开始信息发送至所述服务器的基板管理控制器BMC,其中,所述更新开始信息包括所述第一版本信息,所述第一版本信息是所述第一版本的描述信息,所述BMC被设置为将接收到的所述更新开始信息记录在目标日志中;在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,获取所述目标固件的第二版本信息,并将更新结束信息发送至所述BMC,其中,所述更新结束信息包括所述第二版本信息,所述第二版本信息是所述第二版本的描述信息,所述BMC被设置为将接收到的所述更新结束信息记录在所述目标日志中。
在一个示例性实施例中,所述在通过服务器的操作系统中的目标程序开始将所述服务器中的目标固件从第一版本更新为第二版本的情况下,获取所述目标固件的第一版本信息,并将更新开始信息发送至所述服务器的基板管理控制器BMC,包括:在通过所述目标程序开始将所述服务器中的所述目标固件从所述第一版本更新为所述第二版本的情况下,执行预先设置的第一函数,其中,所述第一函数用于获取所述目标固件的所述第一版本信息,并将所述更新开始信息发送至所述BMC。
在一个示例性实施例中,所述在通过所述目标程序开始将所述服务器中的所述目标固件从所述第一版本更新为所述第二版本的情况下,执行预先设置的第一函数,包括:在通过所述目标程序开始将所述服务器中的所述目标固件从所述第一版本更新为所述第二版本的情况下,通过所述目标固件执行所述第一函数,以获取所述目标固件的所述第一版本信息,并将所述更新开始信息发送至所述BMC。
在一个示例性实施例中,所述在通过所述目标程序开始将所述服务器中的所述目标固件从所述第一版本更新为所述第二版本的情况下,通过所述目标固件执行所述第一函数,包括:在通过所述目标程序开始将所述服务器中的所述目标固件从所述第一版本更新为所述第二版本的情况下,将所述操作系统从运行状态切换至暂停运行状态,将所述目标固件从暂停运行状态切换成运行状态,并通过所述目标固件执行所述第一函数。
在一个示例性实施例中,所述在通过所述目标程序开始将所述服务器中的所述目标固件从所述第一版本更新为所述第二版本的情况下,通过所述目标固件执行所述第一函数,包括:在通过所述目标程序开始将所述服务器中的所述目标固件从所述第一版本更新为所述第二版本的情况下,触发目标中断,并通过所述目标固件执行所述第一函数,其中,所述第一函数是触发所述目标中断后所触发执行的函数。
在一个示例性实施例中,所述通过所述目标固件执行所述第一函数,包括:在所述目标固件的所述第一版本被从第一存储空间复制到第二存储空间的情况下,通过所述第二存储空间中存储的所述目标固件的所述第一版本执行所述第一函数,其中,所述第二存储空间是所述服务器的内存中的存储空间,所述第一函数用于从所述第一存储空间中读取所述第一版本信息,并将所述更新开始信息发送至所述BMC,所述第一存储空间用于存储所述第一函数、所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第一版本时,所述当前版本信息是所述第一版本信息。
在一个示例性实施例中,所述执行预先设置的第一函数,包括:执行所述第一函数中的第一部分代码,其中,所述第一部分代码用于从第一存储空间中读取所述第一版本信息,所述第一存储空间用于存储所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第一版本时,所述当前版本信息是所述第一版本信息;执行所述第一函数中的第二部分代码,其中,所述第二部分代码用于将所述更新开始信息发送至所述BMC。
在一个示例性实施例中,在执行预先设置的第一函数之前,所述方法还包括:在所述第一版本信息是所述目标固件的初始版本的版本信息的情况下,将所述第一版本信息存储在所述第一存储空间中;或者在通过所述目标程序完成将所述目标固件从第三版本更新为所述第一版本的情况下,将所述第一存储空间中存储的所述当前版本信息从第三版本信息更新为所述第一版本信息,其中,所述第三版本信息是所述第三版本的描述信息。
在一个示例性实施例中,所述执行预先设置的第一函数,包括:执行第一存储空间中存储的所述第一函数,其中,所述第一函数用于从所述第一存储空间中读取所述第一版本信息,并将所述更新开始信息发送至所述BMC,所述第一存储空间用于存储所述第一函数、所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第一版本时,所述当前版本信息是所述第一版本信息;或者在所述第一函数被从所述第一存储空间复制到第二存储空间的情况下,执行所述第二存储空间中存储的所述第一函数,其中,所述第二存储空间是所述服务器的内存中的存储空间,所述第一函数用于从所述第一存储空间中读取所述第一版本信息,并将所述更新开始信息发送至所述BMC,所述第一存储空间用于存储所述第一函数、所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第一版本时,所述当前版本信息是所述第一版本信息。
在一个示例性实施例中,所述将更新开始信息发送至所述服务器的基板管理控制器BMC,包括:调用目标接口将所述更新开始信息发送至所述BMC。
在一个示例性实施例中,所述将更新开始信息发送至所述服务器的基板管理控制器BMC,包括:将所述更新开始信息发送至所述BMC,其中,所述更新开始信息还包括第一状态信息,所述第一状态信息用于表示开始更新所述目标固件。
在一个示例性实施例中,在所述在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,获取所述目标固件的第二版本信息,并将更新结束信息发送至所述BMC之前,所述方法还包括:在将所述更新开始信息发送至所述BMC之后,将所述目标固件从运行状态切换至暂停运行状态,并将所述操作系统从暂停运行状态切换至运行状态,通过所述目标程序继续将所述目标固件从所述第一版本更新为所述第二版本。
在一个示例性实施例中,所述在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,获取所述目标固件的第二版本信息,并将更新结束信息发送至所述BMC,包括:在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,执行预先设置的第二函数,其中,所述第二函数用于获取所述目标固件的所述第二版本信息,并将所述更新结束信息发送至所述BMC。
在一个示例性实施例中,所述在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,执行预先设置的第二函数,包括:在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,通过所述目标固件执行所述第二函数,以获取所述目标固件的所述第二版本信息,并将所述更新结束信息发送至所述BMC。
在一个示例性实施例中,所述在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,通过所述目标固件执行所述第二函数,包括:在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,将所述操作系统从运行状态切换至暂停运行状态,将所述目标固件从暂停运行状态切换成运行状态,并通过所述目标固件执行所述第二函数。
在一个示例性实施例中,所述在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,通过所述目标固件执行所述第二函数,包括:在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,触发目标中断,并通过所述目标固件执行所述第二函数,其中,所述第二函数是触发所述目标中断后所触发执行的函数。
在一个示例性实施例中,所述通过所述目标固件执行所述第二函数,包括:在所述目标固件的所述第一版本被从第一存储空间复制到第二存储空间的情况下,通过所述第二存储空间中存储的所述目标固件的所述第一版本执行所述第二函数,其中,所述第二存储空间是所述服务器的内存中的存储空间,所述第二函数用于从所述第一存储空间中读取所述第二版本信息,并将所述更新结束信息发送至所述BMC,所述第一存储空间用于存储所述第二函数、所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第二版本时,所述当前版本信息是所述第二版本信息。
在一个示例性实施例中,所述执行预先设置的第二函数,包括:执行所述第二函数中的第三部分代码,其中,所述第二函数中的第三部分代码用于从第一存储空间中读取所述第二版本信息,所述第一存储空间用于存储所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第二版本时,所述当前版本信息是所述第二版本信息;执行所述第二函数中的第四部分代码,其中,所述第二函数中的第四部分代码用于将所述更新结束信息发送至所述BMC。
在一个示例性实施例中,所述执行预先设置的第二函数,包括:执行第一存储空间中存储的所述第二函数,其中,所述第二函数用于从所述第一存储空间中读取所述第二版本信息,并将所述更新结束信息发送至所述BMC,所述第一存储空间用于存储所述第二函数、所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第二版本时,所述当前版本信息是所述第二版本信息;或者在所述第二函数被从所述第一存储空间复制到第二存储空间的情况下,执行所述第二存储空间中存储的所述第二函数,其中,所述第二存储空间是所述服务器的内存中的存储空间,所述第二函数用于从所述第一存储空间中读取所述第二版本信息,并将所述更新结束信息发送至所述BMC,所述第一存储空间用于存储所述第二函数、所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第二版本时,所述当前版本信息是所述第二版本信息。
在一个示例性实施例中,在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,将所述第一存储空间中存储的当前版本信息从所述第一版本信息更新为所述第二版本信息,其中,在所述目标固件的当前版本是所述第二版本时,所述当前版本信息是所述第二版本信息。
在一个示例性实施例中,所述将更新结束信息发送至所述BMC,包括:调用目标接口将所述更新结束信息发送至所述BMC。
在一个示例性实施例中,所述将更新结束信息发送至所述BMC,包括:将所述更新结束信息发送至所述BMC,其中,所述更新结束信息还包括第二状态信息,所述第二状态信息用于表示完成更新所述目标固件。
在一个示例性实施例中,所述目标固件包括以下至少之一:基本输入输出系统BIOS、复杂可编程逻辑器件CPLD、现场可更换单元FRU、电源管理芯片。
根据本申请的一个实施例,还提供了另一种服务器日志生成方法,包括:在通过服务器的操作系统中的目标程序开始将所述服务器中的目标固件从第一版本更新为第二版本的情况下,接收所述目标固件发送的更新开始信息,并将接收到的所述更新开始信息记录在目标日志中,其中,所述更新开始信息包括第一版本信息,所述第一版本信息是所述第一版本的描述信息,所述第一版本信息是执行预先设置的第一函数从第一存储空间中获取到的版本信息,所述第一存储空间被设置为存储所述第一函数和预先设置的第二函数,在开始将所述目标固件从所述第一版本更新为所述第二版本时,所述第一存储空间还被设置为存储所述目标固件的所述第一版本和所述第一版本信息;在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,接收所述目标固件发送的更新结束信息,并将接收到的所述更新结束信息记录在所述目标日志中,其中,所述更新结束信息包括第二版本信息,所述第二版本信息是所述第二版本的描述信息,所述第二版本信息是执行预先设置的所述第二函数从所述第一存储空间中获取到的版本信息,在完成将所述目标固件从所述第一版本更新为所述第二版本时,所述第一存储空间还被设置为存储所述目标固件的所述第二版本和所述第二版本信息,所述目标固件的所述第二版本用于替换所述第一存储空间中存储的所述目标固件的所述第一版本,所述第二版本信息用于替换所述第一存储空间中存储的所述第一版本信息。
在一个示例性实施例中,所述更新开始信息还包括第一状态信息,所述第一状态信息用于表示开始更新所述目标固件;所述更新结束信息还包括第二状态信息,所述第二状态信息用于表示完成更新所述目标固件。
根据本申请的另一个实施例,提供了一种服务器日志生成装置,包括:第一获取模块,用于在通过服务器的操作系统中的目标程序开始将所述服务器中的目标固件从第一版本更新为第二版本的情况下,获取所述目标固件的第一版本信息,并将更新开始信息发送至所述服务器的基板管理控制器BMC,其中,所述更新开始信息包括所述第一版本信息,所述第一版本信息是所述第一版本的描述信息,所述BMC被设置为将接收到的所述更新开始信息记录在目标日志中;第二获取模块,用于在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,获取所述目标固件的第二版本信息,并将更新结束信息发送至所述BMC,其中,所述更新结束信息包括所述第二版本信息,所述第二版本信息是所述第二版本的描述信息,所述BMC被设置为将接收到的所述更新结束信息记录在所述目标日志中。
根据本申请的另一个实施例,还提供了一种服务器日志生成装置,包括:第一接收模块,用于在通过服务器的操作系统中的目标程序开始将所述服务器中的目标固件从第一版本更新为第二版本的情况下,接收所述目标固件发送的更新开始信息,并将接收到的所述更新开始信息记录在目标日志中,其中,所述更新开始信息包括第一版本信息,所述第一版本信息是所述第一版本的描述信息,所述第一版本信息是执行预先设置的第一函数从第一存储空间中获取到的版本信息,所述第一存储空间被设置为存储所述第一函数和预先设置的第二函数,在开始将所述目标固件从所述第一版本更新为所述第二版本时,所述第一存储空间还被设置为存储所述目标固件的所述第一版本和所述第一版本信息;第二接收模块,用于在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,接收所述目标固件发送的更新结束信息,并将接收到的所述更新结束信息记录在所述目标日志中,其中,所述更新结束信息包括第二版本信息,所述第二版本信息是所述第二版本的描述信息,所述第二版本信息是执行预先设置的所述第二函数从所述第一存储空间中获取到的版本信息,在完成将所述目标固件从所述第一版本更新为所述第二版本时,所述第一存储空间还被设置为存储所述目标固件的所述第二版本和所述第二版本信息,所述目标固件的所述第二版本用于替换所述第一存储空间中存储的所述目标固件的所述第一版本,所述第二版本信息用于替换所述第一存储空间中存储的所述第一版本信息。
根据本申请的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本申请,在通过服务器的操作系统中的工具开始对服务器中的固件进行更新的情况下,可以但不限于获取固件在更新之前的第一版本信息,将携带有第一版本信息的更新开始信息发送给BMC,在通过服务器的操作系统中的工具完成对服务器中的固件进行更新的情况下,可以但不限于获取固件在更新之后的第二版本信息,将携带有第二版本信息的更新结束信息发送给BMC,通过这样的方式,实现了在通过服务器的操作系统中的工具对服务器的固件进行更新的情况下,可以将更新开始信息和更新结束信息发送至BMC,BMC将更新开始信息和更新结束信息记录在日志中,因此,可以解决在通过服务器的操作系统中的目标程序对服务器的固件进行更新的情况下,BMC无法在日志中记录固件的版本信息问题,达到在通过服务器的操作系统中的目标程序对服务器的固件进行更新的情况下,BMC可以在日志中记录固件的版本信息的技术效果。
附图说明
图1是本申请实施例的一种服务器日志生成方法的服务器的架构图;
图2是根据本申请实施例的一种可选的服务器日志生成方法的应用场景示意图;
图3是根据本申请实施例的服务器日志生成方法的流程图一;
图4是根据本申请实施例的一种可选的执行第一函数的示意图一;
图5是根据本申请实施例的一种可选的将第一版本信息存储在第一存储空间中的示意图;
图6是根据本申请实施例的一种可选的执行第一函数的示意图二;
图7是根据本申请实施例的一种可选的执行第二函数的示意图一;
图8是根据本申请实施例的一种可选的执行第二函数的示意图二;
图9是根据本申请实施例的服务器日志生成方法的流程图二;
图10是根据本申请实施例的一种可选的服务器日志生成方法的示意图;
图11是根据本申请实施例的一种可选的服务器日志生成方法的时序图;
图12是根据本申请实施例的服务器日志生成装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在服务器设备或者类似的运算装置中执行。以运行在服务器设备上为例,图1是本申请实施例的一种服务器日志生成方法的服务器的架构图。服务器中可以但不限于部署有目标固件,如图1所示,在服务器中可以但不限于部署有CPU(Central Processing Unit,中央处理器)、目标固件、内存和BMC,CPU和目标固件以及内存之间建立了通信连接,CPU和BMC之间建立了通信连接。BMC可以但不限于通过CPU与目标固件之间建立通信连接。BMC是一种位于服务器主板上的独立管理控制器,具有远程管理、监控和控制功能,例如,可以但不限于在服务器中的目标固件进行更新的情况下,在BMC中生成目标日志,在目标日志中记录目标固件的更新情况,例如,目标固件更新之前的版本信息、目标固件更新之后的版本信息等等。
首先,对本申请实施例中出现的英文简称进行解释如下:
BIOS:Basic Input Output System,基本输入输出系统,用于引导服务器的系统启动。
BMC:Baseboard Management Controller,基板管理控制器。
SEL:System Event Log,系统事件日志。
SMI:System Management Interrupt,系统管理中断。
SMM:System Management Mode,系统管理模式。
IPMI:Intelligent Platform Management Interface,智能型平台管理接口。
FLASH:Flash EEPROM Memory,一种非易失性存储芯片。
为了更好地理解本申请实施例中的服务器日志生成方法,下面结合可选的实施例,对本申请实施例中的服务器日志生成方法的应用场景进行解释和说明,可以但不限于适用于本申请实施例。
图2是根据本申请实施例的一种可选的服务器日志生成方法的应用场景示意图,如图2所示,在服务器202上部署有目标固件204和BMC(Baseboard ManagementController,基板管理控制器)206,在通过服务器的操作系统中的目标程序开始将服务器中的目标固件从第一版本更新为第二版本的情况下,可以但不限于通过以下步骤将目标固件204的版本信息的变化情况记录在目标日志中:
步骤S202,在通过服务器202的操作系统中的目标程序开始将服务器202中的目标固件204从第一版本更新为第二版本的情况下,获取目标固件204的第一版本信息,并将更新开始信息发送至服务器202的基板管理控制器BMC206,其中,更新开始信息包括第一版本信息,第一版本信息是第一版本的描述信息,BMC206被设置为将接收到的更新开始信息记录在目标日志中。
步骤S204,在通过目标程序完成将目标固件从第一版本更新为第二版本的情况下,获取目标固件的第二版本信息,并将更新结束信息发送至BMC,其中,更新结束信息包括第二版本信息,第二版本信息是第二版本的描述信息,BMC被设置为将接收到的更新结束信息记录在目标日志中。
作为一种可选的示例,BMC206在接收到更新开始信息的情况下,可以但不限于a年b月c日 14:00,目标固件204的第一版本信息和开始更新目标固件204记录在目标日志中,BMC206在接收到更新结束信息的情况下,可以但不限于a年b月c日 16:00,目标固件204的第二版本信息和完成更新目标固件204记录在目标日志中。
例如,在通过BMC对服务器的固件进行更新的情况下,BMC可以在日志中记录对应的版本信息,在更新开始的情况下,在日志中记录的是:a年b月c日14:00,当前固件版本号为2.0,开始更新;在更新完成的情况下,在日志中记录的是:a年b月c日18:00 当前固件版本号为3.0,版本升级,更新完成。
通过这样的方式,在通过服务器的操作系统中的目标程序对服务器中的目标固件的版本进行更新的情况下,实现了BMC及时在日志中记录目标固件的更新情况,当系统出现异常或故障时,管理员可以通过查阅日志来了解目标固件的更新过程和结果,及时发现问题,从而更好地处理故障和异常情况,提高系统的稳定性和可靠性。
在本实施例中提供了一种服务器日志生成方法,图3是根据本申请实施例的服务器日志生成方法的流程图一,如图3所示,该流程包括如下步骤:
步骤S302,在通过服务器的操作系统中的目标程序开始将所述服务器中的目标固件从第一版本更新为第二版本的情况下,获取所述目标固件的第一版本信息,并将更新开始信息发送至所述服务器的基板管理控制器BMC,其中,所述更新开始信息包括所述第一版本信息,所述第一版本信息是所述第一版本的描述信息,所述BMC被设置为将接收到的所述更新开始信息记录在目标日志中;
步骤S304,在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,获取所述目标固件的第二版本信息,并将更新结束信息发送至所述BMC,其中,所述更新结束信息包括所述第二版本信息,所述第二版本信息是所述第二版本的描述信息,所述BMC被设置为将接收到的所述更新结束信息记录在所述目标日志中。
通过上述步骤,在通过服务器的操作系统中的工具开始对服务器中的固件进行更新的情况下,可以但不限于获取固件在更新之前的第一版本信息,将携带有第一版本信息的更新开始信息发送给BMC,在通过服务器的操作系统中的工具完成对服务器中的固件进行更新的情况下,可以但不限于获取固件在更新之后的第二版本信息,将携带有第二版本信息的更新结束信息发送给BMC,通过这样的方式,实现了在通过服务器的操作系统中的工具对服务器的固件进行更新的情况下,可以将更新开始信息和更新结束信息发送至BMC,BMC将更新开始信息和更新结束信息记录在日志中,因此,可以解决在通过服务器的操作系统中的目标程序对服务器的固件进行更新的情况下,BMC无法在日志中记录固件的版本信息问题,达到在通过服务器的操作系统中的目标程序对服务器的固件进行更新的情况下,BMC可以在日志中记录固件的版本信息的技术效果。
其中,上述步骤的执行主体可以为服务器等,但不限于此。
在上述步骤S302提供的技术方案中,BMC是一种位于服务器主板上的独立管理控制器,具有远程管理、监控和控制功能。SEL(System Event Log,系统事件日志,或称为目标日志)是BMC记录系统事件的功能之一。为了提供对服务器系统发生的重要事件的跟踪和分析能力,记录诸如硬件错误、电源状态变化、传感器报警等各种系统事件。通过监控和分析SEL日志,管理员可以更好地了解系统的健康状况,及时发现问题,处理故障和异常情况,提高系统的稳定性和可靠性。同时,SEL日志也为故障排查和维护提供了重要的参考依据,帮助管理员进行问题定位和解决。
而记录固件的版本号及其变更记录,是SEL中重要的一项内容,其意义包括如下几点。1.问题跟踪和故障排查:SEL记录了系统的事件和状态变化,包括固件更新的相关信息。当系统出现异常或故障时,管理员可以通过查阅SEL日志来了解固件更新的过程和结果,从而更好地进行问题追踪和故障排查。2.维护历史记录:通过记录BIOS版本号和相关事件,SEL提供了一份系统维护的历史记录。管理员可以在需要时查看SEL日志,了解系统维护的历史记录。管理员可以在需要时查看SEL日志,了解系统维护的时间、内容和结果,为后续维护工作提供参考。3.安全性检查:SEL日志中记录了每次固件更新的详细信息,包括更新的时间、日期、版本号等。这对于安全性检查非常重要,可以确保固件更新的合法性和完整性,避免未经授权的篡改或恶意操作。4.远程管理和监控:BMC通常支持远程管理和监控功能。通过生成SEL日志,BMC可以将固件更新的相关信息传输到远程管理终端,管理员可以从远程位置查看和分析SEL日志,实现对多个服务器的集中管理和监控。
总的来说,BMC对固件的版本号进行记录并生成SEL日志有助于问题跟踪、故障排查。提供系统维护历史记录,加强安全性检查,并支持远程管理和监控功能。这些优点可以提高系统管理的效率和可靠性,为管理员提供更便捷的管理手段。因此,在BMC对固件版本号进行记录并生成SEL日志是十分有必要的。
可以但不限于通过BMC对服务器中的目标固件进行更新,在这样的情况下,BMC可以在日志中记录固件的版本变化,例如,在通过BMC对服务器的BIOS(Basic Input/OutputSystem,基本输入输出系统)固件进行更新的情况下,可以但不限于BMC更新预先加密打包好的BIOS hpm文件并监控其更新进程。首先,先创建一个.conf后缀的配置文件,里面包含设备信息、厂商信息、产品信息、固件主版本号、固件次版本号、主板ID(Identitydocument,身份证标识号)等一些配置信息。其次,将编译生成的BIOS bin文件加上配置文件整合加密成hpm文件,供BMC进行更新使用。最后,BMC对BIOS hpm文件进行更新时,解析配置文件获取固件主版本号、次版本号,整合获得BIOS版本号,通过预先协议约定的IPMI命令生成相应的SEL记录,实现BIOS升级时候版本号的管控。
但在通过服务器的操作系统中的目标程序对服务器中的固件进行更新的情况下,BMC无法知道服务器中的固件已经进行了更新,进而导致BMC无法将固件的更新情况记录在日志中。为了实现在不通过BMC对服务器的固件进行更新的情况下,也能在日志中记录固件的版本变化情况,可以但不限于在通过服务器的操作系统中的目标程序开始将服务器中的目标固件从第一版本更新为第二版本的情况下,获取目标固件的第一版本信息,并将更新开始信息发送至服务器的基板管理控制器BMC。
可选的,在本实施例中,目标程序可以但不限于包括更新工具的目标应用、或者目标软件等等。第一版本是目标固件的当前版本,第二版本是目标固件待更新至的版本,第二版本可能低于第一版本,例如,是对目标固件的版本进行了降级,或者第二版本可能高于第一版本,例如,是对目标固件的版本进行了升级,或者,第二版本可能和第一版本相同,例如,是对目标固件的版本进行了重刷。
可选的,在本实施例中,第一版本信息是第一版本的描述信息,描述信息可以但不限于包括第一版本的版本号、版本大小和版本来源等等,例如,第一版本的版本号为V2.1,版本大小为30M,版本来源为软件1。第一版本的版本号可以但不限于包括主版本号和次版本号,例如第一版本的主版本号为V2.1中的2,例如第一版本的次版本号为V2.1中的1。
可选的,在本实施例中,BMC可以但不限于将接收到的更新开始信息记录在目标日志中,例如,在通过服务器的操作系统中的目标程序开始对服务器的固件进行更新的情况下,BMC在日志中记录的是:a年b月c日14:00,固件的版本号为V2.0,开始更新。
在一个示范性实施例中,可以但不限于通过以下方式在通过服务器的操作系统中的目标程序开始将服务器中的目标固件从第一版本更新为第二版本的情况下,获取目标固件的第一版本信息,并将更新开始信息发送至服务器的基板管理控制器BMC:在通过所述目标程序开始将所述服务器中的所述目标固件从所述第一版本更新为所述第二版本的情况下,执行预先设置的第一函数,其中,所述第一函数用于获取所述目标固件的所述第一版本信息,并将所述更新开始信息发送至所述BMC。
可选的,在本实施例中,预先设置的第一函数可以但不限于为目标类型的函数,作为一种可选的示例,目标类型的函数可以但不限于包括SMM模块类型的函数。
可选的,在本实施例中,第一函数可以但不限于用于获取目标固件的第一版本信息,并将更新开始信息发送至BMC,实现了在通过服务器的操作系统中的目标程序开始将服务器中的目标固件从第一版本更新为第二版本的情况下,BMC能够及时接收目标固件更新之前的第一版本信息。
在一个示范性实施例中,可以但不限于通过以下方式在通过目标程序开始将服务器中的目标固件从第一版本更新为第二版本的情况下,执行预先设置的第一函数:在通过所述目标程序开始将所述服务器中的所述目标固件从所述第一版本更新为所述第二版本的情况下,通过所述目标固件执行所述第一函数,以获取所述目标固件的所述第一版本信息,并将所述更新开始信息发送至所述BMC。
可选的,在本实施例中,在通过目标程序开始将服务器中的目标固件从第一版本更新为第二版本的情况下,可以但不限于通过目标固件执行第一函数,以使得获取目标固件的第一版本信息,并将更新开始信息发送至BMC。
在一个示范性实施例中,可以但不限于通过以下方式在通过目标程序开始将服务器中的目标固件从第一版本更新为第二版本的情况下,通过目标固件执行所述第一函数,包括:在通过所述目标程序开始将所述服务器中的所述目标固件从所述第一版本更新为所述第二版本的情况下,将所述操作系统从运行状态切换至暂停运行状态,将所述目标固件从暂停运行状态切换成运行状态,并通过所述目标固件执行所述第一函数。
可选的,在本实施例中,服务器的操作系统和目标固件可以但不限是串行运行的,可以理解的是,服务器的操作系统和目标固件之间是不能同时运行的,在这样的情况下,可以但不限于将服务器的操作系统从运行状态切换至暂停运行状态,例如,服务器的操作系统从正在运行切换至暂停运行,将目标固件从暂停运行状态切换至运行状态,例如,目标固件从暂停运行切换至正在运行,并通过目标固件执行第一函数。
在一个示范性实施例中,可以但不限于通过以下方式在通过目标程序开始将服务器中的目标固件从第一版本更新为第二版本的情况下,通过目标固件执行第一函数,包括:在通过所述目标程序开始将所述服务器中的所述目标固件从所述第一版本更新为所述第二版本的情况下,触发目标中断,并通过所述目标固件执行所述第一函数,其中,所述第一函数是触发所述目标中断后所触发执行的函数。
可选的,在本实施例中,目标中断可以但不限于用于将控制权从服务器的操作系统转移到目标固件,可以理解的是,目标中断可以但不限于用于将服务器的操作系统从运行状态切换至暂停运行状态,将目标固件从暂停运行状态切换至运行状态。目标中断可以但不限于包括SMI中断。
例如,在通过目标程序开始将服务器中的目标固件从第一版本更新为第二版本的情况下(例如开始从 1.02版本更新到1.03版本)时,可以但不限于触发SMI中断进入SMM模式,此时控制权会从OS(Operating System,操作系统)转移到目标固件,目标固件执行第一个SMM模块函数(或称为,第一函数)。
在一个示范性实施例中,可以但不限于通过以下方式通过目标固件执行第一函数:在所述目标固件的所述第一版本被从第一存储空间复制到第二存储空间的情况下,通过所述第二存储空间中存储的所述目标固件的所述第一版本执行所述第一函数,其中,所述第二存储空间是所述服务器的内存中的存储空间,所述第一函数用于从所述第一存储空间中读取所述第一版本信息,并将所述更新开始信息发送至所述BMC,所述第一存储空间用于存储所述第一函数、所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第一版本时,所述当前版本信息是所述第一版本信息。
可选的,在本实施例中,目标固件可以但不限于包括一组固化的程序或者代码,目标固件的版本可以但不限于包括某一个版本的程序或者代码。例如,目标固件的第一版本可以但不限于包括第一版本的程序或者代码,目标固件的第二版本可以但不限于包括第二版本的程序或者代码。
可选的,在本实施例中,在通过目标程序开始将服务器中的目标固件从第一版本更新为第二版本的情况下,为了提升更新的效率,可以但不限于将第一存储空间中存储的目标固件的第一版本复制到第二存储空间中。第一存储空间可以但不限于包括目标固件所固化在的硬盘中的存储空间,例如,Flash芯片等等,第一存储空间中可以但不限于存储有目标固件的当前版本信息、目标固件的当前版本和第一函数,例如,Flash芯片中的0x20FF0到0x20FFF所对应的存储空间是用于存储目标固件的当前版本信息的存储空间。
图4是根据本申请实施例的一种可选的执行第一函数的示意图一,如图4所示,在服务器202上部署有目标固件204和BMC(Baseboard Management Controller,基板管理控制器)206以及内存208,在内存208中部署有第二存储空间。第一存储空间用于存储第一函数、目标固件的当前版本和目标固件的当前版本信息,在目标固件的当前版本是第一版本时,当前版本信息是第一版本信息。
可以但不限于在目标固件的第一版本从第一存储空间复制到第二存储空间的情况下,通过第二存储空间中存储的目标固件的第一版本执行第一函数,例如,其操作为通过读写IO接口的方式获取第一存储空间中0x20FF0至0x20FFF位置上的信息。
在一个示范性实施例中,可以但不限于通过以下方式执行预先设置的第一函数:执行所述第一函数中的第一部分代码,其中,所述第一部分代码用于从第一存储空间中读取所述第一版本信息,所述第一存储空间用于存储所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第一版本时,所述当前版本信息是所述第一版本信息;执行所述第一函数中的第二部分代码,其中,所述第二部分代码用于将所述更新开始信息发送至所述BMC。
可选的,在本实施例中,第一函数中可以但不限于包括两部分的代码,第一部分代码可以但不限于用于从第一存储空间中读取第一版本信息,例如,第一版本的版本号、版本大小和版本来源等等。第二部分代码可以但不限于将携带有第一版本信息的更新开始信息发送至BMC。
在一个示范性实施例中,在执行预先设置的第一函数之前,上述方法还包括:在所述第一版本信息是所述目标固件的初始版本的版本信息的情况下,将所述第一版本信息存储在所述第一存储空间中;或者在通过所述目标程序完成将所述目标固件从第三版本更新为所述第一版本的情况下,将所述第一存储空间中存储的所述当前版本信息从第三版本信息更新为所述第一版本信息,其中,所述第三版本信息是所述第三版本的描述信息。
可选的,在本实施例中,第一版本信息可能是目标固件的初始版本的版本信息,例如,第一版本信息是目标固件的默认版本的版本信息,在这样的情况下,可以但不限于将第一版本信息存储在第一存储空间中。
可选的,在本实施例中,第一版本信息可能不是目标固件的初始版本的版本信息,可以理解的是,第一版本信息不是目标固件的默认版本的版本信息,例如,在通过目标程序完成将目标固件从第三版本更新为第一版本的情况下,可以但不限于将第一存储空间中存储的第三版本信息更新为第一版本信息。
图5是根据本申请实施例的一种可选的将第一版本信息存储在第一存储空间中的示意图,如图5所示,在通过目标程序将目标固件从第三版本更新为第一版本之前,在第一存储空间中存储的是目标固件的第三版本、目标固件的第三版本信息和第一函数,在通过目标程序完成将目标固件从第三版本更新为第一版本的情况下,将第一存储空间中存储的第三版本信息更新为第一版本信息,在这样的情况下,第一存储空间中存储了目标固件的第一版本、目标固件的第一版本信息和第一函数。
在一个示范性实施例中,可以但不限于通过以下方式执行预先设置的第一函数:执行第一存储空间中存储的所述第一函数,其中,所述第一函数用于从所述第一存储空间中读取所述第一版本信息,并将所述更新开始信息发送至所述BMC,所述第一存储空间用于存储所述第一函数、所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第一版本时,所述当前版本信息是所述第一版本信息;或者在所述第一函数被从所述第一存储空间复制到第二存储空间的情况下,执行所述第二存储空间中存储的所述第一函数,其中,所述第二存储空间是所述服务器的内存中的存储空间,所述第一函数用于从所述第一存储空间中读取所述第一版本信息,并将所述更新开始信息发送至所述BMC,所述第一存储空间用于存储所述第一函数、所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第一版本时,所述当前版本信息是所述第一版本信息。
可选的,在本实施例中,可以但不先限于通过第二存储空间中的目标固件的第一版本执行第二存储空间中的存储的第一函数,如图4所示,仅将目标固件的当前版本(例如,第一版本)复制到第二存储空间,然后通过第二存储空间中的目标固件的第一版本执行第一存储空间中的存储的第一函数。通过这样的方式,减少了第一函数所占用的内存的存储空间,提升了内存的存储空间的利用率。
可选的,在本实施例中,图6是根据本申请实施例的一种可选的执行第一函数的示意图二,如图6所示,在服务器202上部署有目标固件204和BMC(Baseboard ManagementController,基板管理控制器)206以及内存208,在内存208中部署有第二存储空间。第一存储空间用于存储第一函数、目标固件的当前版本和目标固件的当前版本信息,在目标固件的当前版本是第一版本时,当前版本信息是第一版本信息。
在目标固件的当前版本(例如,第一版本)和第一函数被从第一存储空间复制到第二存储空间的情况下,可以但不限于通过第二存储空间中的目标固件的当前版本(例如,第一版本)执行第二存储空间中存储的第一函数。通过这样的方式,节省了第二存储空间中的目标固件的当前版本执行第一存储空间中存储的第一函数所需的时间,提升了在内存中执行函数的效率。
在一个示范性实施例中,可以但不限于通过以下方式将更新开始信息发送至服务器的基板管理控制器BMC:调用目标接口将所述更新开始信息发送至所述BMC。
可选的,在本实施例中,目标接口是BMC和目标固件之间的接口,例如,目标接口是满足目标协议的接口,作为一种可选的示例,目标接口可以但不限于包括满足IPMI协议的接口。
在一个示范性实施例中,可以但不限于通过以下方式将更新开始信息发送至服务器的基板管理控制器BMC:将所述更新开始信息发送至所述BMC,其中,所述更新开始信息还包括第一状态信息,所述第一状态信息用于表示开始更新所述目标固件。
可选的,在本实施例中,第一状态信息可以但不限于是固定在第一函数中的,可以理解的是,在触发目标中断后触发执行第一函数的情况下,可以表明开始更新目标固件。
在一个示范性实施例中,在通过目标程序完成将目标固件从第一版本更新为第二版本的情况下,获取目标固件的第二版本信息,并将更新结束信息发送至BMC之前,上述方法还包括:在将所述更新开始信息发送至所述BMC之后,将所述目标固件从运行状态切换至暂停运行状态,并将所述操作系统从暂停运行状态切换至运行状态,通过所述目标程序继续将所述目标固件从所述第一版本更新为所述第二版本。
可选的,在本实施例中,在将更新开始信息发送至BMC之后,无需关注BMC是否完成接收更新开始信息,而是将目标固件从运行状态切换至暂停运行状态,并将操作系统从暂停运行状态切换至运行状态,通过目标程序继续将目标固件从第一版本更新为第二版本,可以理解的是,在将更新开始信息发送至BMC的情况下,就通过目标程序继续对目标固件进行更新,减少了等待BMC完成接收更新开始信息的时间,提升了固件的更新的效率。
在上述步骤S304提供的技术方案中,第二版本信息是第二版本的描述信息,第二版本的描述信息可以但不限于包括第二版本的版本号、第二版本的版本大小和第二版本的版本来源等等,例如,第二版本的版本号为V3.0,版本大小为40M,版本来源为软件2。
可选的,在本实施例中,BMC可以但不限于将接收到的更新结束信息记录在目标日志中,例如,在通过服务器的操作系统中的目标程序完成对服务器的固件进行更新的情况下,BMC在日志中记录的是:a年b月c日16:00,固件的版本号为V3.0,完成更新。
在一个示范性实施例中,可以但不限于通过以下方式在通过目标程序完成将目标固件从第一版本更新为第二版本的情况下,获取目标固件的第二版本信息,并将更新结束信息发送至BMC:在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,执行预先设置的第二函数,其中,所述第二函数用于获取所述目标固件的所述第二版本信息,并将所述更新结束信息发送至所述BMC。
可选的,在本实施例中,预先设置的第二函数可以但不限于为目标类型的函数,作为一种可选的示例,目标类型的函数可以但不限于包括SMM模块类型的函数。
可选的,在本实施例中,第二函数可以但不限于用于获取目标固件的第二版本信息,并将更新结束信息发送至BMC,实现了在通过服务器的操作系统中的目标程序完成将服务器中的目标固件从第一版本更新为第二版本的情况下,BMC能够及时接收目标固件更新之后的第二版本信息。
在一个示范性实施例中,可以但不限于通过以下方式在通过目标程序完成将目标固件从第一版本更新为第二版本的情况下,执行预先设置的第二函数:在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,通过所述目标固件执行所述第二函数,以获取所述目标固件的所述第二版本信息,并将所述更新结束信息发送至所述BMC。
可选的,在本实施例中,在通过目标程序完成将服务器中的目标固件从第一版本更新为第二版本的情况下,可以但不限于通过目标固件执行第二函数,以使得获取目标固件的第二版本信息,并将更新结束信息发送至BMC。
在一个示范性实施例中,可以但不限于通过以下方式在通过目标程序完成将目标固件从第一版本更新为第二版本的情况下,通过目标固件执行所述第二函数:在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,将所述操作系统从运行状态切换至暂停运行状态,将所述目标固件从暂停运行状态切换成运行状态,并通过所述目标固件执行所述第二函数。
可选的,在本实施例中,在通过目标程序完成将目标固件从第一版本更新为第二版本的情况下,可以但不限于将服务器的操作系统从运行状态切换至暂停运行状态,例如,服务器的操作系统从正在运行切换至暂停运行,将目标固件从暂停运行状态切换至运行状态,例如,目标固件从暂停运行切换至正在运行,并通过目标固件执行第二函数。
在一个示范性实施例中,可以但不限于通过以下方式在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,通过所述目标固件执行所述第二函数:在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,触发目标中断,并通过所述目标固件执行所述第二函数,其中,所述第二函数是触发所述目标中断后所触发执行的函数。
可选的,在本实施例中,目标中断可以但不限于用于将控制权从服务器的操作系统转移到目标固件,可以理解的是,目标中断可以但不限于用于将服务器的操作系统从运行状态切换至暂停运行状态,将目标固件从暂停运行状态切换至运行状态。目标中断可以但不限于包括SMI中断。
例如,在通过目标程序完成将服务器中的目标固件从第一版本更新为第二版本的情况下(例如完成从 1.02版本更新到1.03版本)时,可以但不限于触发SMI中断进入SMM模式,此时控制权会从OS转移到目标固件,目标固件执行第二个SMM模块函数(或称为,第一函数)。
在一个示范性实施例中,可以但不限于通过以下方式通过目标固件执行第二函数:在所述目标固件的所述第一版本被从第一存储空间复制到第二存储空间的情况下,通过所述第二存储空间中存储的所述目标固件的所述第一版本执行所述第二函数,其中,所述第二存储空间是所述服务器的内存中的存储空间,所述第二函数用于从所述第一存储空间中读取所述第二版本信息,并将所述更新结束信息发送至所述BMC,所述第一存储空间用于存储所述第二函数、所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第二版本时,所述当前版本信息是所述第二版本信息。
可选的,在本实施例中,为了提升更新的效率,可以但不限于将第一存储空间中存储的目标固件的第一版本复制到第二存储空间中,通过第二存储空间中存储的目标固件的第一版本执行第二函数。
图7是根据本申请实施例的一种可选的执行第二函数的示意图一,如图7所示,在服务器202上部署有目标固件204和BMC(Baseboard Management Controller,基板管理控制器)206以及内存208,在内存208中部署有第二存储空间。第一存储空间用于存储第一函数、第二函数、目标固件的当前版本和目标固件的当前版本信息,在目标固件的当前版本是第二版本时,当前版本信息是第二版本信息,可以理解的是,已经通过目标程序完成将服务器中的目标固件从第一版本更新为第二版本。
可以但不限于在目标固件的第一版本从第一存储空间复制到第二存储空间的情况下,通过第二存储空间中存储的目标固件的第一版本执行第二函数,例如,其操作为通过读写IO接口的方式获取第一存储空间中0x20FF0至0x20FFF位置上存储的目标固件的第二版本信息。
在一个示范性实施例中,可以但不限于通过以下方式执行预先设置的第二函数:执行所述第二函数中的第三部分代码,其中,所述第二函数中的第三部分代码用于从第一存储空间中读取所述第二版本信息,所述第一存储空间用于存储所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第二版本时,所述当前版本信息是所述第二版本信息;执行所述第二函数中的第四部分代码,其中,所述第二函数中的第四部分代码用于将所述更新结束信息发送至所述BMC。
可选的,在本实施例中,第二函数中可以但不限于包括第三部分代码和第四部分代码,第三部分代码可以但不限于用于从第一存储空间中读取第二版本信息,例如,第二版本的版本号、第二版本的版本大小和第二版本的版本来源等等。第四部分代码可以但不限于将携带有第二版本信息的更新结束信息发送至BMC。
在一个示范性实施例中,可以但不限于通过以下方式执行预先设置的第二函数:执行第一存储空间中存储的所述第二函数,其中,所述第二函数用于从所述第一存储空间中读取所述第二版本信息,并将所述更新结束信息发送至所述BMC,所述第一存储空间用于存储所述第二函数、所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第二版本时,所述当前版本信息是所述第二版本信息;或者在所述第二函数被从所述第一存储空间复制到第二存储空间的情况下,执行所述第二存储空间中存储的所述第二函数,其中,所述第二存储空间是所述服务器的内存中的存储空间,所述第二函数用于从所述第一存储空间中读取所述第二版本信息,并将所述更新结束信息发送至所述BMC,所述第一存储空间用于存储所述第二函数、所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第二版本时,所述当前版本信息是所述第二版本信息。
可选的,在本实施例中,可以但不先限于通过第二存储空间中的目标固件的第一版本执行第二存储空间中的存储的第二函数,如图7所示,仅将目标固件的第一版本复制到第二存储空间,然后通过第二存储空间中的目标固件的第一版本执行第一存储空间中的存储的第二函数。通过这样的方式,减少了第二函数所占用的内存的存储空间,提升了内存的存储空间的利用率。
可选的,在本实施例中,图8是根据本申请实施例的一种可选的执行第二函数的示意图二,如图8所示,在服务器202上部署有目标固件204和BMC(Baseboard ManagementController,基板管理控制器)206以及内存208,在内存208中部署有第二存储空间。第一存储空间用于存储第一函数、第二函数、目标固件的当前版本和目标固件的当前版本信息,在目标固件的当前版本是第二版本时,当前版本信息是第二版本信息。
在目标固件的第一版本和第二函数被从第一存储空间复制到第二存储空间的情况下,可以但不限于通过第二存储空间中的目标固件的第一版本执行第二存储空间中存储的第二函数。通过这样的方式,节省了第二存储空间中的目标固件的第一版本执行第一存储空间中存储的第一函数所需的时间,提升了在内存中执行函数的效率。
在一个示范性实施例中,可以但不限于通过以下方式对第一存储空间中存储的当前版本信息进行更新:在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,将所述第一存储空间中存储的当前版本信息从所述第一版本信息更新为所述第二版本信息,其中,在所述目标固件的当前版本是所述第二版本时,所述当前版本信息是所述第二版本信息。
可选的,在本实施例中,在通过目标程序完成将目标固件从第一版本更新为第二版本的情况下,可以但不限于将第一存储空间中存储的当前版本信息从第一版本信息更新为第二版本信息,例如,将第一存储空间中0x20FF0至0x20FFF位置上存储的目标固件的第一版本信息更新为第二版本信息。
在一个示范性实施例中,可以但不限于通过以下方式将更新结束信息发送至所述BMC:调用目标接口将所述更新结束信息发送至所述BMC。
可选的,在本实施例中,目标接口是BMC和目标固件之间的接口,作为一种可选的示例,目标接口可以但不限于包括满足目标协议的接口,可选的,目标接口可以但不限于包括满足IPMI协议的接口。
在一个示范性实施例中,可以但不限于通过以下方式将更新结束信息发送至BMC:将所述更新结束信息发送至所述BMC,其中,所述更新结束信息还包括第二状态信息,所述第二状态信息用于表示完成更新所述目标固件。
可选的,在本实施例中,第二状态信息可以但不限于是固定在第二函数中的,可以理解的是,在触发目标中断后触发执行第二函数的情况下,可以表明完成更新目标固件。
可选的,在本实施例中,更新结束信息还可以但不限于包括第三状态信息,其中,第三状态信息用于表示在完成更新目标固件的情况下,所述目标固件的升级情况,例如,所述目标固件的版本是升级,还是降级或者是对目标固件的同一版本进行重刷等等。
在一个示范性实施例中,所述目标固件包括以下至少之一:基本输入输出系统BIOS、复杂可编程逻辑器件CPLD、现场可更换单元FRU、电源管理芯片。
可选的,在本实施例中,目标固件可以但不限于包括以下至少之一:基本输入输出系统BIOS、复杂可编程逻辑器件CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)、现场可更换单元FRU(Field Replaceable Unit,现场可更换单元)、电源管理芯片和网卡。
可选的,在本实施例中,网卡可以但不限于包括热插拔的网卡设备,例如,ocp(Open Compute Project Network Interface,开放计算项目)网卡,或者其它的网卡等等,本申请对此不作限制。通过这样的方式,通过目标中断使控制权由系统移交到BIOS,可以实现包括但不限于BIOS版本号的信息传递,还可以实现一些BMC无法主动完成的监控功能,扩大了BMC的监控范围。
在本实施例中还提供了另一种服务器日志生成方法,图9是根据本申请实施例的服务器日志生成方法的流程图二,如图9所示,该流程包括如下步骤:
步骤S902,在通过服务器的操作系统中的目标程序开始将所述服务器中的目标固件从第一版本更新为第二版本的情况下,接收所述目标固件发送的更新开始信息,并将接收到的所述更新开始信息记录在目标日志中,其中,所述更新开始信息包括第一版本信息,所述第一版本信息是所述第一版本的描述信息,所述第一版本信息是执行预先设置的第一函数从第一存储空间中获取到的版本信息,所述第一存储空间被设置为存储所述第一函数和预先设置的第二函数,在开始将所述目标固件从所述第一版本更新为所述第二版本时,所述第一存储空间还被设置为存储所述目标固件的所述第一版本和所述第一版本信息;
步骤S904,在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,接收所述目标固件发送的更新结束信息,并将接收到的所述更新结束信息记录在所述目标日志中,其中,所述更新结束信息包括第二版本信息,所述第二版本信息是所述第二版本的描述信息,所述第二版本信息是执行预先设置的所述第二函数从所述第一存储空间中获取到的版本信息,在完成将所述目标固件从所述第一版本更新为所述第二版本时,所述第一存储空间还被设置为存储所述目标固件的所述第二版本和所述第二版本信息,所述目标固件的所述第二版本用于替换所述第一存储空间中存储的所述目标固件的所述第一版本,所述第二版本信息用于替换所述第一存储空间中存储的所述第一版本信息。
通过上述步骤,在通过服务器的操作系统中的工具开始对服务器中的固件进行更新的情况下,可以但不限于获取固件在更新之前的第一版本信息,BMC接收目标固件发送的携带有第一版本信息的更新开始信息,在通过服务器的操作系统中的工具完成对服务器中的固件进行更新的情况下,BMC接收目标固件发送的携带有第二版本信息的更新结束信息,通过这样的方式,实现了在通过服务器的操作系统中的工具对服务器的固件进行更新的情况下,可以将更新开始信息和更新结束信息发送至BMC,BMC将更新开始信息和更新结束信息记录在日志中,因此,可以解决在通过服务器的操作系统中的目标程序对服务器的固件进行更新的情况下,BMC无法在日志中记录固件的版本信息问题,达到在通过服务器的操作系统中的目标程序对服务器的固件进行更新的情况下,BMC可以在日志中记录固件的版本信息的技术效果。
其中,上述步骤的执行主体可以为服务器等,但不限于此。
在上述步骤S902提供的技术方案中,在通过服务器的操作系统中的目标程序开始将服务器中的目标固件从第一版本更新为第二版本的情况下,目标固件可以但不限于将更新开始信息发送至BMC,BMC接收目标固件发送的更新开始信息,并将接收到的更新开始信息记录在目标日志中。
可选的,在本实施例中,在通过服务器的操作系统中的目标程序完成将服务器中的目标固件从第一版本更新为第二版本的情况下,目标固件可以但不限于将更新结束信息发送至BMC,BMC接收目标固件发送的更新结束信息,并将接收到的更新结束信息记录在目标日志中。
在一个示范性实施例中,所述更新开始信息还包括第一状态信息,所述第一状态信息用于表示开始更新所述目标固件;所述更新结束信息还包括第二状态信息,所述第二状态信息用于表示完成更新所述目标固件。
可选的,在本实施例中,更新结束信息还可以但不限于包括第三状态信息,其中,第三状态信息用于表示在完成更新目标固件的情况下,所述目标固件的升级情况,例如,所述目标固件的版本是升级,还是降级或者是对目标固件的同一版本进行重刷。
例如,在通过目标程序完成将目标固件从第一版本更新为第二版本、且第二版本高于第一版本的情况下,第三状态信息可以但不限于为目标固件的版本升级,在通过目标程序完成将目标固件从第一版本更新为第二版本、且第二版本低于第一版本的情况下,第三状态信息可以但不限于为目标固件的版本降级,在通过目标程序完成将目标固件从第一版本更新为第二版本、且第二版本与第一版本相同的情况下,第三状态信息可以但不限于为目标固件的版本重刷。
例如,在通过目标程序完成将目标固件从第一版本更新为第二版本、且第二版本高于第一版本的情况下,第三状态信息可以但不限于为目标固件的版本升级,在这样的情况下,BMC可以但不限于将完成更新时间、目标固件的第二版本信息、完成更新以及对目标固件的版本进行升级记录在目标日志中。作为一种可选的示例,可以但不限于将“a年b月 c日17:00,目标固件的版本为V4.2,完成更新以及目标固件的版本升级”记录在目标日志中。
通过本申请实施例,以目标固件为BIOS为例,服务器在系统下进行过BIOS的版本更新时,通过触发目标中断,利用更新过BIOS后Flash芯片内容变更的特点,通过BIOS来实现记录BIOS版本号变更记录的方法。通过BIOS指定地址内容记录当前BIOS的版本号,获取相应的BIOS版本号。通过BIOS代码来实现SEL记录,涵盖了BMC无法监控到的更新BIOS固件的情况。因此可以解决在系统下更新BIOS时,BMC无法记录BIOS版本变更记录SEL的问题。
为了更好地理解本申请实施例中的服务器日志生成方法,可以但不限于以目标固件为BIOS为例,对本申请实施中的服务器日志生成方法进行解释和说明,可以但不限于适用于本申请实施例。
服务器在BIOS代码开发阶段,需要对BIOS区域预先分配一块指定位置的空间用于存放版本信息,例如,BIOS的版本号等信息,如定义分配0x20FF0到0x20FFF这部分空间用来存储当前BIOS版本号等信息。添加两个SMM模块类型的函数来实现获取当前BIOS的版本号,并将当前更新状态及BIOS版本号通过约定的IPMI命令传递给BMC。第一个SMM模块函数(或称为,第一函数)是在系统更新工具更新BIOS固件前期触发,用于记录更新BIOS固件的状态(例如,开始更新BIOS,相当于第一状态信息)以及BIOS版本信息,并通过IPMI命令传递给BMC进行解析。第二个SMM模块函数(或称为,第二函数)是在系统更新工具更新BIOS固件完成时触发,用于记录更新BIOS状态(例如,更新BIOS完成,相当于第二状态信息)以及BIOS更新后的版本信息,并通过IPMI命令传递给BMC进行解析。
服务器在系统内开始进行BIOS固件更新(例如从BIOS 1.02版本更新到1.03版本)时,触发SMI中断进入SMM模式,此时控制权会从OS转移到BIOS,BIOS执行第一个SMM模块函数(相当于第一函数),其操作为通过读写IO接口的方式获取0x20FF0至0x20FFF位置上存储的信息(旧版本信息为1.02),并通过IPMI命令发送给BMC,BMC将BIOS传递的信息进行解析(开始进行BIOS固件更新,当前版本号为1.02)。然后BIOS退出SMM模式,系统继续执行更新BIOS的操作。更新BIOS固件完成后,此时BIOS flash内为新版本BIOS的内容,0x20FF0至0x20FFF位置上存储的信息已经变更为1.03。触发目标中断(例如,SMI中断),控制权从系统转移到BIOS,BIOS执行第二个SMM模块函数(相当于第二函数),其作用为通过读写IO接口的方式获取0x20FF0至位置0x20FFF位置上存储的信息(1.03),并通过IPMI命令发送给BMC,BMC将BIOS传递的信息进行解析(更新BIOS完成,当前版本号为1.03)。
图10是根据本申请实施例的一种可选的服务器日志生成方法的示意图,如图10所示,可以但不限于以目标固件为BIOS为例,可以但不限于包括以下步骤:
步骤S1001,开始更新BIOS固件,例如,在服务器的操作系统下执行更新BIOS固件的操作。
步骤S1002,触发目标中断(例如,SMI中断),控制权从系统移交到BIOS。
步骤S1003,BIOS通过读写IO的方式获取Flash芯片中指定地址上存储的第一版本信息,并将更新开始信息传递给BMC,其中,更新开始信息包括第一版本信息和第一状态信息(例如,开始更新BIOS),BMC将接收到的第一版本信息和第一状态信息记录在目标日志(例如,SEL)中。例如,BIOS通过读写IO的方式获取BIOS Flash内偏移0x20FF0位置上存储的版本信息(例如,当前版本号为1.02)。BIOS通过目标接口(例如,IPMI接口)将更新状态(例如,开始更新BIOS固件)和当前BIOS的版本信息,例如,当前BIOS的版本号(1.02)发送给BMC。BMC解析此IPMI命令并呈现到系统时间日志(SEL,相当于目标日志)中。
步骤S1004,BIOS结束SMM模式,控制权从BIOS移交给系统。
步骤S1005,系统继续执行更新BIOS固件操作,一般为3至5分钟。
步骤S1006,确定预设的第一时长阈值(例如,10分钟或者20分钟等等)内是否更新完成,在预设的第一时长阈值内更新完成的情况下,执行步骤S1007至步骤S1008,在预设的时长阈值内未完成更新的情况下,执行步骤S1009。
步骤S1007,更新完成,Flash中的BIOS版本已经从第一版本更新至第二版本,触发SMI中断,控制权从系统移交到BIOS,例如,在完成BIOS固件更新的情况下,此时Flash(相当于第一存储空间)中0x20FF0至0x20FFF上存储的版本信息从第一版本信息更新为第二版本信息,例如,从版本号1.02更新为1.03,触发目标中断(例如,SMI中断),控制权从系统移交到BIOS。
步骤S1008,BIOS通过读写IO的方式从Flash芯片中指定地址上存储的第二版本信息,并将更新结束信息传递给BMC,其中,更新结束信息包括第二版本信息和第一状态信息(例如,开始更新BIOS),BMC将接收到的第二版本信息和第二状态信息记录在目标日志(例如,SEL)中,例如,BIOS通过读写IO的方式获取BIOS Flash内偏移0x20FF0至0x20FFF位置上存储的信息(例如,当前版本:1.03)。BIOS通过IPMI接口将更新状态(更新完成)和版本号(1.03)发送给BMC。BMC解析此IPMI命令并呈现到系统时间日志(SEL,相当于目标日志)中。
步骤S1009,BMC在预设的第二时长阈值内未收到BIOS传递的更新完成的信息,记录更新失败的SEL,在预设的第二时长阈值内未完成更新的情况下,BMC从步骤S1003开始计时,在预设的第二时长阈值(例如,10分钟或者15分钟等等,本申请对此不作限制)内未获取到BIOS传递的更新结束信息,则上报更新BIOS固件失败的SEL。
图11是根据本申请实施例的一种可选的服务器日志生成方法的时序图,如图11所示,可以但不限于以目标固件为BIOS为例,可以但不限于包括以下步骤。
步骤1101,在服务器的操作系统下执行更新BIOS命令(相当于通过服务器的操作系统中的目标程序开始将服务器中的BIOS从第一版本更新为第二版本)。
步骤1102,触发SMI中断(相当于目标中断),进入SMM模式。
步骤1103,BIOS获取BIOS的第一版本信息,例如,BIOS的旧版本号,通过目标接口(例如,IPMI接口)将更新开始信息发送给BMC并记录在目标日志(例如,SEL)中,其中,更新开始信息包括第一版本信息和第一状态信息,第一状态信息用于表示开始更新BIOS。
步骤1104,BMC开始计时,如果10分钟(或者15分钟,20分钟等等,本申请对此不作限制)之内未收到步骤S1108的信息,则在目标日志(例如,SEL)中记录更新BIOS失败。
步骤S1105,BIOS退出SMM模式。
步骤S1106,更新BIOS芯片内容,例如,将BIOS从第一版本更新为第二版本。
步骤S1107,触发目标中断(例如,SMI中断),进入SMM模式。
步骤S1108,BIOS获取BIOS的第二版本信息,例如,BIOS更新后的新版本号,通过目标接口(例如,IPMI接口)将更新结束信息发送给BMC,BMC将第二版本信息和第二状态信息记录在目标日志(例如,SEL)中,其中,更新结束信息包括第二版本信息和第二状态信息,第二状态信息用于表示完成更新BIOS。
步骤S1109,退出SMM模式。
步骤S1110,完成BIOS的版本更新流程。
通过上述实施例,通过服务器的操作系统下触发SMI中断,利用更新BIOS固件后Flash芯片内容变更的特点,通过BIOS获取当前实际版本的版本号,通过BIOS通过IPMI命令向BMC传递相关信息,实现在系统下进行BIOS固件更新时产生BIOS版本号的变更记录,弥补了目前方案只能通过BMC进行BIOS更新场景下才能记录BIOS版本号变更记录的不足,实现了BIOS版本号的及时获取。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在本实施例中还提供了一种服务器日志生成装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图12是根据本申请实施例的服务器日志生成装置的结构框图,如图12所示,该装置包括:
第一获取模块1202,用于在通过服务器的操作系统中的目标程序开始将所述服务器中的目标固件从第一版本更新为第二版本的情况下,获取所述目标固件的第一版本信息,并将更新开始信息发送至所述服务器的基板管理控制器BMC,其中,所述更新开始信息包括所述第一版本信息,所述第一版本信息是所述第一版本的描述信息,所述BMC被设置为将接收到的所述更新开始信息记录在目标日志中;
第二获取模块1204,用于在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,获取所述目标固件的第二版本信息,并将更新结束信息发送至所述BMC,其中,所述更新结束信息包括所述第二版本信息,所述第二版本信息是所述第二版本的描述信息,所述BMC被设置为将接收到的所述更新结束信息记录在所述目标日志中。
在一个示范性实施例中,所述第一获取模块,包括:
第一执行单元,用于在通过所述目标程序开始将所述服务器中的所述目标固件从所述第一版本更新为所述第二版本的情况下,执行预先设置的第一函数,其中,所述第一函数用于获取所述目标固件的所述第一版本信息,并将所述更新开始信息发送至所述BMC。
在一个示范性实施例中,所述第一执行单元,用于:
在通过所述目标程序开始将所述服务器中的所述目标固件从所述第一版本更新为所述第二版本的情况下,通过所述目标固件执行所述第一函数,以获取所述目标固件的所述第一版本信息,并将所述更新开始信息发送至所述BMC。
在一个示范性实施例中,所述第一执行单元,用于:
在通过所述目标程序开始将所述服务器中的所述目标固件从所述第一版本更新为所述第二版本的情况下,将所述操作系统从运行状态切换至暂停运行状态,将所述目标固件从暂停运行状态切换成运行状态,并通过所述目标固件执行所述第一函数。
在一个示范性实施例中,所述第一执行单元,用于:
在通过所述目标程序开始将所述服务器中的所述目标固件从所述第一版本更新为所述第二版本的情况下,触发目标中断,并通过所述目标固件执行所述第一函数,其中,所述第一函数是触发所述目标中断后所触发执行的函数。
在一个示范性实施例中,所述第一执行单元,用于:
在所述目标固件的所述第一版本被从第一存储空间复制到第二存储空间的情况下,通过所述第二存储空间中存储的所述目标固件的所述第一版本执行所述第一函数,其中,所述第二存储空间是所述服务器的内存中的存储空间,所述第一函数用于从所述第一存储空间中读取所述第一版本信息,并将所述更新开始信息发送至所述BMC,所述第一存储空间用于存储所述第一函数、所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第一版本时,所述当前版本信息是所述第一版本信息。
在一个示范性实施例中,所述第一执行单元,用于:
执行所述第一函数中的第一部分代码,其中,所述第一部分代码用于从第一存储空间中读取所述第一版本信息,所述第一存储空间用于存储所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第一版本时,所述当前版本信息是所述第一版本信息;
执行所述第一函数中的第二部分代码,其中,所述第二部分代码用于将所述更新开始信息发送至所述BMC。
在一个示范性实施例中,所述装置还包括:
存储模块,用于在执行预先设置的第一函数之前,在所述第一版本信息是所述目标固件的初始版本的版本信息的情况下,将所述第一版本信息存储在所述第一存储空间中;或者第一更新模块,用于在通过所述目标程序完成将所述目标固件从第三版本更新为所述第一版本的情况下,将所述第一存储空间中存储的所述当前版本信息从第三版本信息更新为所述第一版本信息,其中,所述第三版本信息是所述第三版本的描述信息。
在一个示范性实施例中,所述第一执行单元,用于:
执行第一存储空间中存储的所述第一函数,其中,所述第一函数用于从所述第一存储空间中读取所述第一版本信息,并将所述更新开始信息发送至所述BMC,所述第一存储空间用于存储所述第一函数、所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第一版本时,所述当前版本信息是所述第一版本信息;或者在所述第一函数被从所述第一存储空间复制到第二存储空间的情况下,执行所述第二存储空间中存储的所述第一函数,其中,所述第二存储空间是所述服务器的内存中的存储空间,所述第一函数用于从所述第一存储空间中读取所述第一版本信息,并将所述更新开始信息发送至所述BMC,所述第一存储空间用于存储所述第一函数、所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第一版本时,所述当前版本信息是所述第一版本信息。
在一个示范性实施例中,所述第一获取模块,包括:第一发送单元,用于调用目标接口将所述更新开始信息发送至所述BMC。
在一个示范性实施例中,所述第一获取模块,包括:第二发送单元,用于将所述更新开始信息发送至所述BMC,其中,所述更新开始信息还包括第一状态信息,所述第一状态信息用于表示开始更新所述目标固件。
在一个示范性实施例中,所述装置还包括:切换模块,用于在所述在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,获取所述目标固件的第二版本信息,并将更新结束信息发送至所述BMC之前,在将所述更新开始信息发送至所述BMC之后,将所述目标固件从运行状态切换至暂停运行状态,并将所述操作系统从暂停运行状态切换至运行状态,通过所述目标程序继续将所述目标固件从所述第一版本更新为所述第二版本。
在一个示范性实施例中,所述第二获取模块,包括:
第二执行单元,用于在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,执行预先设置的第二函数,其中,所述第二函数用于获取所述目标固件的所述第二版本信息,并将所述更新结束信息发送至所述BMC。
在一个示范性实施例中,所述第二执行单元,用于:
在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,通过所述目标固件执行所述第二函数,以获取所述目标固件的所述第二版本信息,并将所述更新结束信息发送至所述BMC。
在一个示范性实施例中,所述第二执行单元,用于:
在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,将所述操作系统从运行状态切换至暂停运行状态,将所述目标固件从暂停运行状态切换成运行状态,并通过所述目标固件执行所述第二函数。
在一个示范性实施例中,所第二执行单元,用于:
在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,触发目标中断,并通过所述目标固件执行所述第二函数,其中,所述第二函数是触发所述目标中断后所触发执行的函数。
在一个示范性实施例中,所述第二执行单元,用于:
在所述目标固件的所述第一版本被从第一存储空间复制到第二存储空间的情况下,通过所述第二存储空间中存储的所述目标固件的所述第一版本执行所述第二函数,其中,所述第二存储空间是所述服务器的内存中的存储空间,所述第二函数用于从所述第一存储空间中读取所述第二版本信息,并将所述更新结束信息发送至所述BMC,所述第一存储空间用于存储所述第二函数、所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第二版本时,所述当前版本信息是所述第二版本信息。
在一个示范性实施例中,所述第二执行单元,用于:
执行所述第二函数中的第三部分代码,其中,所述第二函数中的第三部分代码用于从第一存储空间中读取所述第二版本信息,所述第一存储空间用于存储所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第二版本时,所述当前版本信息是所述第二版本信息;
执行所述第二函数中的第四部分代码,其中,所述第二函数中的第四部分代码用于将所述更新结束信息发送至所述BMC。
在一个示范性实施例中,所述第二执行单元,用于:
执行第一存储空间中存储的所述第二函数,其中,所述第二函数用于从所述第一存储空间中读取所述第二版本信息,并将所述更新结束信息发送至所述BMC,所述第一存储空间用于存储所述第二函数、所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第二版本时,所述当前版本信息是所述第二版本信息;或者在所述第二函数被从所述第一存储空间复制到第二存储空间的情况下,执行所述第二存储空间中存储的所述第二函数,其中,所述第二存储空间是所述服务器的内存中的存储空间,所述第二函数用于从所述第一存储空间中读取所述第二版本信息,并将所述更新结束信息发送至所述BMC,所述第一存储空间用于存储所述第二函数、所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第二版本时,所述当前版本信息是所述第二版本信息。
在一个示范性实施例中,第二更新模块,用于在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,将所述第一存储空间中存储的当前版本信息从所述第一版本信息更新为所述第二版本信息,其中,在所述目标固件的当前版本是所述第二版本时,所述当前版本信息是所述第二版本信息。
在一个示范性实施例中,所述将更新结束信息发送至所述BMC,包括:调用目标接口将所述更新结束信息发送至所述BMC。
在一个示范性实施例中,所述第二获取模块,包括:第三发送单元,用于将所述更新结束信息发送至所述BMC,其中,所述更新结束信息还包括第二状态信息,所述第二状态信息用于表示完成更新所述目标固件。
在一个示范性实施例中,所述目标固件包括以下至少之一:
基本输入输出系统BIOS、复杂可编程逻辑器件CPLD、现场可更换单元FRU、电源管理芯片。
在本实施例中还提供了另一种服务器日志生成装置,包括:
第一接收模块,用于在通过服务器的操作系统中的目标程序开始将所述服务器中的目标固件从第一版本更新为第二版本的情况下,接收所述目标固件发送的更新开始信息,并将接收到的所述更新开始信息记录在目标日志中,其中,所述更新开始信息包括第一版本信息,所述第一版本信息是所述第一版本的描述信息,所述第一版本信息是执行预先设置的第一函数从第一存储空间中获取到的版本信息,所述第一存储空间被设置为存储所述第一函数和预先设置的第二函数,在开始将所述目标固件从所述第一版本更新为所述第二版本时,所述第一存储空间还被设置为存储所述目标固件的所述第一版本和所述第一版本信息;
第二接收模块,用于在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,接收所述目标固件发送的更新结束信息,并将接收到的所述更新结束信息记录在所述目标日志中,其中,所述更新结束信息包括第二版本信息,所述第二版本信息是所述第二版本的描述信息,所述第二版本信息是执行预先设置的所述第二函数从所述第一存储空间中获取到的版本信息,在完成将所述目标固件从所述第一版本更新为所述第二版本时,所述第一存储空间还被设置为存储所述目标固件的所述第二版本和所述第二版本信息,所述目标固件的所述第二版本用于替换所述第一存储空间中存储的所述目标固件的所述第一版本,所述第二版本信息用于替换所述第一存储空间中存储的所述第一版本信息。
在一个示范性实施例中,所述更新开始信息还包括第一状态信息,所述第一状态信息用于表示开始更新所述目标固件;所述更新结束信息还包括第二状态信息,所述第二状态信息用于表示完成更新所述目标固件。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本申请的实施例还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (28)

1.一种服务器日志生成方法,其特征在于,
包括:
在通过服务器的操作系统中的目标程序开始将所述服务器中的目标固件从第一版本更新为第二版本的情况下,获取所述目标固件的第一版本信息,并将更新开始信息发送至所述服务器的基板管理控制器BMC,其中,所述更新开始信息包括所述第一版本信息,所述第一版本信息是所述第一版本的描述信息,所述BMC被设置为将接收到的所述更新开始信息记录在目标日志中;
在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,获取所述目标固件的第二版本信息,并将更新结束信息发送至所述BMC,其中,所述更新结束信息包括所述第二版本信息,所述第二版本信息是所述第二版本的描述信息,所述BMC被设置为将接收到的所述更新结束信息记录在所述目标日志中。
2.根据权利要求1所述的方法,其特征在于,
所述在通过服务器的操作系统中的目标程序开始将所述服务器中的目标固件从第一版本更新为第二版本的情况下,获取所述目标固件的第一版本信息,并将更新开始信息发送至所述服务器的基板管理控制器BMC,包括:
在通过所述目标程序开始将所述服务器中的所述目标固件从所述第一版本更新为所述第二版本的情况下,执行预先设置的第一函数,其中,所述第一函数用于获取所述目标固件的所述第一版本信息,并将所述更新开始信息发送至所述BMC。
3.根据权利要求2所述的方法,其特征在于,
所述在通过所述目标程序开始将所述服务器中的所述目标固件从所述第一版本更新为所述第二版本的情况下,执行预先设置的第一函数,包括:
在通过所述目标程序开始将所述服务器中的所述目标固件从所述第一版本更新为所述第二版本的情况下,通过所述目标固件执行所述第一函数,以获取所述目标固件的所述第一版本信息,并将所述更新开始信息发送至所述BMC。
4.根据权利要求3所述的方法,其特征在于,
所述在通过所述目标程序开始将所述服务器中的所述目标固件从所述第一版本更新为所述第二版本的情况下,通过所述目标固件执行所述第一函数,包括:
在通过所述目标程序开始将所述服务器中的所述目标固件从所述第一版本更新为所述第二版本的情况下,将所述操作系统从运行状态切换至暂停运行状态,将所述目标固件从暂停运行状态切换成运行状态,并通过所述目标固件执行所述第一函数。
5.根据权利要求3所述的方法,其特征在于,
所述在通过所述目标程序开始将所述服务器中的所述目标固件从所述第一版本更新为所述第二版本的情况下,通过所述目标固件执行所述第一函数,包括:
在通过所述目标程序开始将所述服务器中的所述目标固件从所述第一版本更新为所述第二版本的情况下,触发目标中断,并通过所述目标固件执行所述第一函数,其中,所述第一函数是触发所述目标中断后所触发执行的函数。
6.根据权利要求3所述的方法,其特征在于,
所述通过所述目标固件执行所述第一函数,包括:
在所述目标固件的所述第一版本被从第一存储空间复制到第二存储空间的情况下,通过所述第二存储空间中存储的所述目标固件的所述第一版本执行所述第一函数,其中,所述第二存储空间是所述服务器的内存中的存储空间,所述第一函数用于从所述第一存储空间中读取所述第一版本信息,并将所述更新开始信息发送至所述BMC,所述第一存储空间用于存储所述第一函数、所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第一版本时,所述当前版本信息是所述第一版本信息。
7.根据权利要求2所述的方法,其特征在于,
所述执行预先设置的第一函数,包括:
执行所述第一函数中的第一部分代码,其中,所述第一部分代码用于从第一存储空间中读取所述第一版本信息,所述第一存储空间用于存储所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第一版本时,所述当前版本信息是所述第一版本信息;
执行所述第一函数中的第二部分代码,其中,所述第二部分代码用于将所述更新开始信息发送至所述BMC。
8.根据权利要求7所述的方法,其特征在于,
在执行预先设置的第一函数之前,所述方法还包括:
在所述第一版本信息是所述目标固件的初始版本的版本信息的情况下,将所述第一版本信息存储在所述第一存储空间中;或者
在通过所述目标程序完成将所述目标固件从第三版本更新为所述第一版本的情况下,将所述第一存储空间中存储的所述当前版本信息从第三版本信息更新为所述第一版本信息,其中,所述第三版本信息是所述第三版本的描述信息。
9.根据权利要求2所述的方法,其特征在于,
所述执行预先设置的第一函数,包括:
执行第一存储空间中存储的所述第一函数,其中,所述第一函数用于从所述第一存储空间中读取所述第一版本信息,并将所述更新开始信息发送至所述BMC,所述第一存储空间用于存储所述第一函数、所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第一版本时,所述当前版本信息是所述第一版本信息;或者
在所述第一函数被从所述第一存储空间复制到第二存储空间的情况下,执行所述第二存储空间中存储的所述第一函数,其中,所述第二存储空间是所述服务器的内存中的存储空间,所述第一函数用于从所述第一存储空间中读取所述第一版本信息,并将所述更新开始信息发送至所述BMC,所述第一存储空间用于存储所述第一函数、所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第一版本时,所述当前版本信息是所述第一版本信息。
10.根据权利要求1所述的方法,其特征在于,
所述将更新开始信息发送至所述服务器的基板管理控制器BMC,包括:调用目标接口将所述更新开始信息发送至所述BMC。
11.根据权利要求1所述的方法,其特征在于,
所述将更新开始信息发送至所述服务器的基板管理控制器BMC,包括:将所述更新开始信息发送至所述BMC,其中,所述更新开始信息还包括第一状态信息,所述第一状态信息用于表示开始更新所述目标固件。
12.根据权利要求4所述的方法,其特征在于,
在所述在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,获取所述目标固件的第二版本信息,并将更新结束信息发送至所述BMC之前,所述方法还包括:在将所述更新开始信息发送至所述BMC之后,将所述目标固件从运行状态切换至暂停运行状态,并将所述操作系统从暂停运行状态切换至运行状态,通过所述目标程序继续将所述目标固件从所述第一版本更新为所述第二版本。
13.根据权利要求1所述的方法,其特征在于,
所述在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,获取所述目标固件的第二版本信息,并将更新结束信息发送至所述BMC,包括:
在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,执行预先设置的第二函数,其中,所述第二函数用于获取所述目标固件的所述第二版本信息,并将所述更新结束信息发送至所述BMC。
14.根据权利要求13所述的方法,其特征在于,
所述在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,执行预先设置的第二函数,包括:
在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,通过所述目标固件执行所述第二函数,以获取所述目标固件的所述第二版本信息,并将所述更新结束信息发送至所述BMC。
15.根据权利要求14所述的方法,其特征在于,
所述在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,通过所述目标固件执行所述第二函数,包括:
在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,将所述操作系统从运行状态切换至暂停运行状态,将所述目标固件从暂停运行状态切换成运行状态,并通过所述目标固件执行所述第二函数。
16.根据权利要求14所述的方法,其特征在于,
所述在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,通过所述目标固件执行所述第二函数,包括:
在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,触发目标中断,并通过所述目标固件执行所述第二函数,其中,所述第二函数是触发所述目标中断后所触发执行的函数。
17.根据权利要求14所述的方法,其特征在于,
所述通过所述目标固件执行所述第二函数,包括:
在所述目标固件的所述第一版本被从第一存储空间复制到第二存储空间的情况下,通过所述第二存储空间中存储的所述目标固件的所述第一版本执行所述第二函数,其中,所述第二存储空间是所述服务器的内存中的存储空间,所述第二函数用于从所述第一存储空间中读取所述第二版本信息,并将所述更新结束信息发送至所述BMC,所述第一存储空间用于存储所述第二函数、所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第二版本时,所述当前版本信息是所述第二版本信息。
18.根据权利要求13所述的方法,其特征在于,
所述执行预先设置的第二函数,包括:
执行所述第二函数中的第三部分代码,其中,所述第二函数中的第三部分代码用于从第一存储空间中读取所述第二版本信息,所述第一存储空间用于存储所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第二版本时,所述当前版本信息是所述第二版本信息;
执行所述第二函数中的第四部分代码,其中,所述第二函数中的第四部分代码用于将所述更新结束信息发送至所述BMC。
19.根据权利要求13所述的方法,其特征在于,
所述执行预先设置的第二函数,包括:
执行第一存储空间中存储的所述第二函数,其中,所述第二函数用于从所述第一存储空间中读取所述第二版本信息,并将所述更新结束信息发送至所述BMC,所述第一存储空间用于存储所述第二函数、所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第二版本时,所述当前版本信息是所述第二版本信息;或者
在所述第二函数被从所述第一存储空间复制到第二存储空间的情况下,执行所述第二存储空间中存储的所述第二函数,其中,所述第二存储空间是所述服务器的内存中的存储空间,所述第二函数用于从所述第一存储空间中读取所述第二版本信息,并将所述更新结束信息发送至所述BMC,所述第一存储空间用于存储所述第二函数、所述目标固件的当前版本和所述目标固件的当前版本信息,在所述目标固件的当前版本是所述第二版本时,所述当前版本信息是所述第二版本信息。
20.根据权利要求6至9、17和18中任一项所述的方法,其特征在于,
在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,将所述第一存储空间中存储的当前版本信息从所述第一版本信息更新为所述第二版本信息,其中,在所述目标固件的当前版本是所述第二版本时,所述当前版本信息是所述第二版本信息。
21.根据权利要求1至19中任一项所述的方法,其特征在于,
所述将更新结束信息发送至所述BMC,包括:调用目标接口将所述更新结束信息发送至所述BMC。
22.根据权利要求1至19中任一项所述的方法,其特征在于,
所述将更新结束信息发送至所述BMC,包括:将所述更新结束信息发送至所述BMC,其中,所述更新结束信息还包括第二状态信息,所述第二状态信息用于表示完成更新所述目标固件。
23.根据权利要求1至19中任一项所述的方法,其特征在于,
所述目标固件包括以下至少之一:
基本输入输出系统BIOS、复杂可编程逻辑器件CPLD、现场可更换单元FRU、电源管理芯片。
24.一种服务器日志生成方法,其特征在于,
在通过服务器的操作系统中的目标程序开始将所述服务器中的目标固件从第一版本更新为第二版本的情况下,接收所述目标固件发送的更新开始信息,并将接收到的所述更新开始信息记录在目标日志中,其中,所述更新开始信息包括第一版本信息,所述第一版本信息是所述第一版本的描述信息,所述第一版本信息是执行预先设置的第一函数从第一存储空间中获取到的版本信息,所述第一存储空间被设置为存储所述第一函数和预先设置的第二函数,在开始将所述目标固件从所述第一版本更新为所述第二版本时,所述第一存储空间还被设置为存储所述目标固件的所述第一版本和所述第一版本信息;
在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,接收所述目标固件发送的更新结束信息,并将接收到的所述更新结束信息记录在所述目标日志中,其中,所述更新结束信息包括第二版本信息,所述第二版本信息是所述第二版本的描述信息,所述第二版本信息是执行预先设置的所述第二函数从所述第一存储空间中获取到的版本信息,在完成将所述目标固件从所述第一版本更新为所述第二版本时,所述第一存储空间还被设置为存储所述目标固件的所述第二版本和所述第二版本信息,所述目标固件的所述第二版本用于替换所述第一存储空间中存储的所述目标固件的所述第一版本,所述第二版本信息用于替换所述第一存储空间中存储的所述第一版本信息。
25.根据权利要求24所述的方法,其特征在于,
所述更新开始信息还包括第一状态信息,所述第一状态信息用于表示开始更新所述目标固件;所述更新结束信息还包括第二状态信息,所述第二状态信息用于表示完成更新所述目标固件。
26.一种服务器日志生成装置,其特征在于,
包括:
第一获取模块,用于在通过服务器的操作系统中的目标程序开始将所述服务器中的目标固件从第一版本更新为第二版本的情况下,获取所述目标固件的第一版本信息,并将更新开始信息发送至所述服务器的基板管理控制器BMC,其中,所述更新开始信息包括所述第一版本信息,所述第一版本信息是所述第一版本的描述信息,所述BMC被设置为将接收到的所述更新开始信息记录在目标日志中;
第二获取模块,用于在通过所述目标程序完成将所述目标固件从所述第一版本更新为所述第二版本的情况下,获取所述目标固件的第二版本信息,并将更新结束信息发送至所述BMC,其中,所述更新结束信息包括所述第二版本信息,所述第二版本信息是所述第二版本的描述信息,所述BMC被设置为将接收到的所述更新结束信息记录在所述目标日志中。
27.一种计算机可读存储介质,其特征在于,
所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至23任一项中所述的方法的步骤,或者实现权利要求24-25任一项中所述的方法的步骤。
28.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,
所述处理器执行所述计算机程序时实现所述权利要求1至23任一项中所述的方法的步骤,或者实现权利要求24-25任一项中所述的方法的步骤。
CN202311615385.8A 2023-11-29 2023-11-29 服务器日志生成方法和装置、存储介质及电子设备 Active CN117311769B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311615385.8A CN117311769B (zh) 2023-11-29 2023-11-29 服务器日志生成方法和装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311615385.8A CN117311769B (zh) 2023-11-29 2023-11-29 服务器日志生成方法和装置、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN117311769A true CN117311769A (zh) 2023-12-29
CN117311769B CN117311769B (zh) 2024-02-27

Family

ID=89281457

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311615385.8A Active CN117311769B (zh) 2023-11-29 2023-11-29 服务器日志生成方法和装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN117311769B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150149750A1 (en) * 2013-11-26 2015-05-28 American Megatrends, Inc. Bios update with service processor without serial peripheral interface (spi) access
CN108170476A (zh) * 2018-01-26 2018-06-15 郑州云海信息技术有限公司 一种记录服务器bios版本信息的方法及系统
CN115658113A (zh) * 2022-11-07 2023-01-31 苏州浪潮智能科技有限公司 服务器自启动方法、装置、可读存储介质及电子设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150149750A1 (en) * 2013-11-26 2015-05-28 American Megatrends, Inc. Bios update with service processor without serial peripheral interface (spi) access
CN108170476A (zh) * 2018-01-26 2018-06-15 郑州云海信息技术有限公司 一种记录服务器bios版本信息的方法及系统
CN115658113A (zh) * 2022-11-07 2023-01-31 苏州浪潮智能科技有限公司 服务器自启动方法、装置、可读存储介质及电子设备

Also Published As

Publication number Publication date
CN117311769B (zh) 2024-02-27

Similar Documents

Publication Publication Date Title
JP6333410B2 (ja) 障害処理方法、関連装置、およびコンピュータ
US10037238B2 (en) System and method for encoding exception conditions included at a remediation database
CN111324192A (zh) 一种系统板卡电源检测方法、装置、设备及存储介质
US10496495B2 (en) On demand remote diagnostics for hardware component failure and disk drive data recovery using embedded storage media
KR101949115B1 (ko) 디바이스 드라이버 검출 에러들의 자가 진단 및 자동 진단 데이터 수집
CN107368384A (zh) 一种Linux服务器异常信息转储系统及方法
CN100545814C (zh) 信息处理设备及其控制设备、控制方法
EP3534259B1 (en) Computer and method for storing state and event log relevant for fault diagnosis
CN106909382B (zh) 输出不同类型系统启动信息的方法及装置
CN117311769B (zh) 服务器日志生成方法和装置、存储介质及电子设备
CN112822254A (zh) 数据采集传输系统及远程在线升级、调配参数的方法
CN110968456B (zh) 分布式存储系统中故障磁盘的处理方法及装置
CN116015425A (zh) 光模块的控制方法和装置、存储介质及电子装置
CN108270832B (zh) 一种故障重放方法和装置
CN116340957B (zh) 程序启动方法、装置、服务器及非易失性存储介质
US20230004476A1 (en) Application failure tracking features
CN117251333A (zh) 一种硬盘信息获取方法、装置、设备及存储介质
CN115858224A (zh) 触发看门狗复位的方法、装置、设备、介质和产品
CN114138574A (zh) 控制器测试方法、装置、服务器和存储介质
CN115865634A (zh) 功能模块的控制方法及装置、服务器
CN114356708A (zh) 一种设备故障监控方法、装置、设备及可读存储介质
CN115934446A (zh) 一种自检方法、服务器、设备和存储介质
CN117075936A (zh) 板卡fru回刷方法、系统、终端及存储介质
CN116126607A (zh) 诊断测试方法、装置、设备及存储介质
CN116680101A (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
GR01 Patent grant
GR01 Patent grant