一種寫時拷貝快照備份過程中可斷點傳輸的方法
【專利摘要】本發明涉及一種寫時拷貝快照備份過程中可斷點傳輸的方法,該方法中,任一快照中的數據塊均對應一個標記,具體包括以下步驟:1)源端獲取需備份的快照名,從所對應的快照的根節點開始遍歷,提取數據塊;2)根據當前提取的數據塊的標記,獲取下一次要遍歷的數據塊的標記;3)對所提取的數據塊進行封裝,并傳輸給目的端;4)源端判斷在設定時間內是否接收到目的端寫入成功的消息,若是,則將已傳輸的數據塊的標記保存到源端斷點信息文件中,若否,則傳輸失敗,返回步驟3)。與現有技術相比,本發明具有快照備份效率高、對存儲資源要求低等優點。
【專利說明】一種寫時拷貝快照備份過程中可斷點傳輸的方法
【技術領域】
[0001]本發明涉及計算機存儲【技術領域】,尤其是涉及一種寫時拷貝快照備份過程中可斷點傳輸的方法。
【背景技術】
[0002]當前,隨著信息化技術的不斷發展,人們需要保存的資料、數據越來越多,數據對人們的工作,生活也越來越重要。數據的保存和數據的安全也顯得越來越重要了。出現了各種各樣的數據備份技術和產品。如針對前端主機的數據備份,將主機上的數據拷貝到其他的存儲介質上進行保存,以便將來當原有數據丟失時,能夠再找回來。基于存儲后端的備份技術,有對存儲卷或者文件系統做快照,創建克隆等本地的數據備份方式和將生成的快照備份到異地的存儲介質上面的復制,異步遠程鏡像等技術。
[0003]在備份快照數據時,目的端將接收到的數據寫入到文件系統中。但如果在傳輸過程中,出現網絡斷開或者斷電等異常情況時,目的端的數據是不完整的,且無法定位具體數據傳輸的位置。源端、目的端都無法確定下次從哪個位置繼續續傳。如果出現異常后,往往需要重新開始傳輸,無法利用之前已傳輸的數據。
[0004]現有技術中是引入斷點續傳技術,將源端快照提取生成一個文件,再對該生成的文件進行切片,進行斷點續傳。但前提需要先生成一個文件。如果快照引用的數據很大,則在源端需要一個相當大的存儲空間來保存該快照數據生成的數據文件。同時從快照中提取數據生成數據文件也需要耗費時間,增加整個快照的備份時間。
[0005]綜上可知,采用傳統的快照備份,斷點續傳技術備份的效率和對資源的利用率都有較大的改進和優化的空間。
【發明內容】
[0006]本發明的目的就是為了克服上述現有技術存在的缺陷而提供一種寫時拷貝快照備份過程中可斷點傳輸的方法,能夠提高快照備份的效率和降低對存儲資源的要求。
[0007]本發明的目的可以通過以下技術方案來實現:
[0008]一種寫時拷貝快照備份過程中可斷點傳輸的方法,該方法中,任一快照中的數據塊均對應一個標記,具體包括以下步驟:
[0009]I)源端獲取需備份的快照名,從所對應的快照的根節點開始遍歷,提取數據塊;
[0010]2)根據當前提取的數據塊的標記,獲取下一次要遍歷的數據塊的標記;
[0011]3)對所提取的數據塊進行封裝,并傳輸給目的端;
[0012]4)源端判斷在設定時間內是否接收到目的端寫入成功的消息,若是,則將已傳輸的數據塊的標記保存到源端斷點信息文件中,若否,則傳輸失敗,返回步驟3)。
[0013]所述步驟3)中,對數據塊進行封裝時,在數據塊上增加標記和數據校驗和。
[0014]所述步驟3)中,目的端收到封裝的數據塊后,寫入該數據塊,具體為:
[0015]301)校驗所接收到的數據塊;
[0016]302)根據標記獲取該數據塊應寫入的位置;
[0017]303)根據步驟302)獲取的位置寫入數據塊,并判斷寫入是否成功,若是,則執行步驟304),若否,則向源端發送寫入失敗的消息;
[0018]304)根據寫入成功的數據塊的標記更新目的端斷點信息文件,并向源端發送寫入成功的消息。
[0019]還包括:
[0020]網絡故障恢復后,讀取源端斷點信息文件或目的端斷點信息文件的最新標記,根據所述標記定位所要讀取的數據塊,執行步驟2)-4)。
[0021]所述源端斷點信息文件中,斷點的粒度為數據塊大小的整數倍。
[0022]所述目的端斷點信息文件中,斷點的粒度為數據塊大小的整數倍。
[0023]所述目的端寫入數據塊時,采用覆蓋寫方式。
[0024]所述快照的數據塊樹形結構。
[0025]所述標記為一四元組,包括快照名、數據對象、數據塊所在層和數據塊塊號。
[0026]所述數據塊為一個數據塊或多個連續數據塊。
[0027]與現有技術相比,本發明具有以下優點:
[0028](I)本發明設計了一種快照數據塊定位的標記,在快照備份時,只需在源端和目的端各保存一個斷點信息文件就可以實現快照的斷點續傳。不管是源端還是目的端斷電,斷開網絡,在下次連接時,可以繼續在原有已傳輸的數據基礎上繼續備份,節省備份的時間。
[0029](2)本發明只需要保存一個標記就能直接定位到快照中的具體數據塊,無需生成中間的數據文件,節省存儲空間和中間文件生成的時間。
[0030](3)本發明在數據塊傳輸時,對數據塊進行封裝,包含詳細的數據信息和效驗和,保證數據的完整性和正確性。
[0031](4)本發明采用扁平化的數據提取方式,相比傳統的遞歸遍歷,具有更好的提取效率。
【專利附圖】
【附圖說明】
[0032]圖1為本發明快照的樹狀結構示意圖;
[0033]圖2為本發明快照備份時,源端快照數據提取、發送的流程示意圖;
[0034]圖3為本發明快照備份時,目的端接收數據塊,寫入數據庫的流程示意圖;
[0035]圖4為本發明斷點續傳時,源端數據提取、發送的流程示意圖。
【具體實施方式】
[0036]下面結合附圖和具體實施例對本發明進行詳細說明。本實施例以本發明技術方案為前提進行實施,給出了詳細的實施方式和具體的操作過程,但本發明的保護范圍不限于下述的實施例。
[0037]本發明實施例提供一種寫時拷貝快照備份過程中可斷點傳輸的方法,主要針對的是通過快照備份的兩個存儲系統,所述快照為寫時復制(拷貝)的快照,它引用的數據塊為靜止的,數據塊不會隨時間或者卷的讀寫發生變化,每次順序遍歷時,塊提取的順序和數據塊的地址都不會發生任何變化。利用上述特征,本發明設計一種數據結構(標記)能夠定位快照中的數據塊,同時提供通過該標記提取和寫入快照數據塊的方法,并將該標記作為斷點信息保存,以便網絡斷開再恢復時,能夠在之前已傳輸的數據塊基礎上繼續備份,以達到提供快照備份效率,降低備份快照對存儲資源的要求。
[0038]如圖1所示,文件系統中的快照等分為元數據、數據等,元數據、數據塊都分層存放的,構成了一個倒立的樹,快照根節點(root)為快照的超級塊,下面的索引塊(objoct)、元數據、數據塊構成這個枝和葉。本發明所采用的標記為一個四元組:mark(objsetid,object id,level,blkid),其中,通過objsetid能夠定位到具體的快照,通過object id定位到元數據中的數據對象,通過level定位數據塊的層數,通過blkid定位具體的塊號。上述四元組能準確描述存儲系統中的一個具體的塊,包括元數據和數據塊,同時能計算該塊后面的數據塊的標記。該方式為扁平式的,相對于傳統的從根節點遞歸的方式,提取中間的某塊數據塊時,不需要從根節點開始遞歸,大大節省定位到具體塊的查找時間。
[0039]如圖2所示,源端進行快照備份的數據流程為:
[0040]步驟s 101,開始提取快照數據;
[0041]步驟sl02,根據當前提取的數據塊的標記,獲取下一次要遍歷的數據塊的標記;
[0042]步驟sl03,對所提取的數據塊進行封裝,在數據塊上增加標記和數據校驗碼;
[0043]步驟S104,將封裝后的數據塊傳輸給目的端,源端判斷在設定時間內是否接收到目的端寫入成功的消息,若是,則執行步驟sl05,若否,則傳輸失敗,返回步驟SlOl ;
[0044]步驟sl05,將已傳輸的數據塊的標記保存到源端斷點信息文件中,更新斷點信息,返回步驟slOl。
[0045]如圖3所示,目的端收到封裝的數據塊后,寫入該數據塊,具體為:
[0046]步驟s201,接收數據塊;
[0047]步驟s202,校驗所接收到的數據塊;
[0048]步驟s203,根據標記獲取該數據塊應寫入的位置;
[0049]步驟s204,根據步驟s203獲取的位置寫入數據塊,并判斷寫入是否成功,若是,則執行步驟s205,若否,則向源端發送寫入失敗的消息;
[0050]步驟s205,根據寫入成功的數據塊的標記更新目的端斷點信息文件,并向源端發送寫入成功的消息。
[0051]在發生網絡故障時,數據傳輸中斷,網絡故障恢復后,重新進行快照備份,具體為:
[0052]步驟s301,讀取源端斷點信息文件或目的端斷點信息文件的最新標記;
[0053]步驟s302,根據標記打開快照;
[0054]步驟s303,定位所要讀取的數據塊;
[0055]步驟s304,執行步驟sl02?sl05。
[0056]在源端和目的端設計斷點信息的保存文件,斷點的粒度必須為文件系統數據塊大小的整數倍,如文件系統的塊大小為4K,則斷點的最小單位可以為4K,可以根據網絡速度設計斷點續傳時,需續傳的數據大小(必須是塊大小的整數倍)。對于目的端,同一個數據塊,多次寫入,寫是覆蓋寫,多次重復寫對數據的正確性和完整性都沒有影響。
【權利要求】
1.一種寫時拷貝快照備份過程中可斷點傳輸的方法,其特征在于,該方法中,任一快照中的數據塊均對應一個標記,具體包括以下步驟: 1)源端獲取需備份的快照名,從所對應的快照的根節點開始遍歷,提取數據塊; 2)根據當前提取的數據塊的標記,獲取下一次要遍歷的數據塊的標記; 3)對所提取的數據塊進行封裝,并傳輸給目的端; 4)源端判斷在設定時間內是否接收到目的端寫入成功的消息,若是,則將已傳輸的數據塊的標記保存到源端斷點信息文件中,若否,則傳輸失敗,返回步驟3)。
2.根據權利要求1所述的寫時拷貝快照備份過程中可斷點傳輸的方法,其特征在于,所述步驟3)中,對數據塊進行封裝時,在數據塊上增加標記和數據校驗和。
3.根據權利要求2所述的寫時拷貝快照備份過程中可斷點傳輸的方法,其特征在于,所述步驟3)中,目的端收到封裝的數據塊后,寫入該數據塊,具體為: 301)校驗所接收到的數據塊; 302)根據標記獲取該數據塊應寫入的位置; 303)根據步驟302)獲取的位置寫入數據塊,并判斷寫入是否成功,若是,則執行步驟304),若否,則向源端發送寫入失敗的消息; 304)根據寫入成功的數據塊的標記更新目的端斷點信息文件,并向源端發送寫入成功的消息。
4.根據權利要求1所述的寫時拷貝快照備份過程中可斷點傳輸的方法,其特征在于,還包括: 網絡故障恢復后,讀取源端斷點信息文件或目的端斷點信息文件的最新標記,根據所述標記定位所要讀取的數據塊,執行步驟2)-4)。
5.根據權利要求1所述的寫時拷貝快照備份過程中可斷點傳輸的方法,其特征在于,所述源端斷點信息文件中,斷點的粒度為數據塊大小的整數倍。
6.根據權利要求3所述的寫時拷貝快照備份過程中可斷點傳輸的方法,其特征在于,所述目的端斷點信息文件中,斷點的粒度為數據塊大小的整數倍。
7.根據權利要求3所述的寫時拷貝快照備份過程中可斷點傳輸的方法,其特征在于,所述目的端寫入數據塊時,采用覆蓋寫方式。
8.根據權利要求1-7任一所述的寫時拷貝快照備份過程中可斷點傳輸的方法,其特征在于,所述快照的數據塊樹形結構。
9.根據權利要求1-7任一所述的寫時拷貝快照備份過程中可斷點傳輸的方法,其特征在于,所述標記為一四元組,包括快照名、數據對象、數據塊所在層和數據塊塊號。
10.根據權利要求1-7任一所述的寫時拷貝快照備份過程中可斷點傳輸的方法,其特征在于,所述數據塊為一個數據塊或多個連續數據塊。
【文檔編號】G06F17/30GK104484242SQ201410756310
【公開日】2015年4月1日 申請日期:2014年12月10日 優先權日:2014年12月10日
【發明者】趙金鈴 申請人:上海愛數軟件有限公司