基于BMC控制双BIOS的自动切换方法、装置、设备及存储介质与流程
未命名
09-29
阅读:116
评论:0
基于bmc控制双bios的自动切换方法、装置、设备及存储介质
技术领域
1.本技术涉及计算机技术领域,具体涉及一种基于bmc控制双bios的自动切换方法、装置、设备及存储介质。
背景技术:
2.随着服务器技术的发展及其在计算机领域的重要地位,保障服务器的安全可靠是十分必要的,为了服务器安全可靠需要,会考虑使用双bios(basic input output system,基本输入输出系统)来满足这种需求。当一颗bios flash数据损坏或启动不成功,就自动切换让另一颗bios flash启动运行。
3.目前为了实现双bios的切换有几种做法,如通过hw strap的方式,或通过bios自身的checksum判断,就是判断flash数据是否完整,如果数据有损坏,就停止boot从另一个flash启动。hw strap的方式需要芯片的watchdog配合使用,对于芯片要求较高,成本较大。对于通过bios自身的checksum判断的方式,最大的弊端是随着flash的容量越来越大,通过这种方式极大地影响了boot时间。
技术实现要素:
4.本技术实施例的目的是提供一种基于bmc控制双bios的自动切换方法、装置、设备及存储介质。
5.为了实现上述目的,本技术第一方面提供基于bmc控制双bios的自动切换方法,所述自动切换方法包括:
6.启动bmc,并运行bios;
7.所述bmc监听所述bios发送的心跳,并判断在一定周期内所述bmc是否监听到了所述bios发送的心跳;
8.若是,则无需切换;
9.若否,则发送切换指令至系统,切换bios select信号,并重启所述bios。
10.优选地,所述bmc监听所述bios发送的心跳,并判断在一定周期内所述bmc是否监听到了所述bios发送的心跳包括:
11.所述bmc每5s进行一次监听;
12.若bmc连续监听3次均未监听到bios发送来的心跳,则发送切换指令至系统,切换bios select信号,并重启所述bios。
13.进一步地,所述自动切换方法还包括:
14.在发送切换指令至系统,切换bios select信号,并重启所述bios的同时,bmc记录审计日志,以便于维护人员查阅。
15.进一步地,所述自动切换方法还包括:
16.若连续切换bios select信号均未成功,则所述bmc记录严重事件,并发送告警信息至服务端,以便通知维护人员处理。
17.第二方面,本技术还提供了一种基于bmc控制双bios的自动切换装置,所述自动切换装置包括:
18.启动模块,所述启动模块用于启动bmc,并运行bios;
19.监听模块,所述监听模块用于所述bmc监听所述bios发送的心跳,并判断在一定周期内所述bmc是否监听到了所述bios发送的心跳;
20.第一执行模块,所述第一执行模块用于若在一定周期内所述bmc监听到了所述bios发送的心跳,则无需切换;
21.第二执行模块,所述第二执行模块用于若在一定周期内所述bmc并未监听到所述bios发送的心跳,则发送切换指令至系统,切换bios select信号,并重启所述bios。
22.优选地,所述监听模块具体用于:
23.所述bmc每5s进行一次监听;
24.若bmc连续监听3次均未监听到bios发送来的心跳,则发送切换指令至系统,切换bios select信号,并重启所述bios。
25.进一步地,所述自动切换装置还包括:
26.记录模块,所述记录模块用于在发送切换指令至系统,切换bios select信号,并重启所述bios的同时,bmc记录审计日志,以便于维护人员查阅。
27.进一步地,所述自动切换装置还包括:
28.第三执行模块,所述第三执行模块用于若连续切换bios select信号均未成功,则所述bmc记录严重事件,并发送告警信息至服务端,以便通知维护人员处理。
29.根据本发明的又一个方面,提供基于bmc控制双bios的自动切换设备,包括:
30.一个或多个处理器;
31.存储装置,用于存储一个或多个程序;
32.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一项所述的基于bmc控制双bios的自动切换方法。
33.根据本发明的再一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述任一项所述的基于bmc控制双bios的自动切换方法。
34.通过这种方案来实现双bios的自动切换,用现有服务器的部件即可完成双bios的切换,并有效地判断了bios是否正常并进行快速切换响应,在降低了芯片成本的同时,不影响bios启动的速度,设计实现简单。
35.本技术实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
36.附图是用来提供对本技术实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本技术实施例,但并不构成对本技术实施例的限制。在附图中:
37.图1示意性示出了根据本技术实施例一的基于bmc控制双bios的自动切换方法的流程示意图;
38.图2示意性示出了根据本技术实施例二的基于bmc控制双bios的自动切换方法的
流程示意图;
39.图3示意性示出了根据本技术实施例三的基于bmc控制双bios的自动切换装置的结构框图;
40.图4示意性示出了根据本技术实施例四的基于bmc控制双bios的自动切换设备的结构示意图;
41.图5示意性示出了根据本技术实施例五的一种存储介质的结构示意图。
具体实施方式
42.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,应当理解的是,此处所描述的具体实施方式仅用于说明和解释本技术实施例,并不用于限制本技术实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
43.在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。
44.此外,术语“第一”、“第二”等可在本文中用于描述各种方向、动作、步骤或元件等,但这些方向、动作、步骤或元件不受这些术语限制。这些术语仅用于将第一个方向、动作、步骤或元件与另一个方向、动作、步骤或元件区分。举例来说,在不脱离本技术的范围的情况下,可以将第一执行模块为第二执行模块,且类似地,可将第二执行模块称为第一执行模块。第一执行模块和第二执行模块两者都是执行模块,但其不是同一执行模块。术语“第一”、“第二”等而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
45.实施例一
46.图1示意性示出了根据本技术实施例的基于bmc控制双bios的自动切换方法的流程示意图。适用于双bios自动切换的场景,该方法可以由基于bmc控制双bios的自动切换装置来执行,该装置可以采用软件和/或硬件的方式实现,并可集成在设备上。
47.如图1所示,本发明实施例一提供的基于bmc控制双bios的自动切换方法包括:
48.s101、启动bmc;
49.对于服务器来讲,都会有bmc(baseboard management controller,底板管理控制器),在服务器系统中用于对服务器风扇、电源、设备等在位情况进行监控及管理,bmc与bios存在多种沟通渠道,如kcs(keyboard controller style,键盘控制器样式),ipmb(intelligent platform management bus,智能平台管理总线),apml(advanced platform management link,高级平台管理链接)等方式。
50.bmc是独立于bios/os端的监测工具,上电后,bmc就开始监听外部命令。
51.s102、运行bios;
52.一般来说,bmc与bios(basic input output system,基本输入输出系统)是同时启动的,但bmc跑得会比bios快,也就是说bmc很快就能开启监测功能。
53.s200、所述bmc监听所述bios发送的心跳;
54.s300、判断在一定周期内所述bmc是否监听到了所述bios发送的心跳;
55.若是,则无需切换;
56.若否,则执行步骤s400及s500;
57.s400、发送切换指令至系统,切换bios select信号;
58.s500、重启所述bios。
59.对于双bios flash的环境,本方案中的bios只要正常启动就会发送心跳(也可以说是外部命令)至bmc,让bmc知道该bios是正常的,无需进行切换,否则,bmc将一直监听不到bios的心跳,此时认为bios未正常启动,则需要进行bios的切换。因此,在本发明实施例中,所述bmc监听所述bios发送的心跳,并判断在一定周期内(如5s)所述bmc是否监听到了所述bios发送的心跳,若是,则无需切换;若否,则认为该bios挂了,将发送切换指令至系统(cpld,complex programmable logic devic,复杂可编程逻辑芯片),切换bios select信号,并重启bios,完成bios的切换。
60.在此基础上,bmc还可以记录审计日志,便于维护人员查阅。
61.通过上述方案,对于有双bios flash的环境,使用bmc来侦测bios心跳(确定其host端是否运行正常)来确定是否要做切换,从而保持host端能正常运行,用现有服务器的部件即可完成双bios的切换,并有效地判断了bios是否正常并进行快速切换响应,相比较于额外芯片功能支持等方式来说,在节约了芯片成本的同时,不影响bios的启动速度,设计简单。
62.实施例二
63.图2示意性示出了根据本技术实施例的基于bmc控制双bios的自动切换方法的流程示意图。适用于双bios自动切换的场景,该方法可以由基于bmc控制双bios的自动切换装置来执行,该装置可以采用软件和/或硬件的方式实现,并可集成在设备上。
64.如图2所示,本发明实施例二提供的基于bmc控制双bios的自动切换方法包括:
65.s11、启动bmc;
66.s12、运行bios;
67.s20、所述bmc监听所述bios发送的心跳;
68.s30、判断在一定周期内所述bmc是否监听到了所述bios发送的心跳;
69.若是,则无需切换;
70.若否,则执行步骤s40;
71.优选地,所述bmc监听所述bios发送的心跳并判断在一定周期内所述bmc是否监听到了所述bios发送的心跳,包括:
72.所述bmc每5s进行一次监听;
73.若bmc连续监听3次均未监听到bios发送来的心跳,则执行步骤s40及后续步骤,发送切换指令至系统,切换bios select信号,并重启所述bios。
74.在本发明另一优选实施例中,bios在正常启动运行时,将发送命令内容值0x00,若
不正常则发明命令内容值为0x01。因为bmc一直在进行周期性的监听,在bios正常启动的情况下,当连续3次所述bmc监听到的命令内容值是0x00,则认为该bios正常执行,无需切换;当连续3次所述bmc监听到的命令内容值是0x01,在这种情况下,即使监听到了该bios的心跳,但其命令内容值表明了该bios运行非正常,也同样执行步骤s40及后续步骤。同时bmc一并记录审计日志,便于维护人员查阅。
75.s40、发送切换指令至系统,切换bios select信号;
76.s50、重启所述bios。
77.s60、bmc记录审计日志,以便于维护人员查阅。
78.进一步地,如果bmc检测到两颗bios都有问题,比如若连续切换bios select信号均未成功,则所述bmc记录严重事件,并发送告警信息至服务端,以便通知维护人员处理。
79.通过上述方案,对于有双bios flash的环境,使用bmc来侦测bios心跳(确定其host端是否运行正常)来确定是否要做切换,从而保持host端能正常运行,用现有服务器的部件即可完成双bios的切换,并有效地判断了bios是否正常并进行快速切换响应,相比较于额外芯片功能支持等方式来说,在节约了芯片成本的同时,不影响bios的启动速度,设计简单。并在实施例一的基础上,增加了复杂情况的判断及事件的及时记录与处理,进一步保障了服务器的安全可靠。
80.实施例三
81.图3是本发明实施例三提供的基于bmc控制双bios的自动切换装置的结构示意图,适用于双bios自动切换的场景,该装置可以采用软件和/或硬件的方式实现,并可集成在设备上。
82.如图3所示,本实施例提供的基于bmc控制双bios的自动切换装置的结构示意图可以包括:启动模块10、监听模块20、第一执行模块30和第二执行模块40。
83.所述启动模块10用于启动bmc,并运行bios;所述监听模块20用于所述bmc监听所述bios发送的心跳,并判断在一定周期内所述bmc是否监听到了所述bios发送的心跳;所述第一执行模块30用于若在一定周期内所述bmc监听到了所述bios发送的心跳,则无需切换;所述第二执行模块40用于若在一定周期内所述bmc并未监听到所述bios发送的心跳,则发送切换指令至系统,切换bios select信号,并重启所述bios。
84.优选地,所述监听模块20具体用于:
85.所述bmc每5s进行一次监听;
86.若bmc连续监听3次均未监听到bios发送来的心跳,则发送切换指令至系统,切换bios select信号,并重启所述bios。
87.所述自动切换装置还包括:
88.记录模块,所述记录模块用于在发送切换指令至系统,切换bios select信号,并重启所述bios的同时,bmc记录审计日志,以便于维护人员查阅。
89.所述自动切换装置还包括:
90.第三执行模块,所述第三执行模块用于若连续切换bios select信号均未成功,则所述bmc记录严重时间,并发送告警信息至服务端,以便通知维护人员处理。
91.本发明实施例所提供的告警抑制装置可执行本发明任意实施例所提供的告警抑制方法,具备执行方法相应的功能模块和有益效果,本发明实施例中未详尽描述的内容可
以参考本发明任意方法实施例中的描述。
92.实施例四
93.图4是本发明实施例四提供的一种设备的结构示意图。图4示出了适于用来实现本发明实施方式的示例性设备412的框图。图4显示的设备412仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
94.如图4所示,设备412以通用设备的形式表现。设备412的组件可以包括但不限于:一个或者多个处理器416,存储装置428,连接不同系统组件(包括存储装置428和处理器416)的总线418。
95.总线418表示几类总线结构中的一种或多种,包括存储装置总线或者存储装置控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(industry subversive alliance,isa)总线,微通道体系结构(micro channel architecture,mac)总线,增强型isa总线、视频电子标准协会(video electronics standards association,vesa)局域总线以及外围组件互连(peripheral component interconnect,pci)总线。
96.设备412典型地包括多种计算机系统可读介质。这些介质可以是任何能够被设备412访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
97.存储装置428可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(random access memory,ram)430和/或高速缓存存储器432。终端412可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统434可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘,例如只读光盘(compact disc read-only memory,cd-rom),数字视盘(digital video disc-read only memory,dvd-rom)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线418相连。存储装置428可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
98.具有一组(至少一个)程序模块442的程序/实用工具440,可以存储在例如存储装置428中,这样的程序模块442包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块442通常执行本发明所描述的实施例中的功能和/或方法。
99.设备412也可以与一个或多个外部设备414(例如键盘、指向终端、显示器424等)通信,还可与一个或者多个使得用户能与该设备412交互的终端通信,和/或与使得该设备412能与一个或多个其它计算终端进行通信的任何终端(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口422进行。并且,设备412还可以通过网络适配器420与一个或者多个网络(例如局域网(local area network,lan),广域网(wide area network,wan)和/或公共网络,例如因特网)通信。如图4所示,网络适配器420通过总线418与设备412的其它模块通信。应当明白,尽管图中未示出,可以结合设备412使用其它硬件和/或软件模块,包括但不限于:微代码、终端驱动器、冗余处理器、外部磁盘驱动阵列、磁盘阵列(redundant arrays of independent disks,raid)系统、磁带驱动器以及数据备份存储系
统等。
100.处理器416通过运行存储在存储装置428中的程序,从而执行各种功能应用以及数据处理,例如实现本发明任意实施例所提供的基于bmc控制双bios的自动切换方法,该方法可以包括:
101.启动bmc,并运行bios;
102.所述bmc监听所述bios发送的心跳,并判断在一定周期内所述bmc是否监听到了所述bios发送的心跳;
103.若是,则无需切换;
104.若否,则发送切换指令至系统,切换bios select信号,并重启所述bios。
105.本发明实施例通过上述方案,实现了双bios的自动切换,
106.实施例五
107.参考图5,本技术还提供了一种存储介质100,存储介质100中存储有计算机程序200,当其在计算机上运行时,使得计算机执行以上实施例所描述的基于bmc控制双bios的自动切换方法,该方法可以包括:
108.启动bmc,并运行bios;
109.所述bmc监听所述bios发送的心跳,并判断在一定周期内所述bmc是否监听到了所述bios发送的心跳;
110.若是,则无需切换;
111.若否,则发送切换指令至系统,切换bios select信号,并重启所述bios。
112.本发明实施例的计算机可读存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
113.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
114.存储介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。
115.注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还
可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
技术特征:
1.基于bmc控制双bios的自动切换方法,其特征在于,所述自动切换方法包括:启动bmc,并运行bios;所述bmc监听所述bios发送的心跳,并判断在一定周期内所述bmc是否监听到了所述bios发送的心跳;若是,则无需切换;若否,则发送切换指令至系统,切换bios select信号,并重启所述bios。2.根据权利要求1所述的基于bmc控制双bios的自动切换方法,其特征在于,所述bmc监听所述bios发送的心跳并判断在一定周期内所述bmc是否监听到了所述bios发送的心跳,包括:所述bmc每5s进行一次监听;若bmc连续监听3次均未监听到bios发送来的心跳,则发送切换指令至系统,切换bios select信号,并重启所述bios。3.根据权利要求1所述的基于bmc控制双bios的自动切换方法,其特征在于,所述自动切换方法还包括:在发送切换指令至系统,切换bios select信号,并重启所述bios的同时,bmc记录审计日志,以便于维护人员查阅。4.根据权利要求1所述的基于bmc控制双bios的自动切换方法,其特征在于,所述自动切换方法还包括:若连续切换bios select信号均未成功,则所述bmc记录严重事件,并发送告警信息至服务端,以便通知维护人员处理。5.基于bmc控制双bios的自动切换装置,其特征在于,所述自动切换装置包括:启动模块,所述启动模块用于启动bmc,并运行bios;监听模块,所述监听模块用于所述bmc监听所述bios发送的心跳,并判断在一定周期内所述bmc是否监听到了所述bios发送的心跳;第一执行模块,所述第一执行模块用于若在一定周期内所述bmc监听到了所述bios发送的心跳,则无需切换;第二执行模块,所述第二执行模块用于若在一定周期内所述bmc并未监听到所述bios发送的心跳,则发送切换指令至系统,切换bios select信号,并重启所述bios。6.根据权利要求5所述的基于bmc控制双bios的自动切换装置,其特征在于,所述监听模块具体用于:所述bmc每5s进行一次监听;若bmc连续监听3次均未监听到bios发送来的心跳,则发送切换指令至系统,切换bios select信号,并重启所述bios。7.根据权利要求5所述的基于bmc控制双bios的自动切换装置,其特征在于,所述自动切换装置还包括:记录模块,所述记录模块用于在发送切换指令至系统,切换bios select信号,并重启所述bios的同时,bmc记录审计日志,以便于维护人员查阅。8.根据权利要求5所述的基于bmc控制双bios的自动切换装置,其特征在于,所述自动切换装置还包括:
第三执行模块,所述第三执行模块用于若连续切换bios select信号均未成功,则所述bmc记录严重事件,并发送告警信息至服务端,以便通知维护人员处理。9.基于bmc控制双bios的自动切换设备,其特征在于,包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4中任一项所述的基于bmc控制双bios的自动切换设备。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一项所述的基于bmc控制双bios的自动切换设备。
技术总结
本发明实施例提供一种基于BMC控制双BIOS的自动切换方法、装置、设备及存储介质。方法包括:启动BMC,并运行BIOS;所述BMC监听所述BIOS发送的心跳,并判断在一定周期内所述BMC是否监听到了所述BIOS发送的心跳;若是,则无需切换;若否,则发送切换指令至系统,切换BIOS select信号,并重启所述BIOS。通过这种方案来实现双BIOS的自动切换,用现有服务器的部件即可完成双BIOS的切换,并有效地判断了BIOS是否正常并进行快速切换响应,在降低了芯片成本的同时,不影响BIOS启动的速度,设计实现简单。设计实现简单。设计实现简单。
技术研发人员:党德华 唐斌 姚玲
受保护的技术使用者:深圳市同泰怡信息技术有限公司
技术研发日:2023.07.06
技术公布日:2023/9/23
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/