SMBIOS表的类型信息更新方法、装置、设备及介质与流程

文档序号:38133491发布日期:2024-05-30 11:49阅读:8来源:国知局
SMBIOS表的类型信息更新方法、装置、设备及介质与流程

本发明涉及服务器管理,尤其涉及一种smbios表的类型信息更新方法、装置、设备及介质。


背景技术:

1、服务器、台式机、笔记本及手机等电子产品都需要在操作系统下查看系统的管理信息,管理信息包括但不限于cpu处理器、内存厂商、内存型号、内存位置信息、内存速率、系统pci slot设备信息、电源信息、uuid信息、系统厂商、生产厂商、主板丝印信息、主板板载设备信息等。简而言之,就是将主板上所有的信息进行统一搜集并汇总更新至bios的smbios协议规范表中用于记录,便于使用人员或者运维人员快速、实时查看服务器系统的配置信息,无需物理实际接触服务器设备即可知晓整机的配置。

2、按照smbios协议规范规定,smbios表有动态和静态两种更新方式,静态更新方式就是在启动时bios会将主板的所有信息预先填写在系统中,bios启动时会将这些信息填写并更新至smbios协议的各个类型中,但这些数据是静态的,不会随着服务器配置的改变而动态改变。所以,动态更新的方法是将主板配置动态更新至smbios表的类型中,即启动时,bios会主动识别本次启动的cpu处理器数量、cpu速率、cpu核心、内存数量、内存核心、内存厂商、pci slot设备数量、主板板载设备数量、系统厂商、系统型号、主板型号等相关进行动态更新,但是,各个类型的字节数据长度是不固定的。倘若预留的字节数量或者长度不够导致无法支持超过预留字节的数据时,此时系统就会出现报错宕机等严重致命问题。


技术实现思路

1、针对现有技术存在的问题,本发明提供一种smbios表的类型信息更新方法、装置、电子设备及介质。

2、本发明提供一种smbios表的类型信息更新方法,包括:

3、确定smbios表上的第一更新类型和第二更新类型;所述第一更新类型为类型信息采用动态更新方式的类型;所述第二更新类型为类型信息采用静态更新方式的类型;

4、在bios的dxe启动阶段中,对smbios表上的第一更新类型的信息进行更新;

5、确定smbios表的预留字节数;

6、在bios的dxe启动阶段结束后,且在进入os阶段前,基于所述预留字节数和所述第二更新类型,对smbios表上的第二更新类型的信息进行更新。

7、在一个实施例中,所述确定smbios表上的第一更新类型和第二更新类型,包括:

8、基于预设时间段内的smbios表的类型信息更新的历史记录,获取各个类型信息的字节数变化区间的最大值,以及各个类型信息的更新次数;

9、将所述最大值大于第一预设值,且所述更新次数大于第二预设值的类型作为第一更新类型,将smbios表的各个类型中除去第一更新类型的剩余类型作为第二更新类型。

10、在一个实施例中,所述第一更新类型的类型信息划分为第一内容和第二内容,所述第一内容为采用动态更新方式的信息,第二内容为采用静态更新方式的信息,相应地,在bios的dxe启动阶段中,对smbios表上的第一更新类型的类型信息的第一内容进行更新,以及在bios的dxe启动阶段结束后,且在进入os阶段前,基于所述预留字节数,对smbios表上的第一更新类型的类型信息的第二内容进行更新。

11、在一个实施例中,所述确定smbios表的预留字节数,包括:

12、获取对smbios表上的第一更新类型的信息进行更新后,第一更新类型的类型信息的第一字节数;

13、获取上一次对smbios表上的类型信息更新后的总字节数,上一次对smbios表上的第一更新类型的类型信息更新后的第二字节数、以及上一次的预留字节数;

14、根据所述第一字节数、所述总字节数、所述第二字节数和所述上一次的预留字节数,确定smbios表的预留字节数。

