孟令軍
摘要:云存儲(chǔ)是在云計(jì)算(cloud computing)概念上延伸和發(fā)展出來(lái)的一個(gè)新的概念,是將儲(chǔ)存資源放到云上供人存取的一種新興方案[1]。由于傳統(tǒng)web服務(wù)以及自身特點(diǎn)帶來(lái)的安全風(fēng)險(xiǎn),正日益成為阻礙其進(jìn)一步發(fā)展的因素。因此, 在業(yè)界對(duì)數(shù)據(jù)安全分析已有基礎(chǔ)上,該文主要針對(duì)數(shù)據(jù)安全方面的數(shù)據(jù)恢復(fù)方向進(jìn)行了研究,并結(jié)合回收站機(jī)制提出對(duì)分布式數(shù)據(jù)恢復(fù)的展望。
關(guān)鍵詞:云存儲(chǔ);云安全風(fēng)險(xiǎn);數(shù)據(jù)恢復(fù);冗余恢復(fù);回收站
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)14-3230-03
Abstract: Cloud storage is a new concept described on the extension and development of concept of Cloud Computing ,[1]which is a new scheme to access resources in the cloud for people. Due to the security risk caused by the traditional web service and its own characteristics, which have become the factors that hinder its further development. Therefore, on the basis of existing findings ,this article mainly aimed at data recovery, one aspect of data security, and put forward on data recovery on distributed file system.
Key words: cloud storage; cloud security risk; storage restore; recycle bin
隨著谷歌,微軟,亞馬遜,IBM等大型公司越來(lái)越致力于云計(jì)算的研究,使“云”得到了飛速發(fā)展,越來(lái)越多的用戶開(kāi)始將數(shù)據(jù)部署在“云端”,然而云在給用戶帶來(lái)許多便利的同時(shí),由于傳統(tǒng)web服務(wù)以及自身特點(diǎn)帶來(lái)的安全風(fēng)險(xiǎn),正日益成為阻礙其進(jìn)一步發(fā)展的因素。在目前云平臺(tái)安全機(jī)制下,對(duì)云存儲(chǔ)、云安全風(fēng)險(xiǎn)以及在云平臺(tái)下數(shù)據(jù)恢復(fù)問(wèn)題做了簡(jiǎn)單分析。
1 云存儲(chǔ)
Yahoo云計(jì)算平臺(tái)核心是Hadoop技術(shù),它所采用的分布式文檔系統(tǒng)HDFS(Hadoop Distributed File System)與Google的GFS(Google File System)分布式系統(tǒng)不同,是真正運(yùn)作MapReduce云計(jì)算技術(shù)的開(kāi)放源代碼云計(jì)算系統(tǒng)。Hadoop除HDFS分布式文檔系統(tǒng)、MapReduce分布式平行計(jì)算框架以及Hbase分布式數(shù)據(jù)庫(kù)三大核心技術(shù)外,還包括Hive、Pig等子技術(shù)。
1.1 HDFS分布式文件系統(tǒng)
為了加強(qiáng)對(duì)后文數(shù)據(jù)恢復(fù)問(wèn)題的認(rèn)識(shí),這里簡(jiǎn)單介紹一下HDFS分布式文件系統(tǒng)。
HDFS是根據(jù)Coogle發(fā)表的GFS文檔系統(tǒng)論文開(kāi)發(fā)的開(kāi)放源代碼分布式文檔系統(tǒng),是一種典型的主從式( Master / Slave )架構(gòu),主要用來(lái)解決數(shù)據(jù)爆炸式增長(zhǎng)的問(wèn)題,具有存儲(chǔ)效率高、擴(kuò)展性能好、可靠性有保障、價(jià)格低廉以及可再用性強(qiáng)的優(yōu)點(diǎn)。它由一個(gè)名叫 NameNode的控制節(jié)點(diǎn)和多個(gè)名叫 DataNode 的數(shù)據(jù)節(jié)點(diǎn)組成。NameNode 維護(hù)著整個(gè)文件系統(tǒng)的命名空間,將文件系統(tǒng)的元數(shù)據(jù)保存在內(nèi)存中,管理、控制文件的相關(guān)操作,但實(shí)際的數(shù)據(jù)并不存放在 NameNode 中,而是存放在 DataNode 中。
當(dāng)客戶端應(yīng)用程序訪問(wèn)文件時(shí),HDFS首先將包含該文件名字的訪問(wèn)請(qǐng)求發(fā)送給 NameNode,然后 NameNode 將存儲(chǔ)該文件所有數(shù)據(jù)塊的 DataNode 地址信息反饋給客戶端應(yīng)用程序,進(jìn)而客戶端應(yīng)用程序直接和相應(yīng)的 DataNode 建立連接并進(jìn)行具體的文件讀寫操作。它的數(shù)據(jù)訪問(wèn)特性是“一次寫入,多次讀取”,文檔一旦創(chuàng)建就不允許更改,而是以附加的方式加在原文檔后面。另外,HDFS被分割的block大小一般為128MB,并且默認(rèn)以3個(gè)備份存儲(chǔ)到不同的機(jī)架,以Linux操作系統(tǒng)的ext2/ext3文檔系統(tǒng)格式存儲(chǔ)在硬盤上,用來(lái)保證數(shù)據(jù)的安全[1] 。更重要的是HDFS具有容錯(cuò)功能,當(dāng)出現(xiàn)宕機(jī)或者其它突發(fā)狀況,HDFS檢測(cè)到錯(cuò)誤時(shí),可以通過(guò)HDFS的容錯(cuò)檢測(cè)以及自動(dòng)恢復(fù)系統(tǒng)將損壞的文檔復(fù)原,這就是后文介紹的有關(guān)數(shù)據(jù)恢復(fù)的知識(shí)。
2 云計(jì)算的安全
美國(guó)Gartner 公司于 2008 年發(fā)布的一份名為《云計(jì)算安全風(fēng)險(xiǎn)評(píng)估》的報(bào)告,報(bào)告指出云計(jì)算存在的七大安全風(fēng)險(xiǎn)[2],分別是優(yōu)先訪問(wèn)權(quán)、管理權(quán)限、數(shù)據(jù)位置、數(shù)據(jù)隔離、數(shù)據(jù)恢復(fù)、調(diào)查支持、長(zhǎng)期發(fā)展。
云計(jì)算安全風(fēng)險(xiǎn)主要體現(xiàn)在以下幾個(gè)方面:惡意服務(wù)注入,非法數(shù)據(jù)恢復(fù),篡改數(shù)據(jù)備份:安全一致性差:跨虛擬機(jī)襲擊,分布式服務(wù)拒絕[3]。
從以上可知,數(shù)據(jù)恢復(fù)是云計(jì)算數(shù)據(jù)安全的一個(gè)研究熱點(diǎn),該文著重就數(shù)據(jù)恢復(fù)問(wèn)題進(jìn)行分析。數(shù)據(jù)恢復(fù)包括恢復(fù)兩個(gè)方面的數(shù)據(jù):一是受損數(shù)據(jù);二是已刪數(shù)據(jù)。受損數(shù)據(jù)恢復(fù)相比較而言,方法更多,而且簡(jiǎn)單許多,已刪數(shù)據(jù)目前則必須是在一定條件下才可以恢復(fù)。
2.1受損數(shù)據(jù)恢復(fù)
包括即冗余恢復(fù)[3]、副本恢復(fù)[4]和備份恢復(fù)[5]三種恢復(fù)方式。其中,冗余恢復(fù)方式主要用于云端數(shù)據(jù)存取過(guò)程中數(shù)據(jù)受損時(shí)的恢復(fù);副本恢復(fù)和備份恢復(fù)方式則主要用于云端數(shù)據(jù)存儲(chǔ)后數(shù)據(jù)受損時(shí)的恢復(fù)。
2.1.1冗余恢復(fù)[3]
由于數(shù)據(jù)傳輸過(guò)程中可能出現(xiàn)宕機(jī)等突發(fā)狀況,使得數(shù)據(jù)在傳輸?shù)倪^(guò)程中受損。這種情況下可以利用冗余恢復(fù)對(duì)數(shù)據(jù)進(jìn)行恢復(fù)。冗余恢復(fù)是利用糾錯(cuò)碼對(duì)傳輸過(guò)程中的受損數(shù)據(jù)進(jìn)行即時(shí)恢復(fù),系統(tǒng)使用Reed-Solomon碼提供任意高錯(cuò)誤恢復(fù)技術(shù),保證系統(tǒng)在發(fā)現(xiàn)問(wèn)題后能夠被迅速檢測(cè)到并進(jìn)行恢復(fù)。
為了確保云端數(shù)據(jù)更加可靠,保證云端已存儲(chǔ)的數(shù)據(jù)的安全性,對(duì)云端存儲(chǔ)的數(shù)據(jù)還可以采用副本恢復(fù)和備份恢復(fù)兩種方式。根據(jù)上文提到的云計(jì)算的分布式文檔系統(tǒng)可知,云端存儲(chǔ)的數(shù)據(jù)(塊)在不同的服務(wù)器上都存有3個(gè)及以上的副本。很顯然在某臺(tái)服務(wù)器上數(shù)據(jù)出現(xiàn)錯(cuò)誤狀況時(shí),可以利用云端其他服務(wù)器上的數(shù)據(jù)(塊)來(lái)代替當(dāng)前服務(wù)器上的受損數(shù)據(jù),這就是所謂的“異地災(zāi)難備份機(jī)制”,像銀聯(lián)數(shù)據(jù)中心這樣的金融機(jī)構(gòu)采用的就是“兩地兩中心”或者“兩地三中心”這樣的異地災(zāi)難備份機(jī)制來(lái)保證金融數(shù)據(jù)的安全性的。
2.1.2副本恢復(fù)[4]
云端已存數(shù)據(jù)的副本恢復(fù)方式原理就是利用分布式系統(tǒng)的存儲(chǔ)特性,通過(guò)云端各服務(wù)器之間相互復(fù)制數(shù)據(jù)塊的副本來(lái)實(shí)現(xiàn)的。簡(jiǎn)要地說(shuō),如果系統(tǒng)在進(jìn)行完整性驗(yàn)證過(guò)程中發(fā)現(xiàn)某數(shù)據(jù)(塊)完整性受損,可以通過(guò)云端服務(wù)器上的復(fù)制進(jìn)程(如上文1.1所提到的),實(shí)現(xiàn)數(shù)據(jù)(塊)副本之間的復(fù)制來(lái)恢復(fù)受損或丟失的數(shù)據(jù)(塊),這就是云端已存數(shù)據(jù)的副本恢復(fù)方法。
但是并不排除其他極端情況,比如,數(shù)據(jù)被損壞后或者被惡意篡改后正好復(fù)制進(jìn)程啟動(dòng)(按照復(fù)制策略),那么受損或被惡意篡改的數(shù)據(jù)就會(huì)被復(fù)制到各個(gè)服務(wù)器,覆蓋原來(lái)冗余存儲(chǔ)的正確數(shù)據(jù)(塊),從而使得數(shù)據(jù)(塊)完全被損壞。對(duì)于此類云端受損數(shù)據(jù),可以借鑒windows系統(tǒng)里面的備份機(jī)制,即將數(shù)據(jù)恢復(fù)到受損前的某個(gè)狀態(tài),一旦出現(xiàn)以上狀況,就恢復(fù)到受損前這個(gè)正常狀態(tài)。為了實(shí)現(xiàn)這一恢復(fù)策略,需要在云端定時(shí)保存歷史備份數(shù)據(jù),且這些數(shù)據(jù)不能進(jìn)行更新和同步操作。
2.1.3備份恢復(fù)[5]
數(shù)據(jù)備份和備份策略是比較成熟的技術(shù),備份策略如下:一是按照云端數(shù)據(jù)存儲(chǔ)模型和結(jié)構(gòu),云端數(shù)據(jù)采用分塊備份;二是采用全備份和增量(或者差異)備份相結(jié)合的方法對(duì)云端數(shù)據(jù)塊進(jìn)行備份。 備份恢復(fù)是以丟失用戶實(shí)時(shí)修改更新的數(shù)據(jù)為代價(jià),把用戶的數(shù)據(jù)恢復(fù)到某一正常時(shí)期的狀態(tài)。
綜上,受損數(shù)據(jù)的恢復(fù)流程是:系統(tǒng)通過(guò)完整性驗(yàn)證,一旦發(fā)現(xiàn)已存云端數(shù)據(jù)受到損壞后,自動(dòng)啟動(dòng)恢復(fù)模式,采用的受損數(shù)據(jù)恢復(fù)方式的順序一般依次為:冗余恢復(fù)、副本恢復(fù)和備份恢復(fù)。
2.2 已刪數(shù)據(jù)恢復(fù)
2.2.1 Linux 文件系統(tǒng)下已刪數(shù)據(jù)的恢復(fù)
基于 HDFS 的數(shù)據(jù)銷毀機(jī)制設(shè)計(jì):HDFS 中數(shù)據(jù)的刪除是異步的。在 NameNode 將元數(shù)據(jù)刪除后,DataNode 通過(guò) heartbeat獲取此改變(invalid block 列表),并通過(guò) Java 的文件刪除方法刪除本地文件系統(tǒng)上對(duì)應(yīng)的文件。由此可見(jiàn),這種刪除機(jī)制與單機(jī)狀態(tài)下文件刪除普通的沒(méi)有什么不同,這種刪除機(jī)制并沒(méi)有在刪除數(shù)據(jù)之前對(duì)數(shù)據(jù)進(jìn)行覆寫算法等破壞性操作。然而 Linux 系統(tǒng)的 ext2 文件系統(tǒng)(前文1.1提到)的文件刪除機(jī)制只是改變了塊位圖和索引節(jié)點(diǎn)的狀態(tài)[6,7],只是導(dǎo)致系統(tǒng)不能通過(guò)索引節(jié)點(diǎn)去定位文件,文件的實(shí)際內(nèi)容甚至是索引節(jié)點(diǎn)中的元數(shù)據(jù)都沒(méi)有被真正刪除,只有等下一次數(shù)據(jù)寫入、進(jìn)行多種覆寫算法刪除的時(shí)候才能覆蓋這些數(shù)據(jù)。所以,Linux 中的數(shù)據(jù)在刪除操作之后,并沒(méi)有被實(shí)際刪除,仍可以通過(guò)使用e2undel、libundel庫(kù)恢復(fù)文件[7]。
對(duì)于Linux ext3/4文件系統(tǒng),因?yàn)槟J(rèn)帶有日志文件,系統(tǒng)出現(xiàn)宕機(jī)等突發(fā)狀況時(shí),日志文件會(huì)記錄突發(fā)狀況,可以用于數(shù)據(jù)的恢復(fù),對(duì)于恢復(fù)后不可識(shí)別的數(shù)據(jù),會(huì)被fsck放在lost+found目錄下。至于這種類型文件系統(tǒng)下的已刪數(shù)據(jù)恢復(fù),還需進(jìn)一步研究分析。
2.2.2 HDFS 分布式文件系統(tǒng)下已刪數(shù)據(jù)的恢復(fù)
實(shí)際上,當(dāng)用戶通過(guò)HDFS Shell命令刪除文件時(shí),文件并未即刻被刪去,而是會(huì)被重命名到/Trash文件中,文件在該文件中保留預(yù)定時(shí)間,在該時(shí)間段內(nèi),可以隨時(shí)恢復(fù)被刪除的文件,當(dāng)超過(guò)這個(gè)保留時(shí)間時(shí), Namenode 就會(huì)將該文件從名字空間中刪除,刪除文件會(huì)使得該文件相關(guān)的數(shù)據(jù)塊被釋放,類似于windows系統(tǒng)中的回收站機(jī)制。具體被刪文件恢復(fù)仿真過(guò)程如下:
①運(yùn)用shell命令創(chuàng)建一個(gè)文件d,如圖1。
②運(yùn)用shell命令刪除文件d,可以發(fā)現(xiàn)自動(dòng)生成了一個(gè)Trash文件,如圖2。
③ 在刪除之后查看時(shí),發(fā)現(xiàn)被刪除的文件d存放于Trash文件目錄中,如圖3。
④試圖從/Trash中恢復(fù)被刪除的d文件,如圖4。
⑤再次查看時(shí)會(huì)發(fā)現(xiàn)被刪除的文件已經(jīng)被恢復(fù)了,如圖5。
2.2.3 磁盤介質(zhì)上已刪數(shù)據(jù)的恢復(fù)
HDFS 文件系統(tǒng)是一個(gè)異構(gòu)的分布式文件系統(tǒng)[6],它可以支持異構(gòu)的主機(jī)構(gòu)成一個(gè)統(tǒng)一的分布式文件系統(tǒng)。其中,存儲(chǔ)的異構(gòu)主要表現(xiàn)在存儲(chǔ)介質(zhì)的不同,現(xiàn)在主流存儲(chǔ)介質(zhì)有傳統(tǒng)硬盤的磁介質(zhì)和固態(tài)硬盤( SSD)的閃存半導(dǎo)體介質(zhì)。
對(duì)于磁盤介質(zhì)上已刪的數(shù)據(jù)恢復(fù)[8],首先對(duì)文件系統(tǒng)進(jìn)行分析,自動(dòng)進(jìn)行raid磁盤陣列的磁盤次序、塊大小等參數(shù)的分析,確定磁盤存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu)中主引導(dǎo)記錄、DOS引導(dǎo)記錄、文件分配表、硬盤分區(qū)表等數(shù)據(jù)完整程度。根據(jù)相應(yīng)信息提供策略選擇,自動(dòng)分析生成殘留數(shù)據(jù)部分原始文件位置、數(shù)據(jù)大小、類型等信息,從云存儲(chǔ)目標(biāo)區(qū)域讀取磁盤數(shù)據(jù)區(qū)數(shù)據(jù),對(duì)文件進(jìn)行重建還原,并對(duì)缺失部分?jǐn)?shù)據(jù)進(jìn)行估算,生成原文件,恢復(fù)殘留數(shù)據(jù)。
3 結(jié)束語(yǔ)
云時(shí)代已經(jīng)到來(lái),大數(shù)據(jù)已經(jīng)無(wú)處不在并已爆炸式發(fā)展,數(shù)據(jù)安全風(fēng)險(xiǎn)是“云”進(jìn)一步發(fā)展壯大的障礙,所以數(shù)據(jù)安全更是值得深究的一個(gè)方面,當(dāng)數(shù)據(jù)安全(包括數(shù)據(jù)恢復(fù))得到強(qiáng)有力保障的時(shí)候,云的發(fā)展必定更加快速、穩(wěn)健。
參考文獻(xiàn):
[1] 徐成俊.云計(jì)算實(shí)用技術(shù)[M].蘭州:甘肅人民出版社,2013.
[2] WANG Chenxi,PENN J,HERALD A.How Secure Is Your Cloud?Forrester Research ForSecurity&RiskProfessionals[EB/OL]. [2009-08-03].
[3] Wei-Tek T,Peide Z,Balsasooriya J,etal. An approach for service copposition and thesting for cloud copmputing[C]//Autonomous Decentralized Systems(ISADS),2011 10th INTERNATIONAL Symposium on.Japan:Tokyo,2011:631-636.
[3] 邊根慶.面向分散式存儲(chǔ)的云存儲(chǔ)安全架構(gòu)[J].西安交通大學(xué)學(xué)報(bào),2013,6(45):44.
[4] 項(xiàng)菲.新的基于云計(jì)算環(huán)境的數(shù)據(jù)容災(zāi)策略[J].通信學(xué)報(bào),2013,6(34).
[5] 孫勇.面向云計(jì)算的鍵值型分布式存儲(chǔ)系統(tǒng)研究[J].電子學(xué)報(bào),2013,7(4):1409.
[6] 秦軍.HDFS 的多安全級(jí)數(shù)據(jù)銷毀機(jī)制設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2013,3(23):131.
[7] 馮銳,王磊.如何恢復(fù) Linux 上刪除的文件,第3 部分[EB/OL].[2012-04-04]. http://www.ibm.com/developerworks/cn/linux /l-cn-filesrc3.
[8] 劉云龍.面向安全風(fēng)險(xiǎn)的云計(jì)算測(cè)試技術(shù)研究[J].微電子學(xué)與計(jì)算機(jī),2013,6(30):17-18.
為了確保云端數(shù)據(jù)更加可靠,保證云端已存儲(chǔ)的數(shù)據(jù)的安全性,對(duì)云端存儲(chǔ)的數(shù)據(jù)還可以采用副本恢復(fù)和備份恢復(fù)兩種方式。根據(jù)上文提到的云計(jì)算的分布式文檔系統(tǒng)可知,云端存儲(chǔ)的數(shù)據(jù)(塊)在不同的服務(wù)器上都存有3個(gè)及以上的副本。很顯然在某臺(tái)服務(wù)器上數(shù)據(jù)出現(xiàn)錯(cuò)誤狀況時(shí),可以利用云端其他服務(wù)器上的數(shù)據(jù)(塊)來(lái)代替當(dāng)前服務(wù)器上的受損數(shù)據(jù),這就是所謂的“異地災(zāi)難備份機(jī)制”,像銀聯(lián)數(shù)據(jù)中心這樣的金融機(jī)構(gòu)采用的就是“兩地兩中心”或者“兩地三中心”這樣的異地災(zāi)難備份機(jī)制來(lái)保證金融數(shù)據(jù)的安全性的。
2.1.2副本恢復(fù)[4]
云端已存數(shù)據(jù)的副本恢復(fù)方式原理就是利用分布式系統(tǒng)的存儲(chǔ)特性,通過(guò)云端各服務(wù)器之間相互復(fù)制數(shù)據(jù)塊的副本來(lái)實(shí)現(xiàn)的。簡(jiǎn)要地說(shuō),如果系統(tǒng)在進(jìn)行完整性驗(yàn)證過(guò)程中發(fā)現(xiàn)某數(shù)據(jù)(塊)完整性受損,可以通過(guò)云端服務(wù)器上的復(fù)制進(jìn)程(如上文1.1所提到的),實(shí)現(xiàn)數(shù)據(jù)(塊)副本之間的復(fù)制來(lái)恢復(fù)受損或丟失的數(shù)據(jù)(塊),這就是云端已存數(shù)據(jù)的副本恢復(fù)方法。
但是并不排除其他極端情況,比如,數(shù)據(jù)被損壞后或者被惡意篡改后正好復(fù)制進(jìn)程啟動(dòng)(按照復(fù)制策略),那么受損或被惡意篡改的數(shù)據(jù)就會(huì)被復(fù)制到各個(gè)服務(wù)器,覆蓋原來(lái)冗余存儲(chǔ)的正確數(shù)據(jù)(塊),從而使得數(shù)據(jù)(塊)完全被損壞。對(duì)于此類云端受損數(shù)據(jù),可以借鑒windows系統(tǒng)里面的備份機(jī)制,即將數(shù)據(jù)恢復(fù)到受損前的某個(gè)狀態(tài),一旦出現(xiàn)以上狀況,就恢復(fù)到受損前這個(gè)正常狀態(tài)。為了實(shí)現(xiàn)這一恢復(fù)策略,需要在云端定時(shí)保存歷史備份數(shù)據(jù),且這些數(shù)據(jù)不能進(jìn)行更新和同步操作。
2.1.3備份恢復(fù)[5]
數(shù)據(jù)備份和備份策略是比較成熟的技術(shù),備份策略如下:一是按照云端數(shù)據(jù)存儲(chǔ)模型和結(jié)構(gòu),云端數(shù)據(jù)采用分塊備份;二是采用全備份和增量(或者差異)備份相結(jié)合的方法對(duì)云端數(shù)據(jù)塊進(jìn)行備份。 備份恢復(fù)是以丟失用戶實(shí)時(shí)修改更新的數(shù)據(jù)為代價(jià),把用戶的數(shù)據(jù)恢復(fù)到某一正常時(shí)期的狀態(tài)。
綜上,受損數(shù)據(jù)的恢復(fù)流程是:系統(tǒng)通過(guò)完整性驗(yàn)證,一旦發(fā)現(xiàn)已存云端數(shù)據(jù)受到損壞后,自動(dòng)啟動(dòng)恢復(fù)模式,采用的受損數(shù)據(jù)恢復(fù)方式的順序一般依次為:冗余恢復(fù)、副本恢復(fù)和備份恢復(fù)。
2.2 已刪數(shù)據(jù)恢復(fù)
2.2.1 Linux 文件系統(tǒng)下已刪數(shù)據(jù)的恢復(fù)
基于 HDFS 的數(shù)據(jù)銷毀機(jī)制設(shè)計(jì):HDFS 中數(shù)據(jù)的刪除是異步的。在 NameNode 將元數(shù)據(jù)刪除后,DataNode 通過(guò) heartbeat獲取此改變(invalid block 列表),并通過(guò) Java 的文件刪除方法刪除本地文件系統(tǒng)上對(duì)應(yīng)的文件。由此可見(jiàn),這種刪除機(jī)制與單機(jī)狀態(tài)下文件刪除普通的沒(méi)有什么不同,這種刪除機(jī)制并沒(méi)有在刪除數(shù)據(jù)之前對(duì)數(shù)據(jù)進(jìn)行覆寫算法等破壞性操作。然而 Linux 系統(tǒng)的 ext2 文件系統(tǒng)(前文1.1提到)的文件刪除機(jī)制只是改變了塊位圖和索引節(jié)點(diǎn)的狀態(tài)[6,7],只是導(dǎo)致系統(tǒng)不能通過(guò)索引節(jié)點(diǎn)去定位文件,文件的實(shí)際內(nèi)容甚至是索引節(jié)點(diǎn)中的元數(shù)據(jù)都沒(méi)有被真正刪除,只有等下一次數(shù)據(jù)寫入、進(jìn)行多種覆寫算法刪除的時(shí)候才能覆蓋這些數(shù)據(jù)。所以,Linux 中的數(shù)據(jù)在刪除操作之后,并沒(méi)有被實(shí)際刪除,仍可以通過(guò)使用e2undel、libundel庫(kù)恢復(fù)文件[7]。
對(duì)于Linux ext3/4文件系統(tǒng),因?yàn)槟J(rèn)帶有日志文件,系統(tǒng)出現(xiàn)宕機(jī)等突發(fā)狀況時(shí),日志文件會(huì)記錄突發(fā)狀況,可以用于數(shù)據(jù)的恢復(fù),對(duì)于恢復(fù)后不可識(shí)別的數(shù)據(jù),會(huì)被fsck放在lost+found目錄下。至于這種類型文件系統(tǒng)下的已刪數(shù)據(jù)恢復(fù),還需進(jìn)一步研究分析。
2.2.2 HDFS 分布式文件系統(tǒng)下已刪數(shù)據(jù)的恢復(fù)
實(shí)際上,當(dāng)用戶通過(guò)HDFS Shell命令刪除文件時(shí),文件并未即刻被刪去,而是會(huì)被重命名到/Trash文件中,文件在該文件中保留預(yù)定時(shí)間,在該時(shí)間段內(nèi),可以隨時(shí)恢復(fù)被刪除的文件,當(dāng)超過(guò)這個(gè)保留時(shí)間時(shí), Namenode 就會(huì)將該文件從名字空間中刪除,刪除文件會(huì)使得該文件相關(guān)的數(shù)據(jù)塊被釋放,類似于windows系統(tǒng)中的回收站機(jī)制。具體被刪文件恢復(fù)仿真過(guò)程如下:
①運(yùn)用shell命令創(chuàng)建一個(gè)文件d,如圖1。
②運(yùn)用shell命令刪除文件d,可以發(fā)現(xiàn)自動(dòng)生成了一個(gè)Trash文件,如圖2。
③ 在刪除之后查看時(shí),發(fā)現(xiàn)被刪除的文件d存放于Trash文件目錄中,如圖3。
④試圖從/Trash中恢復(fù)被刪除的d文件,如圖4。
⑤再次查看時(shí)會(huì)發(fā)現(xiàn)被刪除的文件已經(jīng)被恢復(fù)了,如圖5。
2.2.3 磁盤介質(zhì)上已刪數(shù)據(jù)的恢復(fù)
HDFS 文件系統(tǒng)是一個(gè)異構(gòu)的分布式文件系統(tǒng)[6],它可以支持異構(gòu)的主機(jī)構(gòu)成一個(gè)統(tǒng)一的分布式文件系統(tǒng)。其中,存儲(chǔ)的異構(gòu)主要表現(xiàn)在存儲(chǔ)介質(zhì)的不同,現(xiàn)在主流存儲(chǔ)介質(zhì)有傳統(tǒng)硬盤的磁介質(zhì)和固態(tài)硬盤( SSD)的閃存半導(dǎo)體介質(zhì)。
對(duì)于磁盤介質(zhì)上已刪的數(shù)據(jù)恢復(fù)[8],首先對(duì)文件系統(tǒng)進(jìn)行分析,自動(dòng)進(jìn)行raid磁盤陣列的磁盤次序、塊大小等參數(shù)的分析,確定磁盤存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu)中主引導(dǎo)記錄、DOS引導(dǎo)記錄、文件分配表、硬盤分區(qū)表等數(shù)據(jù)完整程度。根據(jù)相應(yīng)信息提供策略選擇,自動(dòng)分析生成殘留數(shù)據(jù)部分原始文件位置、數(shù)據(jù)大小、類型等信息,從云存儲(chǔ)目標(biāo)區(qū)域讀取磁盤數(shù)據(jù)區(qū)數(shù)據(jù),對(duì)文件進(jìn)行重建還原,并對(duì)缺失部分?jǐn)?shù)據(jù)進(jìn)行估算,生成原文件,恢復(fù)殘留數(shù)據(jù)。
3 結(jié)束語(yǔ)
云時(shí)代已經(jīng)到來(lái),大數(shù)據(jù)已經(jīng)無(wú)處不在并已爆炸式發(fā)展,數(shù)據(jù)安全風(fēng)險(xiǎn)是“云”進(jìn)一步發(fā)展壯大的障礙,所以數(shù)據(jù)安全更是值得深究的一個(gè)方面,當(dāng)數(shù)據(jù)安全(包括數(shù)據(jù)恢復(fù))得到強(qiáng)有力保障的時(shí)候,云的發(fā)展必定更加快速、穩(wěn)健。
參考文獻(xiàn):
[1] 徐成俊.云計(jì)算實(shí)用技術(shù)[M].蘭州:甘肅人民出版社,2013.
[2] WANG Chenxi,PENN J,HERALD A.How Secure Is Your Cloud?Forrester Research ForSecurity&RiskProfessionals[EB/OL]. [2009-08-03].
[3] Wei-Tek T,Peide Z,Balsasooriya J,etal. An approach for service copposition and thesting for cloud copmputing[C]//Autonomous Decentralized Systems(ISADS),2011 10th INTERNATIONAL Symposium on.Japan:Tokyo,2011:631-636.
[3] 邊根慶.面向分散式存儲(chǔ)的云存儲(chǔ)安全架構(gòu)[J].西安交通大學(xué)學(xué)報(bào),2013,6(45):44.
[4] 項(xiàng)菲.新的基于云計(jì)算環(huán)境的數(shù)據(jù)容災(zāi)策略[J].通信學(xué)報(bào),2013,6(34).
[5] 孫勇.面向云計(jì)算的鍵值型分布式存儲(chǔ)系統(tǒng)研究[J].電子學(xué)報(bào),2013,7(4):1409.
[6] 秦軍.HDFS 的多安全級(jí)數(shù)據(jù)銷毀機(jī)制設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2013,3(23):131.
[7] 馮銳,王磊.如何恢復(fù) Linux 上刪除的文件,第3 部分[EB/OL].[2012-04-04]. http://www.ibm.com/developerworks/cn/linux /l-cn-filesrc3.
[8] 劉云龍.面向安全風(fēng)險(xiǎn)的云計(jì)算測(cè)試技術(shù)研究[J].微電子學(xué)與計(jì)算機(jī),2013,6(30):17-18.
為了確保云端數(shù)據(jù)更加可靠,保證云端已存儲(chǔ)的數(shù)據(jù)的安全性,對(duì)云端存儲(chǔ)的數(shù)據(jù)還可以采用副本恢復(fù)和備份恢復(fù)兩種方式。根據(jù)上文提到的云計(jì)算的分布式文檔系統(tǒng)可知,云端存儲(chǔ)的數(shù)據(jù)(塊)在不同的服務(wù)器上都存有3個(gè)及以上的副本。很顯然在某臺(tái)服務(wù)器上數(shù)據(jù)出現(xiàn)錯(cuò)誤狀況時(shí),可以利用云端其他服務(wù)器上的數(shù)據(jù)(塊)來(lái)代替當(dāng)前服務(wù)器上的受損數(shù)據(jù),這就是所謂的“異地災(zāi)難備份機(jī)制”,像銀聯(lián)數(shù)據(jù)中心這樣的金融機(jī)構(gòu)采用的就是“兩地兩中心”或者“兩地三中心”這樣的異地災(zāi)難備份機(jī)制來(lái)保證金融數(shù)據(jù)的安全性的。
2.1.2副本恢復(fù)[4]
云端已存數(shù)據(jù)的副本恢復(fù)方式原理就是利用分布式系統(tǒng)的存儲(chǔ)特性,通過(guò)云端各服務(wù)器之間相互復(fù)制數(shù)據(jù)塊的副本來(lái)實(shí)現(xiàn)的。簡(jiǎn)要地說(shuō),如果系統(tǒng)在進(jìn)行完整性驗(yàn)證過(guò)程中發(fā)現(xiàn)某數(shù)據(jù)(塊)完整性受損,可以通過(guò)云端服務(wù)器上的復(fù)制進(jìn)程(如上文1.1所提到的),實(shí)現(xiàn)數(shù)據(jù)(塊)副本之間的復(fù)制來(lái)恢復(fù)受損或丟失的數(shù)據(jù)(塊),這就是云端已存數(shù)據(jù)的副本恢復(fù)方法。
但是并不排除其他極端情況,比如,數(shù)據(jù)被損壞后或者被惡意篡改后正好復(fù)制進(jìn)程啟動(dòng)(按照復(fù)制策略),那么受損或被惡意篡改的數(shù)據(jù)就會(huì)被復(fù)制到各個(gè)服務(wù)器,覆蓋原來(lái)冗余存儲(chǔ)的正確數(shù)據(jù)(塊),從而使得數(shù)據(jù)(塊)完全被損壞。對(duì)于此類云端受損數(shù)據(jù),可以借鑒windows系統(tǒng)里面的備份機(jī)制,即將數(shù)據(jù)恢復(fù)到受損前的某個(gè)狀態(tài),一旦出現(xiàn)以上狀況,就恢復(fù)到受損前這個(gè)正常狀態(tài)。為了實(shí)現(xiàn)這一恢復(fù)策略,需要在云端定時(shí)保存歷史備份數(shù)據(jù),且這些數(shù)據(jù)不能進(jìn)行更新和同步操作。
2.1.3備份恢復(fù)[5]
數(shù)據(jù)備份和備份策略是比較成熟的技術(shù),備份策略如下:一是按照云端數(shù)據(jù)存儲(chǔ)模型和結(jié)構(gòu),云端數(shù)據(jù)采用分塊備份;二是采用全備份和增量(或者差異)備份相結(jié)合的方法對(duì)云端數(shù)據(jù)塊進(jìn)行備份。 備份恢復(fù)是以丟失用戶實(shí)時(shí)修改更新的數(shù)據(jù)為代價(jià),把用戶的數(shù)據(jù)恢復(fù)到某一正常時(shí)期的狀態(tài)。
綜上,受損數(shù)據(jù)的恢復(fù)流程是:系統(tǒng)通過(guò)完整性驗(yàn)證,一旦發(fā)現(xiàn)已存云端數(shù)據(jù)受到損壞后,自動(dòng)啟動(dòng)恢復(fù)模式,采用的受損數(shù)據(jù)恢復(fù)方式的順序一般依次為:冗余恢復(fù)、副本恢復(fù)和備份恢復(fù)。
2.2 已刪數(shù)據(jù)恢復(fù)
2.2.1 Linux 文件系統(tǒng)下已刪數(shù)據(jù)的恢復(fù)
基于 HDFS 的數(shù)據(jù)銷毀機(jī)制設(shè)計(jì):HDFS 中數(shù)據(jù)的刪除是異步的。在 NameNode 將元數(shù)據(jù)刪除后,DataNode 通過(guò) heartbeat獲取此改變(invalid block 列表),并通過(guò) Java 的文件刪除方法刪除本地文件系統(tǒng)上對(duì)應(yīng)的文件。由此可見(jiàn),這種刪除機(jī)制與單機(jī)狀態(tài)下文件刪除普通的沒(méi)有什么不同,這種刪除機(jī)制并沒(méi)有在刪除數(shù)據(jù)之前對(duì)數(shù)據(jù)進(jìn)行覆寫算法等破壞性操作。然而 Linux 系統(tǒng)的 ext2 文件系統(tǒng)(前文1.1提到)的文件刪除機(jī)制只是改變了塊位圖和索引節(jié)點(diǎn)的狀態(tài)[6,7],只是導(dǎo)致系統(tǒng)不能通過(guò)索引節(jié)點(diǎn)去定位文件,文件的實(shí)際內(nèi)容甚至是索引節(jié)點(diǎn)中的元數(shù)據(jù)都沒(méi)有被真正刪除,只有等下一次數(shù)據(jù)寫入、進(jìn)行多種覆寫算法刪除的時(shí)候才能覆蓋這些數(shù)據(jù)。所以,Linux 中的數(shù)據(jù)在刪除操作之后,并沒(méi)有被實(shí)際刪除,仍可以通過(guò)使用e2undel、libundel庫(kù)恢復(fù)文件[7]。
對(duì)于Linux ext3/4文件系統(tǒng),因?yàn)槟J(rèn)帶有日志文件,系統(tǒng)出現(xiàn)宕機(jī)等突發(fā)狀況時(shí),日志文件會(huì)記錄突發(fā)狀況,可以用于數(shù)據(jù)的恢復(fù),對(duì)于恢復(fù)后不可識(shí)別的數(shù)據(jù),會(huì)被fsck放在lost+found目錄下。至于這種類型文件系統(tǒng)下的已刪數(shù)據(jù)恢復(fù),還需進(jìn)一步研究分析。
2.2.2 HDFS 分布式文件系統(tǒng)下已刪數(shù)據(jù)的恢復(fù)
實(shí)際上,當(dāng)用戶通過(guò)HDFS Shell命令刪除文件時(shí),文件并未即刻被刪去,而是會(huì)被重命名到/Trash文件中,文件在該文件中保留預(yù)定時(shí)間,在該時(shí)間段內(nèi),可以隨時(shí)恢復(fù)被刪除的文件,當(dāng)超過(guò)這個(gè)保留時(shí)間時(shí), Namenode 就會(huì)將該文件從名字空間中刪除,刪除文件會(huì)使得該文件相關(guān)的數(shù)據(jù)塊被釋放,類似于windows系統(tǒng)中的回收站機(jī)制。具體被刪文件恢復(fù)仿真過(guò)程如下:
①運(yùn)用shell命令創(chuàng)建一個(gè)文件d,如圖1。
②運(yùn)用shell命令刪除文件d,可以發(fā)現(xiàn)自動(dòng)生成了一個(gè)Trash文件,如圖2。
③ 在刪除之后查看時(shí),發(fā)現(xiàn)被刪除的文件d存放于Trash文件目錄中,如圖3。
④試圖從/Trash中恢復(fù)被刪除的d文件,如圖4。
⑤再次查看時(shí)會(huì)發(fā)現(xiàn)被刪除的文件已經(jīng)被恢復(fù)了,如圖5。
2.2.3 磁盤介質(zhì)上已刪數(shù)據(jù)的恢復(fù)
HDFS 文件系統(tǒng)是一個(gè)異構(gòu)的分布式文件系統(tǒng)[6],它可以支持異構(gòu)的主機(jī)構(gòu)成一個(gè)統(tǒng)一的分布式文件系統(tǒng)。其中,存儲(chǔ)的異構(gòu)主要表現(xiàn)在存儲(chǔ)介質(zhì)的不同,現(xiàn)在主流存儲(chǔ)介質(zhì)有傳統(tǒng)硬盤的磁介質(zhì)和固態(tài)硬盤( SSD)的閃存半導(dǎo)體介質(zhì)。
對(duì)于磁盤介質(zhì)上已刪的數(shù)據(jù)恢復(fù)[8],首先對(duì)文件系統(tǒng)進(jìn)行分析,自動(dòng)進(jìn)行raid磁盤陣列的磁盤次序、塊大小等參數(shù)的分析,確定磁盤存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu)中主引導(dǎo)記錄、DOS引導(dǎo)記錄、文件分配表、硬盤分區(qū)表等數(shù)據(jù)完整程度。根據(jù)相應(yīng)信息提供策略選擇,自動(dòng)分析生成殘留數(shù)據(jù)部分原始文件位置、數(shù)據(jù)大小、類型等信息,從云存儲(chǔ)目標(biāo)區(qū)域讀取磁盤數(shù)據(jù)區(qū)數(shù)據(jù),對(duì)文件進(jìn)行重建還原,并對(duì)缺失部分?jǐn)?shù)據(jù)進(jìn)行估算,生成原文件,恢復(fù)殘留數(shù)據(jù)。
3 結(jié)束語(yǔ)
云時(shí)代已經(jīng)到來(lái),大數(shù)據(jù)已經(jīng)無(wú)處不在并已爆炸式發(fā)展,數(shù)據(jù)安全風(fēng)險(xiǎn)是“云”進(jìn)一步發(fā)展壯大的障礙,所以數(shù)據(jù)安全更是值得深究的一個(gè)方面,當(dāng)數(shù)據(jù)安全(包括數(shù)據(jù)恢復(fù))得到強(qiáng)有力保障的時(shí)候,云的發(fā)展必定更加快速、穩(wěn)健。
參考文獻(xiàn):
[1] 徐成俊.云計(jì)算實(shí)用技術(shù)[M].蘭州:甘肅人民出版社,2013.
[2] WANG Chenxi,PENN J,HERALD A.How Secure Is Your Cloud?Forrester Research ForSecurity&RiskProfessionals[EB/OL]. [2009-08-03].
[3] Wei-Tek T,Peide Z,Balsasooriya J,etal. An approach for service copposition and thesting for cloud copmputing[C]//Autonomous Decentralized Systems(ISADS),2011 10th INTERNATIONAL Symposium on.Japan:Tokyo,2011:631-636.
[3] 邊根慶.面向分散式存儲(chǔ)的云存儲(chǔ)安全架構(gòu)[J].西安交通大學(xué)學(xué)報(bào),2013,6(45):44.
[4] 項(xiàng)菲.新的基于云計(jì)算環(huán)境的數(shù)據(jù)容災(zāi)策略[J].通信學(xué)報(bào),2013,6(34).
[5] 孫勇.面向云計(jì)算的鍵值型分布式存儲(chǔ)系統(tǒng)研究[J].電子學(xué)報(bào),2013,7(4):1409.
[6] 秦軍.HDFS 的多安全級(jí)數(shù)據(jù)銷毀機(jī)制設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2013,3(23):131.
[7] 馮銳,王磊.如何恢復(fù) Linux 上刪除的文件,第3 部分[EB/OL].[2012-04-04]. http://www.ibm.com/developerworks/cn/linux /l-cn-filesrc3.
[8] 劉云龍.面向安全風(fēng)險(xiǎn)的云計(jì)算測(cè)試技術(shù)研究[J].微電子學(xué)與計(jì)算機(jī),2013,6(30):17-18.