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

一种多路服务器的双BIOS度量方法、装置及设备

文献发布时间:2023-06-19 11:02:01


一种多路服务器的双BIOS度量方法、装置及设备

技术领域

本申请涉及计算机技术领域,特别涉及一种多路服务器的双BIOS度量方法、装置、设备及可读存储介质。

背景技术

随着云计算、物联网、移动计算等技术的发展和应用领域的不断拓宽,现代信息技术在社会生产生活中的引领作用越来越突出。与此同时,无论是信息的提供者还是访问者,对信息的安全要求及重视程度越来越高,可信计算(trusted computing)技术作为信息安全领域的新元素,被广泛用于服务器、计算机终端产品中。

目前单路服务器的BIOS度量方法已比较成熟,但针对多路服务器实现对双BIOS的度量还没有成熟的方法。

发明内容

本申请的目的是提供一种多路服务器的双BIOS度量方法、装置、设备及可读存储介质,用以解决目前缺少对多路服务器双BIOS进行度量的实现方案的问题。其具体方案如下:

第一方面,本申请提供了一种多路服务器的双BIOS度量方法,所述多路服务器包括两个以上CPU,所述两个以上CPU包括预设CPU,每个所述CPU包括主BIOS和备BIOS,该方法包括:

在服务器上电过程中,从所述预设CPU的主BIOS或备BIOS读取每个所述CPU的主BIOS的地址和备BIOS的地址;

根据每个所述CPU的主BIOS的地址和备BIOS的地址,对各个所述CPU的主BIOS和备BIOS进行度量;

若全部所述CPU均至少存在一个BIOS通过度量,则继续上电动作,所述服务器正常启动;

若任意一个所述CPU的主BIOS和备BIOS均未通过度量,则停止上电动作,所述服务器启动失败。

优选的,所述从所述预设CPU的主BIOS或备BIOS读取每个所述CPU的主BIOS的地址和备BIOS的地址,包括:

对所述预设CPU的主BIOS进行读取操作;

若读取成功,则获得每个所述CPU的主BIOS的地址和备BIOS的地址;

若读取失败,则对所述预设CPU的备BIOS进行读取操作;

若读取成功,则获得每个所述CPU的主BIOS的地址和备BIOS的地址;

若读取失败,则停止上电动作,所述服务器启动失败。

优选的,所述对各个所述CPU的主BIOS和备BIOS进行度量,包括:

对于任意一个所述CPU,对该CPU的主BIOS进行度量;

若通过度量,则继续度量下一个所述CPU;

若未通过度量,则对该CPU的备BIOS进行度量。

优选的,所述从所述预设CPU的主BIOS或备BIOS读取每个所述CPU的主BIOS的地址和备BIOS的地址,包括:

从所述预设CPU的主BIOS或备BIOS读取最大度量次数、每个所述CPU的主BIOS的地址和备BIOS的地址;

相应的,所述若未通过度量,则对该CPU的备BIOS进行度量,包括:

若未通过度量,则重复对该CPU的主BIOS进行度量,直至通过度量;

若度量次数达到所述最大度量次数时该CPU的主BIOS仍未通过度量,则对该CPU的备BIOS进行度量。

优选的,在所述停止上电动作,所述服务器启动失败之后,还包括:

将未通过度量的信息发送给BMC和/或CPLD。

优选的,在所述将未通过度量的信息发送给BMC和/或CPLD之后,还包括:

利用所述BMC对所述未通过度量的信息进行远程展示;

和/或,

利用所述CPLD控制多色灯以表示所述未通过度量的信息。

优选的,所述利用所述CPLD控制多色灯以表示所述未通过度量的信息,包括:

利用所述CPLD控制所述多色灯的一种颜色表示一个所述CPU,并控制所述多色灯不同的闪动频率表示不同的启动失败类型,所述启动失败类型包括以下任意一项或多项:地址读取失败,主BIOS未通过度量,备BIOS未通过度量,主BIOS和备BIOS均未通过度量。

