一、 雙機(jī)備份和集群的原理與比較
什么是雙機(jī)熱備?
所謂雙機(jī)熱備就是使用互為備份的兩臺(tái)服務(wù)器共同執(zhí)行同一服務(wù),其中一臺(tái)主機(jī)為工作機(jī)(Primary Server),另一臺(tái)主機(jī)為備份機(jī)(Standby Server)。在系統(tǒng)正常情況下,工作機(jī)為應(yīng)用系統(tǒng)提供服務(wù),備份機(jī)監(jiān)視工作機(jī)的運(yùn)行情況(工作機(jī)同時(shí)也在檢測(cè)備份機(jī)是否正常),當(dāng)工作機(jī)出現(xiàn)異常,不能支持應(yīng)用系統(tǒng)運(yùn)營(yíng)時(shí),備份機(jī)主動(dòng)接管工作機(jī)的工作,繼續(xù)支持關(guān)鍵應(yīng)用服務(wù),保證系統(tǒng)不間斷的運(yùn)行。
什么情況下需要采用雙機(jī)熱備?
用戶可以根據(jù)系統(tǒng)的重要性以及終端用戶對(duì)服務(wù)中斷的容忍程度決定是否使用雙機(jī)熱備。比如網(wǎng)絡(luò)中的用戶最多能容忍多長(zhǎng)時(shí)間恢復(fù)服務(wù)?如果服務(wù)不能很快恢復(fù)會(huì)造成什么樣的后果等。對(duì)于承擔(dān)企業(yè)關(guān)鍵業(yè)務(wù)應(yīng)用的服務(wù)器需要極高的穩(wěn)定性和可用性,需要7×24不間斷服務(wù),推薦使用雙機(jī)熱備。
我已經(jīng)有了RAID,以及磁帶備份,還有必要做雙機(jī)嗎?或者,如果我做了雙機(jī)備份,還有必要做磁帶備份嗎?
RAID和數(shù)據(jù)備份都是很重要的。但RAID技術(shù)只能解決硬盤的問題,備份只能解決系統(tǒng)出現(xiàn)問題后的恢復(fù)。而一旦服務(wù)器本身出現(xiàn)問題,不論是設(shè)備的硬件問題還是軟件系統(tǒng)的問題,都會(huì)造成服務(wù)的中斷。因此,RAID及數(shù)據(jù)備份技術(shù)不能避免服務(wù)中斷出現(xiàn),對(duì)于需要持續(xù)可靠地提供應(yīng)用服務(wù)的系統(tǒng),雙機(jī)還是非常必要的。 數(shù)據(jù)備份是保障數(shù)據(jù)安全性的必不可少的措施。因?yàn)椴徽揜AID還是雙機(jī),都是一種實(shí)時(shí)的備份。任何軟件錯(cuò)誤、病毒影響、誤操作等等,都會(huì)同步地在多份數(shù)據(jù)中發(fā)生影響。因此,對(duì)于關(guān)鍵業(yè)務(wù)即使采用了雙機(jī)方案也還是一定要進(jìn)行數(shù)據(jù)的備份,以便能在數(shù)據(jù)損壞、丟失時(shí)進(jìn)行恢復(fù)。
如何選擇與實(shí)施雙機(jī)熱備的配置方案?
1.以應(yīng)用為主導(dǎo),以高可用性為宗旨,分析需求的必要性; 2. 選擇確定具體的設(shè)備、軟件的型號(hào)等。需要注意的是: 不同的軟件或是硬盤等存儲(chǔ)設(shè)備,他們之間存在兼容性的問題,因此在購(gòu)買之前應(yīng)咨詢專業(yè)人員,避免出現(xiàn)采購(gòu)了雙機(jī)軟件后對(duì)相關(guān)的存儲(chǔ)設(shè)備存在不兼容等現(xiàn)象。 3.在實(shí)施完成后,一定要進(jìn)行測(cè)試,以確保工作正常,而且應(yīng)注意在運(yùn)行過程中定期的對(duì)系統(tǒng)是否能夠正常切換進(jìn)行測(cè)試。
集群的概念
集群是oracle高可用性產(chǎn)品設(shè)計(jì)的核心,使得oracle在出現(xiàn)問題時(shí)可以從一個(gè)節(jié)點(diǎn)切換到另外一個(gè)節(jié)點(diǎn)。RAC采用了共享磁盤類型的集群,允許所有群集中節(jié)點(diǎn)同時(shí)訪問數(shù)據(jù)。任何時(shí)刻都有一組數(shù)據(jù)文件可以供所有節(jié)點(diǎn)訪問。RAC的最終目標(biāo)是提供高度的可管理性,和同單個(gè)計(jì)算機(jī)上運(yùn)行單個(gè)oracle數(shù)據(jù)庫(kù)實(shí)例。Oracle能自動(dòng)在集群的多個(gè)節(jié)點(diǎn)之間平衡負(fù)載。
雙機(jī)熱備方案與集群的區(qū)別?
答:從概念上來(lái)講,雙機(jī)熱備屬于集群中的一種。集群一般包括兩類:一類是純應(yīng)用服務(wù)器的集群,即各個(gè)應(yīng)用服務(wù)器都訪問統(tǒng)一的數(shù)據(jù)庫(kù)服務(wù)器,但彼些 并不需要文件共享存儲(chǔ)等,這種集群是比較簡(jiǎn)單的。另一類是數(shù)據(jù)庫(kù)服務(wù)器的雙機(jī)熱備,這種雙機(jī)熱備實(shí)現(xiàn),一般是兩臺(tái)服務(wù)器同時(shí)使用共享的存儲(chǔ)設(shè)備,并且在普 遍的情況下,均采取主、備的方式(也有高端的系統(tǒng)采用并行的方式,即兩臺(tái)服務(wù)器同時(shí)提供服務(wù))。
常見問題與方案選擇
對(duì)于企業(yè)重要的應(yīng)用系統(tǒng)而言,保證系統(tǒng)能持續(xù)、可靠地提供服務(wù)是非常重要的,因此就出現(xiàn)了對(duì)高可用性的需求和高可用性的解決方案。
對(duì)于如何選擇高可用性的解決方案,特別是關(guān)于雙機(jī)熱備的方案選擇,常見的有以下問題:
Q:已經(jīng)采取了RAID技術(shù)和數(shù)據(jù)備份技術(shù),還有必要做雙機(jī)嗎?
A:參見:雙機(jī)熱備與數(shù)據(jù)備份及RAID的關(guān)系
Q:高可用性的解決方案有哪些?
A:從廣義講,高可用性包括一切避免系統(tǒng)服務(wù)中斷的技術(shù)。而一般所說的系統(tǒng)高可用性,往往特指服務(wù)器的雙機(jī)或多機(jī)熱備/容錯(cuò)。
Q:什么時(shí)候需要雙機(jī)熱備?
A:決定是否使用雙機(jī)熱備,正確的方法是要分析一下系統(tǒng)的重要性以及對(duì)服務(wù)中斷的容忍程度,以此決定是否使用雙機(jī)熱備。即,你的用戶能容忍多長(zhǎng)時(shí)間恢復(fù)服務(wù),如果服務(wù)不能恢復(fù)會(huì)造成多大的影響。
Q:雙機(jī)熱備、雙機(jī)互備與雙機(jī)雙工三個(gè)概念都是什么意思?有什么區(qū)別?
A:參見:雙機(jī)熱備、雙機(jī)互備與雙機(jī)雙工的區(qū)別
Q:雙機(jī)熱備方案與集群的區(qū)別?
A:從概念上,雙機(jī)熱備是集群(Cluster)的一種。集群一般包括兩類,一類是純粹應(yīng)用服務(wù)器的集群,各個(gè)應(yīng)用服務(wù)器都訪問統(tǒng)一的數(shù)據(jù)庫(kù)服務(wù) 器,但彼些并不需要共享存儲(chǔ),這種集群是比較簡(jiǎn)單的,往往采取各個(gè)服務(wù)器同時(shí)提供服務(wù)的方式,并且往往同時(shí)采用負(fù)載均衡技術(shù)。有關(guān)應(yīng)用服務(wù)的集群,請(qǐng)參 見:談Web服務(wù)器和應(yīng)用服務(wù)器的負(fù)載均衡
另一類是數(shù)據(jù)庫(kù)服務(wù)器(或其他需要訪問存儲(chǔ)數(shù)據(jù)的系統(tǒng)如Exchange、Notes)的集群。集群可能包括多臺(tái)服務(wù)器。集群軟件除了支持雙機(jī)工作外,還可以支持多臺(tái)服務(wù)器(Multi Node)工作,同時(shí)部署多個(gè)應(yīng)用,并在多個(gè)服務(wù)器間靈活地設(shè)置接管策略。請(qǐng)參見:雙機(jī)、集群的配置模式-主從、互備、多點(diǎn)集群 雙機(jī)軟件與集群軟件的異同
Q:數(shù)據(jù)庫(kù)服務(wù)的高可用性有幾種方式?
A:最簡(jiǎn)單的,是采用備機(jī)的方式。這其實(shí)不屬于高可用性的范圍,但可以將出現(xiàn)故障后恢復(fù)服務(wù)的時(shí)間控制在幾十分鐘的量級(jí),而且備機(jī)平時(shí)還可用作其他 用途。這種方式是一種低成本的簡(jiǎn)單方案,對(duì)于不是非常重要的應(yīng)用比較適合。它不適用于重要應(yīng)用,但是除非你的應(yīng)用停上幾天都無(wú)所謂,否則至少要有這一級(jí)別 的保護(hù)措施。
第二種是通過軟件方式實(shí)現(xiàn)雙機(jī)熱備。即不采用共享的存儲(chǔ)設(shè)備,而是數(shù)據(jù)不再單點(diǎn)存儲(chǔ),本機(jī)數(shù)據(jù)可以向多臺(tái)主機(jī)做實(shí)時(shí)的數(shù)據(jù)復(fù)制。這種方式的優(yōu)點(diǎn)是節(jié) 省了昂貴的存儲(chǔ)設(shè)備投資。缺點(diǎn)是或者會(huì)產(chǎn)生數(shù)據(jù)的差異,或者會(huì)影響數(shù)據(jù)庫(kù)的速度。比如,如果在服務(wù)中斷時(shí)切換到備機(jī),則可能有少量已經(jīng)在主機(jī)完成的事務(wù)在 備機(jī)上尚未實(shí)現(xiàn)。而與備份數(shù)據(jù)的恢復(fù)不同,備機(jī)啟動(dòng)后,后續(xù)的操作已經(jīng)進(jìn)行,因此丟失的事務(wù)就很難補(bǔ)上。因此,這種方式適用于對(duì)于丟失少量數(shù)據(jù)不是非常敏 感的系統(tǒng)。
有關(guān)這種方式的深入探討,可參見:鏡像與HA-數(shù)據(jù)庫(kù)雙機(jī)熱備的兩種方式
第三種是基于共享存儲(chǔ)設(shè)備和雙機(jī)軟件實(shí)現(xiàn)雙機(jī)熱備。這是標(biāo)準(zhǔn)的方法,能夠在無(wú)人值守的情況下提供秒級(jí)的切換,并且不會(huì)丟失數(shù)據(jù)。當(dāng)然,投資會(huì)比較高。
Q:數(shù)據(jù)庫(kù)雙機(jī)熱備時(shí),雙機(jī)是同時(shí)工作嗎?
A:在一般的中小規(guī)模應(yīng)用中,數(shù)據(jù)庫(kù)的雙機(jī)熱備都是主/備方式,主服務(wù)器工作時(shí)另一臺(tái)等待,在主服務(wù)器出現(xiàn)故障時(shí)借助雙機(jī)軟件自動(dòng)切換至另一臺(tái)服務(wù) 器。而有些大規(guī)模應(yīng)用為充分利用設(shè)備,可以采用并行服務(wù)的方式,兩臺(tái)服務(wù)器同時(shí)提供服務(wù),如Oracle的RAC(Oracle Real Application Cluster),以及支持SQL Server并行服務(wù)的數(shù)據(jù)庫(kù)路由器軟件ICX
Q:如何選擇與實(shí)施系統(tǒng)高可用性方案?
A:參見:如何選擇與實(shí)施系統(tǒng)高可用性方案?
雙機(jī)熱備與數(shù)據(jù)備份的關(guān)系
一些用戶在規(guī)劃雙機(jī)熱備或雙機(jī)備份時(shí),會(huì)有這樣的問題:我已經(jīng)有了RAID,以及磁帶備份,還有必須做雙機(jī)嗎?或者,如果我做了雙機(jī)備份,還有必要做磁帶備份嗎?
應(yīng)該說RAID和數(shù)據(jù)備份都是很重要的。但是,RAID技術(shù)只能解決硬盤的問題,備份只能解決系統(tǒng)出現(xiàn)問題后的恢復(fù)。而一旦服務(wù)器本身出現(xiàn)問題, 不論是設(shè)備的硬件問題還是軟件系統(tǒng)的問題,都會(huì)造成服務(wù)的中斷。因此,RAID及數(shù)據(jù)備份技術(shù)不能解決避免服務(wù)中斷的問題。對(duì)于需要持續(xù)可靠地提供應(yīng)用服 務(wù)的系統(tǒng),雙機(jī)還是非常重要的。只要想一想,如果你的服務(wù)器壞了,你要用多少時(shí)間將其恢復(fù)到能正常工作,你的用戶能容忍多長(zhǎng)的恢復(fù)時(shí)間就能理解雙機(jī)的重要 性了。
從另外一個(gè)方面,RAID以及磁帶備份也是非常需要的。對(duì)于RAID而言,可以以很低的成本大大提高系統(tǒng)的可靠性,而且其復(fù)雜程度遠(yuǎn)遠(yuǎn)低于雙機(jī)。 因?yàn)楫吘褂脖P是系統(tǒng)中機(jī)械操作最頻繁、易損率最高的部件,如果采用RAID,就可以使出現(xiàn)故障的系統(tǒng)很容易修復(fù),也減少服務(wù)器停機(jī)進(jìn)行切換的次數(shù)。
數(shù)據(jù)備份更是必不可少的措施。因?yàn)椴徽揜AID還是雙機(jī),都是一種實(shí)時(shí)的備份。任何軟件錯(cuò)誤、病毒影響、誤操作等等,都會(huì)同步地在多份數(shù)據(jù)中發(fā)生 影響。因此,一定要進(jìn)行數(shù)據(jù)的備份(不論采取什么介質(zhì),都建議用戶至少要有一份脫機(jī)的備份),以便能在數(shù)據(jù)損壞、丟失時(shí)進(jìn)行恢復(fù)。
雙機(jī)熱備、雙機(jī)互備與雙機(jī)雙工的區(qū)別
雙機(jī)熱備即是目前通常所說的active/standby方式,服務(wù)器數(shù)據(jù)包括數(shù)據(jù)庫(kù)數(shù)據(jù)同時(shí)往兩臺(tái)或多臺(tái)服務(wù)器寫,或者使用一個(gè)共享的存儲(chǔ)設(shè)備。當(dāng) active服務(wù)器出現(xiàn)故障的時(shí)候,通過軟件診測(cè)(一般是通過心跳診斷)將standby機(jī)器激活,保證應(yīng)用在短時(shí)間內(nèi)完全恢復(fù)正常使用。
雙機(jī)互備,在雙機(jī)熱備的基礎(chǔ)上,兩個(gè)相對(duì)獨(dú)立的應(yīng)用在兩臺(tái)機(jī)器同時(shí)運(yùn)行,但彼此均設(shè)為備機(jī),當(dāng)某一臺(tái)服務(wù)器出現(xiàn)故障時(shí),另一臺(tái)服務(wù)器可以在短時(shí)間內(nèi)將故 障服務(wù)器的應(yīng)用接管過來(lái),從而保證了應(yīng)用的持續(xù)性。這種方式實(shí)際上是雙機(jī)熱備的一種應(yīng)用。它避免了兩個(gè)應(yīng)用使用四臺(tái)服務(wù)器分別實(shí)現(xiàn)雙機(jī)熱備。
雙機(jī)雙工,兩臺(tái)或多臺(tái)服務(wù)器均為活動(dòng),同時(shí)運(yùn)行相同的應(yīng)用,保證整體的性能,也實(shí)現(xiàn)了負(fù)載均衡和互為備份。需要利用磁盤柜存儲(chǔ)技術(shù)(最好采用san)。對(duì)于數(shù)據(jù)庫(kù)服務(wù)而言,它同時(shí)需要數(shù)據(jù)庫(kù)軟件的支持,是比較復(fù)雜的。而WEB服務(wù)器或應(yīng)用服務(wù)器就比較簡(jiǎn)單了,可參見:談Web服務(wù)器和應(yīng)用服務(wù)器的負(fù)載均衡
雙機(jī)軟件與集群軟件的異同
在雙機(jī)熱備應(yīng)用方面,有兩大類軟件產(chǎn)品。一類是雙機(jī)軟件(HA),另一類則稱作集群軟件(Cluster)。這兩類軟件的異同在什么地方呢?
它們都是為實(shí)現(xiàn)系統(tǒng)的高可用性服務(wù)的,都解決了一臺(tái)服務(wù)器出現(xiàn)故障時(shí),由其他服務(wù)器接管應(yīng)用,從而持續(xù)可靠地提供服務(wù)的問題。
它們都是通過心跳技術(shù)在進(jìn)行系統(tǒng)檢測(cè)。
但是,雙機(jī)軟件只能支持兩臺(tái)服務(wù)器以主從方式或互備方式工作。而集群軟件除了支持雙機(jī)工作外,還可以支持多臺(tái)服務(wù)器(Multi Node)工作,同時(shí)部署多個(gè)應(yīng)用,并在多個(gè)服務(wù)器間靈活地設(shè)置接管策略。
在兩種情況下需要使用集群軟件:一是有超過兩個(gè)應(yīng)用,本身就需要部署三臺(tái)或更多的服務(wù)器。二是只有兩個(gè)應(yīng)用,但每個(gè)應(yīng)用的負(fù)載均較大,不宜采用雙機(jī)互備的方式,而是需要由第三臺(tái)服務(wù)器來(lái)作為這兩個(gè)應(yīng)用的備機(jī)。
一般地講,集群軟件具有更多的技術(shù)含量,具備更高的可靠性。同時(shí),往往價(jià)格(平均到每臺(tái)服務(wù)器)也高于雙機(jī)軟件。
在選擇產(chǎn)品時(shí),應(yīng)根據(jù)應(yīng)用的實(shí)際情況來(lái)確定。最理想的方式,則是在應(yīng)用數(shù)量少、負(fù)載不是很大時(shí)先使用雙機(jī)軟件,然后在應(yīng)用數(shù)量增多、負(fù)載增大時(shí)平滑過渡到集群軟件。
典型的支持多點(diǎn)集群的熱備軟件,參見:LanderCluster集群軟件)