更新方法、服务器系统以及非瞬态计算机可读取介质与流程

文档序号:12270964阅读:209来源:国知局
更新方法、服务器系统以及非瞬态计算机可读取介质与流程

本发明涉及一种服务器装置内储存节点固件的管理。



背景技术:

储存节点,例如磁盘簇(JBOD),其通常是由数个储存装置与一个控制器所组成,例如串行连接小型计算机系统接口(SAS)扩张器或其他元件。储存节点通常也需要各种的固件来操纵各种的元件,为了改善各种元件的功能,其每个元件可能被新的固件更新。固件的更新可以在储存节点执行或是通过连结到储存节点的更新服务器来执行(例如:一对一更新)。在一对一更新的情况下,更新服务器可包含固件更新工具,例如扩张固件工具或磁盘(HDD)固件工具。为了在储存节点更新固件,储存节点会与更新服务器做连结(例如:通过串行连接小型计算机系统接口线路),授权程序将会被执行,更新即开始。

然而,当数据储存的需求增加,在单一储存节点中的储存装置数量也可能增加至数千个。再者,储存节点需求的数量也可能增加。当储存节点的数量增加,在每一储存节点中的储存装置的数量也会增加,其中该储存装置需要定期的固件更新,而通过传统的一对一更新程序,来维持储存节点中的固件的最新状态也会变得困难。



技术实现要素:

可以通过本发明权利要求书中特别提到的手段以及组合,来了解且达成本发明的额外特征与优势,或者可以藉由发明原理的实施来进一步知悉。

现今的技术是藉由不同的装置来执行管理固件的系统与方法,例如储存节点。在操作中,一个与主控装置沟通的管理控制器,可以针对一服务器系统内的储存节点,来动态地管理固件更新。例如,主控装置可以判断储存装置、储存装置控制器(例如:一串行连接小型计算机系统接口扩张器)或储存节点内的其他原件的最新固件版本。然后,主控装置传送更新的固件映射文 件至管理控制器。其后,管理控制器传送更新的固件映射文件至与储存装置或存储器装置连结的储存装置控制器,来达成更新。然后,储存装置控制器可以判断更新的固件映射文件是针对储存装置,或者是储存装置控制器本身。藉由判断哪个装置与固件更新连结,则该指定装置的固件更新便可以执行。在一些状态下,指示固件更新程序成功或失败的记录文件会提供给管理控制器。然后,此管理控制器可以传输此文件案至主控装置或其他元件。

更多实施例的细节会伴随着附图与接下来的描述阐明。其他的特征以及潜在的优势将会通过说明书的描述、附图与权利要求书而变得更加明了。

附图说明

图1绘示在储存点上执行固件更新的示范性系统的方块图。

图2A与图2B绘示执行与一串行连接小型计算机系统接口扩张器相连结的存储器装置其固件更新的示范性系统的方块图。

图3绘示传输一来自管理控制器的固件映射文件至一串行连接小型计算机系统接口扩张器的示范性程序的流程图。

图4绘示更新与串行连接小型计算机系统接口扩张器连结的储存装置上的固件的示范性程序的流程图。

图5绘示更新在储存装置上的固件的示范性程序的流程图。

图6绘示执行图1~5的特征与程序的一运算装置的示范性系统的方块图。

不同附图中的相同的附图标记表示同样的元件。

【附图符号说明】

100:储存节点

110:储存控制器

120:串行连接小型计算机系统接口扩张器

130:管理控制器

140:储存装置

142:存储器

150:网络

160:主控装置

201、202、203:存储器

600:系统结构

602:处理器

604:输入装置

606:显示装置

608:网络接口

610:计算机可读取介质

612:总线

614:操作系统

616:网络沟通

618:图形处理系统

620:应用程序

622:系统控制器

具体实施方式

以下为本发明各种不同实施例的讨论,当讨论特定实施例时,应当了解这仅是为了举例说明。本领域技术人员,在不背离本发明的精神与范围下,可以使用其他元件与结构。

现今的技术藉由不同的装置来执行管理固件的系统与方法,例如储存节点。在操作中,一个与主控装置沟通的管理控制器,可以针对一服务器系统内的储存节点,来动态地管理固件更新。以下图1为该程序的描述。图1为一例示性系统的方块图,用以解释根据现今的技术,在储存节点100上所执行的固件更新。如同图1的说明,储存节点100可包含储存控制器110、串行连接小型计算机系统接口扩张器120、管理控制器130以及单一或多个储存装置140。储存节点100可以藉由网络150(例如,区域网络、广域网络、网际网络等),与主控装置160(例如,笔记型计算机、平板计算机、智能手机等)通信连接,其中,储存节点100通过管理控制器130与网络150通信连接。

