雙機熱備系統
雙機熱備系統
雙機熱備系統是集群的最小組成單位,就是將中心伺服器安裝成互為備份的兩台伺服器,並且在同一時間內只有一台伺服器運行。當其中運行著的一台伺服器出現故障無法啟動時,另一台備份伺服器會迅速的自動啟動並運行(一般為數分鐘左右),從而保證整個網路系統的正常運行!雙機熱備的工作機制實際上是為整個網路系統的中心伺服器提供了一種故障自動恢復能力。
雙機熱備定義
雙機熱備包括廣義與狹義兩種。
從廣義上講,就是對於重要的服務,使用兩台伺服器,互相備份,共同執行同一服務。當一台伺服器出現故障時,可以由另一台伺服器承擔服務任務,從而在不需要人工干預的情況下,自動保證系統能持續提供服務。
從狹義上講,雙機熱備特指基於active/standby方式的伺服器熱備。伺服器數據包括資料庫數據同時往兩台或多台伺服器寫,或者使用一個共享的存儲設備。在同一時間內只有一台伺服器運行。當其中運行著的一台伺服器出現故障無法啟動時,另一台備份伺服器會通過軟體診測(一般是通過心跳診斷)將standby機器激活,保證應用在短時間內完全恢復正常使用。
雙機熱備針對的是伺服器的故障。伺服器的故障可能由各種原因引起,如設備故障、操作系統故障、軟體系統故障等等。一般地講,在技術人員在現場的情況下,恢復伺服器正常可能需要10分鐘、幾小時甚至幾天。從實際經驗上看,除非是簡單地重啟伺服器(可能隱患仍然存在),否則往往需要幾個小時以上。而如果技術人員不在現場,則恢復服務的時間就更長了。
而對於一些重要系統而言,用戶是很難忍受這樣長時間的服務中斷的。因此,就需要通過雙機熱備,來避免長時間的服務中斷,保證系統長期、可靠的服務。
決定是否使用雙機熱備,正確的方法是要分析一下系統的重要性以及對服務中斷的容忍程度,以此決定是否使用雙機熱備。即,你的用戶能容忍多長時間恢復服務,如果服務不能恢復會造成多大的影響。
我們可以通過典型的雙機熱備軟體PCL HA來看一下雙機熱備的典型模式:
-Active/Active模式
-Active/Standby模式
而實際上,雙機熱備可能會擴展為多機的集群:多機集群模式
雙機熱備一般都是用於有資料庫或其他數據的應用。而對於數據之前的應用伺服器(或其他沒有寫數據操作的服務),則應該歸入負載均衡領域。
基於共享存儲與純軟體方式
雙機熱備有兩種實現模式,一種是基於共享的存儲設備的方式,另一種是沒有共享的存儲設備的方式,一般稱為純軟體方式。
基於存儲共享的雙機熱備是雙機熱備的最標準方案。
對於這種方式,採用兩台伺服器,使用共享的存儲設備(磁碟陣列櫃或存儲區域網SAN)。兩台伺服器可以採用互備、主從、并行等不同的方式。在工作過程中,兩台伺服器將以一個虛擬的IP地址對外提供服務,依工作方式的不同,將服務請求發送給其中一台伺服器承擔。同時,伺服器通過心跳線(往往採用建立私有網路的方式)偵測另一台伺服器的工作狀況。當一台伺服器出現故障時,另一台伺服器根據心跳偵測的情況做出判斷,並進行切換,接管服務。對於用戶而言,這一過程是全自動的,在很短時間內完成,從而對業務不會造成影響。由於使用共享的存儲設備,因此兩台伺服器使用的實際上是一樣的數據,由雙機或集群軟體對其進行管理。
對於純軟體的方式,則是通過支持鏡像的雙機軟體,將數據可以實時複製到另一台伺服器上,這樣同樣的數據就在兩台伺服器上各存在一份,如果一台伺服器出現故障,可以及時切換到另一台伺服器。
純軟體方式還有另外一種情況,即伺服器只是提供應用服務,而並不保存數據(比如只進行某些計算,做為應用伺服器使用)。這種情況下同樣也不需要使用共享的存儲設備,這種情況應該納入負載均衡領域,
【純軟體方式的雙機熱備方案深入分析】
資料庫雙機熱備有兩種典型的方式,一種是比較標準的,兩台伺服器通過一個共享的存儲設備(一般是共享的磁碟陣列或存儲區域網SAN),並且安裝雙機軟體,實現雙機熱備,稱為共享方式。另一種方式是通過純軟體的方式,一般稱為純軟體方式或鏡像方式(Mirror)。
對於共享方式,資料庫放在共享的存儲設備上。當一台伺服器提供服務時,直接在存儲設備上進行讀寫。而當系統切換后,另一台伺服器也同樣讀取該存儲設備上的數據。
純軟體方式可以在一定程度上降低成本,但它也有非常明顯的缺點:
1.可靠性相對較差,兩伺服器間的數據實時複製是一個比較脆弱的環節。
2.一旦某台伺服器出現中斷,恢復后還要進行比較複雜的數據同步恢復。並且,這個時段系統處於無保護狀態。
3.沒有事務機制,由於其複製是在文件和磁碟層進行的,複製是否成功不會影響資料庫事務操作,因此有出現數據不完整變化的情況,這個存在著相當的風險。
因此,建議除非不得已,不要選擇純軟體方案。
但另一方面,有一種資料庫并行的解決方案,它不是在文件或磁碟層進行複製,而是直接對資料庫操作在前端進行路由分發,并行地以事務機制完成資料庫的更新,同時還可以提供資料庫的并行服務。這種方式針對SQL SERVER應用非常成功,明顯優於共享存儲+雙機軟體的方式。
【雙機熱備、雙機互備與雙機雙工的區別】
雙機熱備即是通常所說的active/standby方式,當active伺服器出現故障的時候,通過軟體診測(一般是通過心跳診斷)將standby機器激活,保證應用在短時間內完全恢復正常使用。
雙機互備,在雙機熱備的基礎上,兩個相對獨立的應用在兩台機器同時運行,但彼此均設為備機,當某一台伺服器出現故障時,另一台伺服器可以在短時間內將故障伺服器的應用接管過來,從而保證了應用的持續性。這種方式實際上是雙機熱備的一種應用。它避免了兩個應用使用四台伺服器分別實現雙機熱備。
雙機雙工,兩台或多台伺服器均為活動,同時運行相同的應用,保證整體的性能,也實現了負載均衡和互為備份。需要利用磁碟櫃存儲技術(最好採用san)。對於資料庫服務而言,它同時需要資料庫軟體的支持,是比較複雜的。而WEB伺服器或應用伺服器就比較簡單了。
一些用戶在規劃雙機熱備或雙機備份時,會有這樣的問題:我已經有了RAID,以及磁帶備份,還有必要做雙機嗎?或者,如果我做了雙機備份,還有必要做磁帶備份嗎?
應該說RAID和數據備份都是很重要的。但是,RAID技術只能解決硬碟的問題,備份只能解決系統出現問題后的恢復。而一旦伺服器本身出現問題,不論是設備的硬體問題還是軟體系統的問題,都會造成服務的中斷。因此,RAID及數據備份技術不能解決避免服務中斷的問題。對於需要持續可靠地提供應用服務的系統,雙機還是非常重要的。只要想一想,如果你的伺服器壞了,你要用多少時間將其恢復到能正常工作,你的用戶能容忍多長的恢復時間就能理解雙機的重要性了。
從另外一個方面,RAID以及磁帶備份也是非常需要的。對於RAID而言,可以以很低的成本大大提高系統的可靠性,而且其複雜程度遠遠低於雙機。因為畢竟硬碟是系統中機械操作最頻繁、易損率最高的部件,如果採用RAID,就可以使出現故障的系統很容易修復,也減少伺服器停機進行切換的次數。
數據備份更是必不可少的措施。因為不論RAID還是雙機,都是一種實時的備份。任何軟體錯誤、病毒影響、誤操作等等,都會同步地在多份數據中發生影響。因此,一定要進行數據的備份(不論採取什麼介質,都建議用戶至少要有一份離線的備份),以便能在數據損壞、丟失時進行恢復。
主流應用的伺服器容錯技術有三類,它們分別是:伺服器群集技術、雙機熱備份技術和單機容錯技術。它們各自所對應的容錯級別是從低到高的,也就是說伺服器群集技術容錯級別最低,而單機容錯技術級別最高。由此可知它們各自應用的行業容錯級別需求也是從低到高的。本文主要介紹后兩種容錯技術,先來看一下雙機熱備份容錯技術。
一、雙機熱備份技術
雙機熱備份技術是一種軟硬體結合的較高容錯應用方案。該方案是由兩台伺服器系統和一個外接共享磁碟陣列櫃(也可沒有,而是在各自的伺服器中採取RAID卡)及相應的雙機熱備份軟體組成。
在這個容錯方案中,操作系統和應用程序安裝在兩台伺服器的本地系統盤上,整個網路系統的數據是通過磁碟陣列集中管理和數據備份的。數據集中管理是通過雙機熱備份系統,將所有站點的數據直接從中央存儲設備讀取和存儲,並由專業人員進行管理,極大地保護了數據的安全性和保密性。用戶的數據存放在外接共享磁碟陣列中,在一台伺服器出現故障時,備機主動替代主機工作,保證網路服務不間斷。
雙機熱備份系統採用“心跳”方法保證主系統與備用系統的聯繫。所謂“心跳”,指的是主從系統之間相互按照一定的時間間隔發送通訊信號,表明各自系統當前的運行狀態。一旦“心跳”信號表明主機系統發生故障,或者備用系統無法收到主機系統的“心跳”信號,則系統的高可用性管理軟體認為主機系統發生故障,主機停止工作,並將系統資源轉移到備用系統上,備用系統將替代主機發揮作用,以保證網路服務運行不間斷。
雙機熱備份方案中,根據兩台伺服器的工作方式可以有三種不同的工作模式,即:雙機熱備模式、雙機互備模式和雙機雙工模式。下面分別予以簡單介紹。
雙機熱備模式即通常所說的active/standby 方式,active伺服器處於工作狀態;而standby 伺服器處於監控準備狀態,伺服器數據包括資料庫數據同時往兩台或多台伺服器寫入(通常各伺服器採用RAID磁碟陣列卡),保證數據的即時同步。當 active伺服器出現故障的時候,通過軟體診測或手工方式將standby機器激活,保證應用在短時間內完全恢復正常使用。典型應用在證券資金伺服器或行情伺服器,這是採用較多的一種模式,但由於另外一台伺服器長期處於後備的狀態,從計算資源方面考量,就存在一定的浪費。
二、單機容錯技術
從上面的分析我們知道,雙機熱備份技術所採用的是兩台配置完全一樣的伺服器系統,其實伺服器群集方案中的容錯技術也是一種多伺服器容錯技術。而本節所要介紹的單機容錯技術則是在一台伺服器實現高性能容錯的,它的容錯能力要遠比伺服器群集和雙機熱備份中容錯能力要高,所以更加適合那些如證券、電信、金融、醫療等對容錯能力特別苛刻的行業。
以往的集群系統在出現故障的情況下,需要中斷伺服器的運行,然後用一定的時間切換至備用的伺服器上面進行運行,才能進行維修和恢復,這其中所付出的成本和帶來的損失是用戶最不願意看到的。具有容錯技術的容錯伺服器,最大的優勢就在於它能夠自動分離故障模塊,在不中斷運行的情況下,進行模塊調換,對損壞的部件進行維護,並且在一切物理故障消除后,系統會自動重新同步運行,從而有效的解決了客戶的後顧之憂。正因如此,具有容錯技術的容錯伺服器,正在衝擊前幾年興起的雙機熱備份和集群技術,越來越被人們所關注。同時,更為難得的是它可以在採用符合工業標準部件的伺服器中實現(IA架構伺服器),極具競爭力的成本優勢,更使得容錯伺服器令人刮目相看。
容錯伺服器是通過CPU時鐘鎖頻,通過對系統中所有硬體的備份,包括CPU、內存和I/O匯流排等的冗餘備份;通過系統內所有冗餘部件的同步運行,實現真正意義上的容錯。系統任何部件的故障都不會造成系統停頓和數據丟失。很多容錯系統是基於IA架構的伺服器,與 Windows 2000完全兼容,實現以前只有在RISC系統上才能實現的容錯。這種容錯技術在IA伺服器上的實現,將IA伺服器的可靠性提高到了99.999%,同時伺服器的運行是不間斷的。
雙機熱備份和容錯伺服器的定位稍微有些不同,這是由兩者實現的可用性差別決定的。雙機熱備份一般可以實現99.9%的可用性,容錯伺服器卻可以實現 99.999%的可用性。這樣,雙機熱備份大多應用在業務連續性不是很嚴格的行業,比如說公安系統、部隊系統或者個別的製造企業,這些行業的應用允許數據有一小段時間的中斷。而如電信、金融、證券和醫療等要求高的行業則是容錯伺服器的天下。還要注意的一點是雙機熱備份與伺服器群集並不一樣,雙機熱備份通常要求兩對路伺服器的配置完全一樣,而伺服器群集則沒有這方面的嚴格要求,這也是許多讀者容易混淆的。