第二方面,本申请提供了一种多路服务器的双BIOS度量装置,所述多路服务器包括两个以上CPU,所述两个以上CPU包括预设CPU,每个所述CPU包括主BIOS和备BIOS,该装置包括:

地址读取模块:用于在服务器上电过程中,从所述预设CPU的主BIOS或备BIOS读取每个所述CPU的主BIOS的地址和备BIOS的地址;

度量模块:用于根据每个所述CPU的主BIOS的地址和备BIOS的地址,对各个所述CPU的主BIOS和备BIOS进行度量;

正常启动模块:用于在全部所述CPU均至少存在一个BIOS通过度量时,则继续上电动作,所述服务器正常启动;

启动失败模块:用于在任意一个所述CPU的主BIOS和备BIOS均未通过度量时,则停止上电动作,所述服务器启动失败。

第三方面,本申请提供了一种多路服务器的双BIOS度量设备,包括:

存储器:用于存储计算机程序;

处理器:用于执行所述计算机程序,以实现如上文所述的多路服务器的双BIOS度量方法。

第四方面,本申请提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如上文所述的多路服务器的双BIOS度量方法。

本申请所提供的一种多路服务器的双BIOS度量方法,其中多路服务器包括两个以上CPU,两个以上CPU包括预设CPU,每个CPU包括主BIOS和备BIOS,该方法包括:在服务器上电过程中,从预设CPU的主BIOS或备BIOS读取每个CPU的主BIOS的地址和备BIOS的地址;根据每个CPU的主BIOS的地址和备BIOS的地址,对各个CPU的主BIOS和备BIOS进行度量;若全部CPU均至少存在一个BIOS通过度量,则继续上电动作,服务器正常启动;若任意一个CPU的主BIOS和备BIOS均未通过度量,则停止上电动作,服务器启动失败。可见,该方法实现了对多路服务器双BIOS的度量过程,能够保证服务器的BIOS固件安全,从而保证服务器开机运行后的数据安全。

此外,本申请还提供了一种多路服务器的双BIOS度量装置、设备及可读存储介质,其技术效果与上述方法的技术效果相对应,这里不再赘述。

附图说明

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

图1为本申请所提供的一种多路服务器的双BIOS度量方法实施例一的流程图;

图2为本申请所提供的一种多路服务器的双BIOS度量方法实施例一的一种度量过程示意图;

图3为本申请所提供的一种多路服务器的双BIOS度量方法实施例一的另一种度量过程示意图;

图4为本申请所提供的一种多路服务器的双BIOS度量方法实施例二中双路服务器的硬件架构示意图;

图5为本申请所提供的一种多路服务器的双BIOS度量装置实施例的功能框图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

可信计算机硬件平台主要包括可信CPU、可信安全芯片、安全BIOS固件及安全外设。安全芯片(又称安全卡)是一块基于安全管控SOC芯片的独立第三方监控板,主要实现对主板的固件验证、数据监控等功能。安全BIOS固件负责机器加电后各种硬件设备的检测初始化、操作系统装载引导、中断服务提供及系统参数设置的操作。在高可信计算机中,BIOS和安全芯片共同构成了系统的物理信任根。

本申请正是基于安全卡及安全BIOS固件,提供一种多路服务器的双BIOS度量方法、装置、设备及可读存储介质,用来保证服务器的BIOS固件安全,从而保证服务器开机运行后的数据安全。

下面对本申请提供的一种多路服务器的双BIOS度量方法实施例一进行介绍。

本实施例以安全卡为执行主体,参见图1,本实施例包括以下步骤:

S101、在服务器上电过程中,从所述预设CPU的主BIOS或备BIOS读取每个所述CPU的主BIOS的地址和备BIOS的地址。

本实施例中,多路服务器是指包括两个以上CPU的服务器,具体可以为包括两个CPU的双路服务器,包括四个CPU的四路服务器等。多路服务器中的各个CPU均包括两个BIOS,分别记为主BIOS和备BIOS。

