CN104679530A - 服务器系统与固件更新方法 - Google Patents

服务器系统与固件更新方法 Download PDF

Info

Publication number
CN104679530A
CN104679530A CN201310610617.0A CN201310610617A CN104679530A CN 104679530 A CN104679530 A CN 104679530A CN 201310610617 A CN201310610617 A CN 201310610617A CN 104679530 A CN104679530 A CN 104679530A
Authority
CN
China
Prior art keywords
node
renewal
encapsulation
data
version
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201310610617.0A
Other languages
English (en)
Other versions
CN104679530B (zh
Inventor
卢盈志
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inventec Pudong Technology Corp
Inventec Corp
Original Assignee
Inventec Pudong Technology Corp
Inventec Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inventec Pudong Technology Corp, Inventec Corp filed Critical Inventec Pudong Technology Corp
Priority to CN201310610617.0A priority Critical patent/CN104679530B/zh
Priority to US14/243,608 priority patent/US9195451B2/en
Publication of CN104679530A publication Critical patent/CN104679530A/zh
Application granted granted Critical
Publication of CN104679530B publication Critical patent/CN104679530B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种服务器系统与固件更新方法,固件更新方法的步骤如下所述。读取组态文件,此组态文件具有对应于服务器系统中的节点的固件封装数据。对组态文件所对应的节点的网络服务器发送通知信号。依据通知信号获得组态文件中的版本注解与更新封装数据。储存版本注解与更新封装数据,并据以获得版本注解与更新封装数据的文件路径。依据文件路径与节点的因特网协定地址,选择性地对节点安装更新封装数据。

Description

服务器系统与固件更新方法
技术领域
本发明涉及一种服务器系统与固件更新方法,且特别涉及一种可自动对所有服务器进行固件更新的服务器系统与固件更新方法。
背景技术
随着科技的发展,通过因特网能够使得世界各地的计算机进行连接。一台计算机通过网络连接便能够与另一台计算机进行数据的交换、存取等动作。在客户端与服务器系统架构上,客户端与服务器便是通过网络来进行沟通。
一般来说,服务器系统可配置有多个节点,且每一个节点同时运行多个虚拟机器(virtual machine,VM),藉以提供给每一使用者独立的运作环境。并且,每个节点可视为各自独立的计算机,亦即各节点具有记忆体、储存空间、运算能力与网络连接功能。因此,各节点可以运行独自的操作系统,且各节点之间也可以通过网络设备进行沟通与数据传输。
在服务器系统架构完毕后,必须对其内的节点完成部署,亦即安装各节点所需的操作系统、软件封装数据与固件封装数据,以使服务器系统运作并提供服务给使用者使用。然而,若当制造商释出某个组态文件且此组态文件具有对应于服务器系统中的某一个节点中某一个硬件的固件封装数据时,服务器系统是无法自动通知所有的节点是否有较新版本的固件封装数据被释出,而无法达到自动更新固件封装数据的目的。
发明内容
有鉴于以上的问题,本发明的目的在于提出一种服务器系统与固件更新方法,于某一版本的组态文件被释出时可自动地对服务器系统中的所有节点进行通知,并对服务器系统中的节点之固件进行更新。
根据本发明一实施例中的一种固件更新方法,此固件更新方法适用于服务器系统(例如机柜式数据中心;Container Data Center)中。此固件更新方法的步骤流程如下所述。读取组态文件,此组态文件具有对应于服务器系统中的节点的固件封装数据。对组态文件所对应的节点的网络服务器发送通知信号。依据通知信号,获得组态文件中的版本注解与更新封装数据。储存版本注解与更新封装数据,并据以获得版本注解与更新封装数据的文件路径。以及依据文件路径与节点的因特网协定地址,选择性地对节点安装更新封装数据。
在一实施例中,于储存版本注解与更新封装数据的步骤之后,更包括依据文件路径与节点的因特网协定地址获得版本注解中的识别信息,此识别信息至少包括固件版本与产品名称其中之一。
承接上述,于依据文件路径与节点的因特网协定地址来对节点安装更新封装数据的步骤之前,更包括依据识别信息与节点的实际识别信息,判断组态文件是否为较新版本,并于判断出组态文件为较新版本时,执行对节点安装更新封装数据的步骤。
承接上述,于判断出组态文件为较新版本的步骤之后,固件更新方法更包括以下所述的步骤流程。依据节点的多个参数而计算出更新优先值,此更新优先值对应于节点的其中一固件,其中所述多个参数包括节点的所有固件的更新封装数据的严重性、节点中所需更新的固件数目、更新所需的时间、更新所需使用的网络频宽与节点的使用率负载。将节点加入至更新散列表中。判断更新散列表中的所有节点的所有更新优先值是否大于更新门槛值,并将大于更新门槛值的所述多个更新优先值所对应的多个节点依序排列至更新队列表中。依据更新队列表中所述多个节点的排列顺序,对这些节点安装更新封装数据。
承接上述,于判断更新散列表中的所有节点的所有更新优先值是否大于更新门槛值的步骤之前,更包括每隔一段预设时间对更新散列表中的所有节点的所有更新优先值加上一组预设值。
根据本发明一实施例中的一种服务器系统,此服务器系统包括至少一节点、载入模块、第一常驻模块、第一数据库以及第二常驻模块。其中,第一常驻模块通讯连接载入模块,第一数据库通讯连接第一常驻模块,第二常驻模块通讯连接于第一常驻模块、第一数据库与所述至少一节点之间。载入模块用以读取组态文件,并于读取到组态文件时发送通知信号,此组态文件具有对应于所述至少一节点至少其中之一的固件封装数据。第一常驻模块用以依据通知信号获得组态文件中的版本注解与更新封装数据。第一数据库用以储存版本注解与更新封装数据,并据以获得版本注解与更新封装数据于第一数据库中的文件路径。第二常驻模块用以依据文件路径与所述至少一节点其中之一的因特网协定地址而选择性地对节点安装更新封装数据。
在一实施例中,服务器系统更包括第二数据库,此第二数据库通讯连接第二常驻模块,此第二数据库用以储存版本注解中的识别信息。其中,此识别信息是由依据文件路径与节点的因特网协定地址所获得,且此识别信息是至少包括固件版本与产品名称其中之一。
承接上述,第二常驻模块更依据第二数据库中的识别信息与节点的实际识别信息,判断组态文件是否为较新版本,并于判断出组态文件为较新版本时,执行对节点安装更新封装数据的处理程序。
承接上述,第二常驻模块于判断出组态文件为较新版本之后,第二常驻模块更依据节点的多个参数而计算出更新优先值,且更新优先值对应于节点的其中一固件。接着,第二常驻模块将节点加入至更新散列表中,并判断更新散列表中的所有节点的所有更新优先值是否大于更新门槛值,并将大于更新门槛值的所述多个更新优先值所对应的多个节点依序排列至更新队列表中,以依据更新队列表中这些节点的排列顺序来对这些节点安装更新封装数据。其中,所述多个参数包括节点的所有固件的更新封装数据的严重性、节点中所需更新的固件数目、更新所需的时间、更新所需使用的网络频宽与节点的使用率负载。
承接上述,于第二常驻模块判断更新散列表中的所有节点的所有更新优先值是否大于更新门槛值之前,第二常驻模更每隔一段预设时间对更新散列表中的所有节点的所有更新优先值加上一个预设值。
综合以上所述,本发明提供一种服务器系统与固件更新方法,此服务器系统与固件更新方法是于节点的某一版本的组态文件被释出时,会自动通知服务器系统中的所有服务器,并且依据组态文件中的版本注解与更新封装数据来判断组态文件的版本是否较新于节点现有的版本,以选择性地对此节点安装更新封装数据。此外,本发明的服务器系统与固件更新方法更可以依据节点的更新优先值来依序排列欲进行更新的顺序,且更新优先值可以被动态地调整。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1为根据本发明一实施例的服务器系统的功能方框图;
图2为根据本发明一实施例的固件更新方法的步骤流程图;
图3为根据本发明另一实施例的固件更新方法的步骤流程图;
图4为根据图3的固件更新方法的细部步骤流程图。
其中,附图标记
1   服务器系统
10  载入模块
12  第一常驻模块
14  第一数据库
16  第二常驻模块
18  第二数据库
n   节点
S200~S208、S300~S304  步骤流程
具体实施方式
以下在实施方式中详细叙述本发明的详细特征以及优点,其内容足以使任何熟习相关技艺者了解本发明的技术内容并据以实施,且根据本说明书所发明的内容、权利要求范围及附图,任何熟习相关技艺者可轻易地理解本发明相关的目的及优点。以下的实施例是进一步详细说明本发明的观点,但非以任何观点限制本发明的范畴。
〔服务器系统的一实施例〕
请参照图1,图1为根据本发明一实施例的服务器系统的功能方框图。如图1所示,服务器系统1主要包括载入模块10、第一常驻模块12、第一数据库14、第二常驻模块16、第二数据库18以及节点n,其中第二常驻模块16通讯连接于第一常驻模块12、第一数据库14、第二数据库18以及节点n之间,而第一常驻模块12更通讯连接载入模块10与第一数据库14。
于实务上,节点n可以视为一种机柜式数据中心(Container Data Center),或者是机柜式数据中心中的其中一个单板计算机,本发明在此不加以限制。此外,节点n可以为一个以上的节点,换句话说,n大于等于一。另外,本发明所述的通讯连接可以是以实体线路连接而实现,或是以无线通讯连接而实现,本发明在此不加以限制。以下将分别就服务器系统1中的各部功能模块作详细的说明。
载入模块10用以读取一个组态文件(configuration file,亦称配置文件),并于读取到此组态文件时发送一个通知信号至第一常驻模块12中的网络服务器,其中此组态文件具有对应于此节点的固件封装数据(firmware packagedata)。于实务上,载入模块10可以为一种命令行界面工具(command lineinterface tool,CLI tool,亦称命令行工具),而此组态文件的副文件名(filenameextension,亦称延伸文件名、字尾名)可以为「.json」或「.yaml」,但不以此为限。在实际的操作中,载入模块10更可以依据组态文件传送一个更新通知经由简单邮件传输协议(simple mail transfer protocol,SMTP)服务器送至电子邮件地址(email address),其中上述的简单邮件传输协议服务器与电子邮件地址相关于欲进行固件更新的节点n。
一般来说,上述的组态文件包括有固件类型(firmware type)、固件版本(firmware version)、产品名称(product name)、SMTP服务器的因特网协定地址(internet protocol address,IP address)、电子邮件地址、版本注解(release note)的网址(uniform resource locator,URL)、更新封装数据(release package data)的网址、复制协定(copy protocol)、网络服务器(web server)的网址以及认证码(authentication)。举例来说,产品名称可以为通用唯一识别码(universally uniqueidentifier,UUID)或是制造商名称(manufacturers name)与产品名称的组合,固件类型可以为基本输入输出系统(basic input output system,BIOS)、底板管理控制器(baseboard management controller,BMC)或是硬碟阵列(redundant arrayof independent disks,RAID),复制协定可以为超文字传输协定(hypertext transferprotocol,HTTP)、文件传输协定(file transfer protocol,FTP)或是安全(secureshell,SSH)协定,版本注解的副文件名可以为「.json」,更新封装数据的副文件名可以为「.zip」,但不以上述为限。
此外,上述的通知信号包括复制协定(copy protocol)、验证码、版本注解的网址与更新封装数据的网址,其中验证码及复制协定用以由版本注解的网址中获得版本注解以及由更新封装数据的网址中获得更新封装数据。
第一常驻模块12用以依据上述的通知信号获得组态文件中的版本注解与更新封装数据。更详细来说,第一常驻模块12用以依据通知信号中复制协定、验证码、版本注解的网址与更新封装数据的网址,而据以获得组态文件中的版本注解与更新封装数据。于实务上,第一常驻模块12是由一个具有RESTfulWeb服务的OPS网络服务器(OperationS web server)以及一个用以获取通知信号的常驻程序(daemon)所组成,此常驻程序是使用TCP/socket或UDP/socket方式去提供API。一般来说,更新封装数据包括有固件进行更新时所需的固件影像(firmware image)、固件更新程序以及更新脚本文件(update script file)。
第一数据库(database)14用以储存由第一常驻模块12所获得的版本注解与更新封装数据,并据以获得版本注解与更新封装数据于第一数据库14中的文件路径(file path)。第二数据库18用以储存版本注解中的识别信息,其中此识别信息是由依据文件路径与节点n的因特网协定地址所获得。于实务上,此识别信息至少包括组态文件中的固件版本与产品名称其中之一。于实务上,为了使节点n中的多个实体机器(physical machine,PM)的产品名称可以为唯一,可以用16bytes的通用唯一识别码(universally unique identifier,UUID)来表示,或者是用产品名称与制造商名称的组合来表示,但不以此为限。
此外,识别信息更包括有节点n的固件的更新属性(update attribute),此更新属性用以指示节点n是要在Live CD(亦称即用光碟、自生系统)下作固件更新或是要在操作系统(operating system,OS)下作固件更新,以及用以指示当节点n的固件更新完毕后是否要重新启动(reboot)。举例来说,节点n的基本输入输出系统(basic input output system,BIOS)或硬碟阵列(RAID)的固件于更新完毕之后,需要重新启动才会有作用,然而BMC固件于更新完毕之后并不需重新启动节点n其才会有作用。另外,上述的更新属性更可以用以指示更新封装数据的严重性(severity)。
需一提的是,Live CD是一种不需要安装到硬碟,即能够启动执行的操作系统。更详细来说,当节点n藉由Live CD来开机时,Live CD会将所储存的映像文件解压缩至节点n内的随机存取记忆体(random access memory,RAM)中,以在随机存取记忆体内建立一个可以执行的环境,并于节点n重新启动后,节点n就可以恢复到原本的操作系统。
第二常驻模块16用以依据上述的文件路径与节点n的因特网协定地址而选择性地对节点n安装更新封装数据。更详细来说,第二常驻模块16更依据第二数据库18中的识别信息与节点n的实际识别信息,判断组态文件是否为较新版本,并于判断出组态文件为较新版本时,会在一个适当时机执行对节点n安装更新封装数据的处理程序,本发明再此不加以限制节点n安装更新封装数据的时间点。在实际的操作中,当节点n执行更新封装数据中的更新脚本文件时就会开始更新节点n的固件,但为了不影响节点n的固件的原先设定,储存有节点n的固件的原先设定数据的快闪唯读记忆体(flash ROM)的设定数据区(configuration data area)将不会被更新,换句话说,节点n的固件的原先设定数据将会被保留在快闪唯读记忆体的设定数据区中。
除此之外,第二常驻模块16更可以用以判断服务器系统1中的节点n是否为第一次被检测到,并且于第二常驻模块16判断出节点n为第一次被检测到时,将节点n的相关数据(包括节点n中的所述多个实体机器的固件版本与产品名称)储存于第二数据库18中。
值得注意的是,当第二常驻模块16判断出组态文件为较新版本时,第二常驻模块16更可以依据第二数据库18所储存的识别信息而获得节点n的多个参数,并依据所述多个参数而计算出一个更新优先值(update priority value),此更新优先值对应于节点n中的其中一个实体机器的固件。其中,所述多个参数包括节点n中的所有固件的更新封装数据的严重性、节点中所需更新的固件数目、更新所需的时间、更新所需使用的网络频宽与节点n的使用率负载(poolload)。
在实际的操作中,更新优先值会随着更新封装数据的严重性越高而越高(例如严重性最高时,更新优先值是为九十;严重性中等时,更新优先值是为六十;严重性最低时,更新优先值是为零),更新优先值会随着所需更新的数目越多而越高(例如节点n每多更新一个实体机器的固件时,更新优先值需多增加十),更新优先值会随着更新所需的时间越多而越低(例如更新所需的时间极大时,更新优先值是为零),更新优先值会随着更新所需使用的网络频宽越多而越低(例如更新所需的网络频宽极大时,更新优先值是为零),更新优先值会随着节点n的使用率负载越高而越低(节点n的使用率负载极大时,更新优先值是为零)。举例来说,若节点n仅需更新其中的两个固件,且对应于此固件的组态文件的严重性最高,且需要极大的更新时间、网络频宽以及使用率负载时,则节点n的更新优先值是为二十与九十的总合。
接着,第二常驻模块16会将节点n加入至更新散列表(update hash table)中,并判断更新散列表中的所有节点的所有更新优先值是否大于更新门槛值(update threshold value),并将大于此更新门槛值的所述多个更新优先值所对应的多个节点依序排列至更新队列(伫列)表(update queue table)中。举例来说,若节点n的更新优先值是为二十与九十的总合,而更新门槛值是为九十,则节点n会被排列至更新队列表中。藉此,第二常驻模块16可以依据更新队列表中所述多个节点的排列顺序,来对这些节点安装更新封装数据。此外,第二常驻模块16可以一次一个或一次多个安装更新封装数据至更新队列表中所述多个节点中,本发明在此不加以限制。
此外,于第二常驻模块16判断更新散列表中的所有节点的所有更新优先值是否大于更新门槛值之前,第二常驻模16更可以每隔一段预设时间对更新散列表中的所有节点的所有更新优先值加上一个预设值。举例来说,第二常驻模16可以每隔三十分钟对更新散列表中的所有节点的所有更新优先值加上一,以避免更新散列表内的节点因为更新优先值过低的关系,而没机会去安装更新封装数据。
在实际的操作中,当第二常驻模块16欲对节点n中的某一个实体机器安装更新封装数据时,第二常驻模块16更可以依据识别信息中的更新属性来判断此实体机器是否要在Live CD的环境下作更新。若第二常驻模块16判断出此实体机器要在Live CD的环境下作更新,则此第二常驻模块16会将对应于此实体机器的虚拟机器移走,并且命令云端(cloud)不要在使用此实体机器,接着第二常驻模块16会设定此实体机器为Live CD的预启动执行环境启动(preboot execution environment boot,PXE boot),然后再重新启动此实体机器,使得更新封装数据可以被安装或复制至此实体机器中。接着,实体机器会将此更新封装数据解压缩,并且执行更新封装数据中的更新脚本文件以开始更新此实体机器的固件。最后,于实体机器的固件更新完毕后,第二常驻模块16会设定此实体机器为Local HDD的预启动执行环境启动,并在重新启动此实体机器后通知云端可以开始使用此实体机器。
另一方面,若第二常驻模块16判断出此实体机器要在操作系统的环境下作更新,则此第二常驻模块16会直接地将更新封装数据安装或复制至此实体机器中,使得实体机器可以在操作系统的环境中将更新封装数据解压缩,并且执行更新封装数据中的更新脚本文件以进行此实体机器的固件更新。最后,于实体机器的固件更新完毕后,节点n会依据实体机器的类型来决定是否要重新启动。举例来说,若实体机器为硬碟阵列(RAID)的话,则实体机器需要重新启动才会有作用;若实体机器为底板管理控制器(BMC)的话,则实体机器不需要重新启动。
〔固件更新方法的一实施例〕
请一并参照图1与图2,图2为根据本发明一实施例的固件更新方法的步骤流程图。如图2所示,此固件更新方法适用于图1所示的服务器系统1。以下将分别就固件更新方法中的各步骤流程作详细的说明。
在步骤S200中,载入模块10会读取组态文件,其中此组态文件具有对应于节点n的固件封装数据。在步骤S202中,载入模块10会对组态文件所对应的节点n的网络服务器发送一个通知信号。在步骤S204中,第一常驻模块12会依据上述的通知信号,而据以获得组态文件中的版本注解与更新封装数据。在步骤S206中,第一数据库14会储存由第一常驻模块12所获得的版本注解与更新封装数据,并据以获得版本注解与更新封装数据于第一数据库14中的文件路径。最后,在步骤S208中,第二常驻模块16会依据第一数据库14的文件路径与节点n的因特网协定地址,而选择性地对此节点n安装更新封装数据。
〔固件更新方法的另一实施例〕
请一并参照图1、图2与图3,图3为根据本发明另一实施例的固件更新方法的步骤流程图。由于图3中的步骤S200~步骤S206皆相同于图2中的步骤S200~步骤S206,故不再赘述。
如图3所示,于储存版本注解与更新封装数据的步骤(即步骤S206)之后,在步骤S300中,第二常驻模块16会依据步骤S206所获得的文件路径与节点n的因特网协定地址获得版本注解中的识别信息。其中,此识别信息至少包括固件版本与产品名称其中之一。在步骤S302中,第二常驻模块16会依据上述的识别信息与节点n的实际识别信息,判断组态文件是否为较新版本。若第二常驻模块16判断出组态文件并非为较新版本(亦即节点n的固件版本较新于组态文件中的固件版本),则回到步骤S200;若第二常驻模块16判断出组态文件为较新版本(亦即节点n的固件版本较旧于组态文件中的固件版本),则进入步骤S304,以对此节点n安装更新封装数据。
请参照图4,图4为根据图3的固件更新方法的细部步骤流程图。如图4所示,于第二常驻模块16判断出组态文件为较新版本的步骤(即步骤S302)之后,在步骤S400中,第二常驻模块16会依据节点n的多个参数而计算出更新优先值,此更新优先值对应于节点n中的其中的一固件。其中,所述多个参数包括节点n的所有固件的更新封装数据的严重性、节点n中所需更新的固件数目、更新所需的时间、更新所需使用的网络频宽与节点n的使用率负载。
在步骤S402中,第二常驻模块16会将节点n加入至更新散列表。在步骤S404中,第二常驻模块16会判断更新散列表中的所有节点的所有更新优先值是否大于更新门槛值,并将大于更新门槛值的所述多个更新优先值所对应的多个节点依序排列至更新队列表中。在步骤S406中,第二常驻模块16会依据更新队列表中这些节点的排列顺序,对这些节点依序地安装更新封装数据。
〔实施例的可能功效〕
综合以上所述,本发明实施例提供一种服务器系统与固件更新方法,此服务器系统与固件更新方法是于节点的某一版本的组态文件被释出时,会自动通知服务器系统中的所有服务器,并且依据组态文件中的版本注解与更新封装数据来判断组态文件的版本是否较新于节点现有的版本,以选择性地对此节点安装更新封装数据。此外,本发明的服务器系统与固件更新方法更可以依据节点的更新优先值来依序排列欲进行更新的顺序,且更新优先值可以被动态地调整。藉此,本发明的服务器系统与固件更新方法可适用于基于OpenStack与Crowbar的云端操作系统中,十分具有实用性。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (10)

1.一种固件更新方法,适用于一服务器系统,其特征在于,该固件更新方法包括:
读取一组态文件,该组态文件具有对应于该服务器系统中的一节点的固件封装数据;
对该组态文件所对应的该节点的一网络服务器发送一通知信号;
依据该通知信号,获得该组态文件中的一版本注解与一更新封装数据;
储存该版本注解与该更新封装数据,并据以获得该版本注解与该更新封装数据的一文件路径;以及
依据该文件路径与该节点的因特网协定地址,选择性地对该节点安装该更新封装数据。
2.根据权利要求1所述的固件更新方法,其特征在于,于储存该版本注解与该更新封装数据的步骤之后,更包括依据该文件路径与该节点的因特网协定地址获得该版本注解中的一识别信息,该识别信息至少包括固件版本与产品名称其中之一。
3.根据权利要求2所述的固件更新方法,其特征在于,于依据该文件路径与该节点的因特网协定地址来对该节点安装该更新封装数据的步骤之前,更包括依据该识别信息与该节点的一实际识别信息,判断该组态文件是否为较新版本,并于判断出该组态文件为较新版本时,执行对该节点安装该更新封装数据的步骤。
4.根据权利要求3所述的固件更新方法,其特征在于,于判断出该组态文件为较新版本的步骤之后,更包括:
依据该节点的多个参数而计算出一更新优先值,该更新优先值对应于该节点的其中一固件,其中该些参数包括该节点的所有固件的该更新封装数据的严重性、该节点中所需更新的固件数目、更新所需的时间、更新所需使用的网络频宽与该节点的使用率负载;
将该节点加入至一更新散列表中;
判断该更新散列表中的所有节点的所有更新优先值是否大于一更新门槛值,并将大于该更新门槛值的该些更新优先值所对应的多个节点依序排列至一更新队列表中;以及
依据该更新队列表中该些节点的排列顺序,对该些节点安装该更新封装数据。
5.根据权利要求4所述的固件更新方法,其特征在于,于判断该更新散列表中的所有节点的所有更新优先值是否大于该更新门槛值的步骤之前,更包括每隔一预设时间对该更新散列表中的所有节点的所有更新优先值加上一预设值。
6.一种服务器系统,其特征在于,包括:
至少一节点;
一载入模块,用以读取一组态文件,并于读取到该组态文件时发送一通知信号,该组态文件具有对应于所述至少一节点至少其中之一的固件封装数据;
一第一常驻模块,通讯连接该载入模块,用以依据该通知信号获得该组态文件中的一版本注解与一更新封装数据;
一第一数据库,通讯连接该第一常驻模块,用以储存该版本注解与该更新封装数据,并据以获得该版本注解与该更新封装数据于该第一数据库中的一文件路径;以及
一第二常驻模块,通讯连接于该第一常驻模块、该第一数据库与所述至少一节点的间,用以依据该文件路径与所述至少一节点其中之一的因特网协定地址而选择性地对该节点安装该更新封装数据。
7.根据权利要求6所述的服务器系统,其特征在于,该服务器系统更包括一第二数据库,该第二数据库通讯连接该第二常驻模块,该第二数据库用以储存该版本注解中的一识别信息,该识别信息由依据该文件路径与该节点的因特网协定地址所获得,且该识别信息至少包括固件版本与产品名称其中之一。
8.根据权利要求7所述的服务器系统,其特征在于,该第二常驻模块更依据该第二数据库中的该识别信息与该节点的一实际识别信息,判断该组态文件是否为较新版本,并于判断出该组态文件为较新版本时,执行对该节点安装该更新封装数据的处理程序。
9.根据权利要求8所述的服务器系统,其特征在于,该第二常驻模块于判断出该组态文件为较新版本之后,该第二常驻模块更依据该节点的多个参数而计算出一更新优先值,且该更新优先值对应于该节点的其中一固件,接着,该第二常驻模块将该节点加入至一更新散列表中,并判断该更新散列表中的所有节点的所有更新优先值是否大于一更新门槛值,并将大于该更新门槛值的该些更新优先值所对应的多个节点依序排列至一更新队列表中,以依据该更新队列表中该些节点的排列顺序来对该些节点安装该更新封装数据,其中该些参数包括该节点的所有固件的该更新封装数据的严重性、该节点中所需更新的固件数目、更新所需的时间、更新所需使用的网络频宽与该节点的使用率负载。
10.根据权利要求9所述的服务器系统,其特征在于,于该第二常驻模块判断该更新散列表中的所有节点的所有更新优先值是否大于该更新门槛值之前,该第二常驻模块更每隔一预设时间对该更新散列表中的所有节点的所有更新优先值加上一预设值。
CN201310610617.0A 2013-11-26 2013-11-26 服务器系统与固件更新方法 Active CN104679530B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310610617.0A CN104679530B (zh) 2013-11-26 2013-11-26 服务器系统与固件更新方法
US14/243,608 US9195451B2 (en) 2013-11-26 2014-04-02 Server system and update method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310610617.0A CN104679530B (zh) 2013-11-26 2013-11-26 服务器系统与固件更新方法

Publications (2)

Publication Number Publication Date
CN104679530A true CN104679530A (zh) 2015-06-03
CN104679530B CN104679530B (zh) 2017-12-29

Family

ID=53183810

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310610617.0A Active CN104679530B (zh) 2013-11-26 2013-11-26 服务器系统与固件更新方法

Country Status (2)

Country Link
US (1) US9195451B2 (zh)
CN (1) CN104679530B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107402753A (zh) * 2017-06-30 2017-11-28 郑州云海信息技术有限公司 一种硬盘固件的刷新方法及装置
CN107608695A (zh) * 2017-09-21 2018-01-19 曙光信息产业(北京)有限公司 硬盘固件升级方法、装置及服务器
CN108228209A (zh) * 2016-12-21 2018-06-29 广达电脑股份有限公司 自动更新服务器系统的元件的固件的系统、方法和介质
CN108762786A (zh) * 2018-05-29 2018-11-06 郑州云海信息技术有限公司 一种服务器机柜的固件更新方法、服务器机柜及主机
CN109688180A (zh) * 2017-10-19 2019-04-26 阿里巴巴集团控股有限公司 一种基于镜像的云服务软件升级方法和装置
CN109947443A (zh) * 2019-01-28 2019-06-28 西安紫光国芯半导体有限公司 用于nvdimm的spd固件更新的方法和系统
CN112668027A (zh) * 2021-01-04 2021-04-16 中车青岛四方车辆研究所有限公司 用于分布式系统的数据下装方法、tias系统数据下装方法
CN113867753A (zh) * 2021-08-29 2021-12-31 苏州浪潮智能科技有限公司 一种服务器的固件更新方法及系统

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104660522A (zh) * 2013-11-22 2015-05-27 英业达科技有限公司 自动节点配置方法及服务器系统
CN104679530B (zh) * 2013-11-26 2017-12-29 英业达科技有限公司 服务器系统与固件更新方法
CN106104561B (zh) * 2014-03-28 2019-10-22 惠普发展公司,有限责任合伙企业 允许针对bios的安装使用测试密钥的方法和设备
US20160196131A1 (en) * 2014-07-07 2016-07-07 Symphony Teleca Corporation Remote Embedded Device Update Platform Apparatuses, Methods and Systems
KR102261815B1 (ko) * 2014-10-30 2021-06-07 삼성전자주식회사 펌웨어 업데이트 시간을 줄일 수 있는 데이터 저장 장치, 및 이를 포함하는 데이터 처리 시스템
US9811356B2 (en) * 2015-01-30 2017-11-07 Appdynamics Llc Automated software configuration management
US9952850B2 (en) * 2015-07-28 2018-04-24 Datadirect Networks, Inc. Automated firmware update with rollback in a data storage system
US9612822B2 (en) * 2015-07-30 2017-04-04 Adtran, Inc. Telecommunications node configuration management
US10031736B2 (en) * 2015-09-29 2018-07-24 Quanta Computer Inc. Automatic system software installation on boot
US9792110B2 (en) * 2015-12-21 2017-10-17 International Business Machines Corporation Automatic online system upgrade
US10970063B2 (en) * 2017-04-12 2021-04-06 Sumitomo Electric Industries, Ltd. Relay apparatus, transfer method, and computer program
US10747549B2 (en) * 2017-07-19 2020-08-18 Hewlett Packard Enterprise Development Lp Proxy application to transfer application protocol requests over IOCTL commands
CN109558160A (zh) * 2017-09-26 2019-04-02 阿里巴巴集团控股有限公司 升级方法、嵌入式系统
CN107943512A (zh) * 2017-11-28 2018-04-20 晶晨半导体(上海)股份有限公司 一种软件系统的更新方法
US10956143B2 (en) * 2017-12-06 2021-03-23 Hewlett Packard Enterprise Development Lp Server updates
US11356532B1 (en) * 2018-08-10 2022-06-07 Meta Platforms, Inc. Systems and methods for packaging web resources
US10776488B2 (en) * 2018-09-24 2020-09-15 Dell Products L.P. Extend root of trust to include firmware of individual components of a device
CN111078257B (zh) * 2019-12-19 2023-09-08 杭州安恒信息技术股份有限公司 一种h5应用包的加载方法及相关装置
JP2021157459A (ja) * 2020-03-26 2021-10-07 富士フイルムビジネスイノベーション株式会社 情報処理装置、情報処理システム、及び情報処理プログラム
CN112015450B (zh) * 2020-08-25 2024-01-19 深圳Tcl新技术有限公司 加载智能设备控制页面的方法、装置和存储介质
US11474813B2 (en) * 2020-09-30 2022-10-18 Atlassian Pty Ltd. System for managing subscriber and project updates using a networked project communication system
WO2022093197A1 (en) * 2020-10-27 2022-05-05 Hewlett-Packard Development Company, L.P. Firmware overwrites using queues and pointers
CN112486539B (zh) * 2020-12-09 2023-08-08 税友软件集团股份有限公司 一种应用更新方法、装置、设备及存储介质
CN112612833B (zh) * 2020-12-18 2024-03-29 中国平安人寿保险股份有限公司 规则包更新方法、装置、设备及存储介质
CN114095788A (zh) * 2021-11-16 2022-02-25 深圳康佳电子科技有限公司 wifi驱动及固件热更新处理方法、装置、终端及介质
CN114826985A (zh) * 2022-03-18 2022-07-29 湖南三一智能控制设备有限公司 通讯协议测试方法、装置、上位机及测试系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040103340A1 (en) * 2002-11-21 2004-05-27 Texas Instruments Incorporated Upgrading of firmware with tolerance to failures
CN101452390A (zh) * 2007-11-28 2009-06-10 无锡江南计算技术研究所 网络引导方法及系统、系统引导方法及装置
US20090228509A1 (en) * 2008-03-04 2009-09-10 Apple Inc. Synchronization server process
CN102480384A (zh) * 2010-11-24 2012-05-30 英业达股份有限公司 更新固件的方法
US20120150987A1 (en) * 2009-09-04 2012-06-14 Fujitsu Limited Transmission system and apparatus, and method
US20130125107A1 (en) * 2011-11-11 2013-05-16 Wyse Technology Inc. Robust firmware update with recovery logic
CN103186404A (zh) * 2011-12-28 2013-07-03 英业达股份有限公司 系统固件更新方法与使用该方法的服务器系统

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW518513B (en) * 2001-03-28 2003-01-21 Synq Technology Inc System and method to update an executing application software by modular way
US8782247B2 (en) * 2003-07-09 2014-07-15 At&T Intellectual Property I, L.P. Connection manager and methods of connection management
US8839220B2 (en) * 2003-08-08 2014-09-16 Arris Enterprises, Inc. Method for remotely updating software for devices in a broadband network
US7483370B1 (en) * 2003-12-22 2009-01-27 Extreme Networks, Inc. Methods and systems for hitless switch management module failover and upgrade
KR100663547B1 (ko) * 2004-09-09 2007-01-02 삼성전자주식회사 단말기의 소프트웨어 업그레이드를 위한 통신 시스템 및방법과 그 단말기
US7376870B2 (en) * 2004-09-30 2008-05-20 Intel Corporation Self-monitoring and updating of firmware over a network
US7363480B1 (en) * 2005-06-30 2008-04-22 American Megatrends, Inc. Method, system, and computer-readable medium for updating the firmware of a computing device via a communications network
US20090077634A1 (en) * 2007-09-19 2009-03-19 Aten International Co., Ltd. Firmware update method and system using the same
KR100951622B1 (ko) * 2008-05-02 2010-04-09 강릉원주대학교산학협력단 무선센서 네트워크의 노드에 대한 펌웨어 업데이트 방법 및이에 사용되는 펌웨어 업데이트장치
JP5405986B2 (ja) * 2008-11-26 2014-02-05 パナソニック株式会社 ソフトウェア更新システム、管理装置、記録媒体及び集積回路
EP2352109B1 (en) * 2008-11-26 2018-06-20 Panasonic Corporation Monitoring system, program-executing device, monitoring program, recording medium and integrated circuit
JP2010244141A (ja) * 2009-04-01 2010-10-28 Hitachi Software Eng Co Ltd ホームネットワークシステム、ゲートウェイ装置、及びファームウェア更新方法
US20120079473A1 (en) * 2009-06-08 2012-03-29 Haruhito Watanabe Software updating system, displaying unit and software updating method
US20130326494A1 (en) * 2012-06-01 2013-12-05 Yonesy F. NUNEZ System and method for distributed patch management
US8819663B2 (en) * 2012-06-18 2014-08-26 Lsi Corporation Acceleration of software modifications in networked devices
US9639341B2 (en) * 2012-08-16 2017-05-02 Avaya Inc. Network hardware and software upgrade recommender
US9081643B2 (en) * 2012-09-21 2015-07-14 Silver Sring Networks, Inc. System and method for efficiently updating firmware for nodes in a mesh network
US9112790B2 (en) * 2013-06-25 2015-08-18 Google Inc. Fabric network
CN104679530B (zh) * 2013-11-26 2017-12-29 英业达科技有限公司 服务器系统与固件更新方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040103340A1 (en) * 2002-11-21 2004-05-27 Texas Instruments Incorporated Upgrading of firmware with tolerance to failures
CN101452390A (zh) * 2007-11-28 2009-06-10 无锡江南计算技术研究所 网络引导方法及系统、系统引导方法及装置
US20090228509A1 (en) * 2008-03-04 2009-09-10 Apple Inc. Synchronization server process
US20120150987A1 (en) * 2009-09-04 2012-06-14 Fujitsu Limited Transmission system and apparatus, and method
CN102480384A (zh) * 2010-11-24 2012-05-30 英业达股份有限公司 更新固件的方法
US20130125107A1 (en) * 2011-11-11 2013-05-16 Wyse Technology Inc. Robust firmware update with recovery logic
CN103186404A (zh) * 2011-12-28 2013-07-03 英业达股份有限公司 系统固件更新方法与使用该方法的服务器系统

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108228209B (zh) * 2016-12-21 2021-06-01 广达电脑股份有限公司 自动更新服务器系统的元件的固件的系统、方法和介质
CN108228209A (zh) * 2016-12-21 2018-06-29 广达电脑股份有限公司 自动更新服务器系统的元件的固件的系统、方法和介质
CN107402753A (zh) * 2017-06-30 2017-11-28 郑州云海信息技术有限公司 一种硬盘固件的刷新方法及装置
CN107402753B (zh) * 2017-06-30 2020-11-27 苏州浪潮智能科技有限公司 一种硬盘固件的刷新方法及装置
CN107608695B (zh) * 2017-09-21 2020-08-28 曙光信息产业(北京)有限公司 硬盘固件升级方法、装置及服务器
CN107608695A (zh) * 2017-09-21 2018-01-19 曙光信息产业(北京)有限公司 硬盘固件升级方法、装置及服务器
CN109688180A (zh) * 2017-10-19 2019-04-26 阿里巴巴集团控股有限公司 一种基于镜像的云服务软件升级方法和装置
CN109688180B (zh) * 2017-10-19 2022-05-10 阿里巴巴集团控股有限公司 一种基于镜像的云服务软件升级方法和装置
CN108762786A (zh) * 2018-05-29 2018-11-06 郑州云海信息技术有限公司 一种服务器机柜的固件更新方法、服务器机柜及主机
CN109947443A (zh) * 2019-01-28 2019-06-28 西安紫光国芯半导体有限公司 用于nvdimm的spd固件更新的方法和系统
CN109947443B (zh) * 2019-01-28 2024-01-19 西安紫光国芯半导体有限公司 用于nvdimm的spd固件更新的方法和系统
CN112668027A (zh) * 2021-01-04 2021-04-16 中车青岛四方车辆研究所有限公司 用于分布式系统的数据下装方法、tias系统数据下装方法
CN113867753A (zh) * 2021-08-29 2021-12-31 苏州浪潮智能科技有限公司 一种服务器的固件更新方法及系统
CN113867753B (zh) * 2021-08-29 2024-01-16 苏州浪潮智能科技有限公司 一种服务器的固件更新方法及系统

Also Published As

Publication number Publication date
CN104679530B (zh) 2017-12-29
US9195451B2 (en) 2015-11-24
US20150149989A1 (en) 2015-05-28

Similar Documents

Publication Publication Date Title
CN104679530A (zh) 服务器系统与固件更新方法
US11922177B2 (en) Securely and reliably transferring startup script
US11656852B2 (en) System and method for autowiring of a microservice architecture
US7814126B2 (en) Using task sequences to manage devices
US7290258B2 (en) Managing multiple devices on which operating systems can be automatically deployed
CN110943860B (zh) 一种bmc固件更新方法、系统、电子设备及存储介质
US10372463B1 (en) Provisioning a computerized device with an operating system
CN108616384B (zh) 一种集中式的服务管理部署工具及方法
US10802916B2 (en) System and method to enable rapid recovery of an operating system image of an information handling system after a malicious attack
US11886886B2 (en) System and method for runtime synchronization and authentication of pre-boot device drivers for a rescue operating system
US11636016B2 (en) Cloud simulation and validation system
CN108984544B (zh) 一种分布式系统修改配置信息的方法和装置
US10938957B1 (en) System and method for bridging gaps between traditional resource management solutions with cloud-based management solutions
CN106547645B (zh) 自动修复映像档的方法及服务器系统
CN111225064A (zh) Ceph集群部署方法、系统、设备和计算机可读存储介质
WO2020063607A1 (zh) 一种应用客户端启动方法,业务服务器和客户端设备
CN113656147A (zh) 一种集群部署方法、装置、设备及存储介质
CN104660522A (zh) 自动节点配置方法及服务器系统
WO2021169124A1 (zh) 安装软件包至目标主机的方法、装置和计算机设备
US8086659B2 (en) Task sequence interface
TWI514279B (zh) 伺服器系統與韌體更新方法
CN114327536A (zh) 一种服务器运维方法、装置、设备及存储介质
CN117193936A (zh) 超融合架构下的虚拟机管理方法、装置及设备
US9609085B2 (en) Broadcast-based update management
US20220353341A1 (en) Efficient deployment of cloud resources

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant