系统固件更新方法与使用该方法的服务器系统的制作方法

xiaoxiao2020-7-23  5


专利名称::系统固件更新方法与使用该方法的服务器系统的制作方法
技术领域
:本发明涉及一种固件更新方法,特别涉及一种系统固件更新方法与使用该方法的服务器系统。
背景技术
:随着科技的发展,通过因特网能够使得世界各地的计算机进行连接。一台计算机通过网络连线便能够与另一台计算机进行数据的交换、存取等动作。在客户端与服务器系统架构上,客户端与服务器便是通过网络来进行沟通。一般来说,服务器系统可配置有多个节点,且每一个节点同时运行多个虚拟机器(VirtualMachine,VM),藉以提供给每一使用者独立的运作环境。并且,每个节点可视为各自独立的计算机,也即各节点具有记忆体、储存空间、运算能力与网络连接功能。因此,各节点可以运行独自的操作系统,且各节点之间也可以通过网络交换器(Switch)进行沟通与数据传输。在服务器系统运行后,会因为有新的固件版本而需要对节点进行固件的更新。在现有技术中,服务器系统在接收到固件更新时,便会对需要更新的节点进行固件更新,并且固件更新的方式为在某一节点进行固件更新时,会先将此节点由服务器系统的运作中隔离出来,且于固件更新完成后再将此节点加入服务器系统的运作。然而,若服务器系统进行大量节点的固件更新,或是于节点的负载较大的情况下进行固件更新,将会影响服务器系统的运作性能,而造成使用的不便利性。
发明内容鉴于以上的问题,本发明的目的在于提供一种系统固件更新方法与使用其的服务器系统,藉以避免影响服务器系统的运作效率的情况下,对服务器系统完成所需的固件更新。本发明的一种系统固件更新方法,适于一服务器系统,此服务器系统具有多个节点,例如为提供基础设施即服务(InfrastructureasaService,IaaS)的货柜式(Container)数据中心(DataCenter)。此系统固件更新方法包括下列步骤。接收固件更新封装数据。依据固件更新封装数据与前述多个节点各自对应的节点信息,以查表的方式搜寻出需要更新的节点。依据更新顺序策略,排列出节点各自对应的优先顺序,并以优先顺序建立更新列表。依据更新列表,依序对节点进行固件更新,并更新节点各自对应的节点信息与更新列表。在一实施例中,前述依序对节点进行固件更新的步骤包括下列步骤。依据更新列表,由多个节点中选择优先顺序最高的节点作为更新节点。对更新节点进行更新,并更新更新节点所对应的节点信息,将更新节点由更新列表中移除。依据更新列表,检测所有节点是否更新完成。若检测所有节点未更新完成,判断节点更新的数量是否达到临界值。若判断节点的更新数量未达到临界值,则回到依据更新列表,由节点中选择优先顺序最高的节点作为更新节点的步骤。若判断节点的更新数量达到临界值,等待预定时间,再回到依据更新列表,由节点中选择优先顺序最高的节点作为更新节点的步骤。在一实施例中,前述系统固件更新方法。判断更新节点的负载量是否超过预设值。若判断更新节点的负载量超过预设值,则回到依据更新列表,由节点中选择优先顺序最高的节点作为更新节点的步骤。若判断更新节点的负载量未超过预设值,则进入对更新节点进行更新的步骤。在一实施例中,前述对更新节点进行更新的步骤包括下列步骤。判断更新节点是否运行操作系统。若判断更新节点运行操作系统,利用固件更新封装数据的固件更新数据执行线上固件更新,以对更新节点进行更新。若判断更新节点未运行操作系统,利用固件更新封装数据的映像文件开启操作系统,以执行离线固件更新来对更新节点进行更新。本发明的一种服务器系统,包括多个节点、数据库与更新模块。前述多个节点各自具有节点信息。数据库用于储存前述节点信息。更新模块耦接前述多个节点与数据库,用以接收固件更新封装数据,并依据固件更新封装数据与节点信息,以查表的方式搜寻出需要更新的节点,再依据更新顺序策略,排列出节点各自对应的优先顺序,且以优先顺序建立更新列表,并将更新列表储存于数据库,以及依据更新列表,依序对节点进行固件更新,并更新节点信息与更新列表。在一实施例中,前述更新模块更依据更新列表,由节点中选择优先顺序最高的节点作为更新节点,以对更新节点进行更新,并更新更新节点所对应的节点信息以及将更新节点由更新列表中移除,且更新模块再依据更新列表,检测所有节点是否更新完成,其中若检测所有节点未更新完成,更新模块则判断节点更新的数量是否达到临界值,若判断节点的更新数量未达到临界值,更新模块则再次依据更新列表,由节点中选择优先顺序最高的节点作为更新节点,以对更新节点进行更新,直到所有节点更新完成为止,而若判断节点的更新数量达到临界值时,更新模块等待预定时间,再依据更新列表,由节点中选择优先顺序最高的节点作为更新节点,以对更新节点进行更新,直到所有节点更新完成为止。在一实施例中,前述更新模块判断更新节点的负载量是否超过预设值,若判断更新节点的负载量超过预设值,更新模块再次依据更新列表,由节点中选择优先顺序最高的节点作为更新节点,而若判断更新节点的负载量未超过预设值时,则更新模块对更新节点进行更新。在一实施例中,前述更新模块判断更新节点是否运行操作系统,若判断更新节点运行操作系统,更新模块利用固件更新封装数据的固件更新数据执行线上固件更新,以对更新节点进行更新,而若判断更新节点未运行操作系统时,更新模块利用固件更新封装数据的映像文件开启操作系统,以执行离线固件更新来对更新节点进行更新。本发明的一种系统固件更新方法与使用该方法的服务器系统,通过接收使用者上载固件更新封装数据,并据以搜寻出需要更新的节点且排列出这节点的更新顺序,以自动完成节点的线上更新或离线更新。如此一来,可有效增加服务器系统的使用便利性。另外,还可依据更新节点的负载量以及已完成更新的节点的数量而决定是否更新,以避免影响服务器系统的运作效能。以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。图1为本发明的服务器系统的方框图2为本发明的系统固件更新方法的流程图3为本发明的另一系统固件更新方法的流程图。其中,附图标记100服务器系统110_1110_N节点120数据库130更新模块具体实施方式下面结合附图对本发明的结构原理和工作原理作具体的描述:请参考图1所示,其为本发明的服务器系统的方框图。服务器系统100包括多个节点110_1110_N、数据库120与更新模块130,其中N为大于I的正整数。服务器系统100例如为提供基础设施即服务(InfrastructureasaService,IaaS)的货柜式(Container)数据中心(DataCenter)。节点110_1110_N各自具有节点信息。其中,节点信息例如包括节点的产品编号,例如通用唯一识别码(UniversallyUniqueIdentifier,UUID)、节点的基本输入输出系统(BasicInputOutputSystem,BIOS)的固件版本与节点的基板管理控制器(BaseboardManagementController,BMC)的固件版本。举例来说,节点110_1的节点信息例如以「110_1、版本1、版本2」表示,其余节点110_2110_N则类推。数据库120用于储存节点110_1110_N的节点信息。在本实施例中,例如可通过基板管理控制器取得各节点110_1110_N的节点信息,并将各节点信息储存于数据库120。更新模块130耦接节点110_1110_N与数据库120,用以接收固件更新封装数据。其中,固件更新封装数据可由客户端通过网络上载至服务器系统100的更新模块,以使更新模块可利用固件更新封装数据对服务器系统100进行固件更新。接着,更新模块130会依据固件更新封装数据与前述节点信息,以查表的方式搜寻出需要更新的节点。其中,固件更新封装数据例如具有更新数据列表,而更新数据列表中包括有欲更新的节点的产品编号与其固件版本。因此,更新模块则可依据前述的更新数据列表与节点信息,而搜寻出需要更新的节点。为了方便说明,需要更新的节点以节点110_1、110_2与110_3为例。在找到需要更新的节点后,更新模块130依据更新顺序策略,排列出节点110_1110_3各自对应的优先顺序,且以优先顺序建立更新列表并将更新列表储存于数据库120。在本实施例中,节点110_1110_1^可分为服务节点(ServiceNode)、运算节点(ComputingNode)与储存节点(StorageNode),其中服务节点用以提供相关服务与数据给客户端,运算节点用以进行数据运算,储存节点用以储存数据。举例来说,前述的更新顺序策略例如依序为服务节点、储存节点与计算节点,并且节点110_1例如为储存节点,节点110_2例如为运算节点,节点110_3例如为服务节点。因此,通过上述的更新顺序策略,更新模块130所排列出的更新顺序为节点110_3、110_1与110_2,并以此更新顺序建立于更新列表中。之后,更新模块130再依据更新列表,依序对节点110_3、110_1与110_2进行固件更新,并更新节点110_3、110_1与110_2的节点信息以及更新更新列表。如此一来,本实施例的服务器系统100可在效率影响较小的情况下,自动对需要进行固件更新的节点完成固件更新。以下,将进一步说明本实施例的更新模块130进行固件更新的详细操作。首先,更新模块130会依据更新列表,由节点110_1110_3中选择优先顺序最高的节点作为更新节点,以对更新节点进行更新。由于节点110_3的优先顺序为最高,故更新模块130会优先选择节点110_3作为更新节点,以对更新节点110_3进行更新。并且,于固件更新完成后,更新模块130会更新节点110_3的节点信息,例如「110_3、版本1、版本3」。并且,将更新节点110_3由更新列表中移除,因此,更新列表中只剩节点110_1、110_2。接着,更新模块130依据更新列表,检测所有节点是否更新完成。由于更新列表中仍存有节点110_1、110_2,因此更新模块130会检测所有节点未更新完成,则更新模块130会进一步判断节点更新的数量是否达到临界值。由于在节点进行固件更新时,必须将更新节点从服务器系统100的运作中隔离出来,并于固件更新完成后再将更新节点加入服务器系统的运作,如此将可能会降低服务器系统100的运作效率。由此可知,大量进行节点的固件更新,可能会大幅降低服务器系统100的运作效率。因此,使用者可设定每次固件更新的节点的数量(即临界值),藉以避免影响服务器系统100的运作效率。假设临界值设定为2,表示每此固件更新的节点的数量上限为2个,但本发明不以此为限。由于前述仅进行节点110_3的固件更新,故更新模块130会判断节点的更新数量并未达到临界值。接着,更新模块130再次依据更新列表,由节点110_1110_2中选择优先顺序最高的节点作为更新节点。由于更新列表中仅剩节点110_1、110_2,且节点110_1的优先顺序高于节点110_2,故更新模块130会选择节点110_1作为更新节点,以对节点110_1进行更新。之后,更新模块110会更新节点110_1的节点信息,例如「110_1、版本1、版本3」。之后,更新模块130会持续依据更新列表,选择需要更新的节点中优先顺序最高的节点,以进行固件更新,直到所有节点更新完成为止。另一方面,当更新模块130更新完节点110_3、110_1时,则节点完成更新的数量已达到2个。此时,更新模块130会判断出节点的更新数量达到临界值,故更新模块130会等待预定时间,再依据更新列表,由节点中选择优先顺序最高的节点作为更新节点,以对更新节点进行更新,直到所有节点更新完成为止。其中,前述预定时间可由使用者自行调整,例如6小时、半天或一天,藉以避免大量进行节点的固件更新而降低服务器系统100的运作效率。更新模块130更可判断更新节点的负载量是否超过预设值。其中,前述预设值例如设定为节点满负载量的60%。也就是说,更新节点的负载量要低于其满负载量的60%,更新模块130才予以对更新节点进行固件更新,进而减少对服务器系统100的运作效率的影响。若判断更新节点的负载量超过预设值,表示此节点在进行大量数据的运算或传输。为了不影响服务器系统100的运作效率,因此更新模块130再次依据更新列表,继续由节点中选择优先顺序最高的节点作为更新节点。另一方面,若判断更新节点的负载量未超过预设值,则更新模块130便可对更新节点进行更新。如此一来,可避免节点于高负载的情况下进行固件更新,而降低服务器系统100的运作效率。此外,在对更新节点进行固件更新时,更新模块130更可判断更新节点是否运行操作系统(OS),也即判断更新节点为正常运作模式或为待机模式。若判断更新节点运行操作系统,表示更新节点为正常运作模式,更新模块130利用固件更新封装数据的固件更新数据执行线上固件更新,以对更新节点进行更新。举例来说,更新模块130还可进一步判断更新固件的版本的种类,例如基本输入输出系统或基板管理控制器的固件更新。若判断出固件更新的种类为基本输入输出系统或基板管理控制器,更新模块130会将固件更新封装数据解开为固件数据更新工具,以便将基本输入输出系统或基板管理控制器的固件更新数据更新至更新节点。并且,于固件更新完成后,将更新节点重启动(Reboot),并重置(Reset)基板管理控制器,以便更新节点的基本输入输出系统或基板管理控制器利用新的固件进行运作。另外,基本输入输出系统更新完成后,会传送智能平台管理界面(IntelligentPlatformManagementInterface,IPMI)指令给基板管理控制器以告知其更新状态,以便更新更新节点的节点信息以及更新列表。若判断出固件更新的种类为基板管理控制器,更新模块130会由固件更新封装数据中取出基板管理控制器的固件更新数据,再利用智能平台管理界面指令去执行基板管理控制器的固件更新。并且,于固件更新完成后,重置更新节点的基板管理控制器,以便更新节点的基板管理控制器运用新的固件进行运作。另一方面,若判断更新节点未运行操作系统,表示更新节点为待机模式,此时更新模块利用固件更新封装数据的映像文件(isofile)开启操作系统,以执行离线固件更新来对更新节点进行更新。其中,前述映像文件可包括可开机操作系统(BootableOS)与自动执行文件,而更新节点可运行前述操作系统。举例来说,更新模块130更可进一步判断更新固件的版本的种类,例如基本输入输出系统或基板管理控制器的固件更新。若判断出固件更新的种类为基本输入输出系统,更新模块130会挂载固件更新封装数据的映像文件给更新节点,以进行更新节点由此映像文件开机,并于开机的过程中执行前述自动执行文件,以更新基本输入输出系统或基板管理控制器的固件(就实作而言,例如,更新模块130会通过更新节点的基板管理控制器将固件更新封装数据的映像文件设成作基板管理控制器的虚拟光盘机的光盘片,并通过更新节点的基板管理控制器令更新节点由此虚拟光盘机启动操作系统,但并不以此为限)。并且,于固件更新完成后,将更新节点重启动(Reboot),并重置(Reset)基板管理控制器,以便更新节点的基本输入输出系统或基板管理控制器利用新的固件进行运作。另夕卜,基本输入输出系统更新完成后,会传送智能平台管理界面指令给基板管理控制器以告知其更新状态,以便更新更新节点的节点信息以及更新列表。若判断出固件更新的种类为基板管理控制器,更新模块130会由固件更新封装数据中取出基板管理控制器的固件更新数据,再利用智能平台管理界面指令去执行基板管理控制器的固件更新。并且,于固件更新完成后,重置更新节点的基板管理控制器,以便更新节点的基板管理控制器运用新的固件进行运作。请参考图2所示,其为本发明的系统固件更新方法的流程图。本实施例的系统固件更新方法适于一服务器系统,且此服务器系统具有多个节点。在步骤S210中,接收固件更新封装数据。在步骤S220中,依据固件更新封装数据与多个节点各自对应的节点信息,以查表的方式搜寻出需要更新的多个节点。在步骤S230中,依据更新顺序策略,排列出多个节点各自对应的优先顺序,并以优先顺序建立更新列表。在步骤S240中,依据更新列表,依序对多个节点进行固件更新,并更新多个节点各自对应的节点信息与更新列表。请参考图3所示,其为本发明的另一系统固件更新方法的流程图。本实施例的系统固件更新方法适于一服务器系统,且此服务器系统具有多个节点。在步骤S302中,接收固件更新封装数据。在步骤S304中,依据固件更新封装数据与多个节点各自对应的节点信息,以查表的方式搜寻出需要更新的多个节点。在步骤S306中,依据更新顺序策略,排列出多个节点各自对应的优先顺序,并以优先顺序建立更新列表。在步骤S308中,依据更新列表,由多个节点中选择优先顺序最高的节点作为更新节点。在步骤S310中,判断更新节点的负载量是否超过预设值。若判断更新节点的负载量超过预设值,则回到步骤S308,直到判断更新节点的负载量未超过预设值为止。另一方面,若判断更新节点的负载量未超过预设值,则进入步骤S312,对更新节点进行更新。在步骤S314,更新更新节点所对应的节点信息,将更新节点由更新列表中移除。在步骤S316中,依据更新列表,检测所有节点是否更新完成。若检测所有节点都已更新完成,则结束此系统固件更新的流程。另一方面,若检测所有节点未更新完成,则进入步骤S318,判断节点更新的数量是否达到临界值。若判断节点的更新数量未达到临界值,则回到步骤S308。若判断节点的更新数量达到该临界值,则进入步骤S320中,等待预定时间。接着,再回到步骤S308。另外,在步骤S312对更新节点进行更新还包括下列步骤S322S326。在步骤S322中,判断更新节点是否运行操作系统。若判断更新节点运行操作系统,则进入步骤S324,利用固件更新封装数据的固件更新数据执行线上固件更新,以对更新节点进行更新。若判断更新节点未运行操作系统,则进入步骤S326,利用固件更新封装数据的映像文件开启操作系统,以执行离线固件更新来对更新节点进行更新。本发明的实施例的系统固件更新方法与使用该方法的服务器系统,其通过接收使用者上载固件更新封装数据(具有线上更新的数据与离线更新的映像文件),并据以搜寻出需要更新的节点且排列出这节点的更新顺序,以自动完成节点的线上更新或离线更新。如此一来,可有效增加服务器系统的使用便利性。另外,还可依据更新节点的负载量以及已完成更新的节点的数量而决定是否更新,以避免影响服务器系统的运作效能。当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。权利要求1.一种系统固件更新方法,适于一服务器系统,该服务器系统具有多个节点,其特征在于,该系统固件更新方法包括:接收一固件更新封装数据;依据该固件更新封装数据与该些节点各自对应的一节点信息,以查表的方式搜寻出需要更新的该些节点;依据一更新顺序策略,排列出该些节点各自对应的一优先顺序,并以该优先顺序建立一更新列表;以及依据该更新列表,依序对该些节点进行固件更新,并更新该些节点各自对应的该节点信息与该更新列表。2.根据权利要求1所述的系统固件更新方法,其特征在于,依序对该些节点进行固件更新的步骤包括:依据该更新列表,由该些节点中选择优先顺序最高的该节点作为一更新节点;对该更新节点进行更新,并更新该更新节点所对应的该节点信息,将该更新节点由该更新列表中移除;依据该更新列表,检测所有该些节点是否更新完成;若检测所有该些节点未更新完成,判断该些节点更新的数量是否达到一临界值;若判断该些节点的更新数量未达到该临界值,则回到依据该更新列表,由该些节点中选择优先顺序最高的该节点作为该更新节点的步骤;以及若判断该些节点的更新数量达到该临界值,等待一预定时间,再回到依据该更新列表,由该些节点中选择优先顺序最高的该节点作为该更新节点的步骤。3.根据权利要求2所述的系统固件更新方法,其特征在于,还包括:判断该更新节点的负载量是否超过一预设值;若判断该更新节点的负载量超过该预设值,则回到依据该更新列表,由该些节点中选择优先顺序最高的该节点作为该更新节点的步骤;以及若判断该更新节点的负载量未超过该预设值,则进入对该更新节点进行更新的步骤。4.根据权利要求2所述的系统固件更新方法,其特征在于,对该更新节点进行更新的步骤包括:判断该更新节点是否运行一操作系统;若判断该更新节点运行该操作系统,利用该固件更新封装数据的一固件更新数据执行一线上固件更新,以对该更新节点进行更新;以及若判断该更新节点未运行该操作系统,利用该固件更新封装数据的一映像文件开启该操作系统,以执行一离线固件更新来对该更新节点进行更新。5.一种服务器系统,其特征在于,包括:多个节点,该些节点各自具有一节点信息;一数据库,用于储存该些节点信息;以及一更新模块,耦接该些节点与该数据库,用以接收一固件更新封装数据,并依据该固件更新封装数据与该些节点信息,以查表的方式搜寻出需要更新的该些节点,再依据一更新顺序策略,排列出该些节点各自对应的一优先顺序,且以该优先顺序建立一更新列表并将该更新列表储存于该数据库,以及依据该更新列表,依序对该些节点进行固件更新,并更新该些节点信息与该更新列表。6.根据权利要求5所述的服务器系统,其特征在于,该更新模块还依据该更新列表,由该些节点中选择优先顺序最高的该节点作为一更新节点,以对该更新节点进行更新,并更新该更新节点所对应的该节点信息以及将该更新节点由该更新列表中移除,且该更新模块再依据该更新列表,检测所有该些节点是否更新完成,其中若检测所有该些节点未更新完成,该更新模块则判断该些节点更新的数量是否达到一临界值,若判断该些节点的更新数量未达到该临界值,该更新模块则再次依据该更新列表,由该些节点中选择优先顺序最高的该节点作为该更新节点,以对该更新节点进行更新,直到所有该些节点更新完成为止,而当判断该些节点的更新数量达到该临界值时,该更新模块等待一预定时间,再依据该更新列表,由该些节点中选择优先顺序最高的该节点作为该更新节点,以对该更新节点进行更新,直到所有该些节点更新完成为止。7.根据权利要求6所述的服务器系统,其特征在于,该更新模块判断该更新节点的负载量是否超过一预设值,若判断该更新节点的负载量超过该预设值,该更新模块再次依据该更新列表,由该些节点中选择优先顺序最高的该节点作为该更新节点,而若判断该更新节点的负载量未超过该预设值时,则该更新模块对该更新节点进行更新。8.根据权利要求6所述的服务器系统,其特征在于,该更新模块判断该更新节点是否运行一操作系统,若判断该更新节点运行该操作系统,该更新模块利用该固件更新封装数据的一固件更新数据执行一线上固件更新,以对该更新节点进行更新,而若判断该更新节点未运行该操作系统时,该更新模块利用该固件更新封装数据的一映像文件启动该操作系统,以执行一离线固件更新来对该更新节点进行更新。全文摘要一种系统固件更新方法与使用该方法的服务器系统,系统固件更新方法适于服务器系统,此服务器系统具有多个节点。此系统固件更新方法包括下列步骤。接收固件更新封装数据。依据固件更新封装数据与前述节点各自对应的节点信息,以查表的方式搜寻出需要更新的节点。依据更新顺序策略,排列出节点各自对应的优先顺序,并以优先顺序建立更新列表。依据更新列表,依序对节点进行固件更新,并更新节点各自对应的节点信息与更新列表。文档编号G06F9/445GK103186404SQ201110461358公开日2013年7月3日申请日期2011年12月28日优先权日2011年12月28日发明者卢盈志申请人:英业达股份有限公司

最新回复(0)