[發明專利]一種高可用集群中串口心跳的實現方法無效
| 申請號: | 201110384749.7 | 申請日: | 2011-11-28 |
| 公開(公告)號: | CN102546233A | 公開(公告)日: | 2012-07-04 |
| 發明(設計)人: | 蘭雨晴;魏子然;劉濤;張永軍;夏穎 | 申請(專利權)人: | 中標軟件有限公司 |
| 主分類號: | H04L12/24 | 分類號: | H04L12/24;H04L12/26 |
| 代理公司: | 北京匯智英財專利代理事務所 11301 | 代理人: | 潘光興 |
| 地址: | 200030 上海市番*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 可用 集群 串口 心跳 實現 方法 | ||
技術領域
本發明涉及一種高可用集群中串口心跳的實現方法,尤指一種在高可用集群中增加冗余心跳問題的方法。
背景技術
高可用集群是集群中較為常見的一種,當硬件和軟件系統發生故障的時候,運行在集群系統中的數據不易丟失,而且能在盡可能短的時間里恢復正常運行。
高可用集群的層次架構,從下向上講:Messageing?and?Infrastructure?Layer?(信息基礎架構層)、Membership?成員層、Resource?Allocation資源分配層、Resource?Layer(資源層)。其中Messageing?and?Infrastructure?Layer?(信息基礎架構層)為傳遞心跳信息的非常重要的子層。傳遞心跳,也就是說每一個節點都會定期向其他節點通知自己的心跳信息,如果某節點在3-5個心跳周期還沒有檢測到的話,就認為該節點宕掉。
集群中各個節點的心跳連接是一個獨立的物理連接,這個連接可以是串行線纜或以太網連接。
1、??串行線纜:被認為是比以太網連接安全性稍好些的連接方式,因為hacker無法通過串行連接運行諸如telnet、ssh或rsh類的程序,從而可以降低其通過已劫持的節點再次侵入另一節點的幾率。但串行線纜受限于可用長度,因此集群中兩個節點的距離必須非常短,串行線纜對應串口心跳。
2、以太網連接:使用此方式可以消除串行線纜的在長度方面限制,并且可以通過此種連接在各個節點間同步文件系統,從而減少了從正常通信連接帶寬的占用,以太網連接對應網絡心跳。
OpenAIS是基于SA?Forum標準的集群框架的應用程序接口規范。OpenAIS提供一種集群模式,這個模式包括集群框架,集群成員管理,通信方式,能夠為集群軟件或工具提供滿足AIS標準的集群接口。
OpenAIS發展后衍生出來的corosync是開放性集群引擎工程,Corosync執行高可用應用程序的通信組系統。針對心跳問題,corosync中提供了網絡心跳的支持,每個網絡心跳以多播或廣播的方式發送心跳信息,corosync支持兩個網絡心跳。
但是corosync中無法增加更多的網絡心跳,因此也不支持兩個網絡心跳與一個串口心跳的組合方式。在網絡環境出現故障時,節點將無法傳遞心跳信息,使得集群無法正常工作。
發明內容
為了解決上述問題,本發明是將串行線纜連接和以太網連接兩種綜合應用到集群中,在網絡連接出現故障的時候,啟動串行線纜連接以維持集群的正常心跳。
本發明采用的方式是在集群網絡環境剛出現問題時及時開啟串口心跳替代網絡心跳。
本發明的具體方法包括:該集群同時以串行線纜和網絡連接兩種方式構成,串行線纜對應串口心跳,網絡連接對應網絡心跳,在一般情況下該集群以網絡心跳對外提供服務,并借助一個定時器模塊來監控網絡環境的狀態,當網絡出現故障時,則該定時器模塊開啟串口心跳以代替網絡心跳,以保證集群中的心跳不中斷,使得集群可以正常運行并對外提供服務,當網絡恢復正常時,則該定時器模塊關閉串口心跳。
當corosync中的負責接收發送接收網絡心跳的模塊在限定時間內無法接收到網絡心跳,則重傳網絡心跳以期待對端網絡心跳的回應,多次重傳仍無法收到網絡心跳時,表示網絡出現故障。
當corosync中的負責接收發送接收網絡心跳的模塊接收到來自對端的網絡心跳時,則表示網絡恢復正常。
其中,該集群中的每個節點持續向其他節點發送心跳信息以期待回應,若在預定時間內某一個節點無法收到其他節點發送的心跳信息時該定時器模塊被激活,而開始對集群的當前網絡環境的狀態進行監控。
實際操作中,可包括以下幾個步驟:
(1)本發明中的定時器模塊是通過修改現有的exec/totemudp.c文件中的timer_function_netif_?check_timeout函數來監控網絡環境狀態的。在該定時器模塊中查看網絡的連接狀態和當前集群中的節點個數以及串口是否已經啟用這三個變量的組合值。corosync的網絡連接狀態有兩種狀態,在網絡環境出現故障時是網絡故障狀態,網絡狀態正常時是網絡正常狀態。當前集群中節點的個數有等于1或大于1兩種狀態,串口心跳是否啟用僅有啟用和未啟用兩種狀態。
(2)若網絡連接狀態和當前節點個數和串口是否啟用的這三個變量的組合值表示網絡環境的狀態為:當前節點所在的網絡正常,當前節點所在的集群中節點個數等于1,串口啟用,則表示本節點網絡故障已恢復,則定時器模塊將關閉串口心跳,并將串口狀態置為未啟用。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中標軟件有限公司,未經中標軟件有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110384749.7/2.html,轉載請聲明來源鉆瓜專利網。