15、在一个实施例中,所述根据所述第一字节数、所述总字节数和所述上一次的预留字节数,确定smbios表的预留字节数,包括:

16、根据所述第一字节数和所述第二字节数确定字节更新比例;

17、根据所述总字节数和所述第二字节数确定第三字节数;

18、根据所述第三字节数和字节更新比例确定第四字节数;

19、根据所述上一次的预留字节数和所述第四字节数确定smbios表的预留字节数。

20、在一个实施例中,所述确定smbios表的预留字节数,包括:

21、获取上两次对smbios表上的类型信息更新后的第一总字节数和第二总字节数和所述上一次的预留字节数;

22、基于两个总字节数确定升降类型;

23、基于所述升降类型、所述第二总字节数和所述上一次的预留字节数,确定smbios表的预留字节数。

24、在一个实施例中,所述基于所述升降类型、所述第二总字节数和所述上一次的预留字节数,确定smbios表的预留字节数,包括:

25、若升降类型为升值,基于所述第二总字节数和预设的降比例,确定第五字节数,根据所述上一次的预留字节数和所述第五字节数确定smbios表的预留字节数;

26、若升降类型为降值,基于所述第二总字节数和预设的升比例,确定第六字节数,根据所述上一次的预留字节数和所述第六字节数确定smbios表的预留字节数。

27、在一个实施例中,配置多个第一更新类型的更新顺序,相应地,在bios的dxe启动阶段中,对smbios表上的第一更新类型的信息进行更新,包括:

28、在bios的dxe启动阶段中,基于所述更新顺序,分别获取各个第一更新类型的新信息,将所述新信息对smbios表上的第一更新类型的原信息进行更新。

29、在一个实施例中,第一更新类型为类型0、1、2、3,通过ipmi协议获取系统下bmc的fru信息,基于所述fru信息获得类型0、1、2、3的第一内容。

30、在一个实施例中,所述确定smbios表上的第一更新类型和第二更新类型,还包括:

31、确定上一次对smbios表上的第一更新类型的类型信息更新后的第七字节数;

32、基于所述第七字节数和选取比例,确定第八字节数;

33、基于上一次对smbios表上的第一更新类型的类型编号,对第一更新类型的字节数进行累加,确定当前的累加字节数等于或超过第八字节数时,统计字节数已完成累加的多个更新类型作为筛选后的第一更新类型,将未完成累加字节数的更新类型归为第二更新类型。

34、在一个实施例中,所述方法还包括:

35、对smbios表上的第二更新类型的信息进行更新,统计第二更新类型的字节数大于smbios表的预留字节数,则基于统计的第二更新类型的字节数对smbios表的预留字节数进行优化。

36、在一个实施例中,所述方法还包括:

37、使得所述上一次的预留字节数去除所述第五字节数,得到smbios表的预留字节数:

38、使得所述上一次的预留字节数增加所述第六字节数,得到smbios表的预留字节数。

39、本发明还提供一种smbios表的类型信息更新装置,包括:

40、确定模块,用于确定smbios表上的第一更新类型和第二更新类型;所述第一更新类型为类型信息采用动态更新方式的类型;所述第二更新类型为类型信息采用静态更新方式的类型;

41、第一更新模块,用于在bios的dxe启动阶段中,对smbios表上的第一更新类型的信息进行更新;

42、计算模块,用于确定smbios表的预留字节数;

43、第二更新模块,用于在bios的dxe启动阶段结束后,且在进入os阶段前,基于所述预留字节数和所述第二更新类型,对smbios表上的第二更新类型的信息进行更新。

44、本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述smbios表的类型信息更新方法。

45、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述smbios表的类型信息更新方法。

46、本发明提供的一种smbios表的类型信息更新方法、装置、电子设备及介质,通过在bios的dxe启动阶段中对类型信息进行动态更新,以及通过在启动阶段结束后,且在进入os阶段前,由预留字节数保证类型信息的静态更新,从而使更新smbios协议表的资源充足,减少引起系统宕机的问题。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1