專利名稱:用于配置相連設(shè)備的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于執(zhí)行初始化代碼來配置相連設(shè)備的方法、系統(tǒng)和程序。
背景技術(shù):
存儲(chǔ)網(wǎng)絡(luò)中的主機(jī)系統(tǒng)可以通過多條路徑來與存儲(chǔ)控制器進(jìn)行通信。存儲(chǔ)控制器可以包括獨(dú)立的存儲(chǔ)群集,其中每個(gè)存儲(chǔ)群集都能訪問存儲(chǔ)裝置,并且提供對(duì)存儲(chǔ)器的訪問的冗余。主機(jī)可以通過任一群集來訪問所附接的存儲(chǔ)裝置。如果存儲(chǔ)群集出現(xiàn)故障,那么主機(jī)可以進(jìn)行故障轉(zhuǎn)移(failover),以使用其他存儲(chǔ)群集來訪問存儲(chǔ)裝置。此外,這些群集可以將寫入內(nèi)容緩存到非易失性存儲(chǔ)裝置(NVS)中的其他群集,這樣一來,如果一個(gè)群集出現(xiàn)故障,那么會(huì)在無故障群集的NVS中維持最近寫入存儲(chǔ)設(shè)備的內(nèi)容。在這類雙群集系統(tǒng)中,每個(gè)群集必須被配置成使用在所附接的存儲(chǔ)裝置中配置的邏輯設(shè)備,例如邏輯子系統(tǒng)(LSS)。
在雙群集系統(tǒng)中,每個(gè)群集獨(dú)立地執(zhí)行諸如初始微碼裝入(IML)之類的初始化代碼來配置群集,以便訪問相連的設(shè)備,這些相連設(shè)備諸如總線接口、存儲(chǔ)設(shè)備、適配器等等。每個(gè)群集都維持了獨(dú)立的配置信息集合,以用來訪問相連的設(shè)備。如果在配置期間出現(xiàn)故障,并且差錯(cuò)恢復(fù)過程無法從故障中恢復(fù)到繼續(xù)執(zhí)行配置和初始化,那么管理員可能必須手動(dòng)編輯并重新配置每個(gè)群集的設(shè)置,以使雙群集系統(tǒng)返回到發(fā)生故障的初始化和配置開始之前的狀態(tài)。
在本領(lǐng)域中需要一種用于在配置操作期間處理故障的改進(jìn)技術(shù)。
發(fā)明內(nèi)容
提供了一種用于執(zhí)行初始化代碼來配置相連設(shè)備的方法、系統(tǒng)和程序。多個(gè)分段(segment)被提供來配置至少一個(gè)相連設(shè)備,其中每個(gè)分段都包括用于配置所述至少一個(gè)相連設(shè)備的配置代碼。根據(jù)分段順序通過執(zhí)行每個(gè)分段中的配置代碼來執(zhí)行所述分段,以便執(zhí)行與所述至少一個(gè)相連設(shè)備有關(guān)的配置操作。響應(yīng)于完成執(zhí)行用于該分段的配置操作,在存儲(chǔ)器中指示出分段完成。
圖1描述的是計(jì)算環(huán)境的實(shí)施例。
圖2描述的是初始化代碼中的組件。
圖3描述的是檢查點(diǎn)信息的實(shí)施例。
圖4描述的分段完成信息的實(shí)施例。
圖5描述的是用于執(zhí)行配置代碼的操作的實(shí)施例。
圖6描述的是用于在配置代碼執(zhí)行期間從故障中恢復(fù)的差錯(cuò)恢復(fù)過程的操作的實(shí)施例。
圖7描述的是用于在雙群集環(huán)境中執(zhí)行配置代碼的操作的實(shí)施例。
圖8描述的是用于在雙群集環(huán)境中在配置代碼執(zhí)行期間從故障中恢復(fù)的差錯(cuò)恢復(fù)過程的操作的實(shí)施例。
具體實(shí)施例方式
圖1描述的是網(wǎng)絡(luò)計(jì)算環(huán)境的實(shí)施例。系統(tǒng)2在通向存儲(chǔ)裝置8a、8b的網(wǎng)絡(luò)6上從主機(jī)系統(tǒng)4a、4b...4n接收輸入/輸出(I/O)請(qǐng)求,其中存儲(chǔ)裝置8a、8b均被配置成具有一個(gè)或多個(gè)卷10a、10b(例如邏輯單元號(hào)、邏輯設(shè)備等等)。系統(tǒng)2包括兩個(gè)群集12a、12b,其中每個(gè)群集都包括處理器復(fù)合體(processor complex)14a、14b以及高速緩存16a、16b。該群集12a、12b從主機(jī)4a、4b...4n接收I/O請(qǐng)求并緩存這些請(qǐng)求,并將它們各自高速緩存16a、16b中的數(shù)據(jù)寫入存儲(chǔ)裝置8a、8b。群集12a、12b可以包括附加組件(諸如非易失性存儲(chǔ)單元(未示出)),以在高速緩存16a、16b中提供更新的備份存儲(chǔ)。群集12a、12b可以具有不同的功率邊界。在所描述的實(shí)施例中,每個(gè)存儲(chǔ)群集12a、12b都提供對(duì)包括存儲(chǔ)裝置8a、8b的附接存儲(chǔ)裝置的訪問。每個(gè)群集12a、12b都包括由處理器復(fù)合體14a、14b執(zhí)行來處理主機(jī)4a、4b...4n的I/O請(qǐng)求的I/O管理器軟件18a、18b??偩€20提供使得能夠在群集12a、12b之間進(jìn)行通信的通信接口??偩€22提供在群集12a、12b以及存儲(chǔ)裝置8a、8b之間的通信。總線20和22可以包括本領(lǐng)域中公知的適當(dāng)?shù)耐ㄐ沤涌?,例如外部組件互連(PCI)總線或是其他總線接口??偩€20和22可以是相連的、分離的和/或包括多個(gè)相連的總線設(shè)備。
群集12a、12b都可以通過總線20或某種其他接口來訪問共享存儲(chǔ)器24。共享存儲(chǔ)器24可以包括硬盤驅(qū)動(dòng)器、非易失性電子存儲(chǔ)器等等。可替換地,如果沒有獨(dú)立的共享存儲(chǔ)器設(shè)備,那么共享存儲(chǔ)器24可以在每個(gè)群集中包括相同數(shù)據(jù)的拷貝,由此,每個(gè)群集中的拷貝被保持同步,以便在主群集崩潰的時(shí)候由非主群集接管配置??截惖耐娇梢栽诿總€(gè)分段完成時(shí)進(jìn)行。共享存儲(chǔ)器24可以被更新,以便由每個(gè)群集12a、12b來記錄每個(gè)分段的完成。此外,共享存儲(chǔ)器24可以包括每個(gè)群集的分段檢查點(diǎn)信息,該信息指示任一群集12a、12b是否完成了分段。
此外,群集12a、12b可以訪問適配器26a、26b...26n,以便與主機(jī)4a、4b...4n進(jìn)行通信。該適配器可以在群集12a、12b的硬件內(nèi)部實(shí)現(xiàn),也可以在群集12a、12b的外部實(shí)現(xiàn)。群集12a、12b還包括諸如初始微碼裝入(IML)的初始化代碼28a、28b,其中群集12a、12b執(zhí)行所述初始化代碼28a、28b來配置相連設(shè)備以便使用。配置操作可以包括裝入并配置驅(qū)動(dòng)器和相連設(shè)備,以使得能夠訪問相連設(shè)備并與之進(jìn)行通信。舉例來說,群集12a、12b執(zhí)行初始化代碼28a、28b來配置群集12a、12b,以便使用總線20、存儲(chǔ)卷10a、10b、適配器26a、26b...26n以及與適配器26a、26b...26n相連的任何設(shè)備,例如主機(jī)4a、4b...4n。配置操作可以包括更新群集12a、12b的存儲(chǔ)器(諸如高速緩存16a、16b)中的數(shù)據(jù)結(jié)構(gòu),以便使用這些設(shè)備。舉例來說,配置代碼可以把群集12a、12b配置成能夠訪問存儲(chǔ)裝置中的卷10a、10b或配置虛擬化設(shè)備。分段完成信息30包括與成功完成執(zhí)行的配置代碼的分段或部分有關(guān)的信息。在某些實(shí)施例中,共享存儲(chǔ)器24在發(fā)生配置錯(cuò)誤之后維持信息,以便在初始化或重新啟動(dòng)(諸如熱啟動(dòng))期間,在出現(xiàn)故障之后可以將這些信息提供給差錯(cuò)恢復(fù)過程。
系統(tǒng)2可以包括存儲(chǔ)控制器或服務(wù)器。在可替換實(shí)施例中,系統(tǒng)2可以包括不同類型的計(jì)算機(jī)設(shè)備,這些設(shè)備執(zhí)行相連設(shè)備的初始化和配置操作。主機(jī)4a、4b...4n可以包括本領(lǐng)域中公知的計(jì)算設(shè)備,諸如服務(wù)器、大型機(jī)、工作站、個(gè)人計(jì)算機(jī)、手持計(jì)算機(jī)、膝上型計(jì)算機(jī)、電話設(shè)備、網(wǎng)絡(luò)工具等等。網(wǎng)絡(luò)6可以包括存儲(chǔ)區(qū)域網(wǎng)(SAN)、局域網(wǎng)(LAN)、內(nèi)聯(lián)網(wǎng)、因特網(wǎng)、廣域網(wǎng)(WAN)等等。存儲(chǔ)裝置8a、8b可以包括存儲(chǔ)設(shè)備陣列,例如簡單磁盤捆束(JBOD)、直接存取存儲(chǔ)設(shè)備(DASD)、獨(dú)立磁盤冗余陣列(RAID)陣列、虛擬化設(shè)備、磁帶存儲(chǔ)裝置、閃速存儲(chǔ)器等等。
圖2描述的是初始化代碼28(諸如初始化代碼拷貝28a、28b)的組件,其包括被執(zhí)行用來執(zhí)行初始化配置操作的初始化過程50,以及響應(yīng)于檢測到在初始化和配置操作期間的故障而執(zhí)行的差錯(cuò)恢復(fù)過程(ERP)52。初始化代碼28還包括被組織在分段54a、54b...54n中的配置代碼,其中每個(gè)分段包括一部分的配置代碼56a、56b...56n以及檢查點(diǎn)信息58a、58b...58n??蛇x的清除例程可以與每個(gè)分段54a、54b...54n相關(guān)聯(lián)。通過執(zhí)行與分段相關(guān)聯(lián)的清除例程60a、60b...60n,將群集配置返回到執(zhí)行相關(guān)聯(lián)的分段54a、54b...54n的配置代碼56a、56b...56n之前的狀態(tài)。該清除例程60a、60b...60n可以刪除存儲(chǔ)器和寄存器中的某些信息,并逆轉(zhuǎn)由于執(zhí)行發(fā)生故障的配置代碼所導(dǎo)致的設(shè)置。
分段54b...54n包括配置代碼56b、56c(未示出)、檢查點(diǎn)信息58b...58n(未示出),并且可選地包括清除例程60b...60n(未示出)。所述清除例程60a...60n可以與配置代碼分開存儲(chǔ)。在一實(shí)施例中,配置代碼54a、54b...54n可以在一個(gè)或多個(gè)程序中實(shí)現(xiàn),其中所述程序具有將配置代碼54a、54b...54n中的不同分段分離開的檢查點(diǎn)??商鎿Q地,配置代碼54a、54b...54n中的每個(gè)分段都是可獨(dú)立尋址的,其中分段的檢查點(diǎn)信息提供關(guān)于該分段的信息。每個(gè)分段中的配置代碼54a...54n可以執(zhí)行獨(dú)立的配置操作。
圖3描述的是可以與分段的檢查點(diǎn)信息58(諸如檢查點(diǎn)信息58a)包括在一起的信息的實(shí)施例,所述檢查點(diǎn)信息包括繼續(xù)信息70以及清除例程信息72。繼續(xù)信息70表明如果在執(zhí)行用于分段54a、54b...54n的配置代碼56a、56b...56n的時(shí)候出現(xiàn)故障,那么在差錯(cuò)恢復(fù)過程(ERP)52期間來自分段的配置是否可以繼續(xù)。清除例程信息72標(biāo)識(shí)了清除例程,所述清除例程在被執(zhí)行時(shí)會(huì)將群集或系統(tǒng)配置返回到發(fā)生故障的分段的配置代碼被執(zhí)行之前的狀態(tài)。然而,在嘗試執(zhí)行發(fā)生故障的配置代碼的分段之前所執(zhí)行和完成的那些配置代碼分段所產(chǎn)生的改變會(huì)保持有效。如果代碼不需要被執(zhí)行來逆轉(zhuǎn)在發(fā)生故障的配置代碼的執(zhí)行期間可能已出現(xiàn)的任何改變,那么分段可以不具有清除例程。
圖4描述的是與用于一個(gè)分段54a、54b...54n的分段完成信息30(圖1)包括在一起的信息的實(shí)例80,其中所述信息的實(shí)例80包括分段標(biāo)識(shí)符或指針82以及完成標(biāo)記84,所述分段標(biāo)識(shí)符或指針82標(biāo)識(shí)或定址配置代碼56a、56b...56n的分段,所述完成標(biāo)記84指示出是否成功執(zhí)行了所標(biāo)識(shí)的配置代碼。由此,每當(dāng)系統(tǒng)完成對(duì)一個(gè)分段的配置代碼的執(zhí)行時(shí),就在用于該被成功執(zhí)行的配置代碼分段的分段完成信息的實(shí)例80中的完成標(biāo)記84中指示出用于指示成功完成的信息。此信息允許系統(tǒng)確定最后一個(gè)成功完成的分段。分段順序指示了執(zhí)行配置代碼的順序,其中該順序可以是從程序執(zhí)行配置代碼分段的順序中確定的。
圖5描述的是在由包括一個(gè)或多個(gè)群集的系統(tǒng)執(zhí)行初始化代碼50時(shí)由所述初始化代碼50執(zhí)行的操作的實(shí)施例。圖5的操作可以由只具有一個(gè)群集(例如群集12a)的系統(tǒng)來執(zhí)行,以便對(duì)附接于該單個(gè)群集設(shè)備(諸如具有單個(gè)處理器的系統(tǒng)等等)的設(shè)備進(jìn)行配置。在單群集(即單處理器)環(huán)境中,共享存儲(chǔ)器包括由處理器在配置期間使用的非易失性存儲(chǔ)器。一旦通過執(zhí)行初始化過程50而啟動(dòng)配置操作(在方框100),那么初始化過程50就訪問(在方框102)第一分段54a中的配置代碼56a,并且執(zhí)行(在方框104)該配置代碼來配置至少一個(gè)相連設(shè)備,例如邏輯設(shè)備、存儲(chǔ)區(qū)、存儲(chǔ)器區(qū)、適配器等等。一旦成功地完成執(zhí)行配置代碼,則在非易失性存儲(chǔ)器(例如24)中指示(在方框106)該分段完成。在一實(shí)施例中,分段的配置代碼的完成可以通過在用于已完成分段的分段完成信息實(shí)例80中設(shè)置分段82的完成標(biāo)記84來進(jìn)行指示。如果(在方框108)還有要執(zhí)行的更多分段54a、54b...54n,則對(duì)在初始化代碼28中用于下一分段的配置代碼56b...56n進(jìn)行訪問(在方框110),并且控制返回到方框104來執(zhí)行下一個(gè)被訪問的配置代碼56b...56n。在執(zhí)行了用于所有分段的配置代碼之后,返回(在方框112)配置完成,并且共享存儲(chǔ)器24被更新來移除已成功或是發(fā)生故障的配置操作。
圖6描述的是響應(yīng)于在圖5的配置代碼執(zhí)行期間檢測到故障而由差錯(cuò)恢復(fù)過程(ERP)52執(zhí)行的操作的實(shí)施例。圖6的操作可以由單群集系統(tǒng)或多群集系統(tǒng)執(zhí)行來配置相連的設(shè)備,這些設(shè)備例如總線接口、存儲(chǔ)設(shè)備、適配器等等。響應(yīng)于在執(zhí)行一個(gè)分段中的配置代碼56a、56b...56n的分段時(shí)出現(xiàn)故障之后初始化(在方框105)ERP 52,ERP 52從存儲(chǔ)器中確定(在方框152)最后完成的分段。一般來說,有三種啟動(dòng)分段ERP的方式分段故障導(dǎo)致到分段ERP的分支(在方框150和250);分段故障導(dǎo)致系統(tǒng)ERP,其中在系統(tǒng)ERP開始之后,出現(xiàn)故障的分段是由共享存儲(chǔ)器中的主群集檢測的,并且啟動(dòng)分段ERP;以及分段故障導(dǎo)致系統(tǒng)重啟,其中在系統(tǒng)IML開始之后,出現(xiàn)故障的分段是由共享存儲(chǔ)器中的主群集檢測的,并且啟動(dòng)分段ERP。最后完成的分段可以包括以分段順序排列的、設(shè)置了完成標(biāo)記82的最后一個(gè)分段。如果(在方框154)出現(xiàn)故障的分段的繼續(xù)信息(例如發(fā)生故障的分段的檢查點(diǎn)信息58a、58b...58n中的繼續(xù)信息70(圖3))指示出無法從發(fā)生故障的分段繼續(xù)執(zhí)行,那么ERP 52確定(在方框156)與發(fā)生故障的分段以及在發(fā)生故障的分段之前成功完成執(zhí)行的所有分段相關(guān)聯(lián)的任何清除例程60a、60b...60n。然后,運(yùn)行用于單個(gè)發(fā)生故障分段的清除例程60a、60b...60n可以允許重試發(fā)生故障的分段。在某些情況下,在沒有運(yùn)行清除例程時(shí),發(fā)生故障的分段無法從通過該發(fā)生故障的分段的故障點(diǎn)路徑進(jìn)行重試。所確定的清除例程60a、60b...60n以與分段順序相反的順序執(zhí)行(在方框158),以將至少一個(gè)相連設(shè)備的配置返回到執(zhí)行配置代碼之前的狀態(tài)。然后配置故障被返回(在方框160)。
如果(在方框154)配置信息70指示出配置可能從發(fā)生故障的分段繼續(xù)并且如果(在方框162)指示出ERP 52已嘗試重試執(zhí)行發(fā)生故障的配置代碼的次數(shù)的重試值31(圖1)大于重試限度,那么控制前進(jìn)到方框156,以開始使配置失效的過程。該重試值可以在非易失性存儲(chǔ)器中被維持,諸如圖1的共享存儲(chǔ)器24中的重試值31所示的那樣。否則,如果(在方框162)重試值31小于重試限度,那么該重試值被遞增(在方框164)。如果(在方框166)存在用于發(fā)生故障的分段(即具有發(fā)生故障的配置代碼的分段)的清除例程60a、60b...60n,那么ERP 52執(zhí)行(在方框168)所確定的清除例程60a...60n,以使系統(tǒng)返回到執(zhí)行出現(xiàn)故障的配置代碼之前存在的狀態(tài)。從方框168或是方框166的“否”分支開始,訪問(在方框170)和執(zhí)行發(fā)生故障的分段54a、54b...54n中的配置代碼56a、56b...56n。如果(在方框172)方框170中的配置代碼的執(zhí)行發(fā)生故障,那么控制返回方框150。否則,如果在方框170中成功執(zhí)行了配置代碼56a、56b...56n,則清除(在方框174)重試值31并且控制前進(jìn)(在方框176)到圖5中的方框106來繼續(xù)執(zhí)行分段54a、54b...54n中的配置代碼,從而完成配置。
通過圖6的操作,執(zhí)行初始化代碼28的系統(tǒng)可以從故障中恢復(fù),并且嘗試從出現(xiàn)故障的點(diǎn)執(zhí)行配置代碼,從而避免從頭重新開始配置以及允許自動(dòng)恢復(fù)配置過程。
圖7和8描述的是由多群集系統(tǒng)2(圖1)中的群集12a、12b執(zhí)行的用于配置相連設(shè)備的操作的實(shí)施例,所述相連設(shè)備諸如總線20、22、適配器26a、26b...1126n以及存儲(chǔ)裝置8a、8b。群集12a、12b可以對(duì)其共同訪問的共享資源進(jìn)行配置,所述共享資源諸如存儲(chǔ)裝置8a、8b以及總線20和22。一個(gè)群集(例如群集12a)可以在配置期間被指定為主群集,而另一個(gè)群集(例如群集12b)可以被指定為非主群集,其中任一群集12a、12b都可以被指定為主群集。在一實(shí)施例中,如果群集12a、12b都不能訪問共享存儲(chǔ)器24,那么用于整個(gè)系統(tǒng)2的配置可能發(fā)生故障。
參考圖7,一旦主群集12a啟動(dòng)(在方框200)配置操作,那么主群集12a就會(huì)訪問(在方框202)配置代碼56a的第一個(gè)分段,并且執(zhí)行(在方框204)所訪問的配置代碼56a。一旦成功完成,那么主群集12a就用信號(hào)(也就是消息)向非主群集12b通知(在方框206)執(zhí)行該分段的配置代碼。主群集12a還可以將與剛剛被執(zhí)行的配置代碼相關(guān)聯(lián)的配置數(shù)據(jù)傳送到非主群集12b。響應(yīng)于該信號(hào),非主群集12b執(zhí)行(在方框208)剛剛由主群集12a執(zhí)行的分段中的配置代碼。一旦成功完成,那么非主群集12b就用信號(hào)來向主群集通知(在方框210)配置代碼的執(zhí)行是成功還是發(fā)生故障。
響應(yīng)于來自非主群集12b的完成,主群集12a指示出(在方框212)共享存儲(chǔ)器24中的分段完成。在方框212的這個(gè)指示可以包括設(shè)置用于分段82的分段完成信息實(shí)例80中的完成標(biāo)記84,所述分段82的配置代碼是由群集12a、12b成功執(zhí)行的。在此實(shí)施例中,完成指示指示出群集12a、12b都成功完成了分段的配置代碼56a、56b...56n的執(zhí)行。
如果還有要執(zhí)行的配置代碼56a、56b...56n的分段,那么就依照?qǐng)?zhí)行用于所述分段的配置代碼的分段順序來訪問(在方框216)下一個(gè)分段的配置代碼56b...56n,并且控制返回到方框204來執(zhí)行下一個(gè)被訪問分段的配置代碼56b...56n。在群集12a、12b都成功執(zhí)行了用于所有分段的配置代碼之后,該配置完成(在方框112),并且共享存儲(chǔ)器24被更新來移除已成功或是發(fā)生故障的配置操作。
圖8描述的是響應(yīng)于在執(zhí)行配置代碼期間檢測到故障而由主群集12a所執(zhí)行的差錯(cuò)恢復(fù)操作的實(shí)施例,其中配置故障可能在主群集12a或非主群集12b正在依照?qǐng)D7的操作來執(zhí)行配置代碼的時(shí)候出現(xiàn)。響應(yīng)于執(zhí)行ERP 52(在方框250),主群集12a執(zhí)行(在方框252)圖6的方框152-172中的操作,以便從出現(xiàn)故障時(shí)正被執(zhí)行的分段開始執(zhí)行配置代碼。如果(在方框254)成功執(zhí)行了發(fā)生故障的分段54a、54b...54n中的配置代碼56a、56b...56n,那么主群集12a用信號(hào)向非主群集12b通知(在方框256)從發(fā)生故障的分段開始執(zhí)行配置代碼56a、56b...56n。主群集12a前進(jìn)(在方框266)到圖7中的方框212來繼續(xù)執(zhí)行其他分段中的配置代碼。如果(在方框254)配置代碼的執(zhí)行發(fā)生故障(如果因?yàn)橹卦囅薅缺怀^而在圖6的方框160處返回故障,或是如果在方框154處由繼續(xù)信息指示出無法從發(fā)生故障的分段繼續(xù)執(zhí)行,則會(huì)出現(xiàn)這種情況),那么主群集12a用信號(hào)向非主群集12b通知(在方框257)配置發(fā)生故障。
一旦從主群集12a接收到執(zhí)行發(fā)生故障的分段的信號(hào),那么非主群集12b就執(zhí)行圖6中的方框152-172的操作,以便執(zhí)行發(fā)生故障的分段中的配置代碼。如果(在方框260)成功執(zhí)行了發(fā)生故障的分段中的配置代碼,那么非主群集12b用信號(hào)向主群集12a通知(在方框262)成功執(zhí)行了該分段的配置代碼56a、56b...56n。響應(yīng)于這個(gè)信號(hào),主群集12a前進(jìn)到圖7中的方框212以及后續(xù)的方框,以便繼續(xù)執(zhí)行這些分段的配置代碼。如果(在方框260)非主群集12b執(zhí)行配置代碼發(fā)生故障(如果因?yàn)橹卦囅薅缺怀^而在圖6的方框160處返回故障,或是如果在方框154處由繼續(xù)信息指示出無法從發(fā)生故障的分段繼續(xù)執(zhí)行,則會(huì)出現(xiàn)這種情況),那么非主群集12b會(huì)用信號(hào)向主群集12a通知(在方框262)所述故障。
通過所述的圖7和8的操作,主群集12a和非主群集12b各自執(zhí)行分段的配置代碼,并且協(xié)調(diào)它們對(duì)用于分段的配置代碼的執(zhí)行。如果出現(xiàn)故障,那么主群集12a重試執(zhí)行發(fā)生故障的分段中的配置代碼,并接著用信號(hào)向非主群集通知也從發(fā)生故障的分段執(zhí)行所述配置代碼。此外,如果主群集在配置操作期間崩潰,那么非主群集會(huì)成為主群集,并且在系統(tǒng)ERP末端查詢共享存儲(chǔ)器。通過所述操作,在出現(xiàn)故障的情況下,這兩個(gè)群集都可以嘗試從發(fā)生故障的分段開始。
附加實(shí)施例細(xì)節(jié)所描述的操作可以作為一種方法、設(shè)備或是制品來實(shí)現(xiàn),這些方法、設(shè)備或制品使用標(biāo)準(zhǔn)編程和/或工程技術(shù)來產(chǎn)生軟件、固件、硬件或是其任意組合。所描述的操作可以作為“計(jì)算機(jī)可讀媒體”中保持的代碼來實(shí)現(xiàn),其中處理器可以從所述計(jì)算機(jī)可讀媒體中讀取并執(zhí)行所述代碼。計(jì)算機(jī)可讀媒體可以包括以下媒體,例如磁存儲(chǔ)媒體(例如硬盤驅(qū)動(dòng)器、軟盤、磁帶等等)、光存儲(chǔ)裝置(CD-ROM、DVD、光盤等等)、易失性和非易失性存儲(chǔ)設(shè)備(例如EEPROM、ROM、PROM、RAM、DRAM、SRAM、閃速存儲(chǔ)器、固件、可編程邏輯等等)。實(shí)現(xiàn)所述操作的代碼還可以在硬件邏輯(例如集成電路芯片、可編程門陣列(PGA)、專用集成電路(ASIC)等等)中實(shí)現(xiàn)。而且,實(shí)現(xiàn)所述操作的代碼可以在“傳輸信號(hào)”中實(shí)現(xiàn),其中傳輸信號(hào)可以通過空間或是通過傳輸媒體(諸如光纖、銅線等等)來傳播。對(duì)代碼或邏輯進(jìn)行了編碼的傳輸信號(hào)還可以包括無線信號(hào)、衛(wèi)星傳輸、無線電波、紅外信號(hào)、藍(lán)牙等等。對(duì)代碼或邏輯進(jìn)行了編碼的傳輸信號(hào)能夠由發(fā)射站發(fā)射并由接收站接收,其中在傳輸信號(hào)中進(jìn)行編碼的代碼或邏輯可以在接收站和發(fā)射站或設(shè)備上的硬件或計(jì)算機(jī)可讀媒體中被解碼和存儲(chǔ)。“制品”包括可實(shí)現(xiàn)代碼的計(jì)算機(jī)可讀媒體、硬件邏輯和/或傳輸信號(hào)。對(duì)實(shí)現(xiàn)所述操作的實(shí)施例的代碼進(jìn)行了編碼的設(shè)備可以包括計(jì)算機(jī)可讀媒體或硬件邏輯。當(dāng)然,本領(lǐng)域技術(shù)人員將會(huì)了解,在沒有脫離本發(fā)明的范圍的情況下,可以對(duì)這種配置做出很多修改,并且所述制品可以包括本領(lǐng)域中公知的適當(dāng)?shù)男畔⒊休d媒體。
除非以別的方式明確規(guī)定,否則術(shù)語“實(shí)施例”、“實(shí)施例”、“若干實(shí)施例”、“該實(shí)施例”、“這些實(shí)施例”、“一個(gè)或多個(gè)實(shí)施例”、“某些實(shí)施例”以及“一實(shí)施例”都是指本發(fā)明的一個(gè)或多個(gè)實(shí)施例(但并不是全部實(shí)施例)。
除非以別的方式明確規(guī)定,否則術(shù)語“包括(including)”、“包括(comprising)”、“具有”及其變體都意味著“包括但不局限于”。
除非以別的方式明確規(guī)定,否則所列舉的項(xiàng)目列表并不意味著任何或所有項(xiàng)目是互斥的。
除非以別的方式明確規(guī)定,否則術(shù)語“一”、“一個(gè)”和“該”全都意味著“一個(gè)或多個(gè)”。
除非以別的方式明確規(guī)定,否則,相互通信的設(shè)備不需要在相互之間進(jìn)行連續(xù)通信。此外,相互通信的設(shè)備可以直接通信,或者通過一個(gè)或多個(gè)中介進(jìn)行間接通信。
結(jié)合若干個(gè)相互通信的組件來對(duì)實(shí)施例進(jìn)行的描述并不意味著需要所有這些組件。相反,多種可選的組件被描述,以便說明關(guān)于本發(fā)明的大量的可能實(shí)施例。
此外,雖然可以按照連續(xù)順序來描述過程步驟、方法步驟、算法等等,但是這些過程、方法和算法也可以被配置成按照可替換的順序工作。換句話說,任何可被描述的步驟順序或序列并不必然表示所述步驟需要按照該順序來執(zhí)行。這里描述的過程的步驟可以按照任何實(shí)際順序來執(zhí)行。此外,某些步驟可以被同時(shí)執(zhí)行。
當(dāng)在這里描述單個(gè)設(shè)備或制品的時(shí)候,很明顯,可以用一個(gè)以上的設(shè)備/制品(無論它們是否進(jìn)行協(xié)作)來替換單個(gè)設(shè)備/制品。同樣,如果在這里描述了一個(gè)以上的設(shè)備或制品(無論它們是否進(jìn)行協(xié)作),很明顯,可以用單個(gè)設(shè)備來替換一個(gè)以上的設(shè)備或制品,或者可以用不同數(shù)量的設(shè)備/制品來替換所示數(shù)量的設(shè)備或程序??商鎿Q地,設(shè)備的功能和/或特征可以由一個(gè)或多個(gè)未被明確描述成具有所述功能/特征的其他設(shè)備來實(shí)現(xiàn)。因此,本發(fā)明的其他實(shí)施例不需要該設(shè)備自身。
圖5、6、7和8中描述的操作示出了按照某種順序出現(xiàn)的某些事件。在可替換實(shí)施例中,某些操作可以依照不同順序執(zhí)行、修改或移除。此外,可以在上述邏輯中添加步驟,并且這些步驟仍舊符合所描述的實(shí)施例。此外,這里所述的操作可以順序地出現(xiàn),或者某些操作可以被并行地處理。而且,這些操作可以由單個(gè)處理單元執(zhí)行,或者由分布式處理單元執(zhí)行。
上文中對(duì)本發(fā)明各種實(shí)施例的描述是出于說明和描述目的而給出的。但是其并非意圖進(jìn)行窮舉,或是將本發(fā)明限制在所公開的確切形式。根據(jù)上述教導(dǎo),很多的修改和變化都是可行的。本發(fā)明的范圍并非由此詳細(xì)描述所限制,而是由權(quán)利要求所限定。上述說明、示例和數(shù)據(jù)提供了制造和使用本發(fā)明中的成分的完整描述。由于本發(fā)明的很多實(shí)施例都可以在不脫離本發(fā)明的精神和范圍的情況下實(shí)現(xiàn),因此本發(fā)明存在于權(quán)利要求中。
權(quán)利要求
1.一種方法,包括提供多個(gè)分段來配置至少一個(gè)相連設(shè)備,其中每個(gè)分段包括用于配置所述至少一個(gè)相連設(shè)備的配置代碼;依照分段順序通過執(zhí)行每個(gè)分段中的配置代碼來執(zhí)行所述分段,以便執(zhí)行與所述至少一個(gè)相連設(shè)備有關(guān)的配置操作;以及響應(yīng)于完成該分段的配置操作的執(zhí)行,在存儲(chǔ)器中指示該分段完成。
2.根據(jù)權(quán)利要求1所述的方法,還包括響應(yīng)于從故障進(jìn)行恢復(fù),從所述存儲(chǔ)器中確定按照分段順序的最后一個(gè)完成的分段,其中所述故障是在執(zhí)行按照分段順序的最后完成的分段之后的發(fā)生故障的分段的時(shí)候出現(xiàn)的;確定是否可以從所述發(fā)生故障的分段繼續(xù)執(zhí)行;以及響應(yīng)于確定出可以從所述發(fā)生故障的分段繼續(xù)執(zhí)行,執(zhí)行所述發(fā)生故障的分段中的配置代碼。
3.根據(jù)權(quán)利要求2所述的方法,還包括確定是否存在與所述發(fā)生故障的分段相關(guān)聯(lián)的清除例程;以及響應(yīng)于確定出存在清除例程,執(zhí)行所確定的清除例程,以將所述至少一個(gè)相連設(shè)備的配置返回到開始執(zhí)行所述發(fā)生故障的分段之前的狀態(tài),其中響應(yīng)于執(zhí)行所述清除例程而執(zhí)行所述發(fā)生故障的分段中的配置代碼。
4.根據(jù)權(quán)利要求2所述的方法,還包括響應(yīng)于確定出可以從所述發(fā)生故障的分段繼續(xù)執(zhí)行,確定重試值是否超出重試限度;響應(yīng)于確定出所述重試值并未超出重試限度,在執(zhí)行所述發(fā)生故障的分段中的配置代碼之前遞增重試值;以及響應(yīng)于確定出所述重試值超出重試限度,使所述恢復(fù)失效而不再重試。
5.根據(jù)權(quán)利要求2所述的方法,還包括響應(yīng)于確定出無法從所述發(fā)生故障的分段繼續(xù)執(zhí)行,確定是否存在與所述發(fā)生故障的分段以及所述發(fā)生故障的分段之前的所有分段相關(guān)聯(lián)的清除例程;以及按照與所述分段順序相反的順序來執(zhí)行每個(gè)已確定的清除例程,以便將所述至少一個(gè)相連設(shè)備的配置返回到執(zhí)行所述配置代碼之前的狀態(tài)。
6.根據(jù)權(quán)利要求5所述的方法,其中不同的清除例程與不同的分段相關(guān)聯(lián),以便執(zhí)行特定于分段配置代碼的清除。
7.根據(jù)權(quán)利要求1所述的方法,其中第一和第二群集執(zhí)行初始化代碼,并且還執(zhí)行響應(yīng)于執(zhí)行一個(gè)分段而由所述第一群集用信號(hào)向所述第二群集發(fā)出通知,其中在所述存儲(chǔ)器中指示出一個(gè)分段完成還包括指示出執(zhí)行了完成分段中的配置代碼的所述第一或第二群集;以及響應(yīng)于接收到所述信號(hào)而由所述第二群集執(zhí)行所述第一群集所執(zhí)行的分段,以便對(duì)所述至少一個(gè)相連設(shè)備進(jìn)行配置,以供所述第二群集使用。
8.根據(jù)權(quán)利要求7所述的方法,還包括響應(yīng)于完成執(zhí)行用于所述分段的配置操作,由所述第一和第二群集在所述存儲(chǔ)器中指示分段完成;以及響應(yīng)于執(zhí)行一個(gè)分段,所述第二群集用信號(hào)向所述第一群集發(fā)出通知,其中所述第一群集響應(yīng)于該信號(hào)來執(zhí)行下一個(gè)分段。
9.根據(jù)權(quán)利要求7所述的方法,還包括由所述第一群集確定配置期間的故障;響應(yīng)于檢測到故障,由所述第一群集從所述存儲(chǔ)器中確定最后完成的分段,其中所述故障是通過所述第一或第二群集執(zhí)行按照分段順序的最后完成的分段之后的發(fā)生故障的分段而發(fā)生的;由所述第一群集確定是否可以從所述發(fā)生故障的分段繼續(xù)執(zhí)行;以及響應(yīng)于確定出可以從所述發(fā)生故障的分段繼續(xù)執(zhí)行,由所述第一和第二群集執(zhí)行所述發(fā)生故障的分段中的配置代碼。
10.根據(jù)權(quán)利要求9所述的方法,其中所述第一群集從所述存儲(chǔ)器中確定最后完成的分段,并且確定是否可以從所述發(fā)生故障的分段繼續(xù)執(zhí)行,并且其中所述第一群集還執(zhí)行響應(yīng)于確定出無法從所述發(fā)生故障的分段繼續(xù)執(zhí)行,確定是否存在與所述發(fā)生故障的分段以及在所述發(fā)生故障的分段之前的所有分段相關(guān)聯(lián)的清除例程;按照與分段順序相反的順序來執(zhí)行每個(gè)已確定的清除例程,以便將所述至少一個(gè)相連設(shè)備的配置返回到執(zhí)行所述配置代碼之前的狀態(tài);以及用信號(hào)向所述第二群集發(fā)出通知,以使得所述第二群集按照與分段順序相反的順序來執(zhí)行所確定的每個(gè)清除例程,以便將所述至少一個(gè)相連設(shè)備的配置返回到執(zhí)行所述配置代碼之前的狀態(tài)。
11.根據(jù)權(quán)利要求7所述的方法,還包括響應(yīng)于確定出所述第一或第二群集在執(zhí)行分段之前無法訪問存儲(chǔ)器,使所述配置失效。
12.一種具有相連設(shè)備的系統(tǒng),包括處理器;與所述處理器進(jìn)行通信的存儲(chǔ)器;計(jì)算機(jī)可讀媒體,其包括用于配置至少一個(gè)相連設(shè)備的多個(gè)分段,其中每個(gè)分段都包括用于配置所述至少一個(gè)相連設(shè)備的配置代碼;以及由所述處理器執(zhí)行來執(zhí)行操作的代碼,所述操作包括依照分段順序通過執(zhí)行每個(gè)分段中的配置代碼來執(zhí)行所述分段,以便執(zhí)行與所述至少一個(gè)相連設(shè)備有關(guān)的配置操作;以及響應(yīng)于完成該分段的配置操作的執(zhí)行,在存儲(chǔ)器中指示該分段完成。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),其中所述操作還包括響應(yīng)于從故障進(jìn)行恢復(fù),從所述存儲(chǔ)器中確定按照分段順序的最后一個(gè)完成的分段,其中所述故障是在執(zhí)行按照分段順序的最后完成的分段之后的發(fā)生故障的分段的時(shí)候出現(xiàn)的;確定是否可以從所述發(fā)生故障的分段繼續(xù)執(zhí)行;以及響應(yīng)于確定出可以從所述發(fā)生故障的分段繼續(xù)執(zhí)行,執(zhí)行所述發(fā)生故障的分段中的配置代碼。
14.根據(jù)權(quán)利要求13所述的系統(tǒng),其中所述計(jì)算機(jī)可讀媒體還包括與所述發(fā)生故障的分段相關(guān)聯(lián)的至少一個(gè)清除例程,其中所述操作還包括確定所述清除例程之一是否與所述發(fā)生故障的分段相關(guān)聯(lián);以及響應(yīng)于確定出存在清除例程,執(zhí)行所確定的清除例程,以將所述至少一個(gè)相連設(shè)備的配置返回到開始執(zhí)行所述發(fā)生故障的分段之前的狀態(tài),其中響應(yīng)于執(zhí)行所述清除例程而執(zhí)行所述發(fā)生故障的分段中的配置代碼。
15.根據(jù)權(quán)利要求12所述的系統(tǒng),其中所述處理器、存儲(chǔ)器和計(jì)算機(jī)可讀媒體包括第一群集,還包括第二群集,其中響應(yīng)于執(zhí)行一個(gè)分段而由所述第一群集用信號(hào)向所述第二群集發(fā)出通知,其中響應(yīng)于接收到所述信號(hào)而由所述第二群集執(zhí)行所述第一群集所執(zhí)行的分段,以便對(duì)所述至少一個(gè)相連設(shè)備進(jìn)行配置,以供所述第二群集使用,并且其中所述第一和第二群集在所述存儲(chǔ)器中指示出一個(gè)分段完成還包括指示出執(zhí)行了完成分段中的配置代碼的所述第一或第二群集。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其中響應(yīng)于完成執(zhí)行用于所述分段的配置操作,由所述第一和第二群集在所述存儲(chǔ)器中指示分段完成,并且其中響應(yīng)于執(zhí)行一個(gè)分段,所述第二群集用信號(hào)向所述第一群集發(fā)出通知,其中所述第一群集響應(yīng)于該信號(hào)來執(zhí)行下一個(gè)分段。
全文摘要
提供了一種用于執(zhí)行初始化代碼來配置相連設(shè)備的方法、系統(tǒng)和程序。多個(gè)分段被提供來配置至少一個(gè)相連設(shè)備,其中每個(gè)分段都包括用于配置所述至少一個(gè)相連設(shè)備的配置代碼。根據(jù)分段順序通過執(zhí)行每個(gè)分段中的配置代碼來執(zhí)行所述分段,以便執(zhí)行與所述至少一個(gè)相連設(shè)備有關(guān)的配置操作。響應(yīng)于完成執(zhí)行用于該分段的配置操作,在存儲(chǔ)器中指示出分段完成。
文檔編號(hào)H04L12/24GK1975671SQ20061014124
公開日2007年6月6日 申請(qǐng)日期2006年9月29日 優(yōu)先權(quán)日2005年11月29日
發(fā)明者M·P·瓦格林, K·A·洛甫里恩 申請(qǐng)人:國際商業(yè)機(jī)器公司