CN117215859B - 主备bios自动切换方法、自动切换装置和计算机 - Google Patents

主备bios自动切换方法、自动切换装置和计算机 Download PDF

Info

Publication number
CN117215859B
CN117215859B CN202311473038.6A CN202311473038A CN117215859B CN 117215859 B CN117215859 B CN 117215859B CN 202311473038 A CN202311473038 A CN 202311473038A CN 117215859 B CN117215859 B CN 117215859B
Authority
CN
China
Prior art keywords
bios
bmc
standby
main
computer
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.)
Active
Application number
CN202311473038.6A
Other languages
English (en)
Other versions
CN117215859A (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 CN202311473038.6A priority Critical patent/CN117215859B/zh
Publication of CN117215859A publication Critical patent/CN117215859A/zh
Application granted granted Critical
Publication of CN117215859B publication Critical patent/CN117215859B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本申请实施例提供了一种主备BIOS自动切换方法、自动切换装置和计算机,该方法包括:在计算机进行开机启动的情况下,BMC获取主BIOS的开机进程信息,开机进程信息的类型与开机启动阶段一一对应且开机进程信息随开机启动阶段的推进而变化;在开机进程信息在预定时间内保持不变的情况下,BMC确定计算机宕机,预定时间与开机启动阶段一一对应;BMC控制主BIOS和备用BIOS进行主备BIOS切换,主备BIOS切换为由主BIOS切换至备用BIOS进行开机启动,无需人工判断计算机宕机来控制主备BIOS切换,克服了人工判断不准确或者不及时导致稳定性差的问题。

Description

主备BIOS自动切换方法、自动切换装置和计算机
技术领域
本申请实施例涉及计算机领域,具体而言,涉及一种主备BIOS自动切换方法、自动切换装置、计算机可读存储介质和计算机。
背景技术
现阶段的服务器设计中,服务器的安全使用越来越至关重要,所以不管是BIOS还是BMC在服务器安全上制定了越来越多的需求以便保护服务器整机的使用安全,保护客户的信息不被侵犯。
在服务器的使用过程中,当BIOS升级失败、受到各种病毒攻击破坏的时候就会造成主板BIOS参数的丢失、损坏,从而产生服务器不开机、无法启动、工作不稳定等现象。这种问题发生在服务器主板设计厂家还有回转的余地,但是一般的使用客户是无法对这种现象进行解决的,于是就促生了BIOS安全保护设计。
在BIOS层面保护客户的使用通常有CPU侧的保护和主板侧的保护。对于CPU侧的保护也就是CPU厂商会使用多种病毒来攻击CPU的各个信息库来测试CPU使用中的不安全地方,从而在CPU出厂前就修复各种漏洞实现CPU的安全保护。假如CPU已经量产并供货到了服务器整机厂商这里的时候,可以通过升级BIOS agesa code的方式来实现CPU使用过程中的安全保护。对于主板侧的保护可以分为纯软件的方式和软硬结合的方式来实现服务器整机使用过程中的安全保护。对于纯软件的方式也就是BIOS通过实现写保护的功能来阻挡OS以及shell下的不安全写入BIOS信息的操作,也可以结合硬件跳帽的设计来实现更加安全的写保护。对于软硬结合的方式通常用的方式是双BIOS flash的设计,在主板上设计两块BIOS芯片,当一块BIOS被破坏时随机自动启用另一块BIOS,则不会造成计算机无法开机,功能无法使用等问题。
在设计双BIOS flash保护方式时,需要着重考虑的就是BIOS如何判断当前的计算机已经宕机,以及计算机宕机的时候如何借助BMC来实现主备BIOS的自动切换。
在相关技术方案中,为了计算机在当前的BIOS受到损坏、攻击的情况下依旧可以工作,设计了手动切换BIOS的方案,即当运维人员发现当前计算机宕机或者无法工作的情况下,借助BMC手动发送ipmi命令来切换BIOS并重启开机,实现备份BIOS的安全启动。
但是原有主备BIOS切换方案存在以下问题:
1)首先该方案对运维人员的出勤办公时间要求非常严格,当客户的机房计算机进行批量上电时或者需要反复开机验证计算机稳定性的时候,就需要有人24小时看守才行,假如没有人员及时发现计算机无法开机,这时候计算机就会长时间处于一个宕机状态,严重影响客户的机房使用效率;
2)其次对客户来说,假如需要固定的运维人员来盯着这个事情,又会是需要一笔比较庞大的经费支出,并且对运维人员的技术方面也是一个考验,因为并不是所有的运维人员都是了解BIOS和BMC的,大大降低了计算机的灵活可控、可操作行。
3)最后,不管是在客户机房还是计算机在产线生产的时候,假如发生了批量的计算机宕机或者批量的计算机BIOS损坏,无法正常工作,那么这时候手动操作主备BIOS的切换是不现实的,这样该功能的设计就反而成为了一个累赘,并不能作为一个亮点去真正的吸引到客户。
发明内容
本申请实施例提供了一种主备BIOS自动切换方法、自动切换装置、计算机可读存储介质和计算机,以至少解决相关技术中人工控制主备BIOS切换导致稳定性差的问题。
根据本申请的一个实施例,提供了一种主备BIOS自动切换方法,计算机包括BMC、主BIOS和备用BIOS,所述备用BIOS用于在所述主BIOS开机启动失败时替代所述主BIOS,所述BMC用于控制所述主BIOS和所述备用BIOS的运行,包括:所述BMC获取多个开机启动阶段中所述主BIOS对应的开机进程信息,多个所述开机启动阶段包括安全启动阶段、加载阶段和进入操作系统阶段;在任意一个所述开机启动阶段的所述开机进程信息在对应的预定时间内保持不变的情况下,所述BMC确定所述计算机宕机,所述安全启动阶段对应的所述预定时间为第一预定时间,所述加载阶段对应的所述预定时间为第二预定时间,所述进入操作系统阶段对应的所述预定时间为第三预定时间;所述BMC控制所述主BIOS和所述备用BIOS进行主备BIOS切换,所述主备BIOS切换为由所述主BIOS切换至所述备用BIOS进行开机启动。
在一个示例性实施例中,所述BMC获取多个所述开机启动阶段中所述主BIOS对应的开机进程信息,包括:在所述主BIOS处于所述安全启动阶段或者所述加载阶段的情况下,所述BMC将第一开机自检信息作为所述开机进程信息,所述第一开机自检信息为所述主BIOS开机启动时所述BMC监控CPU输出的检测信息且用于表征是否出现开机故障。
在一个示例性实施例中,在任意一个所述开机启动阶段的所述开机进程信息在对应的预定时间内保持不变的情况下,所述BMC确定所述计算机宕机,包括:在所述第一开机自检信息在第一预定时间保持不变的情况下,所述BMC确定所述计算机宕机。
在一个示例性实施例中,所述BMC获取多个所述开机启动阶段中所述主BIOS对应的开机进程信息,还包括:在所述主BIOS处于所述加载阶段的情况下,所述BMC与所述主BIOS建立通信连接并将所述BMC接收的第一指令的时间戳作为所述开机进程信息,所述第一指令为所述主BIOS每间隔第二预定时间向所述BMC发送的指令,所述时间戳为所述BMC接收所述第一指令的时刻。
在一个示例性实施例中,在任意一个所述开机启动阶段的所述开机进程信息在对应的预定时间内保持不变的情况下,所述BMC确定所述计算机宕机,还包括:在所述时间戳在所述第二预定时间没有更新的情况下,所述BMC确定所述计算机宕机。
在一个示例性实施例中,所述BMC获取多个所述开机启动阶段中所述主BIOS对应的开机进程信息,还包括:在所述主BIOS处于所述进入操作系统阶段的情况下,所述BMC将所述操作系统的启动成功标识作为所述开机进程信息,所述启动成功标识为记录所述操作系统的启动成功的标识。
在一个示例性实施例中,在任意一个所述开机启动阶段的所述开机进程信息在对应的预定时间内保持不变的情况下,所述BMC确定所述计算机宕机,还包括:在所述启动成功标识在所述计算机开机时长达到第三预定时间的时间段内均为空的情况下,所述BMC确定所述计算机宕机。
在一个示例性实施例中,在所述BMC获取多个所述开机启动阶段中所述主BIOS对应的开机进程信息之前,所述方法还包括:在所述主BIOS的功能文件刷新的情况下,所述主BIOS将刷新后的所述功能文件同步至所述备用BIOS,所述功能文件用于生成实现所述主BIOS的功能的指令。
在一个示例性实施例中,所述BMC控制所述主BIOS和所述备用BIOS进行主备BIOS切换,包括:在所述BMC确定所述计算机宕机的情况下,所述BMC触发切换命令,以控制所述主BIOS和所述备用BIOS进行主备BIOS切换,所述切换命令用于控制所述主BIOS停止执行开机启动任务并控制所述备用BIOS开始执行开机启动任务。
在一个示例性实施例中,在所述BMC控制所述主BIOS和所述备用BIOS进行主备BIOS切换之后,所述方法还包括:记录触发所述切换命令时的开机自检信息,所述开机自检信息为所述BMC监控CPU输出的检测信息且用于表征是否出现开机故障。
在一个示例性实施例中,在所述BMC控制所述主BIOS和所述备用BIOS进行主备BIOS切换之后,所述方法还包括:所述BMC获取主备BIOS切换日志,所述主备BIOS切换日志用于记录所述主备BIOS切换是否成功;在所述主备BIOS切换日志为所述主备BIOS切换成功的情况下,所述BMC控制所述备用BIOS执行所述开机启动任务;在所述主备BIOS切换日志为所述主备BIOS切换失败的情况下,所述BMC发出所述计算机处于宕机状态的报警信息。
在一个示例性实施例中,在所述主备BIOS切换日志为所述主备BIOS切换成功的情况下,所述BMC控制所述备用BIOS执行所述开机启动任务,包括:在所述主备BIOS切换日志为所述主备BIOS切换成功且所述备用BIOS处于所述安全启动阶段或者所述加载阶段的情况下,所述BMC获取第二开机自检信息,所述第二开机自检信息为所述备用BIOS开机启动时所述BMC监控CPU输出的检测信息且用于表征是否出现开机故障;在所述第二开机自检信息在第一预定时间保持不变的情况下,所述BMC发出所述计算机处于宕机状态的所述报警信息。
在一个示例性实施例中,在所述主备BIOS切换日志为所述主备BIOS切换成功的情况下,所述BMC控制所述备用BIOS执行所述开机启动任务,还包括:在所述主备BIOS切换日志为所述主备BIOS切换成功且所述备用BIOS处于所述加载阶段的情况下,所述BMC与所述备用BIOS建立通信连接并接收第二指令,所述第二指令为所述备用BIOS每间隔第二预定时间向所述BMC发送的指令;在所述第二预定时间内没有接收到所述第二指令的情况下,所述BMC发出所述计算机处于宕机状态的所述报警信息。
在一个示例性实施例中,在所述主备BIOS切换日志为所述主备BIOS切换成功的情况下,所述BMC控制所述备用BIOS执行所述开机启动任务,还包括:在所述主备BIOS切换日志为所述主备BIOS切换成功且所述主BIOS处于所述进入操作系统阶段的情况下,所述BMC查询所述操作系统的启动成功标识;在所述计算机开机时长达到第三预定时间的时间段内不存在所述启动成功标识的情况下,所述BMC发出所述计算机处于宕机状态的所述报警信息。
根据本申请的另一个实施例,提供了一种主备BIOS自动切换装置,计算机包括BMC、主BIOS和备用BIOS,所述备用BIOS用于在所述主BIOS开机启动失败时替代所述主BIOS,所述BMC用于控制所述主BIOS和所述备用BIOS的运行,所述主备BIOS自动切换装置应用于所述BMC,包括:第一获取模块,用于获取多个开机启动阶段中所述主BIOS对应的开机进程信息,多个所述开机启动阶段包括安全启动阶段、加载阶段和进入操作系统阶段;确定模块,用于在任意一个所述开机启动阶段的所述开机进程信息在对应的预定时间内保持不变的情况下,确定所述计算机宕机,所述安全启动阶段对应的所述预定时间为第一预定时间,所述加载阶段对应的所述预定时间为第二预定时间,所述进入操作系统阶段对应的所述预定时间为第三预定时间;第一控制模块,用于控制所述主BIOS和所述备用BIOS进行主备BIOS切换,所述主备BIOS切换为由所述主BIOS切换至所述备用BIOS进行开机启动。
根据本申请的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种计算机,包括主BIOS、备用BIOS、存储器、BMC以及存储在所述存储器上并可在所述BMC上运行的计算机程序,所述BMC执行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本申请,该主备BIOS自动切换方法通过获取主BIOS的各开机启动阶段的开机进程信息,即获取随开机进程变化的信息,即可在开机进程信息在预定时间内不发生,即可确定主BIOS的开机启动进程停滞,计算机宕机,从而自动控制主BIOS和备用BIOS进行主备BIOS切换, 无需人工判断计算机宕机来控制主备BIOS切换,克服了人工判断不准确或者不及时导致稳定性差的问题,即解决了相关技术中人工控制主备BIOS切换导致稳定性差的问题。
附图说明
图1示出了根据本申请的实施例中提供的一种执行主备BIOS自动切换方法的移动终端的硬件结构框图;
图2示出了根据本申请的实施例提供的一种计算机架构图;
图3示出了根据本申请的实施例提供的一种主备BIOS自动切换方法的流程示意图;
图4示出了根据本申请的实施例提供的另一种主备BIOS自动切换方法的流程示意图;
图5示出了根据本申请的实施例提供的一种主备BIOS自动切换装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
为了便于描述,以下对本申请实施例涉及的部分名词或术语进行说明:
BMC:即Baseboard Management Controller,是服务器的基板管理控制器。
BIOS:即Basic Output and Input,基本输入输出系统,是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它有读写系统设置的具体信息。
IPMI:即Intelligent Platform Management Interface,智能平台管理接口,IPMI 能够横跨不同的操作系统、固件和硬件平台,可以智能的监视、控制和自动回报大量服务器的运作状况,以降低服务器系统成本。
IO:I/O输入/输出(Input/Output),分为IO设备和IO接口两个部分。
SEC:Security Phase,BIOS启动过程中的安全验证阶段。
PEI:Pre-EFI Initialization, BIOS启动过程中的EFI前期初始化阶段。
DXE: Driver Execution Environment,BIOS启动过程中的驱动执行环境。
BDS: Boot Device Selection,BIOS启动过程中的启动设备选择。
TSL:Transient System Load,BIOS启动过程中的操作系统加载器(OS Loader)执行的第一阶段。
PSP:Platform Security Processor,平台安全启动核心。
本申请实施例中所提供的方法实施例可以在服务器设备或者类似的运算装置中执行。以运行在服务器设备上为例,图1是本申请实施例的一种主备BIOS自动切换方法的服务器设备的硬件结构框图。如图1所示,服务器设备可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述服务器设备还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述服务器设备的结构造成限定。例如,服务器设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的主备BIOS自动切换方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至服务器设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器设备的通信供应方提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种主备BIOS自动切换方法,如图2所示,计算机包括BMC、主BIOS和备用BIOS,上述备用BIOS用于在上述主BIOS开机启动失败时替代上述主BIOS,上述BMC用于控制上述主BIOS和上述备用BIOS的运行,图2是根据本申请实施例的主备BIOS自动切换方法的流程图,如图3所示,该流程包括如下步骤:
步骤S202,上述BMC获取多个开机启动阶段中上述主BIOS对应的开机进程信息,多个上述开机启动阶段包括安全启动阶段、加载阶段和进入操作系统阶段;
具体的应用中,上述计算机进行开机启动时,上述主BIOS开始执行开启启动任务,依次经历多个开机启动阶段,上述BMC获取多个上述开机启动阶段中上述主BIOS对应的开机进程信息,上述开机进程信息的类型与开机启动阶段一一对应且上述开机进程信息随上述开机启动阶段的推进而变化,若主BIOS开机启动的进程没有停滞,即上述计算机没有宕机,则开机启动进程的某些信息是变化,在不同的开机启动阶段获取相应的开机进程信息,使得开机进程信息随上述开机启动阶段的推进而变化,即可通过开机进程信息判断上述计算机是否宕机,其中,上述安全启动阶段用于进行验证保证安全启动,上述加载阶段用于加载开机启动的配置,上述进入操作系统阶段用于启动操作系统。
步骤S204,在任意一个上述开机启动阶段的上述开机进程信息在对应的预定时间内保持不变的情况下,上述BMC确定上述计算机宕机,上述安全启动阶段对应的上述预定时间为第一预定时间,上述加载阶段对应的上述预定时间为第二预定时间,上述进入操作系统阶段对应的上述预定时间为第三预定时间;
具体的应用中,不同的开机进程信息更新的周期不同,上述开机进程信息在对应的预定时间(更新周期)内保持不变,则表明当前的开机启动阶段的开机启动进程停滞,即可确定上述计算机宕机。
步骤S206,上述BMC控制上述主BIOS和上述备用BIOS进行主备BIOS切换,上述主备BIOS切换为由上述主BIOS切换至上述备用BIOS进行开机启动。
具体的应用中,上述计算机宕机,表明上述主BIOS当前已无法开机,则控制上述主BIOS和上述备用BIOS进行主备BIOS切换,以切换至上述备用BIOS进行开机启动,保证计算机正常开机启动。
通过上述步骤,该主备BIOS自动切换方法通过获取主BIOS的各开机启动阶段的开机进程信息,即获取随开机进程变化的信息,即可在开机进程信息在预定时间内不发生,即可确定主BIOS的开机启动进程停滞,计算机宕机,从而自动控制主BIOS和备用BIOS进行主备BIOS切换, 无需人工判断计算机宕机来控制主备BIOS切换,克服了人工判断不准确或者不及时导致稳定性差的问题,即解决了相关技术中人工控制主备BIOS切换导致稳定性差的问题。
其中,上述步骤的执行主体可以为【服务器、终端】等,但不限于此。
在一个示例性实施例中,上述步骤S202可以通过以下步骤实现:步骤S2022,在上述主BIOS处于上述安全启动阶段或者上述加载阶段的情况下,上述BMC将第一开机自检信息作为上述开机进程信息,上述第一开机自检信息为上述主BIOS开机启动时上述BMC监控CPU输出的检测信息且用于表征是否出现开机故障。
上述实施例中,如图2所示,在计算机开机过程中,CPU会通过80port的IO端口时刻输出一些开机自检信息,然后BMC会通过80port来抓取这些信息显示在BMC web上,因此上述主BIOS处于上述安全启动阶段或者上述加载阶段时,可以将这两个阶段的第一开机自检信息作为上述开机进程信息,用于判断计算机是否宕机,进入操作系统阶段只有成功启动操作系统才可实现计算机开机启动,无法通过开机自检信息判断计算机是否宕机。
在一个示例性实施例中,上述步骤S204可以通过以下步骤实现:步骤S2042,在上述第一开机自检信息在第一预定时间保持不变的情况下,上述BMC确定上述计算机宕机。
上述实施例中,上述第一开机自检信息在第一预定时间保持不变,即当BMC监控到CPU在2分钟内依旧处于同一个开机自检码的时候,BMC就会判断当前的CPU已经处于停止运行状态,即上述BMC自动确定上述计算机宕机。
在一个示例性实施例中,上述步骤S202还可以通过以下步骤实现:步骤S2024,在上述主BIOS处于上述加载阶段的情况下,上述BMC与上述主BIOS建立通信连接并将上述BMC接收的第一指令的时间戳作为上述开机进程信息,上述第一指令为上述主BIOS每间隔第二预定时间向上述BMC发送的指令,上述时间戳为上述BMC接收上述第一指令的时刻。
上述实施例中,在计算机开机处于安全启动阶段(PSP阶段)的时候,这个阶段是处于BIOS的PEI阶段之前的,BMC和主BIOS之间还无法进行正常的通信,此时只能依赖BMC的监控来看PSP阶段是否处于正常状态,当计算机完成PSP阶段的初始化后,接着就是BIOS的加载阶段(SEC、PEI、DXE、BDS等阶段),如图2所示,在这些加载阶段中,可以通过主BIOS与BMC的交互来判断BIOS是否开机正常,主BIOS会在开机过程中每隔30秒向BMC发送ipmi指令,BMC收到后会发送回复指令给主BIOS,即收到第一指令,每个第一指令接收的时刻不同,即时间戳不同,随着第一指令的更新记录的时间戳也不断更新,因此,在加载阶段即可将第一指令的时间戳作为上述开机进程信息。
在一个示例性实施例中,上述步骤S204还可以通过以下步骤实现:步骤S2044,在上述时间戳在上述第二预定时间没有更新的情况下,上述BMC确定上述计算机宕机。
上述实施例中,上述时间戳在上述第二预定时间没有更新,即BMC在30秒之内未收到主BIOS发送的指令,则BMC会认为主BIOS当前已无法开机,即上述BMC自动确定上述计算机宕机。
在一个示例性实施例中,上述步骤S202还可以通过以下步骤实现:步骤S2026,在上述主BIOS处于上述进入操作系统阶段的情况下,上述BMC将上述操作系统的启动成功标识作为上述开机进程信息,上述启动成功标识为记录上述操作系统的启动成功的标识。
上述实施例中,经过多次验证计算机的开机时长,在满配情况下,计算机在15分钟内是可以正常开机进操作系统OS的,计算机开机进操作系统OS后,用于监控post已经完成的GPIO状态会发生变化,BMC在轮询该GPIO的状态发生变化时,会记录一条Boot Up的启动成功标识(sel)在IDL日志中,因此,在上述进入操作系统阶段,可以将作为启动成功标识(sel)作为上述开机进程信息。
在一个示例性实施例中,上述步骤S204还可以通过以下步骤实现:步骤S2046,在上述启动成功标识在上述计算机开机时长达到第三预定时间的时间段内均为空的情况下,上述BMC确定上述计算机宕机。
上述实施例中,上述计算机开机时长达到第三预定时间的时间段内均为空,即BMC在15分钟内发现IDL日志中没有Boot Up的sel,BMC会认为主BIOS当前已无法开机,即BMC自动确定上述计算机宕机。
在一个示例性实施例中,在上述步骤S202之前,上述方法还包括:步骤S302,在上述主BIOS的功能文件刷新的情况下,上述主BIOS将刷新后的上述功能文件同步至上述备用BIOS,上述功能文件用于生成实现上述主BIOS的功能的指令。
上述实施例中,上述功能文件可以为bin文件,在刷新了主BIOS的flash后,主BIOS会主动将BIOS bin文件同步给备份BIOS,实现主备BIOS的bin文件同步,以确定备用BIOS可以随时替换主BIOS执行相应的开机启动任务。
在一个示例性实施例中,上述步骤S206可以通过以下步骤实现:步骤S2062,在上述BMC确定上述计算机宕机的情况下,上述BMC触发切换命令,以控制上述主BIOS和上述备用BIOS进行主备BIOS切换,上述切换命令用于控制上述主BIOS停止执行开机启动任务并控制上述备用BIOS开始执行开机启动任务。
上述实施例中,上述BMC确定上述计算机宕机的情况下,上述BMC触发切换命令(ipmi命令),以控制上述主BIOS和上述备用BIOS进行主备BIOS切换,使得上述备用BIOS替换上述主BIOS开始执行开机启动任务,避免长时间宕机影响用户体验。
在一个示例性实施例中,在上述步骤S206之后,上述方法还包括:步骤S402,记录触发上述切换命令时的开机自检信息,上述开机自检信息为上述BMC监控CPU输出的检测信息且用于表征是否出现开机故障。
上述实施例中,记录触发上述切换命令(ipmi命令)时的开机自检信息,即记录下来主备BIOS切换时的开机自检信息供研发分析,例如,研发可以借助计算机提供的开机自检故障信息来判断CPU在PSP的哪个阶段发生了错误。
在一个示例性实施例中,在上述步骤S206之后,上述方法还包括:步骤S502,上述BMC获取主备BIOS切换日志,上述主备BIOS切换日志用于记录上述主备BIOS切换是否成功;步骤S504,在上述主备BIOS切换日志为上述主备BIOS切换成功的情况下,上述BMC控制上述备用BIOS执行上述开机启动任务;步骤S506,在上述主备BIOS切换日志为上述主备BIOS切换失败的情况下,上述BMC发出上述计算机处于宕机状态的报警信息。
上述实施例中,主备BIOS切换时会生成是否切换成功的主备BIOS切换日志,切换成功,则控制上述备用BIOS替代上述主BIOS执行上述开机启动任务,切换失败,则发出上述计算机处于宕机状态的报警信息,提醒运维人员及时维护。
在一个示例性实施例中,上述步骤S504可以通过以下步骤实现:步骤S5041,在上述主备BIOS切换日志为上述主备BIOS切换成功且上述备用BIOS处于上述安全启动阶段或者上述加载阶段的情况下,上述BMC获取第二开机自检信息,上述第二开机自检信息为上述备用BIOS开机启动时上述BMC监控CPU输出的检测信息且用于表征是否出现开机故障;步骤S5042,在上述第二开机自检信息在第一预定时间保持不变的情况下,上述BMC发出上述计算机处于宕机状态的上述报警信息。
上述实施例中,上述主备BIOS切换成功后,上述备用BIOS处于上述安全启动阶段或者上述加载阶段时,同样可以通过当前阶段的第二开机自检信息判断计算机是否宕机,当BMC监控到CPU在2分钟内依旧处于同一个开机自检码的时候,BMC就会判断当前的CPU已经处于停止运行状态,即上述BMC自动确定上述计算机宕机,没有第二备用BIOS可以切换,则发出上述计算机处于宕机状态的上述报警信息。
在一个示例性实施例中,上述步骤S504还可以通过以下步骤实现:步骤S5043,在上述主备BIOS切换日志为上述主备BIOS切换成功且上述备用BIOS处于上述加载阶段的情况下,上述BMC与上述备用BIOS建立通信连接并接收第二指令,上述第二指令为上述备用BIOS每间隔第二预定时间向上述BMC发送的指令;步骤S5044,在上述第二预定时间内没有接收到上述第二指令的情况下,上述BMC发出上述计算机处于宕机状态的上述报警信息。
上述实施例中,上述主备BIOS切换成功后,上述备用BIOS处于上述加载阶段时,同样可以通过备用BIOS与BMC的交互来判断BIOS是否开机正常,备用BIOS会在开机过程中每隔30秒向BMC发送ipmi指令,BMC收到后会发送回复指令给备用BIOS,BMC在30秒之内未收到主BIOS发送的指令,则BMC会认为主BIOS当前已无法开机,即上述BMC自动确定上述计算机宕机,没有第二备用BIOS可以切换,则发出上述计算机处于宕机状态的上述报警信息。
在一个示例性实施例中,上述步骤S504还可以通过以下步骤实现:步骤S5045,在上述主备BIOS切换日志为上述主备BIOS切换成功且上述主BIOS处于上述进入操作系统阶段的情况下,上述BMC查询上述操作系统的启动成功标识;步骤S5046,在上述计算机开机时长达到第三预定时间的时间段内不存在上述启动成功标识的情况下,上述BMC发出上述计算机处于宕机状态的上述报警信息。
上述实施例中,上述主备BIOS切换成功后,上述备用BIOS处于上述进入操作系统阶段,同样可以通过BMC在15分钟内发现IDL日志中没有Boot Up的sel,BMC会认为主BIOS当前已无法开机,即BMC自动确定上述计算机宕机,没有第二备用BIOS可以切换,则发出上述计算机处于宕机状态的上述报警信息。
本实施例涉及一种具体的机器稳定性测试方法,上述计算机为,AMD平台机器,如图3所示,包括如下步骤:
步骤S1,在刷新了主BIOS的flash后,主BIOS会主动将BIOS bin文件同步给备份BIOS,实现主备BIOS的bin文件同步;
步骤S2,在机器开机处于PSP阶段的时候,这个阶段是处于BIOS的PEI阶段之前的,BMC和BIOS之间还无法进行正常的通信,此时只能依赖BMC的监控来看PSP阶段是否处于正常状态,在机器开机过程中,CPU会通过80port的IO端口时刻输出一些开机自检信息,然后BMC会通过80port来抓取这些信息显示在BMC web上,当BMC监控到CPU在2分钟内依旧处于同一个开机自检码的时候,BMC就会判断当前的CPU已经处于停止运行状态,并在带外自动触发ipmi命令来切换主备BIOS,并记录下来主备BIOS切换时的开机自检信息供研发分析,研发可以借助AMD提供的开机自检故障信息来判断CPU在PSP的哪个阶段发生了错误。
步骤S3,当机器完成PSP阶段的初始化后,接着就是BIOS的SEC、PEI、DXE、BDS等阶段的加载,在这个阶段中,可以通过BIOS与BMC的交互来判断BIOS是否开机正常,BIOS会在开机过程中每隔30秒向BMC发送ipmi指令,BMC收到后会发送回复指令给BIOS,假如BMC在30秒之内未收到BIOS发送的指令,则BMC会认为BIOS当前已无法开机,其将会触发ipmi命令来切换主备BIOS,并记录下来主备BIOS切换时的开机自检信息供研发分析。
步骤S4,经过多次验证AMD平台机器的开机时长,在满配情况下,机器在15分钟内是可以正常开机进OS的,机器开机进OS后,用于监控post已经完成的GPIO状态会发生变化,BMC在轮询该GPIO的状态发生变化时,会记录一条Boot Up的sel在IDL日志中,假如BMC在15分钟内发现IDL日志中没有Boot Up的sel,BMC同样会认为当前BIOS已无法开机,其将会触发ipmi命令来切换主备BIOS,并记录下来主备BIOS切换时的开机自检信息供研发分析。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例上述的方法。
在本实施例中还提供了一种主备BIOS自动切换装置,如图2所示,计算机包括BMC、主BIOS和备用BIOS,上述备用BIOS用于在上述主BIOS开机启动失败时替代上述主BIOS,上述BMC用于控制上述主BIOS和上述备用BIOS的运行,上述主备BIOS自动切换装置应用于上述BMC,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图4是根据本申请实施例的主备BIOS自动切换装置的结构框图,如图4所示,该装置包括:
第一获取模块22,用于获取多个上述开机启动阶段中上述主BIOS对应的开机进程信息,多个上述开机启动阶段包括安全启动阶段、加载阶段和进入操作系统阶段;
具体的应用中,上述计算机进行开机启动时,上述主BIOS开始执行开启启动任务,依次经历多个开机启动阶段,上述BMC获取多个上述开机启动阶段中上述主BIOS对应的开机进程信息,上述开机进程信息的类型与开机启动阶段一一对应且上述开机进程信息随上述开机启动阶段的推进而变化,若主BIOS开机启动的进程没有停滞,即上述计算机没有宕机,则开机启动进程的某些信息是变化,在不同的开机启动阶段获取相应的开机进程信息,使得开机进程信息随上述开机启动阶段的推进而变化,即可通过开机进程信息判断上述计算机是否宕机,其中,上述安全启动阶段用于进行验证保证安全启动,上述加载阶段用于加载开机启动的配置,上述进入操作系统阶段用于启动操作系统。
确定模块24,用于在任意一个上述开机启动阶段的上述开机进程信息在对应的预定时间内保持不变的情况下,确定上述计算机宕机,上述安全启动阶段对应的上述预定时间为第一预定时间,上述加载阶段对应的上述预定时间为第二预定时间,上述进入操作系统阶段对应的上述预定时间为第三预定时间;
具体的应用中,不同的开机进程信息更新的周期不同,上述开机进程信息在对应的预定时间(更新周期)内保持不变,则表明当前的开机启动阶段的开机启动进程停滞,即可确定上述计算机宕机。
第一控制模块26,用于上述BMC控制上述主BIOS和上述备用BIOS进行主备BIOS切换,上述主备BIOS切换为由上述主BIOS切换至上述备用BIOS进行开机启动。
具体的应用中,上述计算机宕机,表明上述主BIOS当前已无法开机,则控制上述主BIOS和上述备用BIOS进行主备BIOS切换,以切换至上述备用BIOS进行开机启动,保证计算机正常开机启动。
通过上述模块,该主备BIOS自动切换装置通过获取主BIOS的各开机启动阶段的开机进程信息,即获取随开机进程变化的信息,即可在开机进程信息在预定时间内不发生,即可确定主BIOS的开机启动进程停滞,计算机宕机,从而自动控制主BIOS和备用BIOS进行主备BIOS切换, 无需人工判断计算机宕机来控制主备BIOS切换,克服了人工判断不准确或者不及时导致稳定性差的问题,即解决了相关技术中人工控制主备BIOS切换导致稳定性差的问题。
在一个示例性实施例中,上述第一获取模块包括第一获取子模块,上述第一获取子模块用于在上述主BIOS处于上述安全启动阶段或者上述加载阶段的情况下,上述BMC将第一开机自检信息作为上述开机进程信息,上述第一开机自检信息为上述主BIOS开机启动时上述BMC监控CPU输出的检测信息且用于表征是否出现开机故障。
上述实施例中,如图2所示,在计算机开机过程中,CPU会通过80port的IO端口时刻输出一些开机自检信息,然后BMC会通过80port来抓取这些信息显示在BMC web上,因此上述主BIOS处于上述安全启动阶段或者上述加载阶段时,可以将这两个阶段的第一开机自检信息作为上述开机进程信息,用于判断计算机是否宕机,进入操作系统阶段只有成功启动操作系统才可实现计算机开机启动,无法通过开机自检信息判断计算机是否宕机。
在一个示例性实施例中,上述确定模块包括第一确定字模块,上述第一确定子模块用于在上述第一开机自检信息在第一预定时间保持不变的情况下,上述BMC确定上述计算机宕机。
上述实施例中,上述第一开机自检信息在第一预定时间保持不变,即当BMC监控到CPU在2分钟内依旧处于同一个开机自检码的时候,BMC就会判断当前的CPU已经处于停止运行状态,即上述BMC自动确定上述计算机宕机。
在一个示例性实施例中,上述第一获取模块还包括第二获取子模块,上述第二获取子模块用于在上述主BIOS处于上述加载阶段的情况下,上述BMC与上述主BIOS建立通信连接并将上述BMC接收的第一指令的时间戳作为上述开机进程信息,上述第一指令为上述主BIOS每间隔第二预定时间向上述BMC发送的指令,上述时间戳为上述BMC接收上述第一指令的时刻。
上述实施例中,在计算机开机处于安全启动阶段(PSP阶段)的时候,这个阶段是处于BIOS的PEI阶段之前的,BMC和主BIOS之间还无法进行正常的通信,此时只能依赖BMC的监控来看PSP阶段是否处于正常状态,当计算机完成PSP阶段的初始化后,接着就是BIOS的加载阶段(SEC、PEI、DXE、BDS等阶段),如图2所示,在这些加载阶段中,可以通过主BIOS与BMC的交互来判断BIOS是否开机正常,主BIOS会在开机过程中每隔30秒向BMC发送ipmi指令,BMC收到后会发送回复指令给主BIOS,即收到第一指令,每个第一指令接收的时刻不同,即时间戳不同,随着第一指令的更新记录的时间戳也不断更新,因此,在加载阶段即可将第一指令的时间戳作为上述开机进程信息。
在一个示例性实施例中,上述确定模块还包括第二确定字模块,上述第二确定子模块用于在上述时间戳在上述第二预定时间没有更新的情况下,上述BMC确定上述计算机宕机。
上述实施例中,上述时间戳在上述第二预定时间没有更新,即BMC在30秒之内未收到主BIOS发送的指令,则BMC会认为主BIOS当前已无法开机,即上述BMC自动确定上述计算机宕机。
在一个示例性实施例中,上述第一获取模块还包括第三获取子模块,上述第三获取子模块用于在上述主BIOS处于上述进入操作系统阶段的情况下,上述BMC将上述操作系统的启动成功标识作为上述开机进程信息,上述启动成功标识为记录上述操作系统的启动成功的标识。
上述实施例中,经过多次验证计算机的开机时长,在满配情况下,计算机在15分钟内是可以正常开机进操作系统OS的,计算机开机进操作系统OS后,用于监控post已经完成的GPIO状态会发生变化,BMC在轮询该GPIO的状态发生变化时,会记录一条Boot Up的启动成功标识(sel)在IDL日志中,因此,在上述进入操作系统阶段,可以将作为启动成功标识(sel)作为上述开机进程信息。
在一个示例性实施例中,上述确定模块还包括第三确定字模块,上述第三确定子模块用于在上述启动成功标识在上述计算机开机时长达到第三预定时间的时间段内均为空的情况下,上述BMC确定上述计算机宕机。
上述实施例中,上述计算机开机时长达到第三预定时间的时间段内均为空,即BMC在15分钟内发现IDL日志中没有Boot Up的sel,BMC会认为主BIOS当前已无法开机,即BMC自动确定上述计算机宕机。
在一个示例性实施例中,在上述计算机进行开机启动的情况下,上述装置还包括同步模块,上述同步模块用于上述BMC获取多个上述开机启动阶段中上述主BIOS对应的开机进程信息之前,且在上述主BIOS的功能文件刷新的情况下,上述主BIOS将刷新后的上述功能文件同步至上述备用BIOS,上述功能文件用于生成实现上述主BIOS的功能的指令。
上述实施例中,上述功能文件可以为bin文件,在刷新了主BIOS的flash后,主BIOS会主动将BIOS bin文件同步给备份BIOS,实现主备BIOS的bin文件同步,以确定备用BIOS可以随时替换主BIOS执行相应的开机启动任务。
在一个示例性实施例中,上述第一控制模块包括控制子模块,上述控制子模块用于在上述BMC确定上述计算机宕机的情况下,上述BMC触发切换命令,以控制上述主BIOS和上述备用BIOS进行主备BIOS切换,上述切换命令用于控制上述主BIOS停止执行开机启动任务并控制上述备用BIOS开始执行开机启动任务。
上述实施例中,上述BMC确定上述计算机宕机的情况下,上述BMC触发切换命令(ipmi命令),以控制上述主BIOS和上述备用BIOS进行主备BIOS切换,使得上述备用BIOS替换上述主BIOS开始执行开机启动任务,避免长时间宕机影响用户体验。
在一个示例性实施例中,上述装置还包括记录模块,上述记录模块用于在上述BMC控制上述主BIOS和上述备用BIOS进行主备BIOS切换之后,记录触发上述切换命令时的开机自检信息,上述开机自检信息为上述BMC监控CPU输出的检测信息且用于表征是否出现开机故障。
上述实施例中,记录触发上述切换命令(ipmi命令)时的开机自检信息,即记录下来主备BIOS切换时的开机自检信息供研发分析,例如,研发可以借助计算机提供的开机自检故障信息来判断CPU在PSP的哪个阶段发生了错误。
在一个示例性实施例中,上述装置还包括第二获取模块、第二控制模块和报警模块,其中,上述第二获取模块用于上述记录模块用于在上述BMC控制上述主BIOS和上述备用BIOS进行主备BIOS切换之后,上述BMC获取主备BIOS切换日志,上述主备BIOS切换日志用于记录上述主备BIOS切换是否成功;上述第二控制模块用于在上述主备BIOS切换日志为上述主备BIOS切换成功的情况下,上述BMC控制上述备用BIOS执行上述开机启动任务;上述报警模块用于在上述主备BIOS切换日志为上述主备BIOS切换失败的情况下,上述BMC发出上述计算机处于宕机状态的报警信息。
上述实施例中,主备BIOS切换时会生成是否切换成功的主备BIOS切换日志,切换成功,则控制上述备用BIOS替代上述主BIOS执行上述开机启动任务,切换失败,则发出上述计算机处于宕机状态的报警信息,提醒运维人员及时维护。
在一个示例性实施例中,上述第二控制模块包括第四获取子模块和第一报警子模块,其中,上述第四获取子模块用于在上述主备BIOS切换日志为上述主备BIOS切换成功且上述备用BIOS处于上述安全启动阶段或者上述加载阶段的情况下,上述BMC获取第二开机自检信息,上述第二开机自检信息为上述备用BIOS开机启动时上述BMC监控CPU输出的检测信息且用于表征是否出现开机故障;上述第一报警子模块用于在上述第二开机自检信息在第一预定时间保持不变的情况下,上述BMC发出上述计算机处于宕机状态的上述报警信息。
上述实施例中,上述主备BIOS切换成功后,上述备用BIOS处于上述安全启动阶段或者上述加载阶段时,同样可以通过当前阶段的第二开机自检信息判断计算机是否宕机,当BMC监控到CPU在2分钟内依旧处于同一个开机自检码的时候,BMC就会判断当前的CPU已经处于停止运行状态,即上述BMC自动确定上述计算机宕机,没有第二备用BIOS可以切换,则发出上述计算机处于宕机状态的上述报警信息。
在一个示例性实施例中,上述第二控制模块包括接收子模块和第二报警子模块,其中,上述接收子模块用于在上述主备BIOS切换日志为上述主备BIOS切换成功且上述备用BIOS处于上述加载阶段的情况下,上述BMC与上述备用BIOS建立通信连接并接收第二指令,上述第二指令为上述备用BIOS每间隔第二预定时间向上述BMC发送的指令;上述第二控制模块包括第四获取子模块和第一报警子模块,其中,上述第二报警子模块用于在上述第二预定时间内没有接收到上述第二指令的情况下,上述BMC发出上述计算机处于宕机状态的上述报警信息。
上述实施例中,上述主备BIOS切换成功后,上述备用BIOS处于上述加载阶段时,同样可以通过备用BIOS与BMC的交互来判断BIOS是否开机正常,备用BIOS会在开机过程中每隔30秒向BMC发送ipmi指令,BMC收到后会发送回复指令给备用BIOS,BMC在30秒之内未收到主BIOS发送的指令,则BMC会认为主BIOS当前已无法开机,即上述BMC自动确定上述计算机宕机,没有第二备用BIOS可以切换,则发出上述计算机处于宕机状态的上述报警信息。
在一个示例性实施例中,上述第二控制模块包括查询子模块和第三报警子模块,其中,上述查询子模块用于在上述主备BIOS切换日志为上述主备BIOS切换成功且上述主BIOS处于上述进入操作系统阶段的情况下,上述BMC查询上述操作系统的启动成功标识;上述第三报警子模块用于在上述计算机开机时长达到第三预定时间的时间段内不存在上述启动成功标识的情况下,上述BMC发出上述计算机处于宕机状态的上述报警信息。
上述实施例中,上述主备BIOS切换成功后,上述备用BIOS处于上述进入操作系统阶段,同样可以通过BMC在15分钟内发现IDL日志中没有Boot Up的sel,BMC会认为主BIOS当前已无法开机,即BMC自动确定上述计算机宕机,没有第二备用BIOS可以切换,则发出上述计算机处于宕机状态的上述报警信息。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本申请的实施例还提供了一种计算机,包括主BIOS、备用BIOS、存储器、BMC以及存储在上述存储器上并可在上述BMC上运行的计算机程序,上述BMC执行上述计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (17)

