雙機熱備特指基于高可用系統中的兩臺服務(wù)器的熱備(或高可用),因兩機高可用在國內使用較多,故得名雙機熱備,雙機高可用按工作中的切換方式分為:主-備方式(Active-Standby方式)和雙主機方式(Active-Active方式),主-備方式即指的是一臺服務(wù)器處于某種業(yè)務(wù)的激活狀態(tài)(即Active狀態(tài)),另一臺服務(wù)器處于該業(yè)務(wù)的備用狀態(tài)(即Standby狀態(tài))。而雙主機方式即指兩種不同業(yè)務(wù)分別在兩臺服務(wù)器上互為主備狀態(tài)(即Active-Standby和Standby-Active狀態(tài))。
組成雙機熱備的方案主要的三種方式分別為:基于共享存儲(磁盤(pán)陣列)的方式,全冗余方式和復制方式。
基于共享存儲(磁盤(pán)陣列)的方式
共享存儲方式主要通過(guò)磁盤(pán)陣列提供切換后,對數據完整性和連續性的保障。用戶(hù)數據一般會(huì )放在磁盤(pán)陣列上,當主機宕機后,備機繼續從磁盤(pán)陣列上取得原有數據。
如下圖所示這種方式因為使用一臺存儲設備,往往被業(yè)內人士稱(chēng)為磁盤(pán)單點(diǎn)故障。但一般來(lái)講存儲的安全性較高。所以如果忽略存儲設備故障的情況下,這種方式也是業(yè)內采用最多的熱備方式。
全冗余方式
全冗余方式就是雙機雙存儲,基于單臺存儲的傳統雙機熱備方式,確實(shí)存在存儲單點(diǎn)故障的情況,為實(shí)現存儲冗余,存儲高可用也已經(jīng)越來(lái)越多的被用戶(hù)接受。我們從理解上可以看出,雙機熱備最早是為解決服務(wù)器的計劃性停機與非計劃性宕機的解決方案,但是我們無(wú)法實(shí)現存儲的計劃性停機與非計劃性宕機帶來(lái)的服務(wù)器停機,而存儲作為雙機熱備中唯一存儲數據的設備,它一旦發(fā)生故障往往會(huì )造成雙機熱備系統全面崩潰。
隨著(zhù)科技的進(jìn)步,云存儲,云計算發(fā)展,對于存儲熱備已經(jīng)進(jìn)入了成熟及快速發(fā)展階段,雙機熱備也隨著(zhù)技術(shù)的進(jìn)步,進(jìn)入到了沒(méi)有單點(diǎn)故障的全冗余雙機熱備方式。如圖:
這種方式的特點(diǎn)在于:
1、存儲之間的數據復制不經(jīng)過(guò)網(wǎng)絡(luò ),而是由存儲之間進(jìn)行復制。
2、兩個(gè)存儲之間的復制是完全實(shí)時(shí)的,不存在任何時(shí)間延時(shí)。
3、主備存儲之間的切換時(shí)間小于500ms,以確保系統存儲時(shí)不產(chǎn)生延時(shí)。
4、硬盤(pán)盤(pán)符及分區不因為主備存儲之間的切換而改變。
5、服務(wù)器的切換,不影響存儲之間的初始化,增量同步及數據復制。
6、某一存儲設備的計劃性停機,不影響整個(gè)服務(wù)器雙機熱備系統的工作。
7、存儲設備之間使用重復數據刪除技術(shù),完成增量同步工作。
8、真正的7X24小時(shí)或切換的全冗余方案。
復制方式
這種方式主要利用數據的同步方式,保證主備服務(wù)器的數據一致性。
基于數據復制的方式有多種方法,其性能和安全也不盡相同,其主要方法有以下幾種:
A、單純的文件方式的拷貝不適用于數據庫等應用,因為打開(kāi)的文件是不能被復制的,如果要復制必須將數據庫關(guān)閉,這顯然是不可以的。以文件方式的復制主要適用于WEB頁(yè)的更新,FTP上傳應用,對主備機數據完整性,連續性要求不高的情況下使用。
B、利用數據庫所帶有復制功能,比如SQLServer2000或2005所帶的定閱復制,這種方式用戶(hù)要根據自己的應用小心使用,原因主要是:
(1)SQLServer的定閱復制會(huì )在用戶(hù)表上增加字段,對那些應用軟件編程要求較高,如果在應用軟件端書(shū)寫(xiě)時(shí)未明確指定字段的用戶(hù),而使用此功能會(huì )造成應用程序無(wú)法正常工作。
(2)數據滯留,這個(gè)限制怕也是最要命的,因為SQLServer在數據傳輸過(guò)程中數據并非實(shí)時(shí)的到達主備機,而是數據先寫(xiě)到主機,再寫(xiě)到備機,如此一來(lái),備機的數據往往來(lái)不及更新,此時(shí)如果發(fā)生切換,備機的數據將不完整,也不連續,如果用戶(hù)發(fā)現已寫(xiě)入的數據在備機找不到,重新寫(xiě)入的話(huà),則主機修復后,就會(huì )發(fā)生主備機數據嚴重沖突,數據庫會(huì )亂掉。
(3)復雜應用切莫使用定閱復制來(lái)做雙機熱備,包括數據結構中存儲過(guò)程的處理,觸發(fā)器和序列,一旦發(fā)生沖突,修改起來(lái)非常麻煩。
(4)服務(wù)器性能降低,對于大一點(diǎn)的數據庫,SQLServer2000或2005所帶的定閱復制會(huì )造成服務(wù)器數據庫運行緩慢。
總之SQLServer2000或2005所帶的定閱復制主要還是應用于數據快照服務(wù),切莫用他來(lái)做雙機熱備中的數據同步。
C:硬盤(pán)數據攔截,目前國際國內,比較成熟的雙機熱備軟件通常會(huì )使用硬盤(pán)數據攔截的技術(shù),通常稱(chēng)為鏡像軟件即Mirror軟件,這種技術(shù)當前已非常成熟,攔截的方式也不盡相同。
(1)分區攔截技術(shù),以Pluswell熱備份產(chǎn)品為例,他采用的是一種分區硬盤(pán)扇區攔截的技術(shù),通過(guò)驅動(dòng)級的攔截方式,將數據寫(xiě)往硬盤(pán)的數據提取,并首先寫(xiě)到備用服務(wù)器,以保證備用服務(wù)器的數據最新,然后再將數據回寫(xiě)到主機硬盤(pán)。這種方式將絕對保證,主備機數據庫的數據完全一致,無(wú)論發(fā)生哪種切換,都能保證數據庫的完整性與連續性。由于采用分區攔截技術(shù),所以用戶(hù)可以根據需要在一塊硬盤(pán)上劃分適合大小的分區來(lái)完成數據同步工作。
(2)硬盤(pán)攔截技術(shù),以Symantec的Co-Standby為例,也是一種有效的硬盤(pán)攔截軟件,他的攔截主要基于一整塊硬盤(pán),往往在硬盤(pán)初始化時(shí)需要消耗大量的時(shí)間。
雙機熱備中需要指出的幾個(gè)概念