什么是雙機(jī)熱備
雙機(jī)熱備包括廣義與狹義兩種。
從廣義上講,就是對(duì)于重要的服務(wù),使用兩臺(tái)服務(wù)器,互相備份,共同執(zhí)行同一服務(wù)。當(dāng)一臺(tái)服務(wù)器出現(xiàn)故障時(shí),可以由另一臺(tái)服務(wù)器承擔(dān)服務(wù)任務(wù),從而在不需要人工干預(yù)的情況下,自動(dòng)保證系統(tǒng)能持續(xù)提供服務(wù)。
從狹義上講,雙機(jī)熱備特指基于active/standby方式的服務(wù)器熱備。服務(wù)器數(shù)據(jù)包括數(shù)據(jù)庫(kù)數(shù)據(jù)同時(shí)往兩臺(tái)或多臺(tái)服務(wù)器寫(xiě),或者使用一個(gè)共享的存儲(chǔ)設(shè)備。在同一時(shí)間內(nèi)只有一臺(tái)服務(wù)器運(yùn)行。當(dāng)其中運(yùn)行著的一臺(tái)服務(wù)器出現(xiàn)故障無(wú)法啟動(dòng)時(shí),另一臺(tái)備份服務(wù)器會(huì)通過(guò)軟件診測(cè)(一般是通過(guò)心跳診斷)將standby機(jī)器激活,保證應(yīng)用在短時(shí)間內(nèi)完全恢復(fù)正常使用。
雙機(jī)熱備針對(duì)的是服務(wù)器的故障。服務(wù)器的故障可能由各種原因引起,如設(shè)備故障、操作系統(tǒng)故障、軟件系統(tǒng)故障等等。一般地講,在技術(shù)人員在現(xiàn)場(chǎng)的情況下,恢復(fù)服務(wù)器正??赡苄枰?/span>10分鐘、幾小時(shí)甚至幾天。從實(shí)際經(jīng)驗(yàn)上看,除非是簡(jiǎn)單地重啟服務(wù)器(可能隱患仍然存在),否則往往需要幾個(gè)小時(shí)以上。而如果技術(shù)人員不在現(xiàn)場(chǎng),則恢復(fù)服務(wù)的時(shí)間就更長(zhǎng)了。
而對(duì)于一些重要系統(tǒng)而言,用戶(hù)是很難忍受這樣長(zhǎng)時(shí)間的服務(wù)中斷的。因此,就需要通過(guò)雙機(jī)熱備,來(lái)避免長(zhǎng)時(shí)間的服務(wù)中斷,保證系統(tǒng)長(zhǎng)期、可靠的服務(wù)。
決定是否使用雙機(jī)熱備,正確的方法是要分析一下系統(tǒng)的重要性以及對(duì)服務(wù)中斷的容忍程度,以此決定是否使用雙機(jī)熱備。即,你的用戶(hù)能容忍多長(zhǎng)時(shí)間恢復(fù)服務(wù),如果服務(wù)不能恢復(fù)會(huì)造成多大的影響。
我們可以通過(guò)主流的睿斯雙機(jī)軟件RCS HA/MA來(lái)看一下雙機(jī)熱備和集群運(yùn)行的典型模式:
而實(shí)際上,睿斯雙機(jī)軟件RCS HA/MA可能會(huì)擴(kuò)展為多機(jī)的集群:多機(jī)集群模式
雙機(jī)熱備一般都是用于有數(shù)據(jù)庫(kù)或其他數(shù)據(jù)的應(yīng)用。而對(duì)于數(shù)據(jù)之前的應(yīng)用服務(wù)器(或其他沒(méi)有寫(xiě)數(shù)據(jù)操作的服務(wù)),則應(yīng)該歸入負(fù)載均衡領(lǐng)域。
【雙機(jī)熱備:基于共享存儲(chǔ)與純軟件方式】
睿斯雙機(jī)軟件RCS HA/MA有兩種實(shí)現(xiàn)模式,一種是基于共享的存儲(chǔ)設(shè)備的方式,另一種是沒(méi)有共享的存儲(chǔ)設(shè)備的方式,一般稱(chēng)為純軟件方式。
基于存儲(chǔ)共享的雙機(jī)熱備是雙機(jī)熱備的最標(biāo)準(zhǔn)方案。
對(duì)于這種方式,采用兩臺(tái)服務(wù)器,使用共享的存儲(chǔ)設(shè)備(磁盤(pán)陣列柜或存儲(chǔ)區(qū)域網(wǎng)SAN)。兩臺(tái)服務(wù)器可以采用互備、主從、并行等不同的方式。在工作過(guò)程中,兩臺(tái)服務(wù)器將以一個(gè)虛擬的IP地址對(duì)外提供服務(wù),依工作方式的不同,將服務(wù)請(qǐng)求發(fā)送給其中一臺(tái)服務(wù)器承擔(dān)。同時(shí),服務(wù)器通過(guò)心跳線(往往采用建立私有網(wǎng)絡(luò)的方式)偵測(cè)另一臺(tái)服務(wù)器的工作狀況。當(dāng)一臺(tái)服務(wù)器出現(xiàn)故障時(shí),另一臺(tái)服務(wù)器根據(jù)心跳偵測(cè)的情況做出判斷,并進(jìn)行切換,接管服務(wù)。對(duì)于用戶(hù)而言,這一過(guò)程是全自動(dòng)的,在很短時(shí)間內(nèi)完成,從而對(duì)業(yè)務(wù)不會(huì)造成影響。由于使用共享的存儲(chǔ)設(shè)備,因此兩臺(tái)服務(wù)器使用的實(shí)際上是一樣的數(shù)據(jù),由雙機(jī)或集群軟件對(duì)其進(jìn)行管理。
對(duì)于純軟件的方式,則是通過(guò)支持鏡像的雙機(jī)軟件,將數(shù)據(jù)可以實(shí)時(shí)復(fù)制到另一臺(tái)服務(wù)器上,這樣同樣的數(shù)據(jù)就在兩臺(tái)服務(wù)器上各存在一份,如果一臺(tái)服務(wù)器出現(xiàn)故障,可以及時(shí)切換到另一臺(tái)服務(wù)器。
純軟件方式還有另外一種情況,即服務(wù)器只是提供應(yīng)用服務(wù),而并不保存數(shù)據(jù)(比如只進(jìn)行某些計(jì)算,做為應(yīng)用服務(wù)器使用)。這種情況下同樣也不需要使用共享的存儲(chǔ)設(shè)備,這種情況應(yīng)該納入負(fù)載均衡領(lǐng)域,
【純軟件方式的雙機(jī)熱備方案深入分析】
睿斯雙機(jī)軟件RCS HA/MA有兩種典型的方式,一種是比較標(biāo)準(zhǔn)的,兩臺(tái)服務(wù)器通過(guò)一個(gè)共享的存儲(chǔ)設(shè)備(一般是共享的磁盤(pán)陣列或存儲(chǔ)區(qū)域網(wǎng)SAN),并且安裝雙機(jī)軟件,實(shí)現(xiàn)雙機(jī)熱備,稱(chēng)為共享方式。另一種方式是通過(guò)純軟件的方式,一般稱(chēng)為純軟件方式或鏡像方式(Mirror)。
對(duì)于共享方式,數(shù)據(jù)庫(kù)放在共享的存儲(chǔ)設(shè)備上。當(dāng)一臺(tái)服務(wù)器提供服務(wù)時(shí),直接在存儲(chǔ)設(shè)備上進(jìn)行讀寫(xiě)。而當(dāng)系統(tǒng)切換后,另一臺(tái)服務(wù)器也同樣讀取該存儲(chǔ)設(shè)備上的數(shù)據(jù)。
純軟件方式可以在一定程度上降低成本,但它也有非常明顯的缺點(diǎn):
1.可靠性相對(duì)較差,兩服務(wù)器間的數(shù)據(jù)實(shí)時(shí)復(fù)制是一個(gè)比較脆弱的環(huán)節(jié)。
2.一旦某臺(tái)服務(wù)器出現(xiàn)中斷,恢復(fù)后還要進(jìn)行比較復(fù)雜的數(shù)據(jù)同步恢復(fù)。并且,這個(gè)時(shí)段系統(tǒng)處于無(wú)保護(hù)狀態(tài)。
3.沒(méi)有事務(wù)機(jī)制,由于其復(fù)制是在文件和磁盤(pán)層進(jìn)行的,復(fù)制是否成功不會(huì)影響數(shù)據(jù)庫(kù)事務(wù)操作,因此有出現(xiàn)數(shù)據(jù)不完整變化的情況,這個(gè)存在著相當(dāng)?shù)娘L(fēng)險(xiǎn)。
因此,建議除非不得已,不要選擇純軟件方案。
但另一方面,有一種數(shù)據(jù)庫(kù)并行的解決方案,它不是在文件或磁盤(pán)層進(jìn)行復(fù)制,而是直接對(duì)數(shù)據(jù)庫(kù)操作在前端進(jìn)行路由分發(fā),并行地以事務(wù)機(jī)制完成數(shù)據(jù)庫(kù)的更新,同時(shí)還可以提供數(shù)據(jù)庫(kù)的并行服務(wù)。這種方式針對(duì)SQL SERVER應(yīng)用非常成功,明顯優(yōu)于共享存儲(chǔ)+雙機(jī)軟件的方式。
【雙機(jī)熱備、雙機(jī)互備與雙機(jī)雙工的區(qū)別】
雙機(jī)熱備即是目前通常所說(shuō)的active/standby方式,當(dāng)active服務(wù)器出現(xiàn)故障的時(shí)候,通過(guò)軟件診測(cè)(一般是通過(guò)心跳診斷)將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)用接管過(guò)來(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ù)載均衡和互為備份。需要利用磁盤(pán)柜存儲(chǔ)技術(shù)(最好采用san)。對(duì)于數(shù)據(jù)庫(kù)服務(wù)而言,它同時(shí)需要數(shù)據(jù)庫(kù)軟件的支持,是比較復(fù)雜的。而WEB服務(wù)器或應(yīng)用服務(wù)器就比較簡(jiǎn)單了。