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