專利名稱:一種雙機(jī)備份系統(tǒng)及備份方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通訊技術(shù)領(lǐng)域,尤其涉及一種雙機(jī)備份系統(tǒng)及備份方法。
背景技術(shù):
雙機(jī)備份一般指兩臺(tái)服務(wù)器,使用共享的存儲(chǔ)設(shè)備(磁盤(pán)陣列拒、存儲(chǔ)區(qū)
域網(wǎng)SAN)或無(wú)共享存儲(chǔ)設(shè)備。兩臺(tái)服務(wù)器可以采用互備、主從、并行等不同 的方式。在工作過(guò)程中,兩臺(tái)服務(wù)器將以一個(gè)虛擬的IP地址對(duì)外提供服務(wù),依 工作方式的不同,將服務(wù)請(qǐng)求發(fā)送給其中一臺(tái)服務(wù)器承擔(dān)。
如圖l所示,圖1為現(xiàn)有雙機(jī)備份系統(tǒng)的結(jié)構(gòu)示意圖,包括Active服務(wù)器 100和Backup服務(wù)器101, Active服務(wù)器100和Backup服務(wù)器101之間通過(guò)心 跳網(wǎng)絡(luò)102協(xié)調(diào)雙機(jī)。Active服務(wù)器100內(nèi)部包括系統(tǒng)監(jiān)控模塊1001、資源對(duì) 象檢測(cè)模塊1002、資源對(duì)象模塊1003以及管理模塊1004四部分。類似的Backup 服務(wù)器101內(nèi)也包括這四個(gè)模塊。
現(xiàn)有雙機(jī)備份系統(tǒng)具有以下弊端
(1) 一些雙機(jī)軟件要求必須提供共享存儲(chǔ)設(shè)備,不支持無(wú)共享存儲(chǔ)設(shè)備的 方式,在一些對(duì)于存儲(chǔ)容量并不大的應(yīng)用中,浪費(fèi)用戶的硬件投資;
(2 )另外一些雙機(jī)軟件提供的軟雙機(jī)功能,只提供從Active主機(jī)到Backup 機(jī)的異步鏡像功能,無(wú)法提供實(shí)時(shí)同步的本地存儲(chǔ)鏡像功能,在出現(xiàn)故障執(zhí)行 雙機(jī)切換操作時(shí)會(huì)丟失一部分用戶應(yīng)用數(shù)據(jù),對(duì)用戶應(yīng)用造成損失;
(3 )傳統(tǒng)雙機(jī)軟件內(nèi)部構(gòu)架一般只有1個(gè)系統(tǒng)監(jiān)控模塊,負(fù)責(zé)接收來(lái)自資 源對(duì)象檢測(cè)程序的信息,并通過(guò)心跳網(wǎng)絡(luò)與其它服務(wù)器的系統(tǒng)監(jiān)控程序保持心跳通信,協(xié)調(diào)雙機(jī)系統(tǒng)之間的關(guān)系。雙機(jī)備份本身即是防范由于單個(gè)設(shè)備的故 障導(dǎo)致服務(wù)中斷,但雙機(jī)備份軟件自身由于只有1個(gè)系統(tǒng)監(jiān)控模塊恰恰又形成 了一個(gè)新的單點(diǎn),在雙機(jī)備份軟件自身就存在單點(diǎn)故障隱患,從而可能會(huì)引發(fā)
以下2點(diǎn)故障
(a) 由于雙機(jī)之間的心跳網(wǎng)絡(luò)是通過(guò)雙機(jī)備份軟件內(nèi)的系統(tǒng)監(jiān)控模塊進(jìn)行 通訊,所以,在目前的雙機(jī)系統(tǒng)中,即使增加多條心跳線時(shí),當(dāng)系統(tǒng)監(jiān)控模塊 出現(xiàn)故障后,還是會(huì)出現(xiàn)心跳網(wǎng)絡(luò)全部癱瘓的故障現(xiàn)象,導(dǎo)致對(duì)端Backup服務(wù) 器誤認(rèn)為Active服務(wù)器處于死機(jī)狀態(tài),可能出現(xiàn)"雙Active服務(wù)器,,的腦裂
(Split-Brain)故障現(xiàn)象,進(jìn)而導(dǎo)致兩端服務(wù)器都在爭(zhēng)奪共享資源,最嚴(yán)重的后 果甚至?xí)茐挠脩艄蚕泶鎯?chǔ)設(shè)備的數(shù)據(jù)完整性。
(b) 由于存在系統(tǒng)監(jiān)控模塊、資源對(duì)象檢測(cè)模塊的單點(diǎn)故障隱患,可能導(dǎo) 致在雙機(jī)備份軟件控制的多種資源對(duì)象服務(wù)均正常運(yùn)行時(shí),由于雙機(jī)備份軟件 自身的單點(diǎn)故障而引發(fā)雙機(jī)資源不必要的系統(tǒng)誤切換,降低了整體系統(tǒng)的運(yùn)行 效率、可靠性和可用性。
發(fā)明內(nèi)容
鑒于上述的分析,本發(fā)明的目的在于提供一種雙機(jī)備份系統(tǒng)及備份方法, 用以解決現(xiàn)有技術(shù)中存在的由于單點(diǎn)故障引發(fā)的腦裂等問(wèn)題。 本發(fā)明的目的是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的
本發(fā)明提供了一種雙機(jī)備份系統(tǒng),所述系統(tǒng)包括包括通過(guò)外部心跳線連 接的工作服務(wù)器和備份服務(wù)器,其特征在于,所述工作服務(wù)器和備份服務(wù)器分 別包括兩個(gè)系統(tǒng)監(jiān)控模塊、兩個(gè)資源對(duì)象檢測(cè)模塊、資源對(duì)象模塊和管理模 塊,其中,所述系統(tǒng)監(jiān)控模塊,用于通過(guò)內(nèi)部心跳線與本地服務(wù)器的另外一個(gè)系統(tǒng)監(jiān) 控模塊互相監(jiān)控,當(dāng)在預(yù)定時(shí)間內(nèi)未檢測(cè)到對(duì)方發(fā)來(lái)的心跳信息或檢測(cè)到標(biāo)記
為錯(cuò)誤的心跳信息時(shí),給本地服務(wù)器的管理模塊發(fā)送告警;所述系統(tǒng)監(jiān)控模塊 同時(shí)還用于檢測(cè)與其連接的資源對(duì)象檢測(cè)模塊發(fā)送的檢測(cè)資源的狀態(tài)信息,當(dāng) 在預(yù)定時(shí)間內(nèi)未檢測(cè)到所述狀態(tài)信息或檢測(cè)到標(biāo)記為錯(cuò)誤的狀態(tài)信息時(shí),給本 地服務(wù)器的管理模塊發(fā)送告警,并在確定為資源對(duì)象模塊出現(xiàn)故障時(shí),通過(guò)外 部心跳線向?qū)Χ朔?wù)器的系統(tǒng)監(jiān)控模塊發(fā)送標(biāo)記為錯(cuò)誤的心跳信息,觸發(fā)對(duì)端 服務(wù)器的管理模塊的告警處理流程;
所述資源對(duì)象模塊,作為本地服務(wù)器的另外一個(gè)資源對(duì)象檢測(cè)模塊的備份, 用于檢測(cè)資源對(duì)象模塊中的各種資源對(duì)象,并定期將檢測(cè)資源的狀態(tài)信息發(fā)送 給本地服務(wù)器的系統(tǒng)監(jiān)控模塊;
所述管理模塊,用于根據(jù)其接收告警的情況判定是否需要執(zhí)行雙機(jī)資源的 切換操作;
所述資源對(duì)象模塊,用于提供本地服務(wù)器的各種資源對(duì)象。 進(jìn)一步地,所述管理模塊具體用于,根據(jù)收到的告警判斷兩個(gè)系統(tǒng)監(jiān)控模 塊或者兩個(gè)資源對(duì)象檢測(cè)模塊是否全部告警,如果兩個(gè)系統(tǒng)監(jiān)控模塊或者兩個(gè) 資源對(duì)象檢測(cè)模塊全部出現(xiàn)告警,則執(zhí)行雙機(jī)資源的切換操作;如果其中一個(gè) 系統(tǒng)監(jiān)控模塊或者其中一個(gè)資源對(duì)象檢測(cè)模塊出現(xiàn)告警,則執(zhí)行備份操作;如 果兩個(gè)系統(tǒng)監(jiān)控模塊全部沒(méi)有告警,則消除內(nèi)部心跳誤報(bào)故障信息;如果兩個(gè) 資源對(duì)象檢測(cè)模塊全部沒(méi)有告警,則檢測(cè)是否是資源對(duì)象模塊出現(xiàn)故障,當(dāng)確 認(rèn)是是資源對(duì)象模塊出現(xiàn)故障時(shí),執(zhí)行雙機(jī)資源的切換操作。
進(jìn)一步地,兩個(gè)所述系統(tǒng)監(jiān)控模塊還用于,分別通過(guò)外部心跳線定時(shí)向?qū)Χ朔?wù)器對(duì)應(yīng)的系統(tǒng)監(jiān)控模塊發(fā)送心跳信息,并檢測(cè)對(duì)端服務(wù)器的系統(tǒng)監(jiān)控模 塊發(fā)來(lái)的心跳信息,當(dāng)在預(yù)定時(shí)間內(nèi)未檢測(cè)到對(duì)端服務(wù)器發(fā)來(lái)的心跳信息或檢
測(cè)到標(biāo)記為錯(cuò)誤的心跳信息時(shí),則激發(fā)本地服務(wù)器的管理模塊進(jìn)行告警處理; 所述本地服務(wù)器的管理模塊用于結(jié)合所述資源對(duì)象模塊的運(yùn)行狀態(tài)和共享
資源的鎖定狀態(tài),判斷是否需要執(zhí)行雙機(jī)資源的切換操作。
進(jìn)一步地,所述管理模塊具體用于,判斷是單根外部心跳線還是多根外部
心跳線發(fā)生故障如果是多根外部心跳線發(fā)生故障,則鎖定共享資源;如果是
單根外部心跳線發(fā)生故障,所述管理模塊通過(guò)給兩個(gè)系統(tǒng)監(jiān)控模塊、兩個(gè)資源
對(duì)象檢測(cè)模塊、資源對(duì)象模塊發(fā)送檢測(cè)信息來(lái)進(jìn)一步定位故障信息如果是單
點(diǎn)故障,則執(zhí)行備份操作,否則執(zhí)行雙機(jī)資源的切換操作。
進(jìn)一步地,所述本地服務(wù)器和對(duì)端服務(wù)器還分別包括數(shù)據(jù)同步模塊,所述
數(shù)據(jù)同步模塊具體包括數(shù)據(jù)一級(jí)同步模塊、數(shù)據(jù)二級(jí)同步模塊和數(shù)據(jù)三級(jí)同
步模塊,其中,
所述數(shù)據(jù)一級(jí)同步模塊,用于比較所述工作服務(wù)器和所述備份服務(wù)器的本 地存儲(chǔ)數(shù)據(jù)的異同,刪除所述工作服務(wù)器和所述備份服務(wù)器相同的數(shù)據(jù);
所述數(shù)據(jù)二級(jí)同步模塊,用于將所述工作服務(wù)器和所述備份服務(wù)器不同的 數(shù)據(jù)分別拷貝到對(duì)端服務(wù)器;
所述數(shù)據(jù)三級(jí)同步模塊,用于負(fù)責(zé)所述工作服務(wù)器和所述備份服務(wù)器的數(shù) 據(jù)實(shí)時(shí)同步寫(xiě)入本地存儲(chǔ)。
其中,所述資源對(duì)象模塊包括下述資源對(duì)象中的一種或多種
本地服務(wù)器自身的硬件狀態(tài)、網(wǎng)絡(luò)資源、共享存儲(chǔ)資源、數(shù)據(jù)庫(kù)系統(tǒng)、重 要的系統(tǒng)應(yīng)用程序模塊。
10本發(fā)明還提供了一種雙機(jī)備份方法,通過(guò)外部心跳線連接的工作服務(wù)器和 備份服務(wù)器預(yù)先設(shè)置有兩個(gè)系統(tǒng)監(jiān)控模塊、兩個(gè)資源對(duì)象檢測(cè)模塊、資源對(duì)象 模塊和管理模塊,并且兩個(gè)所述系統(tǒng)監(jiān)控模塊通過(guò)內(nèi)部心跳線相連,則所述方
法包括
所述系統(tǒng)監(jiān)控模塊通過(guò)內(nèi)部心跳線與本地服務(wù)器的另外一個(gè)系統(tǒng)監(jiān)控模塊 交換內(nèi)部心跳信息,當(dāng)在預(yù)定時(shí)間內(nèi)未檢測(cè)到對(duì)方發(fā)來(lái)的內(nèi)部心跳信息或檢測(cè) 到標(biāo)記為錯(cuò)誤的心跳信息時(shí),給本地服務(wù)器的管理模塊發(fā)送告警;
所述管理模塊根據(jù)其從所述系統(tǒng)監(jiān)控模塊接收告警的情況判定是否需要執(zhí) 行雙機(jī)資源的切換操作。
進(jìn)一步地,所述管理模塊根據(jù)其從所述系統(tǒng)監(jiān)控模塊接收告警的情況判定 是否需要執(zhí)行雙機(jī)資源的切換操作的步驟具體包括
所述管理模塊根據(jù)其從所述系統(tǒng)監(jiān)控模塊接收告警的情況進(jìn)行判斷
如果兩個(gè)系統(tǒng)監(jiān)控模塊全部出現(xiàn)告警,則執(zhí)行雙機(jī)資源的切換操作;如果 其中一個(gè)系統(tǒng)監(jiān)控模塊出現(xiàn)告警,則執(zhí)行備份操作;如果兩個(gè)系統(tǒng)監(jiān)控模塊全 部沒(méi)有告警,則消除內(nèi)部心跳誤報(bào)故障信息。
進(jìn)一步地,所述方法還包括
所述資源對(duì)象檢測(cè)模塊定時(shí)檢測(cè)資源對(duì)象模塊中的各種資源對(duì)象,并定期 將檢測(cè)資源的狀態(tài)信息發(fā)送給本地服務(wù)器的系統(tǒng)監(jiān)控模塊;
所述系統(tǒng)監(jiān)控模塊定時(shí)檢測(cè)與其連接的資源對(duì)象檢測(cè)模塊發(fā)送來(lái)的檢測(cè)資 源的狀態(tài)信息,當(dāng)在預(yù)定時(shí)間內(nèi)未檢測(cè)到狀態(tài)信息或檢測(cè)到標(biāo)記為錯(cuò)誤的狀態(tài) 信息時(shí),給本地服務(wù)器的管理模塊發(fā)送告警,同時(shí)通過(guò)心跳線向?qū)Χ朔?wù)器的 系統(tǒng)監(jiān)控模塊發(fā)送標(biāo)記為錯(cuò)誤的心跳信息,觸發(fā)對(duì)端服務(wù)器的管理模塊的告警處理流程;
所述本地服務(wù)器的管理模塊根據(jù)其從所述資源對(duì)象;f企測(cè)模塊接收告警的情 況判定是否需要執(zhí)行雙機(jī)資源的切換操作。
進(jìn)一步地,所述管理模塊根據(jù)其從所述資源對(duì)象檢測(cè)模塊接收告警的情況 判定是否需要執(zhí)行雙機(jī)資源的切換操作的步驟具體包括
所述管理模塊根據(jù)其從所述資源對(duì)象檢測(cè)模塊接收告警的情況進(jìn)行判斷
如果兩個(gè)資源對(duì)象檢測(cè)模塊全部出現(xiàn)告警,則執(zhí)行雙機(jī)資源的切換操作; 如果其中一個(gè)資源對(duì)象檢測(cè)模塊出現(xiàn)告警,則執(zhí)行備份操作;如果兩個(gè)資源對(duì) 象檢測(cè)模塊全部沒(méi)有告警,則檢測(cè)是否是資源對(duì)象模塊出現(xiàn)故障,當(dāng)確認(rèn)是是 資源對(duì)象模塊出現(xiàn)故障時(shí),由本地服務(wù)器的系統(tǒng)監(jiān)控模塊通過(guò)心跳線向?qū)Χ讼?統(tǒng)監(jiān)控模塊發(fā)送標(biāo)記為錯(cuò)誤的心跳信息,執(zhí)行雙機(jī)資源的切換操作。
進(jìn)一步地,所述方法還包括
本地服務(wù)器的系統(tǒng)監(jiān)控模塊通過(guò)外部心跳線定時(shí)向?qū)Χ朔?wù)器對(duì)應(yīng)的系統(tǒng) 監(jiān)控模塊發(fā)送心跳信息,并檢測(cè)對(duì)端服務(wù)器的系統(tǒng)監(jiān)控模塊發(fā)來(lái)的心跳信息,
信息時(shí),激發(fā)本地服務(wù)器的管理模塊的告警處理流程;
本地服務(wù)器的管理模塊判斷是單根外部心跳線多根外部心跳線發(fā)生故障 如果是多根外部心跳線發(fā)生故障,則鎖定共享資源;
如果是單根外部心跳線發(fā)生故障,則通過(guò)給兩個(gè)系統(tǒng)監(jiān)控模塊、兩個(gè)資源 對(duì)象檢測(cè)模塊、資源對(duì)象模塊發(fā)送檢測(cè)信息來(lái)進(jìn)一步定位故障信息如果是單 點(diǎn)故障,則執(zhí)行備份操作,否則執(zhí)行雙機(jī)資源的切換操作。
進(jìn)一步地,當(dāng)所述本地服務(wù)器和對(duì)端服務(wù)器還分別設(shè)置有數(shù)據(jù)同步模塊時(shí),所述方法還包括
所述數(shù)據(jù)同步模塊比較所述工作服務(wù)器和所述備份服務(wù)器的本地存儲(chǔ)數(shù)據(jù) 的異同,刪除所述工作服務(wù)器和所述備份服務(wù)器相同的數(shù)據(jù),然后將所述工作 服務(wù)器和所述備份服務(wù)器不同的數(shù)據(jù)分別拷貝到對(duì)端服務(wù)器,最后將所述工作 服務(wù)器和所述備份服務(wù)器的數(shù)據(jù)實(shí)時(shí)同步寫(xiě)入本地存儲(chǔ)。
本發(fā)明有益效果如下本發(fā)明解決了目前可能由于雙機(jī)備份軟件自身故障 而引發(fā)的雙機(jī)資源誤切換;同時(shí)通過(guò)雙系統(tǒng)監(jiān)控模塊引入的雙心跳線設(shè)置,能 夠真正實(shí)現(xiàn)冗余心跳線功能,解決由于單點(diǎn)系統(tǒng)監(jiān)控模塊故障有可能引發(fā)的腦 裂故障問(wèn)題,能夠有效提高整體系統(tǒng)的可靠性和可用性。
本發(fā)明的其他特征和優(yōu)點(diǎn)將在隨后的說(shuō)明書(shū)中闡述,并且,部分的從說(shuō)明 書(shū)中變得顯而易見(jiàn),或者通過(guò)實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可 通過(guò)在所寫(xiě)的說(shuō)明書(shū)、權(quán)利要求書(shū)、以及附圖中所特別指出的結(jié)構(gòu)來(lái)實(shí)現(xiàn)和獲
3曰付。
圖1為現(xiàn)有技術(shù)的雙機(jī)備份系統(tǒng)的結(jié)構(gòu)示意圖; 圖2為本發(fā)明實(shí)施所述雙機(jī)備份系統(tǒng)的結(jié)構(gòu)示意圖; 圖3為本發(fā)明實(shí)施例所述雙機(jī)備份系統(tǒng)中,數(shù)據(jù)同步模塊的結(jié)構(gòu)示意圖; 圖4本發(fā)明實(shí)施例所述方法中,雙機(jī)備份系統(tǒng)處理系統(tǒng)監(jiān)控故障的流程示 意圖5為本發(fā)明實(shí)施例所述方法中,雙機(jī)備份系統(tǒng)處理資源對(duì)象檢測(cè)故障的 流程示意圖。
具體實(shí)施例方式
下面結(jié)合附圖來(lái)具體描述本發(fā)明的優(yōu)先實(shí)施例,其中,附圖構(gòu)成本申請(qǐng)一 部分,并與本發(fā)明的實(shí)施例一起用于闡釋本發(fā)明的原理。
首先結(jié)合附圖2和附圖3對(duì)本發(fā)明實(shí)施例所述系統(tǒng)進(jìn)行詳細(xì)說(shuō)明。 如圖2所示,圖2為本發(fā)明實(shí)施例所述系統(tǒng)的結(jié)構(gòu)示意圖,包括Active 服務(wù)器200 (工作服務(wù)器)和Backup服務(wù)器201 (備份服務(wù)器),其中,Active 服務(wù)器200作為本地服務(wù)器的同時(shí)還作為Backup服務(wù)器201的對(duì)端服務(wù)器,
器,Active服務(wù)器200和Backup服務(wù)器201之間通過(guò)心跳線202和心跳線203 協(xié)調(diào)雙機(jī)。
所述Active服務(wù)器200具體包括系統(tǒng)第一監(jiān)控模塊2001 、系統(tǒng)第二監(jiān)控 模塊2005、資源對(duì)象第一檢測(cè)模塊2002、資源對(duì)象第二檢測(cè)模塊2006、資源對(duì) 象模塊2003、管理模塊2004和數(shù)據(jù)同步模塊2007。同樣,Backup服務(wù)器201 具體包括系統(tǒng)第一監(jiān)控模塊2011、系統(tǒng)第二監(jiān)控模塊2015、資源對(duì)象第一檢 測(cè)模塊2012、資源對(duì)象第二檢測(cè)模塊2016、資源對(duì)象模塊2013、管理模塊2014 和數(shù)據(jù)同步模塊2017。其中,系統(tǒng)第一監(jiān)控模塊2001和系統(tǒng)第一監(jiān)控模塊2011 通過(guò)外部心跳線202交換外部心跳信息,系統(tǒng)第二監(jiān)控;^莫塊2005和系統(tǒng)第二監(jiān) 控模塊2015通過(guò)外部心跳線203交換外部心跳信息,如果其中一個(gè)系統(tǒng)監(jiān)控模 塊異常中斷,則另一個(gè)系統(tǒng)監(jiān)控模塊將會(huì)適時(shí)進(jìn)行處理,從而有效預(yù)防雙機(jī)備 份軟件自身的單點(diǎn)故障。
下面以Active服務(wù)器200為例,對(duì)各個(gè)模塊的功能及實(shí)施過(guò)程進(jìn)行詳細(xì)介紹.
系統(tǒng)第 一監(jiān)控模塊2001 ,負(fù)責(zé)和系統(tǒng)第二監(jiān)控模塊2005通過(guò)內(nèi)部心跳線交換內(nèi)部心跳信息,并定期檢測(cè)系統(tǒng)第二監(jiān)控模塊2005發(fā)來(lái)的內(nèi)部心跳信息,當(dāng) 在預(yù)定時(shí)間內(nèi)未檢測(cè)到系統(tǒng)第二監(jiān)控模塊2005發(fā)來(lái)的心跳信息或接收到標(biāo)記為 錯(cuò)誤的心跳信息時(shí),則給管理模塊2004發(fā)送告警。同時(shí),系統(tǒng)第一監(jiān)控模塊 2001還用于檢測(cè)與其連接的資源對(duì)象第 一檢測(cè)模塊2002發(fā)送的檢測(cè)資源的狀態(tài) 信息,當(dāng)在預(yù)定時(shí)間內(nèi)未檢測(cè)到所述狀態(tài)信息或接收到標(biāo)記為錯(cuò)誤的狀態(tài)信息 時(shí),給管理模塊2004發(fā)送告警,同時(shí)在確定為資源對(duì)象模塊2003出現(xiàn)故障時(shí), 所述系統(tǒng)第一監(jiān)控^ft塊2001向?qū)Χ朔?wù)器(這里為Backup服務(wù)器201 )的系統(tǒng) 第一監(jiān)控模塊2011通過(guò)心跳線發(fā)送標(biāo)記為錯(cuò)誤的心跳信息,觸發(fā)Backup服務(wù) 器201的管理模塊2014的告警處理流程。同時(shí),系統(tǒng)第一監(jiān)控模塊2001還負(fù) 責(zé)定時(shí)通過(guò)外部心跳線202向Backup服務(wù)器201的系統(tǒng)第一監(jiān)控模塊2011發(fā) 送心跳信息通訊,協(xié)調(diào)運(yùn)行Active服務(wù)器200與Backup服務(wù)器201之間的關(guān)系, 并定時(shí)檢測(cè)Backup服務(wù)器201的系統(tǒng)監(jiān)控模塊發(fā)來(lái)的外部心跳信息,當(dāng)在預(yù)定 時(shí)間內(nèi)未檢測(cè)到Backup服務(wù)器201發(fā)來(lái)的外部心跳信息或接收到標(biāo)記為錯(cuò)誤的 心跳信息時(shí),說(shuō)明Backup服務(wù)器201可能出現(xiàn)故障,從而激發(fā)Active服務(wù)器 200的管理才莫塊2004和Backup服務(wù)器201的管理模塊2014進(jìn)行相應(yīng)處理。
系統(tǒng)第二監(jiān)控模塊2005,與系統(tǒng)第一監(jiān)控模塊2001的任務(wù)類似,負(fù)責(zé)和系 統(tǒng)第一監(jiān)控模塊2001通過(guò)內(nèi)部心跳線交換內(nèi)部心跳信息,并定期檢測(cè)系統(tǒng)第一 監(jiān)控模塊2001發(fā)來(lái)的內(nèi)部心跳信息,當(dāng)在預(yù)定時(shí)間內(nèi)未檢測(cè)到系統(tǒng)第一監(jiān)控模 塊2001發(fā)來(lái)的心跳信息或接收到標(biāo)記為錯(cuò)誤的心跳信息時(shí),則給管理模塊2004 發(fā)送告警。同時(shí),系統(tǒng)第二監(jiān)控模塊2005還用于檢測(cè)與其連接的資源對(duì)象第二 檢測(cè)模塊2006發(fā)送的檢測(cè)資源的狀態(tài)信息,當(dāng)在預(yù)定時(shí)間內(nèi)未檢測(cè)到所述狀態(tài) 信息或接收到標(biāo)記為錯(cuò)誤的狀態(tài)信息時(shí),給管理模塊2004發(fā)送告警,同時(shí)在確定為資源對(duì)象模塊2003出現(xiàn)故障時(shí),所述系統(tǒng)第二監(jiān)控模塊2005向Backup服 務(wù)器201的系統(tǒng)第一監(jiān)控模塊2015通過(guò)心跳線發(fā)送標(biāo)記為錯(cuò)誤的心跳信息,觸 發(fā)Backup服務(wù)器201的管理模塊2014的告警處理流程。同時(shí),系統(tǒng)第二監(jiān)控 模塊2005還負(fù)責(zé)定時(shí)通過(guò)心跳線203向?qū)Χ朔?wù)器(這里為Active服務(wù)器200 ) 的系統(tǒng)第一監(jiān)控模塊2011發(fā)送心跳信息通訊,協(xié)調(diào)運(yùn)行Active服務(wù)器200與 Backup服務(wù)器201之間的關(guān)系,并定時(shí)檢測(cè)Active服務(wù)器200的系統(tǒng)監(jiān)控模塊 發(fā)來(lái)的外部心跳信息,當(dāng)在預(yù)定時(shí)間內(nèi)未檢測(cè)到Active服務(wù)器200發(fā)來(lái)的心跳 信息時(shí)或接收到標(biāo)記為錯(cuò)誤的心跳信息,說(shuō)明Active服務(wù)器200可能出現(xiàn)故障, 從而激發(fā)Active服務(wù)器201的管理模塊2004和Backup服務(wù)器201的管理模塊 2014進(jìn)行相應(yīng)處理。
資源對(duì)象第一檢測(cè)模塊2002,作為一個(gè)軟件監(jiān)視模塊,主要任務(wù)是用來(lái)監(jiān) 測(cè)資源對(duì)象模塊,例如一些重要的硬件和軟件資源的可用性,包括數(shù)據(jù)庫(kù)服務(wù) 或其他應(yīng)用服務(wù)進(jìn)程等,并向系統(tǒng)第 一監(jiān)控模塊2001發(fā)送檢測(cè)資源的狀態(tài)信息, 報(bào)告服務(wù)的狀態(tài)。如果系統(tǒng)第一監(jiān)控模塊2001在預(yù)定時(shí)間內(nèi)接收到資源對(duì)象第 一檢測(cè)模塊2002發(fā)來(lái)的信息,就認(rèn)為此服務(wù)是正常的。如果信息消失或發(fā)出error 信息,系統(tǒng)第一監(jiān)控模塊2001會(huì)根據(jù)接受到的檢測(cè)信息來(lái)確定資源對(duì)象第一檢 測(cè)模塊2002所檢測(cè)的資源服務(wù)是否正常,進(jìn)而執(zhí)行相應(yīng)的處理動(dòng)作。同時(shí)資源 對(duì)象第一檢測(cè)模塊2002作為資源對(duì)象第二檢測(cè)模塊2006的冗余備份,能夠有 效預(yù)防雙機(jī)備份軟件在資源對(duì)象檢測(cè)模塊方面的單點(diǎn)故障。
資源對(duì)象第二檢測(cè)模塊2006,也是作為一個(gè)軟件監(jiān)視模塊,主要任務(wù)和資 源對(duì)象第一檢測(cè)模塊2002的主要任務(wù)類似,主要任務(wù)是用來(lái)監(jiān)測(cè)資源對(duì)象模塊。 如果系統(tǒng)第二監(jiān)控模塊2005在指定的時(shí)間內(nèi)接收到資源對(duì)象第二檢測(cè)模塊2006發(fā)來(lái)的信息,就認(rèn)為此服務(wù)是正常的。如果信息消失或發(fā)出error信息,系統(tǒng)第 二監(jiān)控模塊2005會(huì)根據(jù)接受到的檢測(cè)信息來(lái)確定資源對(duì)象第二檢測(cè)模塊2006 所檢測(cè)的資源服務(wù)是否正常,進(jìn)而執(zhí)行相應(yīng)的處理動(dòng)作。同時(shí)資源對(duì)象第二枱r 測(cè)模塊2006作為資源對(duì)象第一檢測(cè)模塊2002的冗余備份,能夠有效預(yù)防雙機(jī) 備份軟件在資源對(duì)象檢測(cè)模塊方面的單點(diǎn)故障。
資源對(duì)象模塊,是資源對(duì)象第一檢測(cè)模塊2002和資源對(duì)象第二檢測(cè)模塊 2006監(jiān)測(cè)的硬件和軟件資源,包括不限于如下內(nèi)容服務(wù)器自身硬件狀態(tài),包 括硬盤(pán)、內(nèi)存、網(wǎng)卡等狀態(tài);網(wǎng)絡(luò)資源,例如浮動(dòng)IP地址;共享存儲(chǔ)資源,例 如-茲陣;凝:據(jù)庫(kù)系統(tǒng),例如Oracle、 Sybase、 SQL、 Informix等;重要的系統(tǒng)應(yīng) 用程序模塊,例如WWW服務(wù)、FTP服務(wù)等。
管理模塊2004,負(fù)責(zé)接收系統(tǒng)第一監(jiān)控模塊2001和/或系統(tǒng)第二監(jiān)控模塊 2005發(fā)送的告警,并根據(jù)接收到告警的情況判斷兩個(gè)系統(tǒng)監(jiān)控模塊或者兩個(gè)資 源對(duì)象檢測(cè)模塊是否全部告警,如果兩個(gè)系統(tǒng)監(jiān)控模塊或者兩個(gè)資源對(duì)象檢測(cè) 模塊全部出現(xiàn)告警,則執(zhí)行雙機(jī)資源的切換操作;如果其中一個(gè)系統(tǒng)監(jiān)控模塊 或者其中一個(gè)資源對(duì)象檢測(cè)模塊出現(xiàn)告警,則執(zhí)行備份操作;如果兩個(gè)系統(tǒng)監(jiān)
控模塊全部沒(méi)有告警,則消除內(nèi)部心跳誤報(bào)故障信息;如果兩個(gè)資源對(duì)象檢測(cè) 模塊全部沒(méi)有告警,則檢測(cè)是否是資源對(duì)象模塊出現(xiàn)故障,當(dāng)確認(rèn)是是資源對(duì) 象模塊出現(xiàn)故障時(shí),執(zhí)行雙機(jī)資源的切換操作。
同時(shí),當(dāng)Active服務(wù)器200接收不到Backup服務(wù)器發(fā)來(lái)的外部心跳信息或 接收到標(biāo)記為錯(cuò)誤的心跳信息時(shí),說(shuō)明Backup服務(wù)器201可能發(fā)生故障,此時(shí) Backup服務(wù)器201的系統(tǒng)監(jiān)控模塊2011負(fù)責(zé)向管理模塊2014發(fā)送告警信號(hào), 由Backup服務(wù)器201的管理模塊2014判斷是單根心跳線還是多根心跳線(本發(fā)明實(shí)施例中為兩根)發(fā)生故障如果兩根外部心跳線202和203都發(fā)生故障,為了保證數(shù)據(jù)完整性,避免腦裂現(xiàn)象,則需要鎖定共享資源,避免數(shù)據(jù)被Active服務(wù)器200和Back服務(wù)器201同時(shí)訪問(wèn)。如果單根外部心跳線發(fā)生故障,所述管理模塊2004給兩個(gè)系統(tǒng)監(jiān)控模塊、兩個(gè)資源對(duì)象檢測(cè)模塊、資源對(duì)象模塊分別發(fā)送檢測(cè)信息來(lái)定位故障信息,收到檢測(cè)信息的模塊如果沒(méi)有發(fā)生故障,則給管理模塊2004回復(fù)響應(yīng)信息,管理模塊2004根據(jù)有無(wú)收到相應(yīng)信息的情況來(lái)判斷具體的故障源,如果是系統(tǒng)監(jiān)控模塊或資源對(duì)象檢測(cè)模塊的單點(diǎn)故障,由工作正常的系統(tǒng)監(jiān)控模塊接管出現(xiàn)故障的系統(tǒng)監(jiān)控模塊的任務(wù);如果是兩個(gè)資源對(duì)象檢測(cè)模塊或者兩個(gè)系統(tǒng)監(jiān)控模塊或者資源對(duì)象模塊發(fā)生故障,則管理模塊觸發(fā)本地系統(tǒng)監(jiān)控模塊通過(guò)心跳線向?qū)Χ吮O(jiān)控模塊發(fā)送標(biāo)記為錯(cuò)誤的心跳信息,則將雙機(jī)系統(tǒng)的資源從Active服務(wù)器切換到Back服務(wù)器。
同樣,當(dāng)Backup服務(wù)器201接收不到Active服務(wù)器200發(fā)來(lái)的外部心跳信息或接收到標(biāo)記為錯(cuò)誤的心跳信息時(shí),說(shuō)明Active服務(wù)器200可能發(fā)生故障,此時(shí)Active服務(wù)器200的系統(tǒng)監(jiān)控模塊2001負(fù)責(zé)向Active服務(wù)器200的管理模塊2004發(fā)送告警信號(hào),由Active服務(wù)器200的管理模塊2004判斷是單根心跳線還是多根心跳線(本發(fā)明實(shí)施例中為兩根)發(fā)生故障,具體參照上面的描述。
本發(fā)明實(shí)施例所述系統(tǒng)中,所述數(shù)據(jù)同步模塊2007和數(shù)據(jù)同步模塊2017通過(guò)數(shù)據(jù)同步通道204傳遞數(shù)據(jù),分別包括三級(jí)數(shù)據(jù)同步模塊。
如圖3所示,圖3為本發(fā)明實(shí)施例所述雙機(jī)備份系統(tǒng)內(nèi)部數(shù)據(jù)同步模塊的結(jié)構(gòu)示意圖,2007代表Active服務(wù)器的數(shù)據(jù)同步模塊,具體包括的三級(jí)數(shù)據(jù)同步模塊分別為數(shù)據(jù)一級(jí)同步模塊3001、數(shù)據(jù)二級(jí)同步模塊3002和數(shù)據(jù)三級(jí)同步模塊3003; 2017代表Backup服務(wù)器的數(shù)據(jù)同步模塊,具體包括的三級(jí)數(shù)據(jù)
18同步模塊分別為數(shù)據(jù)一級(jí)同步模塊3011、數(shù)據(jù)二級(jí)同步模塊3012和數(shù)據(jù)三級(jí)同步模塊3013。其中,
數(shù)據(jù)一級(jí)同步模塊3001和數(shù)據(jù)一級(jí)同步模塊3011,負(fù)責(zé)比較即將寫(xiě)入兩端主機(jī)的本地存儲(chǔ)數(shù)據(jù)的異同,刪除兩端主機(jī)數(shù)據(jù)的相同之處;
數(shù)據(jù)二級(jí)同步模塊3002和數(shù)據(jù)二級(jí)同步模塊3012,負(fù)責(zé)異步拷貝兩端主機(jī)數(shù)據(jù)的不同之處,確保兩端主機(jī)存儲(chǔ)數(shù)據(jù)的一致性;
數(shù)據(jù)三級(jí)同步模塊3003和據(jù)三級(jí)同步模塊301負(fù)責(zé)兩端數(shù)據(jù)能夠?qū)崟r(shí)同步寫(xiě)入兩端主機(jī)的本地存儲(chǔ)。
下面結(jié)合附圖4和附圖5對(duì)利用本發(fā)明實(shí)施例所述系統(tǒng)進(jìn)行雙機(jī)備份的方法進(jìn)4于-洋細(xì)"i兌明。
本發(fā)明實(shí)施例所述方法主要包括系統(tǒng)監(jiān)控模塊通過(guò)內(nèi)部心跳線與本地服務(wù)器的另外一個(gè)系統(tǒng)監(jiān)控模塊交換內(nèi)部心跳信息,當(dāng)在預(yù)定時(shí)間內(nèi)未檢測(cè)到對(duì)方發(fā)來(lái)的內(nèi)部心跳信息時(shí),給本地服務(wù)器的管理模塊發(fā)送告警;管理模塊根據(jù)其從所述系統(tǒng)監(jiān)控模塊接收告警的情況判定是否需要執(zhí)行雙機(jī)資源的切換操作。具體如圖4所示,圖4為雙機(jī)備份系統(tǒng)處理系統(tǒng)監(jiān)控故障的流程示意圖,可以包括以下步驟
401: Active服務(wù)器端正常運(yùn)行;
402:系統(tǒng)第一監(jiān)控模塊2001和系統(tǒng)第二監(jiān)控模塊2005交換內(nèi)部心跳信息;403:系統(tǒng)監(jiān)控模塊判斷對(duì)方的內(nèi)部心跳信號(hào)是否正常;如果正常,則返回
步驟401正常運(yùn)行;如果不正常,則執(zhí)行步驟404;
404:當(dāng)其中一個(gè)系統(tǒng)監(jiān)控模塊檢測(cè)不到對(duì)方內(nèi)部心跳信息時(shí),則向管理模
塊2004發(fā)送內(nèi)部告警信息,同時(shí)執(zhí)行步驟405和步驟407;405:管理模塊2004判斷系統(tǒng)第一監(jiān)控模塊2001是否正常,如果正常,則執(zhí)行步驟409,否則執(zhí)行步驟406;
406:管理模塊2004確認(rèn)系統(tǒng)第一監(jiān)控模塊2001出現(xiàn)故障,執(zhí)行步驟409;
407:管理模塊2004判斷系統(tǒng)第二監(jiān)控模塊2005是否正常,如果正常,則執(zhí)行步驟409,否則執(zhí)行步驟408;
408:管理模塊2004確認(rèn)系統(tǒng)第二監(jiān)控模塊2005出現(xiàn)故障;
409:管理模塊判斷Active的兩個(gè)系統(tǒng)監(jiān)控模塊是否全部告警?如果兩個(gè)系統(tǒng)監(jiān)控模塊全部出現(xiàn)告警,則執(zhí)行步驟410;如果只有1個(gè)系統(tǒng)監(jiān)控模塊出現(xiàn)告警,則執(zhí)行步驟412;如果兩個(gè)系統(tǒng)監(jiān)控模塊都沒(méi)有出現(xiàn)告警,則執(zhí)行步驟419;
410:當(dāng)兩個(gè)系統(tǒng)監(jiān)控^t塊全部告警時(shí),管理程序向Backup服務(wù)器的管理模塊2014發(fā)出請(qǐng)求切換請(qǐng)求,并執(zhí)行步驟411;
411:雙機(jī)備份系統(tǒng)將其控制的資源從Active服務(wù)器切換到Backup服務(wù)器,本流程結(jié)束;
412:由于還保持1個(gè)系統(tǒng)監(jiān)控模塊正常工作,所以雙機(jī)備份系統(tǒng)仍然能夠保持正常運(yùn)行;
413:正常工作的系統(tǒng)監(jiān)控模塊接管出現(xiàn)告警的系統(tǒng)監(jiān)控模塊的任務(wù),和Back服務(wù)器的系統(tǒng)監(jiān)控模塊保持心跳信號(hào);
414:正常工作的系統(tǒng)監(jiān)控模塊嘗試重新啟動(dòng)出現(xiàn)故障的系統(tǒng)監(jiān)控模塊和對(duì)應(yīng)的資源對(duì)象檢測(cè)模塊;
415:正常工作的系統(tǒng)監(jiān)控模塊判斷重啟故障系統(tǒng)監(jiān)控程序是否成功?如果重啟系統(tǒng)監(jiān)控程序成功,則執(zhí)行步驟416;如果重啟系統(tǒng)監(jiān)控程序失敗,則執(zhí)行步驟417;416:恢復(fù)正常后的系統(tǒng)監(jiān)控模塊,重新接管和Backup服務(wù)器相應(yīng)的系統(tǒng)監(jiān)控模塊心跳的發(fā)送任務(wù),并執(zhí)行步驟420;
417:雙機(jī)系統(tǒng)仍保持正常工作,但管理模塊提示用戶處理故障;
418:用戶手工恢復(fù)出現(xiàn)故障的系統(tǒng)監(jiān)控程序,執(zhí)行步驟420;
419:當(dāng)兩個(gè)系統(tǒng)檢測(cè)模塊全部沒(méi)有告警時(shí),雙機(jī)備份系統(tǒng)恢復(fù)正常工作,管理模塊消除內(nèi)部心跳誤報(bào)故障信息,并執(zhí)行步驟420;
420: Active服務(wù)器端恢復(fù)正常,本流程結(jié)束。
本發(fā)明實(shí)施例所述方法還包括資源對(duì)象檢測(cè)模塊定時(shí)檢測(cè)資源對(duì)象模塊中的各種資源對(duì)象,并定期將檢測(cè)資源的狀態(tài)信息發(fā)送給本地服務(wù)器的系統(tǒng)監(jiān)控模塊;系統(tǒng)監(jiān)控模塊定時(shí)檢測(cè)與其連接的資源對(duì)象模塊發(fā)送來(lái)的檢測(cè)資源的狀態(tài)信息,當(dāng)在預(yù)定時(shí)間內(nèi)未檢測(cè)到狀態(tài)信息,或者在預(yù)定時(shí)間內(nèi)檢測(cè)到狀態(tài)信息,并確定所述狀態(tài)信息錯(cuò)誤時(shí),給本地服務(wù)器的管理模塊發(fā)送告警,同時(shí)向?qū)Χ讼到y(tǒng)監(jiān)控模塊通過(guò)心跳線發(fā)送標(biāo)記為錯(cuò)誤的心跳信息,觸發(fā)對(duì)端管理模塊的告警處理流程;管理模塊根據(jù)其從所述資源對(duì)象檢測(cè)模塊接收告警的情況判定是否需要執(zhí)行雙機(jī)資源的切換操作。具體如圖5所示,圖5雙機(jī)備份系統(tǒng)處理資源對(duì)象檢測(cè)故障的流程示意圖,包括以下步驟
501: Active服務(wù)器端正常運(yùn)行;
502:資源對(duì)象檢測(cè)模塊定時(shí)向與其相連的系統(tǒng)監(jiān)控模塊發(fā)送檢測(cè)資源的狀態(tài)^f呂息;
503:系統(tǒng)監(jiān)控程序能否接收到資源對(duì)象檢測(cè)模塊發(fā)來(lái)的狀態(tài)信息?如果能夠接收到,則執(zhí)行步驟504,否則執(zhí)行步驟505;
504:系統(tǒng)監(jiān)控程序接收到的狀態(tài)信息是否正確?如果正確,則執(zhí)行步驟501,否則執(zhí)行步驟506;
505:系統(tǒng)監(jiān)控模塊接收不到資源對(duì)象檢測(cè)模塊發(fā)出的狀態(tài)信息,向管理模塊2004發(fā)送內(nèi)部告警信息,同時(shí)執(zhí)行步驟507和步驟509;
506:系統(tǒng)監(jiān)控程序確認(rèn)資源對(duì)象檢測(cè)模塊出現(xiàn)故障時(shí),系統(tǒng)監(jiān)控模塊向管理模塊2004發(fā)送內(nèi)部告警信息,執(zhí)行步驟511;
507:管理模塊2004判斷資源對(duì)象第一檢測(cè)模塊2002是否正常?如果檢測(cè)結(jié)果顯示正常,則執(zhí)行步驟5U,否則執(zhí)行步驟508;
508:管理模塊確認(rèn)資源對(duì)象第一檢測(cè)模塊2002出現(xiàn)故障,并執(zhí)行步驟511;
509:管理模塊判斷資源對(duì)象第二檢測(cè)模塊是否正常?如果檢測(cè)結(jié)果顯示正常,則執(zhí)行步驟511,否則執(zhí)行步驟510;
510:管理模塊確認(rèn)資源對(duì)象第二檢測(cè)模塊出現(xiàn)故障,并執(zhí)行步驟511;
511:管理模塊判斷Active的兩個(gè)資源對(duì)象檢測(cè)模塊是否全部告警?如果全部出現(xiàn)告警,則執(zhí)行步驟512;如果只有1個(gè)資源對(duì)象檢測(cè)程序出現(xiàn)告警,則執(zhí)行步驟514;如果兩都沒(méi)有出現(xiàn)告警,則執(zhí)行步驟519;
512:兩個(gè)資源對(duì)象檢測(cè)模塊均出現(xiàn)故障,管理模塊2004向Backup服務(wù)器的管理模塊2014發(fā)出請(qǐng)求切換請(qǐng)求;
513:雙機(jī)備份系統(tǒng)控制的資源從Active服務(wù)器切換到Backup服務(wù)器,本流程結(jié)束;
514:由于還保持1個(gè)資源對(duì)象檢測(cè)軟件正常工作,所以雙機(jī)備份系統(tǒng)仍然能夠保持正常運(yùn)行;
515:正常工作的資源對(duì)象檢測(cè)模塊接管出現(xiàn)故障的資源對(duì)象檢測(cè)模塊的任
務(wù);516:正常工作的資源對(duì)象檢測(cè)模塊嘗試重新啟動(dòng)出現(xiàn)故障的資源對(duì)象檢測(cè)模塊;
517:重啟資源對(duì)象檢測(cè)模塊是否成功?如果成功,則執(zhí)行步驟518,否則執(zhí)行步驟522;
518:資源對(duì)象檢測(cè)模塊重新接管原先的任務(wù),并執(zhí)行步驟526;
519:當(dāng)兩個(gè)資源對(duì)象檢測(cè)模塊全部沒(méi)有告警時(shí),管理模塊檢測(cè)Active服務(wù)器的資源對(duì)象模塊2003是否正常?如果正常,則執(zhí)行步驟524,否則執(zhí)行步驟520;
520:確認(rèn)是Active服務(wù)器資源對(duì)象模塊出現(xiàn)故障,管理模塊通過(guò)本地服務(wù)器的系統(tǒng)監(jiān)控模塊和Backup服務(wù)器的系統(tǒng)監(jiān)控模塊向Backup服務(wù)器的管理模塊發(fā)出請(qǐng)求切換請(qǐng)求;
521:雙機(jī)備份系統(tǒng)控制的資源從Active服務(wù)器切換到Backup服務(wù)器,本流程結(jié)束;
522:雙機(jī)系統(tǒng)仍保持正常工作,但管理模塊提示用戶處理故障;
523:用戶手工恢復(fù)出現(xiàn)故障的資源對(duì)象檢測(cè)模塊,執(zhí)行步驟526;
524:確認(rèn)是系統(tǒng)監(jiān)控程序誤報(bào)故障;
525:管理模塊消除內(nèi)部告警信息,并執(zhí)行步驟526;
526: Active服務(wù)器恢復(fù)正常,本流程結(jié)束。
本發(fā)明實(shí)施例所述方法還包括:Active服務(wù)器200的系統(tǒng)第一監(jiān)控模塊2001通過(guò)外部心跳線202定時(shí)向?qū)Χ朔?wù)器對(duì)應(yīng)的系統(tǒng)監(jiān)控模塊發(fā)送心跳信息,并檢測(cè)對(duì)端服務(wù)器的系統(tǒng)監(jiān)控模塊發(fā)來(lái)的心跳信息,當(dāng)在預(yù)定時(shí)間內(nèi)未檢測(cè)對(duì)端服務(wù)器發(fā)來(lái)的心跳信息或接收到標(biāo)記為錯(cuò)誤的心跳信息時(shí),給Active服務(wù)器200的管理模塊發(fā)送外部告警;同樣,Active服務(wù)器200的系統(tǒng)第一監(jiān)控模塊2005通過(guò)外部心跳線203定時(shí)向?qū)Χ朔?wù)器對(duì)應(yīng)的系統(tǒng)監(jiān)控模塊發(fā)送心跳信息,并檢測(cè)對(duì)端服務(wù)器的系統(tǒng)監(jiān)控模塊發(fā)來(lái)的心跳信息,當(dāng)在預(yù)定時(shí)間內(nèi)未檢測(cè)對(duì)端服務(wù)器發(fā)來(lái)的心跳信息或接收到標(biāo)記為錯(cuò)誤的心跳信息時(shí),給Active服務(wù)器200的管理模塊發(fā)送外部告警;
所述管理模塊根據(jù)所述系統(tǒng)第一監(jiān)控模塊2001和/或系統(tǒng)第二監(jiān)控模塊2005發(fā)來(lái)的外部告警進(jìn)行判斷如果是兩條外部心跳線都發(fā)生故障,則鎖定共享資源;如果是單條外部心跳線發(fā)生故障,則所述管理模塊給Active服務(wù)器200的系統(tǒng)第一監(jiān)控模塊2001、系統(tǒng)第二監(jiān)控模塊2005、第一資源對(duì)象檢測(cè)模塊2002、第二資源對(duì)象檢測(cè)模塊2006及資源對(duì)象模塊2003發(fā)送檢測(cè)信息來(lái)定位故障信息,如果是兩個(gè)系統(tǒng)監(jiān)控模塊之一或兩個(gè)資源對(duì)象檢測(cè)模塊之一 的單點(diǎn)故障,則執(zhí)行備份操作;如果是兩個(gè)系統(tǒng)監(jiān)控模塊或者兩個(gè)資源對(duì)象檢測(cè)模塊或者資源對(duì)象模塊發(fā)生故障,則執(zhí)行雙機(jī)資源的切換操作,將雙機(jī)系統(tǒng)的資源從Active服務(wù)器200切換到Back服務(wù)器201 。
以上僅以Active200服務(wù)器為例,對(duì)利用雙機(jī)備份系統(tǒng)進(jìn)行雙機(jī)備份的方法進(jìn)行了說(shuō)明,實(shí)際上,本領(lǐng)域普通技術(shù)人員應(yīng)該知道,在整個(gè)雙機(jī)備份系統(tǒng)中,
當(dāng)系統(tǒng)發(fā)生故障時(shí)自動(dòng)切換到對(duì)端服務(wù)器。對(duì)于Backup服務(wù)器201的具體過(guò)程,請(qǐng)參照Active服務(wù)器200的處理描述,此處不再贅述。
當(dāng)Active服務(wù)器200和Backup服務(wù)器201中分別設(shè)置有數(shù)據(jù)同步模塊時(shí),所述方法還包括數(shù)據(jù)同步模塊比較Active服務(wù)器200和Backup服務(wù)器201的本地存儲(chǔ)數(shù)據(jù)的異同,刪除Active服務(wù)器200和Backup服務(wù)器201相同的數(shù)據(jù),然后將Active服務(wù)器200和Backup服務(wù)器201不同的數(shù)據(jù)分別拷貝到對(duì)端服務(wù)器,最后將Active服務(wù)器200和Backup服務(wù)器201的數(shù)據(jù)實(shí)時(shí)同步寫(xiě)入本地存儲(chǔ)。例如,Active服務(wù)器200中存儲(chǔ)的數(shù)據(jù)為a、 b、 c, Backup服務(wù)器201中存儲(chǔ)的數(shù)據(jù)為b、 c、 d,此時(shí)Active服務(wù)器200的數(shù)據(jù)同步模塊比較Active服務(wù)器200和Backup服務(wù)器201的本地存儲(chǔ)數(shù)據(jù)的異同,將數(shù)據(jù)b和c鄰'J除,并將數(shù)據(jù)a拷貝到Backup服務(wù)器201的內(nèi)存中;同理,Backup服務(wù)器201的數(shù)據(jù)同步模塊比較Active服務(wù)器200和Backup服務(wù)器201的本地存儲(chǔ)數(shù)據(jù)的異同,將將數(shù)據(jù)b和c刪除,并將數(shù)據(jù)d拷貝到Active服務(wù)器200的內(nèi)存中,最后,Active服務(wù)器200將Backup服務(wù)器201拷過(guò)來(lái)的數(shù)據(jù)d和刪除的數(shù)據(jù)b和c寫(xiě)入保存,同時(shí),Backup服務(wù)器201將Active服務(wù)器200拷貝過(guò)來(lái)的數(shù)據(jù)a和刪除的數(shù)據(jù)b和c寫(xiě)入保存,這樣,Active服務(wù)器200和Backup服務(wù)器201的本地存儲(chǔ)數(shù)據(jù)就都為相同的了。
綜上所述,本發(fā)明實(shí)施例提供了一種雙機(jī)備份系統(tǒng)及方法,能夠支持軟雙機(jī)工作模式,支持兩端數(shù)據(jù)的實(shí)時(shí)同步,并且能夠有效避免系統(tǒng)監(jiān)控模塊和資源對(duì)象檢測(cè)模塊的單點(diǎn)故障隱患,解決目前可能由于雙機(jī)備份軟件自身故障而引發(fā)的雙機(jī)資源誤切換;同時(shí)通過(guò)雙系統(tǒng)監(jiān)控模塊引入的雙心跳線設(shè)置,能夠真正實(shí)現(xiàn)冗余心跳線功能,解決由于單點(diǎn)系統(tǒng)監(jiān)控模塊故障有可能引發(fā)的腦裂故障問(wèn)題,能夠有效提高整體系統(tǒng)的可靠性和可用性。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求書(shū)的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1、一種雙機(jī)備份系統(tǒng),包括通過(guò)外部心跳線連接的工作服務(wù)器和備份服務(wù)器,其特征在于,所述工作服務(wù)器和備份服務(wù)器分別包括兩個(gè)系統(tǒng)監(jiān)控模塊、兩個(gè)資源對(duì)象檢測(cè)模塊、資源對(duì)象模塊和管理模塊,其中,所述系統(tǒng)監(jiān)控模塊,用于通過(guò)內(nèi)部心跳線與本地服務(wù)器的另外一個(gè)系統(tǒng)監(jiān)控模塊互相監(jiān)控,當(dāng)在預(yù)定時(shí)間內(nèi)未檢測(cè)到對(duì)方發(fā)來(lái)的心跳信息或檢測(cè)到標(biāo)記為錯(cuò)誤的心跳信息時(shí),給本地服務(wù)器的管理模塊發(fā)送告警;所述系統(tǒng)監(jiān)控模塊同時(shí)還用于檢測(cè)與其連接的資源對(duì)象檢測(cè)模塊發(fā)送的檢測(cè)資源的狀態(tài)信息,當(dāng)在預(yù)定時(shí)間內(nèi)未檢測(cè)到所述狀態(tài)信息或檢測(cè)到標(biāo)記為錯(cuò)誤的狀態(tài)信息時(shí),給本地服務(wù)器的管理模塊發(fā)送告警,并在確定為資源對(duì)象模塊出現(xiàn)故障時(shí),通過(guò)外部心跳線向?qū)Χ朔?wù)器的系統(tǒng)監(jiān)控模塊發(fā)送標(biāo)記為錯(cuò)誤的心跳信息,觸發(fā)對(duì)端服務(wù)器的管理模塊的告警處理流程;所述資源對(duì)象模塊,作為本地服務(wù)器的另外一個(gè)資源對(duì)象檢測(cè)模塊的備份,用于檢測(cè)資源對(duì)象模塊中的各種資源對(duì)象,并定期將檢測(cè)資源的狀態(tài)信息發(fā)送給本地服務(wù)器的系統(tǒng)監(jiān)控模塊;所述管理模塊,用于根據(jù)其接收告警的情況判定是否需要執(zhí)行雙機(jī)資源的切換操作;所述資源對(duì)象模塊,用于提供本地服務(wù)器的各種資源對(duì)象。
2、 根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述管理模塊具體用于,根 據(jù)收到的告警判斷兩個(gè)系統(tǒng)監(jiān)控模塊或者兩個(gè)資源對(duì)象檢測(cè)模塊是否全部告 警,如果兩個(gè)系統(tǒng)監(jiān)控模塊或者兩個(gè)資源對(duì)象檢測(cè)模塊全部出現(xiàn)告警,則執(zhí)行 雙機(jī)資源的切換操作;如果其中一個(gè)系統(tǒng)監(jiān)控模塊或者其中一個(gè)資源對(duì)象檢測(cè) 模塊出現(xiàn)告警,則執(zhí)行備份操作;如果兩個(gè)系統(tǒng)監(jiān)控模塊全部沒(méi)有告警,則消除內(nèi)部心跳誤報(bào)故障信息;如果兩個(gè)資源對(duì)象檢測(cè)模塊全部沒(méi)有告警,則檢測(cè) 是否是資源對(duì)象模塊出現(xiàn)故障,當(dāng)確認(rèn)是是資源對(duì)象模塊出現(xiàn)故障時(shí),執(zhí)行雙 機(jī)資源的切換操作。
3、根據(jù)權(quán)利要求1或2所述的系統(tǒng),其特征在于,兩個(gè)所述系統(tǒng)監(jiān)控模塊 還用于,分別通過(guò)外部心跳線定時(shí)向?qū)Χ朔?wù)器對(duì)應(yīng)的系統(tǒng)監(jiān)控模塊發(fā)送心跳 信息,并檢測(cè)對(duì)端服務(wù)器的系統(tǒng)監(jiān)控模塊發(fā)來(lái)的心跳信息,當(dāng)在預(yù)定時(shí)間內(nèi)未 檢測(cè)到對(duì)端服務(wù)器發(fā)來(lái)的心跳信息或檢測(cè)到標(biāo)記為錯(cuò)誤的心跳信息時(shí),則激發(fā) 本地服務(wù)器的管理模塊進(jìn)行告警處理;所述本地服務(wù)器的管理模塊用于結(jié)合所述資源對(duì)象模塊的運(yùn)行狀態(tài)和共 享資源的鎖定狀態(tài),判斷是否需要執(zhí)行雙機(jī)資源的切換操作。
4、根據(jù)權(quán)利要求3所述的系統(tǒng),其特征在于,所述管理模塊具體用于, 判斷是單根外部心跳線還是多根外部心跳線發(fā)生故障如果是多根外部心跳線 發(fā)生故障,則鎖定共享資源;如果是單根外部心跳線發(fā)生故障,所述管理模塊 通過(guò)給兩個(gè)系統(tǒng)監(jiān)控模塊、兩個(gè)資源對(duì)象檢測(cè)模塊、資源對(duì)象模塊發(fā)送檢測(cè)信 息來(lái)進(jìn)一步定位故障信息如果是單點(diǎn)故障,則執(zhí)行備份操作,否則執(zhí)行雙機(jī) 資源的切換操作。
5、根據(jù)權(quán)利要求1或2所述的系統(tǒng),其特征在于,所述本地服務(wù)器和對(duì)端 服務(wù)器還分別包括數(shù)據(jù)同步模塊,所述數(shù)據(jù)同步模塊具體包括數(shù)據(jù)一級(jí)同步 模塊、數(shù)據(jù)二級(jí)同步模塊和數(shù)據(jù)三級(jí)同步模塊,其中,所述數(shù)據(jù)一級(jí)同步模塊,用于比較所述工作服務(wù)器和所述備份服務(wù)器的本 地存儲(chǔ)數(shù)據(jù)的異同,刪除所述工作服務(wù)器和所述備份服務(wù)器相同的數(shù)據(jù);所述數(shù)據(jù)二級(jí)同步模塊,用于將所述工作服務(wù)器和所述備份服務(wù)器不同的數(shù)據(jù)分別拷貝到對(duì)端服務(wù)器;所述數(shù)據(jù)三級(jí)同步模塊,用于負(fù)責(zé)所述工作服務(wù)器和所述備份服務(wù)器的數(shù) 據(jù)實(shí)時(shí)同步寫(xiě)入本地存儲(chǔ)。
6、 根據(jù)權(quán)利要求l或2所述的系統(tǒng),其特征在于,所述資源對(duì)象模塊包括 下述資源對(duì)象中的 一種或多種本地服務(wù)器自身的硬件狀態(tài)、網(wǎng)絡(luò)資源、共享存儲(chǔ)資源、數(shù)據(jù)庫(kù)系統(tǒng)、重 要的系統(tǒng)應(yīng)用程序模塊。
7、 一種進(jìn)行雙機(jī)備份的方法,其特征在于,通過(guò)外部心跳線連接的工作服 務(wù)器和備份服務(wù)器預(yù)先設(shè)置有兩個(gè)系統(tǒng)監(jiān)控模塊、兩個(gè)資源對(duì)象檢測(cè)模塊、資 源對(duì)象模塊和管理模塊,并且兩個(gè)所述系統(tǒng)監(jiān)控模塊通過(guò)內(nèi)部心跳線相連,則 所述方法包括所述系統(tǒng)監(jiān)控模塊通過(guò)內(nèi)部心跳線與本地服務(wù)器的另外 一個(gè)系統(tǒng)監(jiān)控模塊 交換內(nèi)部心跳信息,當(dāng)在預(yù)定時(shí)間內(nèi)未檢測(cè)到對(duì)方發(fā)來(lái)的內(nèi)部心跳信息或檢測(cè) 到標(biāo)記為錯(cuò)誤的心跳信息時(shí),給本地服務(wù)器的管理沖莫塊發(fā)送告警;所述管理模塊根據(jù)其從所述系統(tǒng)監(jiān)控模塊接收告警的情況判定是否需要執(zhí) 行雙機(jī)資源的切換操作。
8、 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述管理模塊根據(jù)其從所述 系統(tǒng)監(jiān)控模塊接收告警的情況判定是否需要執(zhí)行雙機(jī)資源的切換操作的步驟具 體包括所述管理模塊根據(jù)其從所述系統(tǒng)監(jiān)控模塊接收告警的情況進(jìn)行判斷 如果兩個(gè)系統(tǒng)監(jiān)控模塊全部出現(xiàn)告警,則執(zhí)行雙機(jī)資源的切換操作;如果 其中一個(gè)系統(tǒng)監(jiān)控模塊出現(xiàn)告警,則執(zhí)行備份操作;如果兩個(gè)系統(tǒng)監(jiān)控模塊全部沒(méi)有告警,則消除內(nèi)部心跳誤報(bào)故障信息。
9、 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述方法還包括 所述資源對(duì)象檢測(cè)模塊定時(shí)檢測(cè)資源對(duì)象模塊中的各種資源對(duì)象,并定期將檢測(cè)資源的狀態(tài)信息發(fā)送給本地服務(wù)器的系統(tǒng)監(jiān)控模塊;所述系統(tǒng)監(jiān)控模塊定時(shí)檢測(cè)與其連接的資源對(duì)象檢測(cè)模塊發(fā)送來(lái)的檢測(cè)資 源的狀態(tài)信息,當(dāng)在預(yù)定時(shí)間內(nèi)未檢測(cè)到狀態(tài)信息或檢測(cè)到標(biāo)記為錯(cuò)誤的狀態(tài) 信息時(shí),給本地服務(wù)器的管理模塊發(fā)送告警,同時(shí)通過(guò)心跳線向?qū)Χ朔?wù)器的 系統(tǒng)監(jiān)控模塊發(fā)送標(biāo)記為錯(cuò)誤的心跳信息,觸發(fā)對(duì)端服務(wù)器的管理模塊的告警 處理流程;所述本地服務(wù)器的管理模塊根據(jù)其從所述資源對(duì)象檢測(cè)模塊接收告警的情 況判定是否需要執(zhí)行雙機(jī)資源的切換操作。
10、 根據(jù)權(quán)利要求9所述的方法,其特征在于,所述管理模塊根據(jù)其從所 述資源對(duì)象檢測(cè)模塊接收告警的情況判定是否需要執(zhí)行雙機(jī)資源的切換操作的 步驟具體包括所述管理模塊根據(jù)其從所述資源對(duì)象檢測(cè)模塊接收告警的情況進(jìn)行判斷 如果兩個(gè)資源對(duì)象檢測(cè)模塊全部出現(xiàn)告警,則執(zhí)行雙機(jī)資源的切換操作; 如果其中一個(gè)資源對(duì)象檢測(cè)模塊出現(xiàn)告警,則執(zhí)行備份操作;如果兩個(gè)資源對(duì) 象檢測(cè)模塊全部沒(méi)有告警,則檢測(cè)是否是資源對(duì)象模塊出現(xiàn)故障,當(dāng)確認(rèn)是是 資源對(duì)象模塊出現(xiàn)故障時(shí),由本地服務(wù)器的系統(tǒng)監(jiān)控模塊通過(guò)心跳線向?qū)Χ讼?統(tǒng)監(jiān)控模塊發(fā)送標(biāo)記為錯(cuò)誤的心跳信息,執(zhí)行雙機(jī)資源的切換操作。
11、 根據(jù)權(quán)利要求7到10中任意一項(xiàng)所述的方法,其特征在于,所述方法 還包括本地服務(wù)器的系統(tǒng)監(jiān)控模塊通過(guò)外部心跳線定時(shí)向?qū)Χ朔?wù)器對(duì)應(yīng)的系統(tǒng) 監(jiān)控模塊發(fā)送心跳信息,并檢測(cè)對(duì)端服務(wù)器的系統(tǒng)監(jiān)控模塊發(fā)來(lái)的心跳信息, 當(dāng)在預(yù)定時(shí)間內(nèi)未檢測(cè)對(duì)端服務(wù)器發(fā)來(lái)的心跳信息或檢測(cè)到標(biāo)記為錯(cuò)誤的心跳信息時(shí),激發(fā)本地服務(wù)器的管理模塊的告警處理流程;本地服務(wù)器的管理模塊判斷是單根外部心跳線多根外部心跳線發(fā)生故障 如果是多根外部心跳線發(fā)生故障,則鎖定共享資源;如果是單根外部心跳線發(fā)生故障,則通過(guò)給兩個(gè)系統(tǒng)監(jiān)控模塊、兩個(gè)資源 對(duì)象檢測(cè)模塊、資源對(duì)象模塊發(fā)送檢測(cè)信息來(lái)進(jìn)一步定位故障信息如果是單 點(diǎn)故障,則執(zhí)行備份操作,否則執(zhí)行雙機(jī)資源的切換操作。
12、根據(jù)權(quán)利要求7到10中任意一項(xiàng)所述的方法,其特征在于,當(dāng)所述本 地服務(wù)器和對(duì)端服務(wù)器還分別設(shè)置有數(shù)據(jù)同步模塊時(shí),所述方法還包括所述數(shù)據(jù)同步模塊比較所述工作服務(wù)器和所述備份服務(wù)器的本地存儲(chǔ)數(shù)據(jù) 的異同,刪除所述工作服務(wù)器和所述備份服務(wù)器相同的數(shù)據(jù),然后將所述工作 服務(wù)器和所述備份服務(wù)器不同的數(shù)據(jù)分別拷貝到對(duì)端服務(wù)器,最后將所述工作 服務(wù)器和所述備份服務(wù)器的數(shù)據(jù)實(shí)時(shí)同步寫(xiě)入本地存儲(chǔ)。
全文摘要
本發(fā)明公開(kāi)了一種雙機(jī)備份系統(tǒng)及方法,所述系統(tǒng)包括工作服務(wù)器和備份服務(wù)器,系統(tǒng)監(jiān)控模塊用于通過(guò)內(nèi)部心跳線與本地服務(wù)器的另外一個(gè)系統(tǒng)監(jiān)控模塊互相監(jiān)控;系統(tǒng)監(jiān)控模塊同時(shí)還用于檢測(cè)與其連接的資源對(duì)象模塊發(fā)送的檢測(cè)資源的狀態(tài)信息,并給本地服務(wù)器的管理模塊發(fā)送告警,并在確定為資源對(duì)象模塊出現(xiàn)故障時(shí),通過(guò)外部心跳線向?qū)Χ朔?wù)器的系統(tǒng)監(jiān)控模塊發(fā)送標(biāo)記為錯(cuò)誤的心跳信息;資源對(duì)象模塊用于檢測(cè)資源對(duì)象模塊中的各種資源對(duì)象;管理模塊用于根據(jù)其接收告警的情況判定是否需要執(zhí)行雙機(jī)資源的切換操作;資源對(duì)象模塊用于提供本地服務(wù)器的各種資源對(duì)象。本發(fā)明解決了目前由于雙機(jī)備份自身故障而引發(fā)的雙機(jī)資源誤切換和腦裂故障。
文檔編號(hào)H04L12/26GK101582787SQ20081009790
公開(kāi)日2009年11月18日 申請(qǐng)日期2008年5月16日 優(yōu)先權(quán)日2008年5月16日
發(fā)明者劉步榮, 洋 周 申請(qǐng)人:中興通訊股份有限公司