CN1975671A - 用于配置相连设备的方法和系统 - Google Patents
用于配置相连设备的方法和系统 Download PDFInfo
- Publication number
- CN1975671A CN1975671A CNA2006101412447A CN200610141244A CN1975671A CN 1975671 A CN1975671 A CN 1975671A CN A2006101412447 A CNA2006101412447 A CN A2006101412447A CN 200610141244 A CN200610141244 A CN 200610141244A CN 1975671 A CN1975671 A CN 1975671A
- Authority
- CN
- China
- Prior art keywords
- segmentation
- carry out
- response
- breaking down
- configuration
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2089—Redundant storage control functionality
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Retry When Errors Occur (AREA)
- Hardware Redundancy (AREA)
Abstract
提供了一种用于执行初始化代码来配置相连设备的方法、系统和程序。多个分段被提供来配置至少一个相连设备,其中每个分段都包括用于配置所述至少一个相连设备的配置代码。根据分段顺序通过执行每个分段中的配置代码来执行所述分段,以便执行与所述至少一个相连设备有关的配置操作。响应于完成执行用于该分段的配置操作,在存储器中指示出分段完成。
Description
技术领域
本发明涉及一种用于执行初始化代码来配置相连设备的方法、系统和程序。
背景技术
存储网络中的主机系统可以通过多条路径来与存储控制器进行通信。存储控制器可以包括独立的存储群集,其中每个存储群集都能访问存储装置,并且提供对存储器的访问的冗余。主机可以通过任一群集来访问所附接的存储装置。如果存储群集出现故障,那么主机可以进行故障转移(failover),以使用其他存储群集来访问存储装置。此外,这些群集可以将写入内容缓存到非易失性存储装置(NVS)中的其他群集,这样一来,如果一个群集出现故障,那么会在无故障群集的NVS中维持最近写入存储设备的内容。在这类双群集系统中,每个群集必须被配置成使用在所附接的存储装置中配置的逻辑设备,例如逻辑子系统(LSS)。
在双群集系统中,每个群集独立地执行诸如初始微码装入(IML)之类的初始化代码来配置群集,以便访问相连的设备,这些相连设备诸如总线接口、存储设备、适配器等等。每个群集都维持了独立的配置信息集合,以用来访问相连的设备。如果在配置期间出现故障,并且差错恢复过程无法从故障中恢复到继续执行配置和初始化,那么管理员可能必须手动编辑并重新配置每个群集的设置,以使双群集系统返回到发生故障的初始化和配置开始之前的状态。
在本领域中需要一种用于在配置操作期间处理故障的改进技术。
发明内容
提供了一种用于执行初始化代码来配置相连设备的方法、系统和程序。多个分段(segment)被提供来配置至少一个相连设备,其中每个分段都包括用于配置所述至少一个相连设备的配置代码。根据分段顺序通过执行每个分段中的配置代码来执行所述分段,以便执行与所述至少一个相连设备有关的配置操作。响应于完成执行用于该分段的配置操作,在存储器中指示出分段完成。
附图说明
图1描述的是计算环境的实施例。
图2描述的是初始化代码中的组件。
图3描述的是检查点信息的实施例。
图4描述的分段完成信息的实施例。
图5描述的是用于执行配置代码的操作的实施例。
图6描述的是用于在配置代码执行期间从故障中恢复的差错恢复过程的操作的实施例。
图7描述的是用于在双群集环境中执行配置代码的操作的实施例。
图8描述的是用于在双群集环境中在配置代码执行期间从故障中恢复的差错恢复过程的操作的实施例。
具体实施方式
图1描述的是网络计算环境的实施例。系统2在通向存储装置8a、8b的网络6上从主机系统4a、4b...4n接收输入/输出(I/O)请求,其中存储装置8a、8b均被配置成具有一个或多个卷10a、10b(例如逻辑单元号、逻辑设备等等)。系统2包括两个群集12a、12b,其中每个群集都包括处理器复合体(processor complex)14a、14b以及高速缓存16a、16b。该群集12a、12b从主机4a、4b...4n接收I/O请求并缓存这些请求,并将它们各自高速缓存16a、16b中的数据写入存储装置8a、8b。群集12a、12b可以包括附加组件(诸如非易失性存储单元(未示出)),以在高速缓存16a、16b中提供更新的备份存储。群集12a、12b可以具有不同的功率边界。在所描述的实施例中,每个存储群集12a、12b都提供对包括存储装置8a、8b的附接存储装置的访问。每个群集12a、12b都包括由处理器复合体14a、14b执行来处理主机4a、4b...4n的I/O请求的I/O管理器软件18a、18b。总线20提供使得能够在群集12a、12b之间进行通信的通信接口。总线22提供在群集12a、12b以及存储装置8a、8b之间的通信。总线20和22可以包括本领域中公知的适当的通信接口,例如外部组件互连(PCI)总线或是其他总线接口。总线20和22可以是相连的、分离的和/或包括多个相连的总线设备。
群集12a、12b都可以通过总线20或某种其他接口来访问共享存储器24。共享存储器24可以包括硬盘驱动器、非易失性电子存储器等等。可替换地,如果没有独立的共享存储器设备,那么共享存储器24可以在每个群集中包括相同数据的拷贝,由此,每个群集中的拷贝被保持同步,以便在主群集崩溃的时候由非主群集接管配置。拷贝的同步可以在每个分段完成时进行。共享存储器24可以被更新,以便由每个群集12a、12b来记录每个分段的完成。此外,共享存储器24可以包括每个群集的分段检查点信息,该信息指示任一群集12a、12b是否完成了分段。
此外,群集12a、12b可以访问适配器26a、26b...26n,以便与主机4a、4b...4n进行通信。该适配器可以在群集12a、12b的硬件内部实现,也可以在群集12a、12b的外部实现。群集12a、12b还包括诸如初始微码装入(IML)的初始化代码28a、28b,其中群集12a、12b执行所述初始化代码28a、28b来配置相连设备以便使用。配置操作可以包括装入并配置驱动器和相连设备,以使得能够访问相连设备并与之进行通信。举例来说,群集12a、12b执行初始化代码28a、28b来配置群集12a、12b,以便使用总线20、存储卷10a、10b、适配器26a、26b...26n以及与适配器26a、26b...26n相连的任何设备,例如主机4a、4b...4n。配置操作可以包括更新群集12a、12b的存储器(诸如高速缓存16a、16b)中的数据结构,以便使用这些设备。举例来说,配置代码可以把群集12a、12b配置成能够访问存储装置中的卷10a、10b或配置虚拟化设备。分段完成信息30包括与成功完成执行的配置代码的分段或部分有关的信息。在某些实施例中,共享存储器24在发生配置错误之后维持信息,以便在初始化或重新启动(诸如热启动)期间,在出现故障之后可以将这些信息提供给差错恢复过程。
系统2可以包括存储控制器或服务器。在可替换实施例中,系统2可以包括不同类型的计算机设备,这些设备执行相连设备的初始化和配置操作。主机4a、4b...4n可以包括本领域中公知的计算设备,诸如服务器、大型机、工作站、个人计算机、手持计算机、膝上型计算机、电话设备、网络工具等等。网络6可以包括存储区域网(SAN)、局域网(LAN)、内联网、因特网、广域网(WAN)等等。存储装置8a、8b可以包括存储设备阵列,例如简单磁盘捆束(JBOD)、直接存取存储设备(DASD)、独立磁盘冗余阵列(RAID)阵列、虚拟化设备、磁带存储装置、闪速存储器等等。
图2描述的是初始化代码28(诸如初始化代码拷贝28a、28b)的组件,其包括:被执行用来执行初始化配置操作的初始化过程50,以及响应于检测到在初始化和配置操作期间的故障而执行的差错恢复过程(ERP)52。初始化代码28还包括被组织在分段54a、54b...54n中的配置代码,其中每个分段包括一部分的配置代码56a、56b...56n以及检查点信息58a、58b...58n。可选的清除例程可以与每个分段54a、54b...54n相关联。通过执行与分段相关联的清除例程60a、60b...60n,将群集配置返回到执行相关联的分段54a、54b...54n的配置代码56a、56b...56n之前的状态。该清除例程60a、60b...60n可以删除存储器和寄存器中的某些信息,并逆转由于执行发生故障的配置代码所导致的设置。
分段54b...54n包括配置代码56b、56c(未示出)、检查点信息58b...58n(未示出),并且可选地包括清除例程60b...60n(未示出)。所述清除例程60a...60n可以与配置代码分开存储。在一实施例中,配置代码54a、54b...54n可以在一个或多个程序中实现,其中所述程序具有将配置代码54a、54b...54n中的不同分段分离开的检查点。可替换地,配置代码54a、54b...54n中的每个分段都是可独立寻址的,其中分段的检查点信息提供关于该分段的信息。每个分段中的配置代码54a...54n可以执行独立的配置操作。
图3描述的是可以与分段的检查点信息58(诸如检查点信息58a)包括在一起的信息的实施例,所述检查点信息包括继续信息70以及清除例程信息72。继续信息70表明:如果在执行用于分段54a、54b...54n的配置代码56a、56b...56n的时候出现故障,那么在差错恢复过程(ERP)52期间来自分段的配置是否可以继续。清除例程信息72标识了清除例程,所述清除例程在被执行时会将群集或系统配置返回到发生故障的分段的配置代码被执行之前的状态。然而,在尝试执行发生故障的配置代码的分段之前所执行和完成的那些配置代码分段所产生的改变会保持有效。如果代码不需要被执行来逆转在发生故障的配置代码的执行期间可能已出现的任何改变,那么分段可以不具有清除例程。
图4描述的是与用于一个分段54a、54b...54n的分段完成信息30(图1)包括在一起的信息的实例80,其中所述信息的实例80包括分段标识符或指针82以及完成标记84,所述分段标识符或指针82标识或定址配置代码56a、56b...56n的分段,所述完成标记84指示出是否成功执行了所标识的配置代码。由此,每当系统完成对一个分段的配置代码的执行时,就在用于该被成功执行的配置代码分段的分段完成信息的实例80中的完成标记84中指示出用于指示成功完成的信息。此信息允许系统确定最后一个成功完成的分段。分段顺序指示了执行配置代码的顺序,其中该顺序可以是从程序执行配置代码分段的顺序中确定的。
图5描述的是在由包括一个或多个群集的系统执行初始化代码50时由所述初始化代码50执行的操作的实施例。图5的操作可以由只具有一个群集(例如群集12a)的系统来执行,以便对附接于该单个群集设备(诸如具有单个处理器的系统等等)的设备进行配置。在单群集(即单处理器)环境中,共享存储器包括由处理器在配置期间使用的非易失性存储器。一旦通过执行初始化过程50而启动配置操作(在方框100),那么初始化过程50就访问(在方框102)第一分段54a中的配置代码56a,并且执行(在方框104)该配置代码来配置至少一个相连设备,例如逻辑设备、存储区、存储器区、适配器等等。一旦成功地完成执行配置代码,则在非易失性存储器(例如24)中指示(在方框106)该分段完成。在一实施例中,分段的配置代码的完成可以通过在用于已完成分段的分段完成信息实例80中设置分段82的完成标记84来进行指示。如果(在方框108)还有要执行的更多分段54a、54b...54n,则对在初始化代码28中用于下一分段的配置代码56b...56n进行访问(在方框110),并且控制返回到方框104来执行下一个被访问的配置代码56b...56n。在执行了用于所有分段的配置代码之后,返回(在方框112)配置完成,并且共享存储器24被更新来移除已成功或是发生故障的配置操作。
图6描述的是响应于在图5的配置代码执行期间检测到故障而由差错恢复过程(ERP)52执行的操作的实施例。图6的操作可以由单群集系统或多群集系统执行来配置相连的设备,这些设备例如总线接口、存储设备、适配器等等。响应于在执行一个分段中的配置代码56a、56b...56n的分段时出现故障之后初始化(在方框105)ERP 52,ERP 52从存储器中确定(在方框152)最后完成的分段。一般来说,有三种启动分段ERP的方式:分段故障导致到分段ERP的分支(在方框150和250);分段故障导致系统ERP,其中在系统ERP开始之后,出现故障的分段是由共享存储器中的主群集检测的,并且启动分段ERP;以及分段故障导致系统重启,其中在系统IML开始之后,出现故障的分段是由共享存储器中的主群集检测的,并且启动分段ERP。最后完成的分段可以包括以分段顺序排列的、设置了完成标记82的最后一个分段。如果(在方框154)出现故障的分段的继续信息(例如发生故障的分段的检查点信息58a、58b...58n中的继续信息70(图3))指示出无法从发生故障的分段继续执行,那么ERP 52确定(在方框156)与发生故障的分段以及在发生故障的分段之前成功完成执行的所有分段相关联的任何清除例程60a、60b...60n。然后,运行用于单个发生故障分段的清除例程60a、60b...60n可以允许重试发生故障的分段。在某些情况下,在没有运行清除例程时,发生故障的分段无法从通过该发生故障的分段的故障点路径进行重试。所确定的清除例程60a、60b...60n以与分段顺序相反的顺序执行(在方框158),以将至少一个相连设备的配置返回到执行配置代码之前的状态。然后配置故障被返回(在方框160)。
如果(在方框154)配置信息70指示出配置可能从发生故障的分段继续并且如果(在方框162)指示出ERP 52已尝试重试执行发生故障的配置代码的次数的重试值31(图1)大于重试限度,那么控制前进到方框156,以开始使配置失效的过程。该重试值可以在非易失性存储器中被维持,诸如图1的共享存储器24中的重试值31所示的那样。否则,如果(在方框162)重试值31小于重试限度,那么该重试值被递增(在方框164)。如果(在方框166)存在用于发生故障的分段(即具有发生故障的配置代码的分段)的清除例程60a、60b...60n,那么ERP 52执行(在方框168)所确定的清除例程60a...60n,以使系统返回到执行出现故障的配置代码之前存在的状态。从方框168或是方框166的“否”分支开始,访问(在方框170)和执行发生故障的分段54a、54b...54n中的配置代码56a、56b...56n。如果(在方框172)方框170中的配置代码的执行发生故障,那么控制返回方框150。否则,如果在方框170中成功执行了配置代码56a、56b...56n,则清除(在方框174)重试值31并且控制前进(在方框176)到图5中的方框106来继续执行分段54a、54b...54n中的配置代码,从而完成配置。
通过图6的操作,执行初始化代码28的系统可以从故障中恢复,并且尝试从出现故障的点执行配置代码,从而避免从头重新开始配置以及允许自动恢复配置过程。
图7和8描述的是由多群集系统2(图1)中的群集12a、12b执行的用于配置相连设备的操作的实施例,所述相连设备诸如总线20、22、适配器26a、26b...1126n以及存储装置8a、8b。群集12a、12b可以对其共同访问的共享资源进行配置,所述共享资源诸如存储装置8a、8b以及总线20和22。一个群集(例如群集12a)可以在配置期间被指定为主群集,而另一个群集(例如群集12b)可以被指定为非主群集,其中任一群集12a、12b都可以被指定为主群集。在一实施例中,如果群集12a、12b都不能访问共享存储器24,那么用于整个系统2的配置可能发生故障。
参考图7,一旦主群集12a启动(在方框200)配置操作,那么主群集12a就会访问(在方框202)配置代码56a的第一个分段,并且执行(在方框204)所访问的配置代码56a。一旦成功完成,那么主群集12a就用信号(也就是消息)向非主群集12b通知(在方框206)执行该分段的配置代码。主群集12a还可以将与刚刚被执行的配置代码相关联的配置数据传送到非主群集12b。响应于该信号,非主群集12b执行(在方框208)刚刚由主群集12a执行的分段中的配置代码。一旦成功完成,那么非主群集12b就用信号来向主群集通知(在方框210)配置代码的执行是成功还是发生故障。
响应于来自非主群集12b的完成,主群集12a指示出(在方框212)共享存储器24中的分段完成。在方框212的这个指示可以包括设置用于分段82的分段完成信息实例80中的完成标记84,所述分段82的配置代码是由群集12a、12b成功执行的。在此实施例中,完成指示指示出群集12a、12b都成功完成了分段的配置代码56a、56b...56n的执行。
如果还有要执行的配置代码56a、56b...56n的分段,那么就依照执行用于所述分段的配置代码的分段顺序来访问(在方框216)下一个分段的配置代码56b...56n,并且控制返回到方框204来执行下一个被访问分段的配置代码56b...56n。在群集12a、12b都成功执行了用于所有分段的配置代码之后,该配置完成(在方框112),并且共享存储器24被更新来移除已成功或是发生故障的配置操作。
图8描述的是响应于在执行配置代码期间检测到故障而由主群集12a所执行的差错恢复操作的实施例,其中配置故障可能在主群集12a或非主群集12b正在依照图7的操作来执行配置代码的时候出现。响应于执行ERP 52(在方框250),主群集12a执行(在方框252)图6的方框152-172中的操作,以便从出现故障时正被执行的分段开始执行配置代码。如果(在方框254)成功执行了发生故障的分段54a、54b...54n中的配置代码56a、56b...56n,那么主群集12a用信号向非主群集12b通知(在方框256)从发生故障的分段开始执行配置代码56a、56b...56n。主群集12a前进(在方框266)到图7中的方框212来继续执行其他分段中的配置代码。如果(在方框254)配置代码的执行发生故障(如果因为重试限度被超过而在图6的方框160处返回故障,或是如果在方框154处由继续信息指示出无法从发生故障的分段继续执行,则会出现这种情况),那么主群集12a用信号向非主群集12b通知(在方框257)配置发生故障。
一旦从主群集12a接收到执行发生故障的分段的信号,那么非主群集12b就执行图6中的方框152-172的操作,以便执行发生故障的分段中的配置代码。如果(在方框260)成功执行了发生故障的分段中的配置代码,那么非主群集12b用信号向主群集12a通知(在方框262)成功执行了该分段的配置代码56a、56b...56n。响应于这个信号,主群集12a前进到图7中的方框212以及后续的方框,以便继续执行这些分段的配置代码。如果(在方框260)非主群集12b执行配置代码发生故障(如果因为重试限度被超过而在图6的方框160处返回故障,或是如果在方框154处由继续信息指示出无法从发生故障的分段继续执行,则会出现这种情况),那么非主群集12b会用信号向主群集12a通知(在方框262)所述故障。
通过所述的图7和8的操作,主群集12a和非主群集12b各自执行分段的配置代码,并且协调它们对用于分段的配置代码的执行。如果出现故障,那么主群集12a重试执行发生故障的分段中的配置代码,并接着用信号向非主群集通知也从发生故障的分段执行所述配置代码。此外,如果主群集在配置操作期间崩溃,那么非主群集会成为主群集,并且在系统ERP末端查询共享存储器。通过所述操作,在出现故障的情况下,这两个群集都可以尝试从发生故障的分段开始。
附加实施例细节
所描述的操作可以作为一种方法、设备或是制品来实现,这些方法、设备或制品使用标准编程和/或工程技术来产生软件、固件、硬件或是其任意组合。所描述的操作可以作为“计算机可读媒体”中保持的代码来实现,其中处理器可以从所述计算机可读媒体中读取并执行所述代码。计算机可读媒体可以包括以下媒体,例如磁存储媒体(例如硬盘驱动器、软盘、磁带等等)、光存储装置(CD-ROM、DVD、光盘等等)、易失性和非易失性存储设备(例如EEPROM、ROM、PROM、RAM、DRAM、SRAM、闪速存储器、固件、可编程逻辑等等)。实现所述操作的代码还可以在硬件逻辑(例如集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC)等等)中实现。而且,实现所述操作的代码可以在“传输信号”中实现,其中传输信号可以通过空间或是通过传输媒体(诸如光纤、铜线等等)来传播。对代码或逻辑进行了编码的传输信号还可以包括无线信号、卫星传输、无线电波、红外信号、蓝牙等等。对代码或逻辑进行了编码的传输信号能够由发射站发射并由接收站接收,其中在传输信号中进行编码的代码或逻辑可以在接收站和发射站或设备上的硬件或计算机可读媒体中被解码和存储。“制品”包括可实现代码的计算机可读媒体、硬件逻辑和/或传输信号。对实现所述操作的实施例的代码进行了编码的设备可以包括计算机可读媒体或硬件逻辑。当然,本领域技术人员将会了解,在没有脱离本发明的范围的情况下,可以对这种配置做出很多修改,并且所述制品可以包括本领域中公知的适当的信息承载媒体。
除非以别的方式明确规定,否则术语“实施例”、“实施例”、“若干实施例”、“该实施例”、“这些实施例”、“一个或多个实施例”、“某些实施例”以及“一实施例”都是指本发明的一个或多个实施例(但并不是全部实施例)。
除非以别的方式明确规定,否则术语“包括(including)”、“包括(comprising)”、“具有”及其变体都意味着“包括但不局限于”。
除非以别的方式明确规定,否则所列举的项目列表并不意味着任何或所有项目是互斥的。
除非以别的方式明确规定,否则术语“一”、“一个”和“该”全都意味着“一个或多个”。
除非以别的方式明确规定,否则,相互通信的设备不需要在相互之间进行连续通信。此外,相互通信的设备可以直接通信,或者通过一个或多个中介进行间接通信。
结合若干个相互通信的组件来对实施例进行的描述并不意味着需要所有这些组件。相反,多种可选的组件被描述,以便说明关于本发明的大量的可能实施例。
此外,虽然可以按照连续顺序来描述过程步骤、方法步骤、算法等等,但是这些过程、方法和算法也可以被配置成按照可替换的顺序工作。换句话说,任何可被描述的步骤顺序或序列并不必然表示所述步骤需要按照该顺序来执行。这里描述的过程的步骤可以按照任何实际顺序来执行。此外,某些步骤可以被同时执行。
当在这里描述单个设备或制品的时候,很明显,可以用一个以上的设备/制品(无论它们是否进行协作)来替换单个设备/制品。同样,如果在这里描述了一个以上的设备或制品(无论它们是否进行协作),很明显,可以用单个设备来替换一个以上的设备或制品,或者可以用不同数量的设备/制品来替换所示数量的设备或程序。可替换地,设备的功能和/或特征可以由一个或多个未被明确描述成具有所述功能/特征的其他设备来实现。因此,本发明的其他实施例不需要该设备自身。
图5、6、7和8中描述的操作示出了按照某种顺序出现的某些事件。在可替换实施例中,某些操作可以依照不同顺序执行、修改或移除。此外,可以在上述逻辑中添加步骤,并且这些步骤仍旧符合所描述的实施例。此外,这里所述的操作可以顺序地出现,或者某些操作可以被并行地处理。而且,这些操作可以由单个处理单元执行,或者由分布式处理单元执行。
上文中对本发明各种实施例的描述是出于说明和描述目的而给出的。但是其并非意图进行穷举,或是将本发明限制在所公开的确切形式。根据上述教导,很多的修改和变化都是可行的。本发明的范围并非由此详细描述所限制,而是由权利要求所限定。上述说明、示例和数据提供了制造和使用本发明中的成分的完整描述。由于本发明的很多实施例都可以在不脱离本发明的精神和范围的情况下实现,因此本发明存在于权利要求中。
Claims (16)
1.一种方法,包括:
提供多个分段来配置至少一个相连设备,其中每个分段包括用于配置所述至少一个相连设备的配置代码;
依照分段顺序通过执行每个分段中的配置代码来执行所述分段,以便执行与所述至少一个相连设备有关的配置操作;以及
响应于完成该分段的配置操作的执行,在存储器中指示该分段完成。
2.根据权利要求1所述的方法,还包括:
响应于从故障进行恢复,从所述存储器中确定按照分段顺序的最后一个完成的分段,其中所述故障是在执行按照分段顺序的最后完成的分段之后的发生故障的分段的时候出现的;
确定是否可以从所述发生故障的分段继续执行;以及
响应于确定出可以从所述发生故障的分段继续执行,执行所述发生故障的分段中的配置代码。
3.根据权利要求2所述的方法,还包括:
确定是否存在与所述发生故障的分段相关联的清除例程;以及
响应于确定出存在清除例程,执行所确定的清除例程,以将所述至少一个相连设备的配置返回到开始执行所述发生故障的分段之前的状态,其中响应于执行所述清除例程而执行所述发生故障的分段中的配置代码。
4.根据权利要求2所述的方法,还包括:
响应于确定出可以从所述发生故障的分段继续执行,确定重试值是否超出重试限度;
响应于确定出所述重试值并未超出重试限度,在执行所述发生故障的分段中的配置代码之前递增重试值;以及
响应于确定出所述重试值超出重试限度,使所述恢复失效而不再重试。
5.根据权利要求2所述的方法,还包括:
响应于确定出无法从所述发生故障的分段继续执行,确定是否存在与所述发生故障的分段以及所述发生故障的分段之前的所有分段相关联的清除例程;以及
按照与所述分段顺序相反的顺序来执行每个已确定的清除例程,以便将所述至少一个相连设备的配置返回到执行所述配置代码之前的状态。
6.根据权利要求5所述的方法,其中不同的清除例程与不同的分段相关联,以便执行特定于分段配置代码的清除。
7.根据权利要求1所述的方法,其中第一和第二群集执行初始化代码,并且还执行:
响应于执行一个分段而由所述第一群集用信号向所述第二群集发出通知,其中在所述存储器中指示出一个分段完成还包括指示出执行了完成分段中的配置代码的所述第一或第二群集;以及
响应于接收到所述信号而由所述第二群集执行所述第一群集所执行的分段,以便对所述至少一个相连设备进行配置,以供所述第二群集使用。
8.根据权利要求7所述的方法,还包括:
响应于完成执行用于所述分段的配置操作,由所述第一和第二群集在所述存储器中指示分段完成;以及
响应于执行一个分段,所述第二群集用信号向所述第一群集发出通知,其中所述第一群集响应于该信号来执行下一个分段。
9.根据权利要求7所述的方法,还包括:
由所述第一群集确定配置期间的故障;
响应于检测到故障,由所述第一群集从所述存储器中确定最后完成的分段,其中所述故障是通过所述第一或第二群集执行按照分段顺序的最后完成的分段之后的发生故障的分段而发生的;
由所述第一群集确定是否可以从所述发生故障的分段继续执行;以及
响应于确定出可以从所述发生故障的分段继续执行,由所述第一和第二群集执行所述发生故障的分段中的配置代码。
10.根据权利要求9所述的方法,其中所述第一群集从所述存储器中确定最后完成的分段,并且确定是否可以从所述发生故障的分段继续执行,并且其中所述第一群集还执行:
响应于确定出无法从所述发生故障的分段继续执行,确定是否存在与所述发生故障的分段以及在所述发生故障的分段之前的所有分段相关联的清除例程;
按照与分段顺序相反的顺序来执行每个已确定的清除例程,以便将所述至少一个相连设备的配置返回到执行所述配置代码之前的状态;以及
用信号向所述第二群集发出通知,以使得所述第二群集按照与分段顺序相反的顺序来执行所确定的每个清除例程,以便将所述至少一个相连设备的配置返回到执行所述配置代码之前的状态。
11.根据权利要求7所述的方法,还包括:
响应于确定出所述第一或第二群集在执行分段之前无法访问存储器,使所述配置失效。
12.一种具有相连设备的系统,包括:
处理器;
与所述处理器进行通信的存储器;
计算机可读媒体,其包括用于配置至少一个相连设备的多个分段,其中每个分段都包括用于配置所述至少一个相连设备的配置代码;以及
由所述处理器执行来执行操作的代码,所述操作包括:
依照分段顺序通过执行每个分段中的配置代码来执行所述分段,以便执行与所述至少一个相连设备有关的配置操作;以及
响应于完成该分段的配置操作的执行,在存储器中指示该分段完成。
13.根据权利要求12所述的系统,其中所述操作还包括:
响应于从故障进行恢复,从所述存储器中确定按照分段顺序的最后一个完成的分段,其中所述故障是在执行按照分段顺序的最后完成的分段之后的发生故障的分段的时候出现的;
确定是否可以从所述发生故障的分段继续执行;以及
响应于确定出可以从所述发生故障的分段继续执行,执行所述发生故障的分段中的配置代码。
14.根据权利要求13所述的系统,其中所述计算机可读媒体还包括与所述发生故障的分段相关联的至少一个清除例程,其中所述操作还包括:
确定所述清除例程之一是否与所述发生故障的分段相关联;以及
响应于确定出存在清除例程,执行所确定的清除例程,以将所述至少一个相连设备的配置返回到开始执行所述发生故障的分段之前的状态,其中响应于执行所述清除例程而执行所述发生故障的分段中的配置代码。
15.根据权利要求12所述的系统,其中所述处理器、存储器和计算机可读媒体包括第一群集,还包括:
第二群集,其中响应于执行一个分段而由所述第一群集用信号向所述第二群集发出通知,其中响应于接收到所述信号而由所述第二群集执行所述第一群集所执行的分段,以便对所述至少一个相连设备进行配置,以供所述第二群集使用,并且其中所述第一和第二群集在所述存储器中指示出一个分段完成还包括指示出执行了完成分段中的配置代码的所述第一或第二群集。
16.根据权利要求15所述的系统,其中响应于完成执行用于所述分段的配置操作,由所述第一和第二群集在所述存储器中指示分段完成,并且其中响应于执行一个分段,所述第二群集用信号向所述第一群集发出通知,其中所述第一群集响应于该信号来执行下一个分段。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/291,050 US7428602B2 (en) | 2005-11-29 | 2005-11-29 | Method for executing initialization code to configure connected devices and executing segments of configuration code from a failed segment |
US11/291,050 | 2005-11-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1975671A true CN1975671A (zh) | 2007-06-06 |
CN100549955C CN100549955C (zh) | 2009-10-14 |
Family
ID=38125761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101412447A Expired - Fee Related CN100549955C (zh) | 2005-11-29 | 2006-09-29 | 用于配置相连设备的方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (2) | US7428602B2 (zh) |
JP (1) | JP4939180B2 (zh) |
CN (1) | CN100549955C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107624178A (zh) * | 2015-06-26 | 2018-01-23 | 英特尔公司 | 快速归零的机柜式架构(rsa)和共享存储器控制器(smc)技术 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7428602B2 (en) * | 2005-11-29 | 2008-09-23 | International Business Machines Corporation | Method for executing initialization code to configure connected devices and executing segments of configuration code from a failed segment |
US8171307B1 (en) * | 2006-05-26 | 2012-05-01 | Netapp, Inc. | Background encryption of disks in a large cluster |
US20070288605A1 (en) * | 2006-06-07 | 2007-12-13 | Cisco Technology, Inc. | Method and system for bulk negation of network configuration-commands |
US7620854B2 (en) * | 2007-01-30 | 2009-11-17 | Hewlett-Packard Development Company, L.P. | Method and system for handling input/output (I/O) errors |
JP4900807B2 (ja) | 2007-03-06 | 2012-03-21 | 株式会社日立製作所 | ストレージシステム及びデータ管理方法 |
US8468393B2 (en) * | 2007-06-28 | 2013-06-18 | Arm Limited | Triggering diagnostic operations within a data processing apparatus |
JP5229112B2 (ja) | 2009-05-28 | 2013-07-03 | セイコーエプソン株式会社 | コントローラーの制御方法およびコントローラー |
US9141664B2 (en) * | 2009-08-31 | 2015-09-22 | Hewlett-Packard Development Company, L.P. | System and method for optimizing queries |
US8195984B2 (en) * | 2010-05-26 | 2012-06-05 | Telcordia Technologies, Inc. | System and method for a staggered execution environment |
GB2504956A (en) | 2012-08-14 | 2014-02-19 | Ibm | Management of RAID error recovery procedures and configuration |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4228496A (en) | 1976-09-07 | 1980-10-14 | Tandem Computers Incorporated | Multiprocessor system |
EP0280773A3 (en) * | 1987-01-09 | 1989-12-20 | International Business Machines Corporation | Method for recovery enhancement in a transaction-oriented data processing system |
JPH02299033A (ja) * | 1989-05-15 | 1990-12-11 | Nec Corp | マイクロプログラム制御装置 |
JPH04218842A (ja) * | 1990-04-11 | 1992-08-10 | Hitachi Ltd | プログラムの再実行方法 |
US5437022A (en) | 1992-12-17 | 1995-07-25 | International Business Machines Corporation | Storage controller having additional cache memory and a means for recovering from failure and reconfiguring a control unit thereof in response thereto |
US6457069B1 (en) * | 1998-07-23 | 2002-09-24 | Compaq Information Technologies Group, L.P. | Method and apparatus for providing support for dynamic resource assignment and configuration of peripheral devices when enabling or disabling plug-and-play aware operating systems |
TW454120B (en) | 1999-11-11 | 2001-09-11 | Miralink Corp | Flexible remote data mirroring |
US7203732B2 (en) | 1999-11-11 | 2007-04-10 | Miralink Corporation | Flexible remote data mirroring |
EP1370950B1 (en) | 2001-02-13 | 2017-12-27 | NetApp, Inc. | System and method for policy based storage provisioning and management |
JP3781112B2 (ja) * | 2001-04-27 | 2006-05-31 | オムロン株式会社 | プログラマブルコントローラ・システム |
US6944785B2 (en) | 2001-07-23 | 2005-09-13 | Network Appliance, Inc. | High-availability cluster virtual server system |
EP1482664A3 (en) * | 2003-05-20 | 2005-04-13 | Yamaha Corporation | Signal transmission apparatus |
JP4183610B2 (ja) * | 2003-12-18 | 2008-11-19 | 三洋電機株式会社 | 空気調和装置 |
US7428602B2 (en) * | 2005-11-29 | 2008-09-23 | International Business Machines Corporation | Method for executing initialization code to configure connected devices and executing segments of configuration code from a failed segment |
-
2005
- 2005-11-29 US US11/291,050 patent/US7428602B2/en not_active Expired - Fee Related
-
2006
- 2006-09-29 CN CNB2006101412447A patent/CN100549955C/zh not_active Expired - Fee Related
- 2006-11-17 JP JP2006312178A patent/JP4939180B2/ja not_active Expired - Fee Related
-
2008
- 2008-08-06 US US12/187,291 patent/US7853728B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107624178A (zh) * | 2015-06-26 | 2018-01-23 | 英特尔公司 | 快速归零的机柜式架构(rsa)和共享存储器控制器(smc)技术 |
CN107624178B (zh) * | 2015-06-26 | 2021-05-11 | 英特尔公司 | 快速归零的机柜式架构(rsa)和共享存储器控制器(smc)技术 |
Also Published As
Publication number | Publication date |
---|---|
US7853728B2 (en) | 2010-12-14 |
JP4939180B2 (ja) | 2012-05-23 |
US20070174496A1 (en) | 2007-07-26 |
US7428602B2 (en) | 2008-09-23 |
CN100549955C (zh) | 2009-10-14 |
US20080313490A1 (en) | 2008-12-18 |
JP2007149085A (ja) | 2007-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100549955C (zh) | 用于配置相连设备的方法和系统 | |
US7860836B1 (en) | Method and apparatus to recover data in a continuous data protection environment using a journal | |
US7281104B1 (en) | System and method for online data migration | |
US20190087287A1 (en) | Block storage by decoupling ordering from durability | |
EP1770492B1 (en) | A method for improving writing data efficiency and storage subsystem and system implementing the same | |
CN101755257B (zh) | 管理在不同的网络上将写入从首要存储器拷贝到次要存储器 | |
CN100517247C (zh) | 用于并行存储的装置、系统和方法 | |
US20050071388A1 (en) | Asynchronous data mirroring with look-head synchronization record | |
CN1702627A (zh) | 执行拷贝操作的方法和系统 | |
CN1967495A (zh) | 用于传送数据块的方法和系统 | |
US20040153727A1 (en) | Method and apparatus for recovering redundant cache data of a failed controller and reestablishing redundancy | |
CN102460401B (zh) | 利用变化跟踪进行系统恢复的技术 | |
CN103197899A (zh) | 增强基于闪存的存储的寿命和性能 | |
CN1567262A (zh) | 基于数据卷快照的在线数据备份方法 | |
CN1299484A (zh) | 高度可用的文件服务器 | |
JP2002323959A (ja) | 磁気ディスク制御装置のログ主体不揮発性書き込みキャッシュ・システム及び方法 | |
CN1653427A (zh) | 用于创建虚拟数据拷贝的方法和装置 | |
WO2012140695A1 (en) | Storage control apparatus and error correction method | |
US11645153B2 (en) | Method for controlling operations of raid system comprising host device and plurality of SSDs | |
CN1645335A (zh) | 用于存储卷的一致拷贝的方法、系统和制造品 | |
CN1573705A (zh) | 存储控制器及数据存储方法 | |
CN1892605A (zh) | 用于动态群集代码管理的方法和系统 | |
CN1763721A (zh) | 在信息存储和检索系统中提供故障恢复保护的设备和方法 | |
US7260739B2 (en) | Method, apparatus and program storage device for allowing continuous availability of data during volume set failures in a mirrored environment | |
US9400724B2 (en) | Federating and protecting multiple big data sources combined with enterprise data sources for BI |
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: 20091014 Termination date: 20200929 |