CN100351794C - 使用预定状态机更新数据存储设备中的元件的方法和装置 - Google Patents
使用预定状态机更新数据存储设备中的元件的方法和装置 Download PDFInfo
- Publication number
- CN100351794C CN100351794C CNB2005101235058A CN200510123505A CN100351794C CN 100351794 C CN100351794 C CN 100351794C CN B2005101235058 A CNB2005101235058 A CN B2005101235058A CN 200510123505 A CN200510123505 A CN 200510123505A CN 100351794 C CN100351794 C CN 100351794C
- Authority
- CN
- China
- Prior art keywords
- code packages
- servers
- code
- association
- distributed
- 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.)
- Expired - Fee Related
Links
Images
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)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
一种用于例如通过将更新的内部代码包提供给包括单服务器或多服务器系统的数据存储设备中的元件来更新所述元件的技术。所述更新使用固定状态机来执行,其中在所述状态机的约束内以协调的方式来更新所述元件。在多服务器装置中,在所述状态机的一个遍历中和在所述状态机的分发状态期间,所述代码包被分发到与所述不同的服务器关联的元件。在所述状态机的一个遍历中,在所述状态机的激活状态中激活所述分发的代码包,所以存在并行的激活。通过配置所述状态机所使用的外部更新捆绑包,可以以灵活的方式将所述代码包进行分组。所述代码的分发基于所述分组。
Description
技术领域
本发明一般地涉及计算机系统内的数据存储领域,更具体地说,涉及用于使用状态机来更新多服务器数据存储设备中的元件的技术。
背景技术
诸如公司和其他组织所普遍使用的存储服务器之类的存储设备具有高容量磁盘阵列以存储大量的来自外部主系统的数据。存储设备也可以备份来自其他存储设备(如远程站点)的数据。IBMEnterprise Storage Server(ESS)是此类存储设备的一个实例。此类设备可以访问磁盘阵列或其他存储介质以存储并检索数据。此外,可以提供冗余能力作为进一步的保护来防止数据丢失。例如,双服务器系统包括两个可以访问同一存储磁盘的单独的服务器。
此外,存储设备包括若干被称为可更新元件的子系统和组件,每个子系统和组件都需要其自己的唯一的更新映像和更新命令。例如,各元件被不时地更新以提供新的功能或修复问题。可以被更新的元件包括主机适配器、设备适配器、服务处理器、存储磁盘、电源组件等等。
但是,在更新过程中需要更大的灵活性,特别是当使用固定状态机来执行更新过程时。
发明内容
为了解决这些以及其他问题,本发明描述了一种用于例如通过将更新的内部代码提供给包括单服务器或多服务器系统的数据存储设备中的元件来更新所述元件的技术。所述更新使用固定状态机来执行,其中在所述状态机的约束内以协调的方式来更新所述元件。所述更新包括代码分发和/或代码激活。可以以灵活的方式标识代码包组以便根据所述组来分发和/或激活所述代码。此外,可以同时为多个服务器激活所述分发的代码。
在一个方面中,本发明提供了一种用于部署计算基础结构的方法,包括将计算机可读代码集成到计算系统中,所述计算系统包括数据存储设备,所述数据存储设备至少具有第一服务器和第二服务器,所述第一服务器和第二服务器分别都具有关联的可更新元件,其中与所述计算系统结合的所述代码能够通过执行方法来协调所述数据存储设备中的更新操作。所述方法包括根据固定状态机的不同状态来设置将多个代码包分发到所述第一和第二服务器的所述关联的可更新元件的顺序,其中所述状态被顺序地遍历,并且包括至少一个用于分发所述多个代码包的至少一部分的分发状态,以及至少一个用于在所述多个代码包的所述至少一部分被分发到所述第一和第二服务器的所述关联的可更新元件之后激活所述多个代码包的所述至少一部分的激活状态,根据所述顺序和在所述至少一个分发状态期间,将所述多个代码包的所述至少一部分分发到所述第一和第二服务器的所述关联的可更新元件,以及在所述至少一个激活状态期间和在所述状态机的单个遍历中,激活在所述分发步骤中被分发到所述第一和第二服务器的所述关联的可更新元件的所述多个代码包的所述至少一部分。
在进一步的方面中,上述类型的方法包括将所述多个代码包中的至少两个代码包分组,响应于所述分组,根据所述顺序和在所述至少一个分发状态期间,将所述多个代码包的所述至少一部分分发到所述第一和第二服务器的所述关联的可更新元件,以及响应于所述分组,在所述至少一个激活状态期间和在所述状态机的单个遍历中,激活在所述分发步骤中被分发到所述第一和第二服务器的所述关联的可更新元件的所述多个代码包的所述至少一部分。
在进一步的方面中,上述类型的方法包括根据所述顺序,在所述至少一个分发状态期间和在所述状态机的单个遍历期间,将所述多个代码包的所述至少一部分分发到所述第一和第二服务器的所述关联的可更新元件,以及在所述至少一个激活状态期间和在所述状态机的所述单个遍历期间,激活在所述分发步骤中被分发到所述第一和第二服务器的所述关联的可更新元件的所述多个代码包的所述至少一部分。
还可以提供相关的程序存储设备和数据存储设备。
附图说明
通过参考以下文字和附图,本发明的这些和其他特征、益处以及优点将变得显而易见,在整个视图中,相同的标号指相同的结构,这些附图是:
图1示出了存储设备的方块图;
图2示出了用于执行更新过程的状态机;
图3示出了显示更新过程的矩阵;
图4示出了更新流程;以及
图5示出了用于服务器S0和S1的图4的更新流程的激活状态。
具体实施方式
如上所述,经常需要更新存储设备中不同元件所使用的代码。这种代码通常被称为许可维护码(LMC)(Licensed Maintenance Code)。所述存储设备包括若干被称为可更新元件的子系统和组件,每个子系统和组件都需要其自己的唯一的更新映像和更新命令。
图1示出了存储设备的方块图。整个产品包括硬件管理控制台(HMC)190(如膝上型计算机)和至少一个存储设备(SF)100。示例性存储设备(SF)100包括至少一个存储设备映像(SFI)105以及电源组115(其包括电源116和117)。具体地说,电源组115包括机架电源控制(RPC)和主电源(PPS),出于更新代码的目的,它们可以作为一个单元。SFI包括两个服务器(冗余服务器)S0(140)和S1(160)、若干盘驱动器模块(DDM)110(其是用于客户数据的数据存储设备)以及若干主机适配器(HA)120。HA是存储服务器的物理子单元,提供连接到一个或多个主机I/O接口的能力。每个服务器140、160分别包括至少一个硬盘驱动器(HDD)144、164(也被称为逻辑分区(LPAR)),至少两个设备适配器(DA)143、163(位于至少一个存储外壳(SE)142、162中),以及服务处理器组146、166(有时称为群或计算机电子复合体(CEC))。CEC是一组与每个服务器140、160关联的硬件设备。DA是存储设备100的物理组件,其在服务器140、160和DDM 110之间提供通信。
每个HDD 144、164都具有在其上运行的操作系统(如IBM的AIX 5L操作系统软件)以及驱动程序(也被称为SFI代码)。SFI具有大量组件并具有用于每个组件的代码。SFI代码可以被看作协调大多数其他组件和代码的活动的主代码。本发明部分地包括更新HDD 144、164上的操作系统和SFI代码。服务处理器组146、166和HDD 144、164分别结合以提供服务器基础,但是没有其他元件,所述服务器仍然是不完整的。
通常,当需要代码更新时,技术人员被派遣到存储设备所在的位置并使用HMC 190来执行更新。可替代地,客户可以使用HMC 190来执行更新。进而,更新可以被远程地完成。HMC 190可以将用于更新元件的代码存储到本地(如在CD-ROM上),或者可以例如通过网站来存取该代码。一般地,可更新元件包括HDD 144、164,主机适配器120,电源组件115,DDM 110,存储外壳142、162,设备适配器143、163以及服务处理器组146、166。
图2示出了用于执行更新过程的状态机。本发明用于在固定状态机(其以固定的顺序遍历不同的状态)的环境中协调每个可更新元件的更新操作。所述状态的遍历以相继的周期或循环被重复。例如,简化的状态机200包括状态205、210、215和220,其以示出的顺序一次遍历一个状态。实际上,本发明可以遍历许多或数以百计的不同状态,尽管在每个状态中,不一定为每个可更新元件执行操作。如以下所述,每个状态都与一个或多个在更新元件中执行的操作相关联。
图3示出了显示更新过程的矩阵。如表1所示,第一列列出了不同的状态,也被称为效应因子,例如S-1到S-17。
表1
状态: 操作:
(包状态)
S-1 更新包设置锁
S-2 更新包建立
S-3 更新包预认证
S-4 更新包分发
S-5 更新包开包
S-6 更新包安装
S-7 更新包清理
S-8 更新包解锁
(激活状态)
S-9 更新激活设置锁
S-10 更新激活建立
S-11 更新应用去激活
S-12 更新元件去激活
S-13 更新元件安装
S-14 更新元件激活
S-15 更新应用激活
S-16 更新激活清理
S-17 更新激活解锁
注意,所示状态只是实例。一般地,状态S-1到S-8可以被认为是包状态,与分发代码包或代码包的至少一部分相关,而状态S-9到S-17被认为是激活状态,与激活分发的代码包或分发的代码包的一部分相关。具体地说,在状态S-1和S-2中,执行建立操作。在状态S-3到S-5中,将映像或代码分发到一个或多个元件。在状态S-6中,在元件上安装分发的代码。在状态S-7和S-8中,执行后安装操作。在状态S-9和S-10中,执行预激活操作。在状态S-11和S-12中,元件休眠和被重新引导。在状态S-13中,安装元件处的代码。在状态S-14和S-15中,元件被重新引导并可以恢复其正常运行。在状态S-16和S-17中,为元件执行后激活操作。
其余各列列出了代码包,例如,电源和服务处理器组代码包、HDD代码包(例如,AIX、AIX-PTF(程序临时修复)、AIX-EFIX(电子修复)和SFI)以及DA、HA、SE和DDM代码包。每个代码包下的单元指示了顺序号(如,1、2、3...)。只有一个顺序号的单元指示没有操作状态,例如,没有操作被应用到相关的代码包。符号(S0、S1)指示操作被基本同时或相继应用到服务器S0和S1两者(或多于两个服务器,如果存在)的代码包。在单独子列的标题中的符号(S0)或(S1)指示操作被不连续地应用到每个服务器的代码包。
每个单元中的顺序号指示了状态操作被执行的顺序。在某些情况下,在状态机的一个遍历中和在单个状态中,操作仅被应用到一个代码包。在其他情况下,在状态机的一个遍历中和在单个状态中,操作被应用到多个代码包。此外,在状态机的一个遍历中和在单个状态中,操作可以被应用到多个服务器上的一个或多个代码包。如以下进一步讨论的,这可以通过将代码包分组来实现。状态机的遍历或循环与顺序号之间的相互关系如表2所示。
表2
遍历号: 顺序号:
1 1-17
2 18-34
3 35-41
4 42-145
5 146-162
6 163-171
7 172-188
8 189-197
9 198-214
10 215-231
11 232-240
如图3所示,状态机的一个遍历被用于将某些操作应用到一个服务器,而在其他情况下,状态机的一个遍历被用于将某些操作应用到多个服务器。此外,对于主机适配器(HA)、设备适配器(DA)以及盘驱动器模块(DDM),状态机的单独遍历被用于将激活状态S9-S17中的操作应用到每个元件。作为实例,提供了两个HA(HA1和HA2)、两个DA(DA1和DA2)以及两个DDM(DDM1和DDM2)。实际上,可以存在远多于两个的这些元件,在此情况下,状态机的其他遍历被用于每个元件。还要注意的是,单个遍历被用于为服务器S0和S1(遍历#4)的HDD相关的代码包(AIX、AIX-PTF、AIX-EFIX和SFI)激活分发的代码。
一般地,产品LMC更新体系结构遵循通常被实现以更新单个元件的固定状态机过程。虽然可以提供其中对于更新过程流程状态机被最优化的实现,但是在其他情况下,更新过程必须被执行,其中状态机从状态到状态的顺序在更高的体系结构水平上是相对固定的。本发明在固定状态机的限制内工作以便提供一种灵活的实现,其中可以提供多个元件分组和更新顺序。更新顺序和次序取决于安装方法和更新捆绑包分组规则文件,该文件由HMC 190使用以便使用不同的代码包来更新存储设备100,并且该文件可以从一个代码加载到下一个代码加载被动态地修改。本发明提供了一种解决方案,其在固定状态机的状态中提供了灵活性,同时还允许在状态组中循环的能力。
具体地说,更新过程可以遵照预定的固定状态机顺序,同时提供作用于给定状态内的多个元件的通用性,如动态更新捆绑包中提供的分组方案所规定的。根据动态更新捆绑包中提供的分组方案,提供了一种机制来为多个元件重新定序或重复状态组。因此,本发明的一个优点在于其提供了一种方法,以便在更具有限制性的单个元件状态机过程的体系结构内更新多个元件。本发明还通过更改更新捆绑包中的分组和顺序标识符(而不是更改执行更新的代码)提供了一种动态地更改元件更新次序和元件更新分组的方法,由此在不更改代码的情况下提供了灵活性。本发明还提供了一种正确地排序可更新元件的列表的方法,即使一个或多个可更新元件被某些独立装置从更新捆绑包中移除。
具体地说,更新过程被设计成更新所有可更新元件。但是,如果用户或某些其他过程决定更新那些元件的子集,则更新过程将只更新元件的子集。这可以由用户通过在更新过程开始时从显示的可更新元件列表中取消选择所述元件来实现,或者可以通过将特定的可更新元件从发布捆绑包中排除来完成。发布捆绑包是一个文件,其包含用于特定代码发布的所有可更新包的列表。修改的发布捆绑包或更新捆绑包包含将为特定更新过程更新的包的列表。状态机将顺序地检查更新捆绑包并将包从更新捆绑包应用到相应的可更新元件。
此外,本发明通过群集(例如服务器、资源)提供了一种分隔对可更新元件的更新的方法,其是一个确保特定的多个群集资源不会被同时更新的过程,尽管它们的更新的一部分仍可以同时发生。
还确定了一种对方相关性。例如,一个元件的更新可能取决于另一个元件的更新。或者,在给定元件上安装一个包可能取决于另一个包的安装。
此外,本发明提供了一种在状态机的给定状态内动态地改变包安装次序的机制。具体地说,更新捆绑包指定了在状态机的给定状态内,是否必须在给定的对方元件上连续地运行一组包,或者在继续任何后续的包之前,是否必须为所有的对方元件顺序地运行包。
本发明在固定状态机的环境中运行并可以包括以下对象或属性:
a.更新捆绑包规则文件
ii.元件更新顺序(次序)-由更新捆绑包中的放置次序来定义
iii.元件更新分组
iv.元件更新子分组(队)
b.提取更新捆绑包信息的代码
c.遍历状态机并基于元件、组以及队值为每个元件正确地调用更新方法的代码
d.为每个可更新元件执行特定更新方法的代码
以下更新捆绑包(表3)提供了本发明如何被实现的一个实例。
表3:样例更新捆绑包:
更新包 组.队
包1 A.1
包2 A.2
包3 B.1
包4 B.2
包5 B.2
包6 B.3
包7 C.1
包8 C.2
在最左侧的列(“更新包”)中,更新捆绑包指定了特定更新包应被应用到存储设备内的各个可更新元件的顺序,所述顺序是从上到下。包的名称仅是出于示例性目的选择的。在第二列(“组.队”)中指定了组和队分配。例如,包1在更新组“A”,队“1”中。每个包可以与组和队关联,并且每个组可以具有一个或多个更新包成员和一个或多个队成员。队(或子组)是其父组的子集并仅属于一个组。
状态机为每个组顺序地执行其状态。为组A完成分发和激活状态1-N之后(其中N是状态数),状态机为组B重复状态1-N,对于其他组依此类推。对于组中的每个可更新元件,可以为所述可更新元件顺序地运行包。例如,对于状态1,可以为S0上的所有适合的可更新元件运行包3(其是B.1的唯一成员),然后为S1运行包3。包4和包5是同一队(B.2)的一部分,所以可以为服务器资源的第一一半(例如,S0)运行包4,随后在同一资源上运行包5。然后,以相同的方式在服务器资源的第二一半(例如,S1)上运行包4和包5。最后,可以为S0上的所有适合的可更新元件运行包6(其是B.3的唯一成员),然后为S1运行包6。
一般地,将根据组和/或子组所定义的代码包和/或元件来执行所有状态。注意,有时根据包来执行状态,如在状态机的分发状态中,而在其他时候,状态机将可更新元件及其相应的包或只是可更新元件作为目标。此外,由于两个服务器一起被更新,所述过程可以被认为是一个并行更新过程。
所述过程允许通过一次经过状态机(而不是一次经过每个可更新元件)来更新多个元件。当所述多个元件的状态操作被紧密地联系时这是有利的。例如,两个元件(例如S0和S1上的HDD)可能需要作为一个对来被休眠或重新引导。此更新过程允许两个元件一起被休眠、更新和重新引导,从而最小化了两个元件对数据存储设备的用户不可用的时间量。另一个优点在于,所述过程允许紧密联系的包(例如,队成员)在继续到它们在后续可更新元件上的更新之前,成功地在单个可更新元件上被更新。对于防止相邻的可更新元件被同时损坏而言这是有利的。例如,包4和包5可能是紧密联系的包。假如安装被不正确地损坏,并且包4被安装两个元件上,随后包5在第一个元件上失败,则所述更新过程将停止而不在第二个元件上更新包5,这导致两个元件都不可用。
图4示出了更新流程。图4的流程提供了图3所示的信息的概要,但参考了物理可更新元件而不是代码包。如上所述,状态S-1到S-8可以被认为是与代码包的分发有关的包状态,而状态S-9到S-17可以被认为是与分发的代码包的激活有关的激活状态。电源组件是被更新的第一个元件。为电源组件遍历包状态,然后是激活状态。接着处理服务处理器组。包状态被遍历,然后是激活状态。接着处理HDD。包状态被遍历,然后是激活状态。关于HDD的激活状态的进一步细节在图5中提供。
接着处理HA。遍历包状态,选择第一个HA(HA1),然后遍历激活状态。接着,选择第二个HA(HA2),然后遍历激活状态。相应地,可以为其他HA重复此过程。接着处理DA。遍历包状态,选择第一个DA(DA1),然后遍历激活状态。接着,选择第二个DA(DA2),然后遍历激活状态。相应地,可以为其他DA重复此过程。
接着处理存储外壳。遍历包状态,然后遍历激活状态。接着处理DDM。遍历包状态,选择第一个DDM(DDM1),然后遍历激活状态。接着,选择第二个DDM(DDM2),然后遍历激活状态。相应地,可以为其他DDM重复此过程。
图5示出了用于服务器S0和S1的图4的更新流程的激活状态。具体地说,图5提供了关于HDD的激活状态的进一步细节。所示过程表示由图4中符号“激活状态S-9到S-17”所引用的操作的细节。回想起状态S-9到S-17被认为是激活状态,这些状态中的第一个状态(S-9)的操作被执行以激活用于S0的AIX的代码包,然后是用于S0的AIX PTF的代码包,然后是用于S0的AIX EFIX的代码包,然后是用于S1的AIX的代码包,然后是用于S1的AIX PTF的代码包,然后是用于S1的AIX EFIX的代码包,然后是用于S0的SFI的代码包,最后是用于S1的SFI的代码包。相应地,此过程被重复,直到到达最后一个激活状态(S-17)。再次地,状态S-17的操作被执行,从而完成S0和S1上的HDD的激活。相应地,图5的过程可以被修改以包括其他服务器。
因此,可以看到,本发明提供了一种用于在一次经过状态机的分发状态时将代码包分发到两个(或更多)服务器的技术。还可以在一次经过状态机的激活状态时在两个服务器上执行所述激活,以便当不同服务器上的元件被紧密地联系并且希望最小化由休眠和重新引导造成的停机时间时,同时激活所述服务器。可以以动态可更新的方式来分组元件和/或代码包以便控制代码分发和激活的顺序。
注意,通过将计算机可读代码集成到存储设备中,此处描述的发明可以被部署到现有或新的计算基础结构(例如数据存储设备),其中与所述存储设备结合的所述代码能够执行用于实现此处所描述的功能的方法。
参考特定的示例性实施例在此描述了本发明。在不偏离本发明的范围的情况下,某些变化和修改对于本领域的技术人员来说是显而易见的。所述示例性实施例旨在是示例性的,并非旨在限制本发明的范围,本发明的范围将由所附权利要求书来限定。
Claims (38)
1.一种用于部署计算基础结构的方法,包括将计算机可读代码集成到计算系统中,所述计算系统包括数据存储设备,所述数据存储设备至少具有第一服务器和第二服务器,所述第一服务器和第二服务器分别都具有关联的可更新元件,其中与所述计算系统结合的所述代码能够通过执行方法来协调所述数据存储设备中的更新操作,所述方法包括:
根据固定状态机的不同状态来设置将多个代码包分发到所述第一和第二服务器的所述关联的可更新元件的顺序;
其中所述状态被顺序地遍历,并且包括至少一个用于分发所述多个代码包的至少一部分的分发状态,以及至少一个用于在所述多个代码包的所述至少一部分被分发到所述第一和第二服务器的所述关联的可更新元件之后激活所述多个代码包的所述至少一部分的激活状态;
根据所述顺序和在所述至少一个分发状态期间,将所述多个代码包的所述至少一部分分发到所述第一和第二服务器的所述关联的可更新元件;以及
在所述至少一个激活状态期间和在所述状态机的单个遍历中,激活在所述分发步骤中被分发到所述第一和第二服务器的所述关联的可更新元件的所述多个代码包的所述至少一部分。
2.根据权利要求1的方法,其中:
所述多个代码包的所述至少一部分在所述状态机的所述单个遍历期间被分发到所述第一和第二服务器的所述关联的可更新元件。
3.根据权利要求1的方法,还包括:
将所述多个代码包中的至少两个代码包分组;
其中所述分发和激活响应于所述分组。
4.根据权利要求3的方法,其中:
通过配置所述状态机所使用的外部更新捆绑包来实现所述分组。
5.根据权利要求1的方法,还包括:
将所述多个代码包中的至少两个代码包分组到至少一个组和至少一个子组;
其中所述分发和激活响应于所述分组。
6.根据权利要求1的方法,其中:
所述第一和第二服务器的所述关联的可更新元件包括以下至少之一:电源组件、硬盘驱动器、存储设备映像、主机适配器、设备适配器、存储外壳,以及盘驱动器模块。
7.根据权利要求1的方法,其中:
所述第一和第二服务器的所述关联的可更新元件包括硬盘驱动器,并且所述多个代码包包括由所述硬盘驱动器使用的操作系统代码。
8.一种用于协调数据存储设备内的更新操作的装置,所述数据存储设备至少具有第一服务器和第二服务器,所述第一服务器和第二服务器分别都具有关联的可更新元件,所述装置包括:
用于根据固定状态机的不同状态来设置将多个代码包分发到所述第一和第二服务器的所述关联的可更新元件的顺序的装置;
其中所述状态被顺序地遍历,并且包括至少一个用于分发所述多个代码包的至少一部分的分发状态,以及至少一个用于在所述多个代码包的所述至少一部分被分发到所述第一和第二服务器的所述关联的可更新元件之后激活所述多个代码包的所述至少一部分的激活状态;
用于根据所述顺序和在所述至少一个分发状态期间,将所述多个代码包的所述至少一部分分发到所述第一和第二服务器的所述关联的可更新元件的装置;以及
用于在所述至少一个激活状态期间和在所述状态机的单个遍历中,激活在所述分发步骤中被分发到所述第一和第二服务器的所述关联的可更新元件的所述多个代码包的所述至少一部分的装置。
9.根据权利要求8的装置,其中:
所述多个代码包的所述至少一部分在所述状态机的所述单个遍历期间被分发到所述第一和第二服务器的所述关联的可更新元件。
10.根据权利要求8的装置,还包括:
用于将所述多个代码包中的至少两个代码包分组的装置;
其中所述分发和激活响应于所述分组。
11.根据权利要求10的装置,其中:
通过配置所述状态机所使用的外部更新捆绑包来实现所述分组。
12.根据权利要求8的装置,还包括:
用于将所述多个代码包中的至少两个代码包分组到至少一个组和至少一个子组的装置;
其中所述分发和激活响应于所述分组。
13.根据权利要求8的装置,其中:
所述第一和第二服务器的所述关联的可更新元件包括以下至少之一:电源组件、硬盘驱动器、存储设备映像、主机适配器、设备适配器、存储外壳,以及盘驱动器模块。
14.根据权利要求8的装置,其中:
所述第一和第二服务器的所述关联的可更新元件包括硬盘驱动器,并且所述多个代码包包括由所述硬盘驱动器使用的操作系统代码。
15.一种数据存储设备,所述数据存储设备包括:
至少第一服务器和第二服务器,所述第一服务器和第二服务器分别都具有关联的可更新元件;
至少一个处理器;以及
至少一个程序存储装置,所述程序存储装置有形地包含指令的程序,所述指令可由所述至少一个处理器执行以便通过执行方法来完成用于协调所述数据存储设备内的更新操作的方法,所述方法包括:
根据固定状态机的不同状态来设置将多个代码包分发到所述第一和第二服务器的所述关联的可更新元件的顺序;
其中所述状态被顺序地遍历,并且包括至少一个用于分发所述多个代码包的至少一部分的分发状态,以及至少一个用于在所述多个代码包的所述至少一部分被分发到所述第一和第二服务器的所述关联的可更新元件之后激活所述多个代码包的所述至少一部分的激活状态;
根据所述顺序和在所述至少一个分发状态期间,将所述多个代码包的所述至少一部分分发到所述第一和第二服务器的所述关联的可更新元件;以及
在所述至少一个激活状态期间和在所述状态机的单个遍历中,激活在所述分发步骤中被分发到所述第一和第二服务器的所述关联的可更新元件的所述多个代码包的所述至少一部分。
16.根据权利要求15的数据存储设备,其中:
所述第一和第二服务器的所述关联的可更新元件包括以下至少之一:电源组件、硬盘驱动器、存储设备映像、主机适配器、设备适配器、存储外壳,以及盘驱动器模块。
17.根据权利要求15的数据存储设备,其中:
所述第一和第二服务器的所述关联的可更新元件包括硬盘驱动器,并且所述多个代码包包括由所述硬盘驱动器使用的操作系统代码。
18.一种用于部署计算基础结构的方法,包括将计算机可读代码集成到计算系统中,所述计算系统包括数据存储设备,所述数据存储设备至少具有第一服务器和第二服务器,所述第一服务器和第二服务器分别都具有关联的可更新元件,其中与所述计算系统结合的所述代码能够通过执行方法来协调所述数据存储设备中的更新操作,所述方法包括:
根据固定状态机的不同状态来设置将多个代码包分发到所述第一和第二服务器的所述关联的可更新元件的顺序;
其中所述状态被顺序地遍历,并且包括至少一个用于分发所述多个代码包的至少一部分的分发状态,以及至少一个用于在所述多个代码包的所述至少一部分被分发到所述第一和第二服务器的所述关联的可更新元件之后激活所述多个代码包的所述至少一部分的激活状态;
将所述多个代码包中的至少两个代码包分组;
响应于所述分组,根据所述顺序和在所述至少一个分发状态期间,将所述多个代码包的所述至少一部分分发到所述第一和第二服务器的所述关联的可更新元件;以及
响应于所述分组,在所述至少一个激活状态期间和在所述状态机的单个遍历中,激活在所述分发步骤中被分发到所述第一和第二服务器的所述关联的可更新元件的所述多个代码包的所述至少一部分。
19.根据权利要求18的方法,其中:
所述多个代码包的所述至少一部分在所述状态机的所述单个遍历期间被分发到所述第一和第二服务器的所述关联的可更新元件。
20.根据权利要求18的方法,其中:
通过配置所述状态机所使用的外部更新捆绑包来实现所述分组。
21.根据权利要求18的方法,还包括:
将所述多个代码包中的至少两个代码包分组到至少一个组和至少一个子组;
其中所述分发和激活响应于所述至少一个组和所述至少一个子组的所述分组。
22.根据权利要求18的方法,其中:
所述第一和第二服务器的所述关联的可更新元件包括以下至少之一:电源组件、硬盘驱动器、存储设备映像、主机适配器、设备适配器、存储外壳,以及盘驱动器模块。
23.根据权利要求18的方法,其中:
所述第一和第二服务器的所述关联的可更新元件包括硬盘驱动器,并且所述多个代码包包括由所述硬盘驱动器使用的操作系统代码。
24.一种用于协调数据存储设备内的更新操作的装置,所述数据存储设备至少具有第一服务器和第二服务器,所述第一服务器和第二服务器分别都具有关联的可更新元件,所述装置包括:
用于根据固定状态机的不同状态来设置将多个代码包分发到所述第一和第二服务器的所述关联的可更新元件的顺序的装置;
其中所述状态被顺序地遍历,并且包括至少一个用于分发所述多个代码包的至少一部分的分发状态,以及至少一个用于在所述多个代码包的所述至少一部分被分发到所述第一和第二服务器的所述关联的可更新元件之后激活所述多个代码包的所述至少一部分的激活状态;
用于将所述多个代码包中的至少两个代码包分组的装置;
用于响应于所述分组,根据所述顺序和在所述至少一个分发状态期间,将所述多个代码包的所述至少一部分分发到所述第一和第二服务器的所述关联的可更新元件的装置;以及
用于响应于所述分组,在所述至少一个激活状态期间和在所述状态机的单个遍历中,激活在所述分发步骤中被分发到所述第一和第二服务器的所述关联的可更新元件的所述多个代码包的所述至少一部分的装置。
25.根据权利要求24的装置,其中:
所述多个代码包的所述至少一部分在所述状态机的所述单个遍历期间被分发到所述第一和第二服务器的所述关联的可更新元件。
26.根据权利要求24的装置,其中:
通过配置所述状态机所使用的外部更新捆绑包来实现所述分组。
27.根据权利要求24的装置,还包括:
用于将所述多个代码包中的至少两个代码包分组到至少一个组和至少一个子组的装置;
其中所述分发和激活响应于所述至少一个组和所述至少一个子组的所述分组。
28.根据权利要求24的装置,其中:
所述第一和第二服务器的所述关联的可更新元件包括以下至少之一:电源组件、硬盘驱动器、存储设备映像、主机适配器、设备适配器、存储外壳,以及盘驱动器模块。
29.根据权利要求24的装置,其中:
所述第一和第二服务器的所述关联的可更新元件包括硬盘驱动器,并且所述多个代码包包括由所述硬盘驱动器使用的操作系统代码。
30.一种数据存储设备,所述数据存储设备包括:
至少第一服务器和第二服务器,所述第一服务器和第二服务器分别都具有关联的可更新元件;
至少一个处理器;以及
至少一个程序存储装置,所述程序存储装置有形地包含指令的程序,所述指令可由所述至少一个处理器执行以便通过执行方法来完成用于协调所述数据存储设备内的更新操作的方法,所述方法包括:
根据固定状态机的不同状态来设置将多个代码包分发到所述第一和第二服务器的所述关联的可更新元件的顺序;
其中所述状态被顺序地遍历,并且包括至少一个用于分发所述多个代码包的至少一部分的分发状态,以及至少一个用于在所述多个代码包的所述至少一部分被分发到所述第一和第二服务器的所述关联的可更新元件之后激活所述多个代码包的所述至少一部分的激活状态;
将所述多个代码包中的至少两个代码包分组;
响应于所述分组,根据所述顺序和在所述至少一个分发状态期间,将所述多个代码包的所述至少一部分分发到所述第一和第二服务器的所述关联的可更新元件;以及
响应于所述分组,在所述至少一个激活状态期间和在所述状态机的单个遍历中,激活在所述分发步骤中被分发到所述第一和第二服务器的所述关联的可更新元件的所述多个代码包的所述至少一部分。
31.根据权利要求30的数据存储设备,其中:
所述第一和第二服务器的所述关联的可更新元件包括以下至少之一:电源组件、硬盘驱动器、存储设备映像、主机适配器、设备适配器、存储外壳,以及盘驱动器模块。
32.根据权利要求30的数据存储设备,其中:
所述第一和第二服务器的所述关联的可更新元件包括硬盘驱动器,并且所述多个代码包包括由所述硬盘驱动器使用的操作系统代码。
33.一种用于部署计算基础结构的方法,包括将计算机可读代码集成到计算系统中,所述计算系统包括数据存储设备,所述数据存储设备至少具有第一服务器和第二服务器,所述第一服务器和第二服务器分别都具有关联的可更新元件,其中与所述计算系统结合的所述代码能够通过执行方法来协调所述数据存储设备中的更新操作,所述方法包括:
根据固定状态机的不同状态来设置将多个代码包分发到所述第一和第二服务器的所述关联的可更新元件的顺序;
其中所述状态被顺序地遍历,并且包括至少一个用于分发所述多个代码包的至少一部分的分发状态,以及至少一个用于在所述多个代码包的所述至少一部分被分发到所述第一和第二服务器的所述关联的可更新元件之后激活所述多个代码包的所述至少一部分的激活状态;
根据所述顺序,在所述至少一个分发状态期间和在所述状态机的单个遍历期间,将所述多个代码包的所述至少一部分分发到所述第一和第二服务器的所述关联的可更新元件;以及
在所述至少一个激活状态期间和在所述状态机的所述单个遍历期间,激活在所述分发步骤中被分发到所述第一和第二服务器的所述关联的可更新元件的所述多个代码包的所述至少一部分。
34.根据权利要求33的方法,还包括:
将所述多个代码包中的至少两个代码包分组;
其中所述分发和激活响应于所述分组。
35.根据权利要求34的方法,其中:
通过配置所述状态机所使用的外部更新捆绑包来实现所述分组。
36.根据权利要求33的方法,还包括:
将所述多个代码包中的至少两个代码包分组到至少一个组和至少一个子组;
其中所述分发和激活响应于所述分组。
37.一种用于协调数据存储设备内的更新操作的装置,所述数据存储设备至少具有第一服务器和第二服务器,所述第一服务器和第二服务器分别都具有关联的可更新元件,所述装置包括:
用于根据固定状态机的不同状态来设置将多个代码包分发到所述第一和第二服务器的所述关联的可更新元件的顺序的装置;
其中所述状态被顺序地遍历,并且包括至少一个用于分发所述多个代码包的至少一部分的分发状态,以及至少一个用于在所述多个代码包的所述至少一部分被分发到所述第一和第二服务器的所述关联的可更新元件之后激活所述多个代码包的所述至少一部分的激活状态;
用于根据所述顺序,在所述至少一个分发状态期间和在所述状态机的单个遍历期间,将所述多个代码包的所述至少一部分分发到所述第一和第二服务器的所述关联的可更新元件的装置;以及
用于在所述至少一个激活状态期间和在所述状态机的所述单个遍历期间,激活在所述分发步骤中被分发到所述第一和第二服务器的所述关联的可更新元件的所述多个代码包的所述至少一部分的装置。
38.一种数据存储设备,所述数据存储设备包括:
至少第一服务器和第二服务器,所述第一服务器和第二服务器分别都具有关联的可更新元件;
至少一个处理器;以及
至少一个程序存储装置,所述程序存储装置有形地包含指令的程序,所述指令可由所述至少一个处理器执行以便通过执行方法来完成用于协调所述数据存储设备内的更新操作的方法,所述方法包括:
根据固定状态机的不同状态来设置将多个代码包分发到所述第一和第二服务器的所述关联的可更新元件的顺序;
其中所述状态被顺序地遍历,并且包括至少一个用于分发所述多个代码包的至少一部分的分发状态,以及至少一个用于在所述多个代码包的所述至少一部分被分发到所述第一和第二服务器的所述关联的可更新元件之后激活所述多个代码包的所述至少一部分的激活状态;
根据所述顺序,在所述至少一个分发状态期间和在所述状态机的单个遍历期间,将所述多个代码包的所述至少一部分分发到所述第一和第二服务器的所述关联的可更新元件;以及
在所述至少一个激活状态期间和在所述状态机的所述单个遍历期间,激活在所述分发步骤中被分发到所述第一和第二服务器的所述关联的可更新元件的所述多个代码包的所述至少一部分。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/992,176 US7827544B2 (en) | 2004-11-18 | 2004-11-18 | Updating elements in a data storage facility using a predefined state machine, with parallel activation |
US10/992,176 | 2004-11-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1776625A CN1776625A (zh) | 2006-05-24 |
CN100351794C true CN100351794C (zh) | 2007-11-28 |
Family
ID=36462331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101235058A Expired - Fee Related CN100351794C (zh) | 2004-11-18 | 2005-11-17 | 使用预定状态机更新数据存储设备中的元件的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7827544B2 (zh) |
CN (1) | CN100351794C (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7802243B1 (en) * | 2006-04-20 | 2010-09-21 | Open Invention Network Llc | System and method for server customization |
US8978028B2 (en) * | 2007-10-10 | 2015-03-10 | Microsoft Technology Licensing, Llc | Transactional multi-package installation |
JP5136105B2 (ja) * | 2008-02-13 | 2013-02-06 | 富士通株式会社 | データ搭載装置、及びデータ搭載装置のアップグレード方法 |
DE102009004002A1 (de) * | 2009-01-07 | 2010-07-08 | Siemens Aktiengesellschaft | Auf Speicher gespeicherter Programmcode aus einer Mehrzahl von Programmcodepaket-Gruppen |
PL2404400T3 (pl) * | 2009-03-04 | 2017-09-29 | Nokia Technologies Oy | Obsługa procesu związanego z modelem pokrycia w oparciu o maszynę stanu |
US8881134B2 (en) | 2010-04-29 | 2014-11-04 | International Business Machines Corporation | Updating elements in data storage facility using predefined state machine over extended time period |
US20120227036A1 (en) * | 2011-03-01 | 2012-09-06 | International Business Machines Corporation | Local Server Management of Software Updates to End Hosts Over Low Bandwidth, Low Throughput Channels |
CN107866807B (zh) * | 2016-09-27 | 2020-07-10 | 珠海格力智能装备有限公司 | 状态机控制方法及装置、机器人控制系统 |
CN109062703A (zh) * | 2018-09-28 | 2018-12-21 | 北京城市网邻信息技术有限公司 | 任务执行资源的方法、装置、调度设备、执行设备及介质 |
CN110908650A (zh) * | 2019-10-18 | 2020-03-24 | 贵州云辰软件开发有限公司 | 一种基于状态机的软件快速编程方法 |
US11748087B2 (en) * | 2021-06-28 | 2023-09-05 | Okta, Inc. | Software update distribution within a multi-tenant architecture |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5859856A (en) * | 1994-03-21 | 1999-01-12 | Sun Microsystems, Inc. | Method and apparatus for routing interleaved incoming ATM cells with reduced channel switching |
CN1294711A (zh) * | 1999-02-23 | 2001-05-09 | 松下电器产业株工会社 | 更新固件的磁盘系统和方法 |
US20020112141A1 (en) * | 2001-01-08 | 2002-08-15 | Claire Greenwood | Time division finite state machine |
US6457122B1 (en) * | 1999-06-18 | 2002-09-24 | Phoenix Technologies Ltd. | Fault tolerant process for the delivery of programs to writeable storage device utilizing pre-operating system software/firmware |
CN1379335A (zh) * | 2001-03-30 | 2002-11-13 | 松下电器产业株式会社 | 遥控程序下装系统 |
CN1482547A (zh) * | 2002-07-29 | 2004-03-17 | �Ҵ���˾ | 以非破坏性方式升级驱动器固件的方法和系统 |
CN1485733A (zh) * | 2002-09-25 | 2004-03-31 | 鸿富锦精密工业(深圳)有限公司 | 专利查询程序自动安装更新系统及方法 |
CN1488099A (zh) * | 2001-08-23 | 2004-04-07 | ���ṫ˾ | 信息处理设备和方法 |
CN1495610A (zh) * | 2002-09-13 | 2004-05-12 | 国际商业机器公司 | 用于固件更新的方法和装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4607332A (en) * | 1983-01-14 | 1986-08-19 | At&T Bell Laboratories | Dynamic alteration of firmware programs in Read-Only Memory based systems |
US5253344A (en) * | 1991-09-05 | 1993-10-12 | International Business Machines Corp. | Method and apparatus for dynamically changing the configuration of a logically partitioned data processing system |
US5442758A (en) * | 1993-07-19 | 1995-08-15 | Sequent Computer Systems, Inc. | Apparatus and method for achieving reduced overhead mutual exclusion and maintaining coherency in a multiprocessor system utilizing execution history and thread monitoring |
US5694617A (en) * | 1995-03-31 | 1997-12-02 | International Business Machines Corporation | System for prioritizing quiesce requests and recovering from a quiescent state in a multiprocessing system with a milli-mode operation |
JP3003619B2 (ja) * | 1997-04-09 | 2000-01-31 | 日本電気株式会社 | 装置内部設定情報バックアップ装置及び方法並びに装置内部設定情報バックアップ制御プログラムを記憶した記憶媒体 |
US6119219A (en) * | 1998-04-30 | 2000-09-12 | International Business Machines Corporation | System serialization with early release of individual processor |
US6079013A (en) * | 1998-04-30 | 2000-06-20 | International Business Machines Corporation | Multiprocessor serialization with early release of processors |
US6237091B1 (en) | 1998-10-29 | 2001-05-22 | Hewlett-Packard Company | Method of updating firmware without affecting initialization information |
US20040205776A1 (en) * | 2003-04-10 | 2004-10-14 | International Business Machines Corporation | Method and apparatus for concurrent update and activation of partition firmware on a logical partitioned data processing system |
US7222339B2 (en) * | 2003-06-13 | 2007-05-22 | Intel Corporation | Method for distributed update of firmware across a clustered platform infrastructure |
US7266815B2 (en) * | 2003-09-29 | 2007-09-04 | International Business Machines Corporation | Automated control of a licensed internal code update on a storage controller |
JP2005242555A (ja) * | 2004-02-25 | 2005-09-08 | Hitachi Ltd | 記憶制御システム及び記憶制御システムが有するディスク型記憶装置にファームウェアを搭載する方法 |
EP1763766A4 (en) * | 2004-05-04 | 2009-04-01 | Robert M Price | SYSTEM AND METHOD FOR COMMUNICATING ELECTRONIC EQUIPMENT |
US20050289072A1 (en) * | 2004-06-29 | 2005-12-29 | Vinay Sabharwal | System for automatic, secure and large scale software license management over any computer network |
-
2004
- 2004-11-18 US US10/992,176 patent/US7827544B2/en not_active Expired - Fee Related
-
2005
- 2005-11-17 CN CNB2005101235058A patent/CN100351794C/zh not_active Expired - Fee Related
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5859856A (en) * | 1994-03-21 | 1999-01-12 | Sun Microsystems, Inc. | Method and apparatus for routing interleaved incoming ATM cells with reduced channel switching |
CN1294711A (zh) * | 1999-02-23 | 2001-05-09 | 松下电器产业株工会社 | 更新固件的磁盘系统和方法 |
US6457122B1 (en) * | 1999-06-18 | 2002-09-24 | Phoenix Technologies Ltd. | Fault tolerant process for the delivery of programs to writeable storage device utilizing pre-operating system software/firmware |
US20020112141A1 (en) * | 2001-01-08 | 2002-08-15 | Claire Greenwood | Time division finite state machine |
CN1379335A (zh) * | 2001-03-30 | 2002-11-13 | 松下电器产业株式会社 | 遥控程序下装系统 |
CN1488099A (zh) * | 2001-08-23 | 2004-04-07 | ���ṫ˾ | 信息处理设备和方法 |
CN1482547A (zh) * | 2002-07-29 | 2004-03-17 | �Ҵ���˾ | 以非破坏性方式升级驱动器固件的方法和系统 |
CN1495610A (zh) * | 2002-09-13 | 2004-05-12 | 国际商业机器公司 | 用于固件更新的方法和装置 |
CN1485733A (zh) * | 2002-09-25 | 2004-03-31 | 鸿富锦精密工业(深圳)有限公司 | 专利查询程序自动安装更新系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1776625A (zh) | 2006-05-24 |
US7827544B2 (en) | 2010-11-02 |
US20060112387A1 (en) | 2006-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100351794C (zh) | 使用预定状态机更新数据存储设备中的元件的方法和装置 | |
CN100351795C (zh) | 使用预定状态机更新数据存储设备中的元件的方法和装置 | |
CN1096642C (zh) | 高效利用空间的对象加锁的系统和方法 | |
CN1959640A (zh) | 在软件包管理系统将用户进程表示为软件包的系统和方法 | |
CN100339830C (zh) | 一种更新软件的方法 | |
US20110131561A1 (en) | Memory Optimization of Virtual Machine Code by Partitioning Extraneous Information | |
CN1537276A (zh) | 用于现场诊断无线通信设备系统软件的系统和方法 | |
CN1839381A (zh) | 维护基于组件的软件产品 | |
CN1668010A (zh) | 用来在更新分发系统中分发更新元数据的基于标记模式 | |
CN101047561A (zh) | 一种设备自动化升级的方法 | |
CN101454765A (zh) | 用补丁等来更新虚拟机 | |
CN1331817A (zh) | 用于并发数据库管理系统表操作的方法和设备 | |
CN1162786A (zh) | 用于多任务设施信息处理系统的资源管理方法和设备 | |
CN1828512A (zh) | 自动数据存储库、及其虚拟化系统和虚拟化方法 | |
CN101030164A (zh) | 用于隔离错误的软件程序组件的方法和系统 | |
CN1859180A (zh) | 一种实现网络终端设备配置自动更新的方法及系统 | |
CN1105952C (zh) | 自动仓库的入库控制方法和入库控制装置 | |
CN1922574A (zh) | 无需额外的代码分析来进行链接时代码优化的方法和系统 | |
CN1754150A (zh) | 用于在系统引导时的硬件配置期间消除用户交互的系统和装置 | |
CN103988177A (zh) | 基于维护寄存器的离线虚拟机的维护 | |
CN1773503A (zh) | 配置信息存储和检索系统的方法和系统 | |
CN1848070A (zh) | 数据存储设备、重构控制设备、重构控制方法与存储介质 | |
CN1641611A (zh) | 多重连接管理系统 | |
CN105656970A (zh) | 一种raid卡配置方法、系统及相关装置 | |
CN1802636A (zh) | 计算机系统与应用于该系统的故障计算机替换方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20071128 Termination date: 20181117 |