羅繼云
摘要:隨著計(jì)算機(jī)科學(xué)的迅猛發(fā)展和推廣,各行各業(yè)以及人們?nèi)粘I钤絹碓揭蕾囉?jì)算機(jī)和互聯(lián)網(wǎng)。在應(yīng)用廣泛的同時(shí),其安全性和穩(wěn)定性也越來越被人們所重視。而大家關(guān)注的焦點(diǎn)又是數(shù)據(jù)的安全性,故而數(shù)據(jù)備份手段成為熱點(diǎn)問題。目前,解決這一問題的最有效手段就是雙機(jī)熱備份技術(shù)。
關(guān)鍵詞:雙機(jī)熱備份; 廉價(jià)冗余磁盤陣列; 心跳線
中圖分類號(hào):TP309.1 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-2163(2013)05-0079-03
0概述
為提高系統(tǒng)的可靠性與可用性,以及數(shù)據(jù)的安全性,服務(wù)器維護(hù)人員需時(shí)常對(duì)數(shù)據(jù)進(jìn)行備份。但是隨著技術(shù)手段的不斷提升以及網(wǎng)站規(guī)模的幾何數(shù)增長,傳統(tǒng)備份手段不足以滿足實(shí)際工作要求,且無法處理突發(fā)事件。雙機(jī)熱備份技術(shù)應(yīng)運(yùn)而生,概括來講就是將兩臺(tái)服務(wù)器連接起來,共享數(shù)據(jù)。當(dāng)其中一臺(tái)服務(wù)器發(fā)生故障時(shí),由另外一臺(tái)服務(wù)器承擔(dān)服務(wù)、同時(shí)關(guān)閉故障服務(wù)器以方便維修。雙機(jī)熱備份技術(shù)有效防止了服務(wù)器意外故障帶來的數(shù)據(jù)丟失、用戶無法訪問等現(xiàn)象發(fā)生,同時(shí)節(jié)省了人力。故此,雙機(jī)熱備份技術(shù)已廣泛應(yīng)用到互聯(lián)網(wǎng)和航空航天等眾多科研領(lǐng)域。
1雙機(jī)熱備份的概念
所謂雙機(jī)熱備份,就是將同一任務(wù)和數(shù)據(jù)分配給兩臺(tái)通過線路直接相連的服務(wù)器[1]。在不通過人工干預(yù)的情況下,當(dāng)一臺(tái)服務(wù)器遇到故障導(dǎo)致服務(wù)停止時(shí),由另外一臺(tái)服務(wù)器繼續(xù)工作,保證系統(tǒng)不間斷提供服務(wù)。在雙機(jī)熱備份應(yīng)用中,根據(jù)兩臺(tái)服務(wù)器的工作方式不同,可分為三種工作模式:主從模式、互備模式、并行模式[2,3]。
1.1主從模式
這種模式下的兩臺(tái)服務(wù)器分別稱作主服務(wù)器(active)和備服務(wù)器(standby)。一般情況下,主服務(wù)器處于工作狀態(tài),備服務(wù)器則處于后補(bǔ)狀態(tài),起著后備作用。為保證數(shù)據(jù)即時(shí)同步,兩臺(tái)服務(wù)器共享磁盤序列存儲(chǔ)系統(tǒng),或者將數(shù)據(jù),包括數(shù)據(jù)庫數(shù)據(jù)同時(shí)寫入兩臺(tái)服務(wù)器。而當(dāng)主服務(wù)器發(fā)生故障時(shí),通過軟件監(jiān)聽或者人工方式激活備服務(wù)器,以此保證系統(tǒng)在極短時(shí)間內(nèi)恢復(fù)工作,且不影響用戶正常使用。主從模式則如圖1所示。
1.2互備份模式
這種模式下不再區(qū)分主或備服務(wù)器,而是兩臺(tái)服務(wù)器分別運(yùn)行其上的應(yīng)用,并同時(shí)相互備份另外一臺(tái)服務(wù)器的數(shù)據(jù)。當(dāng)事故發(fā)生時(shí),故障服務(wù)器的應(yīng)用由另外一臺(tái)服務(wù)器接管,并且應(yīng)變相對(duì)迅速,從而保證了用戶對(duì)于系統(tǒng)的持續(xù)使用[4]。只是這種方式對(duì)服務(wù)器的配置要求較高。
并行模式也叫雙工模式,一般用于網(wǎng)絡(luò)的大規(guī)模應(yīng)用。兩臺(tái)服務(wù)器同時(shí)運(yùn)行且執(zhí)行相同的應(yīng)用,這樣既保證了整體性能,也實(shí)現(xiàn)了負(fù)載均衡和互為備份,此時(shí)就需要利用磁盤陣列存儲(chǔ)技術(shù),如圖2所示。
雙機(jī)熱備份有兩種實(shí)現(xiàn)方式,分別是共享方式和軟件同步數(shù)據(jù)方式[5]。其中,共享方式指兩臺(tái)服務(wù)器共享同一個(gè)存儲(chǔ)設(shè)備(一般是共享的磁盤陣列,如RAID或存儲(chǔ)區(qū)域網(wǎng)SAN),通過雙機(jī)軟件實(shí)現(xiàn)雙機(jī)熱備。軟件同步數(shù)據(jù)方式則是將數(shù)據(jù)同時(shí)存放到各自服務(wù)器中。在active/standby模式工作中,兩臺(tái)通過心跳線(heartbeat line)連接的服務(wù)器共用同一個(gè)虛擬IP對(duì)外提供服務(wù),一般情況下由主服務(wù)器提供服務(wù),其中的心跳線用來偵測主服務(wù)器(active服務(wù)器)工作狀況。當(dāng)事故發(fā)生時(shí),備服務(wù)器(standby服務(wù)器)接收由心跳線傳送的相關(guān)信息而做出反應(yīng),進(jìn)行平滑切換,接管主服務(wù)器(active服務(wù)器)的服務(wù),并且成為新的主服務(wù)器。
心跳線是主、備服務(wù)器之間的錯(cuò)誤檢測機(jī)制,主從服務(wù)器之間互相按照一定的時(shí)間間隔發(fā)送特定的通信訊號(hào),周期性地檢測各個(gè)節(jié)點(diǎn)的狀態(tài),包括系統(tǒng)狀態(tài)和應(yīng)用狀態(tài)。如果連續(xù)一段時(shí)間(超過約定時(shí)間周期)內(nèi)沒有收到心跳信號(hào),則雙機(jī)熱備軟件判定系統(tǒng)發(fā)生故障,并切換主備服務(wù)器。心跳故障檢測手段主要有兩種:串口通訊方式和基于TCP/IP的方式。兩臺(tái)服務(wù)器可以直連網(wǎng)線,也可以通過交換機(jī)連接。
雙機(jī)熱備份技術(shù)需要通過雙機(jī)或集群軟件來實(shí)現(xiàn)。雙機(jī)軟件采用結(jié)構(gòu)化設(shè)計(jì),通常,包含以下幾個(gè)模塊:
(1)雙機(jī)狀態(tài)的管理模塊,負(fù)責(zé)檢測雙機(jī)的工作狀態(tài),[LL]以及對(duì)故障狀態(tài)進(jìn)行判斷;
(2)雙機(jī)功能的執(zhí)行模塊,負(fù)責(zé)執(zhí)行管理模塊發(fā)出的雙機(jī)調(diào)整切換命令等;
(3)實(shí)現(xiàn)雙機(jī)系統(tǒng)的客戶端配置管理工具,通過該模塊對(duì)雙機(jī)系統(tǒng)實(shí)現(xiàn)遠(yuǎn)程配置、管理維護(hù)等功能。
雙機(jī)軟件工作流程大致如下:軟件啟動(dòng)時(shí),首先讀取雙機(jī)系統(tǒng)的配置文件,在該文中描述了雙機(jī)系統(tǒng)中各節(jié)點(diǎn)的網(wǎng)絡(luò)信息,硬件描述以及任務(wù)的定義等參數(shù);軟件的核心程序根據(jù)配置信息,進(jìn)行雙機(jī)系統(tǒng)的狀態(tài)重組,建立雙機(jī)的初始狀態(tài);在節(jié)點(diǎn)初始狀態(tài)建立后,管理模塊根據(jù)當(dāng)前網(wǎng)絡(luò)狀態(tài)的信息,對(duì)雙機(jī)進(jìn)行調(diào)整并分配網(wǎng)絡(luò)資源,使雙機(jī)中的主節(jié)點(diǎn)獲得對(duì)外提供網(wǎng)絡(luò)服務(wù)的資源,同時(shí)啟動(dòng)節(jié)點(diǎn)監(jiān)控功能,對(duì)所啟動(dòng)任務(wù)的關(guān)鍵進(jìn)程進(jìn)行監(jiān)控,保障對(duì)外提供服務(wù)的資源健康有效。當(dāng)上述資源建立完成后,雙機(jī)系統(tǒng)即進(jìn)入正常運(yùn)行狀態(tài)。
當(dāng)系統(tǒng)中有節(jié)點(diǎn)故障時(shí),雙機(jī)管理模塊根據(jù)雙機(jī)當(dāng)前的狀態(tài)和該故障節(jié)點(diǎn)在雙機(jī)中的角色做出雙機(jī)系統(tǒng)是否切換。當(dāng)該節(jié)點(diǎn)為主服務(wù)器時(shí),雙機(jī)系統(tǒng)會(huì)自動(dòng)將屬于該節(jié)點(diǎn)的資源和任務(wù)移交到備服務(wù)器上,保證網(wǎng)絡(luò)的正常運(yùn)行。如果發(fā)生故障的節(jié)點(diǎn)為備服務(wù)器,雙機(jī)軟件提出報(bào)警后,將任務(wù)的移交進(jìn)行封鎖,直至備服務(wù)器故障修復(fù),重新進(jìn)入雙機(jī)系統(tǒng),管理模塊檢查到該故障修復(fù)后,對(duì)當(dāng)前的任務(wù)進(jìn)行解鎖操作。系統(tǒng)重新進(jìn)入正常運(yùn)行狀態(tài)。
3RAID系統(tǒng)
廉價(jià)冗余磁盤序列RAID(Redundant Array of Inexpensive Disks)將很多磁盤驅(qū)動(dòng)器通過一定的邏輯方式聯(lián)系起來,并將其當(dāng)作一個(gè)完整的邏輯驅(qū)動(dòng)磁盤進(jìn)行使用[6,7]。常用RAID級(jí)別如表1所示。RAID系統(tǒng)優(yōu)點(diǎn)如下:
(1)通過將若干物理磁盤變成一個(gè)單獨(dú)的邏輯卷來使用,在保證了容量的前提下,降低了成本;
(2)通過寫入多個(gè)磁盤,共同讀寫這些磁盤,提高了讀寫速度;
(3)通過鏡像或奇偶校驗(yàn)來提供容錯(cuò)功能。
系統(tǒng)搭建在NT上,其核心為磁盤陣列和HA軟件,服務(wù)器主要數(shù)據(jù)放在子盤序列中,主服務(wù)器(active)和備服務(wù)器(standby)只安裝本地系統(tǒng)文件、HA和數(shù)據(jù)庫。系統(tǒng)啟動(dòng)后,NT Cluster調(diào)用HA manager,并啟動(dòng)其他相關(guān)程序監(jiān)聽管理服務(wù)系統(tǒng)。當(dāng)HA在一定時(shí)間內(nèi)未能接收到另一服務(wù)器的心跳包時(shí),則立即做出反應(yīng),將服務(wù)由主服務(wù)器轉(zhuǎn)移到備服務(wù)器。這一過程全部由系統(tǒng)自動(dòng)完成而無需人工干預(yù),完美實(shí)現(xiàn)服務(wù)器平滑過渡,更加節(jié)省了人力資源。
4系統(tǒng)特點(diǎn)與總結(jié)
現(xiàn)分析雙機(jī)熱備份與磁盤陣列柜互聯(lián)的結(jié)構(gòu)特點(diǎn)如下:
(1)通過軟件與硬件結(jié)合將數(shù)據(jù)與系統(tǒng)分離;