專利名稱:用于實現(xiàn)高可用性系統(tǒng)的遠(yuǎn)程企業(yè)管理的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及改進(jìn)的高可用性群集管理(high availability clustermanagement),具體地說,涉及高可用性系統(tǒng)的遠(yuǎn)程群集管理。更具體地說,本發(fā)明涉及企業(yè)網(wǎng)絡(luò)中的多個高可用性系統(tǒng)的改進(jìn)遠(yuǎn)程監(jiān)控和管理。
背景技術(shù):
對于工作量和需求不斷波動,并且處理客戶請求極其重要的零售商、銀行及其它在線服務(wù),已開發(fā)了高可用性(HA)系統(tǒng)來處理緊要使命操作(mission-critical operation)。通常,HA系統(tǒng)是用于消除由網(wǎng)絡(luò)系統(tǒng)的組件中的計劃的或者非計劃的停機(jī)引起的服務(wù)失敗或者使之降至最少的系統(tǒng)。提供HA系統(tǒng)的關(guān)鍵方法是通過分成一群服務(wù)器的冗余硬件和軟件組件。
在HA系統(tǒng)中,冗余至關(guān)重要,因為當(dāng)在群集的一個節(jié)點中發(fā)生故障時,系統(tǒng)的一個節(jié)點執(zhí)行的處理轉(zhuǎn)移給另一節(jié)點。例如,在兩節(jié)點HA群集中,一個節(jié)點通常被指定為主節(jié)點,另一節(jié)點一般被指定為備用節(jié)點。通常,當(dāng)群集被啟動時,主節(jié)點一開始運(yùn)行某一應(yīng)用程序(application)。另外,備用節(jié)點一般被指定成當(dāng)主節(jié)點發(fā)生故障時,運(yùn)行所述應(yīng)用程序。HA群集系統(tǒng)一般實現(xiàn)群集管理器過程,所述群集管理器過程定期輪詢主節(jié)點(或者檢查主節(jié)點的心跳(heartbeat)),以確定主節(jié)點是否仍然活動。如果未檢測到“心跳”,那么群集管理器把軟件進(jìn)程轉(zhuǎn)移到群集中的另一服務(wù)器。
HA系統(tǒng)的一個重要特征是恢復(fù)時間。通常,HA系統(tǒng)中的恢復(fù)時間是備用節(jié)點從發(fā)生故障的主節(jié)點接管應(yīng)用程序所用的時間。在基于銷售的HA系統(tǒng)中,恢復(fù)時間特別重要,因為如果客戶不能很快完成交易,那么零售商會失去有價值的買賣。甚至30秒的恢復(fù)時間延遲也會減少零售商的買賣交易。
HA系統(tǒng)的另一重要特征是在故障轉(zhuǎn)移(failover)期間,幾乎不損失數(shù)據(jù)。特別地,重要的是實現(xiàn)提交數(shù)據(jù)的幾乎不損失。例如,在故障轉(zhuǎn)移期間,失去有價值的客戶定單信息或者客戶信息是不利的。
為了實現(xiàn)短的恢復(fù)時間和故障轉(zhuǎn)移期間數(shù)據(jù)的幾乎不丟失,重要的是一開始按照建立HA系統(tǒng)的方式組合硬件和軟件。但是,在起動HA系統(tǒng)之后,重要的是監(jiān)視和調(diào)整HA系統(tǒng)的配置,設(shè)法提高故障轉(zhuǎn)移和糾正其它錯誤的效率。
當(dāng)為HA系統(tǒng)配置硬件和軟件時,許多開發(fā)者已開發(fā)了定制HA軟件服務(wù),以便控制經(jīng)常需要新硬件的定制環(huán)境中的應(yīng)用程序。這些解決方案通常費(fèi)用高昂,并且沒有利用允許跨越多個平臺的應(yīng)用程序的可移植性的開放源碼技術(shù)(open source technology)。此外,通常選擇費(fèi)用高昂的服務(wù)器系統(tǒng),希望服務(wù)器系統(tǒng)中的可用能力將自動提高故障轉(zhuǎn)移的效率。
作為一種備選方案,開放源碼開發(fā)者利用當(dāng)實現(xiàn)HA系統(tǒng)時,可配置的功能擴(kuò)展開放源碼技術(shù)。例如,Linux提供一種低廉的與平臺無關(guān)的操作系統(tǒng)。Linux的開發(fā)者繼續(xù)向該操作系統(tǒng)增加可由其它開發(fā)者按照開放源碼方式實現(xiàn)的功能。這些功能中的一些,例如“心跳”和分布式復(fù)制塊裝置(drbd)由Linux操作系統(tǒng)實現(xiàn),以幫助配置HA系統(tǒng)。
雖然Linux工具提供監(jiān)視故障,并配置HA系統(tǒng)中使用的硬件的構(gòu)架,仍然需要另外的監(jiān)視和配置能力。特別地,需要一種監(jiān)視HA系統(tǒng)的硬件和軟件方面的故障、錯誤和其它非理想狀況,并且監(jiān)視何時開放源碼HA工具檢測到故障和錯誤的方法。此外,需要遠(yuǎn)程積累所監(jiān)視的系統(tǒng)狀態(tài),隨后遠(yuǎn)程促進(jìn)HA系統(tǒng)的重構(gòu)。
此外,通常在網(wǎng)絡(luò)中組合多個HA系統(tǒng),形成一個企業(yè)系統(tǒng)。每個HA系統(tǒng)可服務(wù)于對企業(yè)內(nèi)的不同商店的交易請求。需要一種遠(yuǎn)程積累企業(yè)內(nèi)的多個HA系統(tǒng)的所監(jiān)視的系統(tǒng)狀態(tài),比較系統(tǒng)狀態(tài)與性能要求,跟蹤企業(yè)內(nèi)的每個HA系統(tǒng)的硬件和軟件需要。
此外,當(dāng)利用開放源碼操作系統(tǒng)構(gòu)架實現(xiàn)HA系統(tǒng)時,實現(xiàn)符合開放源碼的中間件層來處理交易請求應(yīng)是有利的。特別地,實現(xiàn)(1)由與遠(yuǎn)程企業(yè)控制臺進(jìn)行接口的基于開放源碼的群集管理控制、并(2)能夠監(jiān)視和配置企業(yè)網(wǎng)絡(luò)中的多個HA系統(tǒng)的符合JavaTM2平臺企業(yè)版(J2EE)的中間件堆棧理應(yīng)是有利的。
發(fā)明內(nèi)容
本發(fā)明提供改進(jìn)的高可用性群集管理,特別提供符合開放源碼構(gòu)架(framework)實現(xiàn)的高可用性系統(tǒng)的遠(yuǎn)程群集管理。更具體地說,本發(fā)明涉及企業(yè)網(wǎng)絡(luò)中的多個高可用性系統(tǒng)的改進(jìn)遠(yuǎn)程監(jiān)視和管理。
根據(jù)本發(fā)明的一個方面,多個高可用性系統(tǒng)在企業(yè)中連網(wǎng),并由遠(yuǎn)程企業(yè)服務(wù)器整體管理。在每個高可用性系統(tǒng)內(nèi),群集管理控制器監(jiān)視高可用性系統(tǒng)的特定組件的狀態(tài),當(dāng)所述狀態(tài)指示錯誤時,作出反應(yīng),以調(diào)整該高可用性系統(tǒng)。另外,就每個高可用性系統(tǒng)來說,監(jiān)視控制器檢測何時群集管理控制器對特定組件的狀態(tài)作出反應(yīng),并檢測該高可用性系統(tǒng)的多個組件的狀況。監(jiān)視控制器隨后向遠(yuǎn)程企業(yè)服務(wù)器報告所述錯誤和所述組件的狀況。使遠(yuǎn)程企業(yè)服務(wù)器能夠根據(jù)所述報告管理高可用性系統(tǒng)。
特別地,高可用性服務(wù)器實現(xiàn)由諸如心跳監(jiān)視器和服務(wù)監(jiān)視后臺駐留程序(daemon)之類的開放源碼功能監(jiān)視的符合J2EE的中間件堆棧(J2EE compliant middleware stack)。具體地說,心跳監(jiān)視器檢測中間件堆棧駐留其上的特定服務(wù)器的狀態(tài)。服務(wù)監(jiān)視后臺駐留程序檢測中間件堆棧提供的服務(wù)的特殊實例的狀態(tài)。
遠(yuǎn)程企業(yè)服務(wù)器可根據(jù)報告,確定應(yīng)進(jìn)行配置改變,并向高可用性系統(tǒng)發(fā)送配置請求。監(jiān)視控制器隨后調(diào)整高可用性系統(tǒng)的配置,以調(diào)整心跳監(jiān)視器或服務(wù)監(jiān)視后臺駐留程序?qū)⑷绾螜z測錯誤并對錯誤作出反應(yīng)。此外,高可用性系統(tǒng)內(nèi)的其它硬件和軟件組件可由監(jiān)視控制器重構(gòu)。
遠(yuǎn)程企業(yè)服務(wù)器最好把關(guān)于每個高可用性系統(tǒng)的監(jiān)視信息保存在數(shù)據(jù)庫中。另外,企業(yè)服務(wù)器最好分析監(jiān)視信息,確定哪些高可用性系統(tǒng)不滿足性能要求。企業(yè)服務(wù)器可推薦硬件和軟件改變,以及配置改變。另外,企業(yè)服務(wù)器可顯示比較性能,并提供高可用性系統(tǒng)以及在每個系統(tǒng)何時檢測到錯誤的實時顯示。
公開了本發(fā)明特有的新特征。但是,結(jié)合附圖,參考例證實施例的下述詳細(xì)說明,將更好地理解發(fā)明本身,以及發(fā)明的優(yōu)選使用模式,其它目的和優(yōu)點,其中圖1是描述其中可實現(xiàn)本發(fā)明的方法、系統(tǒng)和程序的服務(wù)器系統(tǒng)的方框圖;圖2是描述在故障轉(zhuǎn)移期間,有效轉(zhuǎn)移中間件的高可用性群集的硬件配置的方框圖;圖3是描述根據(jù)本發(fā)明的方法、系統(tǒng)和程序的群集管理器的方框圖;圖4是描述根據(jù)本發(fā)明的方法、系統(tǒng)和程序,在故障轉(zhuǎn)移之前,HA群集的軟件結(jié)構(gòu)的一個實施例的方框圖;圖5是描述根據(jù)本發(fā)明的方法、系統(tǒng)和程序,在故障轉(zhuǎn)移之后,HA群集的軟件結(jié)構(gòu)的一個實施例的方框圖;圖6是描述在HA系統(tǒng)中的符合J2EE的中間件內(nèi),獨立軟件開發(fā)商應(yīng)用程序的實現(xiàn)的一個實施例的方框圖;圖7是描述把drbd分區(qū)配置到HA群集中的符合J2EE的中間件堆棧的進(jìn)程和程序的高級邏輯流程圖;圖8是描述通過心跳控制器,控制HA群集中符合J2EE的中間件堆棧的配置和故障轉(zhuǎn)移的進(jìn)程和程序的高級邏輯流程圖;圖9是描述控制用于監(jiān)視符合J2EE的中間件堆棧提供的服務(wù)的mon功能的進(jìn)程和程序的高級邏輯流程圖;
圖10是描述根據(jù)本發(fā)明的方法、系統(tǒng)和程序,包括運(yùn)行J2EE中間件堆棧的多個HA系統(tǒng)的企業(yè)網(wǎng)絡(luò)的方框圖;圖11是描述根據(jù)本發(fā)明的方法、系統(tǒng)和程序,控制HA群集管理器內(nèi)的監(jiān)視控制器的進(jìn)程和程序的高級邏輯流程圖;圖12是描述遠(yuǎn)程控制HA系統(tǒng)的群集管理器,從而重構(gòu)HA系統(tǒng)的進(jìn)程和程序的高級邏輯流程圖;和圖13是描述控制用于管理群集中的多個HA系統(tǒng)的遠(yuǎn)程企業(yè)控制臺的進(jìn)程和程序的高級邏輯流程圖。
具體實施例方式
現(xiàn)在參考附圖,尤其參考圖1,圖1中表示了通過其可實現(xiàn)本發(fā)明的方法、系統(tǒng)和程序的系統(tǒng)的一個實施例。可在各種系統(tǒng)中執(zhí)行本發(fā)明,包括各種計算系統(tǒng)、服務(wù)器系統(tǒng)和企業(yè)系統(tǒng)。
計算機(jī)系統(tǒng)100包括總線122或者用于在計算機(jī)100內(nèi)傳遞信息的其它通信裝置,和與總線122耦接,以便處理信息的多個處理器112a-112n??偩€122最好包括由橋接器和適配器連接,并在計算機(jī)系統(tǒng)100內(nèi)由多個總線控制器控制的低等待時間和高等待時間通路。
處理器112a-112n可以是在正常操作期間,在可從諸如隨機(jī)存取存儲器(RAM)114之類動態(tài)存儲裝置,和諸如只讀存儲器(ROM)116之類靜態(tài)存儲裝置訪問的操作系統(tǒng)和應(yīng)用軟件的控制下,處理數(shù)據(jù)的通用處理器,例如IBM的PowerPCTM處理器。在一個優(yōu)選實施例中,多層軟件包含當(dāng)在處理器112a-112n上運(yùn)行時,執(zhí)行在圖7、8、9、11、12、13的流程圖中描述的操作,以及這里描述的其它操作的機(jī)器可執(zhí)行指令。另一方面,本發(fā)明的步驟可由包含用于實現(xiàn)所述步驟的硬連線邏輯電路的專用硬件組件,或者由編程的計算機(jī)組件和定制硬件組件的任意組合實現(xiàn)。
可以包括在機(jī)器可讀介質(zhì)上的計算機(jī)程序產(chǎn)品的形式提供本發(fā)明,所述機(jī)器可讀介質(zhì)保存有用于對計算機(jī)系統(tǒng)100編程,以便執(zhí)行根據(jù)本發(fā)明的進(jìn)程的機(jī)器可讀指令。這里使用的術(shù)語“機(jī)器可讀介質(zhì)”包括參與向處理器112a-112n或者計算機(jī)系統(tǒng)100的其它組件提供指令,以便執(zhí)行的任意介質(zhì)。這樣的介質(zhì)可采取多種形式,包括(但不限于)非易失性介質(zhì),易失性介質(zhì)和傳輸介質(zhì)。非易失性介質(zhì)的常見形式包括,例如軟盤、軟磁盤、硬盤、磁帶或者任意其它磁性介質(zhì),光盤ROM(CD-ROM)或者任意其它光學(xué)介質(zhì),穿孔卡片或者具有小孔圖案的任意其它物理介質(zhì),可編程ROM(PROM),可擦除PROM(EPROM),電可擦PROM(EEPROM),快速存儲器,任意其它存儲芯片或盒式存儲器,或者計算機(jī)系統(tǒng)100能夠讀取,并且適合于存儲指令的任意其它介質(zhì)。在本實施例中,非易失性存儲器的一個例子是被描述成計算機(jī)系統(tǒng)100的內(nèi)部組件的大容量存儲裝置118,但是顯然也可由外部裝置提供。易失性介質(zhì)包括諸如RAM 114之類的動態(tài)存儲器。傳輸介質(zhì)包括同軸電纜、銅導(dǎo)線或者光纖,包括構(gòu)成總線122的導(dǎo)線。傳輸介質(zhì)還可采取聲波或光波的形式,例如在射頻或紅外數(shù)據(jù)通信中產(chǎn)生的那些聲波或光波。
此外,本發(fā)明可被下載為計算機(jī)程序產(chǎn)品,其中通過到與總線122耦接的通信接口132的網(wǎng)絡(luò)鏈路134a-134n之一,作為包括在載波或者其它傳播介質(zhì)中的數(shù)據(jù)信號,程序指令可從諸如服務(wù)器140之類的遠(yuǎn)程計算機(jī)轉(zhuǎn)移到發(fā)出請求的計算機(jī)系統(tǒng)100。通信接口132提供與多個網(wǎng)絡(luò)鏈路134a-134n耦接的雙向數(shù)據(jù)通信,網(wǎng)絡(luò)鏈路134a-134n可與例如局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)連接。當(dāng)實現(xiàn)成服務(wù)器系統(tǒng)時,計算機(jī)系統(tǒng)100一般包括通過與輸入/輸出控制器連接的多個外設(shè)部件互連(PCI)總線橋接器可訪問的多個通信接口。這樣,計算機(jī)系統(tǒng)100允許與多個網(wǎng)絡(luò)計算機(jī)連接。
在網(wǎng)絡(luò)環(huán)境中,計算機(jī)系統(tǒng)100通過網(wǎng)絡(luò)102與其它系統(tǒng)通信。網(wǎng)絡(luò)102可以指的是使用特殊協(xié)議,例如傳輸控制協(xié)議(TCP)和因特網(wǎng)協(xié)議(IP)相互通信的網(wǎng)絡(luò)和網(wǎng)關(guān)的全球集合。網(wǎng)絡(luò)102使用電信號、電磁信號或光信號傳送數(shù)字?jǐn)?shù)據(jù)流。攜帶數(shù)字?jǐn)?shù)據(jù)往來于計算機(jī)系統(tǒng)100的各種網(wǎng)絡(luò)內(nèi)的信號,以及網(wǎng)絡(luò)鏈路134a-134n上并通過通信接口132的信號是傳送信息的載波的例證形式。雖然未示出,不過計算機(jī)系統(tǒng)100還可包括促進(jìn)通信的多個外設(shè)組件。
當(dāng)計算機(jī)系統(tǒng)100被實現(xiàn)成HA群集中的服務(wù)器系統(tǒng)時,可包括另外的網(wǎng)絡(luò)適配器,以支持與其它服務(wù)器系統(tǒng)的本地連接。另外,當(dāng)被實現(xiàn)成HA群集中的服務(wù)器系統(tǒng)時,計算機(jī)系統(tǒng)100可被設(shè)計成商用硬件服務(wù)器,例如來自IBM公司的xSeriesTM服務(wù)器。
本領(lǐng)域的普通技術(shù)人員會認(rèn)識到圖1中描述的硬件可變化。此外,本領(lǐng)域的普通技術(shù)人員會認(rèn)識到描述的例子并不意味著對本發(fā)明的結(jié)構(gòu)限制。
現(xiàn)在參考圖2,圖2描述了在故障轉(zhuǎn)移期間,有效地轉(zhuǎn)移中間件的高可用性群集的硬件結(jié)構(gòu)的方框圖。如圖所示,客戶機(jī)系統(tǒng)202和204與網(wǎng)絡(luò)102連接,以便傳送服務(wù)請求。在本實施例中,客戶機(jī)系統(tǒng)202和204向高可用性(HA)系統(tǒng)208請求服務(wù),HA系統(tǒng)208被配置成具有短的恢復(fù)時間,以及故障轉(zhuǎn)移期間最少的提交數(shù)據(jù)丟失。
如圖所示,HA系統(tǒng)208包括主節(jié)點210和副節(jié)點220。如同下面所述,主節(jié)點210和副節(jié)點220最好實現(xiàn)當(dāng)被執(zhí)行時,提供高可用性系統(tǒng)的冗余硬件和軟件。特別地,主節(jié)點210和副節(jié)點220實現(xiàn)在優(yōu)選實施例中,支持J2EE應(yīng)用程序的冗余中間件,后面將說明。中間件是開發(fā)、集成和管理web應(yīng)用程序和系統(tǒng)的軟件。如后所述,中間件能夠?qū)崿F(xiàn)通信、進(jìn)程、數(shù)據(jù)的集成,和交易容量與系統(tǒng)管理的自動化。
特別地,JavaTM2平臺企業(yè)版(J2EE)提供用于建立web應(yīng)用程序的可重復(fù)使用的組件模型。J2EE定義J2EE平臺的標(biāo)準(zhǔn)應(yīng)用程序模型,托管應(yīng)用程序的標(biāo)準(zhǔn)平臺,兼容性要求和操作定義。這種開放源碼模型的一個優(yōu)點在于多個開發(fā)者能夠用另外的組件和配置實現(xiàn)J2EE模型,而所有J2EE應(yīng)用程序?qū)⒃诨贘2EE的系統(tǒng)上運(yùn)行。
國際商用機(jī)器公司(IBMTM)的開發(fā)人員已開發(fā)出實現(xiàn)J2EE模型的軟件。該軟件通常填充J2EE構(gòu)架中未規(guī)定的空白。例如,IBMTM已開發(fā)了當(dāng)在一群服務(wù)器上被實現(xiàn)時,支持J2EE軟件產(chǎn)品的符合J2EE的軟件產(chǎn)品的中間件堆棧。一般來說,中間件堆棧包括web服務(wù)器、數(shù)據(jù)庫服務(wù)器和通用因特網(wǎng)應(yīng)用程序服務(wù)器。具體地,該堆??砂ㄖT如IBM DBTM,UDB企業(yè)版,IBM HTTP服務(wù)器和IBMWebSphereTM應(yīng)用程序服務(wù)器之類的產(chǎn)品。
另外,主節(jié)點210和副節(jié)點220實現(xiàn)監(jiān)視HA群集中符合J2EE的中間件堆棧和硬件的故障及錯誤的監(jiān)視和配置控制器。作為監(jiān)視和配置控制器的一個例子,可實現(xiàn)TivoliTM監(jiān)視控制器,它填補(bǔ)了監(jiān)視在J2EE構(gòu)架中運(yùn)行的軟件的空白,并且簡化了運(yùn)行J2EE構(gòu)架的系統(tǒng)的配置。
按照使每個節(jié)點能夠快速檢查另一節(jié)點的心跳的簡單、可靠方式,連接主節(jié)點210和副節(jié)點220。在該實施例中,這種連接由連接在每個節(jié)點的網(wǎng)絡(luò)適配器之間的跨接電纜(cross-over cable)218實現(xiàn)。特別地,跨接電纜218最好能夠?qū)崿F(xiàn)以太網(wǎng)連接,以便傳送心跳數(shù)據(jù)。另一方面,在跨接電纜218發(fā)生故障的情況下,也可通過網(wǎng)絡(luò)102,跨越公共IP連接傳送心跳數(shù)據(jù)。顯然也可實現(xiàn)其它硬件來提供主節(jié)點210和副節(jié)點220之間的心跳通信通道,并且除了基于網(wǎng)絡(luò)的連接之外,還可實現(xiàn)串行連接。
特別地,當(dāng)通過跨接電纜218,在主節(jié)點210和副節(jié)點220之間發(fā)送心跳信號時,如果心跳失敗,那么在該故障之前,副節(jié)點220將接管主節(jié)點210提供的服務(wù)。但是,如后所述,根據(jù)本發(fā)明的一個優(yōu)點,在副節(jié)點220接管主節(jié)點210提供的服務(wù)之前,中間件組件會進(jìn)一步分析心跳故障,并提供關(guān)于該故障的額外信息。此外,如后所述,通過跨接電纜218,既能監(jiān)視基于Linux的心跳,又能監(jiān)視基于非Linux的心跳。
主節(jié)點210和副節(jié)點220訪問數(shù)據(jù)存儲系統(tǒng)214和224。有利的是,這里描述成drbd分區(qū)230的數(shù)據(jù)復(fù)制器包括每個數(shù)據(jù)存儲系統(tǒng)214和224的一部分,用于復(fù)制主節(jié)點210和副節(jié)點220可訪問的數(shù)據(jù),而不需要在主節(jié)點210和副節(jié)點220之間實際物理共享的存儲裝置。根據(jù)本發(fā)明的一個優(yōu)點,drbd被配置成在該分區(qū)上運(yùn)行,以便簡化故障轉(zhuǎn)移期間,從主節(jié)點210到副節(jié)點220的數(shù)據(jù)的轉(zhuǎn)移。顯然雖然關(guān)于drbd腳本管理的drbd分區(qū)描述了本發(fā)明,不過也可實現(xiàn)其它分布式數(shù)據(jù)復(fù)制系統(tǒng)。
不間斷電源(UPS)212和UPS 222分別向主節(jié)點210和副節(jié)點220提供獨立電源。最好,在UPS 212與副節(jié)點220,以及UPS 222與主節(jié)點210之間也建立連接。在一個實施例中,從主節(jié)點210到UPS222設(shè)置串行電纜216,從副節(jié)點220到UPS 212設(shè)置串行電纜226。但是,顯然也可實現(xiàn)其它類型的連接硬件。
根據(jù)本發(fā)明的一個優(yōu)點,當(dāng)在主節(jié)點210中發(fā)現(xiàn)故障時,在故障轉(zhuǎn)移之后,副節(jié)點220開始接收先前被引向主節(jié)點210的請求。由于在主節(jié)點210上運(yùn)行的硬件、軟件或網(wǎng)絡(luò)可能只有一部分發(fā)生故障,確保在故障轉(zhuǎn)移之后,主節(jié)點210不試圖更新數(shù)據(jù)的唯一方式是關(guān)閉UPS 212。有利的是,如后所述,當(dāng)檢測到對待機(jī)節(jié)點220的故障轉(zhuǎn)移時,群集管理器實現(xiàn)這里更詳細(xì)說明的STONITH,以便把命令從待機(jī)節(jié)點220引向UPS 212,從而關(guān)閉電源。
現(xiàn)在參考圖3,圖3描述了根據(jù)本發(fā)明的方法、系統(tǒng)和程序的群集管理器的方框圖。如圖所示,群集管理器包括用于實現(xiàn)有效故障轉(zhuǎn)移的多個組件,包括心跳工具402、drbd腳本404、mon 406和stonith函數(shù)408。顯然其它組件也可包括在群集管理器中,管理群集的其它方面。此外,顯然另外的組件可包括在群集管理器322中,以管理故障轉(zhuǎn)移。
心跳工具402最好包括Linux的心跳軟件包,配置成利用符合J2EE的中間件堆棧,管理HA群集內(nèi)的故障轉(zhuǎn)移。特別地,心跳工具402一般通過在群集中的兩個節(jié)點之間發(fā)送“心跳”請求來起作用。如圖2中所示,可通過每個節(jié)點的網(wǎng)絡(luò)適配器之間的跨接電纜,發(fā)送心跳請求。當(dāng)被應(yīng)用于在服務(wù)器系統(tǒng)群集上運(yùn)行的符合J2EE的中間件堆棧時,心跳工具402發(fā)送的心跳請求被分布在堆棧的不同層周圍。
如果心跳請求未能被返回,那么副節(jié)點會假定主節(jié)點發(fā)生故障,并接管IP、數(shù)據(jù)和在主節(jié)點上運(yùn)行的服務(wù)。當(dāng)副節(jié)點接管IP、數(shù)據(jù)和在主節(jié)點上運(yùn)行的服務(wù)時,心跳工具402啟動副節(jié)點的在待機(jī)模式下等待的組件,把IP地址分配給副節(jié)點的組件,并執(zhí)行其它故障轉(zhuǎn)移任務(wù)。
drbd 404是具有管理HA群集中的數(shù)據(jù),以便提高故障轉(zhuǎn)移期間數(shù)據(jù)的轉(zhuǎn)換的相關(guān)腳本的內(nèi)核模塊。這通過對drbd 404管理的塊裝置進(jìn)行鏡像來實現(xiàn)。drbd是裝入drbd模塊,并配置以HA群集中的相關(guān)系統(tǒng)和共享的存儲裝置的IP地址的腳本。
當(dāng)被應(yīng)用于符合J2EE的中間件堆棧時,drbd管理的塊裝置提供中間件堆棧可在其上運(yùn)行的存儲空間。首先,配置群集,并安裝drbd分區(qū),以致只有主節(jié)點能夠讀寫drbd管理的塊裝置。當(dāng)發(fā)生故障轉(zhuǎn)移時,drbd 404的數(shù)據(jù)盤腳本由心跳工具402運(yùn)行,以便安裝drbd分區(qū),從而只有副節(jié)點能夠讀/寫drbd管理的塊裝置。
mon 406是定期運(yùn)行監(jiān)視符合J2EE的中間件堆棧內(nèi)的緊要系統(tǒng)服務(wù)的監(jiān)視腳本的服務(wù)監(jiān)視后臺駐留程序。如果發(fā)現(xiàn)某一服務(wù)已發(fā)生故障或者被異常終止,那么mon 406重新啟動該服務(wù),以確保中間件堆棧的所有組件仍然在主服務(wù)內(nèi)運(yùn)行??梢蚶缇幊体e誤,或者災(zāi)難性操作系統(tǒng)事件,例如關(guān)于RAM的臨時緊要資源約束,發(fā)生異常終止。特別地,當(dāng)mon重啟某一服務(wù)時,它用不同于停用服務(wù)的進(jìn)程標(biāo)識符(PID),但是相同的虛擬IP地址,重啟該服務(wù)的新的實例。
stonith 406是心跳工具402調(diào)用的函數(shù),以確保故障轉(zhuǎn)移期間的數(shù)據(jù)完整性。特別地,stonith 406包括如圖2中所示的到UPS 212和222的串行電纜的配置。當(dāng)心跳工具402調(diào)用stonith 406時,該調(diào)用指定要關(guān)閉的節(jié)點。stonith發(fā)送關(guān)閉被請求UPS的電源的信號。
監(jiān)視和配置控制器410包括被指定用于監(jiān)視HA群集內(nèi)的硬件和軟件的狀態(tài)的多個監(jiān)視控制器。根據(jù)本發(fā)明的一個優(yōu)點,HA群集的多個硬件和軟件組件的狀態(tài)信息被轉(zhuǎn)發(fā)給遠(yuǎn)程集中式企業(yè)控制臺。最好,監(jiān)視和配置控制器410補(bǔ)充JavaTM管理擴(kuò)展(JMX)以監(jiān)視HA群集的硬件和軟件組件,檢測瓶頸和潛在的問題,自動從危險情形恢復(fù)群集。在一個實施例中,監(jiān)視控制器由把監(jiān)視的信息轉(zhuǎn)發(fā)給TivoliTM企業(yè)控制臺(TEC)的TivoliTM監(jiān)視實現(xiàn)。
特別地,在心跳工具402和mon 406監(jiān)視節(jié)點內(nèi)的特定組件和特定服務(wù)實例的狀態(tài)的時候,監(jiān)視和配置控制器410檢測由這些工具監(jiān)視的狀況,并檢測當(dāng)心跳工具402被觸發(fā)以啟動故障轉(zhuǎn)移,或者mon406被觸發(fā)以重啟服務(wù)器時,系統(tǒng)的整體狀態(tài)。從而,監(jiān)視和配置控制器410通過編輯當(dāng)發(fā)生故障、錯誤和非理想情況時,節(jié)點的多個組件的狀態(tài),補(bǔ)充開放源碼工具。
根據(jù)本發(fā)明的一個優(yōu)點,遠(yuǎn)程集中式監(jiān)視控制臺能夠使用收集的信息確定配置變化。具體地說,根據(jù)本發(fā)明的一個優(yōu)點,監(jiān)視和配置控制器410的監(jiān)視控制器都被配置成監(jiān)視HA群集中的每個硬件組件,以及符合J2EE的中間件堆棧的每一層。從而,根據(jù)與所述硬件和各層中間件相關(guān)的監(jiān)視信息,控制臺能夠確定哪些中間件層需要更多的存儲空間來高速緩存請求,需要更多的線程來處理請求,或者需要按照某一其它方式被重新配置??刂婆_能夠把配置變化發(fā)送給監(jiān)視和配置控制器410的配置控制器,所述監(jiān)視和配置控制器隨后調(diào)整HA群集的配置。在一個實施例中,配置控制器是管理HA群集的配置特征的TivoliTM配置管理器。
根據(jù)本發(fā)明的一個優(yōu)點,在企業(yè)系統(tǒng)中,控制臺使用收集的信息確定哪些HA群集需要硬件和軟件升級。例如,對于監(jiān)視信息來說,控制臺能夠確定哪些商店具有似乎正在發(fā)生故障,需要被更換的硬件,哪些商店具有已達(dá)到容量,需要升級的硬件,和哪些商店具有正在發(fā)生故障或者未可靠運(yùn)行的軟件。
根據(jù)本發(fā)明的另一優(yōu)點,監(jiān)視和配置控制器410與群集管理器322內(nèi)的其它監(jiān)視組件交互作用,收集發(fā)送給控制臺的狀態(tài)信息。例如,當(dāng)mon 406檢測到任意被監(jiān)視服務(wù)的故障時,監(jiān)視和配置控制器410向遠(yuǎn)程集中式監(jiān)視控制臺發(fā)送通知,以致能夠編譯系統(tǒng)中故障的更大圖象。此外,當(dāng)心跳工具402啟動系統(tǒng)的一個節(jié)點到另一節(jié)點的故障轉(zhuǎn)移時,監(jiān)視和配置控制器410向遠(yuǎn)程集中式監(jiān)視控制臺發(fā)送通知,以致能夠收集節(jié)點故障統(tǒng)計數(shù)字。
現(xiàn)在參見圖4,圖4是根據(jù)本發(fā)明的方法、系統(tǒng)和程序,在故障轉(zhuǎn)移之前的HA群集的軟件結(jié)構(gòu)的一個實施例的方框圖。如圖所示,主節(jié)點210和副節(jié)點220代表服務(wù)器系統(tǒng)的群集,每個被分配一個IP地址。
根據(jù)本發(fā)明的一個優(yōu)點,群集管理器322在主節(jié)點210和副節(jié)點220上運(yùn)行,以便監(jiān)視故障,重啟服務(wù),和當(dāng)檢測到故障時控制故障轉(zhuǎn)移。如圖所示,群集管理器322建立位于在主節(jié)點210和副節(jié)點220之間共享的存儲器上的drbd分區(qū)230。
主節(jié)點210包括中間件堆棧的所有活動組件負(fù)載均衡器312,HTTP服務(wù)器314,web應(yīng)用程序服務(wù)器(WAS)316,消息接發(fā)控制器318,和數(shù)據(jù)庫服務(wù)器320。副節(jié)點220包括活動HTTP服務(wù)器334和WAS 336,但是,負(fù)載均衡器332,消息接發(fā)控制器338和數(shù)據(jù)庫340處于待機(jī)模式。
負(fù)載均衡器312和332最好在也可被群集的HTTP和WAS服務(wù)器之間均衡請求的負(fù)載。最好,負(fù)載均衡器312和314通過利用服務(wù)器可用性,能力,工作量和其它標(biāo)準(zhǔn),實現(xiàn)智能負(fù)載均衡。根據(jù)一個實施例,可通過IBM WebSphereTMEdge服務(wù)器實現(xiàn)負(fù)載均衡器312和332。
如圖所示,負(fù)載均衡器312和332可實現(xiàn)與基于Linux的心跳無關(guān)的心跳。另一方面,基于Linux的心跳監(jiān)視332和342可監(jiān)視負(fù)載均衡器312和332的狀態(tài)。
HTTP服務(wù)器314和334可包括用于接收請求,和在WAS 316及336間分布HTTP請求的服務(wù)器群集。另外,當(dāng)收到其它請求,例如對小服務(wù)程序(servlet)和EJB的請求時,使HTTP服務(wù)器314和334能夠呼叫enabler,例如小服務(wù)程序容器和Enterprise JavaTMBean(EJB)容器。根據(jù)一個實施例,可通過與IBM的WebSphereTM,尤其是WebSphereTMv5.0捆綁的HTTP服務(wù)器來實現(xiàn)HTTP服務(wù)器314和334。WebSphereTM5.0有利,因為能夠從一個位置控制WebSphereTM組件的多個副本。從而,可在實現(xiàn)位于多個服務(wù)器系統(tǒng)上的軟件組件的多個實例的一個位置完成配置變化。
根據(jù)本發(fā)明的一個優(yōu)點,HTTP服務(wù)器314和334在活動/活動配置下運(yùn)行,在活動/活動配置下,在主節(jié)點啟動并運(yùn)行之后,群集管理器322的心跳工具激活HTTP服務(wù)器。通過在活動/活動配置下運(yùn)行HTTP服務(wù)器314和334,可在兩個(或更多的)服務(wù)器間分割請求負(fù)載,從而提高處理客戶機(jī)請求的速度。另外,通過在活動/活動配置下運(yùn)行HTTP服務(wù)器314和334,故障轉(zhuǎn)移時的啟動時間被降低。
WAS 316和336最好包括使得能夠支持向客戶提供緊要使命服務(wù)的web應(yīng)用的服務(wù)器群集,特別是使這些服務(wù)器支持J2EE應(yīng)用。根據(jù)一個實施例,WAS 316和336是托管小服務(wù)程序,EJB及支持J2EE應(yīng)用和服務(wù)所需的其它J2EE組件的IBM的WebSphereTM5.0支持的WebSphereTM應(yīng)用服務(wù)器。
WAS 316與消息接發(fā)控制器318及數(shù)據(jù)庫服務(wù)器320交互作用,提供與消息接發(fā)控制和數(shù)據(jù)庫集成的應(yīng)用服務(wù)器功能。根據(jù)本發(fā)明的一個優(yōu)點,WAS 316和WAS 336在活動/活動配置下運(yùn)行。特別地,當(dāng)初始化系統(tǒng)時,一旦消息接發(fā)控制器318和數(shù)據(jù)庫服務(wù)器320可用,那么群集管理器322的心跳工具啟動WAS 336以產(chǎn)生活動/活動配置。通過運(yùn)行活動-活動配置,可在多個系統(tǒng)群集間分割請求負(fù)載,以提高處理客戶機(jī)請求的速度。另外,通過運(yùn)行活動/活動配置,那么減少故障轉(zhuǎn)移時的啟動時間。
消息接發(fā)控制器318和338包括監(jiān)聽異步請求,并把這些請求保存在本地隊列中,提供隊列以便與基于J2EE的系統(tǒng)通信的控制器。消息接發(fā)控制器318和338可實現(xiàn)IBM MQSeriesTM,IBMWebSphereTMMQ,或者補(bǔ)充JavaTM消息接發(fā)服務(wù)(JMS)的其它消息控制器。
根據(jù)本發(fā)明的一個優(yōu)點,消息接發(fā)控制器318和338在活動/待機(jī)配置下運(yùn)行,在活動/待機(jī)配置下,群集管理器322的drbd管理drbd分區(qū)230中消息接發(fā)隊列中的持久資源,群集管理器322的心跳工具控制故障轉(zhuǎn)移中,消息接發(fā)控制器338的啟動。
數(shù)據(jù)庫服務(wù)器320和340提供對永久存儲器的控制。數(shù)據(jù)庫320和340可通過諸如IBM DB2 UDB企業(yè)版之類的數(shù)據(jù)庫控制系統(tǒng)或者其它關(guān)系數(shù)據(jù)庫管理系統(tǒng)來實現(xiàn)。
根據(jù)本發(fā)明的一個優(yōu)點,數(shù)據(jù)庫服務(wù)器320和340在活動/待機(jī)配置下運(yùn)行,在活動/待機(jī)配置下,群集管理器322的drbd管理drbd分區(qū)230中的數(shù)據(jù)庫中的持久資源,群集管理器322的心跳工具控制故障轉(zhuǎn)移中數(shù)據(jù)庫服務(wù)器340的啟動。
為了消息接發(fā)控制器318和338及數(shù)據(jù)庫服務(wù)器320和340在活動/待機(jī)配置下運(yùn)行,并且以最小的數(shù)據(jù)損失快速實現(xiàn)故障轉(zhuǎn)移,消息接發(fā)控制器318和數(shù)據(jù)庫服務(wù)器320被配置成指向drbd分區(qū)320被安裝成隊列和數(shù)據(jù)庫的存儲空間的根的位置。另外,群集管理器322用消息接發(fā)控制器318和數(shù)據(jù)庫服務(wù)器320的虛擬IP地址配置drbd和心跳工具。
此外,根據(jù)本發(fā)明的一個優(yōu)點,群集管理器322的mon功能定期運(yùn)行監(jiān)視緊要系統(tǒng)服務(wù),例如消息接發(fā)控制器318和數(shù)據(jù)庫服務(wù)器320提供的服務(wù)的監(jiān)視腳本。如果發(fā)現(xiàn)某一服務(wù)已失敗或者異常終止,mon重啟服務(wù),以確保中間件堆棧的所有組件仍然在主服務(wù)內(nèi)運(yùn)行。
重要的是注意配置每層中間件以實現(xiàn)有效故障轉(zhuǎn)移,并通過群集管理器322控制每層中間件的方法可被應(yīng)用于其它類型的中間件。從而,隨著可從與J2EE兼容的中間件軟件堆棧獲得的功能繼續(xù)擴(kuò)展,每個中間件組件可用活動/活動配置或活動/待機(jī)配置來構(gòu)成,由群集管理器322監(jiān)視,并在故障轉(zhuǎn)移期間受到控制。
現(xiàn)在參見圖5,圖5描述根據(jù)本發(fā)明的方法、系統(tǒng)和程序,在故障轉(zhuǎn)移之后,HA群集的軟件結(jié)構(gòu)的一個實施例的方框圖。如圖所示,故障轉(zhuǎn)移之后,主節(jié)點210被標(biāo)記成失效節(jié)點。副節(jié)點220接管成為活動節(jié)點。
當(dāng)檢測到故障,并且副節(jié)點220把主節(jié)點210標(biāo)明為“停用”時,存在硬件和軟件問題。具體地說,主節(jié)點210可能在要求的時間內(nèi)不應(yīng)答心跳請求,但是,會在之后不久即可工作。為了避免主節(jié)點210和副節(jié)點220都工作的情況,如前所述,群集管理器322的心跳工具調(diào)用STONITH關(guān)閉主節(jié)點210的UPS。通過實現(xiàn)廉價的可由STONITH控制的UPS,能夠?qū)崿F(xiàn)數(shù)據(jù)完整性,避免當(dāng)主節(jié)點未真正被停用時,會發(fā)生的HA的“裂腦”問題。
隨后,在故障轉(zhuǎn)移期間,負(fù)載均衡器心跳管理負(fù)載均衡器332的啟動。當(dāng)被激活時,群集管理器322的心跳工具把主節(jié)點210的虛擬IP1地址分配給負(fù)載均衡器33。因此,對虛擬IP地址的請求被重定向到負(fù)載均衡器332,從而不發(fā)生負(fù)載均衡群集的IP地址的任何變化。
在故障轉(zhuǎn)移期間,由于HTTP服務(wù)器334和WAS 336已活動,群集管理器322的心跳工具不必啟動這些組件。但是,由于消息接發(fā)控制器338和數(shù)據(jù)庫服務(wù)器340處于待機(jī)狀態(tài),群集管理器322的心跳工具需要管理這些層的故障轉(zhuǎn)移。首先,心跳工具將接收虛擬IP2地址。隨后,心跳工具將啟動drbd的數(shù)據(jù)盤服務(wù),配置和安裝drbd鏡像分區(qū)。最后,心跳工具將啟動配置到虛擬IP2地址的消息接發(fā)控制器338和數(shù)據(jù)庫服務(wù)器340,同時在鏡像drbd分區(qū)230上啟動消息隊列和數(shù)據(jù)庫實例。另一方面,雖然未示出,數(shù)據(jù)庫服務(wù)器340可以處于活動模式,而不是待機(jī)模式,因為每次虛擬IP2地址只適用于一個節(jié)點。由于在請求到達(dá)之前,數(shù)據(jù)庫服務(wù)器340并不試圖接觸drbd分區(qū)230上的數(shù)據(jù),因此在故障轉(zhuǎn)移時,數(shù)據(jù)庫服務(wù)器340被配置到虛擬IP2地址,在請求到達(dá)之前,鏡像drbd分區(qū)230是可訪問的。相反,一些層,例如消息接發(fā)控制器338在啟動時直接裝入數(shù)據(jù),從而如果在故障轉(zhuǎn)移之前在副節(jié)點220上被啟動,那么將會崩潰,因為在故障轉(zhuǎn)移之前,drbd分區(qū)230上的數(shù)據(jù)對副節(jié)點220不可用。
現(xiàn)在參見圖6,圖6描述HA系統(tǒng)中,符合J2EE的中間件內(nèi)的獨立軟件開發(fā)商(ISV)應(yīng)用程序的一個實現(xiàn)例子的方框圖。如圖所示,活動WAS 602,活動IBM MQSeriesTM服務(wù)器610和活動IBM DB2服務(wù)器614舉例說明與drbd分區(qū)630進(jìn)行接口的符合J2EE的中間件堆棧的主節(jié)點的一部分。如附圖標(biāo)記620所示,在活動的WebSphereTM應(yīng)用服務(wù)器602接收物品銷售或交易完成。ISV可對小服務(wù)程序或EJB編程,以處理特殊類型的到來請求。例如,如附圖標(biāo)記620所示,查尋小服務(wù)程序604是當(dāng)在收銀機(jī)掃描物品的價格時,處理價格查尋(PLU),檢查物品的價格的ISV web應(yīng)用程序。查尋小服務(wù)程序602隨后張貼該零售交易將由另一組件,例如交易小服務(wù)程序608或者另一小服務(wù)程序或者EJB異步完成的請求。但是,首先,如附圖標(biāo)記622所示,信息被傳送給MQ監(jiān)聽器612,并放置在MQ隊列632上,以釋放查尋小服務(wù)程序604接收下一到來請求,并確保通過MQ隊列632,按照順序一次準(zhǔn)確記錄交易。隨后,如附圖標(biāo)記624所示,隨后調(diào)用MDB 606,從MQ隊列632取出該交易,并如附圖標(biāo)記626所示,把該交易送給交易小服務(wù)程序626。交易小服務(wù)程序626最終處理該P(yáng)LU,并如附圖標(biāo)記628所示,把結(jié)果提交給IBM DB2控制器616,以便保存在DB2 634中。
特別地,圖6圖解說明了在故障轉(zhuǎn)移期間,HA系統(tǒng)中的符合J2EE的中間件堆棧的優(yōu)點,因為即使在請求已開始在堆棧的各層之間轉(zhuǎn)移之后,發(fā)生故障轉(zhuǎn)移,該堆棧也能確保每個交易將被立即準(zhǔn)確記錄。另外,圖6圖解說明了在故障轉(zhuǎn)移期間,HA系統(tǒng)中的符合J2EE的中間件堆棧的優(yōu)點,因為活動各層MQSeriesTM服務(wù)器610和DB2服務(wù)器614與只有主節(jié)點能夠訪問、但是被快速重新安裝以便在故障轉(zhuǎn)移期間由副節(jié)點訪問的drbd分區(qū)630進(jìn)行接口。
現(xiàn)在參考圖7,圖7描述了把drbd分區(qū)配置到HA群集中的符合J2EE的中間件堆棧的進(jìn)程和程序的高級邏輯流程圖。如圖所示,進(jìn)程開始于方框700,之后進(jìn)行到方框702。方框702描述配置和安裝drbd分區(qū)。接下來,方框704表示激活drbd分區(qū)上的消息隊列和數(shù)據(jù)庫。之后,方框706圖解說明記錄訪問drbd分區(qū)的消息接發(fā)服務(wù)器和數(shù)據(jù)庫服務(wù)器的虛擬IP地址,以便在故障轉(zhuǎn)移期間,有效轉(zhuǎn)移對drbd分區(qū)的訪問,之后該進(jìn)程結(jié)束。
現(xiàn)在參見圖8,圖8描述通過心跳控制器,控制HA群集中符合J2EE的中間件堆棧的配置和故障轉(zhuǎn)移的進(jìn)程和程序的高級邏輯流程圖。如圖所示,該進(jìn)程開始于方框800,之后進(jìn)行到方框802。方框802圖解說明激活主節(jié)點的中間件層。之后,方框804說明激活副節(jié)點的HTTP服務(wù)器和WAS中間件層。另外,指定成在活動-活動配置下運(yùn)行的其它中間件層被激活。之后,方框806描述定期啟動從副節(jié)點到主節(jié)點的心跳請求。方框808描述副節(jié)點是否檢測到心跳返回的確定。如果檢測到心跳返回,那么進(jìn)程返回方框806。如果沒有檢測到心跳返回,那么進(jìn)程進(jìn)行到方框810。
方框810描述調(diào)用STONITH關(guān)閉主節(jié)點的電源。隨后,方框812描述從主節(jié)點接管虛擬IP地址,以便分配給副節(jié)點中的冗余組件。之后,方框814描述調(diào)用數(shù)據(jù)盤腳本,重新安裝drbd分區(qū),以便由副節(jié)點訪問,之后進(jìn)程結(jié)束。隨后,方框816描述激活副節(jié)點上的待機(jī)中間件層,并啟動drbd分區(qū)上的數(shù)據(jù)。顯然心跳工具和故障轉(zhuǎn)移期間的其它群集管理服務(wù)可執(zhí)行另外的步驟。
現(xiàn)在參見圖9,圖9是描述控制用于監(jiān)視符合J2EE的中間件堆棧提供的服務(wù)的mon功能的進(jìn)程和程序的高級邏輯流程圖。如圖所示,該進(jìn)程開始于方框900,之后進(jìn)行到方框902。方框902描述配置用于監(jiān)視由中間件提供的服務(wù)的時間表。隨后,方框904描述預(yù)定的監(jiān)視時間是否被觸發(fā)的確定。如果預(yù)定的監(jiān)視時間未被觸發(fā),那么該進(jìn)程在方框904重復(fù)。如果預(yù)定的監(jiān)視時間被觸發(fā),那么進(jìn)程進(jìn)行到方框906。方框906描述監(jiān)視預(yù)定服務(wù)的狀態(tài)。之后,方框908確定服務(wù)是否以某種方法被檢測為停用或故障。如果服務(wù)未被檢測為停用,那么進(jìn)程結(jié)束。如果服務(wù)被檢測為停用,那么進(jìn)程進(jìn)行到方框910。方框910描述用新的PID重啟相同服務(wù),之后進(jìn)程結(jié)束。
現(xiàn)在參見圖10,圖10描述根據(jù)本發(fā)明的方法、系統(tǒng)和程序,包括運(yùn)行J2EE中間件堆棧,并由遠(yuǎn)程企業(yè)控制器管理的多個HA系統(tǒng)的企業(yè)網(wǎng)絡(luò)的方框圖。如圖所示,HA系統(tǒng)1202和HA系統(tǒng)1204與遠(yuǎn)程企業(yè)控制臺1210通信連接,遠(yuǎn)程企業(yè)控制臺1210通過網(wǎng)絡(luò)102監(jiān)視并遙控HA系統(tǒng)1202和1204。顯然單個或多個遠(yuǎn)程中央控制臺可監(jiān)視和控制多個HA系統(tǒng)。
根據(jù)本發(fā)明的一個優(yōu)點,每個HA系統(tǒng)1202和1204能夠處理零售交易和其它緊要使命操作。根據(jù)一個實施例,每個HA系統(tǒng)1202和1204可通過能夠?qū)崿F(xiàn)J2EE應(yīng)用程序的冗余的符合J2EE的中間件堆棧,例如圖4和5中圖解說明的中間件堆棧實現(xiàn)高可用性。特別地,每個HA系統(tǒng)1202和1204包括運(yùn)行監(jiān)視和配置控制器410的群集管理器,如圖3中所示。
有利的是,當(dāng)在任意HA系統(tǒng)1202和1204發(fā)出錯誤、故障或非理想情況時,監(jiān)視和配置控制器410檢查錯誤、故障或其它非理想情況時系統(tǒng)的狀況,隨后編譯該信息,向遠(yuǎn)程企業(yè)控制臺1210報告。根據(jù)本發(fā)明的一個優(yōu)點,如果心跳監(jiān)視器或mon功能檢測到故障或錯誤,那么監(jiān)視和配置控制器410被觸發(fā),以便檢測所述故障或錯誤,并確定故障或錯誤時的系統(tǒng)狀況。
遠(yuǎn)程企業(yè)控制臺1210最好把監(jiān)視信息保存在數(shù)據(jù)庫中。隨后,遠(yuǎn)程企業(yè)控制臺1210最好包括用于分析從HA系統(tǒng)1202和1204接收的錯誤或故障信息,并且可能把配置變化返回給HA系統(tǒng),以便試圖防止和改善故障轉(zhuǎn)移的效率的第一控制器。另外,遠(yuǎn)程企業(yè)控制臺1210可包括比較從多個HA系統(tǒng)接收的故障、錯誤和其它信息,確定哪些系統(tǒng)需要修理和升級,哪些系統(tǒng)不滿足性能要求的第二控制器。遠(yuǎn)程企業(yè)控制臺1210可收集并控制HA系統(tǒng)1202和1204的性能統(tǒng)計數(shù)字的顯示。
現(xiàn)在參見圖11,圖11描述根據(jù)本發(fā)明的方法、系統(tǒng)和程序,控制HA群集管理器內(nèi)的監(jiān)視控制器的進(jìn)程和程序的高級邏輯流程圖。如圖所示,該進(jìn)程開始于方框1000,之后進(jìn)行到方框1002。方框1002描述確定心跳監(jiān)視器,mon,或者監(jiān)視HA系統(tǒng)中的中間件堆棧的其它監(jiān)視控制器是否檢測到故障或錯誤。如果沒有檢測到故障或錯誤,那么該進(jìn)程在方框1002重復(fù)。如果檢測到故障或錯誤,那么進(jìn)程進(jìn)行到方框1004。方框1004描述收集并分析故障或錯誤時的可用系統(tǒng)信息。隨后,方框1006描述把故障或錯誤和可用系統(tǒng)信息發(fā)送給監(jiān)視HA系統(tǒng)的遠(yuǎn)程中央控制臺,之后進(jìn)程結(jié)束。
現(xiàn)在參見圖12,圖12是描述遠(yuǎn)程控制HA系統(tǒng)的群集管理器,從而重構(gòu)HA系統(tǒng)的進(jìn)程和程序的高級邏輯流程圖。如圖所示,該進(jìn)程開始于方框1100,之后,進(jìn)行到方框1102。方框1102描述確定是否從遠(yuǎn)程企業(yè)控制臺收到重構(gòu)運(yùn)行中間件堆棧的HA系統(tǒng)的配置請求。如果沒有收到請求,那么該進(jìn)程在方框1102重復(fù)。如果收到請求,那么進(jìn)程進(jìn)行到方框1104。方框1104描述調(diào)用心跳監(jiān)視器重構(gòu)HA系統(tǒng)故障轉(zhuǎn)移設(shè)置,之后進(jìn)程結(jié)束。另外,HA系統(tǒng)的群集管理器內(nèi)的其它控制器可被調(diào)用,以調(diào)整HA系統(tǒng)的其它軟件和硬件配置。
現(xiàn)在參見圖13,圖13描述控制用于管理群集中的多個HA系統(tǒng)的遠(yuǎn)程企業(yè)控制臺的進(jìn)程和程序的高級邏輯流程圖。如圖所示,進(jìn)程開始于方框1300,之后進(jìn)行到方框1302。方框1302描述確定是否從HA系統(tǒng)收到監(jiān)視信息。如果沒有收到監(jiān)視信息,那么進(jìn)程在方框1302重復(fù)。如果收到監(jiān)視信息,那么進(jìn)程進(jìn)行到方框1304。特別地,遠(yuǎn)程企業(yè)控制臺定期向每個HA系統(tǒng)發(fā)送關(guān)于監(jiān)視信息的請求,每個HA系統(tǒng)也可自動發(fā)送監(jiān)視信息。
方框1304描述把監(jiān)視信息加入企業(yè)數(shù)據(jù)庫中,所述企業(yè)數(shù)據(jù)庫中保存來自多個HA系統(tǒng)的監(jiān)視信息。隨后,方框1306描述如果監(jiān)視信息觸發(fā)重構(gòu),那么請求HA系統(tǒng)的重構(gòu)。特別地,遠(yuǎn)程企業(yè)控制臺可包括當(dāng)在監(jiān)視信息中檢測到一些特定類型的錯誤時,將被請求的預(yù)定配置。另一方面,系統(tǒng)管理員可為特定類型的錯誤,推薦配置的類型。之后,方框1308描述根據(jù)監(jiān)視信息,重新計算HA系統(tǒng)的性能統(tǒng)計數(shù)字。特別地,可以只對某些類型的監(jiān)視錯誤或波動,觸發(fā)性能統(tǒng)計數(shù)字的計算。隨后,方框1312描述比較該HA系統(tǒng)的性能與企業(yè)網(wǎng)絡(luò)中的其它HA系統(tǒng)的性能和企業(yè)網(wǎng)絡(luò)的性能要求集合。隨后,方框1314描述以圖表的形式顯示比較的性能結(jié)果。例如,圖表可描述HA系統(tǒng)的位置的圖形表示,提供哪些系統(tǒng)已發(fā)生故障的圖形指示符,并提供表示每個HA系統(tǒng)相對于其它HA系統(tǒng)的性能的圖形指示符。此外,可顯示每個系統(tǒng)的實時性能和報告的任意錯誤。隨后,方框1316描述推薦針對HA系統(tǒng)弱點的糾正動作,之后進(jìn)程結(jié)束。例如,推薦可指示哪些HA系統(tǒng)需要被更換,哪些HA系統(tǒng)需要升級,哪些HA系統(tǒng)需要軟件升級或微調(diào)。顯然圖13中描述的進(jìn)程是可對從多個高可用性服務(wù)器接收的監(jiān)視信息執(zhí)行的各種進(jìn)程的例子,并且在不脫離本發(fā)明的范圍的情況下,可執(zhí)行其它類似的分析和輸出。
雖然參考優(yōu)選實施例具體說明了本發(fā)明,但是對本領(lǐng)域的技術(shù)人員來說,在不脫離本發(fā)明的精神和范圍的情況下,顯然可做出形式和細(xì)節(jié)方面的各種變化。
權(quán)利要求
1.一種能夠?qū)崿F(xiàn)高可用性系統(tǒng)的遠(yuǎn)程企業(yè)管理的系統(tǒng),包括通過網(wǎng)絡(luò)與遠(yuǎn)程企業(yè)服務(wù)器通信連接的多個高可用性系統(tǒng)的一個特定高可用性系統(tǒng);監(jiān)視所述高可用性系統(tǒng)的特定組件的狀態(tài),并在所述狀態(tài)指示錯誤時,作出反應(yīng),以調(diào)整所述高可用性系統(tǒng)的群集管理控制器;檢測何時所述群集管理控制器對所述特定組件的所述狀態(tài)作出反應(yīng),并檢測所述高可用性系統(tǒng)的多個組件的狀況的監(jiān)視控制器,其中所述監(jiān)視控制器向所述遠(yuǎn)程企業(yè)服務(wù)器報告所述錯誤和所述多個組件的狀況,所述遠(yuǎn)程企業(yè)服務(wù)器能夠根據(jù)所述報告管理所述高可用性系統(tǒng)。
2.按照權(quán)利要求1所述的實現(xiàn)高可用性系統(tǒng)的遠(yuǎn)程企業(yè)管理的系統(tǒng),所述特定高可用性系統(tǒng)還包括實現(xiàn)由所述群集管理控制器監(jiān)視的符合J2EE的中間件堆棧的多個服務(wù)器。
3.按照權(quán)利要求1所述的實現(xiàn)高可用性系統(tǒng)的遠(yuǎn)程企業(yè)管理的系統(tǒng),所述群集管理控制器還包括檢測所述高可用性系統(tǒng)的主節(jié)點的狀態(tài)的心跳監(jiān)視器。
4.按照權(quán)利要求1所述的實現(xiàn)高可用性系統(tǒng)的遠(yuǎn)程企業(yè)管理的系統(tǒng),所述群集管理控制器還包括檢測由所述高可用性系統(tǒng)的中間件層提供的服務(wù)的狀態(tài)的服務(wù)監(jiān)視后臺駐留程序。
5.按照權(quán)利要求1所述的實現(xiàn)高可用性系統(tǒng)的遠(yuǎn)程企業(yè)管理的系統(tǒng),其中所述監(jiān)視控制器從所述遠(yuǎn)程企業(yè)服務(wù)器接收配置請求,并關(guān)于所述群集管理控制器將如何作出反應(yīng)以調(diào)整所述高可用性系統(tǒng)來調(diào)整配置。
6.按照權(quán)利要求1所述的實現(xiàn)高可用性系統(tǒng)的遠(yuǎn)程企業(yè)管理的系統(tǒng),其中所述監(jiān)視控制器從所述遠(yuǎn)程企業(yè)服務(wù)器接收配置請求,并根據(jù)所述請求,調(diào)整所述高可用性系統(tǒng)的硬件配置。
7.一種能夠?qū)崿F(xiàn)高可用性系統(tǒng)的遠(yuǎn)程企業(yè)管理的方法,包括監(jiān)視高可用性系統(tǒng)的特定組件的狀態(tài),其中所述特定高可用性系統(tǒng)通過網(wǎng)絡(luò)與遠(yuǎn)程企業(yè)服務(wù)器通信連接;響應(yīng)指示錯誤的所述狀態(tài),作出反應(yīng),以調(diào)整所述高可用性系統(tǒng);檢測何時所述群集管理控制器對所述特定組件的所述狀態(tài)作出反應(yīng),并檢測所述高可用性系統(tǒng)的多個組件的狀況;和向所述遠(yuǎn)程企業(yè)服務(wù)器報告所述錯誤和所述多個組件的所述狀況,所述遠(yuǎn)程企業(yè)服務(wù)器能夠根據(jù)所述報告管理所述高可用性系統(tǒng)。
8.按照權(quán)利要求7所述的實現(xiàn)高可用性系統(tǒng)的遠(yuǎn)程企業(yè)管理的方法,還包括監(jiān)視實現(xiàn)符合J2EE的中間件堆棧的多個服務(wù)器的狀態(tài)。
9.按照權(quán)利要求7所述的實現(xiàn)高可用性系統(tǒng)的遠(yuǎn)程企業(yè)管理的方法,還包括由心跳監(jiān)視器監(jiān)視所述高可用性系統(tǒng)的主節(jié)點的狀態(tài)。
10.按照權(quán)利要求7所述的實現(xiàn)高可用性系統(tǒng)的遠(yuǎn)程企業(yè)管理的方法,還包括由服務(wù)監(jiān)視后臺駐留程序檢測由所述高可用性系統(tǒng)的中間件層提供的服務(wù)的狀態(tài)。
11.按照權(quán)利要求7所述的實現(xiàn)高可用性系統(tǒng)的遠(yuǎn)程企業(yè)管理的方法,還包括從所述遠(yuǎn)程企業(yè)服務(wù)器接收配置請求;和關(guān)于所述群集管理控制器將如何作出反應(yīng)以調(diào)整所述高可用性系統(tǒng)來調(diào)整配置。
12.按照權(quán)利要求7所述的實現(xiàn)高可用性系統(tǒng)的遠(yuǎn)程企業(yè)管理的方法,還包括從所述遠(yuǎn)程企業(yè)服務(wù)器接收配置請求;和根據(jù)所述請求,調(diào)整所述高可用性系統(tǒng)的硬件配置。
13.一種駐留在計算機(jī)可讀介質(zhì)上的實現(xiàn)高可用性系統(tǒng)的遠(yuǎn)程企業(yè)管理的計算機(jī)程序產(chǎn)品,包括監(jiān)視高可用性系統(tǒng)的特定組件的狀態(tài)的裝置,其中所述特定高可用性系統(tǒng)通過網(wǎng)絡(luò)與遠(yuǎn)程企業(yè)服務(wù)器通信連接;響應(yīng)指示錯誤的所述狀態(tài),作出反應(yīng),以調(diào)整所述高可用性系統(tǒng)的裝置;檢測何時所述群集管理控制器對所述特定組件的所述狀態(tài)作出反應(yīng),并檢測所述高可用性系統(tǒng)的多個組件的狀況的裝置;和向所述遠(yuǎn)程企業(yè)服務(wù)器報告所述錯誤和所述多個組件的所述狀況的裝置,所述遠(yuǎn)程企業(yè)服務(wù)器能夠根據(jù)所述報告管理所述高可用性系統(tǒng)。
14.按照權(quán)利要求13所述的實現(xiàn)高可用性系統(tǒng)的遠(yuǎn)程企業(yè)管理的計算機(jī)程序產(chǎn)品,還包括監(jiān)視實現(xiàn)符合J2EE的中間件堆棧的多個服務(wù)器的狀態(tài)的裝置。
15.按照權(quán)利要求13所述的實現(xiàn)高可用性系統(tǒng)的遠(yuǎn)程企業(yè)管理的計算機(jī)程序產(chǎn)品,還包括由心跳監(jiān)視器監(jiān)視所述高可用性系統(tǒng)的主節(jié)點的狀態(tài)的裝置。
16.按照權(quán)利要求13所述的實現(xiàn)高可用性系統(tǒng)的遠(yuǎn)程企業(yè)管理的計算機(jī)程序產(chǎn)品,還包括由服務(wù)監(jiān)視后臺駐留程序檢測由所述高可用性系統(tǒng)的中間件層提供的服務(wù)的狀態(tài)的裝置。
17.按照權(quán)利要求13所述的實現(xiàn)高可用性系統(tǒng)的遠(yuǎn)程企業(yè)管理的計算機(jī)程序產(chǎn)品,還包括從所述遠(yuǎn)程企業(yè)服務(wù)器接收配置請求的裝置;和關(guān)于所述群集管理控制器將如何作出反應(yīng)以調(diào)整所述高可用性系統(tǒng)來調(diào)整配置的裝置。
18.按照權(quán)利要求13所述的實現(xiàn)高可用性系統(tǒng)的遠(yuǎn)程企業(yè)管理的計算機(jī)程序產(chǎn)品,還包括從所述遠(yuǎn)程企業(yè)服務(wù)器接收配置請求的裝置;和根據(jù)所述請求,調(diào)整所述高可用性系統(tǒng)的硬件配置的裝置。
19.一種遠(yuǎn)程配置多個高可用性系統(tǒng)的系統(tǒng),包括與網(wǎng)絡(luò)通信連接的多個高可用性系統(tǒng),每個高可用性系統(tǒng)包括檢測關(guān)于所述多個高可用性系統(tǒng)中的每一個的多個組件的監(jiān)視信息的監(jiān)視控制器;和與所述網(wǎng)絡(luò)通信連接的遠(yuǎn)程企業(yè)服務(wù)器,其中所述遠(yuǎn)程企業(yè)服務(wù)器接收關(guān)于所述多個高可用性系統(tǒng)中每一個的所述監(jiān)視信息,分析所述監(jiān)視信息,把重構(gòu)請求發(fā)送給提交監(jiān)視信息的所述多個高可用性系統(tǒng),所述監(jiān)視信息指示可由重構(gòu)調(diào)整的錯誤。
全文摘要
提供高可用性系統(tǒng)的遠(yuǎn)程企業(yè)管理的方法、系統(tǒng)和程序。多個高可用性系統(tǒng)在企業(yè)中連網(wǎng),并由遠(yuǎn)程企業(yè)服務(wù)器整體管理。在每個高可用性系統(tǒng)內(nèi),群集管理控制器監(jiān)視高可用性系統(tǒng)的特定組件的狀態(tài),當(dāng)所述狀態(tài)指示錯誤時,作出反應(yīng),以調(diào)整該高可用性系統(tǒng)。另外,就每個高可用性系統(tǒng)來說,監(jiān)視控制器檢測何時群集管理控制器對特定組件的狀態(tài)作出反應(yīng),并檢測該高可用性系統(tǒng)的多個組件的狀況。監(jiān)視控制器隨后向遠(yuǎn)程企業(yè)服務(wù)器報告所述錯誤和所述多個組件的狀況。使遠(yuǎn)程企業(yè)服務(wù)器能夠根據(jù)從多個高可用性系統(tǒng)中的每一個接收的報告,管理每個高可用性系統(tǒng)。
文檔編號G06F11/00GK1645389SQ20051000557
公開日2005年7月27日 申請日期2005年1月19日 優(yōu)先權(quán)日2004年1月20日
發(fā)明者弗蘭西斯科·德·拉·克魯茲, 米歇爾·A·波里尼, 道格拉斯·斯科特·魯瑟特, 拉德哈克里什南·塞圖拉曼 申請人:國際商業(yè)機(jī)器公司