專利名稱:一種快照實(shí)現(xiàn)方法
一種快照實(shí)現(xiàn)方法本發(fā)明涉及存儲(chǔ)、文件系統(tǒng)、快照、即寫即拷等技術(shù),屬于存儲(chǔ)快照技術(shù)領(lǐng)域的創(chuàng)新。本發(fā)明完整地實(shí)現(xiàn)了針對(duì)文件系統(tǒng)的快照技術(shù)。
一背景技術(shù):
SNIA (存儲(chǔ)網(wǎng)絡(luò)行業(yè)協(xié)會(huì))對(duì)快照(Snapshot)的定義是:關(guān)于指定數(shù)據(jù)集合的一個(gè)完全可用拷貝,該拷貝包括相應(yīng)數(shù)據(jù)在某個(gè)時(shí)間點(diǎn)(拷貝開始的時(shí)間點(diǎn))的映像??煺湛梢允瞧渌硎镜臄?shù)據(jù)的一個(gè)副本,也可以是數(shù)據(jù)的一個(gè)復(fù)制品。而從具體的技術(shù)細(xì)節(jié)來講,快照是指向保存在存儲(chǔ)設(shè)備中的數(shù)據(jù)的引用標(biāo)記或指針。我們可以這樣理解,快照有點(diǎn)像是詳細(xì)的目錄表,但它被計(jì)算機(jī)作為完整的數(shù)據(jù)備份來對(duì)待??煺盏淖饔弥饕悄軌蜻M(jìn)行在線數(shù)據(jù)恢復(fù),當(dāng)存儲(chǔ)設(shè)備發(fā)生應(yīng)用故障或者文件損壞時(shí)可以進(jìn)行及時(shí)數(shù)據(jù)恢復(fù),將數(shù)據(jù)恢復(fù)成快照產(chǎn)生時(shí)間點(diǎn)的狀態(tài)??煺盏牧硪粋€(gè)作用是為存儲(chǔ)用戶提供了另外一個(gè)數(shù)據(jù)訪問通道,當(dāng)原數(shù)據(jù)進(jìn)行在線應(yīng)用處理時(shí),用戶可以訪問快照數(shù)據(jù),還可以利用快照進(jìn)行測(cè)試等工作。
二
發(fā)明內(nèi)容
本發(fā)明針對(duì)文件系統(tǒng),提供了新型的存儲(chǔ)快照方法,并進(jìn)行了完整實(shí)現(xiàn)。本發(fā)明采用即寫即拷快照技術(shù)實(shí)現(xiàn)塊數(shù)據(jù)復(fù)制和快照管理,即寫即拷快照是表現(xiàn)數(shù)據(jù)外觀特征的“照片”。這種方式通常也被稱為“元數(shù)據(jù)”拷貝,即所有的數(shù)據(jù)并沒有被真正拷貝到另一個(gè)位置,只是指示數(shù)據(jù)實(shí)際所處位置的指針被拷貝。在使用這項(xiàng)技術(shù)的情況下,當(dāng)已經(jīng)有了快照時(shí),如果試圖改寫原始的文件系統(tǒng)卷上的數(shù)據(jù),將首先將原始的數(shù)據(jù)塊拷貝到一個(gè)新位置(專用于復(fù)制操作的存儲(chǔ)資源池),然后再進(jìn)行寫操作。以后當(dāng)引用原始數(shù)據(jù)時(shí),快照軟件將指針映射到新位置,或者當(dāng)引用快照時(shí)將指針映射到老位置。在采用寫時(shí)拷貝算法的同時(shí),將文件系統(tǒng)改為日志結(jié)構(gòu),新數(shù)據(jù)被寫到日志的頭部,而舊數(shù)據(jù)仍然保留(直到需要對(duì)舊數(shù)據(jù)進(jìn)行垃圾收集)。由于舊數(shù)據(jù)仍被保留,因此可以在時(shí)間線上回滾,以檢查文件系統(tǒng)的不同歷史狀態(tài)點(diǎn)。這些歷史狀態(tài)點(diǎn)作為文件系統(tǒng)的一部分,并以日志形式存儲(chǔ)。每當(dāng)文件系統(tǒng)數(shù)據(jù)發(fā)生改變時(shí),文件系統(tǒng)都會(huì)創(chuàng)建這些歷史狀態(tài)點(diǎn),并可以由這些歷史狀態(tài)點(diǎn)索引形成快照。這些歷史狀態(tài)點(diǎn)可以定時(shí)或連續(xù)的生成,如果連續(xù)生成,則元數(shù)據(jù)塊固定大小,并按日志索引自動(dòng)排列和記錄;如果定時(shí)生成,則元數(shù)據(jù)塊可以調(diào)整大小,按照快照間隔更新索引和日志數(shù)據(jù)。在實(shí)現(xiàn)中采用位圖來表示快照之間的差異量數(shù)據(jù)??煺罩g采用位圖與日志的雙索引結(jié)構(gòu),位圖采用日志順序記錄,實(shí)現(xiàn)方法是創(chuàng)建一個(gè)快照點(diǎn),那么源數(shù)據(jù)會(huì)將記錄的位圖信息交給快照點(diǎn),然后將源數(shù)據(jù)的位圖清空。這樣在寫源數(shù)據(jù)的時(shí)候,系統(tǒng)會(huì)檢查寫操作所在的位圖是否在歷史的某個(gè)時(shí)刻被寫過,如果已經(jīng)被寫過,那么將源數(shù)據(jù)進(jìn)行日志記錄,并且將新的數(shù)據(jù)寫入,然后再修改源數(shù)據(jù)的位圖。這個(gè)過程就是快照的寫時(shí)拷貝過程。參考圖1所示。
對(duì)于連續(xù)生成歷史狀態(tài)點(diǎn),實(shí)現(xiàn)方法是歷史狀態(tài)點(diǎn)代替快照點(diǎn),源數(shù)據(jù)會(huì)同時(shí)記錄位圖信息并寫日志記錄,然后將源數(shù)據(jù)的位圖清空。這樣在寫源數(shù)據(jù)的時(shí)候,系統(tǒng)將不檢查寫操作所在的位圖是否在歷史的某個(gè)時(shí)刻被寫過,所有源數(shù)據(jù)都進(jìn)行日志記錄,并且將新的數(shù)據(jù)寫入,然后再修改源數(shù)據(jù)的位圖。參考圖2所示。總結(jié),本發(fā)明具有如下技術(shù)特點(diǎn):1、本發(fā)明方法同時(shí)具有元數(shù)據(jù)位圖和順序日志記錄,索引簡(jiǎn)單,有利于讀寫效率提升。2、本發(fā)明方法可以實(shí)現(xiàn)定時(shí)和連續(xù)的快照,方便文件系統(tǒng)對(duì)上層應(yīng)用的功能支持。3、本發(fā)明方法把所有數(shù)據(jù)與元數(shù)據(jù)依序?qū)懭胍粋€(gè)順序日志記錄,連續(xù)或者非連續(xù),因?yàn)槭琼樞驅(qū)懭氲?,所以讀取查詢時(shí)間短,改善了寫入速度。4、應(yīng)用本發(fā)明方法的文件系統(tǒng)崩潰恢復(fù)也比一般樹狀文件系統(tǒng)快照要快,且恢復(fù)的速度與文件系統(tǒng)大小無關(guān)。三、應(yīng)用方式將本發(fā)明快找方法應(yīng)用于文件系統(tǒng),它能對(duì)整個(gè)文件系統(tǒng)做連續(xù)性的快照和進(jìn)行版本管理??梢杂脕砘謴?fù)刪掉的文件,可以挽救不小心修改的檔案,效率高于傳統(tǒng)快照技術(shù)。本發(fā)明快照方法可以在發(fā)生硬盤寫錯(cuò)誤、文件損壞或程序故障時(shí)迅速地恢復(fù)數(shù)據(jù)。
四
圖1定時(shí)快照實(shí)現(xiàn)原理圖2連續(xù)快照實(shí)現(xiàn)原理
權(quán)利要求
1.本發(fā)明權(quán)利要求內(nèi)容如下: .1.同時(shí)具有元數(shù)據(jù)位圖和順序日志記錄,日志進(jìn)行索引。.2.由文件系統(tǒng)定義同時(shí)實(shí)現(xiàn)定時(shí)和連續(xù)的快照。.3.源數(shù)據(jù)依序?qū)懭腠樞蛉罩居涗?,采用位圖與元數(shù)據(jù)相關(guān)進(jìn)行校驗(yàn)比對(duì)。.4.歷史狀態(tài)點(diǎn)作為快照的日志索引,可以查詢檢索。
全文摘要
本發(fā)明針對(duì)文件系統(tǒng),提供了新型的存儲(chǔ)快照方法,并進(jìn)行了完整實(shí)現(xiàn)。本發(fā)明總結(jié)如下1、本發(fā)明同時(shí)具有元數(shù)據(jù)位圖和順序日志記錄,索引簡(jiǎn)單,有利于讀寫效率提升。2、本發(fā)明可以實(shí)現(xiàn)定時(shí)和連續(xù)的快照,方便文件系統(tǒng)對(duì)上層應(yīng)用的功能支持。3、本發(fā)明將源數(shù)據(jù)依序?qū)懭腠樞蛉罩居涗?,采用位圖與元數(shù)據(jù)相關(guān)進(jìn)行校驗(yàn)比對(duì),讀取查詢時(shí)間短,改善了寫入速度。4、本發(fā)明歷史狀態(tài)點(diǎn)作為快照的日志索引,可以查詢檢索。
文檔編號(hào)G06F17/30GK103116533SQ201210167609
公開日2013年5月22日 申請(qǐng)日期2012年5月28日 優(yōu)先權(quán)日2012年5月28日
發(fā)明者孫文明 申請(qǐng)人:北京智網(wǎng)科技股份有限公司