储存节点100可以是一管理服务器装置,其中该管理服务器装置包括管理控制器130,是用来执行储存节点100的频外管理。例如,此管理控制器可以是一基板管理控制器(BMC),用来与智能平台管理接口(IPMI)或应用程 序接口(API)搭配使用。此基板管理控制器可以独立于储存节点100的中央处理单元之外运作,或者也可独立于储存节点100的操作系统之外运作。可以使用操作程序或计算机可读取指令来装配管理控制器130,用以从远端执行储存装置140的运作(例如:在主控装置160),如在此所述。在运作中,管理控制器130可以藉由网络150,从主控装置160取得储存节点100的服务器配置信息。然后,管理控制器130可通过串行连接小型计算机系统接口扩张器120或其他元件与储存装置140沟通。管理控制器130可以藉由各种不同方法与串行连接小型计算机系统接口扩张器120沟通。例如,提供内部整合电路排流接口(I2C/SMbus)。

串行连接小型计算机系统接口扩张器120可以与管理控制器130沟通,用以支持储存装置140的远端管理,包含储存装置140的固件更新。在操作中,配置串行连接小型计算机系统接口扩张器120,用来接收来自管理控制器130的更新固件映射文件,并且判断此为储存装置140的固件更新。然后,串行连接小型计算机系统接口扩张器120储存固件映射文件,并更新固件。例如,串行连接小型计算机系统接口扩张器120可以储存固件映射文件于单一或多个储存装置140,以待后续串行连接小型计算机系统接口扩张器120的使用来更新储存装置140的固件。

虽然在此将串行连接小型计算机系统接口扩张器120与管理控制器130描述成分开的元件,但各种不同的实施例不限定于此。反之,目前本发明考虑,在一些实施例中,具有网络能力的串行连接小型计算机系统接口扩张器也可以当成储存节点的管理控制器来运作。

虽然各种不同的实施例是根据串行连接小型计算机系统接口扩张器来描述,目前本发明考虑在此描述的方法,可以与其他种类的储存装置控制器或其他元件一起使用,包含这样的控制器。例如,在此所述的方法也可以更新运算装置的固件,其中该运算装置使用互连架构(PCIe)桥接器/开关将NMVe固态硬盘连接到一运算节点。然而,各种实施例并未限制在串行连接小型计算机系统接口扩张器与互连架构(PCIe)桥接器/开关技术,各种实施例是可以与其他技术一起利用。

如图1所绘示,储存节点100可以包含数个个别的储存装置140。例如,每一个储存装置140可为一硬盘(HDD),用来储存数据或计算机程序指令。然而,在一些实施例当中,储存装置140可以配置在容错式磁盘阵列(RAID), 而该容错式磁盘阵列分配数据,以及与平行传输和数据读取相连接。在其他实施例中,磁盘簇(JBOD)的配置可以用来避免需要冗余廉价的磁盘阵列(RAID)的功能。然而,目前的公开考虑在此所述的方法可以与其他储存装置一起使用。

图1还绘示,储存节点100也可以包含与串行连接小型计算机系统接口扩张器120沟通的储存控制器110。例如,储存控制器110可以是串行高级技术附件(SATA)主机总线适配器(HBA)。储存控制器110也可以具有通过串行连接端口的乙太网络连结,用来与其他装置沟通。

如同上述所说,主控装置160,例如一服务器管理系统(SMS),可以用来监控并远端操控储存节点100的运作。再者,主控装置160可以用来判断何时有更新的固件,可以应用在储存节点100上的任何储存装置140。例如,主控装置160可以对管理控制器130发送一查询指令,用以要求有关储存装置140或其他储存节点100的元件的固件当前版本的信息。管理控制器130依次查询储存节点100的元件的固件版本信息,例如,当前正在储存装置140上运作的固件版本。然后,管理控制器130便可采集固件信息,并藉由网络150将它传送回主控装置160。

根据接收当前储存装置140的固件版本信息(或储存节点100上的其他元件),主控装置160便可以判断任何在储存节点100的固件,例如,任一储存装置140的固件是否需要更新。假如有任何一元件需要更新,主控装置160便取回所需的固件,并通过网络150,将其提供给管理控制器130。然后,管理控制器130将该固件提供给串行连接小型计算机系统接口扩张器,用来安装在对应的储存装置140或储存节点100的其他元件。

