一种BIOS的冗余方法、冗余系统及相关装置与流程

文档序号:17441358发布日期:2019-04-17 04:48阅读:348来源:国知局
一种BIOS的冗余方法、冗余系统及相关装置与流程

本申请涉及服务器领域,特别涉及一种bios的冗余方法、冗余系统及相关装置。



背景技术:

基板管理控制器(baseboardmanagementcontroller,bmc)是一种专门的服务处理器,其是智能平台管理接口(intelligentplatformmanagementinterface,ipmi)的一部分,通常包含在待监控设备的主板或主电路板中。它常被应用于监控和管理服务器的运行状态,如通过带外方式进行开关机、监控服务器传感器状态、访问bios配置或操作系统控制台信息等等。bmc的出现使得服务器管理变得轻松便捷。

基本输入输出系统(basicinputoutputsystem,bios)是一组设置硬件的电脑程序,保存在主板上的一块rom芯片中。在整个计算机系统中,bios的主要作用提供三种服务:自检及初始化、硬件中断处理及程和设定中断。作为电脑最基础的程序,开机后bios程序首先被加载,然后它会对电脑的硬件设备进行完全彻底的检验和测试。如果发现问题,则给出相应提示交由用户处理;如果未发现问题,则将硬件设置为备用状态,然后启动操作系统,把对电脑的控制权交给用户。对于计算机系统中的硬件,bios负责对其进行最低层次的管理。在计算机系统工作时,bios直接与计算机的i/o(input/output,即输入/输出)设备进行交互,通过特定的数据端口发出命令,传送或接收各种外部设备的数据,实现操作系统对硬件的直接操作。除此之外,bios还要协助cpu和硬件进行中断、地址分配等操作。

由上可知,bios在一个稳定的操作系统中起着极为重要的作用。假如bios自身遇到不可恢复的异常状况,那么操作系统将不能正常开机,更不能提供稳定的服务。现有技术中,当bios启动发生故障时,需要手动切换系统pch的spi总线以连接不同的bios芯片,实现人工冗余机制。



技术实现要素:

本申请的目的是提供一种bios的冗余方法、冗余系统、一种计算机可读存储介质和一种服务器,解决现有的服务器中不存在bios冗余机制的问题。

为解决上述技术问题,本申请提供一种bios的冗余方法,所述bios中第一启动镜像和第二启动镜像,具体技术方案如下:

接收到开机指令后,以所述第一启动镜像启动所述bios;

所述bios经过第一预设时间后向所述bmc发送启动开始信号,再经过第二预设时间后发送启动完成信号;

若所述bmc在第一限定时间内未接收到所述启动开始信号,和/或,在第二限定时间内未接收到启动完成信号,以所述第二启动镜像启动所述bios。

其中,接收到开机指令后,还包括:

所述bmc创建监控所述bios运行状态的监控线程。

其中,以所述第二启动镜像启动所述bios时,还包括:

所述bmc生成系统日志记录。

其中,所以所述第二启动镜像启动所述bios包括:

利用cy8c9芯片选择所述第二启动镜像作为实际启动镜像并启动所述bios。

其中,利用cy8c9芯片选择所述第二启动镜像作为实际启动镜像并启动所述bios,包括:

将所述第二启动镜像的代号写入所述cy8c9芯片的eeprom;

根据所述代号运行所述第二启动镜像并启动所述bios。

本申请还提供一种bios的冗余系统,所述冗余系统包括:

启动模块,用于接收到开机指令后,以所述第一启动镜像启动所述bios;

信号发送模块,用于经过第一预设时间后向所述bmc发送启动开始信号,再经过第二预设时间后发送启动完成信号;

冗余启动模块,用于若所述bmc在第一限定时间内未接收到所述启动开始信号,和/或,在第二限定时间内未接收到启动完成信号,以所述第二启动镜像启动所述bios。

其中,所述bmc还包括:

监控模块,用于创建监控所述bios运行状态的监控线程。

其中,所述bmc还包括:

日志生成模块,用于生成系统日志记录。

本申请还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上所述的冗余方法的步骤。

本申请还提供一种服务器,其特征在于,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上所述的冗余方法的步骤。

本申请所提供的一种bios的冗余方法,包括:接收到开机指令后,以所述第一启动镜像启动所述bios;所述bios经过第一预设时间后向所述bmc发送启动开始信号,再经过第二预设时间后发送启动完成信号;若所述bmc在第一限定时间内未接收到所述启动开始信号,和/或,在第二限定时间内未接收到启动完成信号,以所述第二启动镜像启动所述bios。

本申请通过在接收到开机指令后,先以任一镜像启动bios。再利用先后向bmc发送启动开始信号和启动完成信号作为bios启动开始和启动完成的标志,若bmc未在两个信号中任意一个信号相对应的限定时间内收到该信号,则判定bios启动失败,此时再启动另一镜像。无需人工切换bios芯片,可由服务器的bmc控制实现,降低了人工操作的失误率以及人工成本,有效地保证了bios的正常启动。本申请还提供一种bios的冗余系统、一种计算机可读存储介质和一种服务器,具有上述有益效果,此处不再赘述。

附图说明

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

图1为本申请实施例所提供的一种bios的冗余方法的流程图;

图2为本申请实施例所提供的一种bios的冗余系统结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

请参考图1,图1为本申请实施例所提供的一种bios的冗余方法的流程图,该冗余方法包括:

s101:接收到开机指令后,以所述第一启动镜像启动所述bios;

系统中存在两个bios启动镜像,在接收到开机指令时,以任意启动镜像启动bios。需要说明的是,通常存在两个启动镜像时,其中一个为主镜像,另一个为备用镜像,也即冗余镜像。但实际上二者无任何区别,本申请实施例为表述清楚,分别称为第一启动镜像和第二启动镜像。本步骤则是以第一启动镜像启动bios,而第一启动镜像可以为两个镜像中的任一个,通常可以认为主镜像为第一启动镜像。

