摘 要:隨著數(shù)據(jù)的快速增長,對(duì)數(shù)據(jù)資源的依賴性越來越高。保證數(shù)據(jù)資源的完整性、可用性已經(jīng)成為數(shù)據(jù)保護(hù)學(xué)界及業(yè)界的研究熱點(diǎn)。數(shù)據(jù)備份和恢復(fù)技術(shù)是數(shù)據(jù)保護(hù)的關(guān)鍵技術(shù)。本文分層次闡述了當(dāng)今數(shù)據(jù)備份和恢復(fù)領(lǐng)域的研究現(xiàn)狀及動(dòng)態(tài),并討論了未來該領(lǐng)域需要面對(duì)和解決的幾個(gè)研究課題。
關(guān)鍵詞:數(shù)據(jù)備份;連續(xù)數(shù)據(jù)保護(hù);快照;版本文件系統(tǒng)
中圖分類號(hào):TP309
隨著社會(huì)信息化的突飛猛進(jìn),數(shù)據(jù)在人們?nèi)粘I詈推髽I(yè)業(yè)務(wù)運(yùn)營中的重要性日益凸顯。近年來,從海嘯、地震、戰(zhàn)爭(zhēng)等大型災(zāi)害到黑客攻擊、病毒入侵、人為失誤等數(shù)據(jù)安全事故頻繁發(fā)生,依賴于數(shù)據(jù)的業(yè)務(wù)正面臨著高度風(fēng)險(xiǎn)。圍繞數(shù)據(jù)可用性、完整性、性能優(yōu)化等方面的研究已經(jīng)成為數(shù)據(jù)保護(hù)學(xué)界及業(yè)界的主要課題。這些研究工作涉及設(shè)備、網(wǎng)絡(luò)、系統(tǒng)和應(yīng)用四個(gè)層次。在設(shè)備層,主要有磁盤到光盤(D2O)、磁盤到磁帶(D2T),磁盤到磁盤(D2D)、冗余磁盤陣列(RAID)等解決方案。在網(wǎng)絡(luò)層,隨著對(duì)備份系統(tǒng)容量和速度的需求越來越高,附網(wǎng)存儲(chǔ)(NAS)、存儲(chǔ)區(qū)域網(wǎng)(SAN)已逐漸取代了傳統(tǒng)的直連存儲(chǔ)(DAS)。在系統(tǒng)層,主要研究方向是快照、版本文件系統(tǒng)和連續(xù)數(shù)據(jù)保護(hù)技術(shù)。在應(yīng)用層,典型的有數(shù)據(jù)庫備份技術(shù)。數(shù)據(jù)的持續(xù)增長和應(yīng)用的高連續(xù)性對(duì)備份性能的要求越來越高,未來該領(lǐng)域尚有待于在數(shù)據(jù)去重、備份驗(yàn)證、I/O優(yōu)化、節(jié)能技術(shù)等方面進(jìn)行更深入的研究。
1 設(shè)備層備份技術(shù)
傳統(tǒng)的數(shù)據(jù)備份就是定期把數(shù)據(jù)從硬盤備份至其他存儲(chǔ)介質(zhì)如光存儲(chǔ)設(shè)備、磁帶和磁盤。小規(guī)模的數(shù)據(jù)備份,例如單服務(wù)器環(huán)境,光存儲(chǔ)(D2O)不失為一種低成本和便攜式解決方案。不過,光器件備份的容量、讀寫次數(shù)和速度都有限,難以滿足高可用性要求。
磁帶備份(D2T)一直是企業(yè)級(jí)備份的主要媒介。磁帶是順序存儲(chǔ)設(shè)備,特別適用于作周期性全量備份的媒介。此外,通過加載相對(duì)廉價(jià)的磁帶可以輕易擴(kuò)大備份端的存儲(chǔ)容量。但是,當(dāng)用戶想恢復(fù)某個(gè)時(shí)間點(diǎn)的數(shù)據(jù)時(shí),緩慢的倒帶速度使得恢復(fù)過程相當(dāng)漫長。
隨著磁盤容量和可靠性的不斷增強(qiáng)、磁盤到磁盤存儲(chǔ)(D2D)技術(shù)逐步流行。D2D相較于D2T具有快速備份/恢復(fù)的優(yōu)勢(shì),能在幾個(gè)小時(shí)內(nèi)完成往常需要數(shù)天才能完成的備份/恢復(fù)過程。一些商業(yè)產(chǎn)品融合了基于D2D備份的速度和基于D2T備份的容量?jī)?yōu)勢(shì),實(shí)現(xiàn)了被稱為磁盤到磁盤到磁帶(D2D2T)的數(shù)據(jù)保護(hù)技術(shù)。在這項(xiàng)技術(shù)下,數(shù)據(jù)被周期性地備份到磁盤上,然后再從磁盤定期歸檔到磁帶庫。
磁盤陣列(RAID)[4]利用冗余技術(shù)提供數(shù)據(jù)保護(hù),共有六個(gè)級(jí)別的RAID。RAID0把數(shù)據(jù)條帶性地分布在多個(gè)磁盤上,但不提供任何數(shù)據(jù)保護(hù)機(jī)制。RAID1-5能容忍一個(gè)磁盤的數(shù)據(jù)丟失。RAID1提供100%數(shù)據(jù)冗余,它能夠容忍對(duì)等盤中的任何一個(gè)盤的數(shù)據(jù)丟失。RAID3-5通過對(duì)所有磁盤上同一條帶上的數(shù)據(jù)單元進(jìn)行異或(XOR)運(yùn)算而存儲(chǔ)條帶的效驗(yàn)值達(dá)到了RAID1的數(shù)據(jù)保護(hù)效果又提高了磁盤的空間利用效率。RAID6[5]采用先進(jìn)的編碼技術(shù)能夠容忍多于一個(gè)的磁盤數(shù)據(jù)失效,從而進(jìn)一步提高了RAID的數(shù)據(jù)可靠性。
2 網(wǎng)絡(luò)層數(shù)據(jù)備份技術(shù)
后端備份設(shè)備(光存儲(chǔ)設(shè)備、磁帶、硬盤)通過存儲(chǔ)網(wǎng)絡(luò)連接到客戶機(jī)和服務(wù)器。傳統(tǒng)上,備份設(shè)備通過本地的互連設(shè)施如PCI、PCI-X直接連接到備份服務(wù)器,被稱為直連存儲(chǔ)(DAS)。DAS的總線帶寬有限,限制了后端存儲(chǔ)系統(tǒng)的性能和可擴(kuò)展性?,F(xiàn)代存儲(chǔ)網(wǎng)絡(luò)主要采用附網(wǎng)存儲(chǔ)(NAS)和存儲(chǔ)區(qū)域網(wǎng)絡(luò)(SAN)[7]架構(gòu)。不同于DAS中基于總線的共享網(wǎng)絡(luò),NAS和SAN建立在高速交換網(wǎng)絡(luò)比如VIA、InfiniBand和高速以太網(wǎng)上,它在備份設(shè)備和備份服務(wù)器之間提供了專用的高速交換通道。
NAS實(shí)現(xiàn)了存儲(chǔ)子系統(tǒng)和服務(wù)器之間的物理分離。存儲(chǔ)服務(wù)器和存儲(chǔ)設(shè)備之間的高速交換通道顯著地提高了存儲(chǔ)系統(tǒng)的整體吞吐量。盡管中央處理器的MIPS在近年來得到了巨大提高,但是其I/O中斷處理能力并沒有得到相應(yīng)數(shù)量級(jí)的提高。NAS通過把服務(wù)器從費(fèi)時(shí)的I/O中斷處理中解放出來從而極大地增強(qiáng)了存儲(chǔ)服務(wù)器的處理效率。最后,由于NAS中每一個(gè)組件的可用性都不依賴于其它組件的可用性,使得NAS具有良好的容錯(cuò)性能。典型的基于NAS的備份解決方案包括EMC的NetWin和Celerra,惠普的StorageWorks NAS和Netapp的NAS filer。
SAN使用專用的網(wǎng)絡(luò)連接存儲(chǔ)設(shè)備和存儲(chǔ)服務(wù)器。SAN把I/O流量由局域網(wǎng)轉(zhuǎn)載到了專用高速存儲(chǔ)子網(wǎng)上,使它在性能和容量上更勝于NAS。在基于SAN的備份系統(tǒng)上,服務(wù)器系統(tǒng)的備份負(fù)載對(duì)性能的影響也因?yàn)橛辛藢S玫拇鎯?chǔ)網(wǎng)絡(luò)設(shè)計(jì)而被最小化了。
3 系統(tǒng)層備份技術(shù)
系統(tǒng)層備份技術(shù)主要包括快照、版本文件系統(tǒng)和連續(xù)數(shù)據(jù)保護(hù)技術(shù)等。
快照技術(shù)幾乎被使用在所有的現(xiàn)代備份和恢復(fù)系統(tǒng)中。它允許系統(tǒng)迅速備份和恢復(fù)大量數(shù)據(jù)的同時(shí)不危及數(shù)據(jù)完整性和在線服務(wù)性能。對(duì)數(shù)據(jù)集的一個(gè)快照生成這個(gè)數(shù)據(jù)集的一個(gè)即時(shí)鏡像??煺湛梢允且粋€(gè)數(shù)據(jù)卷的全量拷貝或差量拷貝。全量快照拷貝數(shù)據(jù)集的全部?jī)?nèi)容,差量快照僅僅存儲(chǔ)改變了的數(shù)據(jù)。差量快照節(jié)省了存儲(chǔ)空間,但恢復(fù)時(shí)間較長。在實(shí)現(xiàn)方式上,差量快照有寫時(shí)拷貝(COW)和重定向(ROW)兩種。
為了克服差量快照恢復(fù)時(shí)間長的缺陷,人們開發(fā)了版本文件系統(tǒng)技術(shù)(VFS)。現(xiàn)在,版本文件系統(tǒng)已廣泛應(yīng)用于許多關(guān)鍵性領(lǐng)域,如醫(yī)院的病人監(jiān)護(hù)系統(tǒng)和軟件開發(fā)中的源代碼控制系統(tǒng)。版本文件系統(tǒng)保存了文件系統(tǒng)中所有重要文件的快照歷史,它使得文件系統(tǒng)能從用戶操作錯(cuò)誤或系統(tǒng)崩潰中恢復(fù)過來。版本文件系統(tǒng)的部署開銷會(huì)很高,因?yàn)樗鼈兇蠖嗍菫樘囟ǖ奈募到y(tǒng)而設(shè)計(jì)的。為了解決這個(gè)問題,Peabody在塊級(jí)而不是文件系統(tǒng)層實(shí)現(xiàn)版本機(jī)制,它兼容所有的文件系統(tǒng)和高層應(yīng)用。
基于快照的處理方式仍然有丟失數(shù)據(jù)的可能性,因?yàn)樵趦蓚€(gè)相鄰的快照之間對(duì)一個(gè)文件存在多個(gè)寫操作時(shí),快照會(huì)丟失這些寫操作對(duì)文件的更新。連續(xù)數(shù)據(jù)保護(hù)(CDP)技術(shù)用來提供任意時(shí)間點(diǎn)的可恢復(fù)性。連續(xù)數(shù)據(jù)保護(hù)捕捉塊級(jí)或文件級(jí)的所有數(shù)據(jù)變化,并且為所有的歷史數(shù)據(jù)狀態(tài)提供運(yùn)行恢復(fù)點(diǎn)。相較于快照,數(shù)據(jù)保護(hù)已經(jīng)從離散的時(shí)間點(diǎn)轉(zhuǎn)換到更具靈活性的連續(xù)時(shí)間點(diǎn)模式。連續(xù)數(shù)據(jù)保護(hù)技術(shù)在密集型寫負(fù)載下很容易耗盡存儲(chǔ)媒介上的空閑空間。數(shù)據(jù)冗余和壓縮技術(shù)能夠用來降低連續(xù)數(shù)據(jù)保護(hù)存儲(chǔ)系統(tǒng)的空間需求。TRAP陣列在RAID3-5上使用冗余以最小的空間開銷實(shí)現(xiàn)了任意時(shí)間點(diǎn)恢復(fù)。
4 應(yīng)用層備份技術(shù)
現(xiàn)代數(shù)據(jù)庫系統(tǒng)使用“事務(wù)”這一概念保證系統(tǒng)崩潰或用戶操作錯(cuò)誤后數(shù)據(jù)的一致性。事務(wù)的基本操作包括讀取、提交和夭折。每個(gè)事務(wù)必須滿足四項(xiàng)要求,即ACID(原子性、一致性、隔離性和持久性)。
為了滿足事務(wù)的持久性和原子性,數(shù)據(jù)庫系統(tǒng)使用備份與恢復(fù)技術(shù)來保證當(dāng)出現(xiàn)系統(tǒng)崩潰、交易錯(cuò)誤、系統(tǒng)錯(cuò)誤或磁盤失敗等異常情況時(shí)數(shù)據(jù)的一致性。這些技術(shù)包括影子分頁(Shadow Paging)、預(yù)寫日志(Write Ahead Log)和 檢查點(diǎn)(Checkpoint)技術(shù)等。
System R recovery manager[13]首次使用影子分頁技術(shù)使數(shù)據(jù)庫事務(wù)具有可恢復(fù)性和隔離性。System R的所有持久性數(shù)據(jù)都以文件存儲(chǔ)在以4K大小頁面為單位的動(dòng)態(tài)分配的線型空間中。每個(gè)文件都關(guān)聯(lián)著一個(gè)特定的恢復(fù)協(xié)議:附影的和非附影的。非附影的文件不存儲(chǔ)冗余副本,故不支持自動(dòng)恢復(fù)。附影文件在線維護(hù)著兩個(gè)互為影子的文件版本,即影子版本和當(dāng)前版本。事務(wù)操作僅僅影響文件的當(dāng)前版本(SAVE和RESTORE操作除外)。當(dāng)系統(tǒng)崩潰后重新啟動(dòng)時(shí),影子版本總是幸存的。結(jié)合數(shù)據(jù)庫日志和最近的影子狀態(tài),數(shù)據(jù)庫可以通過丟棄夭折的事務(wù)并重做已提交的事務(wù)來迅速恢復(fù)到一致狀態(tài)。
影子分頁和事務(wù)日志保證恢復(fù)過程總是始于一個(gè)活動(dòng)一致性狀態(tài)。預(yù)寫日志以一種頁面一致性狀態(tài)的輕量級(jí)方式取得相似的目標(biāo)。預(yù)寫日志首先在IBM公司的IMS/VS系統(tǒng)中實(shí)施。預(yù)寫日志在任何頁面更新執(zhí)行之前把頁面更新日志記錄在二級(jí)存儲(chǔ)器中。在大規(guī)模數(shù)據(jù)庫中,預(yù)寫日志比影子分頁更有效率。首先,它節(jié)省了一致性數(shù)據(jù)恢復(fù)對(duì)內(nèi)存和二級(jí)存儲(chǔ)空間的需求,因?yàn)樗灰蕾嚾魏斡白痈北?。第二,它的?shí)施較影子分頁要簡(jiǎn)單得多,并無必要維持頁面描述符和空閑空間位圖。第三,更重要的是,預(yù)寫日志具有較好的性能,因?yàn)榫晚撁鍵/O的幾率來說,預(yù)寫日志要小于影子分頁。
Checkpoint技術(shù)幫助在系統(tǒng)重啟時(shí)高效地協(xié)調(diào)數(shù)據(jù)庫狀態(tài)和日志狀態(tài)。保存一個(gè)checkpoint時(shí),所有的內(nèi)存緩沖區(qū)都作為一個(gè)checkpoint記錄被寫到磁盤上,附加在事務(wù)日志的后面。相較于影子分頁來說,checkpoint的開銷要高得多,因?yàn)樗鼘?dǎo)致更多的磁盤I/Os。
5 研究展望
數(shù)據(jù)的持續(xù)增長和應(yīng)用的高連續(xù)性對(duì)備份性能的要求越來越高,未來該領(lǐng)域尚有待于在數(shù)據(jù)去重、備份驗(yàn)證、I/O優(yōu)化、節(jié)能技術(shù)等方面進(jìn)行更深入的研究。
數(shù)據(jù)去重是指消除冗余的文件、數(shù)據(jù)塊、或字節(jié)以保證只有單一的數(shù)據(jù)實(shí)例存儲(chǔ)在系統(tǒng)中的過程。這一技術(shù)能有效克服傳統(tǒng)的數(shù)據(jù)保護(hù)技術(shù)比如周期性備份、快照、連續(xù)數(shù)據(jù)保護(hù)和版本文件系統(tǒng)等會(huì)產(chǎn)生了大量重復(fù)數(shù)據(jù)的缺點(diǎn)。未來需要進(jìn)一步研究該技術(shù)在海量數(shù)據(jù)備份系統(tǒng)中的實(shí)現(xiàn)機(jī)制,提高重復(fù)數(shù)據(jù)刪除性能,實(shí)現(xiàn)系統(tǒng)在容量和性能方面的高度可擴(kuò)展性。
數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性、數(shù)據(jù)價(jià)值的增加以及日益增長的數(shù)據(jù)依賴性,使得對(duì)數(shù)據(jù)的成功備份必不可少并倍受關(guān)注。大量備份失敗案例(例如使用未格式化的磁帶)都是人為錯(cuò)誤造成的,這表明備份驗(yàn)證和備份本身同等重要。在高可用性環(huán)境下,為了減少備份驗(yàn)證對(duì)主數(shù)據(jù)集性能的影響,可以為驗(yàn)證需要而維護(hù)兩個(gè)或更多備份副本并使用Byzantine容錯(cuò)協(xié)議驗(yàn)證備份副本的正確性。
一直以來,I/O子系統(tǒng)被不斷優(yōu)化以縮小磁盤系統(tǒng)和中央處理器之間的性能鴻溝。例如,I/O緩沖和高速緩存技術(shù)已成功應(yīng)用在I/O路徑上的許多部位。雖然這些技術(shù)中的某些技術(shù)適用于備份和恢復(fù)系統(tǒng),但大多數(shù)因?yàn)樨?fù)載特性的差異而不適用。因此,目前的I/O優(yōu)化的效率在備份負(fù)載的環(huán)境下需要重新評(píng)估。就我們所知,還沒有人徹底研究過備份存儲(chǔ)系統(tǒng)的負(fù)載以及其對(duì)目前I/O優(yōu)化技術(shù)的影響。
基于磁盤的備份系統(tǒng)通常在后端包含成百上千個(gè)高速旋轉(zhuǎn)的磁盤。為這些磁盤以及散熱設(shè)備支付的能源帳單占去了備份系統(tǒng)總擁有成本的很大一部分。目前這方面的研究大多采取負(fù)載集中、高速緩存磁盤以及動(dòng)態(tài)轉(zhuǎn)速調(diào)整等技術(shù)來節(jié)省能源。然而,對(duì)基于磁盤的存儲(chǔ)系統(tǒng)來說,如何在不降低系統(tǒng)性能的前提下節(jié)省能源仍然是一個(gè)未決的研究課題。
參考文獻(xiàn):
[1]魏冰璐.一種持續(xù)數(shù)據(jù)保護(hù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2009(06).
作者簡(jiǎn)介:鄭喜(1967.10-),男,遂平縣人,干部,工程師,本科,研究方向:輸配電及用電工程;楊天明(1968.09-),男,湖北咸寧人,高級(jí)工程師,博士,研究方向:數(shù)據(jù)存儲(chǔ)。
作者單位:泌陽電業(yè)局,河南泌陽 463700;黃淮學(xué)院,河南駐馬店 463000