目前的公开考虑到在一些例子当中,可能无法取得储存装置140或其他元件的固件版本。例如,储存装置140可能已经破坏固件、串行连接小型计算机系统接口扩张器120可能有缺陷且无法正常读取储存装置140上的固件版本,或者是管理控制器130或主控装置160存在着无法正常读取特定元件的固件版本的问题。或者是,这种类型元件的固件版本信息可能是无效的或不正常的。为了解决主控装置160无法判断单一或多个储存装置140的固件版本或其他有关固件的问题,在主控装置160上执行一手段便可使得固件自动更新。例如,假设储存装置140的当前固件版本无法识别,主控装置160上的一个手段可以命令储存装置140的固件自动更新至最新可利用的版本。 然而,在一些实施例中,此手段可以命令固件更新至一特定版本,此特定版本可能是最新也可能不是最新版本。提供这样的配置可以确保储存装置140或其他储存节点100的元件更新至可信赖的版本。同样地,对于储存节点100的其他元件来说,手段是可以具体指定的。

在各种的实施例中,固件以不同形式呈现。例如,在一些实施例中,固件映射文件可以是更新的固件渐进式的复制,此更新固件是直接写入元件来达到更新。在其他实施例中,根据数据压缩算法,可以储存固件映射文件,藉由单一或多个储存节点100及主控装置160,需要一些固件的预先的程序。

在操作中,主控装置160可以通过网络150发送固件映射文件至管理控制器130。在一些实施例中,管理控制器130藉由直接应用固件更新,可以管理储存节点100的固件更新。或者,管理控制器130可以引导串行连接小型计算机系统接口扩张器120或储存控制器110执行更新。

图2A与图2B为图1的简化版本,用来说明存储器装置142的固件更新程序,而其中在储存节点100中,存储器装置142与串行连接小型计算机系统接口扩张器120连结。在操作中,主控装置160发送一查询指令至主控装置控制器130,而该主控装置控制器130需要一个与串行连接小型计算机系统接口扩张器120连接的当前固件版本的识别。例如,储存于存储器装置142的致动区的版本可以回报至主控装置控制器130。主控装置控制器130接收查询的结果并采集目前正在存储器装置142上运作的固件版本信息。这可以包括主控装置控制器130通过串行连接小型计算机系统接口扩张器120,直接存取存储器装置142,或者,指示串行连接小型计算机系统接口扩张器去采集这些信息并将它传送回管理控制器130。然后,主控装置130藉由网络150,将存储器装置142的固件信息传送到主控装置160。

当接收到存储器装置142的当前固件版本信息,主控装置160判断串行连接小型计算机系统接口扩张器120是否有最新的固件。例如,主控装置160可以存取远端数据库(例如,存储器装置供应者的网站或者是数据中心的中央固件数据库),来获得最新固件版本的信息,并且将该信息与存储器装置的固件信息做比较,来判断是否需要更新。假如需要更新,主控装置可以取回最新版本的固件给串行连接小型计算机系统接口扩张器120。

当前的公开考虑到,判断是否更新一特殊元件的固件可能很复杂且需要考虑一些变数。例如,因为各种不同的原因,可能不需要将固件更新至最新 版本。在一些情况下,最新版本的固件可能与储存节点100中的其他元件不相容。在其他情况下,直到经过完全的测试后,才会更新固件。因此,在一些实施例中,判断是否更新固件,可能需要确认单一或多个额外的数据库,来证明一特殊固件是否核准安装。因此,有些例子可能是有可利用的更新固件,但却没有安装。

在需要更新的情形下,主控装置160可以取回并提供一固件映射文件给更新程序。此固件映射文件是一个包含固件内容及结构的映射文件。如同上述所说,固件映射文件可以是片段的固件复制,因此,完整地复制固件储存于记体装置142的结构。然而,如上述所说,可以以压缩格式或其他格式来提供固件映射文件,其中该压缩格式或其他格式需要一些固件映射文件的预先处理。

不论固件映射文件的格式为何,主控装置160可以藉由网络150,发送更新的固件映射文件至主控装置控制器130。固件映射文件可以通过一格式发送至管理控制器130,而其中该格式允许整个固件无误地传输。再者,固件映射文件可以以单一或多个部分提出。然后,管理控制器130接收来自主控装置160的更新固件,并且转送该映射文件到串行连接小型计算机系统接口扩张器120。该串行连接小型计算机系统接口扩张器120可以储存该映射文件于与串行连接小型计算机系统接口扩张器120相连的存储器装置142,用以执行更新程序。

串行连接小型计算机系统接口扩张器的固件更新程序可以用各种不同方法来实现。该方法的一个例子绘示于图2A与图2B。如图2A所绘示,串行连接小型计算机系统接口扩张器可以包含存储器装置142,用以储存该串行连接小型计算机系统接口扩张器的固件。例如,串行连接小型计算机系统接口扩张器可以包含一闪存或其他永久储存装置,用以储存固件。如图2A所绘示,存储器装置142可以包含至少一致动区及一非致动区。该非致动区(例如,安装更新固件的区块)可以是空白的或是已经安装固件在内。然后,该更新固件安装于该非致动区并且启动,得以让串行连接小型计算机系统接口扩张器依靠该非致动区(现在为致动区)让固件运作。该示范的过程在图2A与图2B有详细的描述。