1.一种主备BIOS自动切换方法,其特征在于,所述主备BIOS自动切换方法应用于计算机,所述计算机包括BMC、主BIOS和备用BIOS,所述备用BIOS用于在所述主BIOS开机启动失败时替代所述主BIOS,所述BMC用于控制所述主BIOS和所述备用BIOS的运行,
所述主备BIOS自动切换方法包括:
所述BMC获取多个开机启动阶段中所述主BIOS对应的开机进程信息,多个所述开机启动阶段包括安全启动阶段、加载阶段和进入操作系统阶段,所述开机进程信息为第一开机自检信息、所述BMC 接收的第一指令的时间戳和操作系统的启动成功标识中的一个,所述第一开机自检信息为所述主BIOS 开机启动时所述BMC 监控CPU 输出的检测信息且用于表征是否出现开机故障,所述第一指令为所述主BIOS 每间隔第二预定时间向所述BMC 发送的指令,所述时间戳为所述BMC 接收所述第一指令的时刻,所述启动成功标识为记录所述操作系统的启动成功的标识;
在任意一个所述开机启动阶段的所述开机进程信息在对应的预定时间内保持不变的情况下,所述BMC确定所述计算机宕机,所述安全启动阶段对应的所述预定时间为第一预定时间,所述加载阶段对应的所述预定时间为所述第二预定时间,所述进入操作系统阶段对应的所述预定时间为第三预定时间;
所述BMC控制所述主BIOS和所述备用BIOS进行主备BIOS切换,所述主备BIOS切换为由所述主BIOS切换至所述备用BIOS进行开机启动。
2.根据权利要求1所述的方法,其特征在于,
所述BMC获取多个所述开机启动阶段中所述主BIOS对应的开机进程信息,包括:
在所述主BIOS处于所述安全启动阶段或者所述加载阶段的情况下,所述BMC将第一开机自检信息作为所述开机进程信息。
3.根据权利要求2所述的方法,其特征在于,
在任意一个所述开机启动阶段的所述开机进程信息在对应的预定时间内保持不变的情况下,所述BMC确定所述计算机宕机,包括:
在所述第一开机自检信息在所述第一预定时间保持不变的情况下,所述BMC确定所述计算机宕机。
4.根据权利要求1所述的方法,其特征在于,
所述BMC获取多个所述开机启动阶段中所述主BIOS对应的开机进程信息,还包括:
在所述主BIOS处于所述加载阶段的情况下,所述BMC与所述主BIOS建立通信连接并将所述BMC接收的第一指令的时间戳作为所述开机进程信息。
5.根据权利要求4所述的方法,其特征在于,
在任意一个所述开机启动阶段的所述开机进程信息在对应的预定时间内保持不变的情况下,所述BMC确定所述计算机宕机,还包括:
在所述时间戳在所述第二预定时间没有更新的情况下,所述BMC确定所述计算机宕机。
6.根据权利要求1所述的方法,其特征在于,
所述BMC获取多个所述开机启动阶段中所述主BIOS对应的开机进程信息,还包括:
在所述主BIOS处于所述进入操作系统阶段的情况下,所述BMC将所述操作系统的启动成功标识作为所述开机进程信息。
7.根据权利要求6所述的方法,其特征在于,
在任意一个所述开机启动阶段的所述开机进程信息在对应的预定时间内保持不变的情况下,所述BMC确定所述计算机宕机,还包括:
在所述启动成功标识在所述计算机的开机时长达到所述第三预定时间的时间段内均为空的情况下,所述BMC确定所述计算机宕机。
8.根据权利要求1所述的方法,其特征在于,
在所述BMC获取多个所述开机启动阶段中所述主BIOS对应的开机进程信息之前,所述方法还包括:
在所述主BIOS的功能文件刷新的情况下,所述主BIOS将刷新后的所述功能文件同步至所述备用BIOS,所述功能文件用于生成实现所述主BIOS的功能的指令。
9.根据权利要求1至8中任一项所述的方法,其特征在于,
所述BMC控制所述主BIOS和所述备用BIOS进行主备BIOS切换,包括:
在所述BMC确定所述计算机宕机的情况下,所述BMC触发切换命令,以控制所述主BIOS和所述备用BIOS进行主备BIOS切换,所述切换命令用于控制所述主BIOS停止执行开机启动任务并控制所述备用BIOS开始执行开机启动任务。
10.根据权利要求9所述的方法,其特征在于,
在所述BMC控制所述主BIOS和所述备用BIOS进行主备BIOS切换之后,所述方法还包括:
记录触发所述切换命令时的开机自检信息,所述开机自检信息为所述BMC监控CPU输出的检测信息且用于表征是否出现开机故障。
11.根据权利要求9所述的方法,其特征在于,
在所述BMC控制所述主BIOS和所述备用BIOS进行主备BIOS切换之后,所述方法还包括:
所述BMC获取主备BIOS切换日志,所述主备BIOS切换日志用于记录所述主备BIOS切换是否成功;
在所述主备BIOS切换日志为所述主备BIOS切换成功的情况下,所述BMC控制所述备用BIOS执行所述开机启动任务;
在所述主备BIOS切换日志为所述主备BIOS切换失败的情况下,所述BMC发出所述计算机处于宕机状态的报警信息。
12.根据权利要求11所述的方法,其特征在于,
在所述主备BIOS切换日志为所述主备BIOS切换成功的情况下,所述BMC控制所述备用BIOS执行所述开机启动任务,包括:
在所述主备BIOS切换日志为所述主备BIOS切换成功且所述备用BIOS处于所述安全启动阶段或者所述加载阶段的情况下,所述BMC获取第二开机自检信息,所述第二开机自检信息为所述备用BIOS开机启动时所述BMC监控CPU输出的检测信息且用于表征是否出现开机故障;
在所述第二开机自检信息在第一预定时间保持不变的情况下,所述BMC发出所述计算机处于宕机状态的所述报警信息。
13.根据权利要求11所述的方法,其特征在于,
在所述主备BIOS切换日志为所述主备BIOS切换成功的情况下,所述BMC控制所述备用BIOS执行所述开机启动任务,还包括:
在所述主备BIOS切换日志为所述主备BIOS切换成功且所述备用BIOS处于所述加载阶段的情况下,所述BMC与所述备用BIOS建立通信连接并接收第二指令,所述第二指令为所述备用BIOS每间隔第二预定时间向所述BMC发送的指令;
在所述第二预定时间内没有接收到所述第二指令的情况下,所述BMC发出所述计算机处于宕机状态的所述报警信息。
14.根据权利要求11所述的方法,其特征在于,
在所述主备BIOS切换日志为所述主备BIOS切换成功的情况下,所述BMC控制所述备用BIOS执行所述开机启动任务,还包括:
在所述主备BIOS切换日志为所述主备BIOS切换成功且所述主BIOS处于所述进入操作系统阶段的情况下,所述BMC查询所述操作系统的启动成功标识;
在所述计算机的开机时长达到第三预定时间的时间段内不存在所述启动成功标识的情况下,所述BMC发出所述计算机处于宕机状态的所述报警信息。
15.一种主备BIOS自动切换装置,其特征在于,所述主备BIOS自动切换装置应用于计算机,所述计算机包括BMC、主BIOS和备用BIOS,所述备用BIOS用于在所述主BIOS开机启动失败时替代所述主BIOS,所述BMC用于控制所述主BIOS和所述备用BIOS的运行,所述主备BIOS自动切换装置应用于所述BMC,
所述主备BIOS自动切换装置包括:
第一获取模块,用于获取多个开机启动阶段中所述主BIOS对应的开机进程信息,多个所述开机启动阶段包括安全启动阶段、加载阶段和进入操作系统阶段,所述开机进程信息为第一开机自检信息、所述BMC 接收的第一指令的时间戳和操作系统的启动成功标识中的一个,所述第一开机自检信息为所述主BIOS 开机启动时所述BMC 监控CPU 输出的检测信息且用于表征是否出现开机故障,所述第一指令为所述主BIOS 每间隔第二预定时间向所述BMC 发送的指令,所述时间戳为所述BMC 接收所述第一指令的时刻,所述启动成功标识为记录所述操作系统的启动成功的标识;
确定模块,用于在任意一个所述开机启动阶段的所述开机进程信息在对应的预定时间内保持不变的情况下,确定所述计算机宕机,所述安全启动阶段对应的所述预定时间为第一预定时间,所述加载阶段对应的所述预定时间为所述第二预定时间,所述进入操作系统阶段对应的所述预定时间为第三预定时间;
第一控制模块,用于控制所述主BIOS和所述备用BIOS进行主备BIOS切换,所述主备BIOS切换为由所述主BIOS切换至所述备用BIOS进行开机启动。
16.一种计算机可读存储介质,其特征在于,
所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至14任一项中所述的方法的步骤。
17.一种计算机,包括主BIOS、备用BIOS、存储器、BMC以及存储在所述存储器上并可在所述BMC上运行的计算机程序,其特征在于,
所述BMC执行所述计算机程序时实现所述权利要求1至14任一项中所述的方法的步骤。
CN202311473038.6A 2023-11-07 2023-11-07 主备bios自动切换方法、自动切换装置和计算机 Active CN117215859B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311473038.6A CN117215859B (zh) 2023-11-07 2023-11-07 主备bios自动切换方法、自动切换装置和计算机

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311473038.6A CN117215859B (zh) 2023-11-07 2023-11-07 主备bios自动切换方法、自动切换装置和计算机

