存儲備份技術研究論文
時間:2022-11-04 03:28:00
導語:存儲備份技術研究論文一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。
摘要:隨著互聯網絡飛速發展,數據量呈現海量增長,單機存儲無法滿足需求,分布式存儲應運而生并且取得了較大的發展。系統中的數據由于自然災害、異常故障等原因會遭到破壞,因而需要對數據進行備份加以保護。以基于分布式文件服務器的存儲備選份恢復系統為研究對象,探討了分布式存儲下海量數據備份恢復的關鍵問題:存儲備份恢復的高效性、一致性和可靠性。
關鍵詞:備份;存儲;分布式;P2P;技術
1存儲與備份技術的高效性
1.1高性能多源下載過程
(1)服務器根據相關信息返回存儲需要下載文件的Slave的具體信息;(2)根據文件大小和Slave的負載狀態,選擇合適的Slave建立socket連接對文件進行分塊下載;(3)下載完成后把各個文件塊合并成為原始文件。
1.2靜態下載
在靜態下載中,不考慮備份文件的大小,服務器的負荷量,采取統一的模型進行下載。算法如下:(1)得到備份文件所在服務器的個數n,以及每個服務器的IP地址和端口號;(2)得到文件的總大小size,按照文件分割算法,把文件分割為n塊;(3)與每個服務器建立連接,從每個服務器上下載一塊文件;(4)下載完成后,把所有文件塊合并成一個完整的文件,存儲在備份介質上;(5)保存備份文件的相關元數據信息;(6)文件下載、備份完成。
1.3動態下載
在動態下載模型中,要綜合考慮各方面因素,動態決定文件是否分塊進行多源下載,以及文件塊的大小,提高系統資源利用率,進而提高備份效率。對于沒有冗余的文件,只能從一個節點上下載。對于較小的文件,使用單線程下載;對于較大的文件,可以采用多線程下載。對于有多個冗余的文件,可以動態選取從負荷量較低的節點進行下載。偽算法表示如下:
首先定義如下變量:文件大小閥值Tl,當文件大小大于Tl時采用多源下載;節點標準負荷T2,若節點負荷大于T2,則節點處于重負荷狀態;文件大小size文件冗余數n。
算法表示如下:
if(文件沒有冗余)
{
無須分塊下載,可以采用多線程從存儲文件的節點上下載文件;
}
else{
if(文件大小size<閥值T1)
{
無須多源下載,從存儲文件的節點中選取負荷最小的節點,下載文件;
}
elsel
得到存儲文件的n個節點的信息;
從n個節點上選擇負荷小于閥值T2的節點,節點數目為m;
利用文件分割算法把文件分割為m塊;
與選中的m個節點建立連接,從每個節點上下載一個文件塊;
下載完成后,把m個文件塊合并成為完整的文件;
把文件存儲在備份介質;
}
}
2存儲與備份技術的一致性
2.1鎖和快照技術
鎖就是當進行數據備份時,對需要備份的數據加鎖,此時禁止對數據進行修改。由于備份時禁止對數據的修改,鎖技術對數據的可用性會造成一定的影響,會影響到系統的效率??煺站褪窃谙喈敹痰臅r間內生成原存儲系統的瞬時映像,該映像生成之后,備份就可以根據該映像來進行,而不用擔心數據的不一致性。快照技術的實現有兩種方式:更新復制方式和Split-mirror方式。更新復制技術就是當進行快照時,并不立刻復制數據,只有當數據發生變化時才進行復制。Split-mirror是使用和主存儲系統一樣的快照存儲系統,數據同時保存在主存儲系統和快照系統,此時快照系統就可作為備份數據。
2.2在線備份
在分布式文件訪問平臺中,存在著海量的文件,文件的信息較多,若把文件的信息逐個復制則要浪費大量的時間、空間,對系統的可訪問性造成影響。WAFL文件系統使用了更新復制技術。當創建系統快照時,并不立刻復制所有文件信息,而是創建新的快照根節點,它與原文件系統根節點有相同的信息,文件系統中根節點的子節點也為快照根節點的子節點。此時以快照根節點為根節點生成了一棵快照樹,它和原文件系統樹除了根節點以外,其余部分相同。當文件信息需要修改時,創建新的節點,把文件信息賦給此節點,并把節點作為快照節點插入快照樹中,同時修改原節點的信息,具體分為以下情況:
(1)修改文件信息:當對文件的基本信息進行修改時,如更改文件名稱等,此種情況下比較簡單,偽算法如下:if修改文件)
{
創建新的節點作為快照節點;
把原節點的信息復制到快照節點;
把快照樹中指向原節點的指針指向快照節點;
快照節點兒子節點的指針指向原節點的兒子節點;
修改原節點的信息;
}
修改文件信息具體過程如圖3:
(2)移動文件:當把文件或者目錄從一個目錄移動到另外一個目錄下時,具體偽算法如下:
if移動文件)
{
創建新的快照節點;
把原節點的信息復制到快照節點;
復制原父目錄的信息,添加到快照樹中;
把快照樹中指向原節點的指針指向快照節點;
快照節點兒子節點的指針指向原節點的兒子節點;
復制新父目錄的信息,修改子節點,添加到快照樹中;
修改原節點的信息,把原節點移動到新的目錄下;
}
移動文件過程如圖4所示:
(3)新建文件:當新建文件時,具體偽算法如下:
if(新建文件)
{
創建新的節點,并給節點賦予相應的文件信息;
在文件系統樹中找到節點的父目錄;
if(若父目錄己經創建了副本),
{
把創建的節點插在文件系統樹中父目錄節點下;
}
else{
父目錄創建副本;
副本賦予相應的信息;
父目錄副本兒子節點即為父目錄的兒子節點;
快照樹中指向原來父目錄的指針指向副本;
新建節點插在文件系統樹中父目錄節點下;
}
}
新建文件過程如圖5所示:
2.3備份的實現
在創建好快照樹之后,就可以進行在線備份。快照樹保存的信息就是開始備份瞬間所有文件的信息,進行在線備份時,首先從快照樹的根節點開始,逐個訪問節點,按順序對快照樹進行遍歷、備份,保證了數據的一致性,并且可以在備份的同時允許對數據進行修改,不影響用戶的訪問。
3存儲與備份的可靠性
在分布式系統中存儲著海量的數據,數據量大,備份的時間較長,在備份的過程中可能會出現錯誤情況或者發生意外的中斷。因此備份過程中需要隨時記錄備份的進度,這樣在備份發生錯誤或者異常時,下次備份能夠在上次備份的出錯點繼續進行,實行斷點備份,而不用重新開始備份。斷點備份過程中,使用日志表來記錄備份過程,把每次備份的信息寫入日志表。日志表如表1:
3.1偽算法
if(日志表為空)
{
無須查找斷點位置,直接開始備份,備份時把每一個文件的備份信息添加
到日志表;
}
else{
while(日志表尚未查找完畢)
{
對于表中每一項,查找此項對應文件在樹中的具體位置;
if(此文件尚未備份完成)
記錄此文件,即為斷點位置;
}
當日志表查找完成后,即可得到未備份完成的文件;
從斷點位置開始繼續備份,并把文件備份信息添加到日志表;
}
本次備份完成后把日志表清空
名稱定義
ID文件獨一無二的ID
TYPE備份類型,可以是完全備份、增量備份、差量備份
STARY_TIME開始備份時間
FINISHED是否完成
ISFOLDER是否為文件夾
PARENTID文件父節點ID
3.2算法復雜度
若日志表中的記錄個數為K,文件總數為N。則對于每一個記錄項,要查找其在文件樹中的位置,當前一個記錄項查找到時,由于遍歷的順序性,后一個記錄項可以從前一個的位置繼續向后查找,這樣,可以保證K個記錄項查找次數為K,也即為O(n)。當備份發生錯誤或者中斷時,通過此算法,能夠在相當少的時間內,找到斷點位置,下一次備份時可以直接從斷點位置繼續進行,實現斷點備份,保證了備份的可靠性。
參考文獻
[1]牛云,徐慶.數據備份與災難恢復[M].北京:機械工業出版社,2007.
[2]張聯峰,劉乃安,張玉清.P2P技術[J].計算機工程與應用,2007,(12).
[3]劉天時,趙正.一種通用數據庫數據整理方法[J].計算機工程,2007,(2).
[4]韓德志,謝長生,李懷陽.存儲備份技術探析[J].計算機應用研究,2006,(5).
[5]謝川.數據備份技術的初探[J].中國科技信息,2006,(12).
- 上一篇:公司黨風廉政建設工作會上的講話
- 下一篇:全礦黨風廉政建設及宣傳思想會的講話