在图2A与图2B的示范过程中,存储器装置具有一致动区(ACT),该致动区储存了使用中的固件(FW.V1),且具有非致动区(INACT),而该非致动区 为空白或包含一些较旧的固件版本(见图2B 201)。然后,该主控装置130提供固件映射文件给串行连接小型计算机系统接口扩张器120,而该串行连接小型计算机系统接口扩张器120判断是否为串行连接小型计算机系统接口扩张器120的更新固件映射文件,或是储存节点上的储存装置140的更新固件映射文件。假如串行连接小型计算机系统接口扩张器120判断是串行连接小型计算机系统接口扩张器120的更新固件,该串行连接小型计算机系统接口扩张器会将更新固件(例如,FW.V2)储存于存储器装置142的非致动区块(见图图2B 202)。因此,该非致动区现在包含从管理控制器130获得的固件(FW.V2)。之后,该非致动区与致动区可以互相交换,(见图2B 203)让拥有最新固件的非致动区变成致动区,拥有旧固件的致动区变成非致动区。然后,藉由存取目前的致动区,使用最新固件(FW.V2),让该串行连接小型计算机系统接口扩张器120可以运作。

致动区与非致动区的设定可以用不同方式来实施。在一些实施例中,存储器装置142的致动区以及非致动区可以通过一组致动标志或致动值来设定。例如,致动区可以与致动值1结合,非致动区可以与致动值0结合。为了使储存装置142交换固件(在写入存储器装置142后),可以藉由使用串行连接小型计算机系统接口扩张器来交换该些区块的致动标志或致动值,让该致动标志或致动值可以改变。例如,串行连接小型计算机系统接口扩张器可以设定非致动区的致动值为1,且设定致动区的致动值为0,用来交换这两个区块并且使更新固件映射文件(FW.V)有效,如图2B 202与203说明。一旦致动区与非致动区的致动标志或致动值相互交换,串行连接小型计算机系统接口扩张器便可以重新启动,而且非致动区变成致动区,致动区变成非致动区。

图3为一方块图,用来说明传输固件映射文件至串行连接小型计算机系统接口扩张器的过程。该过程可以用来提供固件映射文件给储存装置、串行连接小型计算机系统接口扩张器或储存节点上的其他元件。在步骤300中,开始传送固件映射文件至串行连接小型计算机系统接口扩张器。在步骤310中,管理控制器判断串行连接小型计算机系统接口扩张器是否可以运作。也就是说,判断串行连接小型计算机系统接口扩张器是否正常运作且是否准备好接收一更新固件映射文件。假如串行连接小型计算机系统接口扩张器无法运作或是失效,在步骤380中,失败的结果会记录起来且管理控制器会传送 该失败的结果给系统管理服务器(例如,主控装置)。特别的是,该失败的结果可以通过管理控制器指出串行连接小型计算机系统接口扩张器没有正常运作或无法支持储存节点的远端管理。

在步骤310中,当判断该串行连接小型计算机系统接口扩张器正常运作且准备好接收固件映射文件时,管理控制器可以开始传送固件映射文件至串行连接小型计算机系统接口扩张器。例如,在步骤320中,管理控制器可以传送至少一第一部分的固件映射文件至串行连接小型计算机系统接口扩张器。例如,第一部分的固件可以是串行连接小型计算机系统接口扩张器的固件映射文件或是储存节点上特殊的储存装置的固件映射文件。在管理控制器、系统管理服务器或其他地方,该固件映射文件可以划分成几个部分,来加快传输至串行连接小型计算机系统接口扩张器。

步骤320中发送第一部分的固件映射文件,步骤330中,管理控制器可以判断串行连接小型计算机系统接口扩张器对于第一部分的固件映射文件的接收的响应。例如,该串行连接小型计算机系统接口扩张器可以判断是否该第一部分的固件映射文件的接收是全面且无误的。假如步骤330中,串行连接小型计算机系统接口扩张器的响应是传送至串行连接小型计算机系统接口扩张器的固件映射文件有错误或是没有适当地由串行连接小型计算机系统接口扩张器来接收,在步骤380中,该管理控制器可以记录失败的结果。在一些实施例中,失败的结果可以记录于管理控制器的存储器当中。在其他实施例中,该失败的结果可以记录于串行连接小型计算机系统接口扩张器或其他元件中。在步骤360中,该结果可以传送至该系统管理服务器(例如,主控装置)。

