存儲備份技術(shù)研究論文

時間:2022-11-04 03:28:00

導語:存儲備份技術(shù)研究論文一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

存儲備份技術(shù)研究論文

摘要:隨著互聯(lián)網(wǎng)絡(luò)飛速發(fā)展,數(shù)據(jù)量呈現(xiàn)海量增長,單機存儲無法滿足需求,分布式存儲應運而生并且取得了較大的發(fā)展。系統(tǒng)中的數(shù)據(jù)由于自然災害、異常故障等原因會遭到破壞,因而需要對數(shù)據(jù)進行備份加以保護。以基于分布式文件服務(wù)器的存儲備選份恢復系統(tǒng)為研究對象,探討了分布式存儲下海量數(shù)據(jù)備份恢復的關(guān)鍵問題:存儲備份恢復的高效性、一致性和可靠性。

關(guān)鍵詞:備份;存儲;分布式;P2P;技術(shù)

1存儲與備份技術(shù)的高效性

1.1高性能多源下載過程

(1)服務(wù)器根據(jù)相關(guān)信息返回存儲需要下載文件的Slave的具體信息;(2)根據(jù)文件大小和Slave的負載狀態(tài),選擇合適的Slave建立socket連接對文件進行分塊下載;(3)下載完成后把各個文件塊合并成為原始文件。

1.2靜態(tài)下載

在靜態(tài)下載中,不考慮備份文件的大小,服務(wù)器的負荷量,采取統(tǒng)一的模型進行下載。算法如下:(1)得到備份文件所在服務(wù)器的個數(shù)n,以及每個服務(wù)器的IP地址和端口號;(2)得到文件的總大小size,按照文件分割算法,把文件分割為n塊;(3)與每個服務(wù)器建立連接,從每個服務(wù)器上下載一塊文件;(4)下載完成后,把所有文件塊合并成一個完整的文件,存儲在備份介質(zhì)上;(5)保存?zhèn)浞菸募南嚓P(guān)元數(shù)據(jù)信息;(6)文件下載、備份完成。

1.3動態(tài)下載

在動態(tài)下載模型中,要綜合考慮各方面因素,動態(tài)決定文件是否分塊進行多源下載,以及文件塊的大小,提高系統(tǒng)資源利用率,進而提高備份效率。對于沒有冗余的文件,只能從一個節(jié)點上下載。對于較小的文件,使用單線程下載;對于較大的文件,可以采用多線程下載。對于有多個冗余的文件,可以動態(tài)選取從負荷量較低的節(jié)點進行下載。偽算法表示如下:

首先定義如下變量:文件大小閥值Tl,當文件大小大于Tl時采用多源下載;節(jié)點標準負荷T2,若節(jié)點負荷大于T2,則節(jié)點處于重負荷狀態(tài);文件大小size文件冗余數(shù)n。

算法表示如下:

if(文件沒有冗余)

{

無須分塊下載,可以采用多線程從存儲文件的節(jié)點上下載文件;

}

else{

if(文件大小size<閥值T1)

{

無須多源下載,從存儲文件的節(jié)點中選取負荷最小的節(jié)點,下載文件;

}

elsel

得到存儲文件的n個節(jié)點的信息;

從n個節(jié)點上選擇負荷小于閥值T2的節(jié)點,節(jié)點數(shù)目為m;

利用文件分割算法把文件分割為m塊;

與選中的m個節(jié)點建立連接,從每個節(jié)點上下載一個文件塊;

下載完成后,把m個文件塊合并成為完整的文件;

把文件存儲在備份介質(zhì);

}

}

2存儲與備份技術(shù)的一致性

2.1鎖和快照技術(shù)

鎖就是當進行數(shù)據(jù)備份時,對需要備份的數(shù)據(jù)加鎖,此時禁止對數(shù)據(jù)進行修改。由于備份時禁止對數(shù)據(jù)的修改,鎖技術(shù)對數(shù)據(jù)的可用性會造成一定的影響,會影響到系統(tǒng)的效率。快照就是在相當短的時間內(nèi)生成原存儲系統(tǒng)的瞬時映像,該映像生成之后,備份就可以根據(jù)該映像來進行,而不用擔心數(shù)據(jù)的不一致性??煺占夹g(shù)的實現(xiàn)有兩種方式:更新復制方式和Split-mirror方式。更新復制技術(shù)就是當進行快照時,并不立刻復制數(shù)據(jù),只有當數(shù)據(jù)發(fā)生變化時才進行復制。Split-mirror是使用和主存儲系統(tǒng)一樣的快照存儲系統(tǒng),數(shù)據(jù)同時保存在主存儲系統(tǒng)和快照系統(tǒng),此時快照系統(tǒng)就可作為備份數(shù)據(jù)。

2.2在線備份

在分布式文件訪問平臺中,存在著海量的文件,文件的信息較多,若把文件的信息逐個復制則要浪費大量的時間、空間,對系統(tǒng)的可訪問性造成影響。WAFL文件系統(tǒng)使用了更新復制技術(shù)。當創(chuàng)建系統(tǒng)快照時,并不立刻復制所有文件信息,而是創(chuàng)建新的快照根節(jié)點,它與原文件系統(tǒng)根節(jié)點有相同的信息,文件系統(tǒng)中根節(jié)點的子節(jié)點也為快照根節(jié)點的子節(jié)點。此時以快照根節(jié)點為根節(jié)點生成了一棵快照樹,它和原文件系統(tǒng)樹除了根節(jié)點以外,其余部分相同。當文件信息需要修改時,創(chuàng)建新的節(jié)點,把文件信息賦給此節(jié)點,并把節(jié)點作為快照節(jié)點插入快照樹中,同時修改原節(jié)點的信息,具體分為以下情況:

