專利名稱:用在群集計算機裝置的節(jié)點處的控制器及其操作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及在存儲裝置中控制故障轉(zhuǎn)移,更具體地說,涉及在群集的存儲裝置網(wǎng)絡(luò)中控制故障轉(zhuǎn)移。
背景技術(shù):
計算機系統(tǒng)的群集的概念在本領(lǐng)域中是公知的。盡管如此,對背景的簡述可以有助于以其優(yōu)選實施例來理解本發(fā)明。
群集包括一組共同運行以便為一個或多個客戶機或應(yīng)用提供服務(wù)的計算機系統(tǒng)(此后稱為“節(jié)點”)。群集系統(tǒng)的好處之一是具有在群集內(nèi)的一個或多個節(jié)點出現(xiàn)故障時繼續(xù)運行的能力在群集內(nèi)的某些節(jié)點出現(xiàn)故障的情況下,由這些節(jié)點執(zhí)行的工作被重新分配給群集的完好成員。即使節(jié)點出現(xiàn)故障,群集仍繼續(xù)為其客戶機提供服務(wù),盡管通常具有降低的性能。
對于多數(shù)群集系統(tǒng)來說,有必要防止被分成兩組節(jié)點的群集允許這兩組節(jié)點作為獨立的群集繼續(xù)運行。通常通過引入定額(群集繼續(xù)運行所必需的節(jié)點的最小集合)的概念來解決此問題。當(dāng)一群節(jié)點被劃分成兩組時,其中一組將保持定額并將繼續(xù)運行,而另一組將不符合定額并停止參與到群集中。為了實現(xiàn)此目的,群集中的每個節(jié)點需要檢查在其處理服務(wù)請求時其是否仍是所述定額的一部分,以便節(jié)點一確定其位于不符合定額的組中就立刻停止參與群集。這通常可以通過使用心跳或租約來實現(xiàn)。作為控制連接的系統(tǒng)的手段的心跳或租約的概念是本領(lǐng)域中公知的,但是,為了更好地理解本公開,此處提供了關(guān)于租約的相關(guān)概念的簡介。
租約允許節(jié)點在無需引用其群集伙伴來為每個請求服務(wù)的情況下代表所述群集提供服務(wù)。租約定義了時限時段,在此期間,節(jié)點可以在無需進一步引用所述伙伴的情況下提供服務(wù)??梢允褂貌唤?jīng)常發(fā)生的消息來延長租約,以便節(jié)點可以繼續(xù)長時間地提供服務(wù)。在與已被授予租約的節(jié)點的通信丟失的情況下,現(xiàn)有技術(shù)的伙伴節(jié)點在確信所述節(jié)點已停止參與群集并允許將工作從故障節(jié)點轉(zhuǎn)移到群集內(nèi)的完好節(jié)點之前,通常將等待一段不少于租約的時間。
租約的概念在群集系統(tǒng)中尤其具有價值,所述系統(tǒng)必須呈現(xiàn)某些不斷改變的信息的連貫映像,并且其中必須以最小成本(當(dāng)然,小于與其他節(jié)點通信所需的成本)來為查看該信息的請求提供服務(wù)。
租約時間定義了其間服務(wù)在故障后不可用的最小時段(此后稱為“故障轉(zhuǎn)移時間”)。即使短期的不可用也將呈現(xiàn)為系統(tǒng)運行中的故障,這將降低客戶滿意度。最小化此時間可以提高系統(tǒng)的質(zhì)量。群集使用的租約時間越短,故障轉(zhuǎn)移時間就越快。但是,租約時間越短,群集內(nèi)的節(jié)點需要延長租約就越頻繁,并且因此用于維持租約的開銷就越大。最小租約時間還受節(jié)點間的通信速度的限制-租約時間不能小于傳送租約延長所花費的時間。因此,盡管希望具有很短的租約時間來最小化故障轉(zhuǎn)移時間,但是實際上這通常是不可能的。
使用租約來管理系統(tǒng)確保了在面對幾乎任何故障時都能正確運行(這取決于時鐘的正確運行)。但是,這是一種相當(dāng)保守的措施,并且存在一類特定的系統(tǒng)故障,所述故障是常見的并且希望避免租約操作的開銷,即,由“斷言”所導(dǎo)致的軟件故障-一種形式的故障,其中軟件自身檢測到某些非法或意外的情況并判定退出并重新啟動比繼續(xù)運行更安全。
用于在基于租約的系統(tǒng)中改善故障轉(zhuǎn)移時間的常規(guī)方法是使租約時間盡可能地短。此方法的缺點在于租約需要被更新的越頻繁,用于維護租約的開銷就越高。最小租約時間不能小于傳送租約延長所花費的時間。許多群集系統(tǒng)需要專用硬件來允許群集中的節(jié)點盡可能快地傳送租約延長。
發(fā)明內(nèi)容
在第一方面中,本發(fā)明提供了一種用在群集計算機裝置的節(jié)點處的控制器,所述控制器包括異常檢測組件,用于檢測由服務(wù)組件在所述節(jié)點處引起的異常;響應(yīng)于所述異常檢測組件的停頓(quiesce)組件,用于在終止租約之前停頓由所述服務(wù)組件進行的租約管理的活動;響應(yīng)于所述停頓組件的租約控制組件,用于所述租約的到期前放棄;以及響應(yīng)于所述租約控制組件的通信組件,用于將所述租約的所述到期前放棄通知所述群集計算機裝置的一個或多個其他節(jié)點。
所述控制器還可以包括用于接收指示租約的到期前放棄的通信的其他通信組件;響應(yīng)于所述通信來控制故障處理的其他租約控制組件;以及在所述節(jié)點處代替所述服務(wù)組件來執(zhí)行服務(wù)的其他服務(wù)組件。
優(yōu)選地,所述異常檢測組件、所述停頓組件和所述租約控制組件都位于高于群集層的層中,并且所述通信組件位于所述群集層中。
優(yōu)選地,所述其他通信組件位于群集層中,并且所述其他租約控制組件和所述其他服務(wù)組件位于高于所述群集層的層中。
所述控制器優(yōu)選地適合于控制存儲裝置。
所述控制器優(yōu)選地適合于控制所述存儲裝置的虛擬化。
在第二方面中,本發(fā)明提供了一種操作用在群集計算機裝置的節(jié)點處的控制器的方法,所述方法包括以下步驟由異常檢測組件檢測由所述節(jié)點處的服務(wù)組件引起的異常;由響應(yīng)于所述異常檢測組件的停頓組件在終止租約之前停頓由所述服務(wù)組件進行的租約管理的活動;由響應(yīng)于所述停頓組件的租約控制組件在到期前放棄所述租約;以及由響應(yīng)于所述租約控制組件的通信組件將所述租約的所述到期前放棄通知所述群集計算機裝置的一個或多個其他節(jié)點。
所述方法優(yōu)選地還包括以下步驟由其他通信組件接收指示租約的到期前放棄的通信;由響應(yīng)于所述通信的其他租約控制組件控制故障處理;以及由其他服務(wù)組件替代所述節(jié)點處的所述服務(wù)組件來執(zhí)行服務(wù)。
優(yōu)選地,所述檢測、停頓和到期前放棄的步驟在高于群集層的層中執(zhí)行,并且所述通知步驟在所述群集層中執(zhí)行。
優(yōu)選地,所述接收步驟在群集層中執(zhí)行,并且所述控制和執(zhí)行服務(wù)的步驟在高于所述群集層的層中執(zhí)行。
所述方法優(yōu)選地還包括控制存儲裝置。
所述方法優(yōu)選地還包括控制所述存儲裝置的虛擬化。
在第三方面中,本發(fā)明提供了一種包括計算機程序代碼的計算機程序,當(dāng)所述程序被加載到計算機系統(tǒng)中并在其上被執(zhí)行時,所述計算機程序代碼導(dǎo)致所述計算機系統(tǒng)執(zhí)行根據(jù)所述第二方面的方法的諸步驟。
本發(fā)明的優(yōu)選實施例在處理所述異常情況的層攔截軟件,并在此步驟插入額外的處理。所述額外的步驟包括確保本地節(jié)點上的軟件被正確地停頓,以便不再需要租約;發(fā)送消息給所述系統(tǒng)中的其他節(jié)點以告知該節(jié)點已被正確地停頓并且不再參與所述群集;以及允許所述群集中的其他節(jié)點在接收到該消息的基礎(chǔ)上繼續(xù)運行而無需等待所述租約到期。
在一種優(yōu)選實現(xiàn)中,所述軟件可以被看作兩個元素包括消息傳送的群集層和提供依賴于所述群集的服務(wù)的高級應(yīng)用軟件層。所述高級軟件對由于軟件導(dǎo)致的系統(tǒng)故障的顯著百分比負責(zé)。因此,有利地,本發(fā)明的優(yōu)選實施例處理并改進了此類系統(tǒng)中的故障的比重。
當(dāng)在高級層中檢測到異常的情況下,處理異常的軟件以這樣的方式停頓高級軟件的操作可以確保已經(jīng)停止了所有與租約相關(guān)的活動。一旦成功完成了此過程,異常處理代碼就調(diào)用所述群集層以告知其所述系統(tǒng)已被停頓。然后,所述群集層在故障節(jié)點退出之前通過發(fā)送消息來通知伙伴節(jié)點該節(jié)點正在從容地退出。
所述伙伴節(jié)點接收來自故障節(jié)點的消息,并重置(設(shè)置為零)指示剩余租約時間的計時器。然后,它們?nèi)缙匠D菢犹幚砉?jié)點的故障,但忽略等待租約到期的階段。
通過這樣以“受控的”方式而不是“無控制的”方式來傳送與故障關(guān)聯(lián)的服務(wù),可以避免不可用的租約時段。此傳送必須確保所述服務(wù)被以受控的方式關(guān)閉,并且確保停止的節(jié)點在所述服務(wù)被在第二節(jié)點上開始之前傳遞此傳送。
有利地,本發(fā)明的優(yōu)選實施例在所述故障節(jié)點退出以確保群集的正確運行之前不要求所述消息的有保證的傳輸。如果軟件故障嚴(yán)重到不能傳送消息,則如現(xiàn)有技術(shù)的公知系統(tǒng)中那樣,當(dāng)所述故障節(jié)點的租約到期時發(fā)生故障轉(zhuǎn)移。這意味著如果本發(fā)明的實現(xiàn)只能在N%的時間成功地傳送消息,則對于N%的節(jié)點故障,所述群集將具有更快的故障轉(zhuǎn)移時間,并且對于剩余的節(jié)點故障,將根據(jù)常規(guī)處理具有更長的基于租約的故障轉(zhuǎn)移時間。
現(xiàn)在將參考附圖僅以實例的方式來描述本發(fā)明的優(yōu)選實施例,這些附圖是圖1以示意圖的形式示出了其中可以實現(xiàn)本發(fā)明的一類裝置;以及圖2示出了用于根據(jù)本發(fā)明的優(yōu)選實施例來操作控制器的方法的流程圖。
具體實施例方式
現(xiàn)在轉(zhuǎn)到圖1,圖1示出了其中可以實現(xiàn)本發(fā)明的優(yōu)選實施例的示例性裝置。
圖1示出了用在群集計算機裝置的節(jié)點104處的控制器102。控制器102包括用于檢測由服務(wù)組件108在節(jié)點104處引起的異常的異常檢測組件106、用于在終止其租約之前停頓由服務(wù)組件108進行的租約管理的活動的響應(yīng)于異常檢測組件106的停頓組件110。所述控制器還包括用于在到期前放棄所述租約的響應(yīng)于停頓組件110的租約控制組件112,以及用于將所述租約的所述到期前放棄通知所述群集計算機裝置的一個或多個其他節(jié)點116的響應(yīng)于租約控制組件112的通信組件114。
圖1中示出的控制器還可以包括用于接收指示租約的到期前放棄的通信的其他通信組件114’;響應(yīng)于所述通信以控制故障處理的其他租約控制組件112’;以及在原始節(jié)點104處代替原始服務(wù)組件108來執(zhí)行服務(wù)的其他服務(wù)組件108’。
本領(lǐng)域的普通技術(shù)人員將從上述內(nèi)容中明白,雖然按照分離組件描述了本發(fā)明的優(yōu)選實施例的功能要素,但是它們可以以集成或分離組件的各種組合來被同等地實現(xiàn),所述組件可以通過電氣或電子裝置或通過任何用于在其間傳送控制和信息的等同裝置來鏈接。
在優(yōu)選實施例中,圖1的控制器同時包括實現(xiàn)節(jié)點1的功能的組件和實現(xiàn)節(jié)點2的功能的那些組件。本領(lǐng)域的普通技術(shù)人員將明白,雖然這是優(yōu)選地,但是所述功能可以根據(jù)各個系統(tǒng)的要求而分離。
現(xiàn)在轉(zhuǎn)到圖2,圖2示出了其中可以實現(xiàn)本發(fā)明的優(yōu)選實施例的由租約管理的系統(tǒng)的流程圖。
通常,方法開始于步驟202,并且在步驟203,等待租約(可以新近授予或更新租約),如在根據(jù)現(xiàn)有技術(shù)的常規(guī)系統(tǒng)中那樣。當(dāng)建立租約時,在步驟204,啟動一個或多個租約管理的服務(wù)。通常,在步驟206,還執(zhí)行測試以判定租約是否到期。如果是,則處理以常規(guī)方式在步驟207停頓所述服務(wù)并繼續(xù)到結(jié)束步驟208。如果租約尚未到期,則在步驟210執(zhí)行測試以判定通信節(jié)點是否已放棄了租約。如果是,則在步驟212處理故障并且在步驟214由可替代節(jié)點執(zhí)行服務(wù)。然后,所述過程返回步驟206的測試并繼續(xù)。本領(lǐng)域的技術(shù)人員將明白,在多處理器系統(tǒng)中,所述服務(wù)可以由同一節(jié)點等同地執(zhí)行,但是在可替代處理器中執(zhí)行。對于本領(lǐng)域的技術(shù)人員,各種變化和修改將是很自然的。然后,所述過程以常規(guī)的方式繼續(xù)到結(jié)束步驟208。
如果在步驟210沒有檢測到放棄的租約,則執(zhí)行測試以判定是否在本地軟件服務(wù)層中檢測到異常。如果沒有,則過程通過返回步驟206之前的點來繼續(xù)。如果檢測到異常,則在步驟218停頓所述服務(wù)。在完成停頓過程后,在步驟220放棄未到期的租約。在步驟222,將已放棄了租約的通知通知通信節(jié)點,并且過程在結(jié)束步驟208完成。在所述通信節(jié)點中,如上所述,在步驟210檢測所述通知,并且處理如先前描述的那樣繼續(xù)。
因此,總的來說,示出了一種操作用在群集計算機裝置的節(jié)點處的控制器的方法,所述方法包括以下步驟由異常檢測組件檢測由服務(wù)組件在所述節(jié)點處引起的異常;由響應(yīng)于所述異常檢測組件的停頓組件在終止租約之前停頓由所述服務(wù)組件進行的租約管理的活動;由響應(yīng)于所述停頓組件的租約控制組件在到期前放棄所述租約;以及由響應(yīng)于所述租約控制組件的通信組件將所述租約的所述到期前放棄通知所述群集計算機裝置的一個或多個其他節(jié)點。
節(jié)點還可以適合于執(zhí)行以下附加步驟由其他通信組件接收指示租約的到期前放棄的通信;由響應(yīng)于所述通信的其他租約控制組件控制故障處理;以及由其他服務(wù)組件在所述原始節(jié)點處代替所述服務(wù)組件來執(zhí)行服務(wù)。
本領(lǐng)域的技術(shù)人員將明白,本發(fā)明的方法可以合適地包含在邏輯設(shè)備中,所述邏輯設(shè)備包括邏輯裝置以執(zhí)行所述方法的諸步驟,并且此類邏輯裝置可以包括硬件組件或固件組件。
可以理解,上述方法也可以合適地在運行在一個或多個處理器(未示出)上的軟件中全部或部分地被執(zhí)行,并且所述軟件可以作為在任何適合的數(shù)據(jù)承載器(未示出)(如磁或光計算機盤)上攜帶的計算機程序元素來被提供。用于同樣地傳輸數(shù)據(jù)的通道可以包括具有各種描述的存儲介質(zhì)以及信號承載介質(zhì)(如有線或無線信號介質(zhì))。
本發(fā)明可以被合適地實現(xiàn)為與計算機系統(tǒng)一起使用的計算機程序產(chǎn)品。此類實現(xiàn)可以包括一系列計算機可讀指令,所述指令可以固定在有形介質(zhì)(如計算機可讀介質(zhì),例如,軟盤、CD-ROM、ROM或硬盤)上或可經(jīng)由調(diào)制解調(diào)器或其他接口設(shè)備通過有形介質(zhì)(包括但不限于,光或模擬通信線路)或使用無線技術(shù)(包括但不限于,微波、紅外線或其他傳輸技術(shù))無形地傳輸?shù)接嬎銠C系統(tǒng)。所述系列的計算機可讀指令包含本文先前描述的全部或部分功能。
本領(lǐng)域的技術(shù)人員將理解,此類計算機可讀指令可以以多種編程語言來編寫以便與多種計算機體系結(jié)構(gòu)或操作系統(tǒng)一起使用。進而,可以使用任何現(xiàn)有的或?qū)淼拇鎯ζ骷夹g(shù)(包括但不限于,半導(dǎo)體、磁或光)來存儲此類指令,或使用任何現(xiàn)有的或?qū)淼耐ㄐ偶夹g(shù)(包括但不限于,光、紅外線或微波)來傳輸此類指令。構(gòu)想了此類計算機程序產(chǎn)品可以作為可移動介質(zhì)隨附帶的印刷或電子文檔來分發(fā),例如,使用計算機系統(tǒng)預(yù)先加載到例如系統(tǒng)ROM或固定盤上的緊縮套裝軟件,或通過例如因特網(wǎng)或萬維網(wǎng)的網(wǎng)絡(luò)從服務(wù)器或電子公告欄分發(fā)。
將進一步理解,可以以代表客戶部署以便提供異地災(zāi)難恢復(fù)服務(wù)的服務(wù)的形式來提供本發(fā)明的實施例。
還將理解,對于本領(lǐng)域的技術(shù)人員來說,對上述優(yōu)選實施例的各種進一步修改將是顯而易見的。
權(quán)利要求
1.一種用在群集計算機裝置的節(jié)點處的控制器,所述控制器包括異常檢測組件,所述異常檢測組件用于檢測由服務(wù)組件在所述節(jié)點處引起的異常;響應(yīng)于所述異常檢測組件的停頓組件,所述停頓組件用于在終止租約之前停頓由所述服務(wù)組件進行的租約管理的活動;響應(yīng)于所述停頓組件的租約控制組件,所述租約控制組件用于在到期前放棄所述租約;以及響應(yīng)于所述租約控制組件的通信組件,所述通信組件用于將所述租約的到期前放棄通知所述群集計算機裝置的一個或多個其他節(jié)點。
2.如權(quán)利要求1中所述的控制器,還包括其他通信組件,所述其他通信組件用于接收指示租約的到期前放棄的通信;其他租約控制組件,所述其他租約控制組件響應(yīng)于所述通信來控制故障處理;以及其他服務(wù)組件,所述其他服務(wù)組件在所述節(jié)點處代替所述服務(wù)組件來執(zhí)行服務(wù)。
3.如權(quán)利要求1中所述的控制器,其中所述異常檢測組件、所述停頓組件以及所述租約控制組件位于高于群集層的層中,并且所述通信組件位于所述群集層中。
4.如權(quán)利要求2中所述的控制器,其中所述其他通信組件位于群集層中,并且所述其他租約控制組件和所述其他服務(wù)組件位于高于所述群集層的層中。
5.如權(quán)利要求1中所述的控制器,適合于控制存儲裝置。
6.如權(quán)利要求5中所述的控制器,還適合于控制所述存儲裝置的虛擬化。
7.一種操作用在群集計算機裝置的節(jié)點處的控制器的方法,所述方法包括以下步驟由異常檢測組件檢測由服務(wù)組件在所述節(jié)點處引起的異常;由響應(yīng)于所述異常檢測組件的停頓組件在終止租約之前停頓由所述服務(wù)組件進行的租約管理的活動;由響應(yīng)于所述停頓組件的租約控制組件在到期前放棄所述租約;以及由響應(yīng)于所述租約控制組件的通信組件將所述租約的到期前放棄通知所述群集計算機裝置的一個或多個其他節(jié)點。
8.如權(quán)利要求7中所述的方法,還包括以下步驟由其他通信組件接收指示租約的到期前放棄的通信;由響應(yīng)于所述通信的其他租約控制組件來控制故障處理;以及由其他服務(wù)組件在所述節(jié)點處代替所述服務(wù)組件來執(zhí)行服務(wù)。
9.如權(quán)利要求7中所述的方法,其中所述檢測、停頓和到期前放棄的步驟在高于群集層的層中執(zhí)行,并且所述通知步驟在所述群集層中執(zhí)行。
10.如權(quán)利要求8中所述的方法,其中所述接收步驟在群集層中執(zhí)行,并且所述控制和執(zhí)行服務(wù)的步驟在高于所述群集層的層中執(zhí)行。
11.如權(quán)利要求7中所述的方法,還包括控制存儲裝置。
12.如權(quán)利要求11中所述的方法,還包括控制所述存儲裝置的虛擬化。
13.一種包括計算機程序代碼的計算機程序,當(dāng)所述程序被加載到計算機系統(tǒng)中并在其上被執(zhí)行時,所述計算機程序代碼導(dǎo)致所述計算機系統(tǒng)執(zhí)行如權(quán)利要求7到12中的任一權(quán)利要求所述的方法的諸步驟。
全文摘要
一種用在群集計算機裝置的節(jié)點處的控制器,所述控制器包括異常檢測組件,用于檢測由服務(wù)組件在所述節(jié)點處引起的異常;響應(yīng)于所述異常檢測組件的停頓組件,用于在終止租約之前停頓由所述服務(wù)組件進行的租約管理的活動;響應(yīng)于所述停頓組件的租約控制組件,用于所述租約的到期前放棄;以及響應(yīng)于所述租約控制組件的通信組件,用于將所述租約的到期前放棄通知所述群集計算機裝置的一個或多個其他節(jié)點。所述控制器還可以包括用于接收指示租約的到期前放棄的通信的其他通信組件;響應(yīng)于所述通信來控制故障處理的其他租約控制組件;以及在所述節(jié)點處代替所述服務(wù)組件來執(zhí)行服務(wù)的其他服務(wù)組件。
文檔編號H04L12/24GK1812341SQ20061000193
公開日2006年8月2日 申請日期2006年1月19日 優(yōu)先權(quán)日2005年1月27日
發(fā)明者C·F·芬特, W·J·斯凱爾斯 申請人:國際商業(yè)機器公司