然而,当判断固件映射文件已经适当且毫无错误或失真地传送至串行连接小型计算机系统接口扩张器,在步骤340中,管理控制器判断是否有剩余固件映射文件的部分需要传送至串行连接小型计算机系统接口扩张器。假如在步骤340中,有其他部分需要传送至串行连接小型计算机系统接口扩张器,在步骤370中,该管理控制器就可以传送下一个或剩余的固件映射文件至串行连接小型计算机系统接口扩张器。管理控制器可以重复步骤330,340以及370,直到所有的固件映射文件都成功地传送至串行连接小型计算机系统接口扩张器,或者是直到有错误的消息出现。在后面的情况中,步骤380可以记录错误的消息并且于步骤360中,将错误的消息传送至系统管理服务器, 如上述所描述的。

一旦在步骤340中判断所有的固件映射文件都已经传送至串行连接小型计算机系统接口扩张器,管理控制器可以在步骤350中记录成功的结果。在步骤360中,该成功的消息传送至系统管理服务器。然后,管理控制器可以继续之前的程序,包含重复图3的方法。另外,在串行连接小型计算机系统接口扩张器或储存节点中的储存装置中,串行连接小型计算机系统接口扩张器可以开始固件的更新。

图4中有一方块图,用来说明一示范程序,该示范程序是通过一管理控制器,来更新串行连接小型计算机系统接口扩张器的固件映射文件。在步骤400中,程序初始化来执行串行连接小型计算机系统接口扩张器的固件更新。这可以包含配置管理控制器,用以串行连接小型计算机系统接口扩张器的固件更新,其中该更新方式是将串行连接小型计算机系统接口扩张器设定在一更新模式。在一些实施例中,这可能需要将该串行连接小型计算机系统接口扩张器置于离线状态或是将该串行连接小型计算机系统接口扩张器从储存节点装置移除。然而,不同的实施例并不限定于此,在此所述的步骤与程序可以与固件更新程序一起利用,其中该固件更新程序可以让串行连接小型计算机系统接口扩张器进行线上的维护。在步骤400中一旦固件更新初始化,该程序便可以在步骤410中继续进行。

在步骤410当中,串行连接小型计算机系统接口扩张器的固件更新可以写入该串行连接小型计算机系统接口扩张器。例如,如图2A与图2B所描述的存储器装置,串行连接小型计算机系统接口扩张器也可以包含致动区与一非致动区,用以储存固件。如上述所说,该致动区可以包含正在运作中的固件版(例如,图中的FW.V1)。而该非致动区可能是空白的,如同201所说明的,或是可能有之前安装的固件版本。再者,也如同上述图2B所描述的,该致动区可以与第一致动值连结,其中该致动值表示该致动区保留串行连接小型计算机系统接口扩张器所使用的固件(例如"1"),而该非致动区可以与第二致动值连结,其中该非致动值表示该非致动区没有保留串行连接小型计算机系统接口扩张器所使用的固件(例如"0")。在步骤410中,来自该管理控制器的固件映射文件(FW.V2)可以写入非致动区。在一些实施例中,可以藉由管理控制器直接将固件写入该非致动区。在其他实施例中,管理控制器可以将固件映射文件传输给串行连接小型计算机系统接口扩张器,并且由串 行连接小型计算机系统接口扩张器将固件写入该非致动区。然而,固件的写入也可以通过其他元件来完成。

在步骤410中,将固件映射文件写入非致动区后,在步骤420中,串行连接小型计算机系统接口扩张器判断写入非致动区的固件映射文件是否是有效的。例如,串行连接小型计算机系统接口扩张器可以分析非致动区的固件,用以判断该固件映射文件的写入是否为完整且无错误的。

假如在步骤420中,串行连接小型计算机系统接口扩张器判断固件已经适当地写入非致动区,则在非致动固件区块设定一有效标志或一有效值,其中该有效标志或该有效值指示出写入非致动区的固件是否为有效并且是可以使用的。例如,如同步骤430所指出的,在固件封装标头中可以设定一有效值。或是串行连接小型计算机系统接口扩张器可以让该有效值或该有效标志设定于一工作台或其他地方的数据库。在一些实施例中,在设定或改变一有效标志之前,可以通过分析固件的完善性,来确认该映射是有效且可以使用的。例如,藉由循环冗余校验(cyclic redundancy check,CRC)或校验和(Checksum)来确认固件的完善性。此外,该有效值或有效标志可以回传至该管理控制器或甚至监控固件更新程序。

