葛群芳
摘要:隨著越來越多的系統(tǒng)采用數(shù)據(jù)庫形式存儲基本數(shù)據(jù),數(shù)據(jù)的安全存儲問題是業(yè)務(wù)系統(tǒng)設(shè)計問題的一個重要組成部分。該文介紹了容災(zāi)技術(shù)的主要分類和工作原理,并對每種容災(zāi)備份系統(tǒng)的技術(shù)原理進行了探討。
關(guān)鍵詞:容災(zāi);數(shù)據(jù)復(fù)制;日志;邏輯磁盤卷
中圖分類號:TP311 文獻標識碼:A文章編號:1009-3044(2012)30-7182-04
容災(zāi)系統(tǒng)的建設(shè)需要有多種數(shù)據(jù)復(fù)制技術(shù),以滿足多種應(yīng)用和業(yè)務(wù)系統(tǒng)的需求[1]。無論采用何種技術(shù)方式,最核心、最重要還是對數(shù)據(jù)的保護。隨著數(shù)據(jù)復(fù)制技術(shù)的發(fā)展,可以實現(xiàn)數(shù)據(jù)的遠程復(fù)制,當生產(chǎn)中心發(fā)生災(zāi)難是,災(zāi)備中心在異地(址)利用遠程復(fù)制數(shù)據(jù)技術(shù)提供服務(wù),保障核心業(yè)務(wù)系統(tǒng)的連續(xù)性(BCP)。因此數(shù)據(jù)復(fù)制技術(shù)是構(gòu)建容災(zāi)平臺的核心[2]。
按照容災(zāi)平臺所采用數(shù)據(jù)復(fù)制技術(shù)及其位于業(yè)務(wù)系統(tǒng)IT架構(gòu)層面的不同,可以將容災(zāi)技術(shù)方案分為以下三類[3]:
1)基于應(yīng)用平臺的容災(zāi)方案
通過一些特定的應(yīng)用程序或中間件產(chǎn)品,向生產(chǎn)中心和容災(zāi)中心,傳輸生產(chǎn)數(shù)據(jù),這些數(shù)據(jù)此時未經(jīng)處理,然后由主、備中心的服務(wù)器同時處理上述數(shù)據(jù)。在平時只有主數(shù)據(jù)中心(生產(chǎn)中心)才和業(yè)務(wù)系統(tǒng)聯(lián)接,容災(zāi)中心只在后臺處理數(shù)據(jù);但是當主中心發(fā)生災(zāi)難,由于容災(zāi)中心也有數(shù)據(jù)庫,存有一份完整數(shù)據(jù)和一套完整的系統(tǒng),只要切換一下網(wǎng)絡(luò),就可以迅速接管生產(chǎn)中心業(yè)務(wù)。
2)基于主機平臺的容災(zāi)方案
利用一些主機廠家(比如IBM)提供的相關(guān)功能軟件或第三方軟件提供遠程的數(shù)據(jù)復(fù)制技術(shù),實現(xiàn)遠程數(shù)據(jù)復(fù)制,建立容災(zāi)平臺。
3)基于智能存儲平臺容災(zāi)方案
利用智能存儲系統(tǒng)的遠程數(shù)據(jù)復(fù)制功能實現(xiàn)的容災(zāi)平臺,它主要包括二類:
①基于在同類智能存儲平臺(例如 EMC SRDF 技術(shù))之間的數(shù)據(jù)復(fù)制;
②基于在異構(gòu)智能存儲平臺之間利用虛擬存儲技術(shù)實現(xiàn)數(shù)據(jù)復(fù)制。
本文針對以上“基于智能存儲平臺的容災(zāi)方案”、“基于應(yīng)用平臺的容災(zāi)方案(Oracle Data Guard)” 、“基于主機平臺的容災(zāi)方案”等三類主要容災(zāi)技術(shù)方案進行分析[4]。
1 基于智能存儲系統(tǒng)的遠程數(shù)據(jù)復(fù)制技術(shù)
所謂智能存儲系統(tǒng)技術(shù),簡單的說,就是利用磁盤陣列上的智能磁盤控制器,接管原先由主機承擔(dān)磁盤鏡像功能。基于數(shù)據(jù)復(fù)制方式獨立于主機和主機操作系統(tǒng),占用主機CPU資源比較小,整個數(shù)據(jù)復(fù)制工作由陣列本身的智能磁盤控制器完成,只需要占用很少的主機通道,對主機系統(tǒng)、對應(yīng)用透明。但這種方案也有它的不足,該方案網(wǎng)絡(luò)條件要求高,要求主、備中心不能間隔太遠(通常要求在幾十公里范圍內(nèi))。該方法一般都應(yīng)用于同城災(zāi)備。圖1則是遠程智能存儲技術(shù)示例圖。
2 基于存儲虛擬化的遠程數(shù)據(jù)復(fù)制
從存儲網(wǎng)絡(luò)方面來看,虛擬化引擎,能使異構(gòu)的物理的陣列有機組合成更大的存儲系統(tǒng),或者根據(jù)需求劃分為很多小型存儲單元,針對主機容量以及性能標準進行合理配置。目前有兩種形式對虛擬化引擎加以控制,一種把帶內(nèi)虛擬化引擎設(shè)置在主機與存儲系統(tǒng)之間的數(shù)據(jù)通道,無論是信息控制還是用戶數(shù)據(jù)傳輸都會經(jīng)過這一通道,當邏輯卷配置到主機上則表示擁有相對標準化的存儲子系統(tǒng)。另外一種為帶外虛擬化,虛擬化引擎則不會設(shè)置在主機與存儲系統(tǒng)之間的數(shù)據(jù)通道,采取其他網(wǎng)絡(luò)連接方式和主機系統(tǒng)之間進行通訊。該方法具有如下優(yōu)勢優(yōu)勢:
① 能夠?qū)崿F(xiàn)卷管理中央集中控制。
② 將計劃或者是非計劃系統(tǒng),備份,維護等所需的停機時間縮短。
③ 提高了資源利用率。
④ 獨立、高性價比的高級復(fù)制服務(wù)。
3 基于數(shù)據(jù)庫的數(shù)據(jù)備份技術(shù)
所謂遠程數(shù)據(jù)庫復(fù)制技術(shù),就是借助數(shù)據(jù)庫系統(tǒng)自帶的軟件,或者專門的第三發(fā)軟件,捕獲數(shù)據(jù)庫日志(Archive log 或Logical log),將這些數(shù)據(jù)通過網(wǎng)絡(luò)傳送到容災(zāi)中心。在容災(zāi)中心的數(shù)據(jù)庫系統(tǒng)上重新執(zhí)行上述日志文件(容災(zāi)中心的數(shù)據(jù)庫一直處于恢復(fù)狀態(tài))。因此這種技術(shù)與應(yīng)用系統(tǒng)沒有直接關(guān)系,因而無須對應(yīng)用程序作大量修改,就可以實現(xiàn)數(shù)據(jù)的遠程復(fù)制。該技術(shù)可以實現(xiàn),實時復(fù)制、存儲轉(zhuǎn)發(fā)復(fù)制、定時復(fù)制三種數(shù)據(jù)復(fù)制方式。[5]
如圖2所示,采用數(shù)據(jù)庫軟件復(fù)制技術(shù)就某種意義上來說能夠?qū)崿F(xiàn)遠程數(shù)據(jù)庫復(fù)制。采用這種技術(shù)有幾個技術(shù)要點:
① 生產(chǎn)中心的數(shù)據(jù)庫要全備份,建立災(zāi)難備份數(shù)據(jù)庫。
② 數(shù)據(jù)復(fù)制過程中,災(zāi)備中心的數(shù)據(jù)庫,要一直保持在恢復(fù)狀態(tài),數(shù)據(jù)庫中數(shù)據(jù)不對外開放。
③ 需要定期對備份數(shù)據(jù)庫做激活測試,保證備份數(shù)據(jù)庫的可用性 。
④ 要考慮發(fā)生災(zāi)難時,如何將應(yīng)用系統(tǒng)切換到容災(zāi)中心的數(shù)據(jù)庫。
該技術(shù)優(yōu)點主要為:
① 對數(shù)據(jù)鏈路的的質(zhì)量要求不高,也支持廣域網(wǎng)協(xié)議,所以生產(chǎn)中心和容災(zāi)中心可以離得很遠;
② 保護現(xiàn)有投資,目前的數(shù)據(jù)庫、軟件、硬件不需要太大變動就可以實施。
該技術(shù)缺點主要為:
① 要占用一定的主機資源(CPU,內(nèi)存,網(wǎng)絡(luò)等);
② 萬一發(fā)生災(zāi)難,業(yè)務(wù)無法由災(zāi)備中心迅速接管并在極短的時間內(nèi)恢復(fù);
③ 該技術(shù)無法實現(xiàn)非數(shù)據(jù)庫數(shù)據(jù)的遠程復(fù)制;
④ 對容災(zāi)中心的人員數(shù)據(jù)庫技術(shù)要求高,否則的話全部由數(shù)據(jù)庫公司的工程師維護費用就比較高。
4 基于裝置的數(shù)據(jù)復(fù)制技術(shù)
存儲網(wǎng)絡(luò)級數(shù)據(jù)容災(zāi)過程中通常采用專門設(shè)備儀器為在短時間內(nèi)有效實現(xiàn)遠程復(fù)制而提供I/O 路徑,并在用戶端以及災(zāi)備中心系統(tǒng)合理配置專門服務(wù)器,與此同時還要安裝相關(guān)軟件設(shè)備。實質(zhì)上災(zāi)備中心專用服務(wù)器就某種意義上來說能夠?qū)崿F(xiàn)定時復(fù)制服務(wù)器數(shù)據(jù)信息,并對關(guān)鍵性數(shù)據(jù)信息的遠程復(fù)制加以維護。至于傳輸鏈路選擇上則傾向于IP 網(wǎng)絡(luò)以及FC 網(wǎng)絡(luò),假使我們發(fā)現(xiàn)IP 城域網(wǎng)或者是廣域網(wǎng)帶寬較低,則能夠進行異步復(fù)制。此項裝置所提供遠程復(fù)制功能以復(fù)制策略服務(wù)為基礎(chǔ),嚴格遵循之前所制定策略同步復(fù)制源端數(shù)據(jù)并將其存儲到相關(guān)設(shè)備,便于下次可直接復(fù)制快照差量從而促使數(shù)據(jù)復(fù)制效率能夠大幅度提升。[1]
借助IP 網(wǎng)絡(luò)可以將主中心裝置服務(wù)器對應(yīng)的磁盤上數(shù)據(jù)信息直接傳輸至災(zāi)備中心磁盤,避免發(fā)生難以預(yù)估災(zāi)難。和快照代理功能進行有效綜合能夠在短時間內(nèi)實現(xiàn)數(shù)據(jù)信息復(fù)制,保證所復(fù)制內(nèi)容的完整性。災(zāi)難發(fā)生過后數(shù)據(jù)庫不需要再次修復(fù)或者是全面檢查即可實現(xiàn)數(shù)據(jù)恢復(fù)。
5 遠程集群主機切換技術(shù)
實質(zhì)上遠程集群主機切換技術(shù)不屬于數(shù)據(jù)復(fù)制技術(shù)范疇,但卻能夠和以上數(shù)據(jù)復(fù)制技術(shù)進行有效綜合,并對主機系統(tǒng)諸多節(jié)點加以控制。一旦發(fā)現(xiàn)主節(jié)點系統(tǒng)出現(xiàn)故障難以正常運轉(zhuǎn)時控制系統(tǒng)則要發(fā)揮其最大功效,實現(xiàn)主機之間切換,就管理控制系統(tǒng)而言,需要要加大控制與監(jiān)督力度,尤其是主機系統(tǒng)運行狀態(tài):
硬件系統(tǒng)、操作系統(tǒng)狀態(tài);
① 數(shù)據(jù)庫系統(tǒng)的狀態(tài);
② 應(yīng)用軟件的狀態(tài)(API 或者是腳本自行編寫與制定應(yīng)用代理);
③ 網(wǎng)絡(luò)通信狀態(tài)(例如局域網(wǎng)、廣域網(wǎng)等);
④ 遠程數(shù)據(jù)復(fù)制運行狀態(tài);
⑤ 通過開發(fā)/定制代理嚴格檢測其他相關(guān)狀態(tài)。
通常在考慮遠程集群主機切換方案時,首要工作就是結(jié)合實際情況采取適宜措施有效解決數(shù)據(jù)遠程復(fù)制方面問題,反之假使僅限于主機系統(tǒng)之間應(yīng)用切換,也就沒有存在意義。遠程集群主機切換方案明確表示節(jié)點之間需要滿足有關(guān)通信條件,除此之外各個節(jié)點主機必須要合理配置集群管理控制軟件,管理代理。
6 基于應(yīng)用軟件的數(shù)據(jù)備份
所謂基于應(yīng)用軟件數(shù)據(jù)備份:中間件產(chǎn)品或者應(yīng)用程序同步向主生產(chǎn)中心和災(zāi)備中心傳輸生產(chǎn)數(shù)據(jù),在2個中心同時處理上述數(shù)據(jù),通過監(jiān)測,一旦發(fā)現(xiàn)生產(chǎn)中心發(fā)生災(zāi)難,應(yīng)用失效則容災(zāi)備份中心應(yīng)用軟件系統(tǒng)能夠自行恢復(fù)并正常運行,并接管生產(chǎn)中心所有業(yè)務(wù)。如果要保證此種方式得以有效應(yīng)用,前提就是要保證2個中心所有應(yīng)用軟件升級要一致,原有的應(yīng)用軟件要重新開發(fā),以適合容災(zāi)需要,這樣做就會增加軟件復(fù)雜性,技術(shù)水平要求高,并且不易于操作,更主要的是,不利于后期維護與修復(fù)。某種意義上也會嚴重影響到業(yè)務(wù)系統(tǒng)性能。[6]
7 基于主機邏輯磁盤卷的遠程數(shù)據(jù)復(fù)制
邏輯磁盤卷(Volume),如圖3所示就是在操作系統(tǒng)與物理存儲設(shè)備之間建立一個邏輯存儲管理層。
所謂基于邏輯磁盤卷遠程數(shù)據(jù)復(fù)制技術(shù),采用有關(guān)軟件按照標準對一個(多個)磁盤卷進行異步復(fù)制與同步復(fù)制。數(shù)據(jù)卷采用卷管理器提供的磁盤鏡像功能實現(xiàn)容災(zāi)。
在生產(chǎn)中心正常工作模式下,數(shù)據(jù)的寫入操作可以用圖4說明數(shù)據(jù)流向:
如果當主數(shù)據(jù)(生產(chǎn))中心存儲系統(tǒng)發(fā)生故障時,生產(chǎn)主機利用異地(址)的數(shù)據(jù)拷貝繼續(xù)運行, 圖5說明。
當系統(tǒng)的主數(shù)據(jù)中心存儲修復(fù)后,恢復(fù)數(shù)據(jù)鏡像關(guān)系,數(shù)據(jù)重新在兩份拷貝間同步。
如果當系統(tǒng)主數(shù)據(jù)中心的主機發(fā)生故障時,異地(容災(zāi)中心)主機接管本地的主機存儲及應(yīng)用,數(shù)據(jù)同步如常進行圖6說明。
當本地主機維修恢復(fù)運行后,存儲及應(yīng)用由本地生產(chǎn)主機接管,恢復(fù)正常運行環(huán)境。因為該技術(shù)具有與主機系統(tǒng)、物理存儲系統(tǒng)無關(guān)的特性,所以對硬件設(shè)備的選擇也很靈活。但是邏輯磁盤卷遠程數(shù)據(jù)復(fù)制技術(shù)也有缺點,就是使各個節(jié)點主機性能,需求增加。系統(tǒng)業(yè)務(wù)數(shù)據(jù)量大,特別在突發(fā)訪問時系統(tǒng)壓力增大了許多,主機負載量隨之加大,如果采用這種方式,很不利于系統(tǒng)生產(chǎn)中心的運行。
本文重點介紹了目前主流容災(zāi)技術(shù),及他們的特點,實際工作中需要充分比較各主流數(shù)據(jù)備份技術(shù)(基于數(shù)據(jù)庫復(fù)制、基于邏輯磁盤卷的遠程數(shù)據(jù)復(fù)制、基于智能存儲的遠程數(shù)據(jù)復(fù)制、遠程集群主機切換等)優(yōu)劣利弊和國內(nèi)的成功案例,并結(jié)合業(yè)務(wù)系統(tǒng)的實際情況,數(shù)據(jù)備份系統(tǒng)關(guān)鍵是實現(xiàn)核心業(yè)務(wù)應(yīng)用系統(tǒng)的數(shù)據(jù)級容災(zāi)備份,確保核心生產(chǎn)數(shù)據(jù)的安全。
參考文獻:
[1] 郝海濤,李勇.災(zāi)備方案中的常用數(shù)據(jù)復(fù)制技術(shù)[J].中國金融電腦,2003(5).
[2] 災(zāi)備,誰來建,怎么建?[J].中國計算機用戶,2005(18).
[3] 葉曉東.如何選擇災(zāi)備解決方案[J].中國金融電腦,2006(9).
[4] 何玉刃,張俊超.數(shù)據(jù)庫技術(shù)·應(yīng)用及實驗指導(dǎo)[M].北京:機械工業(yè)出版社,2005.
[5] 黃其民.基于Oracle日志技術(shù)的實時災(zāi)備方案[J].中國科技信息,2006(2).
[6] 范東.用合適的災(zāi)備武器保護自己[J].中國計算機用戶,2003(18).