技术领域
[0001] 本申请涉及计算机技术领域,特别是涉及一种版本信息获取方法、装置、服务器和存储介质。
相关背景技术
[0002] 作为服务器的重要组成部分,需要确保BMC(Baseboard Management Controller,基板管理控制器)和BIOS(Basic Input/Output System,基本输入输出系统)的兼容性和互操作性,这表明服务器的BIOS和BMC版本需要相互匹配,以确保保证机器能够正常工作并提供预期的功能。
[0003] 随着开发迭代速度的快速增长,BIOS和BMC版本间的兼容性涉及版本兼容性、功能兼容性、通信兼容性、驱动程序、固件兼容性和硬件兼容性,版本间的兼容和适配性变的尤为重要。BMC和BIOS版本号适配不对轻则影响版本号获取和使用,某些功能和通信等无法正常使用,重则导致适配失败机器无法开机。
[0004] 而当前BMC和BIOS版本间的版本获取方式通常为BMC带外获取和适配,通过BIOS设置界面显示;客户常用服务器的OS系统(Operating System,开放式操作系统)下可以通过type 0命令获取BIOS信息,但无法读取BMC版本号。且当前BMC和BIOS版本号适配主要依靠web带外刷新时增加的一些hpm校验方式,其不便之处在于:(1)忘记带外用户名密码或BMC网络不正常时,BMC就无法访问,无法校验BIOS版本;(2)没有一种很好的方法来判断BMC和BIOS版本适配性。
具体实施方式
[0046] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0047] 在一个实施例中,如图1所示,提供了一种版本信息获取方法,以该方法应用于服务器为例进行说明,包括以下步骤:
[0048] 步骤102,获取基板管理控制器对应的全局唯一标识符。
[0049] 其中,基板管理控制器是服务器的重要组成部分之一,基板管理控制器(Baseboard Management Controller,BMC)负责监控和管理主机硬件,提供远程管理和监控功能,以及处理主机的系统事件和警报,用户可以通过共享网络访问服务器中的BMC,便于服务器的带外访问、电源控制、传感器管理和资产、设备管理等。
[0050] 其中,全局唯一标识符是基板管理控制器对应的,是基板管理控制器的设备信息、时间、版本信息加密生成的,可通过专门的全局唯一标识符生成算法生成得到的。具体地,通过发送命令至基板管理控制器中,基板管理控制器根据该命令返回已生成的全局唯一标识符。
[0051] 步骤104,对全局唯一标识符进行解析,得到基板管理控制器对应的第一版本信息。
[0052] 其中,由于全局唯一标识符是基于基板管理控制器的设备信息、时间、版本信息加密生成的,因此,在获取到基板管理控制器对应的全局唯一标识符后,可以对全局唯一标识符进行解析,解析全局唯一标识符中包含的版本信息,即第一版本信息。也就是说,这里的第一版本信息是基板管理控制器当前的版本信息,包括但不限于版本号、版本标识等。其中,对全局唯一标识符进行解析,可以使用全局唯一标识符解析算法进行解析。其中,解析得到的信息不仅限于第一版本信息,还包括基板管理控制器的设备信息以及第一版本信息对应的时间信息等。
[0053] 步骤106,获取基本输入输出系统对应的第二版本信息。
[0054] 其中,服务器的重要组成部分还包括基本输入输出系统,基本输入输出系统(Basic Input/Output System,BIOS)是计算机系统中的一种固件,它提供了计算机启动时的基本输入输出功能,BIOS位于计算机主板上的一块ROM(只读存储器,Read‑Only Memory)芯片中,它负责初始化硬件设备、加载操作系统以及提供一些系统管理和配置功能,是服务器开机的基础。
[0055] 其中,这里的第二版本信息是基本输入输出系统BIOS当前的版本信息,包括但不限于BIOS的当前版本号、当前版本标识以及当前版本的版本描述信息等。
[0056] 步骤108,根据第一版本信息与第二版本信息生成通用唯一识别码。
[0057] 其中,通用唯一识别码是用来描述基板管理控制器BMC与输入输出系统BIOS的版本适配情况的,可以通过通用唯一识别码获取BMC与BIOS之间的版本适配情况,因此,通用唯一识别码是根据BMC的第一版本信息与BIOS的第二版本信息生成的,即,对第一版本信息与第二版本信息进行加密,得到通用唯一识别符。
[0058] 步骤110,通过通用唯一识别码获取基板管理控制器与基本输入输出系统之间的版本组合信息。
[0059] 其中,版本组合信息是基板管理控制器BMC与输入输出系统BIOS之间的版本适配情况,包括BMC与BIOS的适配版本信息。具体地,在得到通用唯一识别码后,可以对通用唯一识别码进行解析,得到BMC与BIOS的版本组合信息,包括BMC与BIOS适配的版本信息(BMC的版本以及以及适配的BIOS的版本信息)。其中,对通用唯一识别码进行解析可以通过通用唯一识别码解析算法进行解析。
[0060] 上述版本信息获取方法中,获取基板管理控制器对应的全局唯一标识符,对全局唯一标识符进行解析,得到基板管理控制器对应的第一版本信息,获取基本输入输出系统对应的第二版本信息,根据第一版本信息与第二版本信息生成通用唯一识别码,通过通用唯一识别码获取基板管理控制器与基本输入输出系统之间的版本组合信息。
[0061] 因此,基本输入输出系统BIOS通过全局唯一标识符识别出基板管理控制器BMC的版本信息,结合BIOS的版本信息,生成通用唯一识别码,并通过对通用唯一识别码进行解析,得到BIOS与BMC之间的版本适配情况,能够自动识别出BIOS与BMC之间的版本适配情况,避免版本搭配错误导致的兼容错误或操作错误。其中,让用户在无需登陆BMC或重启进入BIOS设置界面的情况下就能更好的掌握固件适配版本信息,判断BIOS和BMC的版本号及适配信息,而且通用唯一识别码可以确保在不同的计算机系统中生成的标识符是唯一的,可以避免BIOS和BMC版本因为适配导致的适配问题,实现项目的高效迭代开发。
[0062] 在一个实施例中,如图2所示,获取基板管理控制器对应的全局唯一标识符之前,包括:
[0063] 步骤202,基板管理控制器获取当前版本信息、当前时间和当前设备信息。
[0064] 步骤204,基板管理控制器根据当前版本信息、当前时间和当前设备信息生成对应的全局唯一标识符。
[0065] 其中,当前版本信息是基板管理控制器目前的版本相关的信息,包括版本号、版本标识、版本描述性信息等,而当前时间是基板管理控制器目前的时间相关的信息,当前设备信息是基板管理控制器目前的设备相关的信息,包括设备号、设备标识、设备描述性信息。
[0066] 具体地,基板管理控制器获取当前版本信息、当前时间和当前设备信息,通过全局唯一标识符生成算法对获取到的当前版本信息、当前时间和当前设备信息进行加密,得到对应的全局唯一标识符。其中,基板管理控制器版本信息、时间和设备信息中其中一个发生了变化,最后生成的全局唯一标识符都是不同的。
[0067] 在一个实施例中,如图3所示,获取基板管理控制器对应的全局唯一标识符,包括:
[0068] 步骤302,发送智能平台管理接口命令至基板管理控制器。
[0069] 步骤304,接收基板管理控制器根据智能平台管理接口命令返回的全局唯一标识符。
[0070] 其中,智能平台管理接口命令是IPMI命令,IPMI是指一组用于带外管理的计算机接口规范,带外是指无需与系统的物理资产位于同一房间即可访问计算机系统。也就是说,全局唯一标识符的传送方式为IPMI方式,IPMI为BIOS与BMC之间信息交互共享的一种机制,BIOS可以发送和接收IPMI命令给BMC。
[0071] 具体地,发送智能平台管理接口命令至BMC,通过IPMI方式进行传统,BIOS接收到智能平台管理接口命令后,根据智能平台管理接口命令返回已生成的全局唯一标识符。其中,全局唯一标识符是BMC根据设备信息、时间信息、版本信息进行生成得到的。
[0072] 在一个实施例中,如图4所示,对全局唯一标识符进行解析,得到基板管理控制器对应的第一版本信息,包括:
[0073] 步骤402,对全局唯一标识符进行解析,得到基板管理控制器对应的当前版本信息。
[0074] 步骤404,获取基本输入输出系统与基板管理控制器协定的适配版本搭配关系。
[0075] 步骤406,根据适配版本搭配关系判断当前版本信息与第二版本信息是否匹配。
[0076] 步骤408,当匹配时,则将当前版本信息确定为第一版本信息。
[0077] 其中,由于全局唯一标识符中包含基板管理控制器的版本信息、设备信息和时间信息,因此,对全局唯一标识符进行解析,能够得到基板管理控制器的版本信息。
[0078] 具体地,对全局唯一标识符进行解析,具体可以使用全局唯一标识符解析算法对全局唯一标识符进行解析,得到基板管理控制器对应的当前版本信息。
[0079] 其中,适配版本搭配关系是基本输入输出系统BIOS与基板管理控制器BMC事先约定的相互匹配的版本搭配情况,即适配版本搭配关系中描述BIOS版本与对应的BMC版本,例如,BIOS第一版本号对应的BMC第一版本号。
[0080] 进一步地,获取BIOS与BMC预先协定的适配版本搭配关系,通过适配版本搭配关系中描述的BIOS版本与匹配的BMC版本之间的关系来判断当前版本信息与第二版本信息是否适配。当匹配时,可以确定解析出来的当前版本信息确定为基板管理控制器对应的第一版本信息。
[0081] 在一个实施例中,步骤406包括:根据适配版本搭配关系确定当前版本信息对应的目标适配版本信息,计算目标适配版本信息与第二版本信息之间的版本相似度,根据版本相似度确定目标适配版本信息与第二版本信息是否匹配。
[0082] 其中,根据适配版本搭配关系判断当前版本信息与第二版本信息是否匹配,具体可以是,通过版本信息之间的相似度来确定是否匹配。具体地,首先,根据适配版本搭配关系确定与当前版本信息对应的目标适配版本信息,计算目标适配版本信息与第二版本信息之间的版本相似度,获取预设版本相似度,比较版本相似度与预设版本相似度,当版本相似度大于预设版本相似度时,确定目标适配版本信息与第二版本信息匹配,反之,当版本相似度小于预设版本相似度时,确定目标适配版本信息与第二版本信息不匹配。
[0083] 在一个实施例中,上述方法还包括:当不匹配时,则发送错误信息至基板管理控制器,使得基板管理控制器根据错误信息重新生成新的全局唯一标识符,返回获取基板管理控制器对应的全局唯一标识符的步骤。
[0084] 其中,当解析出来的当前版本信息与第二版本信息不匹配时,则发送错误信息至基板管理控制器或基本输入输出系统自身,基板管理控制器接收到错误信息后,重新获取版本信息、时间、设备信息等,重新生成新的全局唯一标识符,返回获取基板管理控制器对应的全局唯一标识符的步骤。
[0085] 在一个实施例中,如图5所示,根据第一版本信息与第二版本信息生成通用唯一识别码,包括:
[0086] 步骤502,获取通用唯一识别码生成算法。
[0087] 步骤504,根据通用唯一识别码生成算法对第一版本信息与第二版本信息进行加密计算,得到通用唯一识别码。
[0088] 其中,通用唯一识别码生成算法是用来生成通用唯一识别码的,通过通用唯一识别码生成算法对第一版本信息和第二版本信息进行加密计算,得到对应的通用唯一识别码。通用唯一识别码生成算法可以预先生成。
[0089] 具体地,获取通用唯一识别码生成算法,使用通用唯一识别码生成算法对基板管理控制器对应的第一版本信息和基板输入输出系统对应的第二版本信息进行加密计算,得到通用唯一识别码。
[0090] 在一个实施例中,通过通用唯一识别码获取基板管理控制器与基本输入输出系统之间的版本组合信息,包括:将通用唯一识别码发送至操作系统,使得操作系统对通用唯一识别码进行解析,得到基板管理控制器与基本输入输出系统之间的版本组合信息,并展示。
[0091] 其中,可以通过操作系统OS展示基板管理控制器BMC与基本输入输出系统BIOS之间的版本组合信息,方便用户测试和使用,操作系统OS解析和识别通用唯一识别码,能够便于用户在OS下查询BMC与BIOS之间的版本适配情况。
[0092] 具体地,将通用唯一识别码发送至操作系统OS,操作系统OS接收到通用唯一识别码后,对通用唯一识别码进行解析,得到通用唯一识别码中携带的BMC与BIOS之间的版本组合信息,并展示。其中,版本组合信息包括BMC与BIOS之间的版本适配情况,即BMC与BIOS分别对应的适配版本信息。
[0093] 应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0094] 在一个实施例中,如图6所示,提供了一种版本信息获取装置600,包括:第一获取模块602、解析模块604、第二获取模块606、生成模块608和输出模块610,其中:
[0095] 第一获取模块602,用于获取基板管理控制器对应的全局唯一标识符。
[0096] 解析模块604,用于对全局唯一标识符进行解析,得到基板管理控制器对应的第一版本信息。
[0097] 第二获取模块606,用于获取基本输入输出系统对应的第二版本信息。
[0098] 生成模块608,用于根据第一版本信息与第二版本信息生成通用唯一识别码。
[0099] 输出模块610,用于通过通用唯一识别码获取基板管理控制器与基本输入输出系统之间的版本组合信息。
[0100] 在一个实施例中,第一获取模块602发送智能平台管理接口命令至基板管理控制器,接收基板管理控制器根据智能平台管理接口命令返回的全局唯一标识符。
[0101] 在一个实施例中,解析模块604对全局唯一标识符进行解析,得到基板管理控制器对应的当前版本信息,获取基本输入输出系统与基板管理控制器协定的适配版本搭配关系,根据适配版本搭配关系判断当前版本信息与第二版本信息是否匹配,当匹配时,则将当前版本信息确定为第一版本信息。
[0102] 在一个实施例中,解析模块604根据适配版本搭配关系确定当前版本信息对应的目标适配版本信息,计算目标适配版本信息与第二版本信息之间的版本相似度,根据版本相似度确定目标适配版本信息与第二版本信息是否匹配。
[0103] 在一个实施例中,版本信息获取装置600当不匹配时,则发送错误信息至基板管理控制器,使得基板管理控制器根据错误信息重新生成新的全局唯一标识符,返回第一获取模块602获取基板管理控制器对应的全局唯一标识符的步骤。
[0104] 在一个实施例中,生成模块608获取通用唯一识别码生成算法,根据通用唯一识别码生成算法对第一版本信息与第二版本信息进行加密计算,得到通用唯一识别码。
[0105] 在一个实施例中,输出模块610将通用唯一识别码发送至操作系统,使得操作系统对通用唯一识别码进行解析,得到基板管理控制器与基本输入输出系统之间的版本组合信息,并展示。
[0106] 关于版本信息获取装置的具体限定可以参见上文中对于版本信息获取方法的限定,在此不再赘述。上述版本信息获取装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0107] 在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储通用唯一识别码。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种版本信息获取方法。
[0108] 本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0109] 在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取基板管理控制器对应的全局唯一标识符,对全局唯一标识符进行解析,得到基板管理控制器对应的第一版本信息,获取基本输入输出系统对应的第二版本信息,根据第一版本信息与第二版本信息生成通用唯一识别码,通过通用唯一识别码获取基板管理控制器与基本输入输出系统之间的版本组合信息。
[0110] 在一个实施例中,处理器执行计算机程序时还实现以下步骤:基板管理控制器获取当前版本信息、当前时间和当前设备信息,基板管理控制器根据当前版本信息、当前时间和当前设备信息生成对应的全局唯一标识符。
[0111] 在一个实施例中,处理器执行计算机程序时还实现以下步骤:发送智能平台管理接口命令至基板管理控制器,接收基板管理控制器根据智能平台管理接口命令返回的全局唯一标识符。
[0112] 在一个实施例中,处理器执行计算机程序时还实现以下步骤:对全局唯一标识符进行解析,得到基板管理控制器对应的当前版本信息,获取基本输入输出系统与基板管理控制器协定的适配版本搭配关系,根据适配版本搭配关系判断当前版本信息与第二版本信息是否匹配,当匹配时,则将当前版本信息确定为第一版本信息。
[0113] 在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据适配版本搭配关系确定当前版本信息对应的目标适配版本信息,计算目标适配版本信息与第二版本信息之间的版本相似度,根据版本相似度确定目标适配版本信息与第二版本信息是否匹配。
[0114] 在一个实施例中,处理器执行计算机程序时还实现以下步骤:当不匹配时,则发送错误信息至基板管理控制器,使得基板管理控制器根据错误信息重新生成新的全局唯一标识符,返回获取基板管理控制器对应的全局唯一标识符的步骤。
[0115] 在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取通用唯一识别码生成算法,根据通用唯一识别码生成算法对第一版本信息与第二版本信息进行加密计算,得到通用唯一识别码。
[0116] 在一个实施例中,处理器执行计算机程序时还实现以下步骤:将通用唯一识别码发送至操作系统,使得操作系统对通用唯一识别码进行解析,得到基板管理控制器与基本输入输出系统之间的版本组合信息,并展示。
[0117] 在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取基板管理控制器对应的全局唯一标识符,对全局唯一标识符进行解析,得到基板管理控制器对应的第一版本信息,获取基本输入输出系统对应的第二版本信息,根据第一版本信息与第二版本信息生成通用唯一识别码,通过通用唯一识别码获取基板管理控制器与基本输入输出系统之间的版本组合信息。
[0118] 在一个实施例中,处理器执行计算机程序时还实现以下步骤:基板管理控制器获取当前版本信息、当前时间和当前设备信息,基板管理控制器根据当前版本信息、当前时间和当前设备信息生成对应的全局唯一标识符。
[0119] 在一个实施例中,处理器执行计算机程序时还实现以下步骤:发送智能平台管理接口命令至基板管理控制器,接收基板管理控制器根据智能平台管理接口命令返回的全局唯一标识符。
[0120] 在一个实施例中,处理器执行计算机程序时还实现以下步骤:对全局唯一标识符进行解析,得到基板管理控制器对应的当前版本信息,获取基本输入输出系统与基板管理控制器协定的适配版本搭配关系,根据适配版本搭配关系判断当前版本信息与第二版本信息是否匹配,当匹配时,则将当前版本信息确定为第一版本信息。
[0121] 在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据适配版本搭配关系确定当前版本信息对应的目标适配版本信息,计算目标适配版本信息与第二版本信息之间的版本相似度,根据版本相似度确定目标适配版本信息与第二版本信息是否匹配。
[0122] 在一个实施例中,处理器执行计算机程序时还实现以下步骤:当不匹配时,则发送错误信息至基板管理控制器,使得基板管理控制器根据错误信息重新生成新的全局唯一标识符,返回获取基板管理控制器对应的全局唯一标识符的步骤。
[0123] 在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取通用唯一识别码生成算法,根据通用唯一识别码生成算法对第一版本信息与第二版本信息进行加密计算,得到通用唯一识别码。
[0124] 在一个实施例中,处理器执行计算机程序时还实现以下步骤:将通用唯一识别码发送至操作系统,使得操作系统对通用唯一识别码进行解析,得到基板管理控制器与基本输入输出系统之间的版本组合信息,并展示。
[0125] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
[0126] 以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0127] 以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。