服务器启动项的调整方法和装置、存储介质及电子装置转让专利

申请号 : CN202310125049.9

文献号 : CN115827111B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 迟江波路明远李德新

申请人 : 苏州浪潮智能科技有限公司

摘要 :

本申请公开了一种服务器启动项的调整方法和装置、存储介质及电子装置,该服务器启动项的调整方法包括:在检测到对目标服务器的启动项执行的调整操作失败的情况下,调用目标服务器对应的第一检测参数;按照第一检测参数检测目标服务器的USB端口连接状态;在USB端口连接状态用于指示目标服务器上存在连接了目标USB设备的目标USB端口的情况下,将USB设备启动项调整为目标服务器的目标启动项,采用上述技术方案,解决了相关技术中,服务器启动项的调整效率较低等问题。

权利要求 :

1.一种服务器启动项的调整方法,其特征在于,包括:

在检测到对目标服务器的启动项执行的调整操作失败的情况下,调用所述目标服务器对应的第一检测参数,其中,所述第一检测参数用于指示所述目标服务器上全部USB端口的第一检测顺序;

按照所述第一检测参数检测所述目标服务器的USB端口连接状态,其中,所述USB端口连接状态用于指示所述目标服务器上是否存在连接了目标USB设备的USB端口;

在所述USB端口连接状态用于指示所述目标服务器上存在连接了所述目标USB设备的目标USB端口的情况下,将USB设备启动项调整为所述目标服务器的目标启动项,其中,所述USB设备启动项用于指示所述目标服务器通过连接的USB设备启动,所述目标启动项为启动所述目标服务器的系统时以最高优先级使用的启动项。

2.根据权利要求1所述的方法,其特征在于,所述按照所述第一检测参数检测所述目标服务器的USB端口连接状态,包括:按照所述第一检测参数所指示的轮询顺序确定当前待检测的当前USB端口;

检测所述当前USB端口的当前连接状态,其中,所述当前连接状态用于指示所述当前USB端口是否连接了所述目标USB设备;

在所述当前连接状态用于指示所述当前USB端口连接了所述目标USB设备的情况下,确定所述USB端口连接状态用于指示所述目标服务器上存在连接了所述目标USB设备的USB端口,并将所述当前USB端口确定为所述目标USB端口;

在所述当前连接状态用于指示所述当前USB端口未连接所述目标USB设备的情况下,按照所述轮询顺序确定下一个待检测的USB端口作为下一个所述当前USB端口。

3.根据权利要求2所述的方法,其特征在于,在所述检测所述当前USB端口的当前连接状态之后,所述方法还包括:在所述当前连接状态用于指示所述当前USB端口未连接所述目标USB设备,且所述当前USB端口为所述轮询顺序中的最后一个USB端口的情况下,确定所述USB端口连接状态用于指示所述目标服务器上不存在连接了所述目标USB设备的USB端口。

4.根据权利要求2所述的方法,其特征在于,所述调用所述目标服务器对应的第一检测参数,包括以下之一:调用所述目标服务器对应的单轮顺序参数和退出条件参数作为所述第一检测参数,其中,所述单轮顺序参数用于指示单次轮询所述全部USB端口的顺序,所述退出条件参数用于指示退出对所述全部USB端口进行轮询检测的条件;

调用所述目标服务器对应的检测列表作为所述第一检测参数,其中,所述检测列表中按照所述轮询顺序记录了所述全部USB端口。

5.根据权利要求4所述的方法,其特征在于,所述调用所述目标服务器对应的单轮顺序参数和退出条件参数作为所述第一检测参数,包括以下之一:调用所述目标服务器对应的单轮顺序参数和轮询次数参数作为所述第一检测参数,其中,所述轮询次数参数用于指示对所述全部USB端口进行轮询的次数;

调用所述目标服务器对应的单轮顺序参数和轮询时间参数作为所述第一检测参数,其中,所述轮询时间参数用于指示对所述全部USB端口进行轮询的时长。

6.根据权利要求2所述的方法,其特征在于,所述方法还包括以下至少之一:在所述检测所述当前USB端口的当前连接状态的过程中,按照所述轮询顺序确定下一个待检测的参考USB端口;生成并展示第一提示信息,其中,所述第一提示信息用于提示所述参考USB端口为下一个待检测的USB端口;

在所述检测所述当前USB端口的当前连接状态的过程中,生成并展示第二提示信息,其中,所述第二提示信息用于提示所述当前USB端口为当前正在被检测的USB端口。

7.根据权利要求6所述的方法,其特征在于,所述生成并展示第二提示信息,包括:生成所述第二提示信息,其中,所述第二提示信息用于提示所述当前USB端口为当前正在被检测的USB端口以及所述轮询顺序;

展示所述第二提示信息。

8.根据权利要求2所述的方法,其特征在于,所述检测所述当前USB端口的当前连接状态,包括:检测所述当前USB端口是否连接了USB设备;

在检测到所述当前USB端口连接了USB设备的情况下,检测所述当前USB端口上连接的USB设备的设备类型;

在所述设备类型为目标类型的情况下,确定所述当前USB端口连接了所述目标USB设备。

9.根据权利要求8所述的方法,其特征在于,所述检测所述当前USB端口上连接的USB设备的设备类型,包括:访问所述USB设备中存储的文件;

在所述USB设备中访问到引导文件的情况下,确定所述设备类型为目标类型。

10.根据权利要求1所述的方法,其特征在于,所述方法还包括:

在所述按照所述第一检测参数检测所述目标服务器的USB端口连接状态的过程中,检测所述目标服务器上是否执行了退出操作;

在检测所述退出操作的情况下,停止执行所述按照所述第一检测参数检测所述目标服务器的USB端口连接状态的步骤。

11.根据权利要求10所述的方法,其特征在于,所述检测所述目标服务器上是否执行了退出操作,包括:生成第三提示信息,其中,所述第三提示信息用于提示所述退出操作的触发条件;

在检测所述目标服务器上是否执行了所述退出操作的同时,展示所述第三提示信息。

12.根据权利要求1所述的方法,其特征在于,在所述调用所述目标服务器对应的第一检测参数之前,所述方法还包括:在检测到对目标服务器的启动项的调整功能被触发的情况下,调用所述目标服务器对应的第二检测参数,其中,所述第二检测参数用于指示所述目标服务器上全部USB端口的第二检测顺序;

按照所述第二检测顺序检测所述目标服务器的所述USB端口连接状态;

在所述USB端口连接状态用于指示所述目标服务器上不存在连接了所述目标USB设备的目标USB端口的情况下,确定检测到对所述目标服务器的启动项执行的调整操作失败。

13.根据权利要求1所述的方法,其特征在于,在所述调用所述目标服务器对应的第一检测参数之前,所述方法还包括:在检测到对目标服务器的启动项的调整功能被触发的情况下,调用所述目标服务器对应的第三检测参数,其中,所述第三检测参数用于指示所述调整功能对应的一个USB端口的第二端口标识;

检测所述第二端口标识所指示的USB端口上是否连接了所述目标USB设备;

在检测到所述第二端口标识所指示的USB端口上未连接所述目标USB设备的情况下,确定检测到对所述目标服务器的启动项执行的调整操作失败。

14.根据权利要求1所述的方法,其特征在于,所述将USB设备启动项调整为所述目标服务器的目标启动项,包括:检测所述目标USB设备所携带的基本输入输出系统BIOS的第一启动模式,并检测所述目标服务器当前所使用的BIOS的第二启动模式,其中,BIOS的启动模式包括UEFI模式和Legacy模式;

根据所述第一启动模式和所述第二启动模式将USB设备启动项调整为所述目标服务器的目标启动项。

15.根据权利要求14所述的方法,其特征在于,所述根据所述第一启动模式和所述第二启动模式将USB设备启动项调整为所述目标服务器的目标启动项,包括:匹配所述第一启动模式和所述第二启动模式;

