雙機備份和叢集的原理與比較

therorawt發表於2007-08-27

[轉載:http://hi.baidu.com/oracle_10g/blog/item/1f931317e0927c034a90a7e7.html]

一、 雙機備份和叢集的原理與比較
什麼是雙機熱備?
所謂雙機熱備就是使用互為備份的兩臺伺服器共同執行同一服務,其中一臺主機為工作機(Primary Server),另一臺主機為備份機(Standby Server)。在系統正常情況下,工作機為應用系統提供服務,備份機監視工作機的執行情況(工作機同時也在檢測備份機是否正常),當工作機出現異常,不能支援應用系統運營時,備份機主動接管工作機的工作,繼續支援關鍵應用服務,保證系統不間斷的執行。

[@more@]什麼情況下需要採用雙機熱備?
使用者可以根據系統的重要性以及終端使用者對服務中斷的容忍程度決定是否使用雙機熱備。比如網路中的使用者最多能容忍多長時間恢復服務?如果服務不能很快恢復會造成什麼樣的後果等。對於承擔企業關鍵業務應用的伺服器需要極高的穩定性和可用性,需要7×24不間斷服務,推薦使用雙機熱備。
我已經有了RAID,以及磁帶備份,還有必要做雙機嗎?或者,如果我做了雙機備份,還有必要做磁帶備份嗎?
RAID和資料備份都是很重要的。但RAID技術只能解決硬碟的問題,備份只能解決系統出現問題後的恢復。而一旦伺服器本身出現問題,不論是裝置的硬體問題還是軟體系統的問題,都會造成服務的中斷。因此,RAID及資料備份技術不能避免服務中斷出現,對於需要持續可靠地提供應用服務的系統,雙機還是非常必要的。 資料備份是保障資料安全性的必不可少的措施。因為不論RAID還是雙機,都是一種實時的備份。任何軟體錯誤、病毒影響、誤操作等等,都會同步地在多份資料中發生影響。因此,對於關鍵業務即使採用了雙機方案也還是一定要進行資料的備份,以便能在資料損壞、丟失時進行恢復。
如何選擇與實施雙機熱備的配置方案?
以應用為主導,以高可用性為宗旨,分析需求的必要性; 2. 選擇確定具體的裝置、軟體的型號等。需要注意的是: 不同的軟體或是硬碟等儲存裝置,他們之間存在相容性的問題,因此在購買之前應諮詢專業人員,避免出現採購了雙機軟體後對相關的儲存裝置存在不相容等現象。 3.在實施完成後,一定要進行測試,以確保工作正常,而且應注意在執行過程中定期的對系統是否能夠正常切換進行測試。
叢集的概念
叢集是oracle高可用性產品設計的核心,使得oracle在出現問題時可以從一個節點切換到另外一個節點。RAC採用了共享磁碟型別的叢集,允許所有群集中節點同時訪問資料。任何時刻都有一組資料檔案可以供所有節點訪問。RAC的最終目標是提供高度的可管理性,和同單個計算機上執行單個oracle資料庫例項。Oracle能自動在叢集的多個節點之間平衡負載。
雙機熱備方案與叢集的區別?

答:從概念上來講,雙機熱備屬於叢集中的一種。叢集一般包括兩類:一類是純應用伺服器的叢集,即各個應用伺服器都訪問統一的資料庫伺服器,但彼些 並不需要檔案共享儲存等,這種叢集是比較簡單的。另一類是資料庫伺服器的雙機熱備,這種雙機熱備實現,一般是兩臺伺服器同時使用共享的儲存裝置,並且在普 遍的情況下,均採取主、備的方式(也有高階的系統採用並行的方式,即兩臺伺服器同時提供服務)。


常見問題與方案選擇
對於企業重要的應用系統而言,保證系統能持續、可靠地提供服務是非常重要的,因此就出現了對高可用性的需求和高可用性的解決方案。
對於如何選擇高可用性的解決方案,特別是關於雙機熱備的方案選擇,常見的有以下問題:
Q:已經採取了RAID技術和資料備份技術,還有必要做雙機嗎?
A:參見:雙機熱備與資料備份及RAID的關係
Q:高可用性的解決方案有哪些?
A:從廣義講,高可用性包括一切避免系統服務中斷的技術。而一般所說的系統高可用性,往往特指伺服器的雙機或多機熱備/容錯。
Q:什麼時候需要雙機熱備?
A:決定是否使用雙機熱備,正確的方法是要分析一下系統的重要性以及對服務中斷的容忍程度,以此決定是否使用雙機熱備。即,你的使用者能容忍多長時間恢復服務,如果服務不能恢復會造成多大的影響。
Q:雙機熱備、雙機互備與雙機雙工三個概念都是什麼意思?有什麼區別?
A:參見:雙機熱備、雙機互備與雙機雙工的區別
Q:雙機熱備方案與叢集的區別?
A:從概念上,雙機熱備是叢集(Cluster)的一種。叢集一般包括兩類,一類是純粹應用伺服器的叢集,各個應用伺服器都訪問統一的資料庫服務 器,但彼些並不需要共享儲存,這種叢集是比較簡單的,往往採取各個伺服器同時提供服務的方式,並且往往同時採用負載均衡技術。有關應用服務的叢集,請參 見:談Web伺服器和應用伺服器的負載均衡
另一類是資料庫伺服器(或其他需要訪問儲存資料的系統如Exchange、Notes)的叢集。叢集可能包括多臺伺服器。叢集軟體除了支援雙機工作外,還可以支援多臺伺服器(Multi Node)工作,同時部署多個應用,並在多個伺服器間靈活地設定接管策略。請參見:雙機、叢集的配置模式-主從、互備、多點叢集 雙機軟體與叢集軟體的異同
Q:資料庫服務的高可用性有幾種方式?
A:最簡單的,是採用備機的方式。這其實不屬於高可用性的範圍,但可以將出現故障後恢復服務的時間控制在幾十分鐘的量級,而且備機平時還可用作其他 用途。這種方式是一種低成本的簡單方案,對於不是非常重要的應用比較適合。它不適用於重要應用,但是除非你的應用停上幾天都無所謂,否則至少要有這一級別 的保護措施。
第二種是透過軟體方式實現雙機熱備。即不採用共享的儲存裝置,而是資料不再單點儲存,本機資料可以向多臺主機做實時的資料複製。這種方式的優點是節 省了昂貴的儲存裝置投資。缺點是或者會產生資料的差異,或者會影響資料庫的速度。比如,如果在服務中斷時切換到備機,則可能有少量已經在主機完成的事務在 備機上尚未實現。而與備份資料的恢復不同,備機啟動後,後續的操作已經進行,因此丟失的事務就很難補上。因此,這種方式適用於對於丟失少量資料不是非常敏 感的系統。
有關這種方式的深入探討,可參見:映象與HA-資料庫雙機熱備的兩種方式
第三種是基於共享儲存裝置和雙機軟體實現雙機熱備。這是標準的方法,能夠在無人值守的情況下提供秒級的切換,並且不會丟失資料。當然,投資會比較高。
Q:資料庫雙機熱備時,雙機是同時工作嗎?
A:在一般的中小規模應用中,資料庫的雙機熱備都是主/備方式,主伺服器工作時另一臺等待,在主伺服器出現故障時藉助雙機軟體自動切換至另一臺服務 器。而有些大規模應用為充分利用裝置,可以採用並行服務的方式,兩臺伺服器同時提供服務,如Oracle的RAC(Oracle Real Application Cluster),以及支援SQL Server並行服務的資料庫路由器軟體ICX
Q:如何選擇與實施系統高可用性方案?
A:參見:如何選擇與實施系統高可用性方案?



雙機熱備與資料備份的關係
一些使用者在規劃雙機熱備或雙機備份時,會有這樣的問題:我已經有了RAID,以及磁帶備份,還有必須做雙機嗎?或者,如果我做了雙機備份,還有必要做磁帶備份嗎?
應該說RAID和資料備份都是很重要的。但是,RAID技術只能解決硬碟的問題,備份只能解決系統出現問題後的恢復。而一旦伺服器本身出現問題, 不論是裝置的硬體問題還是軟體系統的問題,都會造成服務的中斷。因此,RAID及資料備份技術不能解決避免服務中斷的問題。對於需要持續可靠地提供應用服 務的系統,雙機還是非常重要的。只要想一想,如果你的伺服器壞了,你要用多少時間將其恢復到能正常工作,你的使用者能容忍多長的恢復時間就能理解雙機的重要 性了。
從另外一個方面,RAID以及磁帶備份也是非常需要的。對於RAID而言,可以以很低的成本大大提高系統的可靠性,而且其複雜程度遠遠低於雙機。 因為畢竟硬碟是系統中機械操作最頻繁、易損率最高的部件,如果採用RAID,就可以使出現故障的系統很容易修復,也減少伺服器停機進行切換的次數。
資料備份更是必不可少的措施。因為不論RAID還是雙機,都是一種實時的備份。任何軟體錯誤、病毒影響、誤操作等等,都會同步地在多份資料中發生 影響。因此,一定要進行資料的備份(不論採取什麼介質,都建議使用者至少要有一份離線的備份),以便能在資料損壞、丟失時進行恢復。

雙機熱備、雙機互備與雙機雙工的區別
雙機熱備即是目前通常所說的active/standby方式,伺服器資料包括資料庫資料同時往兩臺或多臺伺服器寫,或者使用一個共享的儲存裝置。當 active伺服器出現故障的時候,透過軟體診測(一般是透過心跳診斷)將standby機器啟用,保證應用在短時間內完全恢復正常使用。
雙機互備,在雙機熱備的基礎上,兩個相對獨立的應用在兩臺機器同時執行,但彼此均設為備機,當某一臺伺服器出現故障時,另一臺伺服器可以在短時間內將故 障伺服器的應用接管過來,從而保證了應用的持續性。這種方式實際上是雙機熱備的一種應用。它避免了兩個應用使用四臺伺服器分別實現雙機熱備。
雙機雙工,兩臺或多臺伺服器均為活動,同時執行相同的應用,保證整體的效能,也實現了負載均衡和互為備份。需要利用磁碟櫃儲存技術(最好採用san)。對於資料庫服務而言,它同時需要資料庫軟體的支援,是比較複雜的。而WEB伺服器或應用伺服器就比較簡單了,可參見:談Web伺服器和應用伺服器的負載均衡



雙機軟體與叢集軟體的異同
在雙機熱備應用方面,有兩大類軟體產品。一類是雙機軟體(HA),另一類則稱作叢集軟體(Cluster)。這兩類軟體的異同在什麼地方呢?
它們都是為實現系統的高可用性服務的,都解決了一臺伺服器出現故障時,由其他伺服器接管應用,從而持續可靠地提供服務的問題。
它們都是透過心跳技術在進行系統檢測。
但是,雙機軟體只能支援兩臺伺服器以主從方式或互備方式工作。而叢集軟體除了支援雙機工作外,還可以支援多臺伺服器(Multi Node)工作,同時部署多個應用,並在多個伺服器間靈活地設定接管策略。
在兩種情況下需要使用叢集軟體:一是有超過兩個應用,本身就需要部署三臺或更多的伺服器。二是隻有兩個應用,但每個應用的負載均較大,不宜採用雙機互備的方式,而是需要由第三臺伺服器來作為這兩個應用的備機。
一般地講,叢集軟體具有更多的技術含量,具備更高的可靠性。同時,往往價格(平均到每臺伺服器)也高於雙機軟體。
在選擇產品時,應根據應用的實際情況來確定。最理想的方式,則是在應用數量少、負載不是很大時先使用雙機軟體,然後在應用數量增多、負載增大時平滑過渡到叢集軟體。
典型的支援多點叢集的熱備軟體,參見:LanderCluster叢集軟體)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9896745/viewspace-966394/,如需轉載,請註明出處,否則將追究法律責任。

相關文章