(1)修改文件信息:當對文件的基本信息進行修改時,如更改文件名稱等,此種情況下比較簡單,偽算法如下:if修改文件)

{

創(chuàng)建新的節(jié)點作為快照節(jié)點;

把原節(jié)點的信息復制到快照節(jié)點;

把快照樹中指向原節(jié)點的指針指向快照節(jié)點;

快照節(jié)點兒子節(jié)點的指針指向原節(jié)點的兒子節(jié)點;

修改原節(jié)點的信息;

}

修改文件信息具體過程如圖3:

(2)移動文件:當把文件或者目錄從一個目錄移動到另外一個目錄下時,具體偽算法如下:

if移動文件)

{

創(chuàng)建新的快照節(jié)點;

把原節(jié)點的信息復制到快照節(jié)點;

復制原父目錄的信息,添加到快照樹中;

把快照樹中指向原節(jié)點的指針指向快照節(jié)點;

快照節(jié)點兒子節(jié)點的指針指向原節(jié)點的兒子節(jié)點;

復制新父目錄的信息,修改子節(jié)點,添加到快照樹中;

修改原節(jié)點的信息,把原節(jié)點移動到新的目錄下;

}

移動文件過程如圖4所示:

(3)新建文件:當新建文件時,具體偽算法如下:

if(新建文件)

{

創(chuàng)建新的節(jié)點,并給節(jié)點賦予相應的文件信息;

在文件系統(tǒng)樹中找到節(jié)點的父目錄;

if(若父目錄己經(jīng)創(chuàng)建了副本),

{

把創(chuàng)建的節(jié)點插在文件系統(tǒng)樹中父目錄節(jié)點下;

}

else{

父目錄創(chuàng)建副本;

副本賦予相應的信息;

父目錄副本兒子節(jié)點即為父目錄的兒子節(jié)點;

快照樹中指向原來父目錄的指針指向副本;

新建節(jié)點插在文件系統(tǒng)樹中父目錄節(jié)點下;

}

}

新建文件過程如圖5所示:

2.3備份的實現(xiàn)

在創(chuàng)建好快照樹之后,就可以進行在線備份??煺諛浔4娴男畔⒕褪情_始備份瞬間所有文件的信息,進行在線備份時,首先從快照樹的根節(jié)點開始,逐個訪問節(jié)點,按順序?qū)煺諛溥M行遍歷、備份,保證了數(shù)據(jù)的一致性,并且可以在備份的同時允許對數(shù)據(jù)進行修改,不影響用戶的訪問。

3存儲與備份的可靠性

在分布式系統(tǒng)中存儲著海量的數(shù)據(jù),數(shù)據(jù)量大,備份的時間較長,在備份的過程中可能會出現(xiàn)錯誤情況或者發(fā)生意外的中斷。因此備份過程中需要隨時記錄備份的進度,這樣在備份發(fā)生錯誤或者異常時,下次備份能夠在上次備份的出錯點繼續(xù)進行,實行斷點備份,而不用重新開始備份。斷點備份過程中,使用日志表來記錄備份過程,把每次備份的信息寫入日志表。日志表如表1:

3.1偽算法

if(日志表為空)

{

無須查找斷點位置,直接開始備份,備份時把每一個文件的備份信息添加

到日志表;

}

else{

while(日志表尚未查找完畢)

{

對于表中每一項,查找此項對應文件在樹中的具體位置;

if(此文件尚未備份完成)

記錄此文件,即為斷點位置;

}

當日志表查找完成后,即可得到未備份完成的文件;

從斷點位置開始繼續(xù)備份,并把文件備份信息添加到日志表;

}

本次備份完成后把日志表清空

名稱定義

ID文件獨一無二的ID

TYPE備份類型,可以是完全備份、增量備份、差量備份

STARY_TIME開始備份時間

FINISHED是否完成

ISFOLDER是否為文件夾

PARENTID文件父節(jié)點ID

3.2算法復雜度

若日志表中的記錄個數(shù)為K,文件總數(shù)為N。則對于每一個記錄項,要查找其在文件樹中的位置,當前一個記錄項查找到時,由于遍歷的順序性,后一個記錄項可以從前一個的位置繼續(xù)向后查找,這樣,可以保證K個記錄項查找次數(shù)為K,也即為O(n)。當備份發(fā)生錯誤或者中斷時,通過此算法,能夠在相當少的時間內(nèi),找到斷點位置,下一次備份時可以直接從斷點位置繼續(xù)進行,實現(xiàn)斷點備份,保證了備份的可靠性。

參考文獻

[1]牛云,徐慶.數(shù)據(jù)備份與災難恢復[M].北京:機械工業(yè)出版社,2007.

[2]張聯(lián)峰,劉乃安,張玉清.P2P技術(shù)[J].計算機工程與應用,2007,(12).

[3]劉天時,趙正.一種通用數(shù)據(jù)庫數(shù)據(jù)整理方法[J].計算機工程,2007,(2).

[4]韓德志,謝長生,李懷陽.存儲備份技術(shù)探析[J].計算機應用研究,2006,(5).

[5]謝川.數(shù)據(jù)備份技術(shù)的初探[J].中國科技信息,2006,(12).