而且,在多个服务器中某个CPU被记为预设CPU,预设CPU的主BIOS和备BIOS均存储有多路服务器中全部BIOS的地址。安全卡从预设CPU的主BIOS或备BIOS读取到全部BIOS的地址之后,即可访问多路服务器的任意BIOS,以便进行度量。

作为一种具体的实施方式,安全卡默认先读取预设CPU的主BIOS,若读取成功,则获得每个CPU的主BIOS的地址和备BIOS的地址,进入S102;若读取失败,则对预设CPU的备BIOS进行读取操作;若读取成功,则获得每个CPU的主BIOS的地址和备BIOS的地址,进入S102;若读取失败,则表明预设CPU的主BIOS和备BIOS均存在问题,因此不再继续后续流程,停止上电动作,服务器启动失败。

S102、根据每个所述CPU的主BIOS的地址和备BIOS的地址,对各个所述CPU的主BIOS和备BIOS进行度量。

本实施例不限定各个BIOS的度量先后顺序,这里提供两种可行的度量过程,不应当将其理解为对本申请的限定:

度量过程一:在不存在主BIOS和备BIOS均故障的CPU时,对每个CPU而言,至少有一个BIOS会被度量。因此,如图2所示,可以先对全部CPU的主BIOS进行度量,若全部CPU的主BIOS均通过度量,则继续上电动作,服务器正常启动;若全部CPU的主BIOS中存在部分主BIOS甚至全部主BIOS未通过度量,则对主BIOS未通过度量的CPU的备BIOS进行度量。

在度量主BIOS未通过度量的CPU的备BIOS时,若任意一个备BIOS的度量结果为未通过度量,则停止上电动作,服务器启动失败;若全部备BIOS均通过度量,则继续上电动作,服务器正常启动。

度量过程二:如图3所示,分别对各个CPU的主备BIOS进行度量,对于任意一个CPU,首先对该CPU的主BIOS进行度量;若主BIOS通过度量,则继续度量下一个CPU;若主BIOS未通过度量,则对该CPU的备BIOS进行度量;若备BIOS通过度量,则继续度量下一个CPU;若备BIOS未通过度量,则停止上电动作,服务器启动失败。在全部CPU被度量完成后,继续上电动作,服务器正常启动。

为避免单次度量结果不可靠,作为一种优选的实施方式,本实施例还设置了最大度量次数。具体的,预先将最大度量次数也存储在预设CPU的主BIOS和备BIOS,在S101中,读取每个CPU的主BIOS的地址和备BIOS的地址的同时,也读取出最大度量次数。在S102中,对每个BIOS进行度量的时候,单次度量未通过不直接得出度量未通过的结果,而是重复对未通过度量的BIOS进行度量,直至度量通过或达到最大度量次数为止。

S103、若全部所述CPU均至少存在一个BIOS通过度量,则继续上电动作,所述服务器正常启动。

S104、若任意一个所述CPU的主BIOS和备BIOS均未通过度量,则停止上电动作,所述服务器启动失败。

本实施例提供一种多路服务器的双BIOS度量方法,其中多路服务器包括两个以上CPU,两个以上CPU包含预设CPU,每个CPU包括主BIOS和备BIOS,该方法能够在服务器上电过程中,从预设CPU的主BIOS或备BIOS读取每个CPU的主BIOS的地址和备BIOS的地址;根据读取出来的地址,对各个CPU的主BIOS和备BIOS进行度量;若全部CPU均至少存在一个BIOS通过度量,则继续上电动作,服务器正常启动;若任意一个CPU的主BIOS和备BIOS均未通过度量,则停止上电动作,服务器启动失败。可见,该方法实现了对多路服务器双BIOS的度量过程,能够保证服务器的BIOS固件安全,从而保证服务器开机运行后的数据安全。

下面开始详细介绍本申请提供的一种多路服务器的双BIOS度量方法实施例二,实施例二以实施例一为基础,并在实施例一的基础上进行了一定程度上的拓展。

