Unix 和 Linux 雙機熱備 概念

lygle發表於2013-04-06

一. 雙機熱備

雙機熱備系統是高可用領域中的一項重要技術,從上世紀90年代中期,當網際網路技術在國際上開始發展普及,各種自動化控制、資料庫、關鍵IT應用的不斷增多,這些應用逐漸滲透到各種核心領域,大多需要不間斷執行,為此,高可用的理念被提出,高可用的需求也開始大量呈現出來,由於當時的計算機裝置價格昂貴,網路環境及核心應用較少而且相對簡單,因此為了實現應用的高可用,使用者一般都採用雙機熱備系統的方式,在那個階段,雙機熱備系統軟體幾乎是使用者唯一的選擇,國外各個廠商也紛紛推出了各自的產品,來滿足使用者的需求。

國外廠商VeritasLegato的相關產品開始在使用者群中普及起來,但是對於國內使用者來說,這些廠商的產品往往價格昂貴,操作複雜,維護成本很高,國內很少有使用者能夠承擔,是花費大量的金錢購買國外產品,還是繼續維持現狀,是擺在使用者面前的棘手問題。

此時,國內有一家軟體廠商聯鼎軟體開始嶄露頭角,推出了國內第一款自主研發的高可用軟體:Landercluster,併成為第一個在SCO平臺成功實施多節點高可用叢集的廠商,當時SCO平臺在銀行、保險行業中擁有大量使用者,LanderCluster憑藉優秀的品質,適合的價格,成為這些使用者的首選產品,也確立了在高可用軟體領域領先地位。

隨後,由於國內市場對高可用概念的不斷深入,使用者群需求也不斷增加,市場上也陸續出現了新的品牌,如ROSE HADataware等,並且國內一些公司也開始OEM。至今市場中已經存在二十幾個不同品牌,但其中有絕大部分是OEM原廠商的產品。

雙機熱備,是對於重要的服務,使用兩臺伺服器,互相備份,共同執行同一服務。當一臺伺服器出現故障時,可以由另一臺伺服器承擔服務任務,從而在不需要人工干預的情況下,自動保證系統能持續提供服務。

雙機熱備一般情況下需要有共享的儲存裝置。但某些情況下也可以使用兩臺獨立的伺服器。 實現雙機熱備,需要通過專業的叢集軟體或雙機軟體。

從狹義上講,雙機熱備特指基於active/standby方式的伺服器熱備。伺服器資料包括資料庫資料同時往兩臺或多臺伺服器寫,或者使用一個共享的儲存裝置。在同一時間內只有一臺伺服器執行。當其中執行著的一臺伺服器出現故障無法啟動時,另一臺備份伺服器會通過軟體診測(一般是通過心跳診斷)將standby機器啟用,保證應用在短時間內完全恢復正常使用。

二. 雙機熱備解決方案

2.1 Unix平臺下雙機熱備解決方案

IBMHPSUN為代表的UNIX環境下都有雙機熱備解決方案,如IBM HacmpHigh Availability Cluster Multi-Processing)雙機熱備解決方案份軟體的主要功能是提高企業客戶計算機系統及其應用的可靠性,而不是單臺主機的可靠性。

HACMP是利用LAN來監控主機及網路、網路卡的狀態。在一個HACMP環境中有TCP/IP網路和非TCP/IP網路。TCP/IP網路即應用客戶端訪問的公共網,該網可以是大多數AIX所支援的網路,如EthernetT.R.FDDIATMSOCCSLIP,等等。非TCP/IP網路用來為HACMPHA環境(Cluster)中的各節點進行監控而提供的一個替代TCP/IP的通訊路徑,它可以是用RS232串列埠線將各節點連線起來,也可以是將各節點的SCSI卡或SSA卡設定成Target Mode方式。

作為雙機系統的兩臺伺服器(主機AB)同時執行Hacmp軟體;伺服器除正常執行自機的應用外,同時又作為對方的備份主機;兩臺主機系統(AB)在整個執行過程中,通過心跳線相互監測對方的執行情況(包括系統的軟硬體執行、網路通訊和應用執行情況等);一旦發現對方主機的執行不正常(出故障)時,故障機上的應用就會立即停止執行,本機(故障機的備份機)就會立即在自己的機器上啟動故障機上的應用,把故障機的應用及其資源(包括用到的IP地址和磁碟空間等)接管過來,使故障機上的應用在本機繼續執行;應用和資源的接管過程由HA軟體自動完成,無需人工干預;當兩臺主機正常工作時,也可以根據需要將其中一臺機上的應用人為切換到另一臺機(備份機)上執行。

另外HP ServiceGuardSUNsuncluster都可以實現雙機熱備解決方案功能。

2.2 Linux平臺下雙機熱備解決方案