Publications (2)

Publication Number Publication Date
CN117215859A CN117215859A (zh) 2023-12-12
CN117215859B true CN117215859B (zh) 2024-02-09

Family

ID=89049618

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311473038.6A Active CN117215859B (zh) 2023-11-07 2023-11-07 主备bios自动切换方法、自动切换装置和计算机

Country Status (1)

Country Link
CN (1) CN117215859B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008191957A (ja) * 2007-02-05 2008-08-21 Nec Computertechno Ltd コンピュータシステムおよびそのファイルシステム自動設定os起動方式
CN103077060A (zh) * 2013-01-10 2013-05-01 中兴通讯股份有限公司 主备用bios的切换方法及装置、系统
CN114337944A (zh) * 2022-03-16 2022-04-12 中国人民解放军海军工程大学 一种系统级主备冗余通用控制方法
CN116737471A (zh) * 2023-08-04 2023-09-12 金舟远航(北京)信息产业有限公司 Bios自动切换方法、装置、电子设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008191957A (ja) * 2007-02-05 2008-08-21 Nec Computertechno Ltd コンピュータシステムおよびそのファイルシステム自動設定os起動方式
CN103077060A (zh) * 2013-01-10 2013-05-01 中兴通讯股份有限公司 主备用bios的切换方法及装置、系统
CN114337944A (zh) * 2022-03-16 2022-04-12 中国人民解放军海军工程大学 一种系统级主备冗余通用控制方法
CN116737471A (zh) * 2023-08-04 2023-09-12 金舟远航(北京)信息产业有限公司 Bios自动切换方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN117215859A (zh) 2023-12-12