一旦在步骤430中设定有效值或有效标志,该致动的固件可以在步骤440中开始设定。首先,在步骤440中,该致动标志或致动值可以在非致动区与致动区之间相互交换。在一些实施中,步骤440的程序可以包含,在相互交换之前,判定该有效的固件包括一有效值或标志,用来确认该串行连接小型计算机系统接口扩张器与有效固件开始运作。这可以让一启动码使用,来决定在哪里启动该映射文件。在步骤440中,无论是否有确认有效值或有效标志,步骤440也包含设定致动区以及非致动区两者的致动标志与致动值,非致动区当中储存有最近写入的固件,此一固件被标示为暂时保留给串行连接小型计算机系统接口扩张器所使用的固件,致动区标示为不保留存储器装置所使用的固件。例如,串行连接小型计算机系统接口扩张器可以设定非致动区的致动值为1,且设定致动区的致动值为0,用以交换这两个区域。因此,非致动区内的固件变成致动的固件,而致动区内的固件变成非致动的固件,如同上述图2B。

在步骤440中,一旦致动区与非致动区的标志相互交换,串行连接小型计算机系统接口扩张器便可以在步骤450中重新启动。藉由重新启动串行连 接小型计算机系统接口扩张器,该非致动区变成该致动区,而该致动区变成该非致动区。该新致动区包含新写入的固件(例如,FW.V2),该新的非致动区包含先前的运作的旧固件(FW.V1)。在步骤460中,一串行连接小型计算机系统接口扩张器初始化程序开始,通过新写入的固件,使该串行连接小型计算机系统接口扩张器运作。

如上述步骤420所述,写入非致动区的固件可能是无效的。也就是说,该非致动区的固件可能是不完整的或是带有一些错误。当在步骤420中检测到该固件是无效的,在步骤470中,位于非致动区的有效标志或有效值便会指示出无效固件。例如写入非致动区的固件可以与有效值0联系在一起,因此表示该无效的固件不该使用。在步骤480中,错误的消息会回传至管理控制器或更远处的元件。然后,先前的程序可以继续,包含重复图4的方法或是其他在此描述的程序。

图5为一方块图,用来说明储存装置的固件更新的示范程序,其中该储存装置是通过管理控制器,与串行连接小型计算机系统接口扩张器相连结。例如,图5的示范程序可以用来更新图1中储存节点的储存装置。

在步骤500中,储存装置的更新工作阶段开始。在步骤500中,管理控制器让储存装置的更新工作阶段开始。这个步骤可以包含如图1所描述的,系统管理服务器传送一查询消息至该管理控制器,其中该管理控制器需要正在储存节点的储存装置上运作的固件版本。主控装置接收查询的结果并且采集与固件版本相关的信息,其中该固件版本正在储存装置上运作。之后,管理控制器可以获得该储存装置所需的固件并且转送该固件至串行连接小型计算机系统接口扩张器。如同上述,通过网络,该固件可以由系统管理服务器或其他装置来利用。

一旦更新工作阶段在步骤500中初始化,在步骤510当中,串行连接小型计算机系统接口扩张器判断更新的储存装置固件映射文件是否是有效的。类似于图4的程序,这可以包含有效标志或有效值的设定,其中该有效标志或有效值用以指示该固件是有效的。假如在步骤510中,该固件映射文件是无效的,该程序继续进行步骤570。在步骤570中,错误消息会传送至管理控制器,其中该管理控制器是有关于无效固件映射文件的记录与后续的处理。假如在步骤510中,该固件映射文件是有效的,图5的程序将继续进行步骤520。

在步骤520当中,串行连接小型计算机系统接口扩张器可以进一步判断该固件是否与已经储存于储存装置的固件有所不同。假如在步骤520中,固件并无不同,该程序再一次继续进行步骤570。在步骤570中,错误消息可以传送至管理控制器用来记录或是进行更进一步的处理,其中该错误消息指示出该固件映射文件已经安装。假如在步骤520中,该固件映射文件是不同的,图5的程序会继续进行步骤530。在步骤530中,该储存装置的固件更新开始执行。

一旦储存装置的固件在步骤530中更新,在步骤540中,串行连接小型计算机系统接口扩张器会判断在固件更新过程中是否有错误发生。例如,在固件于单一或多个储存装置上更新前或更新后,可能检测到该固件有失真或是讹误的情况。在另一例子中,该储存装置的固件可能不是一渐进式的固件重制。在该更新的过程中,可能检测到其他不同的错误,包含:

映射文件种类的错误,尺寸的错误,完整性(循环冗余校验或检验和)的错误,映射文件超时错误,或更新映射文件超时错误。

假如在步骤540中检测到错误,该程序会再一次继续进行步骤570。在步骤570中,错误消息可以传送至管理控制器,其中该管理控制器是有关于该错误消息的记录以及后续的处理。假如在更新过程中没有错误发生,则该程序会继续进行步骤550。