在所述第一启动模式和所述第二启动模式匹配一致的情况下,将USB设备启动项调整为所述目标服务器的目标启动项。

16.根据权利要求15所述的方法,其特征在于,在所述匹配所述第一启动模式和所述第二启动模式之后,所述方法还包括:在所述第一启动模式和所述第二启动模式匹配不一致的情况下,从所述目标服务器上获取启动项顺序,其中,所述启动项顺序为所述目标服务器所支持的启动项的使用顺序;

按照所述启动项顺序启动所述目标服务器。

17.根据权利要求1所述的方法,其特征在于,在所述将USB设备启动项调整为所述目标服务器的目标启动项之后,所述方法还包括:从所述目标USB设备中调用目标程序;

在所述目标程序为具备故障检测功能的程序的情况下,执行所述目标程序从所述目标服务器中获取目标日志;

根据所述目标日志对所述目标服务器进行故障检测。

18.根据权利要求17所述的方法,其特征在于,所述执行所述目标程序从所述目标服务器中获取目标日志,包括:执行所述目标程序从所述目标服务器上部署的基板管理控制器BMC中获取第一日志,并从所述目标服务器对应的操作系统OS中获取第二日志;

将所述第一日志和所述第二日志确定为所述目标日志。

19.根据权利要求18所述的方法,其特征在于,所述执行所述目标程序从所述目标服务器上部署的基板管理控制器BMC中获取第一日志,并从所述目标服务器对应的操作系统OS中获取第二日志,包括:向所述目标服务器发送智能平台管理接口IPMI命令,其中,所述IPMI命令用于指示从所述目标服务器上部署的所述BMC中读取系统事件日志SEL;从所述BMC对应的restful接口中读取BMC的接口描述语言日志IDL;将所述系统事件日志SEL和所述接口描述语言日志IDL确定为所述第一日志;

从所述目标服务器对应的操作系统中获取Dmesg日志、Mcelog日志和Message日志,其中,所述第二日志包括所述Dmesg日志、所述Mcelog日志和所述Message日志。

20.一种服务器启动项的调整装置,其特征在于,包括:

第一调用模块,用于在检测到对目标服务器的启动项执行的调整操作失败的情况下,调用所述目标服务器对应的第一检测参数,其中,所述第一检测参数用于指示所述目标服务器上全部USB端口的第一检测顺序;

第一检测模块,用于按照所述第一检测参数检测所述目标服务器的USB端口连接状态,其中,所述USB端口连接状态用于指示所述目标服务器上是否存在连接了目标USB设备的USB端口;

调整模块,用于在所述USB端口连接状态用于指示所述目标服务器上存在连接了所述目标USB设备的目标USB端口的情况下,将USB设备启动项调整为所述目标服务器的目标启动项,其中,所述USB设备启动项用于指示所述目标服务器通过连接的USB设备启动,所述目标启动项为启动所述目标服务器的系统时以最高优先级使用的启动项。

21.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行权利要求1至19中任一项所述的方法。

22.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行权利要求1至19中任一项所述的方法。

说明书 :

服务器启动项的调整方法和装置、存储介质及电子装置

技术领域

[0001] 本申请实施例涉及计算机领域,具体而言,涉及一种服务器启动项的调整方法和装置、存储介质及电子装置。

背景技术

[0002] 现有技术中,服务器默认配置了多个启动项,其中,每一个启动项都对应一种启动服务器的方式,同时,多个启动项会存在一定的优先级,即,服务器会优先执行优先级更高的启动项,但是在服务器的实际应用场景中,某些特殊情况下可能出现不允许其中一些启动项去启动服务器,比如,在客户使用的客户服务器出现故障的情况下,需要对客户服务器进行故障检测的场景中,需要启动客户服务器获取故障诊断日志进而分析故障原因,但是,由于客户机密安全考虑,客户都不会给售后人员提供系统环境,因此,不能够通过系统环境启动服务器,这就给售后人员收集故障诊断日志带来了困难。
[0003] 目前,服务器在客户线上出现故障、工厂生产、研发测试的过程中,可以使用U盘等USB设备(USB,Universal Serial Bus,通用串行总线)启动服务器,需要指定服务器主板上某一个固定的USB端口作为系统引导盘的启动端口,将USB设备启动项调整为所述目标服务器的目标启动项,但是由于只能使用服务器固定USB端口,其他端口不支持,因此一旦引导失败只能重启服务器,这将给用户、生产、测试带来极大的不便,尤其是在处理大量服务器的情况下将会耗费大量时间。
[0004] 针对相关技术中,服务器启动项的调整效率较低等问题,尚未提出有效的解决方案。

发明内容

