王維民 周耀明 盛鴻文
摘要:隨著計算機和信息技術(shù)的高速發(fā)展,信息系統(tǒng)已全面支撐企業(yè)的生產(chǎn)、經(jīng)營、服務(wù)等活動。信息系統(tǒng)中的數(shù)據(jù)安全、數(shù)據(jù)異地容災(zāi)保護對企業(yè)來說就顯得極為重要。該文從硬件存儲和數(shù)據(jù)庫軟件兩種技術(shù)對建立數(shù)據(jù)異地容災(zāi)的技術(shù)進行了探討,研究其實現(xiàn)方式和應(yīng)用架構(gòu),并構(gòu)建了一種高性能、高可靠的數(shù)據(jù)異地容災(zāi)系統(tǒng),結(jié)合企業(yè)的實際情況進行了實現(xiàn)和應(yīng)用。
關(guān)鍵詞:企業(yè)信息;數(shù)據(jù);異地容災(zāi);應(yīng)用
中圖分類號:TP311文獻標(biāo)識碼:A文章編號:1009-3044(2012)29-6890-04
隨著信息系統(tǒng)在企業(yè)中的廣泛應(yīng)用,企業(yè)的生產(chǎn)、服務(wù)、決策等活動越來越依賴于信息系統(tǒng),但信息系統(tǒng)中數(shù)據(jù)安全的風(fēng)險時刻存在,如硬件、軟件、機房設(shè)施的故障和自然災(zāi)害的發(fā)生等,都將嚴(yán)重威脅著系統(tǒng)的穩(wěn)定運行和信息數(shù)據(jù)的安全。一旦災(zāi)害發(fā)生,系統(tǒng)可以重建,但系統(tǒng)中數(shù)據(jù)的丟失或損毀將給企業(yè)帶來巨大的損失,因此,如何進行數(shù)據(jù)的有效保護,確保信息系統(tǒng)的安全穩(wěn)定就成為企業(yè)當(dāng)前面臨的重要課題。
數(shù)據(jù)安全保護通常的方法是數(shù)據(jù)備份。日常信息數(shù)據(jù)備份是十分必要的,但它多是靜態(tài)冷備份,對系統(tǒng)階段性的、局部的數(shù)據(jù)備份是有效的,但無法實現(xiàn)系統(tǒng)的實時數(shù)據(jù)保存,在極端故障或自然災(zāi)害發(fā)生時其恢復(fù)數(shù)據(jù)的時間也難以滿足安全生產(chǎn)及時性的要求。
為了系統(tǒng)數(shù)據(jù)恢復(fù)迅速且實時、完整、有效,建立一套異地容災(zāi)系統(tǒng),對企業(yè)運營來說是十分必要,這樣才能有效保護信息數(shù)據(jù)和信息系統(tǒng),為企業(yè)發(fā)展做好全面的信息化支撐。
1 異地容災(zāi)系統(tǒng)目標(biāo)
異地容災(zāi)系統(tǒng)是指在核心數(shù)據(jù)機房以外的地點存儲(復(fù)制)另一份生產(chǎn)運營數(shù)據(jù),并且其內(nèi)容實時與生產(chǎn)數(shù)據(jù)保持一致。能夠在信息系統(tǒng)遭受硬件、軟件故障、或其它災(zāi)難,生產(chǎn)數(shù)據(jù)受到損壞的時刻,容災(zāi)系統(tǒng)能夠及時提供一份完整、準(zhǔn)確、有效的數(shù)據(jù),使信息系統(tǒng)及時恢復(fù),并能繼續(xù)運行服務(wù)。無論從數(shù)據(jù)安全還是系統(tǒng)運行連續(xù)性方面,容災(zāi)系統(tǒng)都將能對生產(chǎn)系統(tǒng)進行有效的保護。
2 異地容災(zāi)實現(xiàn)技術(shù)
2.1 異地容災(zāi)技術(shù)概述
異地容災(zāi)的核心是數(shù)據(jù)的實時復(fù)制、存儲,其實現(xiàn)技術(shù)目前有多種,主要有:
1)遠程鏡像技術(shù):它是在本地生產(chǎn)中心與遠端備份(異地)中心的數(shù)據(jù)盤產(chǎn)生同一數(shù)據(jù)視圖的存儲,實現(xiàn)遠端數(shù)據(jù)備份,主機產(chǎn)生的每個I/O都在兩端執(zhí)行。其優(yōu)點是數(shù)據(jù)能同時在兩端存儲,實現(xiàn)了數(shù)據(jù)的異地保存,但也額外占用了生產(chǎn)端主機的CPU資源。
2)快照技術(shù):它是對文件、數(shù)據(jù)庫、磁盤子系統(tǒng)或邏輯卷在某一時刻的數(shù)據(jù)進行保留,形成快照對象,訪問此對象即得到某歷史時刻的數(shù)據(jù)。瞬間拷貝是該方法的優(yōu)勢,但它不能保存實時的數(shù)據(jù),難以起到實時系統(tǒng)恢復(fù)。
3)應(yīng)用系統(tǒng)技術(shù):它是由應(yīng)用系統(tǒng)開發(fā)程序通過操作系統(tǒng)同時提交本地和遠程(異地)的I/O執(zhí)行來實現(xiàn)數(shù)據(jù)復(fù)制的。但其通用性和擴展性較弱,此外開發(fā)成本高、維護量大。
4)硬件存儲技術(shù):它是由兩端智能存儲實現(xiàn)的數(shù)據(jù)遠程復(fù)制,不占用主機、網(wǎng)絡(luò)資源。用于文件系統(tǒng)或數(shù)據(jù)庫容災(zāi)。
5)數(shù)據(jù)庫軟件技術(shù):它是通過數(shù)據(jù)庫通用軟件技術(shù)采用兩端(指生產(chǎn)庫和異地容災(zāi)庫)數(shù)據(jù)更新相同來實現(xiàn)遠程數(shù)據(jù)復(fù)制的。更加適用于數(shù)據(jù)庫的容災(zāi),
由此可見前三種實現(xiàn)技術(shù)在功能性、通用性、易維護性以及投入成本等方面都存在不足。本文著重探討功能強的、技術(shù)成熟的、通用性好的后兩種技術(shù),即硬件存儲、數(shù)據(jù)庫軟件實現(xiàn)異地容災(zāi)的技術(shù)。
2.2 硬件存儲技術(shù)
硬件存儲容災(zāi)技術(shù)是通過智能存儲盤陣及其相應(yīng)軟件來進行兩地存儲間數(shù)據(jù)的實時復(fù)制來實現(xiàn)異地容災(zāi)。數(shù)據(jù)可以是文件系統(tǒng)或數(shù)據(jù)庫的。復(fù)制的是存儲底層的數(shù)據(jù)塊,使兩端數(shù)據(jù)保持(準(zhǔn))一致,它是由智能磁盤陣列硬件來完成,不占用服務(wù)器及網(wǎng)路資源。由于是塊級復(fù)制,所以數(shù)據(jù)不會產(chǎn)生對應(yīng)用程序、數(shù)據(jù)庫、文件系統(tǒng)、邏輯卷管理系統(tǒng)等的依賴,可實現(xiàn)對任意格式數(shù)據(jù)的復(fù)制保護。它需要兩地存儲間專用的物理鏈路和同平臺的服務(wù)器。當(dāng)災(zāi)難發(fā)生時,容災(zāi)端可在極短時間內(nèi)啟動,轉(zhuǎn)為生產(chǎn)角色,提供數(shù)據(jù)與系統(tǒng)服務(wù)。
目前,市場上主要存儲盤陣廠商如IBM 、HP、EMC 等都有同類技術(shù)產(chǎn)品,下面以應(yīng)用范圍廣的EMC SRDF(Symmetrix Remote Data Facility)為例來對硬件存儲容災(zāi)技術(shù)進行闡述。
在信息安全容災(zāi)備份領(lǐng)域中SRDF能建立物理上獨立的兩個盤陣存儲之間完全的、實時的數(shù)據(jù)復(fù)制,兩者距離可以遠至百公里。其核心是生產(chǎn)端智能存儲記錄下數(shù)據(jù)變化的位置(track),SRDF軟件實現(xiàn)把變化的數(shù)據(jù)實時更新到容災(zāi)端盤陣對應(yīng)的位置,從而達到數(shù)據(jù)的一致。如需驗證訪問容災(zāi)數(shù)據(jù)則需停止復(fù)制,與此同時生產(chǎn)端盤陣?yán)^續(xù)記錄下數(shù)據(jù)變化的位置,待恢復(fù)復(fù)制時以增量的方式更新到容災(zāi)端,繼續(xù)保持復(fù)制,這種方式效率極高,能在很短的時間內(nèi)保持了兩邊數(shù)據(jù)的一致性。當(dāng)然容災(zāi)端初始數(shù)據(jù)是全量拷貝的。數(shù)據(jù)復(fù)制分為兩種工作方式:
1)同步方式,即生產(chǎn)端數(shù)據(jù)與容災(zāi)端保持準(zhǔn)確一致,生產(chǎn)服務(wù)器的每個I/O均在數(shù)據(jù)寫完生產(chǎn)存儲,并等到容災(zāi)端確認后才算真正的I/O完成。此方式適合對數(shù)據(jù)復(fù)制及時性要求高的且兩端距離短的場合。如圖1。
2)異步方式,即生產(chǎn)端數(shù)據(jù)與容災(zāi)端保持準(zhǔn)一致,主服務(wù)器的每個I/O在數(shù)據(jù)寫完生產(chǎn)存儲后即表示I/O完成,接下來生產(chǎn)數(shù)據(jù)由盤陣復(fù)制到容災(zāi)存儲。此方式適合兩端距離遠一點的場合。如圖2。
整個數(shù)據(jù)容災(zāi)工作過程分為復(fù)制和分離兩種狀態(tài),這兩種狀態(tài)可相互切換,具體為:
1) 復(fù)制狀態(tài),平時生產(chǎn)端數(shù)據(jù)實時更新到容災(zāi)端,容災(zāi)數(shù)據(jù)盤處于寫狀態(tài),生產(chǎn)數(shù)據(jù)處于異地保護之中,此時容災(zāi)端主機無法訪問容災(zāi)數(shù)據(jù)盤,容災(zāi)數(shù)據(jù)不可讀。如圖3。
2) 分離狀態(tài),容災(zāi)數(shù)據(jù)演練、驗證時,生產(chǎn)端數(shù)據(jù)停止復(fù)制,與容災(zāi)端分離,此時容災(zāi)端主機可訪問數(shù)據(jù)盤,即容災(zāi)數(shù)據(jù)可讀寫。容災(zāi)和生產(chǎn)是兩個獨立的系統(tǒng),容災(zāi)數(shù)據(jù)的讀寫均不會影響生產(chǎn)端數(shù)據(jù)。當(dāng)然此狀態(tài)下,生產(chǎn)端數(shù)據(jù)是無保護的,所以分離狀態(tài)的時間要盡可能的短。如圖4。
在單向復(fù)制模式下,容災(zāi)端數(shù)據(jù)如發(fā)生更改也不會影響生產(chǎn)端數(shù)據(jù),容災(zāi)端同樣記錄下變化的位置,待恢復(fù)復(fù)制后,容災(zāi)端原修改的數(shù)據(jù)又增量的方式更新成與生產(chǎn)端完整一致了。
2.3 數(shù)據(jù)庫軟件技術(shù)
此項技術(shù)指通過數(shù)據(jù)庫軟件或第三方軟件實現(xiàn)數(shù)據(jù)庫異庫(地)容災(zāi),本文以應(yīng)用范圍廣的ORACLE DataGuard來介紹。
DataGuard原理是容災(zāi)端獲取生產(chǎn)端數(shù)據(jù)變化的日志,再重做(應(yīng)用)于容災(zāi)端庫,使兩端數(shù)據(jù)變化相同來達到兩庫數(shù)據(jù)一致的目的。當(dāng)災(zāi)難發(fā)生時,容災(zāi)端可以很短時間內(nèi)應(yīng)用完日志,并切換為生產(chǎn)角色,提供數(shù)據(jù)服務(wù)。這種技術(shù)有物理和邏輯兩種方式:
1)物理方式:容災(zāi)庫直接應(yīng)用生產(chǎn)端庫的原樣日志重做,使兩端數(shù)據(jù)庫的數(shù)據(jù)更新相同。在此過程中容災(zāi)庫可轉(zhuǎn)換為只讀狀態(tài),此時獲取生產(chǎn)端日志文件不間斷。容災(zāi)庫的物理結(jié)構(gòu)必須和生產(chǎn)庫相同。初始容災(zāi)庫數(shù)據(jù)通常用Rman工具復(fù)制過來。如圖5。
2)邏輯方式:生產(chǎn)端庫的日志不是直接應(yīng)用于容災(zāi)庫,而是先轉(zhuǎn)換為SQL操作日志,再重應(yīng)用于容災(zāi)庫,這樣兩端庫數(shù)據(jù)變更相同來復(fù)制數(shù)據(jù)。當(dāng)然這一系列過程都是系統(tǒng)自動實現(xiàn)的。兩端庫的物理結(jié)構(gòu)可以不同。在應(yīng)用日志過程中容災(zāi)庫是打開的。如圖6。
2.4 兩種技術(shù)對比
根據(jù)以上的分析,對硬件存儲和數(shù)據(jù)庫軟件兩種容災(zāi)技術(shù)進行了比較,如表1:
表1硬件存儲和數(shù)據(jù)庫軟件技術(shù)比較
從表1可以看出兩種技術(shù)都有各自特點和適用場景,硬件復(fù)制技術(shù)在性能上和實時性方面有優(yōu)勢,但在數(shù)據(jù)邏輯完整性保護方面有欠缺,雖然系統(tǒng)本身有完整性校驗,數(shù)據(jù)能正常訪問;軟件復(fù)制技術(shù)在數(shù)據(jù)完整性、容災(zāi)數(shù)據(jù)讀取方面有優(yōu)勢,但在實時性方面顯不足。所以建立容災(zāi)系統(tǒng)方案的選擇需根據(jù)具體需求、條件來綜合考慮。
3 異地容災(zāi)實現(xiàn)和應(yīng)用
根據(jù)公司的業(yè)務(wù)需求,考慮到既要能抵抗生產(chǎn)端物理和邏輯方面損壞的風(fēng)險,保持?jǐn)?shù)據(jù)的實時高效復(fù)制,又要方便容災(zāi)的維護、驗證和演練,保持容災(zāi)數(shù)據(jù)的有效性。同時要兼顧邏輯損壞(問題)特點,即發(fā)現(xiàn)邏輯損壞有一定的延遲,這就要避免邏輯問題瞬間傳播到容災(zāi)系統(tǒng)上而一損俱損。綜合以上考慮和現(xiàn)有的條件,結(jié)合硬件存儲級和庫數(shù)據(jù)軟件方式的各自特點,我們將兩種容災(zāi)技術(shù)進行綜合,建立了相距15公里的核心數(shù)據(jù)異地容災(zāi)系統(tǒng),具體架構(gòu)如圖7。
圖7 數(shù)據(jù)容災(zāi)應(yīng)用
硬件存儲級容災(zāi)能抵抗了數(shù)據(jù)在物理硬件和災(zāi)害方面的風(fēng)險,其性能高、實時性強、維護量小。驗證或演練時啟用容災(zāi)端數(shù)據(jù),幾分鐘就可完成,體現(xiàn)數(shù)據(jù)恢復(fù)的完整性、及時性。平時和存儲擴容時維護也很方便。我們每月驗證一次,一直穩(wěn)定運行。另外,在生產(chǎn)系統(tǒng)主設(shè)備維護時,也利用容災(zāi)系統(tǒng)來預(yù)防數(shù)據(jù)的風(fēng)險。
數(shù)據(jù)庫軟件容災(zāi)能抵抗了數(shù)據(jù)在邏輯問題和災(zāi)害方面的風(fēng)險,實現(xiàn)了數(shù)據(jù)的安全復(fù)制。驗證、演練時啟用容災(zāi)庫(只讀),數(shù)據(jù)恢復(fù)至啟用瞬間,體現(xiàn)數(shù)據(jù)的完整性、有效性。容災(zāi)庫可以延緩(DELAY)一段時間再應(yīng)用重做,可避免生產(chǎn)庫的邏輯錯誤快速地傳播到容災(zāi)庫,起到邏輯錯的防護作用,在此期間日志文件還繼續(xù)傳遞到容災(zāi)端,保證了異地數(shù)據(jù)的完整性
另外,短時暫停容災(zāi)庫應(yīng)用日志,置于只讀狀態(tài),可用于后臺分析報表應(yīng)用;此時還能把分析統(tǒng)計的結(jié)果單獨保存(報表服務(wù)器),不受數(shù)據(jù)連續(xù)復(fù)制的影響,也減輕生產(chǎn)系統(tǒng)數(shù)據(jù)統(tǒng)計的負載。容災(zāi)庫可置回應(yīng)用日志狀態(tài),繼續(xù)保持?jǐn)?shù)據(jù)的日志應(yīng)用。
綜上所述,上述容災(zāi)方案給我們帶來了全面的數(shù)據(jù)安全防護,無論是故障、災(zāi)害,還是物理、邏輯上對數(shù)據(jù)的損壞,它都能提供一份完整的、實時的數(shù)據(jù)。
4 結(jié)束語
雖然硬件存儲級和庫數(shù)據(jù)軟件方式實現(xiàn)的異地容災(zāi)系統(tǒng)能對數(shù)據(jù)進行有效地保護,但還有些不完善的地方,如經(jīng)濟性、數(shù)據(jù)的實時性、易維護性和實用性等,這些方面還需繼續(xù)優(yōu)化。另外,雙活的容災(zāi)技術(shù)已成為下一步研究的方向,即容災(zāi)系統(tǒng)即能異地保存數(shù)據(jù)又能同時提供運營服務(wù)。
參考文獻:
[1]EMC公司.SRDF Foundations.Copyright 2010 EMC Corporation.
[2] 余承龍,李戰(zhàn)懷,黃英,胡娜.采用位表的塊級持續(xù)數(shù)據(jù)容災(zāi)系統(tǒng)研究[J].計算機工程與應(yīng)用,2010,46(32):119-122.
[3] 王彥龍,李戰(zhàn)懷,董歡慶等.Linux平臺遠程邏輯卷復(fù)制系統(tǒng)的災(zāi)難恢復(fù)策略[J].微電子學(xué)與計算機,2005,22(3):68-72.
[4] 朱潔梅,王海濤.Oracle Database 10g DBA手冊:管理健壯的、可擴展的、高可用的Oracle 數(shù)據(jù)庫[M].北京:清華大學(xué)出版社,2006.
[5] Oracle Data Guard Concepts and Administration,Release 2(9.2),October 2002,Part No.A96653-02.
[6] 龔艷,張世錢.用Oracle 9i dataguard構(gòu)建系統(tǒng)容災(zāi)[J].計算機應(yīng)用與軟件,2006(10).
[7] 郭凱夫.基于廣域網(wǎng)的數(shù)據(jù)備份方案的設(shè)計與實現(xiàn)[D].大連:大連理工大學(xué),2006.