CN109889359A - 服务器更新 - Google Patents
服务器更新 Download PDFInfo
- Publication number
- CN109889359A CN109889359A CN201811487899.9A CN201811487899A CN109889359A CN 109889359 A CN109889359 A CN 109889359A CN 201811487899 A CN201811487899 A CN 201811487899A CN 109889359 A CN109889359 A CN 109889359A
- Authority
- CN
- China
- Prior art keywords
- server
- firmware
- fingerprint
- exclusive
- inventory
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
在本文公开的服务器更新方法涉及:基于独有指纹和公共指纹来确定多个服务器的清单;基于多个服务器的清单来创建已安装固件的公共集合和已安装固件的多个独有集合;基于已安装固件的公共集合和包括在多个服务器中的组件的类别来创建已安装固件的子类集合;获取与已安装固件的子类集合和已安装固件的独有集合相对应的固件更新版本;响应于更新请求,创建用于与已安装固件的子类集合和已安装固件的独有集合相对应的固件更新版本的容器;以及向多个服务器发送包括至相应容器的链接的更新消息。
Description
背景技术
更新大型服务器集合花费大量规划和时间。确定清单和安装集合花费时间,并且同时地将固件更新部署到大量服务器可能产生网络瓶颈。
附图说明
在以下描述中描述了本公开的非限制性示例、参考附于其的图来阅读本公开的非限制性示例,并且本公开的非限制性示例不限制权利要求的范围。在图中,出现在不止一个图中的相同的和类似的结构、元件或其一部分通常利用它们所出现的图中的相同的或类似的参考编号来标记。主要为了方便和展示的清晰起见来选择在图中所图示的组件和特征的比例尺,并且组件和特征的比例尺不一定是按比例的。参考附图:
图1是根据一个示例的多个服务器和系统的框图,该系统包括能够获得多个服务器的清单、创建指纹,并且创建和部署固件安装集合的处理器;
图2是用于确定多个服务器的清单、创建安装集合、获取更新,并且经由容器来部署更新的方法的流程图;以及
图3是能够确定清单、创建子类、创建固件安装集合,并且创建和部署容器的计算设备的框图。
具体实施方式
在下文的具体实施方式中,对附图进行参考,附图形成其一部分,并且其中通过图示来描绘其中可以实践本公开的特定示例。应当理解,在不背离本公开的范围的情况下,可以利用其他示例并且可以进行结构或逻辑改变。
更新大型服务器集合花费大量规划和时间。确定清单和安装集合花费时间,并且同时地将固件更新部署到大量服务器可能产生网络瓶颈。
在本文描述的示例可以利用集中式服务器群组、管理服务器、远程管理计算设备等等。先前提及的计算设备中的任何技术设备(诸如,管理服务器)可以采集多个服务器的清单。所提及的计算设备(例如,管理服务器)可以基于多个服务器中的每个服务器的指纹来采集多个服务器的清单。正如指出的,多个服务器中的每个服务器可以具有相关联的指纹。可以通过多个服务器中的每一个服务器本身来生成每个服务器的指纹。指纹可以与服务器的组件的列表、服务器的类型或型号、每一个服务器的固件的列表以及服务器的任何其他应用或驱动器相关联。多个服务器中的许多服务器可以具有相同的指纹(例如,共享或公共指纹)。在此类示例中,可以将那些服务器分组在一起,并且对于共享相同指纹(例如,公共指纹)的整个服务器群组进行一次清单获取。在示例中,数以千计或数以万计服务器可以共享相同的配置。服务器可以基于每个服务器的配置来共享相同的或者公共指纹。可以对于所有服务器进行一次清单获取而并不针对每个服务器进行。多个服务器中的其他服务器可以具有独有指纹,或者可能地具有公共指纹和独有指纹的组合。
在多个服务器的清单之后,无论基于指纹还是不基于指纹,先前提及的计算设备(例如,管理服务器)可以生成固件更新的列表。换句话说,管理服务器可以按公共或共享的清单并且按独有清单来生成安装集合。在另一个示例中,可以基于各种参数将公共清单分解到子类中。在安装集合生成之后,先前提及的计算设备(例如,管理服务器)可以部署容器。容器可以存储每个生成的安装集合。先前提及的计算设备(例如,管理服务器)可以基于各种条件和参数在战略上部署容器。换句话说,先前提及的计算设备(例如,管理服务器)可以基于待更新服务器的位置、安装集合中的固件组件的量、部署需求,和各种其他参数来部署容器。在容器部署之后,先前提及的计算设备(例如,管理服务器)可以给多个服务器发信号或通知多个服务器进行更新。先前提及的计算设备(例如,管理服务器)也可以发信号或通知特定服务器基于各种参数进行更新。
因此,在本文提供的各个示例基于独有指纹和公共指纹来确定多个服务器的清单。示例包括基于服务器的清单来创建已安装固件的公共集合和已安装固件的多个独有集合。示例也包括基于已安装固件的公共集合以及包括在多个服务器中的组件的类别来创建已安装固件的子类集合。示例也包括获取与已安装固件的子类集合和已安装固件的独有集合相对应的固件版本。响应于更新请求,示例包括创建用于与已安装固件的子类集合和已安装固件的独有集合相对应的固件更新版本的容器。示例也可以包括向多个服务器发送包括至相应容器的链接的更新消息。
如图1中所示,系统102可以包括处理器104和非暂时性机器可读存储介质106。系统102可以由一个或多个计算设备组成。计算设备可以包括一个或多个处理资源和非暂时性机器可读存储介质。非暂时性机器可读存储介质106可以包括可以通过处理资源执行的机器可读指令。系统102可以通过内联网、因特网、管理网络、一些其他类型的连接或其组合而连接到多个服务器108或其他计算设备。服务器108或计算设备可以包含多个组件、这样的处理资源、非暂时性机器可读存储介质、管理组件、输入输出(I/O)卡和其他外围设备。所引用的组件可以包括但不限于相关联的固件和驱动器(换句话说,特定固件和驱动器可以与特定组件相关联)。服务器108或其他计算设备可以包括其它应用或实用程序,诸如代理或阵列配置实用程序。可以以规则的和/或不规则间隔来更新固件、驱动器以及其它应用。固件、驱动器和其它应用可以包括安装时的需求,诸如系统再启动、推荐的系统再启动、更新的次序(例如,一个组件取决于要被安装的另一个组件),和其他参数。
如在本文所使用的,“计算设备”可以是存储阵列、存储设备、存储机壳、服务器、台式机或膝上型计算机、计算机集群、节点、分区、虚拟机或者包括控制器、处理资源等等的任何其他设备或装备。在本文描述的示例中,“处理资源”例如可以包括包括在单个计算设备中的或者分布在多个计算设备上的一个处理器或多个处理器。如在本文所使用的,“处理器”可以是被配置为调取和执行指令的中央处理单元(CPU)、基于半导体的微处理器、图形处理单元(GPU)、现场可编程门阵列(FPGA)中的至少一个、适于调取和执行存储在机器可读存储介质上的指令的其他电子电路或其组合。
如在本文所使用的,“机器可读存储介质”可以是包含或者存储诸如可执行指令、数据等等的信息的任何电子、磁性、光学或者其他物理存储装置。例如,在本文描述的任何处理器可读存储介质可以是随机存取存储器(RAM)、易失性存储器、非易失性存储器、闪速存储器、存储驱动(例如,硬盘驱动器)、固态驱动(SSD)、任何类型的存储磁盘(例如,光碟、DVD,等等)等等中的任何或其组合。此外,在本文描述的任何机器可读存储介质可以是非暂时性的。
如在本文所使用的,“基板管理控制器”或“BMC”是专用的服务处理器,其使用传感器来监视服务器或其他硬件的物理状态并且通过独立的“带外”连接与管理系统进行通信。BMC也可以通过IOCTL接口驱动器或者表述性状态转移(REST)应用程序接口(API)与在OS层级执行的应用进行通信。BMC可以具有对位于服务器机箱中的硬件设备的硬件级访问。BMC可以能够直接地修改硬件设备。BMC可以位于要被监视的服务器或其他设备的母板或主电路板上。BMC被安装在受管理的服务器的母板上或以另外方式连接或附接到受管理的服务器的事实不妨碍BMC被考虑为“分立”。如在本文所使用的,BMC具有对于计算设备的子系统的管理能力,并且从执行计算设备的OS的处理资源分立。BMC从诸如中央处理单元之类的处理器分立,在例如每个独立服务器108a至108n的系统上执行高级操作系统或虚拟机。
如在本文所使用的,“容器”是用于在不启动每个应用的整个虚拟机的情况下部署和运行分布式应用的虚拟化方法。多个容器能够在同一计算设备上运行并且共享同一OS内核。每个容器可以以用户的步调作为隔离的进程运行,而不是作为完整的OS运行。在示例中,容器可以存储机器可读指令。在另外的示例中,机器可读指令可以包括要被安装在其他系统上的固件、驱动器,和其它应用。在另一个示例中,容器可以是无状态的容器。在另一个示例中,容器可以是准时制容器。在另一个示例中,在以上描述的系统可以包括机器可读指令来动态地创建容器。在此类示例中,可以在任何时间并且在战略确定的服务器上创建容器。系统可以利用参数来确定在哪里创建容器,诸如固件的尺寸,待更新服务器位于哪里、要被设置的服务器的量、或者其一些组合。
如在本文所使用的,“指纹”可以是识别计算设备的位串。计算设备可以基于计算设备的组件、安装在计算设备上的固件和其他参数来生成指纹。如在本文所使用的,“独有指纹”可以是关于有限数量的计算设备的指纹,例如仅仅一个、一些、或者少量的计算设备或组件可以与一个独有指纹相关联。如在本文所使用的,“公共指纹”可以是公共的。例如,公共指纹可以与许多计算设备相关联。
如在本文所使用的,“安装集合”可以是固件、驱动器、其它应用、实用程序的群组或其组合。该群组可以与组件的集合相关联。换句话说,群组可以包括用于组件或组件的集合的固件更新、驱动器更新、应用更新、实用程序更新或者其一些组合。独有的安装集合可以是包括用于一个服务器或者有限或小集合的服务器的更新的安装集合。公共或共享的安装集合可以是包括用于广泛或大型集合的服务器的更新的安装集合。在示例中,一万个服务器中的一个服务器可以包括图形卡。用于这样的服务器的安装集合可以包括图形卡固件。这样的安装集合可以被考虑为独有的安装集合(或独有集合)。在另一个示例中,一万个服务器的群组中的所有服务器可以包括BMC。用于所有服务器的安装集合可以包括BMC固件。这样的安装集合可以被考虑为公共或共享的安装集合(或公共集合)。
图2是用于确定多个服务器的清单、创建安装集合、获取更新,并且经由容器来部署更新的方法的流程图。尽管以下参考图1的系统102来描述方法200的执行,但可以利用其它适当的系统或模块。另外,方法200的实施方式不局限于此类示例。
在框202,系统102可以基于多个服务器108的独有指纹以及公共指纹来确定多个服务器108的清单。系统102可以扫描服务器来确定其清单。在服务器被扫描之后,系统102可以移动到下一个服务器。如果下一个服务器具有相同的指纹(独有的或公共的),那么系统102可以不扫描下一个服务器。多个服务器108中的每个服务器(例如,服务器1 108A、服务器2 108B、服务器3 108C、和直到服务器N 108D)可以包括独有指纹、公共指纹或者其一些组合。多个服务器108中的每个服务器可以包括多个公共指纹和/或独有指纹。多个服务器108中的每个服务器可以创建独有指纹和/或公共指纹。在另一个示例中,多个服务器108中的每个服务器可以不包括独有指纹或公共指纹。在此类示例中,系统102可以获得多个服务器108的清单并且然后创建对应的指纹(独有以及公共两者)。另外,在创建指纹之后,系统102可以将对应的指纹和服务器标识存储在系统102机器可读存储介质106中,并且将特定服务器的指纹存储在特定服务器的机器可读存储介质中。在另一个示例中,服务器的机器可读存储介质可以包括创建指纹(独有以及公共两者)的指令。在此类示例中,服务器可以执行指令来在引导时、在提示时、或者在一些指定的时间创建指纹。在另外的示例中,系统102可以向多个服务器108发送提示以创建指纹。多个服务器108中的每个服务器可以将相关联的独有指纹和/或公共指纹存储在服务器的机器可读存储介质中。
在示例中,由系统102确定的清单可以是组件的列表、由组件利用的固件、固件版本以及相关联的服务器。在另一个示例中,可以将其他信息包括在清单中。例如,清单可以包括与组件和固件相关联的指纹。在另一个示例中,清单可以包括与(独有的和/或公共的)指纹相关联的服务器的列表。在另一个示例中,系统102可以将清单存储在机器可读存储介质中。可以以Java脚本对象标记(JSON)格式、数据库文件格式、可扩展标记语言(XML)格式、电子表格格式或者提供容易的人机可读性的一些其他类似的格式来存储清单。
在框204,系统102可以基于多个服务器108的清单来创建已安装固件的公共集合和已安装固件的多个独有集合。响应于完成多个服务器108的清单,系统102可以创建已安装固件的集合。系统102可以创建已安装固件的多个独有集合和已安装固件的公共集合。已安装固件的公共集合包括在多个服务器上是公共的固件。与多个独有集合相比,公共集合可以与更大量的服务器相关联。在示例中,已安装固件的公共集合和已安装固件的独有集合可以是安装在服务器上的固件的列表。列表可以包括固件版本。在另一个示例中,安装在公共集合中的固件版本可以在与该公共集合相关联的所有服务器上是相同的。在另一个示例中,系统102将已安装固件的公共集合和已安装固件的独有集合存储在机器可读存储介质106中。在另一个示例中,已安装固件的公共集合和已安装固件的独有集合可以包括固件组件或固件程序包。在此类示例中,系统可以存储已安装固件的公共集合和已安装固件的独有集合的固件作为已知良好固件集合。在多个服务器108中的服务器上检测到被破坏的或被包含的固件的示例中,系统102可以将最后的已知良好固件版本部署到受影响的服务器。换句话说,系统102可以将固件回退到该最后的已知良好集合。
在框206,系统102可以创建已安装固件的公共集合的子类集合。换句话说,系统102可以对已安装固件的公共集合进行子分类。在示例中,子分类可以基于固件的类型和/或与固件相关联的组件。例如,子类可以包括BMC固件、可编程接口控制器(PIC)固件、I/O固件、核心系统固件(诸如BIOS、统一可扩展固件接口(UEFI),等等)、硬盘驱动器(HDD)固件、固态驱动器(SSD)固件、高速非易失性存储器(NVMe)固件、管理引擎(ME)固件,等等。在另一个示例中,清单和安装集合可以包括驱动器和各种其他应用,诸如代理和实用程序。在此类示例中,驱动器和其他应用可以在所有服务器上是公共的。在此类情况中,子类可以包括(按设备)的代理、实用程序(诸如诊断或阵列配置),和驱动器。在另一个示例中,系统可以在确定子类时考虑其他参数。例如,系统可以考虑特定固件是否对另一个固件具有依赖性。在此类示例中,可以将特定固件与特定固件所依赖的固件分组在一起。在另一个示例中,可以将可以引起系统再启动的固件分组在一起。系统102可以在创建子类时考虑其他参数。
在框208,系统102可以获取与已安装固件的子类集合和已安装固件的独有集合相对应的固件更新版本。换句话说,系统102可以获取多个服务器108的已安装固件更新版本。在示例中,系统102可以通过web服务器自动地获取固件更新。在另一个示例中,用户可以向系统102提供固件更新。在另一个示例中,可以通过至web页面的链接来获取固件更新。在此类示例中,可以将许多固件更新包括在包中。该包可以包括许多固件更新、不与多个服务器108相关联的一些固件更新。在另一个示例中,可以以规则的间隔使固件更新可用。在另一个示例中,也可以在任何时间使关闭间隔或一个关闭固件更新可用。在另一个示例中,随着系统102获取固件更新,系统102可以将更新保存到机器可读存储介质106。由于尺寸,固件更新可以处于压缩状态中。系统102可以将更新解压缩并且将实际的固件更新存储在机器可读存储介质106中。
在框210,响应于更新请求,系统102可以创建用于与已安装固件的子类集合和已安装固件的独有集合相对应的固件更新版本的容器。在示例中,可以以规则的间隔设置或调度更新请求。在另一个示例中,用户可以提示更新请求。在另一个示例中,通过事件来提示更新请求。事件可以包括新的固件更新可用性、由固件更新引起的问题、添加到服务器的新的组件、添加到多个服务器108的新的服务器和其他场景。在另一个示例中,系统102可以创建用于固件的在先的版本的容器并且可以将请求降级至固件的在先的版本而并非创建用于固件更新版本的容器。在另一个示例中,系统102利用存储在机器可读存储介质106中的并且由处理器104执行以创建容器的应用。在另一个示例中,系统102将所创建的每个容器部署到多个服务器中的一个服务器。在此类示例中,基于待更新服务器的位置、网络拓扑、服务器工作负载,以及固件更新的尺寸来确定托管容器的服务器。例如,如果多个服务器108中的服务器的群组共享公共指纹、利用相同的固件更新,并且位于同一数据中心中,那么系统102可以从服务器的该群组中选择服务器来托管包含用于服务器的该群组的固件更新的容器。在另一个示例中,容器存储与已安装固件的特定公共集合、已安装固件的独有集合或者已安装固件的子类集合相关联的固件。在另一个示例中,取决于在以上的示例中提及的那些的各种参数,容器可以存储与已安装固件的不止一个集合相关联的固件。
在框212,系统102可以向多个服务器108发送更新消息,该消息包括至相应容器的链接。在示例中,系统102可以基于各种参数来向多个服务器108中的服务器发送更新。在此类示例中,参数可以包括可以更新多少服务器、服务器位于哪里、每容器多少服务器以及固件更新处理的任何其他独有的方面(例如,固件安装过程包括系统再启动或固件更新包括对其他固件更新的依赖性)。在另一个示例中,系统102可以基于多个服务器的拓扑或网络拓扑来将更新信号分阶段以防止瓶颈。
在另一个示例中,系统102可以包括响应于多个服务器108中的服务器改变而发送通知的指令。在此类示例中,可以将组件添加到服务器。在此类示例中,服务器可以通过管理网络或一些其他网络连接向系统102发送通知以向系统102通知新的组件已经被添加。在此类示例中,系统102可以采取行动。此外,相应的服务器的BMC可以发送通知。在另一个示例中,如果在没有来自系统102的提示的情况下更新固件或其它应用,则相应的服务器的BMC可以通过管理网络来发送信号。在此类示例中,系统102可以通过将更新的固件或其它应用分别降低等级到最后的已知良好固件或其它应用,来采取校正动作。在另一个示例中,相应的服务器的BMC可以在外壳侵入时向系统102发送信号。在另一个示例中,在由系统102接收通知时,系统102可以采取校正动作和/或向用户或管理员发送通知。
如上面指出的,图1图示出包括处理器104和机器可读存储介质106的系统102以及与系统102进行通信的多个服务器108的示例。在示例中,系统102是管理站、单个管理服务器、远程管理计算设备或应用、运行管理应用的多个服务器或者能够管理多个服务器108的一些其他系统。
在示例中,系统102包括处理器104来获得多个服务器108的清单。在此类示例中,系统102可以基于多个指纹(独有指纹以及公共指纹两者)来获得清单。在另一个示例中,系统102可以通过扫描多个服务器108中的每一个并且记录多个服务器108的组件、与服务器的组件相关联的固件以及所已安装固件版本,来获得清单。在示例中,清单可以包括固件组件的列表、以及版本和与固件组件和组件(例如,服务器的硬件)相关联的服务器。清单可以包括其他信息。
在示例中,多个服务器108可以不包括指纹。在此类示例中,系统102可以基于从多个服务器108获得的清单来创建指纹。所创建的指纹可以包括公共指纹和独有指纹。公共指纹可以包括在多个服务器108中的多个服务器上的公共的组件。换句话说,数据中心中的服务器可以由同一类型或型号的服务器中的许多组成。在一些示例中,这些服务器可以全部具有相同的组件类型。因此,一旦获得清单,如果服务器具有相同的指纹,则可以不再次为具有相同的指纹的任何其他服务器获得清单。例如,如果一千个服务器具有相同的指纹,那么可以获得数千服务器的一个清单。在其中服务器108不包括指纹的示例中,系统102或服务器108可以创建指纹。每个服务器可以包括在(例如通过系统102)被提示时、在引导时、或者在一些预先确定的时间创建指纹的应用。每个服务器可以基于服务器中的组件、安装在服务器上的固件,和各种其他参数来创建指纹。一旦指纹被创建,则系统102可以获得多个服务器的清单。系统102可以获得具有特定指纹的服务器的清单,并且如果系统102到达具有相同的指纹的另一个服务器,那么系统102可以不获得其他服务器的清单,这是因为指纹相同的事实可以确立服务器具有相同的清单。多个服务器108中的许多服务器可以包括独有的组件,诸如独有PCI卡片、图形卡,或者其他周围的卡片或驱动。在此类示例中并且如上所述,系统102或服务器可以创建独有指纹。独有指纹可以被若干服务器共享,但是不与共享公共指纹的服务器在相同的比例。
在另一个示例中,处理器基于可以基于独有指纹和公共指纹的所获得的清单来创建安装集合。安装集合可以包括服务器当前已安装的固件组件。系统102可以存储固件组件作为对存储到多个服务器108上的新的已安装固件组件的备份。备份可以确保固件的最后的已知良好的状态。备份可以针对坏的固件更新、可能的破坏、和可能的安全威胁来保护服务器。系统102也可以基于对多个服务器108上的当前已安装固件的更新来创建安装集合。在此类示例中,安装集合可以基于可用的更新,以及基于多个服务器108的独有指纹和公共指纹所获得的清单。在示例中,在更新被安装在多个服务器108中之后,系统102将由系统102利用的安装集合作为备份来存储。
在另一个示例中,处理器104可以将安装在多个服务器108上的安装集合分阶段。系统102可以以部分地基于指纹、多个独有指纹、服务器的拓扑、要被已安装固件或软件的类型、更新的尺寸、待更新服务器的量、更新是否可以具有与更新相关联的停机时间、更新是否具有特殊的更新指令或者其一些组合的次序,来将安装集合分阶段。
在另一个示例中,一旦更新被分阶段,系统102可以部署安装集合。在示例中,系统102可以将安装集合部署到由系统102创建的容器。在另外的示例中,多个服务器108中的各个服务器可以托管容器。在另一个示例中,部分地基于服务器拓扑、网络拓扑、待更新服务器的量、容器的尺寸以及更新指令,来确定容器可以被托管在其上的各个服务器。在示例中,多个服务器108中的每个服务器可以包括应用来托管容器。在另一个示例中,系统102可以包括应用来创建容器。
一旦安装集合被计算和部署,系统102就可以发送更新通知。在示例中,通知可以包括至相应容器的链接。在示例中,系统102可以通过管理网络向多个服务器108中的一个或多个服务器的BMC发送更新通知。在另外的示例中,多个服务器108中的服务器的BMC执行与服务器相关联的固件的安装或更新。发送更新信号或更新通知的每个服务器可以执行更新操作。
在另一个示例中,多个服务器108中的服务器可以在服务器物理改变时向系统102发送通知。例如,如果将组件添加到服务器或从服务器移除组件,则关于该服务器的指纹可以被改变。服务器可以向系统102通知服务器已经改变并且系统102可以指出关于该服务器的指纹、更新关于该服务器的清单,并且然后更新关于该服务器的指纹(或除与服务器相关联的任何其他指纹之外,创建新的指纹)。
在另一个示例中并且如上所述,系统102可以接收安全通知。多个服务器108中的服务器可以向系统102发送安全通知。例如,如果服务器经历安全事件,则服务器的BMC可以通知系统102。响应于通知接收,系统102可以采取校正动作。在示例中,安全事件可以包括硬件改变、固件改变、软件改变、非授权访问、物理闯入或者一些其他异常。在另一个示例中,校正动作可以包括固件回退、固件更新、软件回退、软件更新、服务器隔离、服务器关闭、用户通知、管理员通知和/或应用通知。
在另一个示例中,多个服务器108可以包括大型服务器集合或计算设备。例如,服务器的集合可以以几万计数或更大。多个服务器108不局限于大型集合的服务器。多个服务器108也可以包括较小数量的服务器。
图3是能够确定清单、创建子类、创建固件安装集合,并且创建和部署容器的计算设备300的框图。计算设备300可以包括处理资源302和机器可读存储介质304。处理资源302可以执行包括在机器可读存储介质304中的指令。机器可读存储介质304可以包括指令306来确定多个服务器的公共清单和独有清单。当被执行时,指令306可以采集多个服务器的指纹。对于公共指纹,可以对于一个服务器获得清单,这是因为具有公共指纹的服务器上的组件可以是相同的。对于独有指纹,可以按服务器获得清单,这是因为每个唯一服务器的组件可以是不同的。在示例中,一些服务器可以包括多个指纹。在另外的示例中,服务器可以包括公共指纹和独有指纹两者。在此类示例中,公共指纹可以识别服务器的特定公共的组件。如果用于那些特定部件的清单已经被获得,则计算设备300可以跳过用于那些特定组件的清单。独有指纹可以识别独有的或非标准组件。计算设备可以获得那些组件的清单、注释组件、与组件相关联的被安装的固件以及已安装固件版本。
机器可读存储介质304可以包括指令308来创建子类。如上面指出的,公共清单可以包括若干不同的组件。可以根据各种参数将组件进一步分解。在以上描述了这些参数。
机器可读存储介质304可以包括指令310来创建固件安装集合。安装集合可以基于可用固件更新。安装集合也可以基于从服务器获得的清单。例如,一个安装集合可以包括用于公共清单的子类的固件更新,而另一个安装集合可以包括用于独有清单的固件更新。
机器可读存储介质304可以包括指令312来创建容器。如上所述,可以使用容器来存储用于服务器集合的更新。计算设备300可以在确定安装集合时创建容器。计算设备300可以在更新可用时创建用于固件更新的容器。
机器可读存储介质304可以包括指令314来将容器部署到多个服务器中的一服务器。计算设备300将容器部署到哪个服务器可以基于各种参数(在以上描述的),诸如待更新服务器的物理位置或待更新服务器的量。
尽管图2的流程图示出执行的特定次序,但执行的次序可以不同于所描绘的次序。例如,可以相对于所示出的次序将两个或更多块或者箭头的执行的次序搅乱。而且,可以并行地或在部分同时发生的情况下执行连续地示出的两个或更多块。所有此类变化处于本公开的范围内。
已经使用本公开的示例的非限制性具体实施方式描述了本公开,并且本公开并不意图限制本公开的范围。应当理解的是,可以将参考一个示例所描述特征和/或操作与其他示例一起使用,并且不是本公开的所有示例都具有特定图中图示出的或参考示例之一所描述所有特征和/或操作。本领域技术人员将想起所描述的示例的变体。此外,当在本公开和/或权利要求中被使用时,术语“包括”、“包含”、“具有”和它们的词形变化应当意指“包括但是不一定局限于”。
请注意,以上所描述的示例中的一些可以包括结构、结构的行为或细节以及可能不对本公开是必要的并且意图为示例的行为。如现有技术中已知的,即使结构或行为是不同的,也可通过执行相同的功能的等同物来更换在本文描述的结构和行为。因此,本公开的范围仅仅受限于如在权利要求中使用的要素和限制。
Claims (20)
1.一种方法,包括:
基于独有指纹和公共指纹来确定多个服务器的清单;
基于所述多个服务器的清单来创建已安装固件的公共集合和已安装固件的多个独有集合;
基于已安装固件的公共集合和包括在所述多个服务器中的组件的类别来创建已安装固件的子类集合;
获取与所述已安装固件的子类集合和所述已安装固件的独有集合相对应的固件更新版本;
响应于更新请求,创建用于与所述已安装固件的子类集合和所述已安装固件的独有集合相对应的所述固件更新版本的容器;并且
向所述多个服务器发送包括至相应容器的链接的更新消息。
2.根据权利要求1所述的方法,其中,所述容器被部署到与待更新服务器紧靠的服务器。
3.根据权利要求1所述的方法,其中,所述公共集合和所述独有集合包括在处理器上可执行的驱动器和应用。
4.根据权利要求1所述的方法,其中,所述子类包括核心系统固件和输入/输出(IO)固件。
5.根据权利要求1所述的方法,其中,所述子类集合和所述独有集合被更新。
6.根据权利要求1所述的方法,进一步包括:
响应于所述多个服务器中一服务器的硬件改变的通知,重新确定所述服务器的清单,其中,通过管理网络从该服务器的基板管理控制器(BMC)发送所述硬件改变的通知。
7.根据权利要求1所述的方法,进一步包括:
响应于所述多个服务器中一服务器的硬件改变,确定是否出现安全事件,其中,该服务器的基板管理控制器(BMC)通过管理网络发送所述硬件改变的通知。
8.一种系统,包括:
非暂时性机器可读存储介质;
处理器,用于:
获得多个服务器的清单;
基于所述多个服务器的清单来创建所述多个服务器的公共集合的指纹;
基于所述多个服务器的清单来创建所述多个服务器中的每个唯一服务器的多个独有指纹;
安装引擎,用于:
基于在所述非暂时性机器可读存储介质中的可用固件更新,来确定针对所述指纹的安装集合和针对所述多个独有指纹的多个安装集合;以及
优化器,用于:
以部分地基于所述指纹、所述多个独有指纹和所述多个服务器的拓扑的次序来将所述安装集合和所述多个安装集合分阶段;
以分阶段的次序来部署所述安装集合和所述多个安装集合。
9.根据权利要求8所述的系统,其中,基于用于组件的固件更新,将所述指纹子分类为多个更小的指纹。
10.根据权利要求8所述的系统,其中,所述分阶段部分地基于由于所述固件更新而导致的可能的停机时间。
11.根据权利要求8所述的系统,其中,在硬件组件被添加到所述多个服务器的公共集合中的服务器时,更新所述指纹。
12.根据权利要求8所述的系统,其中,响应于所述多个服务器中一服务器的组件的移除,所述多个服务器中的该服务器的基板管理控制器(BMC)向所述系统发送通知。
13.根据权利要求12所述的系统,其中,所述通知是安全通知。
14.根据权利要求12所述的系统,其中,响应于所述通知,所述系统向管理员发送通知、更新所述多个服务器中的该服务器的清单并且更新与所述多个服务器中的该服务器的清单相关联的指纹。
15.根据权利要求8所述的系统,其中,所述系统是不作为所述多个服务器的部分的分立服务器。
16.根据权利要求8所述的系统,其中,所述固件更新是以指定的时间间隔自动地从web服务器获取的。
17.一种利用由处理器可执行的指令编码的非暂时性机器可读存储介质,所述非暂时性机器可读存储介质包括用于进行以下操作的指令:
基于公共集合的指纹来确定多个服务器的公共清单,并且基于所述多个服务器中的每个唯一服务器的独有指纹来确定所述多个服务器的多个独有清单;
基于所述公共集合中的固件来创建所述公共清单的子类;
基于可用固件更新来创建用于所述子类和所述独有清单的固件安装集合;
创建用于每个固件安装集合的容器;以及
部分地基于固件更新的数量、所述公共集合中的服务器的数量、唯一服务器的数量和所述多个服务器的拓扑来部署所述容器。
18.根据权利要求17所述的非暂时性机器可读存储介质,进一步包括用于响应于所述多个服务器中一服务器的硬件组件的移除来接收通知的指令。
19.根据权利要求17所述的非暂时性机器可读存储介质,其中,在稍后的固件更新中,重新使用用于创建所述公共集合的指纹和每个唯一服务器的独有指纹的指令。
20.根据权利要求19所述的非暂时性机器可读存储介质,进一步包括用于在硬件组件被添加到所述多个服务器中的服务器时,更新所述指纹和所述独有指纹的指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/833,666 | 2017-12-06 | ||
US15/833,666 US10956143B2 (en) | 2017-12-06 | 2017-12-06 | Server updates |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109889359A true CN109889359A (zh) | 2019-06-14 |
Family
ID=64604516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811487899.9A Pending CN109889359A (zh) | 2017-12-06 | 2018-12-06 | 服务器更新 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10956143B2 (zh) |
EP (1) | EP3495946A1 (zh) |
CN (1) | CN109889359A (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11023586B2 (en) * | 2018-10-26 | 2021-06-01 | American Megatrends International, Llc | Auto detection mechanism of vulnerabilities for security updates |
US11023217B2 (en) * | 2018-11-09 | 2021-06-01 | Dell Products L.P. | Systems and methods for support of selective processor microcode updates |
US11829478B2 (en) * | 2019-01-08 | 2023-11-28 | Oracle International Corporation | Full server recovery architecture for cloud bare metal instances |
CA3132498C (en) | 2019-01-08 | 2024-01-02 | Bank Of Montreal | Systems and methods for pushing firmware binaries using nested multi-threader operations |
US11354145B2 (en) * | 2019-08-28 | 2022-06-07 | International Business Machines Corporation | Creating process fingerprints based on virtualized containers for determining software product usage |
US11650887B2 (en) * | 2020-09-02 | 2023-05-16 | Dell Products L.P. | Systems and methods for retrieving optimal firmware recovery image in an information handling system |
US11474807B1 (en) * | 2021-03-31 | 2022-10-18 | American Megatrends International, Llc | Firmware update method and computer program product for updating firmware |
US20220334820A1 (en) * | 2021-04-20 | 2022-10-20 | Dell Products, L.P. | System and method for intermediate software upgrades for information handling systems |
CN113467801B (zh) * | 2021-06-11 | 2024-02-23 | 浪潮电子信息产业股份有限公司 | 一种bmc固件应用更新方法、bmc、系统及存储介质 |
CA3230572A1 (en) * | 2021-09-01 | 2023-03-09 | Stuart H. Floyd | Software deployment on vehicles |
US20240095002A1 (en) | 2022-09-21 | 2024-03-21 | Ncr Corporation | Updated driver installation |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160026449A1 (en) * | 2014-07-28 | 2016-01-28 | International Business Machines Corporation | Software Discovery in an Environment with Heterogeneous Machine Groups |
CN105487905A (zh) * | 2015-11-27 | 2016-04-13 | 东软集团股份有限公司 | 一种混合应用的更新方法和装置 |
CN105871580A (zh) * | 2015-11-02 | 2016-08-17 | 乐视致新电子科技(天津)有限公司 | 跨集群自动化部署运维系统及方法 |
CN106648741A (zh) * | 2016-10-18 | 2017-05-10 | 广州视睿电子科技有限公司 | 一种应用系统部署方法及装置 |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6990660B2 (en) | 2000-09-22 | 2006-01-24 | Patchlink Corporation | Non-invasive automatic offsite patch fingerprinting and updating system and method |
EP1398694B1 (en) * | 2002-07-26 | 2013-09-11 | Canon Kabushiki Kaisha | Information processing method |
US7478381B2 (en) * | 2003-12-15 | 2009-01-13 | Microsoft Corporation | Managing software updates and a software distribution service |
US20060136710A1 (en) * | 2004-12-22 | 2006-06-22 | Kenji Oka | Allowing or disallowing firmware upgrade based on comparison of firmware-related bits |
US20060253617A1 (en) * | 2005-04-22 | 2006-11-09 | Microsoft Corporation | Driver upgrade tools |
JP2007156587A (ja) * | 2005-12-01 | 2007-06-21 | Hitachi Ltd | 電源制御方法およびこれを実現するシステム |
US9395968B1 (en) * | 2006-06-30 | 2016-07-19 | American Megatrends, Inc. | Uniquely identifying and validating computer system firmware |
US7590835B1 (en) * | 2006-06-30 | 2009-09-15 | American Megatrends, Inc. | Dynamically updating a computer system firmware image |
US8707297B2 (en) * | 2006-07-26 | 2014-04-22 | Dell Products L.P. | Apparatus and methods for updating firmware |
US7996829B2 (en) * | 2006-07-31 | 2011-08-09 | Hewlett-Packard Development Company, L.P. | Managing software revisions for servers in an infrastructure |
US9112891B2 (en) * | 2007-02-02 | 2015-08-18 | Sharp Laboratories Of America, Inc. | Remote firmware management for electronic devices |
US8122447B2 (en) * | 2007-07-31 | 2012-02-21 | Hewlett-Packard Development Company, L.P. | Firmware installation |
US8732829B2 (en) * | 2008-04-14 | 2014-05-20 | Tdi Technologies, Inc. | System and method for monitoring and securing a baseboard management controller |
JP5342302B2 (ja) | 2009-03-30 | 2013-11-13 | 株式会社日立ソリューションズ | ファームウェア更新システム、ファームウェア配信サーバ、及びプログラム |
US8458310B1 (en) | 2009-09-14 | 2013-06-04 | Symantec Corporation | Low bandwidth streaming of application upgrades |
US8713558B2 (en) | 2010-09-01 | 2014-04-29 | Red Hat, Inc. | Generating package profiles in software package repositories using selective subsets of packages |
JP5539129B2 (ja) * | 2010-09-13 | 2014-07-02 | キヤノン株式会社 | 画像形成装置、ファームェアのアップデート方法、及び、プログラム |
US9032053B2 (en) * | 2010-10-29 | 2015-05-12 | Nokia Corporation | Method and apparatus for upgrading components of a cluster |
US8606892B2 (en) * | 2011-11-28 | 2013-12-10 | Wyse Technology Inc. | Deployment and updating of applications and drivers on a client device using an extensible markup language (XML) configuration file |
CN103138940B (zh) * | 2011-11-28 | 2016-06-01 | 英业达科技有限公司 | 服务器机架系统 |
US8769075B2 (en) * | 2012-01-18 | 2014-07-01 | International Business Machines Corporation | Use of a systems management tool to manage an integrated solution appliance |
US8972973B2 (en) * | 2012-06-27 | 2015-03-03 | Microsoft Technology Licensing, Llc | Firmware update discovery and distribution |
US9235404B2 (en) * | 2012-06-27 | 2016-01-12 | Microsoft Technology Licensing, Llc | Firmware update system |
US9015694B2 (en) | 2012-10-31 | 2015-04-21 | Aruba Networks, Inc | Cloud-based firmware distribution service |
US9563497B2 (en) * | 2012-12-19 | 2017-02-07 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Correcting a failure associated with a current firmware image |
US9665366B2 (en) | 2014-09-26 | 2017-05-30 | Oracle International Corporation | Creation of a software configuration signature for software |
US9461969B2 (en) * | 2013-10-01 | 2016-10-04 | Racemi, Inc. | Migration of complex applications within a hybrid cloud environment |
CN104679530B (zh) * | 2013-11-26 | 2017-12-29 | 英业达科技有限公司 | 服务器系统与固件更新方法 |
US10331428B1 (en) * | 2014-09-30 | 2019-06-25 | EMC IP Holding Company LLC | Automated firmware update management on huge big-data clusters |
WO2016076880A1 (en) * | 2014-11-14 | 2016-05-19 | Hewlett Packard Enterprise Development Lp | Secure update of firmware and software |
US10433168B2 (en) * | 2015-12-22 | 2019-10-01 | Quanta Computer Inc. | Method and system for combination wireless and smartcard authorization |
US10430263B2 (en) * | 2016-02-01 | 2019-10-01 | Electro Industries/Gauge Tech | Devices, systems and methods for validating and upgrading firmware in intelligent electronic devices |
US9967136B2 (en) * | 2016-03-28 | 2018-05-08 | Dell Products L.P. | System and method for policy-based smart placement for network function virtualization |
KR20170126230A (ko) * | 2016-05-09 | 2017-11-17 | 한국전자통신연구원 | 펌웨어 업데이트 장치 및 방법, 그리고 펌웨어 업데이트 시스템 |
US10691803B2 (en) * | 2016-12-13 | 2020-06-23 | Amazon Technologies, Inc. | Secure execution environment on a server |
US10756974B2 (en) * | 2017-06-09 | 2020-08-25 | Rockwell Automation Technologies, Inc. | Launch multiple devices firmware update operation from another application with device list context |
-
2017
- 2017-12-06 US US15/833,666 patent/US10956143B2/en active Active
-
2018
- 2018-12-04 EP EP18210036.2A patent/EP3495946A1/en not_active Withdrawn
- 2018-12-06 CN CN201811487899.9A patent/CN109889359A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160026449A1 (en) * | 2014-07-28 | 2016-01-28 | International Business Machines Corporation | Software Discovery in an Environment with Heterogeneous Machine Groups |
CN105871580A (zh) * | 2015-11-02 | 2016-08-17 | 乐视致新电子科技(天津)有限公司 | 跨集群自动化部署运维系统及方法 |
CN105487905A (zh) * | 2015-11-27 | 2016-04-13 | 东软集团股份有限公司 | 一种混合应用的更新方法和装置 |
CN106648741A (zh) * | 2016-10-18 | 2017-05-10 | 广州视睿电子科技有限公司 | 一种应用系统部署方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3495946A1 (en) | 2019-06-12 |
US10956143B2 (en) | 2021-03-23 |
US20190171436A1 (en) | 2019-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109889359A (zh) | 服务器更新 | |
US10931599B2 (en) | Automated failure recovery of subsystems in a management system | |
US11461125B2 (en) | Methods and apparatus to publish internal commands as an application programming interface in a cloud infrastructure | |
CN100417081C (zh) | 检查和修复网络配置的方法和系统 | |
US7698391B2 (en) | Performing a provisioning operation associated with a software application on a subset of the nodes on which the software application is to operate | |
KR101574366B1 (ko) | 가상 머신 및 애플리케이션 수명들의 동기화 | |
US9003014B2 (en) | Modular cloud dynamic application assignment | |
US9251165B2 (en) | End to end automation of application deployment | |
US11138058B2 (en) | Hierarchical fault determination in an application performance management system | |
JP2020528629A (ja) | 車両ecuソフトウェアのためのソフトウェアデルタ更新の構築およびツールチェーンに基づく異常検出 | |
US10797952B1 (en) | Intelligent rollback analysis of configuration changes | |
CN107534571A (zh) | 管理虚拟网络功能 | |
US10942801B2 (en) | Application performance management system with collective learning | |
EP2667301B1 (en) | Decision service manager | |
CN115989483A (zh) | 用于大型动态过程执行系统的自动根本原因分析与预测 | |
CN113938321B (zh) | 可扩展的运维管理系统、方法、电子设备和可读存储介质 | |
EP3386151B1 (en) | System of actions for iot devices | |
CN111679888A (zh) | 一种代理容器的部署方法及装置 | |
US20150006736A1 (en) | Method and System for Deploying and Modifying a Service-Oriented Architecture Deployment Environment | |
US20090150882A1 (en) | System and method for software application installation | |
van der Burg et al. | Automated deployment of a heterogeneous service-oriented system | |
EP2869245A2 (en) | Service modeling and execution | |
CN108701035A (zh) | 应用属性的管理 | |
US11159358B2 (en) | Sentry for information technology system blueprints | |
CN109791484A (zh) | 用于动态服务实例部署的短暂基础设施的扩建和拆除 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190614 |
|
WD01 | Invention patent application deemed withdrawn after publication |