[0005] 本申请实施例提供了一种服务器启动项的调整方法和装置、存储介质及电子装置,以至少解决相关技术中,服务器启动项的调整效率较低等问题。
[0006] 根据本申请实施例的一个实施例,提供了一种服务器启动项的调整方法,包括:
[0007] 在检测到对目标服务器的启动项执行的调整操作失败的情况下,调用所述目标服务器对应的第一检测参数,其中,所述第一检测参数用于指示所述目标服务器上全部USB端口的第一检测顺序;
[0008] 按照所述第一检测参数检测所述目标服务器的USB端口连接状态,其中,所述USB端口连接状态用于指示所述目标服务器上是否存在连接了目标USB设备的USB端口;
[0009] 在所述USB端口连接状态用于指示所述目标服务器上存在连接了所述目标USB设备的目标USB端口的情况下,将USB设备启动项调整为所述目标服务器的目标启动项,其中,所述USB设备启动项用于指示所述目标服务器通过连接的USB设备启动,所述目标启动项为启动所述目标服务器的系统时以最高优先级使用的启动项。
[0010] 可选的,所述按照所述第一检测参数检测所述目标服务器的USB端口连接状态,包括:
[0011] 按照所述第一检测参数所指示的轮询顺序确定当前待检测的当前USB端口;
[0012] 检测所述当前USB端口的当前连接状态,其中,所述当前连接状态用于指示所述当前USB端口是否连接了所述目标USB设备;
[0013] 在所述当前连接状态用于指示所述当前USB端口连接了所述目标USB设备的情况下,确定所述USB端口连接状态用于指示所述目标服务器上存在连接了所述目标USB设备的USB端口,并将所述当前USB端口确定为所述目标USB端口;
[0014] 在所述当前连接状态用于指示所述当前USB端口未连接所述目标USB设备的情况下,按照所述轮询顺序确定下一个待检测的USB端口作为下一个所述当前USB端口。
[0015] 可选的,在所述检测所述当前USB端口的当前连接状态之后,所述方法还包括:
[0016] 在所述当前连接状态用于指示所述当前USB端口未连接所述目标USB设备,且所述当前USB端口为所述轮询顺序中的最后一个USB端口的情况下,确定所述USB端口连接状态用于指示所述目标服务器上不存在连接了所述目标USB设备的USB端口。
[0017] 可选的,所述调用所述目标服务器对应的第一检测参数,包括以下之一:
[0018] 调用所述目标服务器对应的单轮顺序参数和退出条件参数作为所述第一检测参数,其中,所述单轮顺序参数用于指示单次轮询所述全部USB端口的顺序,所述退出条件参数用于指示退出对所述全部USB端口进行轮询检测的条件;
[0019] 调用所述目标服务器对应的检测列表作为所述第一检测参数,其中,所述检测列表中按照所述轮询顺序记录了所述全部USB端口。
[0020] 可选的,所述调用所述目标服务器对应的单轮顺序参数和退出条件参数作为所述第一检测参数,包括以下之一:
[0021] 调用所述目标服务器对应的单轮顺序参数和轮询次数参数作为所述第一检测参数,其中,所述轮询次数参数用于指示对所述全部USB端口进行轮询的次数;
[0022] 调用所述目标服务器对应的单轮顺序参数和轮询时间参数作为所述第一检测参数,其中,所述轮询时间参数用于指示对所述全部USB端口进行轮询的时长。
[0023] 可选的,所述方法还包括以下至少之一:
[0024] 在所述检测所述当前USB端口的当前连接状态的过程中,按照所述轮询顺序确定下一个待检测的参考USB端口;生成并展示第一提示信息,其中,所述第一提示信息用于提示所述参考USB端口为下一个待检测的USB端口;
[0025] 在所述检测所述当前USB端口的当前连接状态的过程中,生成并展示第二提示信息,其中,所述第二提示信息用于提示所述当前USB端口为当前正在被检测的USB端口。
[0026] 可选的,所述生成并展示第二提示信息,包括:
[0027] 生成所述第二提示信息,其中,所述第二提示信息用于提示所述当前USB端口为当前正在被检测的USB端口以及所述轮询顺序;
[0028] 展示所述第二提示信息。
[0029] 可选的,所述检测所述当前USB端口的当前连接状态,包括:
[0030] 检测所述当前USB端口是否连接了USB设备;
[0031] 在检测到所述当前USB端口连接了USB设备的情况下,检测所述当前USB端口上连接的USB设备的设备类型;
[0032] 在所述设备类型为目标类型的情况下,确定所述当前USB端口连接了所述目标USB设备。
[0033] 可选的,所述检测所述当前USB端口上连接的USB设备的设备类型,包括:
[0034] 访问所述USB设备中存储的文件;
[0035] 在所述USB设备中访问到引导文件的情况下,确定所述设备类型为目标类型。
[0036] 可选的,所述方法还包括:
[0037] 在所述按照所述第一检测参数检测所述目标服务器的USB端口连接状态的过程中,检测所述目标服务器上是否执行了退出操作;
[0038] 在检测所述退出操作的情况下,停止执行所述按照所述第一检测参数检测所述目标服务器的USB端口连接状态的步骤。
[0039] 可选的,所述检测所述目标服务器上是否执行了退出操作,包括:
[0040] 生成第三提示信息,其中,所述第三提示信息用于提示所述退出操作的触发条件;
[0041] 在检测所述目标服务器上是否执行了所述退出操作的同时,展示所述第三提示信息。
[0042] 可选的,在所述调用所述目标服务器对应的第一检测参数之前,所述方法还包括:
[0043] 在检测到对目标服务器的启动项的调整功能被触发的情况下,调用所述目标服务器对应的第二检测参数,其中,所述第二检测参数用于指示所述目标服务器上全部USB端口的第二检测顺序;
[0044] 按照所述第二检测顺序检测所述目标服务器的所述USB端口连接状态;
[0045] 在所述USB端口连接状态用于指示所述目标服务器上不存在连接了所述目标USB设备的目标USB端口的情况下,确定检测到对所述目标服务器的启动项执行的调整操作失败。
[0046] 可选的,在所述调用所述目标服务器对应的第一检测参数之前,所述方法还包括:
[0047] 在检测到对目标服务器的启动项的调整功能被触发的情况下,调用所述目标服务器对应的第三检测参数,其中,所述第三检测参数用于指示所述调整功能对应的一个USB端口的第二端口标识;
[0048] 检测所述第二端口标识所指示的USB端口上是否连接了所述目标USB设备;
[0049] 在检测到所述第二端口标识所指示的USB端口上未连接所述目标USB设备的情况下,确定检测到对所述目标服务器的启动项执行的调整操作失败。
[0050] 可选的,所述将USB设备启动项调整为所述目标服务器的目标启动项,包括:
[0051] 检测所述目标USB设备所携带的基本输入输出系统BIOS的第一启动模式,并检测所述目标服务器当前所使用的BIOS的第二启动模式,其中,BIOS的启动模式包括UEFI模式和Legacy模式;
[0052] 根据所述第一启动模式和所述第二启动模式将USB设备启动项调整为所述目标服务器的目标启动项。
[0053] 可选的,所述根据所述第一启动模式和所述第二启动模式将USB设备启动项调整为所述目标服务器的目标启动项,包括:
[0054] 匹配所述第一启动模式和所述第二启动模式;
[0055] 在所述第一启动模式和所述第二启动模式匹配一致的情况下,将USB设备启动项调整为所述目标服务器的目标启动项。
[0056] 可选的,在所述匹配所述第一启动模式和所述第二启动模式之后,所述方法还包括:
[0057] 在所述第一启动模式和所述第二启动模式匹配不一致的情况下,从所述目标服务器上获取启动项顺序,其中,所述启动项顺序为所述目标服务器所支持的启动项的使用顺序;
[0058] 按照所述启动项顺序启动所述目标服务器。
[0059] 可选的,在所述将USB设备启动项调整为所述目标服务器的目标启动项之后,所述方法还包括:
[0060] 从所述目标USB设备中调用目标程序;
[0061] 在所述目标程序为具备故障检测功能的程序的情况下,执行所述目标程序从所述目标服务器中获取目标日志;
[0062] 根据所述目标日志对所述目标服务器进行故障检测。
[0063] 可选的,所述执行所述目标程序从所述目标服务器中获取目标日志,包括:
[0064] 执行所述目标程序从所述目标服务器上部署的基板管理控制器BMC中获取第一日志,并从所述目标服务器对应的操作系统OS中获取第二日志;
[0065] 将所述第一日志和所述第二日志确定为所述目标日志。
[0066] 可选的,所述执行所述目标程序从所述目标服务器上部署的基板管理控制器BMC中获取第一日志,并从所述目标服务器对应的操作系统OS中获取第二日志,包括:
[0067] 向所述目标服务器发送智能平台管理接口IPMI命令,其中,所述IPMI命令用于指示从所述目标服务器上部署的所述BMC中读取系统事件日志SEL;从所述BMC对应的restful接口中读取BMC的接口描述语言日志IDL;将所述系统事件日志SEL和所述接口描述语言日志IDL确定为所述第一日志;
[0068] 从所述目标服务器对应的操作系统中获取Dmesg日志、Mcelog日志和Message日志,其中,所述第二日志包括所述Dmesg日志、所述Mcelog日志和所述Message日志。
[0069] 根据本申请实施例的另一个实施例,还提供了一种服务器启动项的调整装置,包括:
[0070] 第一调用模块,用于在检测到对目标服务器的启动项执行的调整操作失败的情况下,调用所述目标服务器对应的第一检测参数,其中,所述第一检测参数用于指示所述目标服务器上全部USB端口的第一检测顺序;
[0071] 第一检测模块,用于按照所述第一检测参数检测所述目标服务器的USB端口连接状态,其中,所述USB端口连接状态用于指示所述目标服务器上是否存在连接了目标USB设备的USB端口;
[0072] 调整模块,用于在所述USB端口连接状态用于指示所述目标服务器上存在连接了所述目标USB设备的目标USB端口的情况下,将USB设备启动项调整为所述目标服务器的目标启动项,其中,所述USB设备启动项用于指示所述目标服务器通过连接的USB设备启动,所述目标启动项为启动所述目标服务器的系统时以最高优先级使用的启动项。
[0073] 根据本申请实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述服务器启动项的调整方法。
[0074] 根据本申请实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的服务器启动项的调整方法。
[0075] 在本申请实施例中,目标服务器对应了用于指示所述目标服务器上全部USB端口的第一检测顺序的第一检测参数,如果遇到服务器的启动项调整失败的情况,则可以首先调用该第一检测参数,并按照第一检测参数所指示的第一检测顺序检测目标服务器的USB端口连接状态,从而得知目标服务器上是否存在连接了目标USB设备的USB端口,如果目标服务器上存在连接了目标USB设备的目标USB端口,则将USB设备启动项调整为目标服务器上启动目标服务器的系统时以最高优先级使用的目标启动项,从而成功对目标服务器的启动项进行调整。也就是说,通过上述操作机制,在服务器的启动项调整失败之后无需重启服务器,可以按照第一检测参数对目标服务器上全部USB端口继续进行检测,节省了重启服务器的操作所浪费的大量时间,提高了服务器启动项的调整效率。采用上述技术方案,解决了相关技术中,服务器启动项的调整效率较低等问题,实现了提高服务器启动项的调整效率的技术效果。

附图说明

[0076] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
[0077] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0078] 图1是根据本申请实施例的一种服务器启动项的调整方法的硬件环境示意图;
[0079] 图2是根据本申请实施例的一种服务器启动项的调整方法的流程图;
[0080] 图3是根据本申请实施例的一种第一检测顺序的示意图;
[0081] 图4是根据本申请实施例的一种启动项调整的示意图;
[0082] 图5是根据本申请实施例的一种服务器启动项的调整流程的示意图;
[0083] 图6是根据本申请实施例的一种服务器启动项的调整装置的结构框图。

具体实施方式

[0084] 为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
[0085] 需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0086] 本申请实施例所提供的方法实施例可以在计算机终端、设备终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是根据本申请实施例的一种服务器启动项的调整方法的硬件环境示意图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,在一个示例性实施例中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
[0087] 存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的服务器启动项的调整方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0088] 传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
[0089] 在本实施例中提供了一种服务器启动项的调整方法,图2是根据本申请实施例的一种服务器启动项的调整方法的流程图,如图2所示,该流程包括如下步骤:
[0090] 步骤S202,在检测到对目标服务器的启动项执行的调整操作失败的情况下,调用所述目标服务器对应的第一检测参数,其中,所述第一检测参数用于指示所述目标服务器上全部USB端口的第一检测顺序;
[0091] 步骤S204,按照所述第一检测参数检测所述目标服务器的USB端口连接状态,其中,所述USB端口连接状态用于指示所述目标服务器上是否存在连接了目标USB设备的USB端口;
[0092] 步骤S206,在所述USB端口连接状态用于指示所述目标服务器上存在连接了所述目标USB设备的目标USB端口的情况下,将USB设备启动项调整为所述目标服务器的目标启动项,其中,所述USB设备启动项用于指示所述目标服务器通过连接的USB设备启动,所述目标启动项为启动所述目标服务器的系统时以最高优先级使用的启动项。
[0093] 通过上述步骤,目标服务器对应了用于指示所述目标服务器上全部USB端口的第一检测顺序的第一检测参数,如果遇到服务器的启动项调整失败的情况,则可以首先调用该第一检测参数,并按照第一检测参数所指示的第一检测顺序检测目标服务器的USB端口连接状态,从而得知目标服务器上是否存在连接了目标USB设备的USB端口,如果目标服务器上存在连接了目标USB设备的目标USB端口,则将USB设备启动项调整为目标服务器上启动目标服务器的系统时以最高优先级使用的目标启动项,从而成功对目标服务器的启动项进行调整。也就是说,通过上述操作机制,在服务器的启动项调整失败之后无需重启服务器,可以按照第一检测参数对目标服务器上全部USB端口继续进行检测,节省了重启服务器的操作所浪费的大量时间,提高了服务器启动项的调整效率。采用上述技术方案,解决了相关技术中,服务器启动项的调整效率较低等问题,实现了提高服务器启动项的调整效率的技术效果。
[0094] 需要说明的是,服务器默认配置了多个启动项,其中,每一个启动项都对应一种启动服务器的方式,同时,多个启动项会存在一定的优先级,即,服务器会优先执行优先级更高的启动项。
[0095] 可选地,在本实施例中,上述服务器启动项的调整方法可以但不限于应用于上述目标服务器,或者也可以应用于目标服务器之外的具有服务器启动项的调整功能的独立设备。比如:移动终端,平板电脑,PC计算机等等。
[0096] 在上述步骤S202提供的技术方案中,区别于现有技术在检测到调整操作失败之后只能重启服务器,本申请提出的技术方案在检测到对目标服务器的启动项执行的调整操作失败的情况下,会按照第一检测参数对目标服务器上全部USB端口进行检测;
[0097] 可选的,在本实施例中,图3是根据本申请实施例的一种第一检测顺序的示意图,如图3所示,以目标服务器上部署了4个USB端口,分别为:USB端口A、USB端口B、USB端口C和USB端口D为例。第一检测顺序可以但不限于包括以下情况之一:
[0098] 情况一,正序,即,依次检测USB端口A、USB端口B、USB端口C、USB端口D;
[0099] 情况二,逆序,即,依次检测USB端口D、USB端口C、USB端口B、USB端口A;
[0100] 情况三,随机顺序,区别于上述两种预先确定的顺序,随机顺序每一次选择检测的USB端口都是随机的,下一次检测的USB端口是在未检测的USB端口中随机选择一个,比如,第1次随机检测的USB端口为USB端口B,那么,第2次随机检测的USB端口为从未检测的USB端口(USB端口A、USB端口C、USB端口D)中随机选择一个,第3次和第4次执行同样的逻辑。
[0101] 在一个示例性实施例中,在所述调用所述目标服务器对应的第一检测参数之前,可以但不限于还包括以下方式:在检测到对目标服务器的启动项的调整功能被触发的情况下,调用所述目标服务器对应的第二检测参数,其中,所述第二检测参数用于指示所述目标服务器上全部USB端口的第二检测顺序;按照所述第二检测顺序检测所述目标服务器的所述USB端口连接状态;在所述USB端口连接状态用于指示所述目标服务器上不存在连接了所述目标USB设备的目标USB端口的情况下,确定检测到对所述目标服务器的启动项执行的调整操作失败。
[0102] 可选的,在本实施例中,目标服务器的启动项的调整功能被触发的方式可以但不限于包括:预先设定的第一热键被执行,或者,目标服务器接收到执行启动项的调整功能的指令。
[0103] 可选地,在本实施例中,在检测到对目标服务器的启动项的调整功能被触发的情况下,对目标服务器的启动项执行的调整操作的方式可以但不限于按照第二检测参数指示的第二检测顺序,检测所述目标服务器的所述USB端口连接状态,在所述USB端口连接状态用于指示所述目标服务器上不存在连接了所述目标USB设备的目标USB端口的情况下,确定检测到对所述目标服务器的启动项执行的调整操作失败,其中,第二检测顺序可以但不限于与第一检测顺序一致。
[0104] 在一个示例性实施例中,在所述调用所述目标服务器对应的第一检测参数之前,可以但不限于还包括以下方式:在检测到对目标服务器的启动项的调整功能被触发的情况下,调用所述目标服务器对应的第三检测参数,其中,所述第三检测参数用于指示所述调整功能对应的一个USB端口的第二端口标识;检测所述第二端口标识所指示的USB端口上是否连接了所述目标USB设备;在检测到所述第二端口标识所指示的USB端口上未连接所述目标USB设备的情况下,确定检测到对所述目标服务器的启动项执行的调整操作失败。
[0105] 可选地,在本实施例中,区别于上述按照第二检测顺序检测目标服务器的USB端口连接状态的方式,可以根据目标服务器上指定的USB端口是否连接目标USB设备来确定目标服务器的启动项执行的调整操作是否失败,比如,可以调用目标服务器对应的第三检测参数,根据第三检测参数确定调整功能对应的一个USB端口的第二端口标识,检测第二端口标识所指示的USB端口上是否连接了目标USB设备;在检测到第二端口标识所指示的USB端口上未连接目标USB设备的情况下,确定检测到对目标服务器的启动项执行的调整操作失败。
[0106] 在上述步骤S204提供的技术方案中,USB端口连接状态可以但不限于为目标服务器的一类状态指标,其中,USB端口连接状态是基于目标服务器上部署的所有USB端口是否连接了目标USB设备确定的,因此,目标服务器上部署的所有USB端口中的每一个USB端口的连接情况都会影响目标服务器的USB端口连接状态。
[0107] 可选的,在本实施例中,第一检测参数可以指示第一检测顺序,按照第一检测顺序依次检测目标服务器上全部USB端口,根据全部USB端口中是否存在连接了目标USB设备的USB端口确定目标服务器的USB端口连接状态,比如,目标服务器上部署了N个USB端口,其中,按照第一检测顺序依次检测N个USB端口,在检测到N个USB端口中连接了目标USB设备的USB端口的数量大于或者等于1,则确定USB端口连接状态用于指示所述目标服务器上存在连接了所述目标USB设备的目标USB端口;在检测到N个USB端口中连接了目标USB设备的USB端口的数量等于0,则确定USB端口连接状态用于指示所述目标服务器上不存在连接了所述目标USB设备的目标USB端口。
[0108] 在一个示例性实施例中,可以但不限于通过以下方式按照所述第一检测参数检测所述目标服务器的USB端口连接状态:按照所述第一检测参数所指示的轮询顺序确定当前待检测的当前USB端口;检测所述当前USB端口的当前连接状态,其中,所述当前连接状态用于指示所述当前USB端口是否连接了所述目标USB设备;在所述当前连接状态用于指示所述当前USB端口连接了所述目标USB设备的情况下,确定所述USB端口连接状态用于指示所述目标服务器上存在连接了所述目标USB设备的USB端口,并将所述当前USB端口确定为所述目标USB端口;在所述当前连接状态用于指示所述当前USB端口未连接所述目标USB设备的情况下,按照所述轮询顺序确定下一个待检测的USB端口作为下一个所述当前USB端口。
[0109] 可选的,在本实施例中,在将当前USB端口确定为目标USB端口之后,可以停止按照第一检测参数检测目标服务器剩余的USB端口连接状态,或者,继续按照第一检测参数检测目标服务器剩余的USB端口连接状态,此时,可能得到多个目标USB端口,因此可以进一步从多个目标USB端口根据预先设定的优先级规则选举出一个目标USB端口。
[0110] 在一个示例性实施例中,在所述检测所述当前USB端口的当前连接状态之后,还可以但不限于包括以下方式在所述当前连接状态用于指示所述当前USB端口未连接所述目标USB设备,且所述当前USB端口为所述轮询顺序中的最后一个USB端口的情况下,确定所述USB端口连接状态用于指示所述目标服务器上不存在连接了所述目标USB设备的USB端口。
[0111] 可选地,在本实施例中,采用轮询检测的方式检测目标服务器上的USB端口,其中,轮询顺序中的最后一个USB端口为轮询顺序执行完毕的最后一个USB端口,在当前连接状态用于指示当前USB端口未连接目标USB设备,且当前USB端口为轮询顺序中的最后一个USB端口的情况下,即,当前USB端口之前全部的USB端口都未连接目标USB设备,因此,确定USB端口连接状态用于指示目标服务器上不存在连接了目标USB设备的USB端口。
[0112] 在一个示例性实施例中,调用所述目标服务器对应的第一检测参数可以但不限于通过以下方式之一:
[0113] 调用所述目标服务器对应的单轮顺序参数和退出条件参数作为所述第一检测参数,其中,所述单轮顺序参数用于指示单次轮询所述全部USB端口的顺序,所述退出条件参数用于指示退出对所述全部USB端口进行轮询检测的条件;
[0114] 调用所述目标服务器对应的检测列表作为所述第一检测参数,其中,所述检测列表中按照所述轮询顺序记录了所述全部USB端口。
[0115] 可选地,在本实施例中,第一检测参数指示第一检测顺序的方式可以但不限于包括直接给出完整的检测顺序作为上述第一检测顺序,比如,上述采用检测列表作为第一检测参数的方式,另一种方式是,规定目标服务器上全部USB端口轮询检测的单轮顺序参数和退出条件参数,根据单轮顺序参数和退出条件参数可以确定单次轮询全部USB端口的顺序,以及,退出对全部USB端口进行轮询检测的条件。
[0116] 在一个示例性实施例中,所述调用所述目标服务器对应的单轮顺序参数和退出条件参数作为所述第一检测参数可以但不限于通过以下方式之一:调用所述目标服务器对应的单轮顺序参数和轮询次数参数作为所述第一检测参数,其中,所述轮询次数参数用于指示对所述全部USB端口进行轮询的次数;调用所述目标服务器对应的单轮顺序参数和轮询时间参数作为所述第一检测参数,其中,所述轮询时间参数用于指示对所述全部USB端口进行轮询的时长。
[0117] 可选的,在本实施例中,退出条件参数可以但不限于为轮询次数参数和轮询时间参数,在退出条件参数为轮询次数参数的情况下,在轮询次数参数指示的次数轮询完毕时,退出轮询检测;在退出条件参数为轮询时间参数的情况下,在轮询时间参数指示的轮询的时长结束时,退出轮询检测。
[0118] 在一个示例性实施例中,还可以但不限于包括以下方式至少之一:
[0119] 在所述检测所述当前USB端口的当前连接状态的过程中,按照所述轮询顺序确定下一个待检测的参考USB端口;生成并展示第一提示信息,其中,所述第一提示信息用于提示所述参考USB端口为下一个待检测的USB端口;
[0120] 在所述检测所述当前USB端口的当前连接状态的过程中,生成并展示第二提示信息,其中,所述第二提示信息用于提示所述当前USB端口为当前正在被检测的USB端口。
[0121] 可选的,在本实施例中,第一提示信息可以直接指示参考USB端口为下一个待检测的USB端口,以便用户可以清楚地知道即将轮询的下一个USB端口是哪个,此时如果想要插入USB设备可以在下一个USB口等待,则对插入的可启动USB设备识别、匹配创建可启动项,实现了即插即用。
[0122] 在一个示例性实施例中,可以但不限于通过以下方式生成并展示第二提示信息:生成所述第二提示信息,其中,所述第二提示信息用于提示所述当前USB端口为当前正在被检测的USB端口以及所述轮询顺序;展示所述第二提示信息。
[0123] 可选地,在本实施例中,可选地,在本实施例中,第二提示信息可以提示当前USB端口为当前正在被检测的USB端口以及所述轮询顺序,用户根据轮询顺序和当前USB端口可以知道即将轮询的下一个USB端口是哪个,此时如果想要插入USB设备可以在下一个USB口等待,则对插入的可启动USB设备识别、匹配创建可启动项,实现了即插即用。
[0124] 可选的,在本实施例中,提示信息可以但不限于为声光电或者文字等形式进行展示,旨在便于用户可以知道即将轮询的下一个USB端口是哪个,此时如果想要插入USB设备可以在下一个USB口等待,则对插入的可启动USB设备识别、匹配创建可启动项,实现了即插即用。
[0125] 在一个示例性实施例中,可以但不限于通过以下方式检测所述当前USB端口的当前连接状态:检测所述当前USB端口是否连接了USB设备;在检测到所述当前USB端口连接了USB设备的情况下,检测所述当前USB端口上连接的USB设备的设备类型;在所述设备类型为目标类型的情况下,确定所述当前USB端口连接了所述目标USB设备。
[0126] 可选的,在本实施例中,USB设备的设备类型可以包括目标类型和非目标类型,在检测到当前USB端口连接了USB设备的情况下,并不可以直接确定当前USB端口连接了目标USB设备,还需要进一步检测当前USB端口上连接的USB设备的设备类型,只有在设备类型为目标类型的情况下,才可以确定当前USB端口连接了目标USB设备。
[0127] 在一个示例性实施例中,可以但不限于通过以下方式检测所述当前USB端口上连接的USB设备的设备类型:访问所述USB设备中存储的文件;在所述USB设备中访问到引导文件的情况下,确定所述设备类型为目标类型。
[0128] 可选的,在本实施例中,在USB设备中访问到引导文件的情况下,确定所述设备类型为目标类型;在USB设备中未访问到引导文件的情况下,确定所述设备类型为非目标类型。
[0129] 在一个示例性实施例中,还可以但不限于包括以下方式在所述按照所述第一检测参数检测所述目标服务器的USB端口连接状态的过程中,检测所述目标服务器上是否执行了退出操作;在检测所述退出操作的情况下,停止执行所述按照所述第一检测参数检测所述目标服务器的USB端口连接状态的步骤。
[0130] 可选地,在本实施例中,退出操作可以但不限于为预先设定的第二热键被执行,或者,目标服务器接收到执行退出操作的指令。
[0131] 在一个示例性实施例中,可以但不限于通过以下方式检测所述目标服务器上是否执行了退出操作:生成第三提示信息,其中,所述第三提示信息用于提示所述退出操作的触发条件;在检测所述目标服务器上是否执行了所述退出操作的同时,展示所述第三提示信息。
[0132] 可选的,在本实施例中,第三提示信息用于提示所述退出操作的触发条件,比如,第三提示信息为“第二热键【Ctrl+F5】,如果想提前退出轮询检测,可以直接按第二热键取消轮询检测”。
[0133] 在上述步骤S206提供的技术方案中,服务器默认配置了多个启动项,其中,每一个启动项都对应一种启动服务器的方式,同时,多个启动项会存在一定的优先级,图4是根据本申请实施例的一种启动项调整的示意图,如图4所示,服务器的启动项默认配置为多个启动项(目标启动项、启动项2、启动项3,至启动项N),上层启动项的优先级高于下层启动项的优先级,因此处于最上层的启动项拥有最高优先级,目标服务器按照最高优先级的启动项启动目标服务器的系统,在最高优先级的系统无法使用时,依次使用优先级次之的启动项启动目标服务器的系统,在将USB设备启动项调整为所述目标服务器的目标启动项之后,得到启动项调整配置,目标服务器将通过连接的USB设备启动。
[0134] 在一个示例性实施例中,可以但不限于通过以下方式将USB设备启动项调整为所述目标服务器的目标启动项:检测所述目标USB设备所携带的基本输入输出系统BIOS的第一启动模式,并检测所述目标服务器当前所使用的BIOS的第二启动模式,其中,BIOS的启动模式包括UEFI模式和Legacy模式;根据所述第一启动模式和所述第二启动模式将USB设备启动项调整为所述目标服务器的目标启动项。
[0135] 可选的,在本实施例中,检测所述目标USB设备所携带的基本输入输出系统BIOS的第一启动模式的方式为识别目标USB设备所携带的文件为UEFI文件还是Legacy文件,在目标USB设备所携带的文件为UEFI文件的情况下,确定目标USB设备所携带的基本输入输出系统BIOS的第一启动模式为UEFI模式;在目标USB设备所携带的文件为Legacy文件的情况下,确定目标USB设备所携带的基本输入输出系统BIOS的第一启动模式为Legacy模式。
[0136] 在一个示例性实施例中,可以但不限于通过以下方式根据所述第一启动模式和所述第二启动模式将USB设备启动项调整为所述目标服务器的目标启动项:匹配所述第一启动模式和所述第二启动模式;在所述第一启动模式和所述第二启动模式匹配一致的情况下,将USB设备启动项调整为所述目标服务器的目标启动项。
[0137] 可选的,在本实施例中,第一启动模式和第二启动模式匹配对应后才可以成功创建启动项,同时提示用户即将进入USB设备。否则将无法成功创建启动项。
[0138] 在一个示例性实施例中,在所述匹配所述第一启动模式和所述第二启动模式之后,可以但不限于还包括以下方式:在所述第一启动模式和所述第二启动模式匹配不一致的情况下,从所述目标服务器上获取启动项顺序,其中,所述启动项顺序为所述目标服务器所支持的启动项的使用顺序;按照所述启动项顺序启动所述目标服务器。
[0139] 可选的,在本实施例中,如图4所示,在所述第一启动模式和所述第二启动模式匹配不一致的情况下,即按照服务器的启动项默认配置所指示的启动项顺序启动所述目标服务器。
[0140] 在一个示例性实施例中,在所述将USB设备启动项调整为所述目标服务器的目标启动项之后,可以但不限于还包括以下方式从所述目标USB设备中调用目标程序;在所述目标程序为具备故障检测功能的程序的情况下,执行所述目标程序从所述目标服务器中获取目标日志;根据所述目标日志对所述目标服务器进行故障检测。
[0141] 可选的,在本实施例中,目标程序不限于为具备故障检测功能的程序,还可以是具备其他功能的程序,因此,可以执行程序对应的操作,比如,数据采集功能,数据拷贝功能,数据分析功能,数据增删改查功能等等,本申请以目标程序为具备故障检测功能的程序,对服务器故障进行检测的场景为例进行说明,并不限定目标程序的类型。
[0142] 在一个示例性实施例中,可以但不限于通过以下方式执行所述目标程序从所述目标服务器中获取目标日志:执行所述目标程序从所述目标服务器上部署的基板管理控制器BMC中获取第一日志,并从所述目标服务器对应的操作系统OS中获取第二日志;将所述第一日志和所述第二日志确定为所述目标日志。
[0143] 可选的,在本实施例中,目标日志的来源可以但不限于包括基板管理控制器BMC和操作系统OS,基板管理控制器BMC和操作系统OS上记录了服务器运行过程中的日志,根据目标日志可以分析检测服务器故障的详细信息,进而对服务器故障进行解决和优化。
[0144] 在一个示例性实施例中,可以但不限于通过以下方式执行所述目标程序从所述目标服务器上部署的基板管理控制器BMC中获取第一日志,并从所述目标服务器对应的操作系统OS中获取第二日志:向所述目标服务器发送智能平台管理接口IPMI命令,其中,所述IPMI命令用于指示从所述目标服务器上部署的所述BMC中读取系统事件日志SEL;从所述BMC对应的restful接口中读取BMC的接口描述语言日志IDL;将所述系统事件日志SEL和所述接口描述语言日志IDL确定为所述第一日志;从所述目标服务器对应的操作系统中获取Dmesg日志、Mcelog日志和Message日志,其中,所述第二日志包括所述Dmesg日志、所述Mcelog日志和所述Message日志。
[0145] 可选的,在本实施例中,第一日志和第二日志可以但不限于包括上述日志,如有需要,可以采集其他日志,对应的采集硬件区域和方式不做限定。
[0146] 为了更好的理解上述服务器启动项的调整的过程,以下再结合可选实施例对上述服务器启动项的调整流程进行说明,但不用于限定本申请实施例的技术方案。
[0147] 在本实施例中提供了一种服务器启动项的调整方法,图5是根据本申请实施例的一种服务器启动项的调整流程的示意图,如图5所示,主要包括如下步骤:
[0148] 步骤S501:定义好进USB可启动设备的热键(即上述对目标服务器的启动项的调整功能进行触发的第一热键),比如【F5】键;
[0149] 步骤S502:确认好第一热键的提示信息以及按下第一热键之后的响应信息,可参考如下:提示信息:Press 【F5】 to USB Device(按下【F5】对目标服务器的启动项的调整功能进行触发);响应信息:【F5】 is Pressed,Going to USB Device(【F5】已经被按下,即将进入USB设备);
[0150] 步骤S503:上述提示信息及响应信息可以在目标服务器开机Logo处打印出来,以提醒用户在这个时间点按下第一热键。按下第一热键后对插入的目标USB设备进行启动项的创建,如果过了目标服务器开机Logo处一直未按第一热键,则视为对进入目标USB设备没有需求,服务器则按照BIOS启动项默认设置进行启动;
[0151] 步骤S504:对于上述提到的按下第一热键后对插入的USB设备进行启动项的创建,如果USB设备为可启动设备(即USB设备的设备类型为目标类型),则需要依据BIOS当前的启动模式(UEFI模式或者Legacy模式),去识别USB可启动设备所携带的文件为UEFI文件还是Legacy文件,BIOS启动模式需与USB可启动设备的文件匹配对应后才可以成功创建启动项,同时打印信息提示用户即将进入USB设备。否则将无法成功创建启动项;
[0152] 步骤S505:对于上述提到的按下第一热键之后,如果服务器未插着USB可启动设备(即上述目标USB设备)或者未插着USB设备,则无法创建启动项;
[0153] 步骤S506:对于步骤S504,步骤S505中提到的无法创建启动项,需要在此通过增加周期性的Timer Event(定时器事件)反复不停地查找是否连接USB可启动设备,这个查找会按照顺序规则轮询服务器上所有的USB口,从USB Port1、USB Port2…USB PortN,轮询每个USB端口的时候会有信息提示用户,以便用户可以清楚地知道即将轮询的下一个USB端口是哪个,此时如果想要插入USB设备可以在下一个USB口等待,则对插入的可启动USB设备识别、匹配创建可启动项,实现了即插即用;
[0154] 步骤S507:以上提到的按下第一热键之后,只要成功创建可启动项,均是直接进入USB设备,无需再进行其他操作;如果轮询过程中一直未插入USB可启动设备,会按照提前设定好的结束时间自动退出轮询,退出后按照BIOS默认的启动顺序进行启动(比如进入到操作系统),此轮询时间可以由用户自由设定,时间范围可以为1至5分钟;
[0155] 步骤S508:再定义一个第二热键【Ctrl+F5】,如果想提前退出轮询模式(即上述轮询检测),可以直接按热键取消轮询模式;
[0156] 步骤S509:进入USB启动设备后,可选择进行故障诊断及执行测试,执行测试需要将测试工具集成到USB设备的系统中,执行完成后输出测试结果;
[0157] 步骤S510:故障诊断需要通过IPMI(Intelligent Platform Management Interface,智能平台管理接口)命令读取BMC(Baseboard Management Controller,基板管理控制器)的SEL(System Event Log,系统事件日志)日志,通过BMC的restful接口读取BMC的IDL(Interface description language,接口描述语言)日志,通过USB设备系统进入到OS(Operating System,操作系统)下,读取OS下Dmesg、Mcelog、Message等日志信息,便于服务器维修及后期改进计划。
[0158] 需要说明的是,对服务器USB可启动设备(即目标USB设备)创建USB设备启动项并成功进入USB设备,如果启动失败会通过增加周期性的Timer Event,反复不停地轮询查找服务器所有USB口直到成功创建USB可启动设备启动项并进入USB设备,这个轮询是指从USB Port 1(USB端口1)、USB Port 2…USB Port N,轮询每个USB端口的时候会有信息提示用户,在轮询的过程中随时插入USB可启动设备,即可实现进入USB设备的操作。
[0159] 如果轮询过程中一直未插入USB可启动设备,会按照提前设定好的结束时间自动退出轮询,退出后按照BIOS正常的启动顺序进行启动(比如进入到操作系统),此轮询时间可以由用户自由设定,时间范围1至5分钟,如果想提前退出轮询模式,也可以直接按第二热键取消轮询模式。
[0160] 进入USB启动设备后,可选择进行故障诊断及执行测试,执行测试需要将测试工具集成到USB设备的系统中,执行完成后输出测试结果。故障诊断需要通过IPMI命令读取BMC的SEL日志,通过BMC的restful接口读取BMC的IDL日志,通过USB设备系统进入到OS下,读取OS下Dmesg、Mcelog、Message等日志信息,便于服务器维修及后期改进计划。
[0161] 本申请提出的服务器启动项的调整方法,只需按下第一热键即可轻松进入USB可启动设备,在启动失败的情况无需重启服务器,可以通过轮询查找的方式实现再次进入USB设备,轮询每个USB端口的时候会有信息提示用户,实现了即插即用,同时客户可以根据自己的使用场景提前设定好轮询的时间,时间范围1至5分钟,时间到达后可以自动退出轮询模式,按照BIOS正常的启动顺序进行启动(比如进入到操作系统),如果想提前退出轮询模式,也可以直接按热键取消轮询模式,省去了再次重启服务器的麻烦,方便生产及测试执行测试,售后收集客户服务器故障诊断信息,便于后期服务器改进,提升服务器品质,提升产品竞争度,提高生产、测试效率,节省人力成本。
[0162] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
[0163] 图6是根据本申请实施例的一种服务器启动项的调整装置的结构框图;如图6所示,包括:
[0164] 第一调用模块602,用于在检测到对目标服务器的启动项执行的调整操作失败的情况下,调用所述目标服务器对应的第一检测参数,其中,所述第一检测参数用于指示所述目标服务器上全部USB端口的第一检测顺序;
[0165] 第一检测模块604,用于按照所述第一检测参数检测所述目标服务器的USB端口连接状态,其中,所述USB端口连接状态用于指示所述目标服务器上是否存在连接了目标USB设备的USB端口;
[0166] 调整模块606,用于在所述USB端口连接状态用于指示所述目标服务器上存在连接了所述目标USB设备的目标USB端口的情况下,将USB设备启动项调整为所述目标服务器的目标启动项,其中,所述USB设备启动项用于指示所述目标服务器通过连接的USB设备启动,所述目标启动项为启动所述目标服务器的系统时以最高优先级使用的启动项。
[0167] 通过上述实施例,目标服务器对应了用于指示所述目标服务器上全部USB端口的第一检测顺序的第一检测参数,如果遇到服务器的启动项调整失败的情况,则可以首先调用该第一检测参数,并按照第一检测参数所指示的第一检测顺序检测目标服务器的USB端口连接状态,从而得知目标服务器上是否存在连接了目标USB设备的USB端口,如果目标服务器上存在连接了目标USB设备的目标USB端口,则将USB设备启动项调整为目标服务器上启动目标服务器的系统时以最高优先级使用的目标启动项,从而成功对目标服务器的启动项进行调整。也就是说,通过上述操作机制,在服务器的启动项调整失败之后无需重启服务器,可以按照第一检测参数对目标服务器上全部USB端口继续进行检测,节省了重启服务器的操作所浪费的大量时间,提高了服务器启动项的调整效率。采用上述技术方案,解决了相关技术中,服务器启动项的调整效率较低等问题,实现了提高服务器启动项的调整效率的技术效果。
[0168] 在一个示例性实施例中,所述第一检测模块,包括:
[0169] 第一确定单元,用于按照所述第一检测参数所指示的轮询顺序确定当前待检测的当前USB端口;
[0170] 第一检测单元,用于检测所述当前USB端口的当前连接状态,其中,所述当前连接状态用于指示所述当前USB端口是否连接了所述目标USB设备;
[0171] 第二确定单元,用于在所述当前连接状态用于指示所述当前USB端口连接了所述目标USB设备的情况下,确定所述USB端口连接状态用于指示所述目标服务器上存在连接了所述目标USB设备的USB端口,并将所述当前USB端口确定为所述目标USB端口;
[0172] 第三确定单元,用于在所述当前连接状态用于指示所述当前USB端口未连接所述目标USB设备的情况下,按照所述轮询顺序确定下一个待检测的USB端口作为下一个所述当前USB端口。
[0173] 在一个示例性实施例中,所述装置还包括:
[0174] 第一确定模块,用于在所述检测所述当前USB端口的当前连接状态之后,在所述当前连接状态用于指示所述当前USB端口未连接所述目标USB设备,且所述当前USB端口为所述轮询顺序中的最后一个USB端口的情况下,确定所述USB端口连接状态用于指示所述目标服务器上不存在连接了所述目标USB设备的USB端口。
[0175] 在一个示例性实施例中,所述第一调用模块,包括以下之一:
[0176] 第一调用单元,用于调用所述目标服务器对应的单轮顺序参数和退出条件参数作为所述第一检测参数,其中,所述单轮顺序参数用于指示单次轮询所述全部USB端口的顺序,所述退出条件参数用于指示退出对所述全部USB端口进行轮询检测的条件;
[0177] 第二调用单元,用于调用所述目标服务器对应的检测列表作为所述第一检测参数,其中,所述检测列表中按照所述轮询顺序记录了所述全部USB端口。
[0178] 在一个示例性实施例中,所述第一调用单元,还用于以下之一:
[0179] 调用所述目标服务器对应的单轮顺序参数和轮询次数参数作为所述第一检测参数,其中,所述轮询次数参数用于指示对所述全部USB端口进行轮询的次数;
[0180] 调用所述目标服务器对应的单轮顺序参数和轮询时间参数作为所述第一检测参数,其中,所述轮询时间参数用于指示对所述全部USB端口进行轮询的时长。
[0181] 在一个示例性实施例中,所述装置还包括以下至少之一:
[0182] 第一展示模块,用于在所述检测所述当前USB端口的当前连接状态的过程中,按照所述轮询顺序确定下一个待检测的参考USB端口;生成并展示第一提示信息,其中,所述第一提示信息用于提示所述参考USB端口为下一个待检测的USB端口;
[0183] 第二展示模块,用于在所述检测所述当前USB端口的当前连接状态的过程中,生成并展示第二提示信息,其中,所述第二提示信息用于提示所述当前USB端口为当前正在被检测的USB端口。
[0184] 在一个示例性实施例中,所述第二展示模块,包括:
[0185] 第一生成单元,用于生成所述第二提示信息,其中,所述第二提示信息用于提示所述当前USB端口为当前正在被检测的USB端口以及所述轮询顺序;
[0186] 第一展示单元,用于展示所述第二提示信息。
[0187] 在一个示例性实施例中,所述第二展示模块,包括:
[0188] 第二检测单元,用于检测所述当前USB端口是否连接了USB设备;
[0189] 第三检测单元,用于在检测到所述当前USB端口连接了USB设备的情况下,检测所述当前USB端口上连接的USB设备的设备类型;
[0190] 第四确定单元,用于在所述设备类型为目标类型的情况下,确定所述当前USB端口连接了所述目标USB设备。
[0191] 在一个示例性实施例中,所述第三检测单元,还用于:
[0192] 访问所述USB设备中存储的文件;
[0193] 在所述USB设备中访问到引导文件的情况下,确定所述设备类型为目标类型。
[0194] 在一个示例性实施例中,所述装置还包括:
[0195] 第二检测模块,用于在所述按照所述第一检测参数检测所述目标服务器的USB端口连接状态的过程中,检测所述目标服务器上是否执行了退出操作;
[0196] 停止模块,用于在检测所述退出操作的情况下,停止执行所述按照所述第一检测参数检测所述目标服务器的USB端口连接状态的步骤。
[0197] 在一个示例性实施例中,所述第二检测模块,包括:
[0198] 第二生成单元,用于生成第三提示信息,其中,所述第三提示信息用于提示所述退出操作的触发条件;
[0199] 第二展示单元,用于在检测所述目标服务器上是否执行了所述退出操作的同时,展示所述第三提示信息。
[0200] 在一个示例性实施例中,所述装置还包括:
[0201] 第二调用模块,用于在所述调用所述目标服务器对应的第一检测参数之前,在检测到对目标服务器的启动项的调整功能被触发的情况下,调用所述目标服务器对应的第二检测参数,其中,所述第二检测参数用于指示所述目标服务器上全部USB端口的第二检测顺序;
[0202] 第三检测模块,用于按照所述第二检测顺序检测所述目标服务器的所述USB端口连接状态;
[0203] 第二确定模块,用于在所述USB端口连接状态用于指示所述目标服务器上不存在连接了所述目标USB设备的目标USB端口的情况下,确定检测到对所述目标服务器的启动项执行的调整操作失败。
[0204] 在一个示例性实施例中,所述装置还包括:
[0205] 第三调用模块,用于在所述调用所述目标服务器对应的第一检测参数之前,在检测到对目标服务器的启动项的调整功能被触发的情况下,调用所述目标服务器对应的第三检测参数,其中,所述第三检测参数用于指示所述调整功能对应的一个USB端口的第二端口标识;
[0206] 第四检测模块,用于检测所述第二端口标识所指示的USB端口上是否连接了所述目标USB设备;
[0207] 第三确定模块,用于在检测到所述第二端口标识所指示的USB端口上未连接所述目标USB设备的情况下,确定检测到对所述目标服务器的启动项执行的调整操作失败。
[0208] 在一个示例性实施例中,所述调整模块,包括:
[0209] 第四检测单元,用于检测所述目标USB设备所携带的基本输入输出系统BIOS的第一启动模式,并检测所述目标服务器当前所使用的BIOS的第二启动模式,其中,BIOS的启动模式包括UEFI模式和Legacy模式;
[0210] 调整单元,用于根据所述第一启动模式和所述第二启动模式将USB设备启动项调整为所述目标服务器的目标启动项。
[0211] 在一个示例性实施例中,所述调整单元,还用于:
[0212] 匹配所述第一启动模式和所述第二启动模式;
[0213] 在所述第一启动模式和所述第二启动模式匹配一致的情况下,将USB设备启动项调整为所述目标服务器的目标启动项。
[0214] 在一个示例性实施例中,所述装置还包括:
[0215] 获取模块,用于在所述匹配所述第一启动模式和所述第二启动模式之后,在所述第一启动模式和所述第二启动模式匹配不一致的情况下,从所述目标服务器上获取启动项顺序,其中,所述启动项顺序为所述目标服务器所支持的启动项的使用顺序;
[0216] 启动模块,用于按照所述启动项顺序启动所述目标服务器。
[0217] 在一个示例性实施例中,所述装置还包括:
[0218] 第四调用模块,用于在所述将USB设备启动项调整为所述目标服务器的目标启动项之后,从所述目标USB设备中调用目标程序;
[0219] 执行模块,用于在所述目标程序为具备故障检测功能的程序的情况下,执行所述目标程序从所述目标服务器中获取目标日志;
[0220] 检测模块,用于根据所述目标日志对所述目标服务器进行故障检测。
[0221] 在一个示例性实施例中,所述执行模块,包括:
[0222] 执行单元,用于执行所述目标程序从所述目标服务器上部署的基板管理控制器BMC中获取第一日志,并从所述目标服务器对应的操作系统OS中获取第二日志;
[0223] 第五确定单元,用于将所述第一日志和所述第二日志确定为所述目标日志。
[0224] 在一个示例性实施例中,所述执行单元,还用于:
[0225] 向所述目标服务器发送智能平台管理接口IPMI命令,其中,所述IPMI命令用于指示从所述目标服务器上部署的所述BMC中读取系统事件日志SEL;从所述BMC对应的restful接口中读取BMC的接口描述语言日志IDL;将所述系统事件日志SEL和所述接口描述语言日志IDL确定为所述第一日志;
[0226] 从所述目标服务器对应的操作系统中获取Dmesg日志、Mcelog日志和Message日志,其中,所述第二日志包括所述Dmesg日志、所述Mcelog日志和所述Message日志。
[0227] 需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
[0228] 本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
[0229] 在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read‑Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
[0230] 本申请的实施例还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
[0231] 在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
[0232] 本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
[0233] 显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
[0234] 以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。