技术新讯 > 计算推算,计数设备的制造及其应用技术 > 一种版本升级方法、装置、计算机设备及存储介质与流程  >  正文

一种版本升级方法、装置、计算机设备及存储介质与流程

  • 国知局
  • 2024-09-11 15:05:03

本技术涉及服务器,特别是涉及一种版本升级方法、装置、计算机设备及存储介质。

背景技术:

1、用户通过云端控制器连接至系统中的每个服务器,并根据实际需求,获取服务器的电源供应器(psu)的固件信息,当需要对服务器的psu固件信息进行刷新时,通过远程登录服务器,获取服务器的psu固件信息,并通过人机交互装置编辑该服务器的psu固件信息的刷新进程,在线对该服务器的psu固件进行刷新,避免了需要直接现场接入psu固件的端口,与psu固件的端口物理连接后进行升级操作。操作人员只要通过连接云端控制器,并基于云端控制器连接到各个服务器,获取各个服务器的psu固件信息,做到对psu固件进行升级操作,或刷新操作。

2、传统技术下升级psu虽然具备能够远程升级的优势,但是当psu同时供给多个服务器设备节点时,每个节点的基板管理控制器(bmc)都是相互独立的,当前使用某一个节点a的bmc去升级psu,此时a称之为主节点,而另外b、c等节点的系统是完全独立的,无法感知到psu的升级状态,如果此时b/c等节点对psu进行升级操作,则会导致psu升级失败,并且会导致所有可用于升级psu的节点的bmc报错,甚至由于同时写入数据,造成psu版本出错,以至于无法供电,造成巨大安全隐患,所以当前psu升级只能使用指定单一节点进行版本升级,而且在节点升级失败后需要人工干预,造成处理耗时的问题,存在升级失败机率较大的状况。

技术实现思路

1、基于此,有必要针对上述技术问题,提供一种能够防止多个bmc同时对同一psu升级而导致的psu升级失败或者bmc报错问题,提升psu的版本升级成功的机率的版本升级方法、装置、计算机设备及存储介质。

2、一方面,提供一种版本升级方法,所述方法包括:

3、响应于接收到所述psu的版本升级指令,检测所述psu的状态锁的状态;

4、响应于所述状态锁的状态为解锁状态,通过可编程逻辑器件(cpld)将所述状态锁的状态调整为锁定状态,获取待升级信息并对所述psu进行版本的首次升级操作;

5、响应于首次升级操作完成且升级失败,通过所述cpld将所述状态锁的状态调整为解锁状态;

6、检测所述psu的状态锁的状态,当所述状态锁的状态为锁定状态时,持续检测所述状态锁的状态直至状态调整为解锁状态,当所述状态锁的状态为解锁状态时,读取所述psu的当前版本信息;

7、判断所述psu的当前版本信息与原始版本信息是否一致,并根据判断结果执行重试升级操作或给出升级成功指示。

8、在其中一个实施例中,还包括:

9、响应于接收到所述psu的版本升级指令,检测所述psu的原始版本信息并同步至所述共享内存空间;

10、监测所述psu的升级状态信息并同步至所述共享内存空间,所述升级状态信息包括升级操作完成;

11、解析所述版本升级指令得到待升级信息,并将所述待升级信息同步至所述共享内存空间,所述待升级信息包括目标版本信息以及升级文件;

12、从所述共享内存空间获取所述psu的升级状态信息以及版本信息,所述版本信息包括原始版本信息和目标版本信息。

13、在其中一个实施例中,所述判断所述psu的当前版本信息与原始版本信息是否一致,并根据判断结果执行重试升级操作或给出升级成功指示,包括:

14、响应于所述psu的所述当前版本信息与所述原始版本信息一致,通过当前bmc和/或其他bmc执行重试升级操作;

15、响应于所述psu的所述当前版本信息与所述原始版本信息不一致,则给出升级成功指示。

16、在其中一个实施例中,所述响应于所述psu的所述当前版本信息与所述原始版本信息一致,通过当前bmc和/或其他bmc执行重试升级操作,包括:

17、响应于所述psu的当前版本信息与原始版本信息一致,且所述psu的所述当前版本信息与所述目标版本信息不一致,将所述状态锁的状态调整为锁定状态,通过所述当前bmc和/或所述其他bmc执行重试升级操作;

18、响应于重试升级操作完成且升级成功,退出重试升级操作并给出所述当前bmc或所述其他bmc对应的所述psu的版本升级成功指示。

