專利名稱:分布式計算機系統(tǒng)中協(xié)調(diào)器服務(wù)的非中斷性遷移的制作方法
技術(shù)領(lǐng)域:
此專利申請的所有材料根據(jù)美國和其他國家的版權(quán)保護法律受到版權(quán)保護。在本發(fā)明的第一有效提交日期,此材料作為未公布材料而受到保護。然而,在版權(quán)所有者不反對任何人將出現(xiàn)于美國專利和商標(biāo)事務(wù)所的專利文件或記錄中的本專利文檔或?qū)@_內(nèi)容傳真復(fù)印的情況下,此處同意允許復(fù)制此材料,否則保留所有版權(quán)權(quán)利。
本發(fā)明涉及分布式計算機系統(tǒng)和更具體地涉及一種用于在節(jié)點之間將服務(wù)遷移的改進的系統(tǒng)和方法。
背景技術(shù):
分布式計算機系統(tǒng)能夠存儲可供用戶訪問的大量信息以便識別和檢索包含數(shù)據(jù)、文本、音頻和視頻信息的有用文檔。分布式系統(tǒng)(100)的典型例子顯示于圖1中。本發(fā)明應(yīng)用于在分布式計算機系統(tǒng)中運行的分布式應(yīng)用程序(104a至104n和112a至112x)。分布式計算機系統(tǒng)包含計算機節(jié)點(102a至102n和106a至106x)以及一個允許在各計算機節(jié)點之間交換消息的通信網(wǎng)絡(luò)(114)。分布式應(yīng)用程序(104a至104n和112a至112x)是一個運行于分布式系統(tǒng)中的多個節(jié)點上的程序,這些節(jié)點一起用于完成一個共同目標(biāo)(例如并行科學(xué)計算、分布式數(shù)據(jù)庫或并行文件系統(tǒng))。此外,分享的盤存儲器(108a至108z)可供計算機節(jié)點用于存儲數(shù)據(jù)。
分布式應(yīng)用程序的一定操作可能要求所有參與的節(jié)點之間的協(xié)調(diào)。一個用于實施這類操作的普通技術(shù)是指定一個單個“協(xié)調(diào)器”節(jié)點(110),它用于完成所有要求這類協(xié)調(diào)的操作。如果另一個節(jié)點需要執(zhí)行這些操作中的一個,則它通過發(fā)送一條消息至協(xié)調(diào)器節(jié)點來作到這點,該協(xié)調(diào)器節(jié)點代表另一個節(jié)點來完成操作,然后將帶有操作結(jié)果的回答發(fā)送至發(fā)出請求的節(jié)點。
為使分布式應(yīng)用程序成為容錯的,另一個節(jié)點必須能夠在協(xié)調(diào)器出故障時擔(dān)當(dāng)起本來由協(xié)調(diào)器節(jié)點提供的服務(wù)。為擔(dān)當(dāng)起該服務(wù),新協(xié)調(diào)器節(jié)點可能需要重建由舊協(xié)調(diào)器保持的狀態(tài)。用于重建必須狀態(tài)的眾所周知的技術(shù)包括使用穩(wěn)態(tài)存儲器(例如附加的雙端口盤或附于網(wǎng)絡(luò)的分享盤),以及從系統(tǒng)中其他節(jié)點中還有從重建信息、RAID陣列或類似內(nèi)容的劃分帶區(qū)的盤中收集信息。
通常即使沒有故障也希望遷移協(xié)調(diào)器服務(wù)。例如,當(dāng)使用主要/后備的容錯方案時(圖3),如果主要節(jié)點出故障(302),及后備節(jié)點用作協(xié)調(diào)器(304),則當(dāng)主要節(jié)點開始恢復(fù)(306)并且再次可用時(308),希望將協(xié)調(diào)器服務(wù)自后備節(jié)點遷移回至主要節(jié)點(310)。另一個例子是在節(jié)點之間遷移協(xié)調(diào)器服務(wù)以便使可用節(jié)點之間的CPU負載或其他資源平衡。雖然有可能使用克服故障(fail-over)代碼來迫使協(xié)調(diào)器功能自節(jié)點N1遷移至節(jié)點N2,由于不同原因這對于分布式應(yīng)用程序可能是中斷性的;該應(yīng)用程序可能被迫停止運行而在N1上和/或在其他節(jié)點上重新啟動。
以前所知用于遷移協(xié)調(diào)器服務(wù)的方法只在對于分布式應(yīng)用程序和/或它所使用的協(xié)調(diào)器服務(wù)的一定限制性的假設(shè)下才有用,即1.如果可能使等待中的協(xié)調(diào)器操作中斷和“清潔地”流產(chǎn)而不使同一節(jié)點上的分布式應(yīng)用程序的其他部分中斷,則有可能以與節(jié)點故障情況下完全相同的方式將服務(wù)自一個節(jié)點遷移至另一個節(jié)點。然而,這時假設(shè)該協(xié)調(diào)器操作并不與分布式應(yīng)用程序的其他部分分享任何數(shù)據(jù)結(jié)構(gòu),或者至少有可能將部分地完成的操作恢復(fù)以便將分享的數(shù)據(jù)結(jié)構(gòu)恢復(fù)至兼容狀態(tài)。此外,此方案只在這類恢復(fù)操作不要求調(diào)用附加的協(xié)調(diào)器操作的情況下才有用。
2.如果在各協(xié)調(diào)器操作之間沒用依賴性,則有可能將所有新操作掛起并且等待所有等待中的操作完成,然后將協(xié)調(diào)器服務(wù)遷移至另一個節(jié)點而避免中斷。例如,RS/6000SP的IBMRecoverable VirtualShared Disk(RVSD)產(chǎn)品允許自主要服務(wù)器節(jié)點遷移一個虛擬盤服務(wù)器至后備服務(wù)器節(jié)點并且往回遷移。它通過在將VSD服務(wù)器遷移至其他節(jié)點之前先將所有VSD請求(請求讀和寫一個盤塊)掛起而完成。此方案可用的原因是每個盤I/O請求是獨立的(為完成一個盤I/O請求,并不要求VSD服務(wù)器對其他服務(wù)發(fā)出附加I/O請求或任何其他請求)。如果各操作并不獨立,則此方案可能死鎖。
3.如果在各協(xié)調(diào)器操作之間存在依賴性,則有可能將這些操作組合為一組明顯的服務(wù)以使屬于相同服務(wù)的操作彼此獨立。在此情況下,有可能使用傳統(tǒng)方法每次獨立地遷移這些服務(wù)中的一個。
雖然這些現(xiàn)有技術(shù)遷移服務(wù)可用,但所有以上方法都有它們的缺點。以上描述的方法2的缺點是它無法用于互相依賴的服務(wù)。當(dāng)應(yīng)用程序不允許簡單地將等待中的操作流產(chǎn)時,無法使用方法1。當(dāng)這些服務(wù)由于例如所有它們都依賴于某些無法容易地沿著服務(wù)邊界劃分的公共基礎(chǔ)結(jié)構(gòu)因而無法每次遷移一個時,無法使用方法3。因此,當(dāng)各服務(wù)是互相依賴時,需要將能夠操作的各服務(wù)進行遷移。
用于遷移服務(wù)的已知方法的另一個缺點是沒有能力來不但處理直接互相依賴的服務(wù)而且處理間接互相依賴的服務(wù)。例如為處理一個操作OP1,一個服務(wù)可能需要調(diào)用另一個服務(wù)操作OP2;因此OP1直接地依賴于OP2。而間接依賴性的例子是如果操作OP1要求一個分享的資源例如一個聯(lián)鎖(lock),后者可能由位于相同的或另一個節(jié)點上的不相關(guān)操作OP3所保持;OP3在能夠釋放它所保持的資源之前可能需要調(diào)用一個服務(wù)操作OP4。在此例子中,OP1間接地依賴于OP4。現(xiàn)有技術(shù)的方法只是簡單地將所有可能導(dǎo)致死鎖的新操作掛起,因為在OP4完成之前OP1無法完成。因此,需要一種遷移服務(wù),當(dāng)這些服務(wù)不但直接地互相依賴而且間接地互相依賴時也能操作。
本發(fā)明允許一組相關(guān)的協(xié)調(diào)器服務(wù)自一個節(jié)點遷移至另一個節(jié)點而不使系統(tǒng)中任何節(jié)點上的應(yīng)用程序中斷。不像其他方法,本發(fā)明允許一組互相依賴的服務(wù)靜止和一起遷移。由于服務(wù)操作依賴于其他服務(wù)操作的結(jié)果和/或數(shù)據(jù),只當(dāng)其他服務(wù)操作送回為完成任何依賴的具體操作所需數(shù)據(jù)時,該依賴的操作才能恰當(dāng)?shù)赝瓿?。因此,本發(fā)明允許通過使服務(wù)處于“靜止”階段而實現(xiàn)非中斷性遷移。先于其他操作之前,先將最為依賴于其他操作的各操作掛起;然后過程等待任何當(dāng)今操作完成。一旦已經(jīng)完成依賴的操作的第一階段,即將依賴的操作服務(wù)的下一階段掛起,該過程然后等待完成這些操作等等,直至“靜止”階段再無更多階段。因此本發(fā)明可應(yīng)用于比先前方法更為復(fù)雜的分布式應(yīng)用程序。
在說明書結(jié)尾處的權(quán)利要求書中對被認為是本發(fā)明的事物具體地指出了和明確地提出了權(quán)利要求。結(jié)合附圖的以下詳細描述將使本發(fā)明的以上和其他目的、特征和優(yōu)點十分明顯。
圖1是可在本發(fā)明中實現(xiàn)的典型現(xiàn)有技術(shù)分布式信息處理網(wǎng)絡(luò)的系統(tǒng)級總圖。
圖2闡述包括本發(fā)明原理的高度并行分布式多處理器系統(tǒng)計算環(huán)境的例子。
圖3是用于闡述現(xiàn)有技術(shù)中主要節(jié)點故障和恢復(fù)過程的流程圖。
圖4是用于闡述本發(fā)明所實現(xiàn)的故障恢復(fù)和服務(wù)遷移的功能總結(jié)的流程圖。
圖5是用于闡述不同操作的依賴性樹的框圖。
圖6是用于闡述不同操作的操作級別和依賴性級別的框圖。
圖7是用于闡述服務(wù)的非中斷性遷移的功能總結(jié)的流程圖。
重要的是注意到這些實施例只是此處新穎原理的許多有利用途的例子。一般而言,在應(yīng)用本發(fā)明的說明中所作敘述毫無必要限制提出不同權(quán)利要求的本發(fā)明的任何方面。此外,某些敘述可以應(yīng)用于某些本發(fā)明特征而不是其他特征。一般而言,除非另外標(biāo)明,單數(shù)可能是復(fù)數(shù)而不損失一般性,反之亦然。
在附圖中相同數(shù)字系指不同視圖的相同部件。
實施方式現(xiàn)在更詳細地參照附圖,其中相同數(shù)字系指不同視圖的相同部件,圖2是分布式計算環(huán)境200的框圖,它包括通過多個網(wǎng)絡(luò)適配器204彼此連接的多個節(jié)點202。每個節(jié)點202是一個獨立的計算機,具有它們自己的操作系統(tǒng)映象208、系統(tǒng)存儲器總線218上的存儲器210和處理器206,而一個系統(tǒng)輸入/輸出總線216將I/O適配器212和網(wǎng)絡(luò)適配器204連接起來。每個網(wǎng)絡(luò)適配器通過網(wǎng)絡(luò)轉(zhuǎn)接器220連在一起。
在一個例子中,分布式計算環(huán)境200包括N個具有一個或多個處理器206的節(jié)點202。在一個例子中,每個處理節(jié)點是一個運行AIX的RISC/6000計算機,其中AIX是UNIX操作系統(tǒng)的IBM版本。這些處理節(jié)點不必是運行AIX操作系統(tǒng)的RISC/6000計算機。某些或所有處理節(jié)點202能夠包括不同類型的計算機和/或不同操作系統(tǒng)208??梢哉J為所有這些變動方案是提出權(quán)利要求的本發(fā)明的一部分。
協(xié)調(diào)器服務(wù)的非中斷性遷移的實施例可能需要自一個節(jié)點遷移至另一個節(jié)點的服務(wù)或一組服務(wù)被定義為一組操作,這些操作可以在使用服務(wù)的節(jié)點上就地調(diào)用,或者通過一對請求/回答消息對而自另一個節(jié)點遠程地調(diào)用(也稱為遠程過程調(diào)用或RPC)。
參照圖4,它是一個用于闡述將一組服務(wù)自節(jié)點N1遷移至節(jié)點N2的服務(wù)遷移操作的功能總結(jié)的流程圖400。該遷移操作廣泛地包括以下步驟(402)服務(wù)遷移開始;(404)將新的輸入操作掛起;(406)等待所有當(dāng)今進行處理的操作完成;(408)將服務(wù)狀態(tài)自節(jié)點N1傳輸至節(jié)點N2;(410)將所有掛起的和未來的操作自N1重定向至N2;然而,在完成此工作中一個獨一的挑戰(zhàn)在于被遷移的不同操作可能直接地或間接地彼此依賴;換言之,它們是互相依賴的。轉(zhuǎn)向圖5,框圖500闡述不同操作的依賴性樹。為處理操作OP1(502),該服務(wù)可能需要調(diào)用另一個服務(wù)OP2(504);因此OP1直接地依賴于OP2。間接依賴性的例子是如果操作OP1要求一個分享的資源例如聯(lián)鎖,它可能由相同節(jié)點或另一個節(jié)點(510、512、514)上的不相關(guān)操作OP3(506)所保持;OP3可能需要在它能夠釋放它所保持的資源之前調(diào)用一個服務(wù)操作OP4(508)。在此例子中,OP1間接地依賴于OP4。
在步驟(404)中簡單地立即將所有新操作掛起就能夠快速地在步驟(406)中導(dǎo)致死鎖。這是因為當(dāng)今進行的操作OP1可能仍然需要調(diào)用操作OP2,但由于所有操作被掛起,在步驟(410)中恢復(fù)掛起的操作之前無法完成OP1。然而,該過程根本無法到達步驟(410),因為在OP1完成之前又無法完成步驟(406)。換言之,這些操作是互相依賴的以及此操作的互相依賴性阻止完成節(jié)點的恢復(fù)或系統(tǒng)服務(wù)的遷移。
根據(jù)賦予每個操作的數(shù)字的“依賴性級別”,通過在多個“階段”中將操作掛起而解決這個問題。必須選擇滿足以下條件的依賴性級別IF操作OPX直接地或間接地依賴于操作OPY,THENOPX的依賴性級別必須高于OPY的依賴性級別(大于先前賦予的數(shù)字值)。
只要依賴性關(guān)系是非周期性的,總能找到這一賦值;這是一個合理的假設(shè),因為否則在即使不存在任何故障或遷移嘗試的情況下操作也可能死鎖。如果不同操作并不相互依賴,則它們可能具有相同依賴性級別。給出依賴性級別賦值后,在多個階段中將服務(wù)操作掛起,其中每個明顯的依賴性級別有一個階段。圖6顯示圖4中所示操作OP1至OP4的操作級別和依賴性級別的圖表。由于OP2和OP4并不依賴于任何其他操作,它們處于依賴性級別1。OP3處于依賴性級別2,因為它只依賴于OP4,以及OP1處于依賴性級別3,因為它依賴于OP2、OP3和OP4。
圖7是用于闡述分布式計算機系統(tǒng)中協(xié)調(diào)器服務(wù)的非中斷性遷移中所涉及步驟的流程圖700。首先開始服務(wù)遷移(702)。將N確定為賦予的最高依賴性級別(704)。在第一階段中,將所有具有依賴性級別N的新操作掛起(706)。然后該過程在進至下一個階段之前等待已經(jīng)被處理的具有依賴性級別N的操作去完成(708)。將N的值減1以便標(biāo)示已經(jīng)完成第N個靜止階段(710)。然后判斷是否已經(jīng)完成所有階段(N=0)(712)。如果尚未出現(xiàn)過所有階段的掛起,則該過程回至下一個階段,其中使所有具有次高依賴性級別(N-1)的操作成為靜止等,直至所有操作全都掛起并且所有等待中的操作都已完成。這個分階段的方案將不會死鎖,因為在任何給定階段N中該過程只等待具有依賴性級別N的操作去完成。在進入稍后階段之前它們所依賴的所有操作具有較低依賴性級別因而將不會掛起。
一旦所有操作都掛起以及不再有操作被處理,即把由節(jié)點N1保持的為提供被遷移的服務(wù)而需要的任何狀態(tài)傳輸至節(jié)點N2(714)。通過將包含狀態(tài)信息的顯式消息自N1發(fā)送至N2,即可作到這點(716)。選代地,N1可以簡單地將其狀態(tài)刪除(722),而N2可以通過調(diào)用同樣地用于處理故障情況的方法來恢復(fù)狀態(tài)(724),例如N2由于N1的故障而擔(dān)當(dāng)起服務(wù)。顯式狀態(tài)轉(zhuǎn)移的前一方案允許實現(xiàn)更快遷移,而在假設(shè)故障恢復(fù)方法是可用的情況下,狀態(tài)恢復(fù)的后一方案要求實施較少代碼。
當(dāng)N2準(zhǔn)備處理服務(wù)請求時,將服務(wù)的新位置通知分布式應(yīng)用程序在其上運行的所有節(jié)點(718)。然后將所有未來請求送至N2而不是N1。因為服務(wù)已經(jīng)遷移,曾經(jīng)掛起的操作都完成并且具有一個用于標(biāo)示操作尚未處理的特定誤差碼(720)。在收到這一回答后,該發(fā)送請求的節(jié)點重新將該請求發(fā)送至N2,并在其中正常地將它處理。
此遷移方法實施于AIX,版本1,第三次發(fā)布(GPFS)的IBMGeneral Parallel File System中。GPFS允許將文件系統(tǒng)管理程序自一個節(jié)點遷移至另一個節(jié)點。在GPFS中,文件系統(tǒng)管理程序提供若干服務(wù)盤故障的管理;
分布式聯(lián)鎖的協(xié)調(diào);記錄文件的建立和賦值;盤空間分配的協(xié)調(diào);份額的管理;系統(tǒng)配置改變的性能。
這些服務(wù)所提供的操作之間有若干依賴性。例如,建立一個記錄文件要求將分配映象聯(lián)鎖以及可能要求處理盤故障以便完成記錄文件的建立。許多這些操作訪問在同一節(jié)點上正常文件系統(tǒng)操作也在使用的數(shù)據(jù)結(jié)構(gòu),例如(見圖5)緩沖高速緩存(516)、信息節(jié)點高速緩存(518)和相關(guān)的控制結(jié)構(gòu)(520)。因此不能將這些操作流產(chǎn),也不將所有正常文件系統(tǒng)操作流產(chǎn)。因此,如此作的結(jié)果是使正在訪問文件系統(tǒng)的所有本地應(yīng)用程序中斷。最后,這些服務(wù)的實施以及用于調(diào)用它們的基礎(chǔ)結(jié)構(gòu)要求所有這些服務(wù)在同一節(jié)點上運行,即這些服務(wù)不能每次遷移一個。沒有一個傳統(tǒng)遷移方法能夠用于GPFS中而不使使用文件系統(tǒng)的應(yīng)用程序中斷。因此,此處發(fā)現(xiàn)的新穎原理對于操作服務(wù)的無故障遷移是必須的。本發(fā)明允許在單個步驟中遷移一組這類服務(wù)。由于此原因,本發(fā)明允許實現(xiàn)傳統(tǒng)方法所無法實現(xiàn)的在分布式應(yīng)用程序中無中斷地遷移協(xié)調(diào)器服務(wù)。例如,見如上描述的GPFS并行文件系統(tǒng)。
以此方式,已經(jīng)描述了用于克服現(xiàn)有技術(shù)的不足之處的在分布式計算機系統(tǒng)中無中斷地遷移協(xié)調(diào)器服務(wù)的改進的系統(tǒng)和方法?,F(xiàn)在,在等待一組互相依賴的操作完成時,操作服務(wù)的互相依賴性既不造成應(yīng)用程序的中斷,又不會使服務(wù)的遷移死鎖。相反,將此處發(fā)現(xiàn)的新穎原理用于分布式計算機系統(tǒng)中協(xié)調(diào)器服務(wù)的無中斷性遷移可用于靈驗地從節(jié)點故障中恢復(fù)以及將服務(wù)自一個節(jié)點合適地遷移至另一個節(jié)點。
討論硬件和軟件實現(xiàn)方式如專業(yè)人員所知道的,本發(fā)明可以用硬件或軟件或用硬件和軟件的組合來實施。如結(jié)合優(yōu)選實施例中所公開的,根據(jù)本發(fā)明的系統(tǒng)或方法可以實施于單個計算機系統(tǒng)中,該計算機系統(tǒng)具有單獨的用于完成所描述的或權(quán)利要求的單獨功能或步驟的元件或裝置或者一個或多個用于將所公開的或權(quán)利要求的功能或步驟中的任何一個的性能組合起來的元件或裝置,或者可能布置于由任何專業(yè)人員所知道的合適的裝置進行互連的分布式計算機系統(tǒng)中。
根據(jù)如同結(jié)合優(yōu)選實施例中所公開的本發(fā)明的原理,本發(fā)明和本發(fā)明的原理不限于任何特定類型的計算機系統(tǒng),而可以用于任何如專業(yè)人員所知道的布置為完成所描述的功能和所描述的方法步驟的通用計算機。如專業(yè)人員所知道的,如上所述的這類計算機的操作是根據(jù)包含于用于計算機的操作或控制中的媒體上的計算機程序的操作的。該用于保持或包含該計算機程序產(chǎn)品的計算機媒體可能是計算機附件例如埋嵌的存儲器,也可能是位于專業(yè)人員所知道的可攜帶媒體例如盤上。
本發(fā)明不限于任何特定計算機程序或邏輯或語言或指令,而可以使用專業(yè)人員所知道的任何這類合適的程序、邏輯或語言或指令來實現(xiàn)。在不限制所公開的本發(fā)明原理的情況下,任何這類計算系統(tǒng)能夠在其他事物中包括至少一個計算機可讀媒體,后者允許計算機自計算機可讀媒體中讀取數(shù)據(jù)、指令、消息或消息包和其他計算機可讀信息。該計算機可讀媒體可能包括非易失性存儲器例如ROM、閃爍存儲器、軟盤、硬盤驅(qū)動存儲器、CD-ROM和其他永久性存儲器。附加地,計算機可讀媒體可能包括例如易失性存儲器例如RAM、緩存、高速緩存和網(wǎng)絡(luò)電路。
此外,計算機可讀媒體可能包括暫時狀態(tài)媒體例如網(wǎng)絡(luò)線路和/或網(wǎng)絡(luò)接口中的計算機可讀信息,該網(wǎng)絡(luò)包括用于允許計算機讀取這類計算機可讀信息的有線網(wǎng)絡(luò)或無線網(wǎng)絡(luò)。
權(quán)利要求
1.一種用于將與具有多個連至網(wǎng)絡(luò)的節(jié)點的網(wǎng)絡(luò)相關(guān)聯(lián)的服務(wù)進行節(jié)點遷移的方法,一個第一節(jié)點上的該方法包括以下步驟將依賴性級別賦予一組節(jié)點服務(wù)中的每個服務(wù);及確定該組節(jié)點服務(wù)中存在的依賴性級別的一個最高值;執(zhí)行以下子步驟將具有等于該依賴性級別最高值的一個依賴性級別的新操作掛起;及等待具有該最高依賴性級別的當(dāng)今進行的操作完成;只要節(jié)點服務(wù)的遷移中尚有未處理的階段,就為節(jié)點服務(wù)的遷移的一個不同階段重復(fù)執(zhí)行步驟。
2.如權(quán)利要求1中所定義的方法,其中用于重復(fù)執(zhí)行步驟的步驟還包括以下子步驟將節(jié)點服務(wù)的遷移中存在的一個依賴性級別的最高值N減量,其中N是從0至i的級別,其中i是依賴性級別的一個初始最高值;及檢查依賴性級別的該最高值N以便判斷它是否已經(jīng)到達零值。
3.如權(quán)利要求2中所定義的方法,其中用于檢查依賴性級別的最高值N的子步驟還包括以下輔助子步驟其中如果依賴性級別的該最高值N沒有到達零值則重復(fù)該執(zhí)行步驟;其中如果依賴性級別的該最高值N已經(jīng)到達零值則不再重復(fù)該執(zhí)行步驟。
4.如權(quán)利要求1中所定義的方法,還包括以下步驟開始自該第一節(jié)點轉(zhuǎn)移服務(wù)狀態(tài)至一個第二節(jié)點;自該第一節(jié)點發(fā)送具有狀態(tài)內(nèi)容的顯式狀態(tài)消息至該第二節(jié)點;及將所有掛起的和未來的該第一節(jié)點操作重定向至該第二節(jié)點。
5.如權(quán)利要求4中所定義的方法,其中用于將所有掛起的和未來的該第一節(jié)點操作重定向至第二節(jié)點的步驟還包括以下子步驟將一個或多個誤差碼插入所有第一節(jié)點掛起的操作中。
6.如權(quán)利要求5中所定義的方法,其中用于將一個或多個誤差碼插入所有第一節(jié)點掛起的操作中的子步驟還包括一個或多個誤差碼,用于標(biāo)示所有該第一節(jié)點掛起的操作無法在該第一節(jié)點上完成以及先前曾經(jīng)請求過完成任何掛起的操作的任何其他節(jié)點現(xiàn)在必須向該第二節(jié)點發(fā)送一個要求完成任何掛起的操作的請求。
7.如權(quán)利要求1中所定義的方法,其中該網(wǎng)絡(luò)、多個節(jié)點和操作服務(wù)還包括一個AIX的IBM通用并行文件系統(tǒng),以便允許將一個文件系統(tǒng)管理程序自一個節(jié)點遷移至另一個節(jié)點。
8.如權(quán)利要求1中所定義的方法,還包括以下步驟開始自該第一節(jié)點傳輸服務(wù)狀態(tài)至第二節(jié)點;廢棄該第一節(jié)點上的任何狀態(tài)內(nèi)容;為該第一節(jié)點調(diào)用一個故障恢復(fù)過程;及將所有掛起的和未來的該第一節(jié)點操作重定向至該第二節(jié)點。
9.如權(quán)利要求8中所定義的方法,其中用于將所有掛起的和未來的該第一節(jié)點操作重定向至該第二節(jié)點的步驟還包括以下子步驟將一個或多個誤差碼插入所有第一節(jié)點掛起的操作中。
10.如權(quán)利要求9中所定義的方法,其中用于將一個或多個誤差碼插入所有第一節(jié)點掛起的操作中的子步驟還包括一個或多個誤差碼,用于標(biāo)示所有該第一節(jié)點掛起的操作無法在該第一節(jié)點上完成以及先前曾經(jīng)請求過完成任何掛起的操作的任何其他節(jié)點現(xiàn)在必須向該第二節(jié)點發(fā)送一個要求完成任何掛起的操作的請求。
11.如權(quán)利要求10中所定義的方法,其中該網(wǎng)絡(luò)、多個節(jié)點和操作服務(wù)還包括一個AIX的IBM通用并行文件系統(tǒng),以便允許將一個文件系統(tǒng)管理程序自一個節(jié)點遷移至另一個節(jié)點。
12.一種包括編程指令的計算機可讀媒體,用于將與具有多個連至網(wǎng)絡(luò)的節(jié)點的網(wǎng)絡(luò)相關(guān)聯(lián)的節(jié)點服務(wù)進行節(jié)點遷移,在一個第一節(jié)點上執(zhí)行的該編程指令包括將依賴性級別賦予一組節(jié)點服務(wù)中的每個服務(wù);及確定該組節(jié)點服務(wù)中存在的依賴性級別的一個最高值;執(zhí)行以下指令將具有等于一個依賴性級別最高值的一個依賴性級別的新操作掛起;及等待具有該最高依賴性級別的當(dāng)今進行的操作完成;只要節(jié)點服務(wù)的遷移中尚有未處理的階段,就為節(jié)點服務(wù)的遷移的一個不同階段重復(fù)完成步驟。
13.如權(quán)利要求12中所定義的計算機可讀媒體,其中用于重復(fù)執(zhí)行指令的編程指令還包括以下指令將節(jié)點服務(wù)的遷移中存在的依賴性級別的一個最高值N減量,其中N是從0至i的級別,其中i是依賴性級別的一個初始最高值;及檢查依賴性級別的該最高值N以便判斷它是否已經(jīng)到達零值。
14.如權(quán)利要求13中所定義的計算機可讀媒體,其中用于檢查依賴性級別的該最高值N的編程指令還包括以下輔助指令其中如果依賴性級別的該最高值N沒有到達零值則重復(fù)該執(zhí)行步驟;其中如果依賴性級別的該最高值N已經(jīng)到達零值則不再重復(fù)該執(zhí)行步驟。
15.如權(quán)利要求12中所定義的計算機可讀媒體,還包括以下編程指令開始自該第一節(jié)點轉(zhuǎn)移服務(wù)狀態(tài)至該第二節(jié)點;自該第一節(jié)點發(fā)送具有狀態(tài)內(nèi)容的顯式狀態(tài)消息至該第二節(jié)點;及將所有掛起的和未來的該第一節(jié)點操作重定向至該第二節(jié)點。
16.如權(quán)利要求15中所定義的計算機可讀媒體,其中用于將所有掛起的和未來的該第一節(jié)點操作重定向至第二節(jié)點的編程指令還包括以下指令將一個或多個誤差碼插入所有第一節(jié)點掛起的操作中。
17.如權(quán)利要求16中所定義的計算機可讀媒體,其中用于將一個或多個誤差碼插入所有第一節(jié)點掛起的操作中的編程指令還包括一個或多個誤差碼,用于標(biāo)示所有該第一節(jié)點掛起的操作無法在第一節(jié)點上完成以及先前曾經(jīng)請求過完成任何掛起的操作的任何其他節(jié)點現(xiàn)在必須向該第二節(jié)點發(fā)送一個要求完成任何掛起的操作的請求。
18.如權(quán)利要求12中所定義的計算機可讀媒體,其中該網(wǎng)絡(luò)、多個節(jié)點和操作服務(wù)還包括一個AIX的IBM通用并行文件系統(tǒng),以便允許將一個文件系統(tǒng)管理程序自一個節(jié)點遷移至另一個節(jié)點。
19.將與具有多個連至網(wǎng)絡(luò)的節(jié)點的網(wǎng)絡(luò)相關(guān)聯(lián)的服務(wù)進行節(jié)點遷移的系統(tǒng)中的一種節(jié)點,該節(jié)點包括一個用于將依賴性級別賦予一組節(jié)點服務(wù)中的每個服務(wù)的識別單元;及一個用于確定該組節(jié)點服務(wù)中存在的依賴性級別的一個最高值的確定單元;一個用于控制以下子單元的執(zhí)行單元一個用于將具有等于依賴性級別的一個最高值的一個依賴性級別的新操作掛起的掛起單元;一個用于等待當(dāng)今進行的操作完成的保持單元;及一個用于向執(zhí)行單元標(biāo)示只要節(jié)點服務(wù)的遷移中尚有未處理的階段就為節(jié)點服務(wù)的遷移的不同階段重復(fù)其功能的重復(fù)單元。
全文摘要
本發(fā)明允許一組相關(guān)的協(xié)調(diào)器服務(wù)組自一個節(jié)點遷移至另一個節(jié)點而不使系統(tǒng)中任何節(jié)點上的應(yīng)用程序中斷,不像其他方法,本發(fā)明允許使一組互相依賴的服務(wù)進入“靜止”狀態(tài)并且一起遷移。由于服務(wù)操作依賴于其他服務(wù)操作的結(jié)果和/或數(shù)據(jù),只當(dāng)這些其他操作把為完成依賴的操作所需的數(shù)據(jù)送回時,任何特定操作才能恰當(dāng)?shù)赝瓿?。因此本發(fā)明允許使各服務(wù)分階段地進入“靜止”而完成無中斷的遷移。最依賴于其他操作的操作先于其他操作而被掛起;然后該過程等待任何當(dāng)今操作完成。一旦依賴的操作的第一階段已經(jīng)完成,即把依賴的操作服務(wù)的下一個階段掛起,該過程等待這些操作的完成等,直至不再有處于“靜止”過程中的階段。因此本發(fā)明可應(yīng)用于比先前方法更為復(fù)雜的分布式應(yīng)用程序。
文檔編號G06F17/30GK1333507SQ0112249
公開日2002年1月30日 申請日期2001年7月13日 優(yōu)先權(quán)日2000年7月14日
發(fā)明者弗蘭克·B·施瑪克 申請人:國際商業(yè)機器公司