本发明实施例涉及服务器应用技术领域,特别是涉及一种整机柜服务器多级之间刷新进度获取方法、装置、设备及计算机可读存储介质。
背景技术
随着用户对服务器性能需求的提高,服务器计算节点的需求数量也越来越多。整机柜服务器在对节点的集成和管理上,与传统服务器相比具有很大的优势,广泛应用在各行各业。
整机柜服务器采用集中供电、集中散热、统一管理计算节点,实现计算资源和存储资源的模块化设计,使得用户对于计算节点的更新和维护更加方便。在出现新的固件版本时,整机柜服务器可以批量刷新批量相关固件的升级版本,不仅节省了相关维护人员的大量时间,还可防止了漏刷、误刷版本等情况。
尽管整机柜服务器的批量更新固件版本可以提升整机柜服务器的刷新效率,但是,由于整机柜服务器的计算节点一般都不少于8个,不同的计算节点的固件版本更新时间需要几分钟或十几分钟不等,不同的计算节点的固件刷新进度显然不同,为了及时处理各计算节点的固件更新出现的问题(例如刷新失败或刷新异常等),避免出现用户与服务器管理之间的联系的问题,需要准确获取各固件刷新过程中的情况。
相关技术可采用二级监控系统如cmc(chassismanagementcontroller,机箱管理控制器),主动向计算节点监控系统bmc(baseboardmanagementcontroller,基板管理控制器)获取更新进度和情况的机制。这样,用户便可以更好的对服务器进行管理,在服务器的整机柜批量升级的情况下,时时了解计算节点固件的更新状态,以便出现问题,可以及时处理。但是,由于cmc监控管理多个计算节点,在信息的获取中,极易出现中断。若在判断节点固件升级的重要关键点如失败时、更新完毕时,出现通信中断,当通信再次连接时,有可能错过该信息,而导致一些信息的误判。
技术实现要素:
本公开实施例提供了一种整机柜服务器多级之间刷新进度获取方法、装置、设备及计算机可读存储介质,准确获得整机柜服务器各计算节点的固件更新状态信息,保证固件升级的完整性,提升整机柜服务器可控性和稳定性。
为解决上述技术问题,本发明实施例提供以下技术方案:
本发明实施例一方面提供了一种整机柜服务器多级之间刷新进度获取方法,基于cmc,包括:
获取待升级固件节点的bmc主动发送的固件版本更新进度信息;
判断所述更新进度信息是否为版本升级成功信息;
若是,则向所述bmc反馈信息接收成功的指令,以使所述bmc进行固件重启。
可选的,所述待升级固件节点有多个,在所述判断所述更新进度信息是否为版本升级成功信息之后,还包括:
判断各待升级固件节点的更新进度信息是否均为版本升级成功信息;
若是,则切出升级模式。
可选的,所述向所述bmc反馈信息接收成功的指令包括:
设置标识信息,向所述bmc反馈包含所述标识信息的指令;
其中,所述标识信息用于表示成功接收所述bmc发送的版本升级成功信息。
本发明实施例还提供了一种整机柜服务器多级之间刷新进度获取装置,包括:
进度信息接收模块,用于获取待升级固件节点的bmc主动发送的固件版本更新进度信息;
升级完成判断模块,用于判断所述更新进度信息是否为版本升级成功信息;
信息反馈模块,用于在所述更新进度信息为版本升级成功信息,则向所述bmc反馈信息接收成功的指令,以使所述bmc进行固件重启。
本发明实施例另一方面提供了一种整机柜服务器多级之间刷新进度获取方法,基于bmc,包括:
监控固件的版本更新进度;
将所述固件的版本更新进度主动发送至cmc;
判断所述固件的版本更新是否成功完成;
若是,则向所述cmc发送版本升级成功的信息,并发送重启所述固件的指令。
可选的,所述发送重启所述固件的指令包括:
判断是否收到所述cmc反馈的信息接收成功的指令;
若是,则发送重启所述固件的指令;
若否,则再次向所述cmc发送版本升级成功的信息。
可选的,在所述再次向所述cmc发送版本升级成功的信息之后,还包括:
统计向所述cmc发送版本升级成功的信息的次数;
判断是否超过预设次数阈值;
若是,则发送重启所述固件的指令;
若否,则再次向所述cmc发送版本升级成功的信息。
本发明实施例还提供了一种整机柜服务器多级之间刷新进度获取装置,包括:
监控模块,用于监控固件的版本更新进度;
更新进度发送模块,用于将所述固件的版本更新进度主动发送至cmc;
判断模块,用于判断所述固件的版本更新是否成功完成;
更新成功信息发送模块,用于在所述固件的版本更新成功完成,向所述cmc发送版本升级成功的信息,
固件重启模块,用于在所述固件的版本更新成功完成,发送重启所述固件的指令。
本发明实施例还提供了一种整机柜服务器多级之间刷新进度获取设备,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如前任一项所述整机柜服务器多级之间刷新进度获取方法的步骤。
本发明实施例最后还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有整机柜服务器多级之间刷新进度获取程序,所述整机柜服务器多级之间刷新进度获取程序被处理器执行时实现如前任一项所述整机柜服务器多级之间刷新进度获取方法的步骤。
本发明实施例提供了一种整机柜服务器多级之间刷新进度获取方法,bmc监控需要升级版本的固件的更新进度,并主动将更新进度信息发送至cmc,在cmc接收到固件更新完成的信息后,向bmc反馈成功接收到该信息的指令,bmc在固件更新完成后,对固件进行重启。本申请提供的技术方案的优点在于,bmc将监控的固件更新进度信息主动发送至cmc,在接收到固件更新完成之后,进行固件重启,有效避免了通信中断时关键点信息易错过导致信息误判现象的发生,准确获得了整机柜服务器各计算节点的固件更新状态信息,保证升级固件的完整性,有利于提升整机柜服务器可控性和稳定性。
此外,本发明实施例还针对整机柜服务器多级之间刷新进度获取方法提供了相应的实现装置、设备及计算机可读存储介质,进一步使得所述方法更具有实用性,所述装置、设备及计算机可读存储介质具有相应的优点。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
为了更清楚的说明本发明实施例或相关技术的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种整机柜服务器多级之间刷新进度获取方法的交互过程示意图;
图2为本发明实施例提供的另一种整机柜服务器多级之间刷新进度获取方法的交互过程示意图;
图3为本发明实施例提供的整机柜服务器多级之间刷新进度获取装置的一种具体实施方式结构图;
图4为本发明实施例提供的整机柜服务器多级之间刷新进度获取装置的另一种具体实施方式结构图;
图5为本发明实施例提供的整机柜服务器多级之间刷新进度获取装置的再一种具体实施方式结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
在介绍了本发明实施例的技术方案后,下面详细的说明本申请的各种非限制性实施方式。
首先参见图1,图1为本发明实施例提供的一种整机柜服务器多级之间刷新进度获取方法的交互过程示意图,本发明实施例可包括以下内容:
s101:bmc监控固件的版本更新进度,内部获取固件版本的更新进度信息。
cmc进行批量服务器相关固件的更新时,整机柜服务器的各计算节点bmc和cmc处于正常工作状态,且二者之间的网络连通性正常,cmc监控正常的情况下,在进入更新固件模式后,bmc可实时监控需要更新的固件,并实时反馈固件版本的更新或升级的进度或者是固件升级的状态,例如固件版本升级成功,固件升级失败,当固件升级失败时,还可将相关的失败原因发送至cmc。
s102:bmc将固件的版本更新进度主动发送至cmc。
在固件更新过程中,bmc会不断给固件发送获取进度的指令,然后将获取到的进度信息发送至cmc。
bmc在获取固件的更新进度或者是将更新进度发送至cmc时,可以每隔固定的时间(例如2s)执行一次,也可实时执行,这均不影响本申请的实现。
s103:cmc接收到版本升级成功信息时,向bmc反馈信息接收成功的指令。
在固件版本升级进度为100%时,表明固件已成功升级,bmc可将固件的版本更新成功信息发送至cmc,cmc在接收该成功信息后,会向bmc反馈已收到固件版本升级成功的信息。
s104:bmc在固件的版本更新完成后,重启固件。
当同时有多个bmc的固件版本需要进行更新,或者是一个bmc的多个固件需要进行版本更新时,cmc在接收到所有的待升级固件节点的更新进度信息均为版本升级成功信息后,切出升级模式,也即等待整机柜的固件全部升级完毕,cmc才可以切出该升级模式。
在本发明实施例提供的技术方案中,bmc将监控的固件更新进度信息主动发送至cmc,在接收到固件更新完成之后,进行固件重启,有效避免了通信中断时关键点信息易错过导致信息误判现象的发生,准确获得了整机柜服务器各计算节点的固件更新状态信息,保证升级固件的完整性,有利于提升整机柜服务器可控性和稳定性。
请参见图2,图2为本发明实施例提供的另一种整机柜服务器多级之间刷新进度获取方法的交互流程示意图,可包括以下内容:
s201:bmc监控固件的版本更新进度,内部获取固件版本的更新进度信息。
s202:bmc将固件的版本更新进度主动发送至cmc。
s203:cmc接收到版本升级成功信息时,设置标识信息,并向bmc反馈包含标识信息的指令。
cmc在接收到关键信息时,例如版本升级成功信息时或者是版本升级失败的信息或者是版本升级异常,可设置不同的标识信息并将该标识信息反馈给bmc,以使bmc知道cmc已获取到固件更新的相关信息。
举例来说,若中途发生异常升级失败或已经升级到100%,cmc在收到这些关键点信息后可设置flag,例如初始状态flag值为0,当收到更新完毕或失败的信号以后,flag值为1,bmc会检测cmc的flag是否为1。若已经设置,bmc将重启固件。
s204:bmc判断是否接收到cmc反馈的信息,若是,则执行s207;若否,则执行s205。
s205:统计向cmc发送版本升级成功的信息的次数。
s206:bmc判断是否超过预设次数阈值,若是,则执行s207,若否,则执行s208。
预设次数阈值例如可为5次。
s207:发送重启固件的指令。
s208:再次向cmc发送版本升级成功的信息。
由上可知,本发明实施例准确获得了整机柜服务器各计算节点的固件更新状态信息,保证升级固件的完整性,有利于提升整机柜服务器可控性和稳定性。
本发明实施例还针对整机柜服务器多级之间刷新进度获取方法提供了相应的实现装置,进一步使得所述方法更具有实用性。下面对本发明实施例提供的整机柜服务器多级之间刷新进度获取装置进行介绍,下文描述的整机柜服务器多级之间刷新进度获取装置与上文描述的整机柜服务器多级之间刷新进度获取方法可相互对应参照。
参见图3,图3为本发明实施例提供的整机柜服务器多级之间刷新进度获取装置在一种具体实施方式下的结构图,基于cmc,该装置可包括:
进度信息接收模块301,用于获取待升级固件节点的bmc主动发送的固件版本更新进度信息。
升级完成判断模块302,用于判断所述更新进度信息是否为版本升级成功信息。
信息反馈模块303,用于在所述更新进度信息为版本升级成功信息,则向所述bmc反馈信息接收成功的指令,以使所述bmc进行固件重启。
可选的,在本实施例的一些实施方式中,请参阅图4,所述装置例如还可以包括升级模式切出模块304,用于在各待升级固件节点的更新进度信息均为版本升级成功信息时,切出升级模式。
所述信息反馈模块303还可为设置标识信息,向bmc反馈包含所述标识信息的指令;其中,标识信息用于表示成功接收bmc发送的版本升级成功信息的模块。
参见图5,图5为本发明实施例提供的整机柜服务器多级之间刷新进度获取装置在再一种具体实施方式下的结构图,基于bmc,该装置可包括:
监控模块501,用于监控固件的版本更新进度。
更新进度发送模块502,用于将固件的版本更新进度主动发送至cmc。
判断模块503,用于判断固件的版本更新是否成功完成。
更新成功信息发送模块504,用于在固件的版本更新成功完成,向cmc发送版本升级成功的信息。
固件重启模块504,用于在固件的版本更新成功完成,发送重启固件的指令。
可选的,在本实施例的另一些实施方式中,所述固件重启模块504可以为判断是否收到cmc反馈的信息接收成功的指令;若是,则发送重启固件的指令;若否,则再次向cmc发送版本升级成功的信息的模块。
此外,所述固件重启模块504例如还可以为统计向cmc发送版本升级成功的信息的次数;判断是否超过预设次数阈值;若是,则发送重启固件的指令;若否,则再次向cmc发送版本升级成功的信息的模块。
本发明实施例所述整机柜服务器多级之间刷新进度获取装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例准确获得了整机柜服务器各计算节点的固件更新状态信息,保证升级固件的完整性,有利于提升整机柜服务器可控性和稳定性。
本发明实施例还提供了一种整机柜服务器多级之间刷新进度获取设备,具体可包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序以实现如上任意一实施例所述整机柜服务器多级之间刷新进度获取方法的步骤。
本发明实施例所述整机柜服务器多级之间刷新进度获取设备的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例准确获得了整机柜服务器各计算节点的固件更新状态信息,保证升级固件的完整性,有利于提升整机柜服务器可控性和稳定性。
本发明实施例还提供了一种计算机可读存储介质,存储有整机柜服务器多级之间刷新进度获取程序,所述整机柜服务器多级之间刷新进度获取程序被处理器执行时如上任意一实施例所述整机柜服务器多级之间刷新进度获取方法的步骤。
本发明实施例所述计算机可读存储介质的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例准确获得了整机柜服务器各计算节点的固件更新状态信息,保证升级固件的完整性,有利于提升整机柜服务器可控性和稳定性。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的一种整机柜服务器多级之间刷新进度获取方法、装置、设备、系统及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。