Linux環境下雙機熱備解決方案軟體可以採用SteeleyeLifekeeper for Linux LifeKeeper 提供直觀的基於Java的圖形介面,方便實現跨平臺配置、管理和狀態監控; 同時也包括一個完整的命令列介面。SteelEye公司的LifeKeeper for Linux 一個通過保持系統正常執行而確保應用具有持續可用性的軟體應用。LifeKeeper 實現以雙機熱備解決方案方式連線在一起的linux系統的高可用性,這是通過監控系統及應用健康狀態,保持客戶連線性併為任何客戶,無論位於網際網路、內聯網還是外聯網提高不間斷的資料存取。為了使系統及應用能在當機是自動恢復,LifeKeeper允許將在應用在發生錯誤時切換到雙機中的另一臺伺服器上。這有助於LifeKeeper將單點失敗的風險降低到最低,從而在Linux系統上建立一種抗錯環境以滿足關鍵任務操作的嚴格可用性要求。

Redhat Linux系統下的雙機熱備解決方案系統的實現,使用的雙機控制軟體是Linux-HA heartbeat因此,除了安裝作業系統及相關的應用服務程式之外,還需要安裝heartbeat控制軟體。通過對heartbeat軟體的配置,可以把兩臺伺服器分別指定為主節點和從節點,指定心跳訊號的時間間隔,指定cluster IP、子網掩碼、廣播地址、鑑權方式,還可以設定heartbeat啟動的服務,該服務最終由雙機系統通過cluster IP對外提供。Heartbeat可以最大限度地保護使用者端的應用連續性。使用者的硬體資源(如網路卡),軟體資源(如作業系統、資料庫管理系統、資料庫應用系統、電子郵件系統等)均能處於heartbeat容錯軟體的保護之下,當這些被保護的資源出現技術故障時, heartbeat容錯軟體可以隨時實施系統資源的切換。因此,heartbeat真正實現了使用者硬體或是軟體資源發生故障時系統及應用層上的線上熱切換。

因此無論是大中小企業,根據業務應用的重要性不同,都可以採用雙機熱備解決方案,特別是電信、政府、稅務、銀行等行業重要應用系統,需要7X24X365永遠執行的業務,一般都會使用雙機熱備或者叢集方式來保證企業應用萬無一失。當然使用雙機熱備需要有資金支援的,無論是從硬體和軟體上我們必須要全盤考慮好,特別是UNIX環境下,配置HA是非常麻煩的事等,這些問題是企業在實施雙機熱備解決方案過程中必須要重視的。

三. 雙機與叢集

隨著IT市場的不斷高速發展,各種軟硬體產品不斷推陳出新,使用者的全天候執行應用迅速增加,需要全天候執行的環境中,幾乎都不能夠承受當機,無論是計劃內的當機(升級、維護和修復),還是突發的當機(由於人為錯誤、處理故障、電源故障、甚至災難事件)。許多企業都在制訂最短時間內恢復核心應用的業務連續性計劃,在此計劃中,高可用的應用又是重中之重。

新技術在發展,使用者的需求在發展,高可用軟體產品也必須發展,隨著各種儲存及網路環境的演進,SAN構架下的系統不斷增加,使用者目前的核心應用數量越來越多,在這種分散式多應用系統構架下,雙機環境通常只能實現單個應用的高可用,主要有Active/StandBy工作模式和應用互備Active/Active工作模式,當使用者的核心應用多於二個的時候,雙機熱備系統的方式將力不從心,除非使用者願意搭建多個雙機熱備系統環境,但是多個雙機熱備系統的環境將大大增加硬體採購成本(多增加一倍的硬體採購成本)及管理難度。當使用者核心應用在未來不斷增多的時候,雙機環境無法擴充套件。

純粹的雙機熱備系統方式由於存在很多的侷限性以及極差的擴充套件性,在國際上的應用的確已經越來越少,取而代之的日益被使用者接受和廣泛使用的高可用系統是多節點叢集,目前新使用者在選擇高可用解決方案時往往已經擁有不止一個關鍵應用,或者就算某些使用者目前只有極少的關鍵應用,但其考慮未來關鍵業務數量的增加,仍然可以先購買兩個節點的叢集,日後可以進行擴充套件,如何簡單的擴充也是使用者急需解決的問題,叢集平滑擴充套件就能很好的滿足使用者這些需求。另外,關鍵應用增多後如何更好的管理,應用得到更完善的保障,也是使用者關心的問題,由於叢集系統可以整合大量的核心應用,甚至是不同作業系統平臺的應用,並實現統一管理,而且叢集中的每個節點通常擁有兩個以上備援節點,使得整個被叢集保護起來的核心應用較雙機更加強壯,整體可靠性、可用性也更高。在多節點叢集系統中,備援伺服器的數量往往比較少,比如8個節點的叢集通常最多隻需要2臺備援伺服器,這樣將大大減少建設時的硬體投資,大大降低使用者TCO

叢集系統往往對目前流行的伺服器、資料庫及應用(如oraclesqlSAP等)、儲存環境(如SANISCSI)有更好的支援,藉助一定的技術,甚至能夠實現應用虛擬化,對於使用者來說,將更有利於未來的發展。但是叢集技術較雙機的複雜度有所提高,需要更專業的技術人員進行維護。

隨著使用者需求的不斷髮展,單純的雙機熱備系統顯然越來越不適應新技術及新使用者的需求,雙機將成為一些入門使用者及低端使用者的選擇,而高可用叢集技術將接替雙機熱備系統,成為使用者更好選擇。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28673746/viewspace-757855/,如需轉載,請註明出處,否則將追究法律責任。

相關文章