Similar Documents

Publication Publication Date Title
US10049010B2 (en) Method, computer, and apparatus for migrating memory data
US7721153B2 (en) System, method and program product for recovering from a failure
CN102244669B (zh) 一种堆叠设备中软件升级的方法和堆叠设备
WO2018095107A1 (zh) 一种bios程序的异常处理方法及装置
CN106547645B (zh) 自动修复映像档的方法及服务器系统
CN115658113A (zh) 服务器自启动方法、装置、可读存储介质及电子设备
CN111737064A (zh) 一种bmc系统控制方法、装置、存储介质和计算机设备
CN108833981B (zh) 一种开关机的方法
CN108897646B (zh) 一种bios芯片的切换方法及基板管理控制器
CN117215859B (zh) 主备bios自动切换方法、自动切换装置和计算机
CN111352662B (zh) 一种服务器启动顺序控制方法、系统、终端及存储介质
CN117251333A (zh) 一种硬盘信息获取方法、装置、设备及存储介质
CN116360865A (zh) 集群管理方法、设备及计算系统
CN114860322A (zh) 一种基板管理控制器、控制方法及电子设备
CN114153503A (zh) 一种bios控制方法、装置、介质
RU2710288C1 (ru) Способ удаленного сброса ненормального состояния стоек, применяемых в дата-центре
CN111400094A (zh) 一种服务器系统恢复出厂设置的方法、装置、设备及介质
CN115562900B (zh) Amd服务器系统安装断电处理方法、装置、设备及介质
WO2024119787A1 (zh) Amd服务器系统安装断电处理方法、装置、设备及介质
CN114443446B (zh) 硬盘指示灯控制方法、系统、终端及存储介质
WO2024121952A1 (ja) 故障復旧高速化システム、故障復旧高速化方法及び故障復旧高速化プログラム
CN116737185A (zh) 一种镜像加载方法、装置、设备及介质
RU2709677C1 (ru) Способ удаленного сброса ненормального состояния стоек, применяемых в дата-центре
CN117453287A (zh) 交互状态的确定方法和装置、存储介质及电子装置
CN117435255A (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