19、在其中一个实施例中,所述通过当前bmc和/或所述其他bmc执行重试升级操作,包括:

20、响应于重试升级操作预设次数且所述psu的所述当前版本信息与所述原始版本信息一致,判断在首次升级操作后或重试升级操作中是否有所述其他bmc执行升级操作;

21、若无所述其他bmc参与,则将处于静默状态的多个bmc加入升级备选列表,从所述升级备选列表中选择一个bmc代替执行升级操作;

22、若有所述其他bmc参与,将所有参与过升级的所述其他bmc加入升级备选列表,从所述升级备选列表中选择一个参与过升级的所述其他bmc执行升级操作。

23、在其中一个实施例中,所述若有所述其他bmc参与,将所有参与过升级的所述其他bmc加入升级备选列表,从所述升级备选列表中选择一个参与过升级的所述其他bmc执行升级操作,包括:

24、获取所有参与过升级的bmc所对应的目标版本信息,并比较各目标版本信息是否相同;

25、响应于各目标版本信息不同,按照各bmc对应目标版本信息的高低顺序依次选取所述升级备选列表中一个参与过升级的所述其他bmc作为目标bmc,以所述目标bmc所对应的目标版本信息进行升级操作;

26、判断所述目标bmc所对应的目标版本信息的升级操作是否成功,若升级成功,则给出所述目标bmc对应的所述psu的版本升级成功指示;若升级失败,则按照所有目标版本信息的高低顺序依次选取所述升级备选列表中一个参与过升级的所述其他bmc作为目标bmc,代替所述当前bmc执行所述当前bmc所对应的目标版本信息进行升级操作;

27、响应于各目标版本信息相同,获取在所述当前bmc首次升级操作以及重试升级操作过程中所述其他bmc参与升级操作的时间节点,按照时间节点的先后顺序依次选取所述升级备选列表中一个参与过升级的所述其他bmc作为目标bmc,以目标bmc所对应的目标版本信息进行升级操作。

28、在其中一个实施例中,所述响应于所述psu的所述当前版本信息与所述原始版本信息不一致,则给出升级成功指示,包括:

29、响应于所述psu的所述当前版本信息与所述原始版本信息不一致,且所述psu的当前版本信息与所述目标版本信息不一致,退出升级操作则给出所述其他bmc对应的所述psu的版本升级成功指示。

30、另一方面,提供了一种版本升级装置,所述装置包括:

31、检测模块,用于响应于接收到所述psu的版本升级指令,检测所述psu的状态锁的状态;

32、升级操作模块,用于响应于状态锁的状态为解锁状态,通过cpld将状态锁的状态调整为锁定状态,获取待升级信息并对psu进行版本的首次升级操作;

33、状态锁控制模块,用于响应于首次升级操作完成且升级失败,通过所述cpld将所述状态锁的状态调整为解锁状态;以及用于检测所述psu的状态锁的状态,当所述状态锁的状态为锁定状态时,持续检测所述状态锁的状态直至状态调整为解锁状态,当所述状态锁的状态为解锁状态时,读取所述psu的当前版本信息;

34、判断模块,用于判断所述psu的当前版本信息与原始版本信息是否一致,并根据判断结果执行重试升级操作或给出升级成功指示。

35、再一方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种版本升级方法。

36、又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种版本升级方法。

37、上述版本升级方法、装置、计算机设备及存储介质,通过cpld将多个bmc与psu之间的信息进行同步,当前bmc能够获取psu的版本升级指令,根据版本升级指令,当前bmc对psu进行升级操作时,设置psu的状态锁为锁定状态,此时其他bmc无法对psu进行升级操作,仅为当前bmc进行升级操作,确保当前bmc在升级操作过程中不受其他bmc的干扰,实现了防止多节点的bmc同时对同一psu升级而导致的psu升级失败或者多个bmc报错问题;当前bmc在首次升级操作完成且升级失败后,状态锁调整为解锁状态,等待一段时间,再次检测到状态锁为锁定状态时,即其他bmc参与进行选择性的升级操作,能够满足在当前bmc的升级线程中接入其他bmc对psu进行升级操作的需求,在当前bmc的首次升级操作完成且失败后,经过当前bmc的重试升级操作和/或其他bmc的重试升级操作,提升psu最终版本升级成功的机率。

本文地址:https://www.jishuxx.com/zhuanli/20240911/293123.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。