專利名稱:一種基于因果關(guān)系的重復(fù)數(shù)據(jù)刪除方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計算機(jī)信 息存儲技術(shù)領(lǐng)域,具體涉及一種用于改善云備份服務(wù)能力的基于因果關(guān)系的重復(fù)數(shù)據(jù)刪除方法。
背景技術(shù):
隨著云計算的興起,云備份也越來越受大家的歡迎。作為一種根據(jù)使用時間來付費(fèi)的方式,云備份增加了用戶使用備份功能的自由性,可以使用戶擁有最高的備份性價比。 這種自由性吸引了各大中小型企業(yè)、遠(yuǎn)程移動辦公室以及個人用戶的青睞。尤其是對于小型企業(yè)來說,他們不想成為一個備份專家,他們需要花更多的時間來進(jìn)行企業(yè)的自身業(yè)務(wù)的完善,需要以此來提高企業(yè)本身的利潤。而云備份剛好滿足了他們的要求。云備份的簡單的使用方式,可以使小型企業(yè)既能很好的保護(hù)好自己的數(shù)據(jù),又能使企業(yè)的員工有更多的時間,更好的專注于企業(yè)自身的建設(shè)。不過目前的云備份系統(tǒng)有著自己固有的缺陷,那就是鏈接云備份用戶和云備份服務(wù)提供者之間的是帶寬極低的廣域網(wǎng)絡(luò),這就使得云備份系統(tǒng)中的數(shù)據(jù)備份和數(shù)據(jù)恢復(fù)速度極慢。根據(jù)國外權(quán)威機(jī)構(gòu)統(tǒng)計,有大約39%的人認(rèn)為在關(guān)于廣域網(wǎng)絡(luò)上進(jìn)行的備份和恢復(fù)所花的時間太長,有31%的人認(rèn)為在廣域網(wǎng)上進(jìn)行備份和恢復(fù)所需要花費(fèi)的網(wǎng)絡(luò)開銷太大。正因?yàn)榇耍苽浞葸€沒有成為一個廣泛使用的,經(jīng)濟(jì)可行的備份方式,沒有達(dá)到預(yù)期的效果。目前,學(xué)術(shù)界和工業(yè)界正在努力改善云備份的服務(wù)能力,宣傳和推廣云備份的使用。 不過,不管是學(xué)術(shù)界還是工業(yè)界,目前都僅僅關(guān)注數(shù)據(jù)備份速度的提升。他們通過使用源端的重復(fù)數(shù)據(jù)刪除方法,消除重復(fù)數(shù)據(jù)的備份,以此來減少備份過程中廣域網(wǎng)絡(luò)帶寬的使用, 加快備份任務(wù)的完成。他們使用的方法僅用于提升備份的速度,而沒有提升恢復(fù)的速度。但是在云備份系統(tǒng)中,備份的數(shù)據(jù)都必須用于恢復(fù)。并且2009年賽門鐵克的災(zāi)難恢復(fù)的調(diào)研報告中指出,和以往相比,現(xiàn)在進(jìn)行數(shù)據(jù)恢復(fù)時平均每小時所花費(fèi)的代價比以往更高,這就意味著數(shù)據(jù)恢復(fù)的時間比以往更加緊迫。因此,一種有效的用于改善云備份服務(wù)能力的重復(fù)數(shù)據(jù)刪除方法是不僅能刪除重復(fù)的備份數(shù)據(jù),提高數(shù)據(jù)備份的速度,同樣也能消除重復(fù)的恢復(fù)數(shù)據(jù),加快恢復(fù)數(shù)據(jù)的傳輸,改善數(shù)據(jù)恢復(fù)的性能。
發(fā)明內(nèi)容
本發(fā)明提出了一種用于改善云備份服務(wù)能力的基于因果關(guān)系的重復(fù)數(shù)據(jù)刪除方法,該方法根據(jù)所捕捉的數(shù)據(jù)文件之間的因果關(guān)系,消除在備份和恢復(fù)任務(wù)中的重復(fù)數(shù)據(jù), 加快備份和恢復(fù)數(shù)據(jù)的傳輸,提高云備份系統(tǒng)中數(shù)據(jù)備份和恢復(fù)的速度,使云備份系統(tǒng)切實(shí)可用。一種基于因果關(guān)系的重復(fù)數(shù)據(jù)刪除方法,涉及文件關(guān)系表和文件指紋譜集,所述文件關(guān)系表包含文件名、文件操作類型和文件操作時間信息,所述文件指紋譜集包含各文件的文件數(shù)據(jù)塊指紋和文件備份時間信息;該方法包括數(shù)據(jù)備份步驟和數(shù)據(jù)恢復(fù)步驟;所述數(shù)據(jù)備份步驟,具體為
(Al)本地客戶端接受用戶備份任務(wù)請求,備份任務(wù)請求攜帶的信息有待備份文件名和最近一次備份時間;(A2)查詢文件關(guān)系表,判斷待備份文件是否在最近一次備份時間之后進(jìn)行過修改,若是,則進(jìn)入步驟(A3),否則,結(jié)束備份;(A3)提取待備份文件當(dāng)前的數(shù)據(jù)塊指紋,將其與文件指紋譜集記錄的待備份文件最后一次備份時的數(shù)據(jù)塊指紋進(jìn)行匹配,找出匹配失敗的數(shù)據(jù)塊;(A4)對步驟(A3)中匹配失敗的數(shù)據(jù)塊進(jìn) 行備份;(A5)在文件指紋譜集記錄待備份文件當(dāng)前的數(shù)據(jù)塊指紋和備份時間;所述數(shù)據(jù)恢復(fù)步驟,具體為(Bi)本地客戶端接收用戶恢復(fù)任務(wù)請求,恢復(fù)任務(wù)請求攜帶的信息有待恢復(fù)文件的文件名和待恢復(fù)時間點(diǎn);(B2)查詢文件關(guān)系表,判斷待恢復(fù)文件是否在離待恢復(fù)時間點(diǎn)的最近一次備份后進(jìn)行過修改,若是,則進(jìn)入步驟(B3),否則,結(jié)束恢復(fù);(B3)提取待恢復(fù)文件當(dāng)前的數(shù)據(jù)塊指紋;(B4)從文件指紋譜集中查詢待恢復(fù)文件離待恢復(fù)時間點(diǎn)最近一次備份的數(shù)據(jù)塊指紋,將其與步驟(B3)提取的數(shù)據(jù)塊指紋進(jìn)行匹配,找出匹配失敗的數(shù)據(jù)塊;(B5)對步驟(B4)中匹配失敗的數(shù)據(jù)塊進(jìn)行恢復(fù)。本發(fā)明具有如下的特點(diǎn)(1)本發(fā)明的重復(fù)數(shù)據(jù)刪除方法通過捕捉和利用文件之間的因果關(guān)系,不僅消除了重復(fù)的備份數(shù)據(jù),也能消除重復(fù)的恢復(fù)數(shù)據(jù),減少了數(shù)據(jù)備份和恢復(fù)中網(wǎng)絡(luò)帶寬的使用, 解決了云備份系統(tǒng)中因低帶寬廣域網(wǎng)絡(luò)帶來的數(shù)據(jù)備份和恢復(fù)速度極慢的問題。(2)本發(fā)明的重復(fù)數(shù)據(jù)刪除方法改善了云備份的服務(wù)能力。通過消除數(shù)據(jù)備份和數(shù)據(jù)恢復(fù)中存在的冗余數(shù)據(jù),大大減少了云備份系統(tǒng)中數(shù)據(jù)備份和恢復(fù)所需要的時間,力口快了云備份系統(tǒng)中數(shù)據(jù)備份和數(shù)據(jù)恢復(fù)的速度。(3)本發(fā)明的重復(fù)數(shù)據(jù)刪除方法是可配置的。此方法可作為一個中間件,無縫透明的集成在云備份系統(tǒng)的本地客戶端中,消除數(shù)據(jù)備份和恢復(fù)過程中的冗余數(shù)據(jù),減少數(shù)據(jù)備份和恢復(fù)所需要傳輸?shù)臄?shù)據(jù)量。若此方法沒有配置或失效,將不會影響云備份系統(tǒng)中正常的數(shù)據(jù)備份和數(shù)據(jù)恢復(fù)的過程。(4)本發(fā)明的重復(fù)數(shù)據(jù)刪除方法是輕便的。此方法僅集成在云備份系統(tǒng)的本地客戶端中,消除單個用戶的數(shù)據(jù)備份和恢復(fù)的冗余數(shù)據(jù)傳送,而不是集成在云備份服務(wù)提供方的存儲服務(wù)器中。該方法的使用減少了云備份服務(wù)提供方的存儲服務(wù)器的負(fù)載,同時本地客戶端還可以很靈活的轉(zhuǎn)換到不同的云備份服務(wù)提供方。綜上所述,本發(fā)明的重復(fù)數(shù)據(jù)刪除方法通過捕捉和利用文件之間的因果關(guān)系,不僅消除了數(shù)據(jù)備份過程中的冗余數(shù)據(jù),也消除了數(shù)據(jù)恢復(fù)過程中的冗余數(shù)據(jù),減少了數(shù)據(jù)備份和恢復(fù)過程中重復(fù)數(shù)據(jù)的傳輸,從而減少了數(shù)據(jù)備份和恢復(fù)所需要的時間,解決了云備份系統(tǒng)中由于低帶寬廣域網(wǎng)絡(luò)帶來的數(shù)據(jù)備份和恢復(fù)速度極慢的問題,改善了云備份的服務(wù)能力,使云備份系統(tǒng)變得切實(shí)可行。
圖1為實(shí)現(xiàn)本發(fā)明方法的模塊結(jié)構(gòu)示意圖;圖2為本發(fā) 明方法的數(shù)據(jù)備份流程示意圖;圖3為本發(fā)明方法的數(shù)據(jù)恢復(fù)流程示意圖。
具體實(shí)施例方式本發(fā)明涉及的主體有本地客戶端,處于數(shù)據(jù)中心存儲服務(wù)器。本地客戶端為云備份服務(wù)的使用方,處于數(shù)據(jù)中心的存儲服務(wù)器為云備份服務(wù)的提供方。本地客戶端的數(shù)據(jù)通過廣域網(wǎng)絡(luò)備份到數(shù)據(jù)中心的存儲服務(wù)器,數(shù)據(jù)中心的存儲服務(wù)器所存儲的數(shù)據(jù)通過廣域網(wǎng)絡(luò)恢復(fù)到本地客戶端。圖1為實(shí)現(xiàn)本發(fā)明方法的模塊結(jié)構(gòu)示意圖,總共包括四部分,文件監(jiān)視器110,文件關(guān)系表120,文件指紋譜集130,重復(fù)數(shù)據(jù)刪除140。文件監(jiān)視器110,文件關(guān)系表120,文件指紋譜集130用來捕捉和記錄數(shù)據(jù)文件之間的因果關(guān)系,重復(fù)數(shù)據(jù)刪除140通過查詢捕捉到的因果關(guān)系信息,消除數(shù)據(jù)備份和恢復(fù)過程中的冗余數(shù)據(jù)。文件監(jiān)視器110主要用來監(jiān)視文件進(jìn)行了哪些操作,操作類型分為修改操作和只讀操作,修改操作比如有向某個文件增加部分?jǐn)?shù)據(jù)、刪除部分?jǐn)?shù)據(jù)、修改部分?jǐn)?shù)據(jù)、刪除整個文件等等。文件關(guān)系表120主要記錄由文件監(jiān)視器監(jiān)控到的這些文件操作,包括文件名,具體的文件操作類型,文件操作所發(fā)生的時間。重復(fù)數(shù)據(jù)刪除140通過查詢文件關(guān)系表,就能很快查出哪些文件哪個時間點(diǎn)進(jìn)行了些什么樣的文件操作。文件指紋譜集130主要記錄每個文件由哪些指紋構(gòu)成,其中每個文件指紋譜包括文件的備份時間和組成此文件的所有數(shù)據(jù)塊指紋信息。每個文件可通過使用數(shù)據(jù)塊變長算法(Rabin Fing印rint)(不局限此分塊算法),對文件進(jìn)行分割,得到平均長度為8KB的數(shù)據(jù)塊。每個數(shù)據(jù)塊使用SHA-I哈希算法(不局限此哈希算法),計算每個數(shù)據(jù)塊的哈希值,得到的哈希值被稱為數(shù)據(jù)塊指紋。數(shù)據(jù)塊指紋可以用來唯一代表每個數(shù)據(jù)塊,任何兩個具有相同指紋的數(shù)據(jù)塊被認(rèn)為是相同的數(shù)據(jù)塊。重復(fù)數(shù)據(jù)刪除140通過比對文件指紋譜,即可以查找出不同的數(shù)據(jù)塊指紋,查找出某個文件的哪些數(shù)據(jù)塊進(jìn)行了改變。圖2為本發(fā)明中數(shù)據(jù)備份的流程示意圖,具體為(1)本地客戶端接受用戶備份任務(wù)請求,備份任務(wù)請求攜帶的信息有待備份文件的文件名和最近一次備份時間等;(2)重復(fù)數(shù)據(jù)刪除140通過使用備份任務(wù)請求中攜帶的文件名,查找文件關(guān)系表, 查看文件關(guān)系表中是否有具有此文件名的文件。若有,則查看此文件的修改時間是否大于此文件最近一次的備份時間,若是,則進(jìn)入步驟(3)。否則,若此文件不存在,或此文件的修改時間小于最近一次備份的時間,結(jié)束備份。(3)重復(fù)數(shù)據(jù)刪除140查看文件指紋譜集130,查找此文件中的哪些數(shù)據(jù)塊進(jìn)行了修改。(3. 1)重復(fù)數(shù)據(jù)刪除140使用變長數(shù)據(jù)塊分塊算法(Rabin Fingerprint),對待備份文件進(jìn)行分塊,得到平均長度為8KB的數(shù)據(jù)塊。(3. 2)重復(fù)數(shù)據(jù)刪除140使用SHA-I哈希算法計算步驟(3. 1)得到的每個數(shù)據(jù)塊的哈希值,這個數(shù)據(jù)塊哈希值常被稱為數(shù)據(jù)塊指紋。任何兩個具有相同數(shù)據(jù)塊指紋的數(shù)據(jù)塊被認(rèn)為是相同的數(shù)據(jù)塊,反之,具有不同數(shù)據(jù)塊指紋的數(shù)據(jù)塊被認(rèn)為是不相同的數(shù)據(jù)塊。
(3. 3)重復(fù)數(shù)據(jù)刪除140查找文件指紋譜集130,查找出此文件最后一次備份時所形成的文件指紋譜,得到此文件在最后一次備份時生成的所有數(shù)據(jù)塊指紋。(3. 4)重復(fù)數(shù)據(jù)刪除140將步驟(3. 2)得到的數(shù)據(jù)塊指紋和步驟(3. 3)得到的數(shù)據(jù)塊指紋進(jìn)行比較,對于步驟(3.2)中存在,而步驟(3.3)不存在的數(shù)據(jù)塊指紋,將其代表的數(shù)據(jù)塊標(biāo)記為待備份數(shù)據(jù)塊。(4)本地客戶端將步驟(3. 4)標(biāo)記的待備份數(shù)據(jù)塊傳送給存儲服務(wù)器,存儲服務(wù)器對這些數(shù)據(jù)塊進(jìn)行備份。(5)本地客戶端將步驟(3. 2)得到的所有數(shù)據(jù)塊指紋和當(dāng)前的備份時間,形成一個文件指紋譜,記錄入文件指紋譜集130中。圖3為本發(fā)明中數(shù)據(jù)恢復(fù)的流程示意圖,具體為(1)本地客戶端接受用戶恢復(fù)任務(wù)請求,恢復(fù)任務(wù)請求攜帶有待恢復(fù)文件的文件名和待恢復(fù)的時間點(diǎn)等;待恢復(fù)的時間點(diǎn)是界定將待恢復(fù)文件恢復(fù)到哪一個備份時間點(diǎn)狀態(tài)的時間量。(2)重復(fù)數(shù)據(jù)刪除140通過使用恢復(fù)任務(wù)請求中攜帶的待恢復(fù)文件的文件名,查找文件關(guān)系表,查看文件關(guān)系表中是否有具有此文件名的文件。若有,則查看此文件的修改時間是否大于此文件離待恢復(fù)時間點(diǎn)最近一次備份的時間,若是,則進(jìn)入步驟(3)。否則,若此文件不存在,或此文件的修改時間小于此文件離待恢復(fù)時間點(diǎn)最近一次備份的時間,結(jié)束恢復(fù)。(3)重復(fù)數(shù)據(jù)刪除140查看文件指紋譜集130,查找此文件中的哪些數(shù)據(jù)塊進(jìn)行了修改。(3. 1)重復(fù)數(shù)據(jù)刪除140根據(jù)恢復(fù)任務(wù)請求中攜帶的文件名,在本地客戶端的文件系統(tǒng)中查找具有此文件名的待恢復(fù)文件。并使用變長數(shù)據(jù)塊分塊算法(Rabin Fingerprint),對此文件進(jìn)行分塊,得到平均長度為8KB的數(shù)據(jù)塊。(3. 2)重復(fù)數(shù)據(jù)刪除140使用SHA-I哈希算法計算步驟(3. 1)得到的每個數(shù)據(jù)塊的哈希值,這個數(shù)據(jù)塊哈希值常被稱為數(shù)據(jù)塊指紋。任何兩個具有相同數(shù)據(jù)塊指紋的數(shù)據(jù)塊被認(rèn)為是相同的數(shù)據(jù)塊,反之,具有不同數(shù)據(jù)塊指紋的數(shù)據(jù)塊被認(rèn)為是不相同的數(shù)據(jù)塊。(3. 3)重復(fù)數(shù)據(jù)刪除140查找文件指紋譜集130,查找出此文件在離待恢復(fù)時間點(diǎn)最近一次備份時所生成的數(shù)據(jù)塊指紋。(3. 4)重復(fù)數(shù)據(jù)刪除140將步驟(3. 3)得到的數(shù)據(jù)塊指紋和步驟(3. 2)得到的數(shù)據(jù)塊指紋進(jìn)行比較,對于在步驟(3.3)中存在,而步驟(3.2)中不存在的數(shù)據(jù)塊指紋,將其代表的數(shù)據(jù)塊標(biāo)記為待恢復(fù)的數(shù)據(jù)塊。(4)將(3. 4)標(biāo)記的待恢復(fù)數(shù)據(jù)塊從存儲服務(wù)器取回本地客戶端。
權(quán)利要求
1. 一種基于因果關(guān)系的重復(fù)數(shù)據(jù)刪除方法,涉及文件關(guān)系表和文件指紋譜集,所述文件關(guān)系表包含文件名、文件操作類型和文件操作時間信息,所述文件指紋譜集包含各文件的文件數(shù)據(jù)塊指紋和文件備份時間信息;該方法包括數(shù)據(jù)備份步驟和數(shù)據(jù)恢復(fù)步驟; 所述數(shù)據(jù)備份步驟,具體為(Al)本地客戶端接受用戶備份任務(wù)請求,備份任務(wù)請求攜帶的信息有待備份文件名和最近一次備份時間;(A2)查詢文件關(guān)系表,判斷待備份文件是否在最近一次備份時間之后進(jìn)行過修改,若是,則進(jìn)入步驟(A3),否則,結(jié)束備份;(A3)提取待備份文件當(dāng)前的數(shù)據(jù)塊指紋,將其與文件指紋譜集記錄的待備份文件最后一次備份時的數(shù)據(jù)塊指紋進(jìn)行匹配,找出匹配失敗的數(shù)據(jù)塊; (A4)對步驟(A3)中匹配失敗的數(shù)據(jù)塊進(jìn)行備份; (A5)在文件指紋譜集記錄待備份文件當(dāng)前的數(shù)據(jù)塊指紋和備份時間; 所述數(shù)據(jù)恢復(fù)步驟,具體為(Bi)本地客戶端接收用戶恢復(fù)任務(wù)請求,恢復(fù)任務(wù)請求攜帶的信息有待恢復(fù)文件的文件名和待恢復(fù)時間點(diǎn);(B2)查詢文件關(guān)系表,判斷待恢復(fù)文件是否在離待恢復(fù)時間點(diǎn)的最近一次備份后進(jìn)行過修改,若是,則進(jìn)入步驟(B3),否則,結(jié)束恢復(fù); (B3)提取待恢復(fù)文件當(dāng)前的數(shù)據(jù)塊指紋;(B4)從文件指紋譜集中查詢待恢復(fù)文件離待恢復(fù)時間點(diǎn)最近一次備份的數(shù)據(jù)塊指紋, 將其與步驟(B3)提取的數(shù)據(jù)塊指紋進(jìn)行匹配,找出匹配失敗的數(shù)據(jù)塊; (B5)對步驟(B4)中匹配失敗的數(shù)據(jù)塊進(jìn)行恢復(fù)。
全文摘要
本發(fā)明提供了一種基于因果關(guān)系的重復(fù)數(shù)據(jù)刪除方法,該方法根據(jù)所捕捉的數(shù)據(jù)文件之間的因果關(guān)系,消除備份和恢復(fù)任務(wù)中的重復(fù)數(shù)據(jù),從而加快了備份和恢復(fù)數(shù)據(jù)的傳輸,提高了云備份系統(tǒng)中數(shù)據(jù)備份和恢復(fù)的速度,使云備份系統(tǒng)切實(shí)可用。
文檔編號G06F11/14GK102184218SQ201110115298
公開日2011年9月14日 申請日期2011年5月5日 優(yōu)先權(quán)日2011年5月5日
發(fā)明者馮丹, 晏志超, 田磊, 許蔚, 譚玉娟 申請人:華中科技大學(xué)