两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

多機(jī)熱備份方法及系統(tǒng)的制作方法

文檔序號:7774393閱讀:334來源:國知局
多機(jī)熱備份方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種多機(jī)熱備份方法及系統(tǒng)。多機(jī)熱備份方法包括:將熱備份主機(jī)劃分為多個層級;在同級的每組熱備份主機(jī)組中通過同級協(xié)商確定本組唯一的一個活動態(tài)主機(jī),所述活動態(tài)指激活狀態(tài),活動態(tài)主機(jī)用于對本層級主機(jī)的下級熱備份主機(jī)進(jìn)行控制;上級熱備份主機(jī)通過本層級的活動態(tài)主機(jī)對下級熱備份主機(jī)進(jìn)行控制,上級熱備份主機(jī)與下級熱備份主機(jī)處于相鄰的層級且上級熱備份主機(jī)所在的層級高于下級熱備份主機(jī)的層級。本發(fā)明的多機(jī)熱備份方法及系統(tǒng)可以正確進(jìn)行活動態(tài)主機(jī)的協(xié)商,并能夠保證同級同組內(nèi)有且只有一臺主機(jī)處于活動態(tài)。本發(fā)明能夠確保在高層應(yīng)用的開發(fā)中,可以充分利用下層的熱備份狀態(tài),因此提高了整個熱備份系統(tǒng)的可擴(kuò)展性。
【專利說明】多機(jī)熱備份方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種多機(jī)熱備份方法及系統(tǒng)。
【背景技術(shù)】
[0002]多機(jī)熱備份是計(jì)算機(jī)科學(xué)研究領(lǐng)域的一個經(jīng)典問題。它指在一個網(wǎng)絡(luò)系統(tǒng)中,發(fā)生單點(diǎn)失效時,系統(tǒng)能檢測到故障點(diǎn),并自動將業(yè)務(wù)切換到備份主機(jī)上,在短時間內(nèi)完成無人工故障恢復(fù)的過程。熱備份技術(shù)一直都是計(jì)算機(jī)科學(xué)的研究熱點(diǎn)之一,它在大規(guī)模網(wǎng)絡(luò)、高可用性網(wǎng)絡(luò)、數(shù)據(jù)冗余等多個領(lǐng)域中有著廣泛的應(yīng)用。
[0003]多機(jī)熱備份方法的分類有多種,按照其應(yīng)用層次來分,可以分為以下兩類:基于網(wǎng)絡(luò)層的冗余熱備份方法和基于應(yīng)用層的熱備份方法。其中,基于網(wǎng)絡(luò)層的冗余熱備份方法主要用于網(wǎng)關(guān)冗余熱備份,是實(shí)際系統(tǒng)中應(yīng)用最廣泛的方法之一,其中的典型代表協(xié)議包括 HSRP (Hot Standby Router Protocol,熱備份路由器協(xié)議)、VRRP (Virtual RouterRedundancy Protocol,虛擬路由器冗余協(xié)議)、GLBP (GatewayLoadBalancingProtocol,網(wǎng)關(guān)負(fù)載均衡協(xié)議)等?;趹?yīng)用層的熱備份方法主要用于集群和云計(jì)算,是一整套復(fù)雜的熱備份切換系統(tǒng)。
[0004]在大多數(shù)情況下,基于網(wǎng)絡(luò)層的冗余熱備份方法性能穩(wěn)定,對上層應(yīng)用透明。但是,當(dāng)熱備份需求較為靈活的時候,此方法的“透明”特性也使上層難以充分利用熱備份狀態(tài)信息進(jìn)行靈活的控制。這是由于現(xiàn)有的網(wǎng)絡(luò)層沒有向上層調(diào)用通知的方法,只是簡單地將熱備份切換的影響放到網(wǎng)絡(luò)層上,造成切換過于簡單的現(xiàn)象,影響了熱備份體系的整體可擴(kuò)展性和靈活性。
[0005]因此,合理的熱備份結(jié)構(gòu)對實(shí)際高層應(yīng)用的靈活性起著關(guān)鍵的作用,需要進(jìn)一步研究。
[0006]在普通的基于網(wǎng)絡(luò)層的多機(jī)熱備份環(huán)境下,如果在開發(fā)上層應(yīng)用的時候,沒有合理的熱備主機(jī)狀態(tài)檢測方法,就會出現(xiàn)擴(kuò)展性較差的情況,進(jìn)而造成上層可開發(fā)功能受限,極大地影響了整個系統(tǒng)的可擴(kuò)展性?,F(xiàn)有的基于網(wǎng)絡(luò)層的多級熱備份切換機(jī)制在對上層提供服務(wù)的同時,沒有專門的通知上層應(yīng)用自身狀態(tài)的方法,只是簡單地將切換操作放在網(wǎng)絡(luò)出口的開關(guān)上,在可擴(kuò)展性的問題上十分突出。

【發(fā)明內(nèi)容】