开机指令通常由用户控制bmc发出,此时系统处于上电状态,bios通常还需要进行初始化,在此不作具体说明。

s102:所述bios经过第一预设时间后向所述bmc发送启动开始信号,再经过第二预设时间后发送启动完成信号;

本步骤旨在bios以任一启动镜像启动时,向bmc发送启动开始信号和启动完成信号。在此对于第一预设时间和第二预设时间的具体数值不作限定,当然,容易理解的是第二预设时间要比第一预设时间长一段时间,也即bios通过启动镜像启动所需要的实际启动时间。例如,第一预设时间可以为4s-6s,第二预设时间可以为20s-25s。需要说明的是,第一预设时间和第二预设时间的时间计算起始点为以任一所述启动镜像启动所述bios之时。即以任一所述启动镜像启动所述bios之时为0s那一时刻。

在此对于启动开始信号和启动完成信号的具体形式和内容不作限定。特别要说明的是,启动开始信号和启动完成信号可以不包括任何实际信息,即为可以为一个简单的信号脉冲,由于本步骤是bios启动后由bios向bmc发送的信号,此时可以认为bios开始启动后的第一个信号即为启动开始信号,第二个信号即为启动完成信号。当然,启动开始信号和启动完成信号可以包含相关信息,二者的信号形式可以相同,也可以不同,在此不作具体限定。

s103:若所述bmc在第一限定时间内未接收到所述启动开始信号,和/或,在第二限定时间内未接收到启动完成信号,以所述第二启动镜像启动所述bios。

本步骤旨在说明若bmc未接收到启动开始信号和启动完成信号中的任意一个,或者均未接收到,此时即以另一个启动镜像,即第二启动镜像启动bios。

可以理解的是,第一限定时间和第二限定时间分别与第一预设时间和第二预设时间相对应,即第一限定时间在第一预设时间后的一个限定时间段,第二限定时间在第二预设时间后的另一个限定时间段。在此对于第一限定时间和第二限定时间均不作限定。沿引上例,若第一预设时间可以为4s-6s,第二预设时间可以为20s-25s,则第一限定时间可以为7s-9s,第二限定时间可以为25s-30s。

第一限定时间的限定时间段长度和第二限定时间的限定时间段长度可以相同,也可以不同,具体应由本领域技术人员作相关设定。

在此对于如何以所述第二启动镜像启动所述bios不作具体限定,优选的,bios可以利用cy8c9芯片选择所述第二启动镜像作为实际启动镜像并启动。具体的,可以将所述第二启动镜像的代号写入所述cy8c9芯片的eeprom,然后所述bios根据所述代号启动所述第二启动镜像。将镜像的代号写入eeprom的好处是,当前应用的启动镜像断电不会丢失。即使发生断电操作,再次开机时bios会从eeprom中读取启动镜像代号进行开机操作。

本实施例通过在接收到开机指令后,先以任一镜像启动bios。再利用先后向bmc发送启动开始信号和启动完成信号作为bios启动开始和启动完成的标志,若bmc未在两个信号中任意一个信号相对应的限定时间内收到该信号,则判定bios启动失败,此时再启动另一镜像。无需人工切换bios芯片,可由服务器的bmc控制实现,降低了人工操作的失误率以及人工成本,有效地保证了bios的正常启动。

特别需要说明的是,本实施例在切换启动镜像启动后还需重新执行,换句话说,bmc对bios启动镜像的切换操作最多只会进行一次,切换次数大于1时系统将无法正常启动。这是由于若切换至另一启动镜像后同样发生故障,此时将根据上述实施例实现无限在两个同时故障的启动镜像中循环启动。因此,要求bmc对bios启动镜像的切换操作最多只会进行一次,避免出现死循环启动。

基于此,作为优选的实施例,步骤s101在接收到开机指令后,还可以包括:

所述bmc创建监控所述bios运行状态的监控线程。

创建监控线程可以监控是否接收到启动开始信号、启动成功信号,以及两个信号是否在各自的限定时间内接收到。还可以监控bmc对bios启动镜像的切换操作次数。

基于上述实施例,作为优选的实施例,所述bios以所述第二启动镜像启动时,还包括:

所述bmc生成系统日志记录。

生成系统日志记录可以提供会服务器相关运维人员,便于进行服务器的维护,因为只要存在相关的系统日志记录说明发生了启动镜像的切换,意味着存在一个故障的启动镜像,便于运维人员检修。

下面对本申请实施例提供的一种bios的冗余系统进行介绍,下文描述的冗余系统与上文描述的一种bios的冗余方法可相互对应参照。

参见图2,图2为本申请实施例所提供的一种bios的冗余系统结构示意图,该冗余系统包括:

启动模块100,用于接收到开机指令后,以所述第一启动镜像启动所述bios;

信号发送模块200,用于经过第一预设时间后向所述bmc发送启动开始信号,再经过第二预设时间后发送启动完成信号;

冗余启动模块300,用于若所述bmc在第一限定时间内未接收到所述启动开始信号,和/或,在第二限定时间内未接收到启动完成信号,以所述第二启动镜像启动所述bios。

基于上述实施例,作为优选的实施例,所述bmc还可以包括:

监控模块,用于创建监控所述bios运行状态的监控线程。

基于上述实施例,作为优选的实施例,所述bmc还可以包括:

日志生成模块,用于生成系统日志记录。

本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的一种bios的冗余方法的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本申请还提供了一种服务器,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的一种bios的冗余方法的步骤。当然所述服务器还可以包括各种网络接口,电源等组件。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的系统而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1