具体的,实施例二在实施例一的基础上,能够将未通过度量的信息发送给BMC和/或CPLD,利用BMC和/或CPLD展示未通过度量的信息,方便定位问题。下面将以双路服务器为例,对双路服务器的双BIOS的度量过程进行说明。

如图4所示,双路服务器的硬件架构如下:

1、CPUO BIOS0是CPUO的主BIOS固件,负责与CPUO通信,CPU0 BIOS1是备选BIOS固件,通过CPLD进行主备切换;

2、CPU1 BIOS0是CPU1的主BIOS固件,负责与CPU1通信,CPU1 BIOS1是备选BIOS固件,通过CPLD进行主备切换;

3、双色灯用来指示CPU0或CPU1的BIOS度量失败;

4、安全卡用来在机器上电时对BIOS进行度量,度量通过后,机器才能最终完成CPU和PCIE设备的上电;

5、BMC用来进行远程管理,在这里用来记录BIOS度量不通过时的报错信息;

6、两个CPU、安全卡、四个BIOS flash、BMC通过CPLD实现互相通信。

基于以上硬件架构,本实施例的实施过程如下:

S201、按开机键开机或者按复位键重启后,CPLD开始控制一些供电电路完成上电,安全卡复位信号默认为低,表示复位状态。

S202、安全卡完成复位后,CPLD将复位信号拉高,安全卡开始进入工作状态。

S203、安全卡将表示度量的标志位拉高,输出给CPLD。

S204、CPLD检测到表示度量的标志位信号为高时,开始将安全卡的SPI信号与CPU0BIOS0的SPI信号连通。

S205、安全卡读取CPU0 BIOS0里存放的最大度量次数及所有BIOS的地址;如果CPU0 BIOS0故障,则读取失败,安全卡通知CPLD切换到CPU0 BIOS1,继续读取CPU0 BIOS1李存放的最大度量次数及所有BIOS的地址;如果CPU0 BIOS1故障,则读取失败,判定CPU0读取失败。

如果安全卡从CPU0 BIOS0或者CPU0 BIOS1成功读取出最大度量次数及所有BIOS的地址,则继续后续流程。

S206、安全卡解析最大度量次数及所有BIOS的地址,之后对每个CPU的BIOS0和BIOS1进行度量。

默认开始对CPU0 BIOS0进行度量,若度量通过,安全卡通知CPLD切换SPI线路,对CPU1 BIOS0进行度量,如果也度量通过,则两个CPU的BIOS0都度量通过,直接判定启动成功。

如果某个CPU的BIOS0度量未通过,安全卡会重复对BIOS0进行度量,直至度量通过。在度量次数达到前述最大度量次数且BIOS0仍然未通过度量时,安全卡通知CPLD将安全卡的SPI信号与该CPU的BIOS1连通,开始对BIOS1进行度量。若度量通过,且另一个CPU的BIOS0或BIOS1也度量通过,则判定启动成功。

如果BIOS1度量未通过,安全卡会重复对BIOS1进行度量,直至度量通过。在度量次数达到前述最大度量次数且BIOS1仍然未通过度量时,判定启动失败。

S207、在判定CPU0读取失败时,CPLD控制双色灯中代表CPU0的颜色灯闪烁,且运行程序停止,服务器未完成最终上电。

在判定启动成功时,安全卡将表示度量的标志位拉低,输出给CPLD;如果某个CPU的某个BIOS未通过度量,安全卡将通过I2C信号告知CPLD未通过度量的BIOS,对于主BIOS或备BIOS未通过度量的CPU,CPLD控制双色灯中代表该CPU的颜色灯常亮。

在判定启动失败时,安全卡不将表示度量的标志位拉低,CPLD不会进行其他动作,机器未完成最终上电;安全卡通过I2C信号告知CPLD未通过度量的BIOS,对于主BIOS和/或备BIOS未通过度量的CPU,CPLD控制双色灯中代表该CPU的颜色灯常亮。