[0007]本發(fā)明所要解決的技術(shù)問題是提供一種多機(jī)熱備份方法及系統(tǒng),提高熱備份系統(tǒng)的可擴(kuò)展性。
[0008]為解決上述技術(shù)問題,本發(fā)明提出了一種多機(jī)熱備份方法,包括:
[0009]步驟一,將熱備份主機(jī)劃分為多個層級;
[0010]步驟二,在同級的每組熱備份主機(jī)組中通過同級協(xié)商確定本組唯一的一個活動態(tài)主機(jī),所述活動態(tài)指激活狀態(tài),所述活動態(tài)主機(jī)用于對本層級主機(jī)的下級熱備份主機(jī)進(jìn)行控制;[0011]步驟三,上級熱備份主機(jī)通過本層級的活動態(tài)主機(jī)對下級熱備份主機(jī)進(jìn)行控制,所述上級熱備份主機(jī)與下級熱備份主機(jī)處于相鄰的層級且所述上級熱備份主機(jī)所在的層級高于所述下級熱備份主機(jī)的層級。
[0012]進(jìn)一步地,上述多機(jī)熱備份方法還可具有以下特點(diǎn),所述步驟二包括:
[0013]初始時,同級同組的所有熱備份主機(jī)均處于待命態(tài),所述待命態(tài)指未激活狀態(tài),本組的熱備份主機(jī)A向本組的其他所有熱備份主機(jī)廣播申請消息,所述申請消息中包含熱備份主機(jī)A的優(yōu)先級和地址信息,其中,熱備份主機(jī)A是本組的任意一臺熱備份主機(jī);
[0014]熱備份主機(jī)A判斷是否收到了本組其他所有熱備份主機(jī)針對所述申請消息返回的申請認(rèn)可消息,以及判斷在設(shè)定時間段內(nèi)是否收到本組其他熱備份主機(jī)針對所述申請消息返回的申請否決消息;
[0015]若熱備份主機(jī)A收到了本組其他所有熱備份主機(jī)針對其廣播的申請消息返回的申請認(rèn)可消息,或者在設(shè)定時間段內(nèi)熱備份主機(jī)A未收到本組其他熱備份主機(jī)針對所述申請消息返回的申請否決消息,則熱備份主機(jī)A晉升為活動態(tài)主機(jī)。
[0016]進(jìn)一步地,上述多機(jī)熱備份方法還可具有以下特點(diǎn),所述步驟二還包括:
[0017]作為活動態(tài)主機(jī)的熱備份主機(jī)A定期在本組內(nèi)廣播通知消息,告知本組的所有熱備份主機(jī)自己的活動態(tài)主機(jī)身份;
[0018]本組的待命態(tài)熱備份主機(jī)收到所述通知消息后,抑制自身晉升為活動態(tài)主機(jī)。
[0019]進(jìn)一步地,上述多機(jī)熱備份方法還可具有以下特點(diǎn),所述步驟二還包括:
[0020]若本組內(nèi)同時出現(xiàn)兩臺以上的活動態(tài)主機(jī),則比較本組所有活動態(tài)主機(jī)的優(yōu)先級,選擇出優(yōu)先級最高的活動態(tài)主機(jī);
[0021]若優(yōu)先級最高的活動態(tài)主機(jī)只有一個,則確定該優(yōu)先級最高的活動態(tài)主機(jī)為本組唯一的活動態(tài)主機(jī),若優(yōu)先級最高的活動態(tài)主機(jī)有兩個以上,則按照自高位向低位的順序比較本組優(yōu)先級最高的所有活動態(tài)主機(jī)的網(wǎng)絡(luò)地址,確定網(wǎng)絡(luò)地址最大的活動態(tài)主機(jī)為本組唯一的活動態(tài)主機(jī);
[0022]將本組中除被確定為唯一活動態(tài)主機(jī)之外的其他活動態(tài)主機(jī)的狀態(tài)轉(zhuǎn)為待命態(tài)。
[0023]進(jìn)一步地,上述多機(jī)熱備份方法還可具有以下特點(diǎn),所述步驟二還包括:
[0024]在搶占模式下,若本組內(nèi)的待命態(tài)主機(jī)優(yōu)先級高于本組的活動態(tài)主機(jī),則優(yōu)先級高于活動態(tài)主機(jī)的待命態(tài)主機(jī)向活動態(tài)主機(jī)發(fā)送挑戰(zhàn)消息,搶占模式是指在已經(jīng)選舉出活動態(tài)主機(jī)的情況下,待命態(tài)主機(jī)向活動態(tài)主機(jī)發(fā)起挑戰(zhàn);
[0025]若發(fā)送挑戰(zhàn)消息的待命態(tài)主機(jī)收到活動態(tài)主機(jī)針對挑戰(zhàn)消息返回的挑戰(zhàn)應(yīng)答消息,則該待命態(tài)主機(jī)晉升為新的活動態(tài)主機(jī),原活動態(tài)主機(jī)的狀態(tài)轉(zhuǎn)入待命態(tài)。
[0026]進(jìn)一步地,上述多機(jī)熱備份方法還可具有以下特點(diǎn),所述步驟三包括:
[0027]上級活動態(tài)主機(jī)定期向下級活動態(tài)主機(jī)發(fā)送控制更新消息;
[0028]所述下級活動態(tài)主機(jī)接收所述控制更新消息,判斷自身當(dāng)前是否有有處于連接狀態(tài)的上級活動態(tài)主機(jī);
[0029]若該下級活動態(tài)主機(jī)自身當(dāng)前沒有處于連接狀態(tài)的上級活動態(tài)主機(jī)則向所述上級活動態(tài)主機(jī)發(fā)送認(rèn)可上級消息,并與所述上級活動態(tài)主機(jī)建立連接,若自身當(dāng)前已有處于連接狀態(tài)的上級活動態(tài)主機(jī),則向所述上級活動態(tài)主機(jī)發(fā)送拒絕認(rèn)可消息,不與所述上級活動態(tài)主機(jī)建立連接。[0030]進(jìn)一步地,上述多機(jī)熱備份方法還可具有以下特點(diǎn),所述步驟三還包括:
[0031]若上級活動態(tài)主機(jī)檢測發(fā)現(xiàn)下級活動主機(jī)在設(shè)定時限內(nèi)未回應(yīng)其發(fā)送的控制更新消息,則向該下級活動主機(jī)所在組的全部熱備份主機(jī)發(fā)送檢測包,尋找一臺存活主機(jī),將該存活主機(jī)指定為組內(nèi)的活動態(tài)主機(jī),所述存活主機(jī)是指在發(fā)送檢測包后上級活動態(tài)主機(jī)收到的來自下級的第一個回應(yīng)包的主機(jī)。
[0032]為解決上述技術(shù)問題,本發(fā)明提出了一種多機(jī)熱備份系統(tǒng),包括:
[0033]劃分模塊,用于將熱備份主機(jī)劃分為多個層級;
[0034]協(xié)商模塊,用于在同級的每組熱備份主機(jī)組中通過同級協(xié)商確定本組唯一的一個活動態(tài)主機(jī),所述活動態(tài)指激活狀態(tài),所述活動態(tài)主機(jī)用于對本層級主機(jī)的下級熱備份主機(jī)進(jìn)行控制;
[0035]控制模塊,用于上級熱備份主機(jī)通過本層級的活動態(tài)主機(jī)對下級熱備份主機(jī)進(jìn)行控制,所述上級熱備份主機(jī)與下級熱備份主機(jī)處于相鄰的層級且所述上級熱備份主機(jī)所在的層級高于所述下級熱備份主機(jī)的層級。
[0036]進(jìn)一步地,上述多機(jī)熱備份系統(tǒng)還可具有以下特點(diǎn),所述協(xié)商模塊包括:
[0037]廣播單元,初始時,同級同組的所有熱備份主機(jī)均處于待命態(tài),所述待命態(tài)指未激活狀態(tài),用于本組的熱備份主機(jī)A向本組的其他所有熱備份主機(jī)廣播申請消息,所述申請消息中包含熱備份主機(jī)A的優(yōu)先級和地址信息,其中,熱備份主機(jī)A是本組的任意一臺熱備份主機(jī);
[0038]判斷單元,用于熱備份主機(jī)A判斷是否收到了本組其他所有熱備份主機(jī)針對所述申請消息返回的申請認(rèn)可消息,以及判斷在設(shè)定時間段內(nèi)是否收到本組其他熱備份主機(jī)針對所述申請消息返回的申請否決消息;
[0039]晉升單元,用于在熱備份主機(jī)A收到了本組其他所有熱備份主機(jī)針對其廣播的申請消息返回的申請認(rèn)可消息,或者在設(shè)定時間段內(nèi)熱備份主機(jī)A未收到本組其他熱備份主機(jī)針對所述申請消息返回的申請否決消息時,使熱備份主機(jī)A晉升為活動態(tài)主機(jī)。
[0040]進(jìn)一步地,上述多機(jī)熱備份系統(tǒng)還可具有以下特點(diǎn),所述協(xié)商模塊還包括:
[0041 ] 告知單元,用于作為活動態(tài)主機(jī)的熱備份主機(jī)A定期在本組內(nèi)廣播通知消息,告知本組的所有熱備份主機(jī)自己的活動態(tài)主機(jī)身份;
[0042]抑制單元,用于本組的待命態(tài)熱備份主機(jī)收到所述通知消息后,抑制自身晉升為活動態(tài)主機(jī)。
[0043]進(jìn)一步地,上述多機(jī)熱備份系統(tǒng)還可具有以下特點(diǎn),所述協(xié)商模塊還包括:
[0044]比較單元,用于在本組內(nèi)同時出現(xiàn)兩臺以上的活動態(tài)主機(jī)時,比較本組所有活動態(tài)主機(jī)的優(yōu)先級,選擇出優(yōu)先級最高的活動態(tài)主機(jī);
[0045]確定單元,用于在優(yōu)先級最高的活動態(tài)主機(jī)只有一個時,確定該優(yōu)先級最高的活動態(tài)主機(jī)為本組唯一的活動態(tài)主機(jī),以及在優(yōu)先級最高的活動態(tài)主機(jī)有兩個以上,比較本組優(yōu)先級最高的所有活動態(tài)主機(jī)的網(wǎng)絡(luò)地址,確定網(wǎng)絡(luò)地址最大的活動態(tài)主機(jī)為本組唯一的活動態(tài)主機(jī);
[0046]轉(zhuǎn)換單元,用于將本組中除被確定為唯一活動態(tài)主機(jī)之外的其他活動態(tài)主機(jī)的狀態(tài)轉(zhuǎn)為待命態(tài)。
[0047]進(jìn)一步地,上述多機(jī)熱備份系統(tǒng)還可具有以下特點(diǎn),所述協(xié)商模塊還包括:[0048]挑戰(zhàn)單元,用于在搶占模式下,在本組內(nèi)的待命態(tài)主機(jī)優(yōu)先級高于本組的活動態(tài)主機(jī),優(yōu)先級高于活動態(tài)主機(jī)的待命態(tài)主機(jī)向活動態(tài)主機(jī)發(fā)送挑戰(zhàn)消息,搶占模式是指在已經(jīng)選舉出活動態(tài)主機(jī)的情況下,待命態(tài)主機(jī)向活動態(tài)主機(jī)發(fā)起挑戰(zhàn);
[0049]挑戰(zhàn)響應(yīng)單元,用于在發(fā)送挑戰(zhàn)消息的待命態(tài)主機(jī)收到活動態(tài)主機(jī)針對挑戰(zhàn)消息返回的挑戰(zhàn)應(yīng)答消息,晉升該待命態(tài)主機(jī)為新的活動態(tài)主機(jī),原活動態(tài)主機(jī)的狀態(tài)轉(zhuǎn)入待命態(tài)。
[0050]進(jìn)一步地,上述多機(jī)熱備份系統(tǒng)還可具有以下特點(diǎn),所述控制模塊包括:
[0051]控制更新單元,用于上級活動態(tài)主機(jī)定期向下級活動態(tài)主機(jī)發(fā)送控制更新消息;
[0052]接收及判斷單元,用于所述下級活動態(tài)主機(jī)接收所述控制更新消息,判斷自身當(dāng)前是否有有處于連接狀態(tài)的上級活動態(tài)主機(jī);
[0053]處理單元,用于在該下級活動態(tài)主機(jī)自身當(dāng)前沒有處于連接狀態(tài)的上級活動態(tài)主機(jī)時向所述上級活動態(tài)主機(jī)發(fā)送認(rèn)可上級消息,并與所述上級活動態(tài)主機(jī)建立連接,以及在該下級活動態(tài)主機(jī)自身當(dāng)前已有處于連接狀態(tài)的上級活動態(tài)主機(jī)時,向所述上級活動態(tài)主機(jī)發(fā)送拒絕認(rèn)可消息,不與所述上級活動態(tài)主機(jī)建立連接。
[0054]進(jìn)一步地,上述多機(jī)熱備份系統(tǒng)還可具有以下特點(diǎn),所述控制模塊還包括:
[0055]指定單元,用于在上級活動態(tài)主機(jī)檢測發(fā)現(xiàn)下級活動主機(jī)在設(shè)定時限內(nèi)未回應(yīng)其發(fā)送的控制更新消息,向該下級活動主機(jī)所在組的全部熱備份主機(jī)發(fā)送檢測包,尋找一臺存活主機(jī),將該存活主機(jī)指定為組內(nèi)的活動態(tài)主機(jī),所述存活主機(jī)是指在發(fā)送檢測包后上級活動態(tài)主機(jī)收到的來自下級的第一個回應(yīng)包的主機(jī)。
[0056]本發(fā)明的多機(jī)熱備份方法及系統(tǒng)可以正確進(jìn)行活動態(tài)主機(jī)的協(xié)商,并能夠保證同級同組內(nèi)有且只有一臺主機(jī)處于活動態(tài)。本發(fā)明能夠確保在高層應(yīng)用的開發(fā)中,可以充分利用下層的熱備份狀態(tài),因此提高了整個熱備份系統(tǒng)的可擴(kuò)展性。
【專利附圖】

