專利名稱:一種多機環(huán)境中實現系統(tǒng)高可用的方法
技術領域:
本發(fā)明涉及一種計算機應用技術領域,具體地說是一種在多機環(huán)境中實現系統(tǒng)高可用 的方法。
2背景技術:
隨著計算機技術的發(fā)展,信息已成為系統(tǒng)日常活動中十分重要的一個組成部分,同時由 于系統(tǒng)的復雜性和開放性以及應用環(huán)境的多樣化,也給應用系統(tǒng)的運行帶來了許多不確定因 素。這些因素也導致對服務器的安全性也提出了更高的要求,基于該平臺業(yè)務系統(tǒng)的安全, 穩(wěn)定可靠和系統(tǒng)的持續(xù)運行成為系統(tǒng)的關鍵。
在一般情況下,當系統(tǒng)不能正常運行時,我們需要用人工的方法進行故障的認定、分析、 恢復及測試。這些都需要花費很長的時間。在這段時間內,系統(tǒng)必須停頓下來以等待恢復, 從而給企業(yè)帶來難以估計的經濟損失?,F在一般采用雙機高可用技術來解決上述問題。如圖 一所示,對于一種應用主機,對應著有一臺備用機,主用機工作,而備用機監(jiān)測主用機狀態(tài), 當備用機監(jiān)測到主用機發(fā)生故障時,接替主用機提供服務。對于這種模式來說,i于每一臺 主用機都必須有一臺備用機與之對應,如果有N臺主用機,則需要相應的部署N臺備用機才 能夠為每一臺主用機提供高可用,結果是造成極大的資源浪費,即使采用Active-Active, 即兩臺服務器各自運行一個應用,都作為主用機,同時又互為對方的備用機的工作模式,也 需要N/2臺備用機。
3
發(fā)明內容
本發(fā)明的目的是克服現有技術的不足,提出一種多機環(huán)境中實現系統(tǒng)高可用的方法。 本發(fā)明的方法是按以下方實現的, 一個局域網內分布有N+M臺運行各種應用程序的服務器
組成一個集群環(huán)境,其中N表示主用機的數量,M表示備用機的數量,N》l, M》1,在集群環(huán)
境內采用N+M方式實現系統(tǒng)的高可用,具體步驟如下
1) ^臺或N臺主用機對應M臺備用機,由M臺服務器作為該主用機的備用機,當一臺主用 機有M臺備用機的時候,主用機S備用機之間通過組播方式監(jiān)測與備用機之間的心跳;
2) —臺或N臺主用機有M臺備用機的情況下,在主用機發(fā)生故障時,根據備用機的負載情 況,決定一臺備用機來接替主用機的工作;
3) —臺或M臺備用機對應N臺主用機,為N臺主用機提供備用服務,當一臺備用機對應N 臺主用機的時候,備用機通過組播方式監(jiān)測與主用機之間的心跳,備用機通過心跳線(heart
beating)方式監(jiān)測主用機工作狀態(tài),當備用機監(jiān)測到主用機發(fā)生故障時,備用機在用戶感覺不
到服務中斷的情況下接管主用機的工作,對外提供主用機原來提供的服務,具體的監(jiān)測和切換 步驟如下
a、 備用機實時監(jiān)控主用機狀態(tài),當發(fā)現服務停止或者心跳線中斷,于是主用機便停止服 務進程,釋放所使用資源包括共享存儲,以及對外提供服務的ip、主機別名;備用機接管主用 機釋放的資源,繼續(xù)提供服務并且繼續(xù)監(jiān)控主用機心跳,以確定主用機是否被修復;
b、 備用機在主用機不工作的狀態(tài)下繼續(xù)監(jiān)聽心跳,當發(fā)生故障的主用機完成修復,重新 加入到集群中時,備用機檢測到主用機心跳恢復正常,備用機停止服務進程,釋放所使用的資 源;主用機接管備用機的資源對外提供服務,備用機繼續(xù)監(jiān)控主用機心跳。
本發(fā)明的有益效果是解決了高可用系統(tǒng)的可擴展性,在一個復雜的具有多種應用的多機環(huán) 境中能夠以較低的成本實現系統(tǒng)的高可用性,并能夠提高系統(tǒng)資源的利用率。
4
圖l是現有雙機結構圖; 圖2是網絡心跳監(jiān)測示意圖; 圖3是N+M方式托普圖; 圖4是N+M方式流程圖。
5具體實施例方式
參照說明書附圖,對本發(fā)明的方法作以下詳細的說明;
采用N+M方式實現高可用,N表示主用機的數量,M表示備用機的數量,主用機可以是1 臺也可以是多臺,備用機可以是l臺,也可以是多臺。l臺主用機可以只對應l臺備用機,也可 以對應多臺備用機,由多臺服務器作為該主用機的備用機,主用機通過組播方式監(jiān)測與備用機 之間的心跳;1臺備用機可以只對應l臺主用機,也可以對應多臺主用機,為多臺主用機提供備 用服務,備用機通過組播方式監(jiān)測與主用機之間的心跳。
備用機通過心跳線(heart beating)方式監(jiān)測主用機工作狀態(tài),當備用機監(jiān)測到主用機發(fā) 生故障時,接管主用機的工作,對外提供主用機原來提供的服務,而用戶感覺不到服務的中斷, 具體的監(jiān)測和切換步驟如下
備用機實時監(jiān)控主用機狀態(tài),當發(fā)現服務停止或者心跳線中斷,于是主用機便停止服務進 程,釋放所使用資源包括共享存儲,以及對外提供服務的ip、主機別名等等。備用機接管 上述資源,繼續(xù)提供服務并且繼續(xù)監(jiān)控主用機心跳,以確定主用機是否被修復。當備用機監(jiān)測 到與主用機之間的心跳正常后,備用機停lh服務進程,釋放所使用的資源,主用機接管這些資 源,并提供對外服務。備用機此時繼續(xù)監(jiān)控主用機心跳。
M臺服務器充當N臺主用機的備用機時,設置一臺服務器作任務分配器負責監(jiān)控和任務的分 配,設置第二臺服務器做冗余任務分配,在主用機失效時根據調度策略把任務分配到備用服務 器,在此種方式下,每一臺備用機都安裝有主用機的全部應用,心跳監(jiān)控由任務分配器承擔,
任務分配器設置有兩種分配方式
1) 輪詢
當主用機服務故障時,任務分配器會根據備用機服務池中服務器的順序,把任務分配到第 一臺服務器,它均等地對待每一臺備用服務器,而不管服務器上實際的連接數和系統(tǒng)負載;
2) 最少負載
任務分配器負責監(jiān)控備用機的資源使用狀況,來決定把任務分配到哪一臺備用機,負載最 低的那一臺備用機具有接受任務的最高權限;
3) 任務分配器監(jiān)控主、備用機的心跳,并且監(jiān)控備用的負載狀況,若心跳不正常,任務分 配器會根據備用機的負載情況把主用機的任務停止并將任務轉移到負載最低的備用機,當主用 機修復完畢,任務分配器監(jiān)測心跳正常時,便把服務切換到主用機;
4) 冗余任務分配器在任務分配器出現故障時,任務分配由冗余任務分配器接替。 當配置成1臺備用機給多臺主用機作備用機時,由于在1臺備用機需要安裝多個應用程序,
而且有可能需要同時運行多個應用,其配置需要比單臺主用機的配置高,以保證在發(fā)生應用切 換后不會降低系統(tǒng)服務的性能。
主用機和備用機可以釆用共享磁盤陣列方式實現,也可以采用單獨的存儲裝置。當采用共 享盤陣時,需要采用高速網絡來保證存儲共享時的高性能;當采用單獨的存儲裝置時,需要備 用機實時備份主用機的應用程序和數據的變化,應用程序方面的變化主要是配置信息的變化, 數據的變化,主要是數據的增加、刪除和修改。
實施例 1.N+1方式
就是1臺服務器充當N臺主用機的備用機,在N臺主用機中無論那一臺發(fā)生故障,備用機 都會接替其任務繼續(xù)工作,當然,若N臺主用機全部故障,那么備用機會接替全部的工作。對 于心跳的監(jiān)測采用網絡心跳監(jiān)觀ij,心跳線釆用局域網ip,不和與外界提供服務的外網ip沖突。 并且我們采用端口監(jiān)聽的方式來監(jiān)測心跳,每條心跳線的兩側分別開放2個端口,也就是每臺 主用機和備用機分別開放兩個端口進行心跳監(jiān)測。假設主用機開放端口 A、 B對應于備用機的a、 b端口,那么從a向B發(fā)送心跳監(jiān)測包,若心跳線正常則b會收到A傳來的心跳確認包,若心跳 線斷開那么b會認為主用機已經宕掉,則備用機會接替主用機工作。由上所述,若主用機有N 種服務,則需建立N條心跳線,備用機需開啟2N個端口用于心跳監(jiān)測。如圖2所示。為了增強 心跳監(jiān)測的高可靠性,還可以增加RS232串口監(jiān)測,作為心跳監(jiān)測的冗余。
以上所述為心跳線斷開的狀況,若僅僅是主用機服務停止而心跳線未斷的情況,可以制定 如下策略-
設定一種服務的監(jiān)測模塊,其正常狀態(tài)為l,非正常狀態(tài)為0,當服務失敗時,服務監(jiān)測模 塊向監(jiān)控程序發(fā)送值為0的信息,此時備用機接到信號時立即執(zhí)行任務failover指令,接管主
用機的任務。 2. N+M方式
就是M臺服務器充當N臺服務器的備用機。此時需要一種負載監(jiān)控和任務分配的設備,以 便在主用機失效時根據不同的調度策略把任務分配到備用服務器。拓撲圖如圖3所示。
在此種方式下,每一臺備用機都安裝有主用機的全部應用,心跳監(jiān)控由任務分配器承擔, 任務分配器設置有兩種分配方式
1) 輪詢
當主用機服務故障時,分配器會根據備用機服務池中服務器的順序,把任務分配到第一臺 服務器,它均等地對待每一臺備用服務器,而不管服務器上實際的連接數和系統(tǒng)負載。
2) 最少負載
任務分配器負責監(jiān)控備用機的資源使用狀況,來決定把任務分配到哪一臺備用機,負載最 低的那一臺備用機具有接受任務的最高權限。采用最少負載方式的N+M配置的高可用系統(tǒng)流程 圖如圖四。
任務分配器監(jiān)控主、備用機的心跳,并且監(jiān)控備用的負載狀況,若心跳不正常,任務分配 器會根據備用機的負載情況把主用機的任務停止并將任務轉移到負載最低的備用機,當主用機 修復完畢,任務分配器監(jiān)測心跳正常時,便把服務切換到主用機。
為了保證系統(tǒng)的高可靠性,對任務分配器可以做冗余配置,以避免由于任務分配器故障導 致系統(tǒng)可用性降低。
權利要求
1、一種多機環(huán)境中實現系統(tǒng)高可用的方法,其特征在于一個局域網內分布有N+M臺運行各種應用程序的服務器組成一個集群環(huán)境,其中N表示主用機的數量,M表示備用機的數量,N≥1,M≥1,在集群環(huán)境內采用N+M方式實現系統(tǒng)的高可用,具體步驟如下1)一臺或N臺主用機對應M臺備用機,由M臺服務器作為該主用機的備用機,當一臺主用機有M臺備用機的時候,主用機與備用機之間通過組播方式監(jiān)測與備用機之間的心跳;2)一臺或N臺主用機有M臺備用機的情況下,在主用機發(fā)生故障時,根據備用機的負載情況,決定一臺備用機來接替主用機的工作;3)一臺或M臺備用機對應N臺主用機,為N臺主用機提供備用服務,當一臺備用機對應N臺主用機的時候,備用機通過組播方式監(jiān)測與主用機之間的心跳,備用機通過心跳線(heartbeating)方式監(jiān)測主用機工作狀態(tài),當備用機監(jiān)測到主用機發(fā)生故障時,備用機在用戶感覺不到服務中斷的情況下接管主用機的工作,對外提供主用機原來提供的服務,具體的監(jiān)測和切換步驟如下a、備用機實時監(jiān)控主用機狀態(tài),當發(fā)現服務停止或者心跳線中斷,于是主用機便停止服務進程,釋放所使用資源包括共享存儲,以及對外提供服務的ip、主機別名;備用機接管主用機釋放的資源,繼續(xù)提供服務并且繼續(xù)監(jiān)控主用機心跳,以確定主用機是否被修復;b、備用機在主用機不工作的狀態(tài)下繼續(xù)監(jiān)聽心跳,當發(fā)生故障的主用機完成修復,重新加入到集群中時,備用機檢測到主用機心跳恢復正常,備用機停止服務進程,釋放所使用的資源;主用機接管備用機的資源對外提供服務,備用機繼續(xù)監(jiān)控主用機心跳。
2. 根據權利要求1所的方法,其特征在于,M臺服務器充當N臺主用機的備用機時,設置 一臺服務器作任務分配器負責監(jiān)控和任務的分配,設置第二臺服務器做冗余任務分配,在主用 機失效時根據調度策略把任務分配到備用服務器,在此種方式下,每一臺備用機都安裝有主用 機的全部應用,心跳監(jiān)控由任務分配器承擔,任務分配器設置有兩種分配方式1) 輪詢當主用機服務故障時,任務分配器會根據備用機服務池中服務器的順序,把任務分配到第 一臺服務器,它均等地對待每一臺備用服務器,而不管服務器上實際的連接數和系統(tǒng)負載;2) 最少負載任務分配器負責監(jiān)控備用機的資源使用狀況,來決定把任務分配到哪一臺備用機,負載最 低的那一臺備用機具有接受任務的最高權限;3) 任務分配器監(jiān)控主、備用機的心跳,并且監(jiān)控備用的負載狀況,若心跳不正常,任務分 配器會根據備用機的負載情況把主用機的任務停止并將任務轉移到負載最低的備用機,當主用 機修復完畢,任務分配器監(jiān)測心跳TH常時,便把服務切換到主用機;4) 冗余任務分配器在任務分配器出現故障時,任務分配由冗余任務分配器接替。
全文摘要
本發(fā)明涉及一種多機環(huán)境中實現系統(tǒng)高可用的方法,是在多機環(huán)境中,一臺或M臺備用機對應N臺主用機,為N臺主用機提供備用服務,當一臺備用機對應N臺主用機的時候,備用機通過組播方式監(jiān)測與主用機之間的心跳,備用機通過心跳線(heart beating)方式監(jiān)測主用機工作狀態(tài),當備用機監(jiān)測到主用機發(fā)生故障時,備用機在用戶感覺不到服務中斷的情況下接管主用機的工作,對外提供主用機原來提供的服務,實現應用的連續(xù)不中斷。本發(fā)明的有益效果是解決了高可用系統(tǒng)的可擴展性,在一個復雜的具有多種應用的多機環(huán)境中能夠以較低的成本實現系統(tǒng)的高可用性,并能夠提高系統(tǒng)資源的利用率。
文檔編號H04L12/24GK101179432SQ20071011516
公開日2008年5月14日 申請日期2007年12月13日 優(yōu)先權日2007年12月13日
發(fā)明者尹宏偉, 勛 李, 王守昊, 苑鴻劍 申請人:浪潮電子信息產業(yè)股份有限公司