S208、CPLD检测到表示度量的标志位为低时,根据I2C信号确定通过度量的BIOS,将CPU0的SPI信号与通过度量的BIOS的SPI信号连通,将CPU1的SPI信号与通过度量的BIOS的SPI信号连通,并通过I2C信号告知安全卡已完成切换。

S209、安全卡拉高主板复位标志信号,并输出给CPLD。

S210、CPLD检测到该主板复位标志信号为高时,开始将两个CPU及PCIE设备的复位信号拉高。

S211、主板完成上电。

本实施例设计了双色灯,当双色灯中代表CPU0的颜色灯闪烁时,可以得知安全卡没能从CPU0的主备BIOS中读取到最大度量次数及全部BIOS的地址信息,导致安全度量失败。当双色灯中代表某个CPU的某颜色灯长亮时,且另一个颜色灯不亮时,如果此时服务器上电已完成,可以得知该CPU的主BIOS或备BIOS度量失败;如果此时服务器上电未完成,可以得知该CPU的主BIOS和备BIOS都度量失败。这样方便定位问题。

可见,本实施例针对多路服务器提供一种度量双BIOS固件安全的方法,此方法可用于双路、四路等多路服务器中。本实施例可实现:

1、在服务器上电过程中,安全卡逐次对每个CPU的主BIOS固件进行安全度量。当一个CPU的主BIOS度量失败时,系统切换到对备BIOS进行度量。

2、每个CPU的主备BIOS必须有一个通过度量,机器才能完成上电,否则机器停止继续上电动作。保证了多路服务器的数据运行安全及功能稳定。

3、安全卡将每个CPU的BIOS度量未通过信息发送给BMC和CPLD。BMC可以远程展示度量未通过信息。CPLD则通过多色灯对度量不通过的BIOS给出警示,方便使用者定位是哪个CPU的哪个BIOS出问题。

下面对本申请实施例提供的多路服务器的双BIOS度量装置进行介绍,下文描述的多路服务器的双BIOS度量装置与上文描述的多路服务器的双BIOS度量方法可相互对应参照。

本实施例提供了一种多路服务器的双BIOS度量装置,所述多路服务器包括两个以上CPU,所述两个以上CPU包括预设CPU,每个所述CPU包括主BIOS和备BIOS,如图5所示,该装置包括:

地址读取模块501:用于在服务器上电过程中,从所述预设CPU的主BIOS或备BIOS读取每个所述CPU的主BIOS的地址和备BIOS的地址;

度量模块502:用于根据每个所述CPU的主BIOS的地址和备BIOS的地址,对各个所述CPU的主BIOS和备BIOS进行度量;

正常启动模块503:用于在全部所述CPU均至少存在一个BIOS通过度量时,则继续上电动作,所述服务器正常启动;

启动失败模块504:用于在任意一个所述CPU的主BIOS和备BIOS均未通过度量时,则停止上电动作,所述服务器启动失败。

本实施例的多路服务器的双BIOS度量装置用于实现前述的多路服务器的双BIOS度量方法,因此该装置中的具体实施方式可见前文中的多路服务器的双BIOS度量方法的实施例部分,例如,地址读取模块501、度量模块502、正常启动模块503、启动失败模块504,分别用于实现上述多路服务器的双BIOS度量方法中步骤S101,S102,S103,S104。所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再展开介绍。

另外,由于本实施例的多路服务器的双BIOS度量装置用于实现前述的多路服务器的双BIOS度量方法,因此其作用与上述方法的作用相对应,这里不再赘述。

此外,本申请还提供了一种多路服务器的双BIOS度量设备,包括:

存储器:用于存储计算机程序;

处理器:用于执行所述计算机程序,以实现如上文所述的多路服务器的双BIOS度量方法。

最后,本申请提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如上文所述的多路服务器的双BIOS度量方法。

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

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 一种多路服务器的双BIOS度量方法、装置及设备
  • 一种多路服务器中CPU的BIOS加载方法及相关组件
技术分类

06120112774654