本發明涉及計算機數據的容災備份,特別是涉及一種虛擬機保護中的基于自有數據格式的反向增量備份方法、裝置及計算機介質。
背景技術:
1、隨著信息技術的快速發展,在信息化建設過程中,計算基礎設施的需求不斷加大,對硬件設備、軟件、維護成本和時效的要求越來越高。為了提高基礎設施利用率、降低時間和金錢的開銷,硬件虛擬化隨之而生。
2、隨著虛擬化的廣泛應用,虛擬機作為最重要的基礎數據,對其保護也就成為了必需的配置,針對虛擬化平臺中虛擬機進行保護的產品也越來越多。
3、虛擬機的保護可以分為備份和恢復及衍生出的遷移和復制及災難切換。備份又分為全量備份、增量備份、差異備份。全量備份指的是備份虛機的全部數據;增量備份指的是基于上一次的備份(可以是全量也可以是增量),備份變化的數據,增量備份數據依賴于之前的備份數據,容易形成一條很長的備份鏈;差異備份指的是基于上一次的全量備份,備份變化的數據,差異備份數據只依賴于全量備份,數據鏈上只有兩個。實際使用中,使用的最多的是全量備份和增量備份的結合。周期性的第一次都是進行一次全量備份,生成一份完整的虛擬機備份數據,然后基于此全量備份進行多個增量備份。因為增量備份只針對變化數據進行,速度快,開銷小,會執行的比較多,這樣就容易形成一個很長的備份鏈。如果鏈上的某份數據出問題,則之后所有的備份數據都不可用。另外,備份依賴鏈很長時,恢復時會很慢,需要收集所有備份鏈上的數據。特別的,實際場景中,越早的數據越不重要,很可能會被清理,越近的數據越有可能被拿來恢復,而越近的數據很大可能是增量數據,此情況下需要往前一直找到全量數據并做恢復。因此,最新的數據最重要,也是最可能進行恢復的數據,由此衍生了反向增量的備份方法。反向增量即是向相反的方向進行增量,最新的備份數據永遠是全量,倒數第二份數據,則是此全量數據的反向增量,也即是變化數據里的舊數據。
4、目前,有些廠商的虛擬機保護產品已經實現了反向增量備份方法,但在功能和性能上仍有些不足:
5、(1)有些產品反向增量的性能不高,畢竟備份任務才是日常任務,恢復只是在出現問題時使用。
6、(2)有些產品的反向增量備份,會占用很大空間。每個增量備份點有空間冗余,存儲成本過高。
7、(3)沒有獨立的控制機、控制機服務器及目標代理虛擬機等進行協同,無法實現高擴展和高性能遷移系統;無法方便地實現其他種類的平臺的虛擬機遷移;無法方便的和其他數據遷移方法進行融合,比如塊設備的數據遷移和文件系統的數據遷移。
技術實現思路
1、為克服上述現有技術存在的不足,本發明之目的在于提供一種虛擬機自有數據格式反向增量備份方法、裝置及計算機存儲介質,使用自有數據格式實現反向增量的備份方法,實現更靈活的備份和更高效的恢復。
2、為達上述目的,本發明提出一種虛擬機自有數據格式反向增量備份方法,包括如下步驟:
3、優選地,響應于獲取到最近一次備份點,讀取所述最近一次備份點里的變化數據塊信息;
4、獲取當前備份的增量變化數據塊信息;
5、于當前備份點新建虛擬機數據文件用來保存虛擬機數據,于上一個備份點新建反向增量數據文件用來保存反向增量數據;
6、對虛擬機磁盤從0位置開始到磁盤結尾,檢查每個數據塊位置及大小,并根據檢查結果分別處理;
7、分別檢查上一個備份點和當前備份點上記錄的變化數據塊信息,若存在位置上連在一起的數據塊,則進行拼接;
8、將上一個備份點和當前備份點上記錄的變化數據塊信息分別保存至對應的備份點中;
9、刪除上一個備份點上舊的全量數據文件,反向增量數據已保存于上一個備份節點的反向增量數據文件中。
10、優選地,所述對虛擬機磁盤從0位置開始到磁盤結尾,檢查每個數據塊位置及大小,并根據檢查結果分別處理,包括如下步驟:
11、響應于數據塊只在上一個備份點的變化數據塊內,則讀取上一個備份點相應數據保存到當前備份點數據文件,并在當前備份點記錄變化數據塊信息;
12、響應于數據塊只在當前備份點的變化數據塊內,則把空數據寫入上一個備份點的反向增量數據文件中,并在上一個備份點記錄變化數據塊信息;從源虛機讀取所述數據塊對應位置數據,保存到當前備份點的所述虛擬機數據文件,并在當前備份點記錄變化數據塊信息;
13、響應于數據塊同時在上一個備份點和當前備份點的變化數據塊內,則讀取上一個備份點上所述數據板塊對應的數據,寫到上一個備份點的所述反向增量數據文件中,并在上一個備份點記錄變化數據塊信息;從源虛機數據塊讀取所述數據塊對應位置數據,寫到當前備份點的所述虛擬機數據文件,并在當前備份點記錄變化數據塊信息;
14、響應于數據塊既不在上一個備份點也不在當前備份點的變化數據塊信息上,則不進行處理。
15、優選地,于所述響應于獲取到最近一次備份點,讀取所述最近一次備份點里的變化數據塊信息之前,還包括如下步驟:
16、獲取最近一次備份點,若未獲取到所述最近一次備份點,不論指定哪一種備份類型,統一進行全量備份,所述備份類型包括全量備份和反向增量備份。
17、優選地,所述變化數據塊信息記錄每個虛機磁盤的數據塊信息,包括數據塊在在虛擬機磁盤中的位置及大小。
18、優選地,所述變化數據塊信息根據備份類型的不同,分為全量變化數據塊和增量變化數據塊。
19、優選地,所述檢查每個數據塊位置及大小,包括:
20、將所述數據塊固定配置成特定大小,檢查每個數據塊的位置;所述特定大小為變化數據塊的最小單位。
21、為達上述目的,本發明還公開了一種一種虛擬機自有數據格式反向增量備份裝置,包括:
22、變化數據塊信息讀取模塊,用于響應于獲取到最近一次備份點,讀取所述最近一次備份點里的變化數據塊信息;
23、增量變化數據塊信息獲取模塊,用于獲取當前備份的增量變化數據塊信息;
24、數據文件新建模塊,用于在當前備份點新建虛擬機數據文件用來保存虛擬機數據,在上一個備份點新建反向增量數據文件用來保存反向增量數據;
25、數據塊檢查處理模塊,用于對虛擬機磁盤從0位置開始到磁盤結尾,檢查每個數據塊位置及大小,并根據檢查結果分別處理;
26、數據塊拼接模塊,用于分別檢查上一個備份點和當前備份點上記錄的變化數據塊信息,若存在位置上連在一起的數據塊,則進行拼接;
27、變化數據塊信息保存模塊,用于將上一個備份點和當前備份點上記錄的變化數據塊信息分別保存至對應的備份點中;
28、全量數據文件刪除模塊,用于刪除上一個備份點上舊的全量數據文件,反向增量數據已保存于上一個備份節點的反向增量數據文件中。
29、優選地,所述數據塊檢查處理模塊具體用于:
30、響應于數據塊只在上一個備份點的變化數據塊內,則讀取上一個備份點相應數據保存到當前備份點數據文件,并在當前備份點記錄變化數據塊信息;
31、響應于數據塊只在當前備份點的變化數據塊內,則把空數據寫入上一個備份點的反向增量數據文件中,并在上一個備份點記錄變化數據塊信息;從源虛機讀取所述數據塊對應位置數據,保存到當前備份點的所述虛擬機數據文件,并在當前備份點記錄變化數據塊信息;
32、響應于數據塊同時在上一個備份點和當前備份點的變化數據塊內,則讀取上一個備份點上所述數據板塊對應的數據,寫到上一個備份點的所述反向增量數據文件中,并在上一個備份點記錄變化數據塊信息;從源虛機數據塊讀取所述數據塊對應位置數據,寫到當前備份點的所述虛擬機數據文件,并在當前備份點記錄變化數據塊信息;
33、數據塊既不在上一個備份點也不在當前備份點的變化數據塊信息上,則不進行處理。
34、優選地,所述裝置還包括全量備份模塊,用于獲取最近一次備份點,若未獲取到所述最近一次備份點,不論指定哪一種備份類型,統一進行全量備份,所述備份類型包括全量備份和反向增量備份。
35、為達上述目的,本發明還公開了一種計算機可讀存儲介質,所述存儲介質存儲有計算機程序,所述計算機程序用于執行上述任意一種虛擬機自有數據格式反向增量備份方法。
36、與現有技術相比,本發明一種虛擬機自有數據格式反向增量備份方法、裝置及計算機存儲介質的一個方面具有如下優點:
37、本發明實施例中的備份數據和變化塊信息隔離,只取變化塊信息時速度快,不需要讀取數據文件;
38、本發明實施例中的備份數據,是連續保存的有效數據,不存在浪費空間問題,并且對于去重有很好的支持;
39、本發明實施例針對的是通用虛擬機反向增量備份,對所有虛擬平臺都適用;
40、本發明實施例的反向增量生成的新備份點備份數據,是個全量數據,進行恢復時不需要找備份數據鏈并分別讀取數據,對最新的備份點恢復速度快;
41、本發明實施例產生的備份數據,越近的數據,備份鏈越短,恢復越快;而大部分的恢復操作,都是對新數據進行,更符合客戶需求。