目前,雙機和集群采用的操作系統(tǒng)主要有UNIX、Linux、BSD及微軟公司的Windows NT/2000。隨著
Linux的迅速發(fā)展,穩(wěn)定性、安全性及功能的不斷增強,人們對Linux的使用越來越廣泛,Linux已
成為服務器市場中的一個重要操作系統(tǒng),基于Linux的雙機和集群系統(tǒng)也越來越多。
Linux集群的主要優(yōu)點有:高可靠性、高性能、低成本等等。
1.1
1.1.1
雙機熱備份(Hot Standby)是一種軟硬件相結(jié)合的高可靠性應用方案。雙機熱備系統(tǒng)由兩臺獨立
的服務器以及相應的控制軟件構(gòu)成,兩臺服務器在網(wǎng)絡中表現(xiàn)為單一的系統(tǒng),對外表現(xiàn)為一個獨
立的網(wǎng)絡IP,并以單一系統(tǒng)的模式進行控制和管理。該系統(tǒng)將兩臺服務器的數(shù)據(jù)和運行狀態(tài)(包
括硬盤數(shù)據(jù)和內(nèi)存數(shù)據(jù))進行鏡像,可以實現(xiàn)兩臺服務器之間的熱備份,并能夠做到無縫切換,
從而對外提供穩(wěn)定可靠的服務,實現(xiàn)雙機系統(tǒng)的高可用性解決方案。
1.1.2
雙機熱備份系統(tǒng)由相應的應用軟件進行控制,操作系統(tǒng)和應用程序安裝在兩臺服務器的系統(tǒng)盤上。
每一臺服務器分配一個固定的IP地址,此外還指定了一個獨立IP地址作為集群IP(cluster IP),
該IP是雙機系統(tǒng)對外提供服務的接口。
兩臺服務器一臺成為主節(jié)點(Primary Server),另一臺成為從節(jié)點(Standby Server),主節(jié)
點與從節(jié)點之間保持固定時間間隔的心跳信號,通過心跳信號實現(xiàn)兩個對等系統(tǒng)之間的周期性的
握手,從而能夠監(jiān)視對方的運行狀態(tài),進行主機及網(wǎng)絡的故障檢測。
在系統(tǒng)正常情況下,主節(jié)點占用系統(tǒng)資源并運行所有的服務,為信息系統(tǒng)提供支持,從節(jié)點通過
心跳信號監(jiān)視主節(jié)點的運行情況。一旦主節(jié)點發(fā)生故障(如主機故障,網(wǎng)絡故障,軟件故障等),
從節(jié)點就會自動接管(Take Over)主節(jié)點的資源和服務,繼續(xù)支持信息的運營,從而保證整個雙
機系統(tǒng)能夠不間斷的運行(Non-Stop)。主節(jié)點在恢復運行后,又可以自動獲取資源并取代從節(jié)點。
1.2
1.2.1
在集群系統(tǒng)的實現(xiàn)方案中雙機熱備份系統(tǒng)是硬件配置最簡單和價格最低廉的解決方案,通常鏡像
服務的硬件配置需要兩臺獨立的服務器,每臺服務器有獨立的操作系統(tǒng)硬盤和數(shù)據(jù)存貯硬盤,
每臺服務器有提供網(wǎng)絡連接功能的網(wǎng)卡,此外還可以有一對完成內(nèi)部連接和數(shù)據(jù)鏡像功能的網(wǎng)卡。
雙機系統(tǒng)的兩臺服務器擁有共享的數(shù)據(jù)存儲空間(可以是一個數(shù)據(jù)存儲硬盤或一臺專門的數(shù)據(jù)存
儲服務器)。任何一臺服務器在運行服務時,從共享的數(shù)據(jù)存儲空間內(nèi)讀取和存儲數(shù)據(jù)。每臺服
務器的操作系統(tǒng)和應用程序文件存儲在各自的本地存儲空間上。
雙機熱備份系統(tǒng)采用內(nèi)存鏡像的技術(shù),即把兩臺服務器的數(shù)據(jù)和運行狀態(tài)(包括硬盤數(shù)據(jù)和內(nèi)存
數(shù)據(jù))進行鏡像。這個技術(shù)的優(yōu)點是所有的應用程序和操作數(shù)據(jù)在兩臺服務器上鏡像同步,當主
節(jié)點出現(xiàn)故障時,從節(jié)點可以在幾乎沒有延遲的情況下接管主節(jié)點運行的服務,從而實現(xiàn)無縫切
換和熱備份。該技術(shù)的缺點是,由于兩臺服務器的內(nèi)存完全一致,當由于系統(tǒng)應用程序帶有缺陷
而導致系統(tǒng)宕機時,兩臺服務器會同步宕機。
也可以在雙機系統(tǒng)中使用第三方生產(chǎn)的磁盤陣列柜,在磁盤陣列柜中安裝有磁盤陣列控制卡,陣
列柜可以直接將柜中的硬盤配置成為邏輯盤陣。該結(jié)構(gòu)不采用內(nèi)存鏡像技術(shù),因此需要有一定的
切換時間,同時由于所有的數(shù)據(jù)全部存貯在磁盤陣列柜中,當主節(jié)點出現(xiàn)故障時,從節(jié)點接替主
節(jié)點,從磁盤陣列柜中讀取數(shù)據(jù),所以不會產(chǎn)生數(shù)據(jù)不同步的問題。由于這種方案不需要網(wǎng)絡鏡
像同步,因此這種集群方案服務器的性能要比鏡像服務器結(jié)構(gòu)高出很多。
雙機熱備份系統(tǒng)的兩臺服務器通過內(nèi)部局域網(wǎng)進行連接,通過周期性的心跳信號保持通信和進行
相互監(jiān)視。兩臺服務器之間可以采用多種連接方式,可以使用串口線,也可以通過以太網(wǎng)ethernet
進行連接,還可以采用并存的多種連接方式實現(xiàn)兩臺主機的多重互連。如果雙機系統(tǒng)有冗余連接,
在第一條通信路徑失效的情況下,控制軟件可以嘗試使用第二條通信路徑進行連接。因此,為了
避免不必要的失效切換,最好建立兩種以上獨立的物理路徑,使用至少兩種心跳。
雙機熱備份系統(tǒng)具有配置簡單,使用方便,價格低廉等諸多優(yōu)點,但由于鏡像服務器需要采用網(wǎng)絡
方式鏡像數(shù)據(jù),通過鏡像軟件實現(xiàn)數(shù)據(jù)的同步,因此需要占用網(wǎng)絡服務器的CPU及內(nèi)存資源,造成
服務器的性能有所降低。
1.2.2
本方案僅討論Redhat Linux系統(tǒng)下的雙機熱備份系統(tǒng)的實現(xiàn),使用的雙機控制軟件是Linux-HA
heartbeat。因此,除了安裝操作系統(tǒng)及相關(guān)的應用服務程序之外,還需要安裝heartbeat控制軟件。
通過對heartbeat軟件的配置,可以把兩臺服務器分別指定為主節(jié)點和從節(jié)點,指定心跳信號的時
間間隔,指定cluster IP、子網(wǎng)掩碼、廣播地址、鑒權(quán)方式,還可以設(shè)置heartbeat啟動的服務,
該服務最終由雙機系統(tǒng)通過cluster IP對外提供。
Heartbeat可以最大限度地保護用戶端的應用連續(xù)性。用戶的硬件資源(如網(wǎng)卡),軟件資源(如
操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫應用系統(tǒng)、電子郵件系統(tǒng)等)均能處于heartbeat容錯軟件
的保護之下,當這些被保護的資源出現(xiàn)技術(shù)故障時, heartbeat容錯軟件可以隨時實施系統(tǒng)資源
的切換。因此,heartbeat真正實現(xiàn)了用戶硬件或是軟件資源發(fā)生故障時系統(tǒng)及應用層上的在線
熱切換。
Heartbeat軟件的特點有:
不需增加額外硬件資源,純軟件方式實現(xiàn)雙機容錯,并且對雙機無硬件配置要求。
可支持DB2,Notes、Exchange、SQL Server、Sybase、Informix、Oracle 、SAP等多種系統(tǒng)的應用
層熱切換。
支持共享磁盤陣列柜和內(nèi)存鏡像等多種方式,給用戶提供了選擇上的靈活性,同時也能適應各種機型、
網(wǎng)絡結(jié)構(gòu)、軟件平臺及應用系統(tǒng)。
占用系統(tǒng)資源較少,不增加網(wǎng)絡負荷,并且不會干擾具體應用程序的運行和操作。
真正實現(xiàn)無人值守,全自動地實現(xiàn)系統(tǒng)資源和應用服務的切換。
1.3.2
服務器Server A和Server B構(gòu)成雙機熱備份系統(tǒng)的兩臺主機,并且分別作為主節(jié)點(Primary Server)
和從節(jié)點(Standby Server)。兩臺主機均運行Linux-HA heartbeat,該軟件成為雙機熱備系統(tǒng)的控制程序。
兩臺主機通過串口線、以太網(wǎng)等多種方式進行連接,傳送數(shù)據(jù)和心跳信號,并互相進行狀態(tài)監(jiān)視??梢?br>只使用一種連接方式(如以太網(wǎng)連接),但是多種連接方式下的冗余路徑可以保證雙機連接的可靠性和
服務質(zhì)量。
數(shù)據(jù)庫服務器或磁盤陣列柜是專門的數(shù)據(jù)存儲和共享設(shè)備,兩臺服務器在運行時,均從該設(shè)備中讀取和
存儲數(shù)據(jù)。這種方式可以有效地提高數(shù)據(jù)傳輸效率,提高雙機熱備服務器的系統(tǒng)性能,并且能夠保證兩
臺服務器之間的數(shù)據(jù)同步。
1.4
雙機備份系統(tǒng)有兩種配置方式,分別是“基于系統(tǒng)切換的雙機系統(tǒng)”和“基于系統(tǒng)鏡像的雙機系統(tǒng)”,
二者的區(qū)別是:
基于系統(tǒng)切換的雙機系統(tǒng)僅僅把兩臺服務器的硬盤數(shù)據(jù)進行鏡像,在主節(jié)點失效的情況下,從節(jié)點將進行
系統(tǒng)一級的切換。該方式不能實現(xiàn)無縫切換,實現(xiàn)的是冷備份。
基于系統(tǒng)鏡像的雙機系統(tǒng)把兩臺服務器的硬盤數(shù)據(jù)和內(nèi)存數(shù)據(jù)都進行鏡像。為保證完全的內(nèi)存鏡像,兩臺
服務器之間需通過專用連接網(wǎng)段實時地保持一個連續(xù)的、雙向的鏡像進程,該進程確保兩臺服務器之間的
數(shù)據(jù)同步。一旦故障發(fā)生,無論任何一臺服務器失效,失效服務器上的數(shù)據(jù)和應用,將立即切換到另一臺
服務器上,從而使用戶在沒有中斷的情況下可以繼續(xù)使用雙機系統(tǒng)提供的服務。該方式能夠做到無縫切換,
實現(xiàn)的是熱備份。
本方案描述的heartbeat雙機熱備份系統(tǒng)是一種基于系統(tǒng)鏡像的雙機系統(tǒng),實現(xiàn)方法是,主節(jié)點在出現(xiàn)故障
的情況下,集群IP地址無縫地切換到從節(jié)點,從而客戶機對服務器的訪問可以由從節(jié)點來支持。但是兩臺
服務器之間并沒有鏡像進程完成徹底的內(nèi)存鏡像,因而主節(jié)點在故障時所運行的數(shù)據(jù)信息不能切換到從節(jié)
點,造成數(shù)據(jù)丟失以及服務中斷。所以該方案不是嚴格意義上的系統(tǒng)鏡像,實現(xiàn)的是服務一級的切換,并
不能實現(xiàn)實時數(shù)據(jù)的切
換。