在步骤550中,储存装置可以重新设定,来使得固件映射文件有效。在一些实施例中,该储存装置使用存储器装置来储存串行连接小型计算机系统接口扩张器的固件,如图2A与图2B所述。例如,步骤550也可以包含,藉由串行连接小型计算机系统接口扩张器来设定致动标志或致动值,用以指示预期的固件,其中该致动标志或致动值与储存装置联系。再者,步骤550可以包含藉由串行连接小型计算机系统接口扩张器来使更新的储存装置重新启动或重新设定,令储存装置可以识别重新写入的固件。之后,在步骤560中,储存装置的初始化程序开始,让该储存装置通过重新写入的固件来运作。

图6为一示范性系统结构600的方块图,其中该范性系统结构600执行图1-5的特征及程序。该结构600可以在任何电子装置上执行,包含但不限于:个人计算机,服务器,智能手机,多媒体播放器,电子平板,游戏主机,电子邮件装置等,而其中该电子装置执行来自编辑指令的软件应用程序。在一些实施例中,结构600包含:单一或多个处理器602、单一或多个输入装 置604、单一或多个显示装置606、单一或多个网络接口608及单一或多个计算机可读取的介质610。每一个元件可以藉由总线612来连结。

显示装置606可以是任何已知的显示技术,包含但不限于使用液晶显示(LCD)或发光二极体(LED)技术的显示装置。处理器602可以用任何已知处理器技术,包含但不限于图文处理器以及多核心处理器。输入装置604可以是任何已知的输入装置技术,包含但不限于;一键盘(包含虚拟键盘),鼠标,轨迹球及触控平板或显示器。总线612可以是任何已知内部或外部的总线技术,包含但不限于工业标准结构(ISA),扩展工业标准结构(EISA),外部联结标准(PCI),快捷外设互联标准(PCI Express),新总线(NuBus),通用串行总线(USB),串行高级技术附件(Serial ATA)或传输压缩影像文件的标准(FireWire)。

计算机可读取介质610可以是任何介质,其中介质参与提供指令给处理器602来执行,包含但不限于永久性储存介质(例如,光盘,磁盘,移动存储器等)或非永久性储存器(例如,同步动态随机存取存储器,只读存储器等)。计算机可读取介质(例如,储存装置,介质和存储器)可以包含,例如,包含比特流的有线或无线信号及其类似物。然而,当提到非暂时性的计算机可读取储存装置,明确地排除介质例如,能量,载波信号,电磁波及信号本身。

计算机可读取介质610可以包含不同的指令614用来执行操作程序(例如,MacLinux)。操作程序可以是多用户,多重处理,多工操作,多执行与即时性等。操作程序执行基本操作,包含但不限于识别来自输入装置604的输入;传送输出至显示装置606;保存文件的路径及目录于计算机可读取介质610;控制外部装置(例如,磁盘机,打印机等),其中外部装置可以直接控制或通过一输入/输出控制器(I/O controller);以及管理总线612的流量。网络沟通指令616可以建立且维护网络的连结(例如,执行通信协定的软件,诸如网络通信协议(TCP/IP),超文件传送协定(HTTP),乙太网络(Ethernet)等)。

一图文处理系统618包含指令,其中指令提供图像以及映射文件处理能力。应用程序620可以使用或执行图1-5中所描述的程序。程序也可以在操作程序614来执行。

系统控制器622包含至少一储存控制器,一管理控制器,或一串行连接小型计算机系统接口扩张器。该管理控制器可以独立操作处理器或操作程序 614。在一些实施例中,在处理器602启动前与操作系统614载入处理器602前,该管理控制器是可以启动且运作的。例如,通过一专用的网络接口或他输入装置,管理控制器可以供给运算装置的pre-OS管理。一管理控制器可以是一基板管理控制器,其中该基板管理控制器监控储存节点固件以及执行低阶的储存节点管理,或者是藉由一智能平台管理接口(IPMI),切换器(KVM),区域网络串行,或其他接口,来提供远端管理能力。一管理控制器可以在上述图1-5的程序中执行。

串行连接小型计算机系统接口扩张器为一控制器,该控制器藉由内部集成电路/系统管理总线(12C/SMbus)或SGPIO控制接口,来控制储存节点的固件,以及提供远端管理能力。为了支持远端管理能力,该串行连接小型计算机系统接口扩张器配置用来与该管理控制器沟通。在这个例子中,该串行连接小型计算机系统接口扩张器可以取代串行高级技术附件主机总线配置器。

