具体实施方式
对于同一网络下的多个服务器组成的服务器集群,当需要进行BIOS配置时,通常是由用户(如管理员)手动对其中一个服务器进行BIOS配置(该服务器可以称为主服务器,其余服务器可以称为从服务器),然后将主服务器的BIOS配置复制到从服务器中。
然而实现发现,在现有BIOS配置方案中,需要先通过第三方工具将主服务器的BIOS配置导出,然后再通过该第三方工具将主服务器的BIOS配置导入到从服务器中,BIOS配置的复制需要依赖第三方工具,且操作较为繁琐。
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
请参见图1,为本发明实施例提供了一种配置复制方法的流程示意图,其中,该配置复制方法可以应用于包括一个主服务器以及一个以上从服务器的服务器集群,如图1所示,该配置复制方法可以包括以下步骤:
需要说明的是,在本发明实施例中,步骤101~步骤102的执行主体可以为服务器集群中的任一服务器的BMC,为便于说明,以下以步骤101~步骤102的执行主体为BMC为例进行描述。
步骤101、获取自身所在服务器的BIOS配置项以及对应的值。
本发明实施例中,服务器集群中各BMC均可以获取自身所在服务器的BIOS配置项以及对应的值;其中,对于用户进行了BIOS配置的服务器(即主服务器),其各BIOS配置项对应的值为用户配置的值;对于用户未进行BIOS配置的服务器(即从服务器),其各BIOS配置项对应的值为默认值。
由于BIOS配置均存储在服务器的NVRAM(Non-Volatile Random Access Memory,非易失性随机访问存储器),服务器集群中各服务器的BIOS可以向BMC传递各BIOS配置项的起始地址以及各BIOS配置项对应的值的起始地址,从而各服务器的BMC可以根据自身所在服务器的BIOS传递的BIOS配置项的起始地址以及各BIOS配置项对应的值的起始地址获取到到自身所在服务器中各BIOS配置项以及对应的值。
在一种实施方式中,BIOS可以以地址表的形式向BMC传递各BIOS配置项的起始地址以及各BIOS配置项对应的值的起始地址,例如,BIOS可以通过向BMC传递NVRAM的起始地址对应表,该NVRAM的起始地址对应表中包括服务器中各BIOS配置项的起始地址以及对应的值的起始地址(BIOS配置项对应的值可以用偏移值标识);BMC接收到BIOS发送的NVRAM的起始地址对应表之后,可以根据该起始地址对应表,解析出服务器中每一个BIOS配置项及其对应的值。
值得说明的是,在本发明实施例中,服务器中各BIOS配置项的起始地址与BIOS配置项对应的值的起始地址,可以相同也可以不同,其取决于服务器对各BIOS配置项以及对应的值的存储方式,本发明实施例对此不做限定。
步骤102、当自身所在服务器为主服务器时,向从服务器的BMC发送需要复制的BIOS配置项以及对应的值,以使从服务器的BMC根据接收到的BIOS配置项以及对应的值进行BIOS配置复制。
本发明实施例中,主服务器的BMC获取到自身所在服务器的BIOS配置项及对应的值之后,可以将需要复制的BIOS配置项以及各BIOS配置项对应的值,发送给从服务器的BMC。
其中,需要复制的BIOS配置项及对应的值可以包括主服务器的全部BIOS配置项及对应的值或部分BIOS配置项及对应的值。
相应地,作为一种可选的实施方式,上述步骤102中,向从服务器的BMC发送需要复制的BIOS配置项及对应的值,可以包括以下步骤:
11)、将获取到的BIOS配置项及对应的值展示在指定界面中;
12)、根据通过该指定界面接收到的选择指令确定需要复制的BIOS配置项;
13)、将需要复制的BIOS配置项以及对应的值发送给从服务器的BMC。
在该实施方式中,主服务器的BMC获取到主服务器的BIOS配置项及对应的值之后,可以将获取到的BIOS配置项及对应的值展示在指定界面,如BMC的web界面,以便用户(如管理员)能够选择需要复制的BIOS配置项。
主服务器的BMC将获取到的BIOS配置项及对应的值在指定界面展示后,用户可以在该界面中查看主服务器中的BIOS配置项及对应的值,并根据需求选择需要复制的BIOS配置项。
主服务器的BMC检测到用户在指定界面输入的对BIOS配置项的选择指令后,可以将用户所选择的BIOS配置项确定为需要复制的BIOS配置,并将该需要复制的BIOS配置项及对应的值发送给从服务器的BIOS。
其中,主服务器的BMC在指定界面中展示的BIOS配置项及对应的值可以如图2所示(图2中以BIOS配置项包括两级菜单为例,但BIOS配置项并不限于两级菜单),其中,第1~4行为BIOS一级菜单展开,二级菜单未展开的示意图,第1~3、5~7行为BIOS一级菜单和二级菜单均展开的示意图,第8行为BIOS一级菜单未展开的示意图。
需要注意的是,在本发明实施例中,主服务器的BMC获取到主服务器的BIOS配置项及对应的值之后,也可以将全部BIOS配置项作为需要复制的BIOS配置项,即将全部BIOS配置项及对应的值发送给从服务器的BMC,其具体实现在此不做赘述。
此外,在本发明实施例中,需要复制的BIOS配置项也可以由用户对主服务器进行BIOS配置时设置,例如,用户对主服务器进行BIOS配置时,可以选定部分或全部的BIOS配置项,为其设置一个特定标识,该特定标识用于指示主服务器的BMC对应的BIOS配置项需要复制,从而,主服务器的BIOS配置完成之后,主服务器的BMC可以将上述设定有特定标识的BIOS配置项确定为需要复制的BIOS配置项,其具体实现在此不再赘述。
作为一种可选的实施方式,上述步骤102中,向从服务器的BMC发送需要复制的BIOS配置项以及对应的值,可以包括以下步骤:
21)、向从服务器的BMC发送开始配置指示报文;
22)、当接收到从服务器的BMC发送的配置确认报文时,向该从服务器的BMC发送需要复制的BIOS配置项以及对应的值。
在该实施方式中,主服务器的BMC获取到主服务器的BIOS配置项及对应的值之后,在将需要复制的BIOS配置项及对应的值发送给从服务器的BMC之前,主服务器的BMC可以先向从服务器发送开始配置指示报文,以使从服务器做好BIOS配置复制的准备。
从服务器的BMC接收到开始配置指示报文后,若已做好BIOS配置复制的准备,则可以向主服务器的BMC返回一个配置确认报文,以告知主服务器的BMC自身已做好BIOS配置复制的准备。
主服务器的BMC接收到从服务器的BMC发送的配置确认报文后,可以认为从服务器的BMC已经做好BIOS配置复制的准备,进而,主服务器的BMC将需要复制的BIOS配置项及对应的值发送给从服务器。
需要注意的是,在本发明实施例中,考虑到主服务器的BMC发送的开始配置指示报文可能会由于某些原因,如网络丢包,而不能到达从服务器,或者从服务器的BMC发送的配置确认报文也可能不能达到主服务器,因而,可以预先设定一个时间(本文中称为预设时间,可以根据实际场景设定),若主服务器的BMC未在预设时间内接收到该从服务器的BMC发送的配置确认报文,则主服务器的BMC可以重新向该从服务器的BMC发送开始配置报文,直至接收到从服务器的BMC发送的配置确认报文。
进一步地,为了避免主服务器的BMC向同一从服务器的BMC发送的开始配置指示报文的次数过多,还可以预先设定一个次数阈值(本文中称为第一预设次数阈值,可以根据实际场景设定),若主服务器的BMC向同一从服务器的BMC发送开始配置指示报文的次数达到该第一预设次数阈值时,则无论主服务器的BMC是否接收到该从服务器的BMC发送的配置确认报文,主服务器的BMC均不再向从服务器的BMC发送配置开始报文。
即在本发明实施例中,若主服务器的BMC未在预设时间内接收到从服务器的BMC发送的配置确认报文,则主服务器的BMC可以重新向该从服务器的BMC发送开始配置指示报文,直至接收到该从服务器的BMC发送的配置确认报文或者发送开始配置指示报文的次数达到第一预设次数阈值。
本发明实施例中,当从服务器的BMC接收到主服务器BMC发送的需要复制的BIOS配置项以及对应的值时,从服务器的BMC可以查询自身所在服务器中是否存在对应的配置项,若存在,则将该BIOS配置项对应的值修改为主服务器的BMC发送的值。
具体地,从服务器的BMC接收到主服务器的BMC发送的需要复制的BIOS配置项以及对应的值时,可以根据该需要复制的BIOS配置项查询预先获取到NVRAM的起始地址对应表(获取方式参见上述方法流程中相关描述),解析出对应BIOS配置项的起始地址,并在对主服务器的BMC发送的该BIOS配置项对应的值校验通过之后,将该BIOS配置项对应的值覆盖相应的区域(即将本地BIOS配置项对应的值修改为主服务器发送的需要复制的BIOS配置项对应的值);若未查询到对应的BIOS配置项,则可以不需要对主服务器的BMC发送的相应地BIOS配置项及对应的值进行处理,或直接丢弃该BIOS配置项及对应的值。
举例来说,假设主服务器的BMC发送的需要复制的BIOS配置项包括配置项1、配置项2和配置项3(对应的值分别为a、b和c),从服务器1的BMC接收到主服务器的BMC发送的需要复制的配置项及对应的值之后,可以分别查询配置项1、配置项2和配置项3的起始地址,假设查询到配置项1和配置项2的起始地址,则在对配置项的值校验通过之后,分别将本地的配置项1对应的值修改为a,以及将配置项2对应的值修改为b;若从服务器1的BMC未查询到配置项3的起始地址,即本地不存在配置项3,则从服务器1的BMC可以将接收到的配置项3及对应的值丢弃。
进一步地,在本发明实施例中,从服务器的BMC根据接收到的主服务器的BMC发送的需要复制的BIOS配置项及对应的值进行BIOS配置复制之后,还可以向主服务器的BMC反馈配置结果,即配置成功或配置失败。
其中,若从服务器的BMC根据接收到的主服务器的BMC发送的需要复制的BIOS配置项及对应的值进行BIOS配置复制失败,则从服务器的BMC可以向主服务器的BMC发送重配置请求,该重配置请求中携带有复制失败的BIOS配置项;主服务器的BMC接收到该重配置请求后,可以根据该重配置请求中包括的复制失败的BIOS配置项,重新将该BIOS配置项及对应的值发送给该从服务器的BMC。
本发明实施例中,为了避免从服务器的BMC由于特定原因导致无法完成BIOS配置复制时,从服务器的BMC会不断地向主服务器的BMC发送重配置请求,主服务器的BMC也需要不断地向从服务器的BMC发送相应的BIOS配置项及对应的值,可以预先设定一个次数阈值(本文中称为第二预设次数阈值),进而,当从服务器的BMC确定发生BIOS配置复制失败时,可以先判断BIOS配置复制失败的次数是否超过第二预设次数阈值,若否,则向主服务器的BMC发送携带有复制失败的BIOS配置项的重配置请求,以使主服务器的BMC重新向该从服务器发送相应的BIOS配置项以及对应的值。
值得说明的是,在本发明实施例中,当从服务器的BMC根据接收到的主服务器的BMC发送的BIOS配置项及对应的值进行BIOS配置复制成功时,从服务器的BMC也可以向主服务器的BMC发送一个配置成功反馈消息,以告知主服务器的BMC自身BIOS配置复制成功。
此外,当从服务器的BMC发送BIOS配置复制失败,且BIOS配置复制失败次数达到第二预设次数阈值时,从服务器的BMC可以不再发送重配置请求,而是可以向主服务器的BMC发送配置失败反馈消息,以告知主服务器的BMC自身BIOS配置复制失败。
其中,从服务器的BMC向主服务器的BMC发送的重配置请求或配置失败反馈消息中均可以包括复制失败的BIOS配置项以及失败原因,从而,主服务器的BMC接收到从服务器的BMC发送的重配置请求或配置失败反馈消息时,均可以向用户展示失败原因,由用户在必要情况下参与管理。
进一步地,在本发明实施例中,为了避免主服务器意外宕机的情况下BIOS配置复制无法进行,主服务器的BMC在接收到任一从服务器的BMC发送的配置成功反馈消息时,主服务器的BMC可以将该从服务器加入到待选主服务器列表(即该从服务器成为待选主服务器),并向各从服务器的BMC发送通知消息,以使各从服务器的BMC记录待选主服务器信息,相应地,BIOS配置复制成功的从服务器可以自动转化为待选主服务器。当主服务器意外宕机时,待选主服务器可以成为新的主服务器,并根据上述方法流程中的相关描述进行BIOS配置复制。
其中,在本发明实施例中,当主服务器意外宕机,且存在多个待选主服务器时,可以将最先完成BIOS配置复制的从服务器(即最先成为待选主服务器的从服务器)确定为新的主服务器,相应地,在该情况下,各从服务器的BMC记录待选主服务器列表时,需要记录各从服务器成为待选主服务器的时间。
请参见图2,为本发明实施例提供了另一种配置复制方法的流程示意图,如图2所示,该配置复制方法可以包括以下步骤:
需要说明的是,在图2所示的方法流程中,若未特殊说明,主服务器与从服务器之间的通信通过主服务器的BMC与从服务器的BMC之间的通信实现。
步骤201、主服务器向目标从服务器发送开始配置指示报文。
本发明实施例中,目标从服务器并不特指某一从服务器,而是可以指代服务器集群中的任一从服务器。
本发明实施例中,在配置开始之前,主服务器可以向目标从服务器发送一个开始配置指示报文,以指示目标从服务器进行BIOS配置复制的准备。
步骤202、主服务器判断是否在预设时间内接收到目标从服务器发送的配置确认报文;若是,则转至步骤203;否则,转至步骤211。
本发明实施例中,目标从服务器接收到主服务器发送的开始配置指示报文之后,若已做好BIOS配置复制准备,则需要向主服务器返回一个配置确认报文。
若主服务器在预设时间内接收到目标从服务器发送的配置确认报文,则可以认为目标从服务器已做好BIOS配置复制准备;若主服务器未在预设时间内接收到目标从服务器发送的配置确认报文,则可以认为目标从服务器未做好BIOS配置复制准备。
步骤203、主服务器向目标从服务器发送需要复制的BIOS配置项及对应的值。
本发明实施例中,主服务器在确定目标从服务器已做好BIOS配置复制准备时,主服务器可以向目标从服务器发送需要复制的BIOS配置项及对应的值。
其中,主服务器确定需要复制的BIOS配置项及对应的值的具体实现可以参见上述步骤102中的相关实现,本发明实施例在此不再赘述。
步骤204、目标从服务器根据接收到的BIOS配置项及对应的值进行BIOS配置复制;若成功,则转至步骤205;否则,转至步骤206。
本发明实施例中,目标从服务器根据接收到的主服务器发送的BIOS配置项及对应的值进行BIOS配置复制的具体实现可以参见图2所示方法流程中的相关描述,本发明实施例在此不再赘述。
步骤205、目标从服务器向主服务器返回配置成功反馈消息。
本发明实施例中,当目标从服务器根据接收到的BIOS配置项及对应的值进行BIOS配置成功时,目标从服务器可以向主服务器返回一个配置成功反馈消息,以告知主服务器自身BIOS配置复制成功。
步骤206、目标从服务器判断BIOS配置复制失败次数是否达到第二预设次数阈值;若是,转至步骤208;否则,转至步骤207。
步骤207、目标从服务器向主服务器发送携带有复制失败的BIOS配置项的重配置请求。
步骤208、目标从服务器向主服务器发送配置失败反馈消息。
本发明实施例中,当目标从服务器发生BIOS配置复制失败,且BIOS配置复制失败次数未达到预设阈值时,目标从服务器可以向主服务器发送重配置请求,请求主服务器重新向该从服务器发送相应的BIOS配置项以及对应的值。
当目标从服务器发生BIOS配置失败,且BIOS配置复制失败次数达到预设失败次数阈值时,目标从服务器可以向主服务器发送一个配置失败反馈消息,而不再请求重新发送相应的BIOS配置项。
步骤209、当主服务器接收到重配置请求时,重新向目标从服务器发送相应的BIOS配置项及对应的值。
步骤210、当主服务器接收到所有从服务器发送的配置成功反馈消息或配置失败反馈消息时,则BIOS配置复制流程结束。
步骤211、主服务器判断发送开始配置指示报文的次数是否达到第一预设次数阈值,若是,转至步骤212;否则,转至步骤201。
步骤212、当从服务器未做好BIOS配置复制准备,且接收到开始配置指示报文的次数达到第一预设次数阈值时,向主服务器反馈配置失败反馈消息,并转至步骤210。
本发明实施例中,若主服务器未在预设时间内接收到目标从服务器发送的配置确认报文,则重新向目标从服务器发送开始配置指示报文,直至接收到目标从服务器发送的配置确认报文或者发送开始配置指示报文的次数达到第一预设次数阈值。
当目标从服务器未做好BIOS配置复制准备,且接收到开始配置指示报文的次数达到第一预设次数阈值时,目标从服务器可以向主服务器返回一个配置失败反馈消息,以告知主服务器该目标从服务器无法完成BIOS配置复制。
本发明实施例中,当主服务器接收到所有从服务器发送的配置成功反馈消息或配置失败反馈消息时,主服务器还可以将BIOS配置复制结果展示给用户,以便用户能够及时获知BIOS配置复制结果,并在必要时参与管理。
通过以上描述可以看出,在本发明实施例提供的技术方案中,服务器集群中的各服务器的BMC获取自身所在服务器的BIOS配置项及对应的值,且主服务器的BMC主动向从服务器的BMC发送需要复制的BIOS配置项及对应的值,以使从服务器的BMC根据接收到的BIOS配置项及对应的值进行BIOS配置复制,通过服务器的BMC之间的通信,在不需要第三方工具的情况下,实现了BIOS配置复制,简化了BIOS配置复制的操作,提高了BIOS配置复制的效率。
请参见图3,为本发明实施例提供的一种配置复制装置的结构示意图,其中,该配置复制装置可以上述方法实施例中的BMC,如图3所示,该配置复制装置可以包括:
获取单元310,用于获取自身所在服务器的基本输入输出***BIOS配置项及对应的值;
发送单元320,用于当所述BMC所在服务器为主服务器时,向从服务器的BMC发送需要复制的BIOS配置项及对应的值,以使所述从服务器的BMC根据接收到的BIOS配置项以及对应的值进行BIOS配置复制。
请一并参见图4,为本发明实施例提供的另一种配置复制装置的结构示意图,如图4所示,在图3所示配置复制装置的基础上,图4所示的配置复制装置还可以包括:展示单元330和确定单元340;其中:
展示单元330,用于将获取到的BIOS配置项及对应的值展示在指定界面中;
确定单元340,用于根据通过所述指定界面接收到的选择指令确定需要复制的BIOS配置项;
所述发送单元320,还用于将需要复制的BIOS配置项以及对应的值发送给从服务器的BMC。
请一并参见图5,为本发明实施例提供的另一种配置复制装置的结构示意图,如图5所示,在图3所示配置复制装置的基础上,图5所示的配置复制装置还可以包括:第一接收单元350;其中:
所述发送单元320,还用于向从服务器的BMC发送开始配置指示报文;
第一接收单元350,用于接收从服务器的BMC发送的配置确认报文;
所述发送单元320,还用于当所述第一接收单元350接收到从服务器的BMC发送的配置确认报文时,向该从服务器的BMC发送需要复制的BIOS配置项以及对应的值。
在可选实施例中,所述发送单元320,还可以用于若所述第一接收单元350未在预设时间内接收到该从服务器的BMC发送的配置确认报文,则重新向该从服务器的BMC发送开始配置指示报文,直至所述第一接收单元350接收到该从服务器的BMC发送的配置确认报文或者发送开始配置指示报文的次数达到第一预设次数阈值。
请一并参见图6,为本发明实施例提供的另一种配置复制装置的结构示意图,如图6所示,在图3所示配置复制装置的基础上,图6所示的配置复制装置还包括:第二接收单元360、查询单元370以及修改单元380;其中:
所述第二接收单元360,用于当所述BMC所在服务器为从服务器时,接收主服务器的BMC发送的需要复制的BIOS配置项以及对应的值;
所述查询单元370,用于当所述第二接收单元360接收到主服务器的BMC发送的需要复制的BIOS配置项以及对应的值时,查询自身所在服务器中是否存在对应的BIOS配置项;
所述修改单元380,用于若所述查询单元370查询结果为存在,则当该BIOS配置项对应的值与主服务器的BMC发送的值不同时,将该BIOS配置项对应的值修改为主服务器的BMC发送的值。
请一并参见图7,为本发明实施例提供的另一种配置复制装置的结构示意图,如图7所示,在图6所示配置复制装置的基础上,图7所示的配置复制装置还包括:判断单元390;其中:
判断单元390,用于当所述BMC所在服务器为从服务器,且发生BIOS配置复制失败时,判断BIOS配置复制失败次数是否达到第二预设次数阈值;
所述发送单元320,还用于若未达到所述第二预设次数阈值,则向主服务器的BMC发送携带有复制失败的BIOS配置项的重配置请求,以使主服务器的BMC重新向该从服务器发送相应的BIOS配置项以及对应的值;若达到所述第二预设次数阈值,则向主服务器的BMC发送配置复制失败报文。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
由上述实施例可见,服务器集群中的各服务器的BMC获取自身所在服务器的BIOS配置项及对应的值,且主服务器的BMC主动向从服务器的BMC发送需要复制的BIOS配置项及对应的值,以使从服务器的BMC根据接收到的BIOS配置项及对应的值进行BIOS配置复制,通过服务器的BMC之间的通信,在不需要第三方工具的情况下,实现了BIOS配置复制,简化了BIOS配置复制的操作,提高了BIOS配置复制的效率。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。