【附圖說明】
[0057]圖1為本發(fā)明實(shí)施例中多機(jī)熱備份方法的流程圖;
[0058]圖2為本發(fā)明實(shí)施例中多機(jī)熱備份系統(tǒng)的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0059]以下結(jié)合附圖對本發(fā)明的原理和特征進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
[0060]以下如無特別說明,主機(jī)均指熱備份主機(jī)。
[0061]圖1為本發(fā)明實(shí)施例中多機(jī)熱備份方法的流程圖。如圖1所示,本實(shí)施例中,多機(jī)熱備份方法可以包括如下步驟:
[0062]步驟S101,將熱備份主機(jī)劃分為多個層級;
[0063]通常,依據(jù)使用的規(guī)模和業(yè)務(wù)需求來劃分層級,同級的主機(jī)運(yùn)行的是相同或相似的業(yè)務(wù)。具體的層級劃分可以由使用者來做。
[0064]本發(fā)明中將熱備份主機(jī)的工作狀態(tài)定義為活動態(tài)(Active)和待命態(tài)(Candidate)兩種,將熱備份主機(jī)的多級角色定義為上級、同級、下級三種。其中,活動態(tài)指激活狀態(tài),待命態(tài)指未激活狀態(tài)?!吧霞墶?、“下級”和“同級”是相對的概念。除頂級和最下級外,其他層級均具有“上級”、“下級”和“同級”三種概念。
[0065]步驟S102,在同級的每組熱備份主機(jī)組中通過同級協(xié)商確定本組唯一的一個活動態(tài)主機(jī);
[0066]同級協(xié)商保證一組同功能的主機(jī)之中,有且只有一臺工作,其他主機(jī)處于待命態(tài)。
[0067]步驟S103,上級熱備份主機(jī)通過本層級的活動態(tài)主機(jī)對本層級的下級熱備份主機(jī)進(jìn)行控制;
[0068]其中,上級熱備份主機(jī)與下級熱備份主機(jī)處于相鄰的層級且上級熱備份主機(jī)所在的層級高于下級熱備份主機(jī)的層級。
[0069]通過上下級協(xié)商可以由上級主機(jī)直接指定下級主機(jī)的工作狀態(tài)(即活動態(tài)或待命態(tài))。
[0070]本發(fā)明中,同級同組的熱備份主機(jī)之間,只會有一臺主機(jī)作為活動態(tài)。當(dāng)主機(jī)為活動態(tài)時,會主動向下級各組熱備份主機(jī)發(fā)起控制命令,通告自己成為上級活動態(tài)主機(jī),下級各主機(jī)收到此消息后,會適當(dāng)給予回應(yīng),但在一個下級主機(jī)組中,只會有一臺主機(jī)被指定為活動態(tài),以此類推。頂層的主機(jī)沒有上級,所以會在同級主機(jī)之間進(jìn)行協(xié)商,以保證只有一臺主機(jī)處于活動態(tài)。底層主機(jī)沒有下級,因此底層主機(jī)控制下級主機(jī)的功能將失效。
[0071]在本發(fā)明實(shí)施例中,步驟S102可以包括如下步驟:
[0072](a2)初始時,同級同組的所有熱備份主機(jī)均處于待命態(tài),本組的熱備份主機(jī)A向本組的其他所有熱備份主機(jī)廣播申請消息,該申請消息中包含熱備份主機(jī)A的優(yōu)先級和地址信息,其中,熱備份主機(jī)A可以是本組的任意一臺熱備份主機(jī);
[0073]申請消息表示熱備份主機(jī)A向本組內(nèi)的其他主機(jī)申請自己晉升為活動態(tài)主機(jī)。
[0074]本組的其他熱備份主機(jī)(即除熱備份主機(jī)A之外的主機(jī))收到熱備份主機(jī)A廣播的申請消息后,如果熱備份主機(jī)A的優(yōu)先級高于自己的優(yōu)先級,則向熱備份主機(jī)A返回申請認(rèn)可(CONFIRM)消息,申請認(rèn)可消息表示該熱備份主機(jī)承認(rèn)熱備份主機(jī)A的優(yōu)先級高于自己的優(yōu)先級,同意熱備份主機(jī)A晉升為活動態(tài)主機(jī);如果熱備份主機(jī)A的優(yōu)先級低于自己的優(yōu)先級,則向熱備份主機(jī)A返回申請否決消息,申請否決消息表示該熱備份主機(jī)不同意熱備份主機(jī)A晉升為活動態(tài)主機(jī)。
[0075](b2)熱備份主機(jī)A判斷是否收到了本組其他所有熱備份主機(jī)針對其廣播的申請消息返回的申請認(rèn)可消息,以及判斷在設(shè)定時間段內(nèi)是否收到本組其他熱備份主機(jī)針對其廣播的申請消息返回的申請否決消息;
[0076](c2)若熱備份主機(jī)A收到了本組其他所有熱備份主機(jī)針對其廣播的申請消息返回的申請認(rèn)可消息,或者在設(shè)定時間段內(nèi)熱備份主機(jī)A未收到本組其他熱備份主機(jī)針對申請消息返回的申請否決消息,則熱備份主機(jī)A晉升為活動態(tài)主機(jī)。
[0077]在本發(fā)明實(shí)施例中,在步驟(a2 )至(c2 )的基礎(chǔ)上,步驟S102還可以進(jìn)一步包括如下步驟:
[0078](d2)作為活動態(tài)主機(jī)的熱備份主機(jī)A定期在本組內(nèi)廣播通知消息,告知本組的所有熱備份主機(jī)自己的活動態(tài)主機(jī)身份;
[0079](e2)本組的待命態(tài)熱備份主機(jī)收到通知消息后,抑制自身晉升為活動態(tài)主機(jī)。具體地,待命態(tài)熱備份主機(jī)可以通過增加廣播申請消息的延遲來抑制自己,從而給其他主機(jī)更多的機(jī)會晉升為活動態(tài)王機(jī)。[0080]在本發(fā)明實(shí)施例中,在步驟(a2 )至(c2 )的基礎(chǔ)上,步驟S102還可以進(jìn)一步包括如下步驟:
[0081](f2)若本組內(nèi)同時出現(xiàn)兩臺以上的活動態(tài)主機(jī),則比較本組所有活動態(tài)主機(jī)的優(yōu)先級,選擇出優(yōu)先級最高的活動態(tài)主機(jī);
[0082](g2)若優(yōu)先級最高的活動態(tài)主機(jī)只有一個,則確定該優(yōu)先級最高的活動態(tài)主機(jī)為本組唯一的活動態(tài)主機(jī),若優(yōu)先級最高的活動態(tài)主機(jī)有兩個以上,則比較本組優(yōu)先級最高的所有活動態(tài)主機(jī)的網(wǎng)絡(luò)地址,確定網(wǎng)絡(luò)地址最大的活動態(tài)主機(jī)為本組唯一的活動態(tài)主機(jī);
[0083]例如,假設(shè)有優(yōu)先級同為7的兩臺主機(jī)A、B,主機(jī)A的地址(IP地址:端口號)為192.168.1.1:1000,主機(jī)B的地址為192.168.1.2:999,以上兩個地址均為主機(jī)字節(jié)序,翻譯為十六進(jìn)制分別為:0xC0A80101:0x3E8和0x0xC0A80102: 0x3E7,顯然,主機(jī)A的IP地址小于主機(jī)B,主機(jī)B的端口號小于主機(jī)A,在比較的時候,優(yōu)先比較IP地址,所以主機(jī)A和主機(jī)B將選舉主機(jī)B為活動主機(jī)。如果主機(jī)A、B的IP地址一樣,比如同為0xC0A80101,即192.168.1.1,則以端口號的大小為比較依據(jù),因?yàn)橹鳈C(jī)A的端口號大于主機(jī)B,所以此時應(yīng)該選擇A為活動主機(jī)。
[0084](h2)將本組中除被確定為唯一活動態(tài)主機(jī)之外的其他活動態(tài)主機(jī)的狀態(tài)轉(zhuǎn)為待命態(tài)。
[0085]在本發(fā)明實(shí)施例中,在步驟(a2 )至(c2 )的基礎(chǔ)上,步驟S102還可以進(jìn)一步包括如下步驟:
[0086](i2)若本組內(nèi)的待命態(tài)主機(jī)優(yōu)先級高于本組的活動態(tài)主機(jī),則優(yōu)先級高于活動態(tài)主機(jī)的待命態(tài)主機(jī)向活動態(tài)主機(jī)發(fā)送挑戰(zhàn)消息(CHALLENG_SYN消息);
[0087](j2)若發(fā)送挑戰(zhàn)消息的待命態(tài)主機(jī)收到活動態(tài)主機(jī)針對挑戰(zhàn)消息返回的挑戰(zhàn)應(yīng)答消息(CHALLENGE_ACK消息),則該待命態(tài)主機(jī)晉升為新的活動態(tài)主機(jī),原活動態(tài)主機(jī)的狀態(tài)轉(zhuǎn)入待命態(tài)。
[0088]步驟(i2)和(j2)說明本發(fā)明中,允許高優(yōu)先級的待命態(tài)主機(jī)通過“搶占”的方式搶奪活動態(tài)主機(jī)的工作權(quán)利。本文中將這種工作模式稱為搶占模式。確切地說,搶占模式就是指在已經(jīng)選舉出活動態(tài)主機(jī)的情況下,待命態(tài)主機(jī)向活動態(tài)主機(jī)發(fā)起挑戰(zhàn)。在搶占模式開啟的情況下才會通過步驟(i2)和(j2)來允許高優(yōu)先級的待命態(tài)主機(jī)通過“搶占”的方式搶奪活動態(tài)主機(jī)的工作權(quán)利,搶占模式關(guān)閉的情況下不會發(fā)生待命態(tài)主機(jī)挑戰(zhàn)活動態(tài)主機(jī)的情況。
[0089]在本發(fā)明實(shí)施例中,步驟S103可以包括如下步驟:
[0090](a3)上級活動態(tài)主機(jī)定期向下級主機(jī)發(fā)送控制更新消息(MASTER_NEW消息);
[0091]上級活動態(tài)主機(jī)通過控制更新消息保持與下級主機(jī)的連接,并向下級主機(jī)通告自己是上級。
[0092]如果下級主機(jī)中存在活動態(tài)主機(jī),則上級活動態(tài)主機(jī)只向下級的活動態(tài)主機(jī)發(fā)送控制更新消息。如果下級主機(jī)中不存在活動態(tài)主機(jī),則上級活動態(tài)主機(jī)向所有的下級主機(jī)廣播控制更新消息,直到收到下級的某一臺主機(jī)的回應(yīng),上級活動態(tài)主機(jī)將該回應(yīng)的主機(jī)認(rèn)定為下級的活動態(tài)主機(jī),并停止向下級的其他主機(jī)發(fā)送控制更新消息。
[0093](b3)下級活動態(tài)主機(jī)接收控制更新消息,判斷自身當(dāng)前是否有處于連接狀態(tài)的上級活動態(tài)主機(jī);
[0094](c3)若該下級活動態(tài)主機(jī)自身當(dāng)前沒有處于連接狀態(tài)的上級活動態(tài)主機(jī)則向所述上級活動態(tài)主機(jī)發(fā)送認(rèn)可上級消息,并于所述上級活動態(tài)主機(jī)建立連接,若自身當(dāng)前已有處于連接狀態(tài)的上級活動態(tài)主機(jī),則向所述上級活動態(tài)主機(jī)發(fā)送拒絕認(rèn)可消息,不與所述上級活動態(tài)主機(jī)建立連接。
[0095]在本發(fā)明實(shí)施例中,步驟S103還可以進(jìn)一步包括步驟(d3):若上級活動態(tài)主機(jī)檢測發(fā)現(xiàn)下級活動主機(jī)在設(shè)定時限內(nèi)未回應(yīng)其發(fā)送的控制更新消息,則向該下級活動主機(jī)所在組的全部熱備份主機(jī)發(fā)送檢測包,尋找一臺存活主機(jī),將該存活主機(jī)指定為組內(nèi)的活動態(tài)主機(jī)。存活主機(jī)是指在上級活動態(tài)主機(jī)發(fā)送檢測包后,上級活動態(tài)主機(jī)收到的來自下級的第一個回應(yīng)包的主機(jī)。上級活動態(tài)主機(jī)可以通過定時向下級的熱備份主機(jī)發(fā)送心跳包的方式來檢測,如果上級活動態(tài)主機(jī)超過一定時間未收到下級熱備份主機(jī)的回應(yīng),則上級活動態(tài)主機(jī)判斷該下級熱備份主機(jī)死亡,同樣,如果下級熱備份主機(jī)超過一定時間未收到上級活動態(tài)主機(jī)的回應(yīng),則下級熱備份主機(jī)判斷該上級活動態(tài)主機(jī)死亡。另外,同級主機(jī)之間的探測也可以通過定期發(fā)送心跳包的方式來進(jìn)行。
[0096]本發(fā)明的多機(jī)熱備份方法可以基于UDP(User Datagram Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)協(xié)議發(fā)送消息,消息結(jié)構(gòu)包含消息類型、校驗(yàn)和、消息內(nèi)容、時間戳四個部分。
[0097]本發(fā)明的多機(jī)熱備份方法中,協(xié)商過程的各類消息可以有如下這些:
[0098]1、KEEP_ALIVE 消息
[0099]這是一個Hello消息,每隔TMER周期(默認(rèn)為3秒)發(fā)送一次,超過HME0UT時間(默認(rèn)為3倍的TIMER周期)未收到則認(rèn)為連接斷開,消息內(nèi)容為隨機(jī)數(shù)。
[0100]2、HMER_GET 消息
[0101]這是下級向上級請求Hello周期的消息,消息內(nèi)容為隨機(jī)數(shù)。
[0102]3、HMER_SET 消息
[0103]這是上級設(shè)置同級或下級TMER周期的消息,以時間戳最新的為準(zhǔn),支持推送到目標(biāo)機(jī)的下級,消息內(nèi)容為HMER周期,范圍是O?65535,O表示不發(fā)送,即主動令連接斷開,單位為秒。
[0104]4、TIME0UT_GET 消息
[0105]該消息表示下級向上級請求超時時間,消息內(nèi)容為隨機(jī)數(shù)。
[0106]5、TIME0UT_SET 消息
[0107]該消息表示上級設(shè)置同級或下級的超時時間,以最新的時間戳為準(zhǔn),支持推送到目標(biāo)機(jī)的下級,消息內(nèi)容為超時時間,范圍O?65535,O表示永不超時,單位為秒。
[0108]6、NG0_ANN 消息
[0109]該消息為同級主機(jī)協(xié)商Active主機(jī)(即活動態(tài)主機(jī))的角色所發(fā)出的請求,僅在與Active主機(jī)連接失效的時候發(fā)送,每隔一段時間(如2秒)廣播一次,消息內(nèi)容為同級主機(jī)的配置優(yōu)先級(包含優(yōu)先級級別和機(jī)器標(biāo)識ID)用來保證唯一性,總優(yōu)先級={1.配置優(yōu)先級,2.網(wǎng)絡(luò)地址大小}。收到此消息的主機(jī)根據(jù)優(yōu)先級回應(yīng)NG0_C0NFIRM消息或NG0_REJECT消息。
[0110]配置優(yōu)先級為一個整數(shù),網(wǎng)絡(luò)地址包括IP地址和端口號,IP地址和端口號都是主機(jī)字節(jié)序,高位優(yōu)先。配置優(yōu)先級從配置文件中獲得,由運(yùn)維人員來指定,網(wǎng)絡(luò)地址在協(xié)議啟動的時候從系統(tǒng)中自動獲得。選舉同級活動態(tài)主機(jī)時優(yōu)先比較配置優(yōu)先級,如果配置優(yōu)先級相同,則進(jìn)一步比較網(wǎng)絡(luò)地址。比較的順序是,配置優(yōu)先級> IP地址 >端口號。
[0111]1、NG0_C0NFIRM_SYN 消息
[0112]該消息為同級主機(jī)給予的回應(yīng),表示同意該主機(jī)成為Active主機(jī),消息內(nèi)容是上一個ANN請求消息中的配置優(yōu)先級,收到此消息的主機(jī),更新組中相應(yīng)的confirm標(biāo)記,若此表中有連接的所有標(biāo)記都滿了,或標(biāo)記超時(如150秒),則進(jìn)入Active狀態(tài)。
[0113]8、NG0_C0NFIRM_ACK 消息
[0114]該消息為同級主機(jī)收到NG0_C0NFIRM_SYN消息后進(jìn)行回應(yīng)的消息。
[0115]9、NG0_REJECT_SYN 消息
[0116]該消息表示同級拒絕其他主機(jī)的Active請求,條件是Active主機(jī)存在或自己的優(yōu)先級更高,消息內(nèi)容為本機(jī)配置優(yōu)先級,收到此消息的主機(jī),如果檢查到對方優(yōu)先級比自己高,則清空組列表中所有的confirm標(biāo)記,并進(jìn)行ACK回應(yīng)。
[0117]10、NG0_REJECT_ACK 消息
[0118]該消息為同級主機(jī)收到NG0_REJECT_SYN消息后進(jìn)行回應(yīng)的消息。
[0119]11、NG0_ACTIVE_ANN 消息
[0120]該消息由Active主機(jī)發(fā)送,廣播通告所有同級別主機(jī)“我是Active主機(jī)”,消息內(nèi)容是Active主機(jī)自己的配置優(yōu)先級。非Active主機(jī)收到這個消息會清空所有confirm標(biāo)記。Active主機(jī)收到該消息,若對方優(yōu)先級更高,則由A->C(其中,字母“A”表示“Active”,即活動態(tài),字母“C”表示“Candidate”,即待命態(tài),下同,“A_>C”表示由活動態(tài)轉(zhuǎn)為待命態(tài)),并回應(yīng) NG0_ACTIVE_C0NFIRM_SYN 消息,否則就回復(fù) NGO_ACTIVE_REJECT_SYN 消息。
[0121]12、NGO_ACTIVE_REJECT_SYN 消息
[0122]該消息由Active主機(jī)發(fā)送。非Active主機(jī)忽視此消息。Active主機(jī)收到該消息后,若對方優(yōu)先級比自己高,則A_>C,并回復(fù)ACK同意消息;否則反向發(fā)送ACK拒絕的消息。
[0123]13、NGO_ACTIVE_REJECT_ACK 消息
[0124]該消息由Active主機(jī)發(fā)送。非Active主機(jī)忽視此消息。Active主機(jī)收到該消息后,若得到的是ACK同意,則停止發(fā)送SYN (指NGO_ACTIVE_REJECT_SYN消息),否則A_>C。SYN (synchronize)是一種發(fā)送消息的方式,具體為:定期向?qū)Ψ桨l(fā)送此消息直到收到ACK(acknowledgement)類的消息為止。
[0125]14、NG0_ACTIVE_C0NFIRM_SYN 消息
[0126]該消息由Active主機(jī)發(fā)送。非Active主機(jī)忽視此消息。Active主機(jī)在狀態(tài)表中標(biāo)記對方為confirm,并回復(fù)一條ACK同意消息。
[0127]15、NG0_ACTIVE_C0NFIRM_ACK 消息
[0128]該消息由Active主機(jī)發(fā)送。非Active主機(jī)忽視此消息。
[0129]16、NGO_ACTIVE_CHALLENGE_SYN 消息
[0130]該消息由非Active主機(jī)發(fā)送給Active主機(jī)。當(dāng)Active主機(jī)收到此消息,在搶占的情況下,若對方優(yōu)先級高,則A->C,回復(fù)ACK同意消息,否則忽視此消息;非搶占情況下,回復(fù)ACK否決消息。
[0131]17、NGO_ACTIVE_CHALLENGE_ACK 消息
[0132]非Active主機(jī)若收到ACK同意,則C_>A,否則過一段時間(如30秒),再次發(fā)起主機(jī)挑戰(zhàn)SYN0
[0133]18、MASTER_NEff 消息
[0134]下級活動態(tài)主機(jī)失效后,上級活動態(tài)主機(jī)會廣播MASTER_NEW消息,直到收到一臺下級主機(jī)的確認(rèn),上級活動態(tài)主機(jī)會將該確認(rèn)的下級主機(jī)認(rèn)可為下級活動態(tài)主機(jī),并停止向其他下級主機(jī)發(fā)送MASTER_NEW消息。之后上級活動態(tài)主機(jī)會定期向下級活動態(tài)主機(jī)發(fā)送MASTER_NEW消息,下級活動態(tài)主機(jī)回應(yīng)給上級活動態(tài)主機(jī)MASTER_CONFIRM消息,上級活動態(tài)主機(jī)與下級活動態(tài)主機(jī)這兩臺主機(jī)通過這種方式來認(rèn)可二者之間的連接是正常的,即上級活動態(tài)主機(jī)認(rèn)可下級活動態(tài)主機(jī)是存活的。
[0135]MASTER_NEW消息的消息內(nèi)容為隨機(jī)數(shù)(unsigned short)。下級主機(jī)收到上級活動態(tài)主機(jī)的消息,若檢查到現(xiàn)有的連接已斷開,則回復(fù)MASTER_CONFIRM消息,并準(zhǔn)備連接,若現(xiàn)有的連接未斷開,則回復(fù)MASTER_REJECT消息,拒絕連接。
[0136]19、MASTER_CONFIRM 消息
[0137]上級活動態(tài)主機(jī)發(fā)送MASTER_NEW消息給下級主機(jī)后,若下級主機(jī)為Active狀態(tài),且沒與其他上級主機(jī)建立連接,則回復(fù)此消息,上級活動態(tài)主機(jī)檢查此消息是否為剛才自己所發(fā)送的(通過時間戳和隨機(jī)數(shù),一次連接只有一個隨機(jī)數(shù)(表示session id),時間戳以第一次的為準(zhǔn),判斷時間是否介于現(xiàn)在和第一次之間),若是,則開始連接,否則忽視此消
肩、O
[0138]20、MASTER_REJECT 消息
[0139]上級活動態(tài)主機(jī)發(fā)送MASTER_NEW消息給下級主機(jī)后,若下級主機(jī)并非Active主機(jī)或下級主機(jī)已經(jīng)和某個Master (即上級活動態(tài)主機(jī))建立連接,則發(fā)送此消息,上級活動態(tài)主機(jī)檢查此消息是否為剛才自己所發(fā)送的(通過時間戳和隨機(jī)數(shù),一次連接只有一個隨機(jī)數(shù)(表示session id),時間戳以第一次的為準(zhǔn),判斷時間是否介于現(xiàn)在和第一次之間),若是,則延長一段時間(如3秒)再發(fā)送MASTER_NEW消息,否則忽視此消息。
[0140]本發(fā)明的多機(jī)熱備份方法可以正確進(jìn)行活動態(tài)主機(jī)的協(xié)商,并能夠保證同級同組內(nèi)有且只有一臺主機(jī)處于活動態(tài)。本發(fā)明能夠確保在高層應(yīng)用的開發(fā)中,可以充分利用下層的熱備份狀態(tài),因此提高了整個熱備份系統(tǒng)的可擴(kuò)展性。
[0141]本發(fā)明的多機(jī)熱備份方法運(yùn)行在傳輸層和應(yīng)用層之間,通過UDP的心跳包來監(jiān)測運(yùn)行協(xié)議的主機(jī)的工作狀態(tài),采用對應(yīng)用層透明的協(xié)商協(xié)議來確定各主機(jī)的工作角色。本發(fā)明的多機(jī)熱備份方法提供應(yīng)用層接口,會實(shí)時向上層應(yīng)用提交熱備份狀態(tài)。
[0142]本發(fā)明還提出了一種多機(jī)熱備份系統(tǒng),用于執(zhí)行上述的多機(jī)熱備份方法。以上對多機(jī)熱備份方法的原理說明均適用于下面的多機(jī)熱備份系統(tǒng)。
[0143]圖2為本發(fā)明實(shí)施例中多機(jī)熱備份系統(tǒng)的結(jié)構(gòu)框圖。如圖2所示,本實(shí)施例中,多機(jī)熱備份系統(tǒng)可以包括劃分模塊210、協(xié)商模塊220和控制模塊230。其中,劃分模塊210用于將熱備份主機(jī)劃分為多個層級。協(xié)商模塊220用于在同級的每組熱備份主機(jī)組中通過同級協(xié)商確定本組唯一的一個活動態(tài)主機(jī),其中,活動態(tài)指激活狀態(tài)。控制模塊230用于上級熱備份主機(jī)通過本層級的活動態(tài)主機(jī)對本層級的下級熱備份主機(jī)進(jìn)行控制,這里,所述上級熱備份主機(jī)與下級熱備份主機(jī)處于相鄰的層級且上級熱備份主機(jī)所在的層級高于下級熱備份主機(jī)的層級。
[0144]在本發(fā)明實(shí)施例中,協(xié)商模塊220可以進(jìn)一步包括廣播單元、判斷單元和晉升單元。其中,在初始時,同級同組的所有熱備份主機(jī)均處于待命態(tài),所述待命態(tài)指未激活狀態(tài),廣播單元用于本組的熱備份主機(jī)A向本組的其他所有熱備份主機(jī)廣播申請消息,所述申請消息中包含熱備份主機(jī)A的優(yōu)先級和地址信息,其中,熱備份主機(jī)A是本組的任意一臺熱備份主機(jī)。判斷單元用于熱備份主機(jī)A判斷是否收到了本組其他所有熱備份主機(jī)針對所述申請消息返回的申請認(rèn)可消息,以及判斷在設(shè)定時間段內(nèi)是否收到本組其他熱備份主機(jī)針對所述申請消息返回的申請否決消息。晉升單元用于在熱備份主機(jī)A收到了本組其他所有熱備份主機(jī)針對其廣播的申請消息返回的申請認(rèn)可消息,或者在設(shè)定時間段內(nèi)熱備份主機(jī)A未收到本組其他熱備份主機(jī)針對所述申請消息返回的申請否決消息時,使熱備份主機(jī)A晉升為活動態(tài)主機(jī)。
[0145]在本發(fā)明實(shí)施例中,在協(xié)商模塊220包括廣播單元、判斷單元和晉升單元的基礎(chǔ)上,協(xié)商模塊220還可以進(jìn)一步包括告知單元和抑制單元。告知單元用于作為活動態(tài)主機(jī)的熱備份主機(jī)A定期在本組內(nèi)廣播通知消息,告知本組的所有熱備份主機(jī)自己的活動態(tài)主機(jī)身份。抑制單元用于本組的待命態(tài)熱備份主機(jī)收到所述通知消息后,抑制自身晉升為活動態(tài)主機(jī)。
[0146]在本發(fā)明實(shí)施例中,在協(xié)商模塊220包括廣播單元、判斷單元和晉升單元的基礎(chǔ)上,協(xié)商模塊220還可以進(jìn)一步包括比較單元、確定單元和轉(zhuǎn)換單元。比較單元用于在本組內(nèi)同時出現(xiàn)兩臺以上的活動態(tài)主機(jī)時,比較本組所有活動態(tài)主機(jī)的優(yōu)先級,選擇出優(yōu)先級最高的活動態(tài)主機(jī)。確定單元用于在優(yōu)先級最高的活動態(tài)主機(jī)只有一個時,確定該優(yōu)先級最聞的活動態(tài)主機(jī)為本組唯一的活動態(tài)主機(jī),以及在優(yōu)先級最聞的活動態(tài)主機(jī)有兩個以上,比較本組優(yōu)先級最高的所有活動態(tài)主機(jī)的網(wǎng)絡(luò)地址,確定網(wǎng)絡(luò)地址最大的活動態(tài)主機(jī)為本組唯一的活動態(tài)主機(jī)。轉(zhuǎn)換單元用于將本組中除被確定為唯一活動態(tài)主機(jī)之外的其他活動態(tài)主機(jī)的狀態(tài)轉(zhuǎn)為待命態(tài)。
[0147]在本發(fā)明實(shí)施例中,在協(xié)商模塊220包括廣播單元、判斷單元和晉升單元的基礎(chǔ)上,協(xié)商模塊220還可以進(jìn)一步包括挑戰(zhàn)單元和挑戰(zhàn)響應(yīng)單元。挑戰(zhàn)單元用于在本組內(nèi)的待命態(tài)主機(jī)優(yōu)先級高于本組的活動態(tài)主機(jī),優(yōu)先級高于活動態(tài)主機(jī)的待命態(tài)主機(jī)向活動態(tài)主機(jī)發(fā)送挑戰(zhàn)消息。挑戰(zhàn)響應(yīng)單元用于在發(fā)送挑戰(zhàn)消息的待命態(tài)主機(jī)收到活動態(tài)主機(jī)針對挑戰(zhàn)消息返回的挑戰(zhàn)應(yīng)答消息,晉升該待命態(tài)主機(jī)為新的活動態(tài)主機(jī),原活動態(tài)主機(jī)的狀態(tài)轉(zhuǎn)入待命態(tài)。
[0148]在本發(fā)明實(shí)施例中,控制模塊230可以進(jìn)一步包括控制更新單元、接收及判斷單元和處理單元。控制更新單元,于上級活動態(tài)主機(jī)定期向下級活動態(tài)主機(jī)發(fā)送控制更新消息。接收及判斷單元用于所述下級活動態(tài)主機(jī)接收所述控制更新消息,判斷自身當(dāng)前是否有有處于連接狀態(tài)的上級活動態(tài)主機(jī)。處理單元用于在該下級活動態(tài)主機(jī)自身當(dāng)前沒有處于連接狀態(tài)的上級活動態(tài)主機(jī)時向所述上級活動態(tài)主機(jī)發(fā)送認(rèn)可上級消息,并與所述上級活動態(tài)主機(jī)建立連接,以及在該下級活動態(tài)主機(jī)自身當(dāng)前已有處于連接狀態(tài)的上級活動態(tài)主機(jī)時,向所述上級活動態(tài)主機(jī)發(fā)送拒絕認(rèn)可消息,不與所述上級活動態(tài)主機(jī)建立連接。
[0149]在本發(fā)明實(shí)施例中,在控制模塊230包括控制更新單元、接收及判斷單元和處理單元的基礎(chǔ)上,控制模塊230還可以進(jìn)一步包括指定單元。指定單元用于在上級活動態(tài)主機(jī)檢測發(fā)現(xiàn)下級活動主機(jī)在設(shè)定時限內(nèi)未回應(yīng)其發(fā)送的控制更新消息,向該下級活動主機(jī)所在組的全部熱備份主機(jī)發(fā)送檢測包,尋找一臺存活主機(jī),將該存活主機(jī)指定為組內(nèi)的活動態(tài)主機(jī),其中,存活主機(jī)是指在上級活動態(tài)主機(jī)發(fā)送檢測包后,上級活動態(tài)主機(jī)收到的來自下級的第一個回應(yīng)包的主機(jī)。。
[0150]本發(fā)明的多機(jī)熱備份系統(tǒng)可以正確進(jìn)行活動態(tài)主機(jī)的協(xié)商,并能夠保證同級同組內(nèi)有且只有一臺主機(jī)處于活動態(tài)。本發(fā)明能夠確保在高層應(yīng)用的開發(fā)中,可以充分利用下層的熱備份狀態(tài),因此提高了整個熱備份系統(tǒng)的可擴(kuò)展性。
[0151]以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種多機(jī)熱備份方法,其特征在于,包括: 步驟一,將熱備份主機(jī)劃分為多個層級; 步驟二,在同級的每組熱備份主機(jī)組中通過同級協(xié)商確定本組唯一的一個活動態(tài)主機(jī),所述活動態(tài)指激活狀態(tài),所述活動態(tài)主機(jī)用于對本層級主機(jī)的下級熱備份主機(jī)進(jìn)行控制; 步驟三,上級熱備份主機(jī)通過本層級的活動態(tài)主機(jī)對下級熱備份主機(jī)進(jìn)行控制,所述上級熱備份主機(jī)與下級熱備份主機(jī)處于相鄰的層級且所述上級熱備份主機(jī)所在的層級高于所述下級熱備份主機(jī)的層級。
2.根據(jù)權(quán)利要求1所述的多機(jī)熱備份方法,其特征在于,所述步驟二包括: 初始時,同級同組的所有熱備份主機(jī)均處于待命態(tài),所述待命態(tài)指未激活狀態(tài),本組的熱備份主機(jī)A向本組的其他所有熱備份主機(jī)廣播申請消息,所述申請消息中包含熱備份主機(jī)A的優(yōu)先級和地址信息,其中,熱備份主機(jī)A是本組的任意一臺熱備份主機(jī); 熱備份主機(jī)A判斷是否收到了本組其他所有熱備份主機(jī)針對所述申請消息返回的申請認(rèn)可消息,以及判斷在設(shè)定時間段內(nèi)是否收到本組其他熱備份主機(jī)針對所述申請消息返回的申請否決消息; 若熱備份主機(jī)A收到了本組其他所有熱備份主機(jī)針對其廣播的申請消息返回的申請認(rèn)可消息,或者在設(shè)定時間段內(nèi)熱備份主機(jī)A未收到本組其他熱備份主機(jī)針對所述申請消息返回的申請否決消息,則熱備份主機(jī)A晉升為活動態(tài)主機(jī)。
3.根據(jù)權(quán)利要求2所述的多機(jī)熱備份方法,其特征在于,所述步驟二還包括: 作為活動態(tài)主機(jī)的熱備份主機(jī)A定期在本組內(nèi)廣播通知消息,告知本組的所有熱備份主機(jī)自己的活動態(tài)主機(jī)身份; 本組的待命態(tài)熱備份主機(jī)收到所述通知消息后,抑制自身晉升為活動態(tài)主機(jī)。
4.根據(jù)權(quán)利要求2所述的多機(jī)熱備份方法,其特征在于,所述步驟二還包括: 若本組內(nèi)同時出現(xiàn)兩臺以上的活動態(tài)主機(jī),則比較本組所有活動態(tài)主機(jī)的優(yōu)先級,選擇出優(yōu)先級最高的活動態(tài)主機(jī); 若優(yōu)先級最高的活動態(tài)主機(jī)只有一個,則確定該優(yōu)先級最高的活動態(tài)主機(jī)為本組唯一的活動態(tài)主機(jī),若優(yōu)先級最高的活動態(tài)主機(jī)有兩個以上,則按照自高位向低位的順序比較本組優(yōu)先級最高的所有活動態(tài)主機(jī)的網(wǎng)絡(luò)地址,確定網(wǎng)絡(luò)地址最大的活動態(tài)主機(jī)為本組唯一的活動態(tài)主機(jī); 將本組中除被確定為唯一活動態(tài)主機(jī)之外的其他活動態(tài)主機(jī)的狀態(tài)轉(zhuǎn)為待命態(tài)。
5.根據(jù)權(quán)利要求2所述的多機(jī)熱備份方法,其特征在于,所述步驟二還包括: 在搶占模式下,若本組內(nèi)的待命態(tài)主機(jī)優(yōu)先級高于本組的活動態(tài)主機(jī),則優(yōu)先級高于活動態(tài)主機(jī)的待命態(tài)主機(jī)向活動態(tài)主機(jī)發(fā)送挑戰(zhàn)消息,搶占模式是指在已經(jīng)選舉出活動態(tài)主機(jī)的情況下,待命態(tài)主機(jī)向活動態(tài)主機(jī)發(fā)起挑戰(zhàn); 若發(fā)送挑戰(zhàn)消息的待命態(tài)主機(jī)收到活動態(tài)主機(jī)針對挑戰(zhàn)消息返回的挑戰(zhàn)應(yīng)答消息,則該待命態(tài)主機(jī)晉升為新的活動態(tài)主機(jī),原活動態(tài)主機(jī)的狀態(tài)轉(zhuǎn)入待命態(tài)。
6.根據(jù)權(quán)利要求1所述的多機(jī)熱備份方法,其特征在于,所述步驟三包括: 上級活動態(tài)主機(jī)定期向下級活動態(tài)主機(jī)發(fā)送控制更新消息; 所述下級活動態(tài)主機(jī)接收所述控制更新消息,判斷自身當(dāng)前是否有有處于連接狀態(tài)的上級活動態(tài)主機(jī); 若該下級活動態(tài)主機(jī)自身當(dāng)前沒有處于連接狀態(tài)的上級活動態(tài)主機(jī)則向所述上級活動態(tài)主機(jī)發(fā)送認(rèn)可上級消息,并與所述上級活動態(tài)主機(jī)建立連接,若自身當(dāng)前已有處于連接狀態(tài)的上級活動態(tài)主機(jī),則向所述上級活動態(tài)主機(jī)發(fā)送拒絕認(rèn)可消息,不與所述上級活動態(tài)主機(jī)建立連接。
7.根據(jù)權(quán)利要求6所述的多機(jī)熱備份方法,其特征在于,所述步驟三還包括: 若上級活動態(tài)主機(jī)檢測發(fā)現(xiàn)下級活動主機(jī)在設(shè)定時限內(nèi)未回應(yīng)其發(fā)送的控制更新消息,則向該下級活動主機(jī)所在組的全部熱備份主機(jī)發(fā)送檢測包,尋找一臺存活主機(jī),將該存活主機(jī)指定為組內(nèi)的活動態(tài)主機(jī),所述存活主機(jī)是指在發(fā)送檢測包后上級活動態(tài)主機(jī)收到的來自下級的第一個回應(yīng)包的主機(jī)。
8.—種多機(jī)熱備份系統(tǒng),其特征在于,包括: 劃分模塊,用于將熱備份主機(jī)劃分為多個層級; 協(xié)商模塊,用于在同級的每組熱備份主機(jī)組中通過同級協(xié)商確定本組唯一的一個活動態(tài)主機(jī),所述活動態(tài)指激活狀態(tài),所述活動態(tài)主機(jī)用于對本層級主機(jī)的下級熱備份主機(jī)進(jìn)行控制; 控制模塊,用于上級熱備份 主機(jī)通過本層級的活動態(tài)主機(jī)對下級熱備份主機(jī)進(jìn)行控制,所述上級熱備份主機(jī)與下級熱備份主機(jī)處于相鄰的層級且所述上級熱備份主機(jī)所在的層級高于所述下級熱備份主機(jī)的層級。
9.根據(jù)權(quán)利要求8所述的多機(jī)熱備份系統(tǒng),其特征在于,所述協(xié)商模塊包括: 廣播單元,初始時,同級同組的所有熱備份主機(jī)均處于待命態(tài),所述待命態(tài)指未激活狀態(tài),用于本組的熱備份主機(jī)A向本組的其他所有熱備份主機(jī)廣播申請消息,所述申請消息中包含熱備份主機(jī)A的優(yōu)先級和地址信息,其中,熱備份主機(jī)A是本組的任意一臺熱備份主機(jī); 判斷單元,用于熱備份主機(jī)A判斷是否收到了本組其他所有熱備份主機(jī)針對所述申請消息返回的申請認(rèn)可消息,以及判斷在設(shè)定時間段內(nèi)是否收到本組其他熱備份主機(jī)針對所述申請消息返回的申請否決消息; 晉升單元,用于在熱備份主機(jī)A收到了本組其他所有熱備份主機(jī)針對其廣播的申請消息返回的申請認(rèn)可消息,或者在設(shè)定時間段內(nèi)熱備份主機(jī)A未收到本組其他熱備份主機(jī)針對所述申請消息返回的申請否決消息時,使熱備份主機(jī)A晉升為活動態(tài)主機(jī)。
10.根據(jù)權(quán)利要求9所述的多機(jī)熱備份系統(tǒng),其特征在于,所述協(xié)商模塊還包括: 告知單元,用于作為活動態(tài)主機(jī)的熱備份主機(jī)A定期在本組內(nèi)廣播通知消息,告知本組的所有熱備份主機(jī)自己的活動態(tài)主機(jī)身份; 抑制單元,用于本組的待命態(tài)熱備份主機(jī)收到所述通知消息后,抑制自身晉升為活動態(tài)主機(jī)。
11.根據(jù)權(quán)利要求9所述的多機(jī)熱備份系統(tǒng),其特征在于,所述協(xié)商模塊還包括: 比較單元,用于在本組內(nèi)同時出現(xiàn)兩臺以上的活動態(tài)主機(jī)時,比較本組所有活動態(tài)主機(jī)的優(yōu)先級,選擇出優(yōu)先級最高的活動態(tài)主機(jī); 確定單元,用于在優(yōu)先級最高的活動態(tài)主機(jī)只有一個時,確定該優(yōu)先級最高的活動態(tài)主機(jī)為本組唯一的活動態(tài)主機(jī),以及在優(yōu)先級最高的活動態(tài)主機(jī)有兩個以上,比較本組優(yōu)先級最高的所有活動態(tài)主機(jī)的網(wǎng)絡(luò)地址,確定網(wǎng)絡(luò)地址最大的活動態(tài)主機(jī)為本組唯一的活動態(tài)主機(jī); 轉(zhuǎn)換單元,用于將本組中除被確定為唯一活動態(tài)主機(jī)之外的其他活動態(tài)主機(jī)的狀態(tài)轉(zhuǎn)為待命態(tài)。
12.根據(jù)權(quán)利要求9所述的多機(jī)熱備份系統(tǒng),其特征在于,所述協(xié)商模塊還包括: 挑戰(zhàn)單元,用于在搶占模式下,在本組內(nèi)的待命態(tài)主機(jī)優(yōu)先級高于本組的活動態(tài)主機(jī),優(yōu)先級高于活動態(tài)主機(jī)的待命態(tài)主機(jī)向活動態(tài)主機(jī)發(fā)送挑戰(zhàn)消息,搶占模式是指在已經(jīng)選舉出活動態(tài)主機(jī)的情況下,待命態(tài)主機(jī)向活動態(tài)主機(jī)發(fā)起挑戰(zhàn); 挑戰(zhàn)響應(yīng)單元,用于在發(fā)送挑戰(zhàn)消息的待命態(tài)主機(jī)收到活動態(tài)主機(jī)針對挑戰(zhàn)消息返回的挑戰(zhàn)應(yīng)答消息,晉升該待命態(tài)主機(jī)為新的活動態(tài)主機(jī),原活動態(tài)主機(jī)的狀態(tài)轉(zhuǎn)入待命態(tài)。
13.根據(jù)權(quán)利要求8所述的多機(jī)熱備份系統(tǒng),其特征在于,所述控制模塊包括: 控制更新單元,用于上級活動態(tài)主機(jī)定期向下級活動態(tài)主機(jī)發(fā)送控制更新消息; 接收及判斷單元,用于所述下級活動態(tài)主機(jī)接收所述控制更新消息,判斷自身當(dāng)前是否有有處于連接狀態(tài)的上級活動態(tài)主機(jī); 處理單元,用于在該下級活動態(tài)主機(jī)自身當(dāng)前沒有處于連接狀態(tài)的上級活動態(tài)主機(jī)時向所述上級活動態(tài)主機(jī)發(fā)送認(rèn)可上級消息,并與所述上級活動態(tài)主機(jī)建立連接,以及在該下級活動態(tài)主機(jī)自身當(dāng)前已有處于連接狀態(tài)的上級活動態(tài)主機(jī)時,向所述上級活動態(tài)主機(jī)發(fā)送拒絕認(rèn)可消息,不與所述上級活動態(tài)主機(jī)建立連接。
14.根據(jù)權(quán)利要求13所述的多機(jī)熱備份系統(tǒng),其特征在于,所述控制模塊還包括:` 指定單元,用于在上級活動態(tài)主機(jī)檢測發(fā)現(xiàn)下級活動主機(jī)在設(shè)定時限內(nèi)未回應(yīng)其發(fā)送的控制更新消息,向該下級活動主機(jī)所在組的全部熱備份主機(jī)發(fā)送檢測包,尋找一臺存活主機(jī),將該存活主機(jī)指定為組內(nèi)的活動態(tài)主機(jī),所述存活主機(jī)是指在發(fā)送檢測包后上級活動態(tài)主機(jī)收到的來自下級的第一個回應(yīng)包的主機(jī)。
【文檔編號】H04L1/22GK103532764SQ201310507458
【公開日】2014年1月22日 申請日期:2013年10月24日 優(yōu)先權(quán)日:2013年10月24日
【發(fā)明者】楊嶸, 陳晨, 鄭超, 劉洋, 孫永, 秦鵬, 周舟, 李佳 申請人:中國科學(xué)院信息工程研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
永德县| 英山县| 六枝特区| 谷城县| 北宁市| 舒兰市| 屯门区| 淮阳县| 三原县| 佳木斯市| 兰州市| 尼勒克县| 万州区| 东丽区| 阿克| 萨迦县| 额尔古纳市| 无为县| 礼泉县| 安康市| 浦县| 桐柏县| 沁阳市| 雷州市| 江陵县| 庄河市| 苗栗县| 鹤岗市| 温宿县| 永新县| 聊城市| 汤阴县| 吐鲁番市| 昌都县| 土默特右旗| 武平县| 全州县| 涞源县| 葵青区| 阿勒泰市| 花莲县|