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