这些所描述的特征可以在单一或多个计算机程序中执行,其中该计算机程序在可程序化的系统中是可以执行的。这样的可程序化的系统可以包含至少一可程序化处理器,其中该可程序化处理器由数据储存系统、至少一输入装置以及至少一输出装置接收数据与指令,以及将数据与指令发送至数据储存系统、至少一输入装置以及至少一输出装置。一计算机程序是一组指令,该指令可以直接或间接地在一计算机上使用,用来执行某一活动或产生某一结果。一计算机程序可以用任何形式的程序语言(例如,Objective-C,Java)来编写,包含编辑与解释语言,以及它可以用任何形式配置,包含像一单机程序或一模块,元件,子程序或者是其他适用在一运算环境的单元。

适合用来执行一指令程序的处理器包含,例如,一般用途与特殊用途的微型处理器,以及单一处理器或多重处理器或多核心,各种计算机,一般而言,一处理器接收指令与数据,其中该指令与数据来自一只读存储器,一随机存取存储器或是来自两者。计算机的必要元件是一处理器及单一或多个存储器,其中该处理器用来执行指令,而该存储器是用来储存指令与数据。一般而言,计算机也包含:单一或多个大量储存装置,用来储存数据文件。这样的装置包含:磁盘,例如内部硬盘与可移动磁盘;以及磁光盘。适合用来体现计算机程序与数据的储存装置包含所有形式的非永久性存储器,包含半导体存储器装置,例如可擦除程序化只读存储器(EPROM),电子可抹除可程序化只读存储器(EEPROM),以及闪存;磁盘,例如内部硬盘与可移动磁盘;磁 光盘;以及光盘只读存储器(CD-ROM)与数字多功能影音光盘只读存储器(DVD-ROM)。处理器与存储器可以藉由特定功能集成电路(ASICs)补充或是在特定功能集成电路(ASICs)上合并。

为了与使用者互动,这些功能可以在一有显示装置的计算机上执行,例如,阴极射线管(CRT)或液晶显示器(LCD),用来显示信息给使用者与键盘,以及指向装置,例如,鼠标或轨迹球,让使用者可以提供输入进计算机。

这些功能可以在一计算机系统上执行,其中该计算机系统包含后端元件,例如,数据服务器,或者是包含中介平台元件,例如,应用服务器或网际网络服务器,或是包含,前端元件,例如,配置图像使用者接口的用户端计算机或网际网络浏览器,或是任何组合。该系统的元件可以藉由任何形式的数字数据传输来连结,例如,通信网络。通信网络的例子包含,例如,区域网络,广域网络,以及形成网际网络的计算机与网络。

计算机系统包含用户与服务器,用户与服务器通常是互相远距离分开,并且通过一网络来互动。用户与服务器的关系的产生,是通过计算机程序在各自的计算机上运作所产生的效能,以及互相的主从式架构关系。

这些已公开的实施例的单一或多个功能或步骤可以通过应用程序接口(API)来执行。应用程序接口(API)可以定义单一或多个参数,其中这些参数在呼叫程序与其他软件码之间传递(例如,操作程序,库存程序,系统函数),其中软件码提供服务或数据,或者是执行一运作或运算。

应用程序接口(API)在程序码上,可以以单一或多个呼叫来执行,其中该应用程序接口(API)发送或接收单一或多个参数,其中发送或接收是通过参数清单或其他结构,而其中该结构建立在一应用程序接口(API)说明文件所定义的呼叫协议上。参数可以是常数、密钥、数据结构、物件、物件类、变数、数据类型、指标、阵列、目录或是其他呼叫。应用程序接口(API)的呼叫与参数可以用任何可程序化语言来执行。可程序化语言可以定义字汇与呼叫协议,其中编程人员用来存取支持应用程序接口(API)的函数。

在一些实施例中,应用程序接口(API)将执行该应用程序的装置能力回报给应用程序,例如,输入能力,输出能力,处理能力,功率,通信能力等。

一些实施例已经描述。不过,不同改良的出现是可以理解的。例如,在描述的流程图当中,其他步骤可能出现,或是可能删除,以及其他元件可能从已描述的系统中加入或移除。因此,其他实施例在以下的权利要求书内。

虽然各种不同的例子与其他信息已经用来解释权利要求,但是当本领域技术人员可以用这些例子去获得广泛的实施,就不能以该些例子的特殊特征或协议来对权利要求加以限制。再者,虽然一些主题是用特定例子的结构特征或方法步骤来描述,但权利要求书内的这些主题不需要被限定在这些特征或步骤中。例如,除了这些特定之外,该功能性可以不同地来分配或在元件上执行。更确切地说,这些已经公开在例子中的系统元件及方法落在权利要求书之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1