一種遠(yuǎn)程復(fù)制多快照間增量去重的實(shí)現(xiàn)方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種遠(yuǎn)程復(fù)制方法及裝置,包括:生成多個(gè)相鄰時(shí)間點(diǎn)的快照,任意兩相鄰時(shí)間點(diǎn)的快照間內(nèi)容的變化為增量,對兩相鄰增量進(jìn)行增量去重處理,并對增量去重后的增量結(jié)果進(jìn)行遠(yuǎn)程復(fù)制,其中增量去重包括下述至少一種:如果兩相鄰增量為數(shù)據(jù)的變化,則合并相同的數(shù)據(jù);如果兩相鄰增量為元數(shù)據(jù)的變化,則抵消針對同一文件或目錄創(chuàng)建和刪除的增量,或者合并針對同一文件或目錄修改的增量,如果兩相鄰增量包括針對文件或目錄刪除的增量,則刪除針對文件或目錄的其他增量;如果兩相鄰增量包括針對文件或目錄創(chuàng)建的增量,則刪除針對文件或目錄的其他增量,通過上述方式,本發(fā)明能夠減少重復(fù)或不必要的拷貝操作,極大提高備份效率,節(jié)省帶寬資源。
【專利說明】一種遠(yuǎn)程復(fù)制多快照間增量去重的實(shí)現(xiàn)方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及虛數(shù)據(jù)保護(hù)【技術(shù)領(lǐng)域】,特別是涉及一種遠(yuǎn)程復(fù)制多快照間增量去重的實(shí)現(xiàn)方法及裝置。
【背景技術(shù)】
[0002]遠(yuǎn)程復(fù)制是在存儲領(lǐng)域一種常用的數(shù)據(jù)保護(hù)方法,通過在生產(chǎn)端與災(zāi)備端進(jìn)行遠(yuǎn)程復(fù)制操作,可以對一份數(shù)據(jù)生成多份相同的數(shù)據(jù)拷貝??煺帐窍到y(tǒng)容災(zāi)備份一個(gè)很重要的方法??煺盏闹饕饔檬菍?shí)現(xiàn)數(shù)據(jù)的在線備份和恢復(fù),可以在系統(tǒng)故障時(shí)快速的將數(shù)據(jù)恢復(fù)到指定時(shí)間點(diǎn)狀態(tài),并且可以允許用戶以只讀的方式訪問任意時(shí)間點(diǎn)的快照數(shù)據(jù)。
[0003]實(shí)現(xiàn)快照的主流方法包括COW (Copy On Write,寫時(shí)復(fù)制)和ROW (Redirect OnWrite,寫時(shí)重定向),其中COW,S卩如果數(shù)據(jù)被快照保護(hù),某一個(gè)塊數(shù)據(jù)第一次寫入到某個(gè)位置,首先將原來的數(shù)據(jù)讀取出來,寫到另外一個(gè)位置,即快照保護(hù)區(qū)域,新數(shù)據(jù)寫入到原來的位置,而下一次針對該數(shù)據(jù)塊的操作不再執(zhí)行COW操作。COW復(fù)制會(huì)增加系統(tǒng)開銷,因此COW操作適合寫入操作較少讀取操作較多的場景。ROW操作,S卩如果數(shù)據(jù)被快照數(shù)據(jù)保護(hù),某一塊數(shù)據(jù)第一次寫入到某個(gè)位置,新寫入的數(shù)據(jù)被重新定向到新的位置空間,原數(shù)據(jù)的空間變?yōu)榭煺諗?shù)據(jù),ROW操作,僅僅是將數(shù)據(jù)重定向存儲,因此對數(shù)據(jù)的寫入開銷較小,但由于寫入地址重定向,因此對于數(shù)據(jù)的讀增加了重定向的開銷,ROW適合寫數(shù)據(jù)較多讀數(shù)據(jù)較少的場景。
[0004]在文件系統(tǒng)中,遠(yuǎn)程復(fù)制拷貝的數(shù)據(jù)基于快照間增量結(jié)果實(shí)現(xiàn),增量結(jié)果預(yù)示多快照間元數(shù)據(jù)或數(shù)據(jù)發(fā)生的變化,通過讀取兩兩快照間的差異數(shù)據(jù),實(shí)現(xiàn)災(zāi)備端與生產(chǎn)端的數(shù)據(jù)同步。以COW方法實(shí)現(xiàn)多快照間文件或目錄先創(chuàng)建后刪除為例,如圖1所示,root為快照根節(jié)點(diǎn),其中,節(jié)點(diǎn)為指元數(shù)據(jù)服務(wù)器節(jié)點(diǎn)。所有的快照都打在root節(jié)點(diǎn)上,包括以下過程:首先打快照N,包括a、b、c三個(gè)節(jié)點(diǎn),然后在a節(jié)點(diǎn)下新創(chuàng)建節(jié)點(diǎn)d,并對root打快照N+1,再刪除節(jié)點(diǎn)d,并對root打快照N+2。由此可知,[N, N+2]之間的快照增量由[N, N+1]、[Ν+1,Ν+2]的增量組成,其中,[N, N+1]之間的增量結(jié)果是d節(jié)點(diǎn)的新創(chuàng)建;[Ν+1,Ν+2]的增量結(jié)果是d節(jié)點(diǎn)的刪除,生成d節(jié)點(diǎn)的COW版本d@snapN+l。在遠(yuǎn)程復(fù)制增量備份時(shí),災(zāi)備端先執(zhí)行[N,N+1]的增量,在父節(jié)點(diǎn)a下創(chuàng)建子節(jié)點(diǎn)d;然后執(zhí)行[Ν+1,Ν+2]的增量,將子節(jié)點(diǎn)d刪除,從而實(shí)現(xiàn)數(shù)據(jù)與生產(chǎn)端的同步。實(shí)際上,節(jié)點(diǎn)d在快照N時(shí)被創(chuàng)建,在N+1后又被刪除,那么對于災(zāi)備端來說,快照[N,N+2]之間d相當(dāng)于不曾存在過,新創(chuàng)建增量和刪除增量可相互抵消,災(zāi)備端對節(jié)點(diǎn)d的創(chuàng)建和刪除是不必要的拷貝操作,浪費(fèi)帶寬資源。
[0005]因此,在文件系統(tǒng)中,傳統(tǒng)的遠(yuǎn)程復(fù)制通過快照間重演的方式進(jìn)行數(shù)據(jù)同步,導(dǎo)致重復(fù)操作較多,降低系統(tǒng)性能及備份效率,浪費(fèi)帶寬資源。
【發(fā)明內(nèi)容】
[0006]本發(fā)明實(shí)施方式提供一種遠(yuǎn)程復(fù)制多快照間增量去重的實(shí)現(xiàn)方法及裝置,能夠減少重復(fù)或不必要的拷貝操作,極大提高備份效率,節(jié)省帶寬資源。[0007]第一方面提供一種遠(yuǎn)程復(fù)制多快照間增量去重的實(shí)現(xiàn)方法,包括:生成多個(gè)相鄰時(shí)間點(diǎn)的快照,任意兩相鄰時(shí)間點(diǎn)的快照間內(nèi)容的變化為增量;對兩相鄰增量進(jìn)行增量去重處理,并對增量去重后的增量結(jié)果進(jìn)行遠(yuǎn)程復(fù)制;其中,增量去重包括下述至少一種:如果兩相鄰增量為數(shù)據(jù)的變化,則合并相同的數(shù)據(jù);如果兩相鄰增量為元數(shù)據(jù)的變化,則抵消針對同一文件或目錄的創(chuàng)建和刪除的增量,或者合并針對同一文件或目錄的修改的增量,其中,元數(shù)據(jù)包括文件或目錄;如果兩相鄰增量包括針對文件或目錄的刪除的增量,則刪除針對文件或目錄的其他增量;如果兩相鄰增量包括針對文件或目錄的創(chuàng)建的增量,則刪除針對文件或目錄的其他增量。
[0008]在第一方面的第一種可能的實(shí)現(xiàn)方式中,每個(gè)增量對應(yīng)一快照號,快照號為增量的時(shí)間戳標(biāo)記,取為兩相鄰時(shí)間點(diǎn)的快照間較大的快照號,如果增量為數(shù)據(jù)的變化,則增量還對應(yīng)一偏移以及一長度。
[0009]在第一方面的第二種可能的實(shí)現(xiàn)方式中,如果兩相鄰增量為數(shù)據(jù)的變化,則合并相同的數(shù)據(jù)包括:如果兩相鄰增量是針對同一文件或目錄的數(shù)據(jù)變化,則比對兩相鄰增量的數(shù)據(jù)變化的范圍,合并相同的部分。
[0010]在第一方面的第三種可能的實(shí)現(xiàn)方式中,比對兩相鄰增量的數(shù)據(jù)變化的范圍,合并相同的部分包括:兩相鄰增量為數(shù)據(jù)修改或追加時(shí),取兩相鄰增量的偏移的較小值為去重后的兩相鄰增量的偏移,取兩相鄰增量的長度的較大值為去重后的兩相鄰增量的長度,取兩相鄰增量的快照號的較大值為去重后的兩相鄰增量的快照號。
[0011]在第一方面的第四種可能的實(shí)現(xiàn)方式中,比對兩相鄰增量的數(shù)據(jù)變化的范圍,合并相同的部分包括:如果兩相鄰增量包括第一增量和第二增量,第一增量為數(shù)據(jù)截?cái)?,第二增量為?shù)據(jù)修改,則如果第一增量的偏移小于第二增量的偏移,且第一增量的長度大于第二增量的長度,則只保留第一增量,并取第一增量和第二增量的快照號的較大值為去重后的兩相鄰增量的快照號;如果第一增量的偏移大于第二增量的偏移,且第一增量的長度大于第二增量的長度,則將第一增量的偏移取為第二增量的長度,同時(shí)保留第一增量,并取第一增量和第二增量的快照號的較大值為去重后的兩相鄰增量的快照號。
[0012]在第一方面的第五種可能的實(shí)現(xiàn)方式中,如果兩相鄰增量為元數(shù)據(jù)的變化,則合并針對同一文件或目錄的修改的增量包括:如果同一文件或目錄的屬性在兩相鄰增量中被修改,則僅保留快照號較大的增量。
[0013]在第一方面的第六種可能的實(shí)現(xiàn)方式中,如果兩相鄰增量包括針對文件或目錄的創(chuàng)建的增量,則刪除針對同一文件或目錄的其他增量包括:如果文件或目錄先被創(chuàng)建,然后數(shù)據(jù)或?qū)傩员恍薷?,則只保留創(chuàng)建的增量,并在遠(yuǎn)程復(fù)制創(chuàng)建文件或目錄時(shí),拷貝最新的數(shù)據(jù)或?qū)傩灾怠?br>
[0014]在第一方面的第七種可能的實(shí)現(xiàn)方式中,如果兩相鄰增量包括針對文件或目錄的刪除的增量,則刪除針對同一文件或目錄的其他增量包括:如果數(shù)據(jù)先被修改,然后文件或目錄被刪除,則只保留刪除的增量,遠(yuǎn)程復(fù)制時(shí)直接刪除文件或目錄。
[0015]第二方面提供一種遠(yuǎn)程復(fù)制的裝置,包括:增量生成模塊,用于生成多個(gè)相鄰時(shí)間點(diǎn)的快照,任意兩相鄰時(shí)間點(diǎn)的快照間內(nèi)容的變化為增量;增量去重模塊,用于對兩相鄰增量進(jìn)行增量去重處理,并對所述增量去重后的增量結(jié)果進(jìn)行遠(yuǎn)程復(fù)制;其中,所述增量去重包括下述至少一種:如果兩相鄰增量為數(shù)據(jù)的變化,則合并相同的數(shù)據(jù);如果兩相鄰增量為元數(shù)據(jù)的變化,則抵消針對同一文件或目錄的創(chuàng)建和刪除的增量,或者合并針對同一文件或目錄的修改的增量,其中,所述元數(shù)據(jù)包括文件或目錄;如果兩相鄰增量包括針對文件或目錄的刪除的增量,則刪除針對文件或目錄的其他增量;如果兩相鄰增量包括針對文件或目錄的創(chuàng)建的增量,則刪除針對文件或目錄的其他增量。
[0016]在第二方面的第一種可能的實(shí)現(xiàn)方式中,每個(gè)增量對應(yīng)一快照號,快照號為增量的時(shí)間戳標(biāo)記,取兩相鄰時(shí)間點(diǎn)的快照間較大的快照號,如果增量為數(shù)據(jù)的變化,則增量還對應(yīng)一偏移以及一長度。
[0017]在第二方面的第二種可能的實(shí)現(xiàn)方式中,增量去重模塊還用于,如果兩相鄰增量是針對同一文件或目錄的數(shù)據(jù)變化,則比對同一文件兩相鄰增量的數(shù)據(jù)變化的范圍,合并相同的部分。
[0018]在第二方面的第三種可能的實(shí)現(xiàn)方式中,增量去重模塊還用于,增量為數(shù)據(jù)修改或追加時(shí),取兩相鄰增量的偏移的較小值為去重后的兩相鄰增量的偏移,取兩相鄰增量的長度的較大值為去重后的兩相鄰增量的長度,取兩相鄰增量的快照號的較大值為去重后的兩相鄰增量的快照號。
[0019]在第二方面的第四種可能的實(shí)現(xiàn)方式中,如果兩相鄰增量包括第一增量和第二增量,第一增量為數(shù)據(jù)截?cái)?,第二增量為?shù)據(jù)修改,則所述增量去重模塊還用于:如果第一增量的偏移小于第二增量的偏移,且第一增量的長度大于第二增量的長度,則只保留第一增量,并取第一增量和第二增量的快照號的較大值為去重后的兩相鄰增量的快照號;如果第一增量的偏移大于第二增量的偏移,且第一增量的長度大于第二增量的長度,則將第一增量的偏移取為第二增量的長度,同時(shí)保留第一增量,并取第一增量和第二增量的快照號的較大值為去重后的兩相鄰增量的快照號。
[0020]在第二方面的第五種可能的實(shí)現(xiàn)方式中,增量去重模塊還用于,如果同一文件或目錄的屬性在相鄰兩快照中被修改,則增量去重模塊僅保留快照號較大的增量。
[0021]在第二方面的第六種可能的實(shí)現(xiàn)方式中,增量去重模塊還用于:如果文件或目錄先被創(chuàng)建,然后數(shù)據(jù)或?qū)傩员恍薷?,則只保留創(chuàng)建的增量,并在遠(yuǎn)程復(fù)制創(chuàng)建文件或目錄時(shí),拷貝最新的數(shù)據(jù)或?qū)傩灾怠?br>
[0022]在第二方面的第七種可能的實(shí)現(xiàn)方式中,增量去重模塊還用于:如果數(shù)據(jù)或?qū)傩韵缺恍薷模缓笪募蚰夸洷粍h除,則只保留刪除的增量,遠(yuǎn)程復(fù)制時(shí)直接刪除文件或目錄。
[0023]本發(fā)明通過生成多個(gè)相鄰時(shí)間點(diǎn)的快照,任意兩相鄰時(shí)間點(diǎn)的快照間內(nèi)容的變化為增量,對兩相鄰增量進(jìn)行增量去重處理,并對增量去重后的增量結(jié)果進(jìn)行遠(yuǎn)程復(fù)制,其中,增量去重包括下述至少一種:如果兩相鄰增量為數(shù)據(jù)的變化,則合并相同的數(shù)據(jù);如果兩相鄰增量為元數(shù)據(jù)的變化,則抵消針對同一文件或目錄的創(chuàng)建和刪除的增量,或者合并針對同一文件或目錄的修改的增量,如果兩相鄰增量包括針對文件或目錄的刪除的增量,則刪除針對文件或目錄的其他增量;如果兩相鄰增量包括針對文件或目錄的創(chuàng)建的增量,則刪除針對文件或目錄的其他增量;從而實(shí)現(xiàn)對兩相鄰增量進(jìn)行增量去重處理,以消除兩相鄰增量存在重復(fù)、具有包含關(guān)系、或能相互抵消的增量;可以通過重復(fù)對兩相鄰增量進(jìn)行增量去重處理,進(jìn)而消除多個(gè)相鄰時(shí)間點(diǎn)的快照間的增量存在多次重復(fù)、具有包含關(guān)系、或能相互抵消的增量,從而不需對每個(gè)增量都進(jìn)行遠(yuǎn)程復(fù)制,只需對增量去重后的多個(gè)相鄰時(shí)間點(diǎn)的快照間的增量進(jìn)行一次差異數(shù)據(jù)拷貝就可以實(shí)現(xiàn)遠(yuǎn)程復(fù)制,由此能夠減少重復(fù)或不必要的拷貝操作,極大提高備份效率,而操作的減少,就可以減少對帶寬的占用,從而節(jié)省帶寬資源。
【專利附圖】
【附圖說明】
[0024]為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。其中:
[0025]圖1是現(xiàn)有技術(shù)中遠(yuǎn)程復(fù)制基于多快照間增量的實(shí)現(xiàn)方法。
[0026]圖2是本發(fā)明第一實(shí)施例的遠(yuǎn)程復(fù)制多快照間增量去重的實(shí)現(xiàn)方法的流程示意圖;
[0027]圖3是本發(fā)明第一實(shí)施例的相鄰兩快照間的數(shù)據(jù)類型的增量的去重方法示意圖;
[0028]圖4是本發(fā)明第二實(shí)施例的相鄰兩快照間的數(shù)據(jù)類型的增量的去重方法示意圖;
[0029]圖5是本發(fā)明第三實(shí)施例的相鄰兩快照間的數(shù)據(jù)類型的增量的去重方法示意圖;
[0030]圖6是本發(fā)明第四實(shí)施例的相鄰兩快照間的數(shù)據(jù)類型的增量的去重方法示意圖;
[0031]圖7是本發(fā)明第五實(shí)施例的相鄰兩快照間的數(shù)據(jù)類型的增量的去重方法示意圖;
[0032]圖8是本發(fā)明第六實(shí)施例的相鄰兩快照間的數(shù)據(jù)類型的增量的去重方法示意圖;
[0033]圖9是本發(fā)明第一實(shí)施例的相鄰兩快照間的元數(shù)據(jù)類型的增量的去重方法示意圖;
[0034]圖10是本發(fā)明第二實(shí)施例的相鄰兩快照間的元數(shù)據(jù)類型的增量的去重方法示意圖;
[0035]圖11是本發(fā)明第三實(shí)施例的相鄰兩快照間的元數(shù)據(jù)類型的增量的去重方法示意圖;
[0036]圖12是本發(fā)明第四實(shí)施例的相鄰兩快照間的元數(shù)據(jù)類型的增量的去重方法示意圖;
[0037]圖13是本發(fā)明第一實(shí)施例的遠(yuǎn)程復(fù)制多快照間增量去重的實(shí)現(xiàn)裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0038]下面結(jié)合附圖和實(shí)施方式對本發(fā)明進(jìn)行詳細(xì)說明。
[0039]首先請參見圖2,圖2是本發(fā)明遠(yuǎn)程復(fù)制多快照間增量去重的實(shí)現(xiàn)方法的流程示意圖。如圖2所示,遠(yuǎn)程復(fù)制多快照間增量去重的實(shí)現(xiàn)方法包括:
[0040]SlO:生成多個(gè)相鄰時(shí)間點(diǎn)的快照,任意兩相鄰時(shí)間點(diǎn)的快照間內(nèi)容的變化為增量。
[0041]其中,快照可以是表示數(shù)據(jù)的一個(gè)副本,也可以是數(shù)據(jù)的一個(gè)復(fù)制品,可以在系統(tǒng)故障時(shí)快速的將數(shù)據(jù)恢復(fù)到指定時(shí)間點(diǎn)狀態(tài),并且可以允許用戶以只讀的方式訪問任意時(shí)間點(diǎn)的快照數(shù)據(jù)。增量快照是在同一個(gè)快照卷上創(chuàng)建一系列連續(xù)的不同時(shí)間點(diǎn)的快照。任意兩相鄰時(shí)間點(diǎn)的快照間內(nèi)容的變化即為一條增量。按照生成快照的時(shí)間順序,可以認(rèn)為增量是相鄰快照中,后一快照相對于前一快照的變化量:增量=后一快照-前一快照。當(dāng)快照數(shù)量為N時(shí),增量數(shù)量為N-1。
[0042]增量和產(chǎn)生增量的快照之間有對應(yīng)關(guān)系,而快照是有時(shí)間先后順序的,因此也可以認(rèn)為增量之間存在時(shí)間先后順序,本發(fā)明實(shí)施例所說的相鄰增量,是指在時(shí)間順序上相鄰的增量。
[0043]Sll:對兩相鄰增量進(jìn)行增量去重處理,并對增量去重后的增量結(jié)果進(jìn)行遠(yuǎn)程復(fù)制;其中,增量去重包括下述至少一種:如果兩相鄰增量為數(shù)據(jù)的變化,則合并相同的數(shù)據(jù);如果兩相鄰增量元數(shù)據(jù)的變化,則抵消針對同一文件或目錄的創(chuàng)建和刪除的增量,或者合并針對同一文件或目錄的修改的增量,其中,元數(shù)據(jù)包括文件或目錄;如果兩相鄰增量包括針對文件或目錄的刪除的增量,則刪除針對文件或目錄的其他增量;如果兩相鄰增量包括針對文件或目錄的創(chuàng)建的增量,則刪除針對文件或目錄的其他增量。
[0044]去重是指去除重復(fù)的內(nèi)容和無意義的內(nèi)容。本發(fā)明實(shí)施例的去重既包括數(shù)據(jù)的去重,也包括對操作的去重。例如:相同的數(shù)據(jù)只保留一份;對同一個(gè)對象(目錄或者文件),如果既要?jiǎng)h除又要?jiǎng)?chuàng)建,相當(dāng)于保持這個(gè)對象不變,不需要對這個(gè)對象做任何操作;如果需要?jiǎng)h除某個(gè)對象,那么對這個(gè)對象的修改、增加等操作都是沒有意義的,只需要執(zhí)行一次刪除操作即可。
[0045]其中,抵消針對同一文件或目錄的創(chuàng)建和刪除的增量是指:創(chuàng)建和刪除是兩個(gè)相反的操作,如果對同一個(gè)文件存在偶數(shù)個(gè)操作,且一半操作是創(chuàng)建、另一半操作是刪除,那么相當(dāng)于對這個(gè)文件不做任何操作,也就是說創(chuàng)建操作和刪除操作相互抵消。除了文件,對于同一個(gè)目錄也存在操作抵消的情況。
[0046]遠(yuǎn)程復(fù)制是指生產(chǎn)端將需要備份的文件和數(shù)據(jù)復(fù)制到災(zāi)備端,以便在系統(tǒng)故障時(shí)快速的將數(shù)據(jù)恢復(fù)到指定時(shí)間點(diǎn)狀態(tài),或者方便用戶以只讀的方式訪問任意時(shí)間點(diǎn)的快照數(shù)據(jù)。在本實(shí)施例中,遠(yuǎn)程復(fù)制采用的是差異數(shù)據(jù)拷貝,即只拷貝已經(jīng)發(fā)生變化的數(shù)據(jù)部分,對沒有發(fā)生變化的數(shù)據(jù)部分,維持原樣,不進(jìn)行拷貝。
[0047]在本實(shí)施例中,可以依次重復(fù)對兩相鄰增量進(jìn)行增量去重,也可以隨機(jī)重復(fù)對兩相鄰增量進(jìn)行增量去重,最終實(shí)現(xiàn)對所有多個(gè)相鄰時(shí)間點(diǎn)的快照間的增量的增量去重,得到去重后的增量結(jié)果。另外,不同于現(xiàn)有技術(shù)中對每個(gè)增量都進(jìn)行遠(yuǎn)程復(fù)制,只需要對增量去重后的多個(gè)相鄰時(shí)間點(diǎn)的快照間的增量結(jié)果進(jìn)行一次遠(yuǎn)程復(fù)制。其中,本發(fā)明實(shí)施例中的遠(yuǎn)程復(fù)制主要是針對文件系統(tǒng)的遠(yuǎn)程復(fù)制。
[0048]在本實(shí)施例中,通過對兩相鄰增量進(jìn)行增量去重處理,消除每兩相鄰增量間存在多次重復(fù)、具有包含關(guān)系、或能相互抵消的增量,然后重復(fù)兩相鄰增量的增量去重處理,進(jìn)而消除多個(gè)相鄰時(shí)間點(diǎn)的快照間的增量存在多次重復(fù)、具有包含關(guān)系、或能相互抵消的增量,得到去重后的增量結(jié)果,對去重后的增量結(jié)果進(jìn)行一次遠(yuǎn)程復(fù)制,由此能夠減少重復(fù)或不必要的拷貝操作,極大提高備份效率,節(jié)省帶寬資源。
[0049]在更具體的實(shí)施例中,增量可以是元數(shù)據(jù)和/或數(shù)據(jù)的變化,元數(shù)據(jù)是描述數(shù)據(jù)及其環(huán)境的數(shù)據(jù),包括文件或目錄。每個(gè)增量對應(yīng)一快照號,快照號為增量的時(shí)間戳標(biāo)記,取為兩相鄰時(shí)間點(diǎn)的快照間較大的快照號,其中,快照號越大,表示其對應(yīng)的快照或增量產(chǎn)生的時(shí)間越往后。在本發(fā)明實(shí)施例中,對于兩相鄰時(shí)間點(diǎn)的快照,后一時(shí)間點(diǎn)的快照號大于前一時(shí)間點(diǎn)的快照號。如果增量為數(shù)據(jù)的變化,則增量還對應(yīng)一偏移offset以及一長度length。其中,偏移是指變化的數(shù)據(jù)在對應(yīng)文件中的起始位置,長度是指數(shù)據(jù)在對應(yīng)文件中變化的長度,偏移和長度共同表示增量在對應(yīng)文件中的數(shù)據(jù)變化的范圍。一條增量可以是數(shù)據(jù)或元數(shù)據(jù)的變化,也可以既有數(shù)據(jù)的變化,也有元數(shù)據(jù)的變化部分。兩相鄰增量可以都是元數(shù)據(jù)或者數(shù)據(jù)的變化,也可以一條增量為元數(shù)據(jù)的變化,另一條增量為數(shù)據(jù)的變化。以下以COW的快照實(shí)現(xiàn)方法為例對數(shù)據(jù)變化和元數(shù)據(jù)變化的增量分別進(jìn)行描述,其中,圖2至圖8是數(shù)據(jù)變化的增量去重方法的示意圖,圖9-圖12是元數(shù)據(jù)變化的增量去重方法的示意圖。
[0050]數(shù)據(jù)的變化主要包括某文件中數(shù)據(jù)修改、數(shù)據(jù)追加和數(shù)據(jù)截?cái)嗳N場景,對兩相鄰增量的增量去重處理主要是比對同一文件或目錄中兩相鄰增量的數(shù)據(jù)變化的范圍,合并相同的數(shù)據(jù)。其中,數(shù)據(jù)截?cái)嗍侵冈谖募袆h除一部分?jǐn)?shù)據(jù),該刪除的數(shù)據(jù)可以是位于起始位置開始的部分?jǐn)?shù)據(jù),也可以是位于中間位置的部分?jǐn)?shù)據(jù),即被刪除的數(shù)據(jù)在文件中的具體位置不限定。 [0051]具體地,增量為數(shù)據(jù)修改或追加時(shí),取兩相鄰增量的偏移的較小值為去重后的兩相鄰增量的偏移,取兩相鄰增量的長度的較大值為去重后的兩相鄰增量的長度,取兩相鄰增量的快照號的較大值為去重后的兩相鄰增量的快照號。假設(shè)存在兩條相鄰快照增量A和增量B,數(shù)據(jù)變化的偏移offset和長度length分別為[offset_A, len_A]、[offset_B, len_B],增量A和增量B為數(shù)據(jù)修改產(chǎn)生的增量,以下針對增量A和增量B在不同數(shù)據(jù)變化范圍情況下的增量去重方法進(jìn)行詳細(xì)描述。比較增量A和增量B的偏移offset和長度len,當(dāng)offset_A=offset_B,且len_A=len_B,如圖3所示,則增量A和增量B為相同增量,則保留增量A和增量B中快照號較大的增量;當(dāng)offset_A=offset_B,glen_A>len_B,即增量A包含增量B,如圖4所示,則只保留增量A ;否則只保留增量B,快照號取兩者最大值;當(dāng)offset_A〈offset_B,若len_A>=len_B,即增量A全部包含增量B,如圖5所示,則只保留增量A,快照號取兩者最大值;當(dāng)(^&的_4〈#&的_8,且1611_4>1611_8,即增量A只包含增量B的一部分,如圖6所示,則只保留快照號較大的增量,且偏移offset更新為MIN(offset_A, offset_B),長度length更新為MAX(len_A,len_B),即去重后的兩相鄰增量的偏移offset取增量A和增量B中較小的偏移offset,而去重后的兩相鄰增量的長度length取增量A和增量B中較大的長度length,從而實(shí)現(xiàn)增量為數(shù)據(jù)修改或追加時(shí)兩相鄰增量的合并,減少了不必要的拷貝操作。增量A和增量B為數(shù)據(jù)追加產(chǎn)生的增量時(shí),與增量A和增量B皆為數(shù)據(jù)修改產(chǎn)生的增量時(shí)的增量去重方法相同,在此不再贅述。
[0052]兩相鄰增量分別為數(shù)據(jù)截?cái)嗪蛿?shù)據(jù)修改時(shí),該兩相鄰增量包括第一增量A和第二增量B,第一增量A為數(shù)據(jù)截?cái)?,第二增量B為數(shù)據(jù)修改,比較增量A和增量B的偏移offset和長度len。如果第一增量A的偏移offset_A小于第二增量B的偏移offset_B,且第一增量A的長度len_A大于第二增量B的長度len_B,如圖7所示,則只保留第一增量A,并取第一增量A和第二增量B的快照號的較大值為去重后的兩相鄰增量的快照號。如果第一增量A的偏移offset_A大于第二增量B的偏移offset_B,且第一增量A的長度len_A大于第二增量B的長度len_B,如圖8所示,則將第一增量A的偏移ofTSet_A取為第二增量B的長度len_B,同時(shí)保留第一增量A,并取第一增量A和第二增量B的快照號的較大值為去重后的兩相鄰增量的快照號,如此將兩相鄰增量進(jìn)行了合并,減少了不必要的拷貝操作。
[0053]元數(shù)據(jù)的變化包括文件或目錄的修改、創(chuàng)建和刪除。對兩相鄰增量進(jìn)行增量去重處理包括:如果兩相鄰增量都為元數(shù)據(jù)的變化,則抵消針對同一文件或目錄的創(chuàng)建和刪除的增量,或者合并針對同一文件或目錄的修改的增量;如果兩相鄰增量包括針對文件或目錄的刪除的增量,則刪除針對該文件或目錄的其他增量;如果兩相鄰增量包括針對文件或目錄的創(chuàng)建的增量,則刪除針對文件或目錄的其他增量。
[0054]具體地,如果同一文件或目錄的屬性在兩相鄰增量中被修改,則僅保留快照號較大的增量。如果兩相鄰增量中,某一文件或目錄先被創(chuàng)建后被刪除,即如果兩相鄰增量存在同一文件或目錄的創(chuàng)建和刪除的增量,該兩相鄰增量是相反的增量,則創(chuàng)建和刪除的增量相抵消,不保留增量,遠(yuǎn)程復(fù)制無需做任何操作。如圖9所示,在快照N的基礎(chǔ)上新創(chuàng)建文件file,并打快照N+1,再刪除文件file,生成文件file的COW版本fileOsnapN+Ι,并打快照N+2??梢?,[N, N+2]之間的快照增量由[N,N+1]、[Ν+1,Ν+2]的增量組成,其中,[N, N+1]之間的增量是文件file的創(chuàng)建;[Ν+1,Ν+2]的增量是文件file的刪除,因此去重時(shí),兩者可以相互抵消,不保留增量,進(jìn)行減少不必要的拷貝重復(fù)的操作。
[0055]如果同一文件或目錄的屬性在兩相鄰增量中被修改,則僅保留快照號較大的增量。如圖10所示,在快照N的基礎(chǔ)上進(jìn)行操作,快照N中,文件file包括屬性mod=755,首先執(zhí)行chmod file756,即將文件file的屬性mod=755更改為屬性mod=756,生成文件file的COW版本fiIeisnapN,并打快照N+1,然后執(zhí)行chmod file777,即將文件file的屬性mod=756更改為屬性mod=777,生成文件file的COW版本file@snapN+l,并打快照N+2??梢?,[N,N+1]之間的增量和[Ν+1,Ν+2]之間的增量都是對文件file的屬性mod進(jìn)行修改,且進(jìn)行修改后文件file的屬性mod最終為777,因此去重時(shí),只保留快照號較大的增量,SP直接將文件file的屬性mod更改為777,從而將兩相鄰增量重復(fù)修改的部分進(jìn)行了合并,消除了兩相鄰增量間存在重復(fù)的增量。
[0056]如果文件或目錄先被創(chuàng)建,然后數(shù)據(jù)或?qū)傩员恍薷模瑒t只保留創(chuàng)建的增量,并在遠(yuǎn)程復(fù)制創(chuàng)建文件或目錄時(shí),拷貝最新的數(shù)據(jù)或?qū)傩灾怠H鐖D11所示,在快照N的基礎(chǔ)上先創(chuàng)建文件file,其屬性mod=755,并打快照N+1,然后執(zhí)行chmod file756,即將文件file的屬性mod=755更改為屬性mod=756,生成文件file的COW版本fileOsnapN,去重時(shí),只要保留創(chuàng)建的增量,即只要?jiǎng)?chuàng)建文件file,其屬性mod定為756即可,從而實(shí)現(xiàn)了將修改的增量合并到創(chuàng)建的增量。其中,修改的增量可以是文件數(shù)據(jù)變化的增量,也可以是元數(shù)據(jù)變化的增量。
[0057]如果數(shù)據(jù)或?qū)傩韵缺恍薷?,然后文件或目錄被刪除,則只保留刪除的增量,遠(yuǎn)程復(fù)制時(shí)直接刪除文件或目錄。如圖12所示,快照N中存在文件file,其屬性mod=755,在快照N的基礎(chǔ)上首先執(zhí)行chmod file756,即將文件file的屬性mod=755更改為屬性mod=756,生成文件file的COW版本file@snapN,并打快照N+1,然后刪除文件file,生成文件file的COW版本file@snapN+l,并打快照N+2。由于刪除文件file時(shí),其屬性mod也一并刪除了,因此去重時(shí),只需保留刪除的增量,即直接刪除文件file即可,中間的修改是無效的,從而實(shí)現(xiàn)修改的增量合并到刪除的增量。其中,修改的增量可以是文件數(shù)據(jù)變化的增量,也可以是元數(shù)據(jù)變化的增量。
[0058]以上各實(shí)施例消除了兩相鄰增量中存在重復(fù)、具有包含關(guān)系、或能相互抵消的增量。在此基礎(chǔ)上,依次重復(fù)對兩相鄰增量進(jìn)行增量去重,或者隨機(jī)重復(fù)對兩相鄰增量進(jìn)行增量去重,最終實(shí)現(xiàn)對多個(gè)相鄰時(shí)間點(diǎn)快照間的增量的增量去重,得到去重后的增量結(jié)果。其中,兩相鄰增量可以都是數(shù)據(jù)變化的增量的任一種或都是元數(shù)據(jù)變化的增量的任一種,也可以一條增量是數(shù)據(jù)變化的增量的任一種,一條是元數(shù)據(jù)變化的增量的任一種,而重復(fù)對兩相鄰增量的增量去重中,可以是對上述任一種的重復(fù)去重,也可以是對上述任兩種或多種的混合交叉去重;可以是依時(shí)間順序依次重復(fù)對兩相鄰增量進(jìn)行去重,也可以隨機(jī)重復(fù)取任兩相鄰增量去重,或者兩者的組合,直至得到對多個(gè)相鄰時(shí)間點(diǎn)的快照間的增量全部去重后的增量結(jié)果。如此,可以消除多個(gè)相鄰時(shí)間點(diǎn)的快照間的增量存在多次重復(fù)、具有包含關(guān)系、或能相互抵消的增量,從而不需對每個(gè)增量都進(jìn)行遠(yuǎn)程復(fù)制,而只需要對增量去重后的多個(gè)相鄰時(shí)間點(diǎn)的快照間的增量的增量結(jié)果進(jìn)行一次遠(yuǎn)程復(fù)制,由此能夠減少重復(fù)或不必要的拷貝操作,極大提高備份效率,而操作的減少,就可以減少對帶寬的占用,從而節(jié)省帶寬資源。
[0059]請參見圖13,圖13是本發(fā)明遠(yuǎn)程復(fù)制的裝置的結(jié)構(gòu)示意圖。如圖13所示,該遠(yuǎn)程復(fù)制的裝置10包括:增量生成模塊11和增量去重模塊12。增量生成模塊11用于生成多個(gè)相鄰時(shí)間點(diǎn)的快照,任意兩相鄰時(shí)間點(diǎn)的快照間內(nèi)容的變化為增量。增量去重模塊12用于對兩相鄰增量進(jìn)行增量去重處理,并對增量去重后的增量結(jié)果進(jìn)行遠(yuǎn)程復(fù)制;其中,增量去重包括下述至少一種:如果兩相鄰增量為數(shù)據(jù)的變化,則合并相同的數(shù)據(jù);如果兩相鄰增量為元數(shù)據(jù)的變化,則抵消針對同一文件或目錄的創(chuàng)建和刪除的增量,或者合并針對同一文件或目錄的修改的增量;如果兩相鄰增量包括針對文件或目錄的刪除的增量,則刪除針對文件或目錄的其他增量;如果所述兩相鄰增量包括針對文件或目錄的創(chuàng)建的增量,則刪除針對所述文件或目錄的其他增量。其中,遠(yuǎn)程復(fù)制是指生產(chǎn)端將需要備份的文件和數(shù)據(jù)復(fù)制到災(zāi)備端,以便在系統(tǒng)故障時(shí)快速的將數(shù)據(jù)恢復(fù)到指定時(shí)間點(diǎn)狀態(tài),或者方便用戶以只讀的方式訪問任意時(shí)間點(diǎn)的快照數(shù)據(jù)。在本實(shí)施例中,遠(yuǎn)程復(fù)制采用的是差異數(shù)據(jù)拷貝,即只拷貝已經(jīng)發(fā)生變化的數(shù)據(jù)部分,對沒有發(fā)生變化的數(shù)據(jù)部分,維持原樣,不進(jìn)行拷貝。
[0060]在本實(shí)施例中,增量可以是元數(shù)據(jù)的變化和/或數(shù)據(jù)的變化,元數(shù)據(jù)包括文件或目錄。每個(gè)增量對應(yīng)一快照號,快照號為增量的時(shí)間戳標(biāo)記,取為兩相鄰時(shí)間點(diǎn)的快照間較大的快照號,其中,快照號越大,表示其對應(yīng)的快照或增量產(chǎn)生的時(shí)間越往后。在本發(fā)明實(shí)施例中,對于兩相鄰時(shí)間點(diǎn)的快照,后一時(shí)間點(diǎn)的快照號大于前一時(shí)間點(diǎn)的快照號。對于數(shù)據(jù)變化的增量,還對應(yīng)一偏移以及一長度,其中,偏移是指變化的數(shù)據(jù)在對應(yīng)文件中的起始位置,長度是指數(shù)據(jù)在對應(yīng)文件中變化的長度,偏移和長度共同表示增量在對應(yīng)文件中的數(shù)據(jù)變化的范圍。一條增量可以是數(shù)據(jù)或元數(shù)據(jù)的變化,也可以既有數(shù)據(jù)的變化,也有元數(shù)據(jù)的變化部分。
[0061]數(shù)據(jù)的變化主要包括數(shù)據(jù)修改、數(shù)據(jù)追加和數(shù)據(jù)截?cái)嗳N場景。其中,數(shù)據(jù)截?cái)嗍侵冈谖募袆h除一部分?jǐn)?shù)據(jù),該刪除的數(shù)據(jù)可以是位于起始位置開始的部分?jǐn)?shù)據(jù),也可以是位于中間位置的部分?jǐn)?shù)據(jù),即被刪除的數(shù)據(jù)在文件中的具體位置不限定。對于兩相鄰增量都是數(shù)據(jù)變化的增量,增量去重模塊12用于比對同一文件兩相鄰增量的數(shù)據(jù)變化的范圍,合并相同的數(shù)據(jù)。具體地,增量為數(shù)據(jù)修改或追加時(shí),增量去重模塊12取兩相鄰增量的偏移的較小值為去重后的兩相鄰增量的偏移,取兩相鄰增量的長度的較大值為去重后的兩相鄰增量的長度,取兩相鄰增量的快照號的較大值為去重后的兩相鄰增量的快照號。如果兩相鄰增量中,一條增量為數(shù)據(jù)截?cái)?,另一條增量為數(shù)據(jù)修改,該兩相鄰增量包括第一增量和第二增量,第一增量為數(shù)據(jù)截?cái)?,第二增量為?shù)據(jù)修改。則如果第一增量的偏移小于第二增量的偏移,且第一增量的長度大于第二增量的長度,則增量去重模塊12只保留第一增量,并取第一增量和第二增量的快照號的較大值為去重后的兩相鄰增量的快照號。如果第一增量的偏移大于第二增量的偏移,且第一增量的長度大于第二增量的長度,則增量去重模塊12將第一增量的偏移取為第二增量的長度,同時(shí)保留第一增量,并取第一增量和第二增量的快照號的較大值為去重后的兩相鄰增量的快照號。
[0062]元數(shù)據(jù)變化包括文件或目錄的修改、創(chuàng)建和刪除。對于兩相鄰增量都是元數(shù)據(jù)變化的增量,或者一條增量為元數(shù)據(jù)變化,另一條增量為數(shù)據(jù)變化,增量去重模塊12用于抵消同一目錄或文件相鄰兩快照間新創(chuàng)建和刪除的增量;或合并同一目錄或文件兩相鄰增量間屬性修改的增量;或如果兩相鄰增量存在目錄或文件創(chuàng)建的增量,則刪除目錄或文件的其他增量;或如果兩相鄰增量包括針對文件或目錄的創(chuàng)建的增量,則刪除針對文件或目錄的其他增量。
[0063]具體地,如果同一文件或目錄的屬性在兩相鄰增量中被修改,則增量去重模塊12僅保留快照號較大的增量。如果文件或目錄先被創(chuàng)建,然后數(shù)據(jù)或?qū)傩员恍薷?,則增量去重模塊12只保留創(chuàng)建的增量,并在遠(yuǎn)程復(fù)制創(chuàng)建文件或目錄時(shí),拷貝最新的數(shù)據(jù)或?qū)傩灾?。如果?shù)據(jù)或?qū)傩韵缺恍薷?,然后文件或目錄被刪除,則增量去重模塊12只保留刪除的增量,遠(yuǎn)程復(fù)制時(shí)直接刪除文件或目錄。
[0064]在本實(shí)施例中,增量去重模塊12還重復(fù)對兩相鄰增量進(jìn)行增量去重處理,以實(shí)現(xiàn)多個(gè)相鄰時(shí)間點(diǎn)的快照間的增量的增量去重,最終得到去重后的增量結(jié)果。具體地,兩相鄰增量可以都是數(shù)據(jù)變化的增量的任一種或都是元數(shù)據(jù)變化的增量的任一種,也可以一條增量是數(shù)據(jù)變化的增量的任一種,一條是元數(shù)據(jù)變化的增量的任一種。增量去重模塊12可以是對上述任一種的重復(fù)去重,也可以是對上述任兩種或多種的混合交叉去重;并且可以依時(shí)間順序依次重復(fù)對兩相鄰增量進(jìn)行去重,也可以隨機(jī)重復(fù)取任兩相鄰增量去重,或者兩者的組合,直至得到對多個(gè)相鄰時(shí)間點(diǎn)的快照間的增量全部去重后的增量結(jié)果。增量去重模塊12只需對增量去重后的增量結(jié)果進(jìn)行一次遠(yuǎn)程復(fù)制即可。如此消除了多個(gè)相鄰時(shí)間點(diǎn)的快照間的增量存在多次重復(fù)、具有包含關(guān)系、或能相互抵消的增量,能夠減少重復(fù)或不必要的拷貝操作,極大提高備份效率,節(jié)省帶寬資源。
[0065]綜上所述,本發(fā)明通過生成多個(gè)相鄰時(shí)間點(diǎn)的快照,任意兩相鄰時(shí)間點(diǎn)的快照間內(nèi)容的變化為增量,對兩相鄰增量進(jìn)行增量去重處理,并對增量去重后的增量結(jié)果進(jìn)行遠(yuǎn)程復(fù)制,其中,增量去重包括下述至少一種:如果兩相鄰增量為數(shù)據(jù)的變化,則合并相同的數(shù)據(jù);如果兩相鄰增量為元數(shù)據(jù)的變化,則抵消針對同一文件或目錄的創(chuàng)建和刪除的增量,或者合并針對同一文件或目錄的修改的增量,如果兩相鄰增量包括針對文件或目錄的刪除的增量,則刪除針對文件或目錄的其他增量;如果兩相鄰增量包括針對文件或目錄的創(chuàng)建的增量,則刪除針對文件或目錄的其他增量,從而實(shí)現(xiàn)對兩相鄰增量進(jìn)行增量去重處理,以消除兩相鄰增量存在重復(fù)、具有包含關(guān)系、或能相互抵消的增量;通過重復(fù)對兩相鄰增量進(jìn)行增量去重處理,消除了多個(gè)相信時(shí)間點(diǎn)的快照間的增量存在多次重復(fù)、具有包含關(guān)系、或能相互抵消的增量,從而不需對每個(gè)增量都進(jìn)行遠(yuǎn)程復(fù)制,只需要對增量去重后的多個(gè)相鄰時(shí)間點(diǎn)的快照間的增量進(jìn)行一次遠(yuǎn)程復(fù)制增量備份,能夠減少重復(fù)或不必要的拷貝操作,極大提高備份效率,節(jié)省帶寬資源。
[0066]以上所述僅為本發(fā)明的實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的【技術(shù)領(lǐng)域】,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
【權(quán)利要求】
1.一種遠(yuǎn)程復(fù)制方法,其特征在于,所述方法包括: 生成多個(gè)相鄰時(shí)間點(diǎn)的快照,任意兩相鄰時(shí)間點(diǎn)的快照間內(nèi)容的變化為增量; 對兩相鄰增量進(jìn)行增量去重處理,并對所述增量去重后的增量結(jié)果進(jìn)行遠(yuǎn)程復(fù)制; 其中,所述增量去重包括下述至少一種: 如果所述兩相鄰增量為數(shù)據(jù)的變化,則合并相同的數(shù)據(jù); 如果所述兩相鄰增量為元數(shù)據(jù)的變化,則抵消針對同一文件或目錄的創(chuàng)建和刪除的增量,或者合并針對同一文件或目錄的修改的增量,其中,所述元數(shù)據(jù)包括文件或目錄; 如果所述兩相鄰增量包括針對文件或目錄的刪除的增量,則刪除針對所述文件或目錄的其他增量; 如果所述兩相鄰增量包括針對文件或目錄的創(chuàng)建的增量,則刪除針對所述文件或目錄的其他增量。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,每個(gè)所述增量對應(yīng)一快照號,所述快照號為所述增量的時(shí)間戳標(biāo)記,取為所述兩相鄰時(shí)間點(diǎn)的快照間較大的快照號,如果所述增量為數(shù)據(jù)的變化,則所述增量還對應(yīng)一偏移以及一長度。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述如果所述兩相鄰增量為數(shù)據(jù)的變化,則合并相同的數(shù)據(jù)包括: 如果所述兩相鄰增量是針對同一文件或目錄的數(shù)據(jù)變化,則比對所述兩相鄰增量的數(shù)據(jù)變化的范圍,合并相同的部分。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述比對所述兩相鄰增量的數(shù)據(jù)變化的范圍,合并相同的部分包括: 所述兩相鄰增量為數(shù)據(jù)修改或追加時(shí),取所述兩相鄰增量的偏移的較小值為去重后的所述兩相鄰增量的偏移,取所述兩相鄰增量的長度的較大值為去重后的所述兩相鄰增量的長度,取所述兩相鄰增量的快照號的較大值為去重后的所述兩相鄰增量的快照號。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述比對所述兩相鄰增量的數(shù)據(jù)變化的范圍,合并相同的部分包括: 如果所述兩相鄰增量包括第一增量和第二增量,所述第一增量為數(shù)據(jù)截?cái)啵龅诙隽繛閿?shù)據(jù)修改,則 如果所述第一增量的偏移小于所述第二增量的偏移,且所述第一增量的長度大于所述第二增量的長度,則只保留所述第一增量,并取所述第一增量和所述第二增量的快照號的較大值為去重后的所述兩相鄰增量的快照號; 如果所述第一增量的偏移大于所述第二增量的偏移,且所述第一增量的長度大于所述第二增量的長度,則將所述第一增量的偏移取為所述第二增量的長度,同時(shí)保留所述第一增量,并取所述第一增量和所述第二增量的快照號的較大值為去重后的所述兩相鄰增量的快照號。
6.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述如果所述兩相鄰增量為元數(shù)據(jù)的變化,則合并針對同一文件或目錄的修改的增量包括:如果所述同一文件或目錄的屬性在所述兩相鄰增量中被修改,則僅保留快照號較大的增量。
7.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述如果所述兩相鄰增量包括針對文件或目錄的創(chuàng)建的增量,則刪除針對所述同一文件或目錄的其他增量包括:如果所述文件或目錄先被創(chuàng)建,然后數(shù)據(jù)或?qū)傩员恍薷?,則只保留創(chuàng)建的增量,并在遠(yuǎn)程復(fù)制創(chuàng)建所述文件或目錄時(shí),拷貝最新的所述數(shù)據(jù)或?qū)傩灾怠?br>
8.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述如果所述兩相鄰增量包括針對文件或目錄的刪除的增量,則刪除針對所述同一文件或目錄的其他增量包括: 如果所述數(shù)據(jù)先被修改,然后所述文件或目錄被刪除,則只保留刪除的增量,遠(yuǎn)程復(fù)制時(shí)直接刪除所述文件或目錄。
9.一種遠(yuǎn)程復(fù)制的裝置,其特征在于,所述裝置包括: 增量生成模塊,用于生成多個(gè)相鄰時(shí)間點(diǎn)的快照,任意兩相鄰時(shí)間點(diǎn)的快照間內(nèi)容的變化為增量; 增量去重模塊,用于對兩相鄰增量進(jìn)行增量去重處理,并對所述增量去重后的增量結(jié)果進(jìn)行遠(yuǎn)程復(fù)制; 其中,所述增量去重包括下述至少一種: 如果所述兩相鄰增量為數(shù)據(jù)的變化,則合并相同的數(shù)據(jù); 如果所述兩相鄰增量為元數(shù)據(jù)的變化,則抵消針對同一文件或目錄的創(chuàng)建和刪除的增量,或者合并針對同一文件或目錄的修改的增量,其中,所述元數(shù)據(jù)包括文件或目錄; 如果所述兩相鄰增量包括針對文件或目錄的刪除的增量,則刪除針對所述文件或目錄的其他增量; 如果所述兩相鄰增量包括針對文件或目錄的創(chuàng)建的增量,則刪除針對所述文件或目錄的其他增量。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,每個(gè)所述增量對應(yīng)一快照號,所述快照號為所述增量的時(shí)間戳標(biāo)記,取所述兩相鄰時(shí)間點(diǎn)的快照間較大的快照號,如果所述增量為數(shù)據(jù)的變化,則所述增量還對應(yīng)一偏移以及一長度。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述增量去重模塊還用于,如果所述兩相鄰增量是針對同一文件或目錄的數(shù)據(jù)變化,則比對同一文件所述兩相鄰增量的數(shù)據(jù)變化的范圍,合并相同的部分。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述增量去重模塊還用于,所述兩相鄰增量為數(shù)據(jù)修改或追加時(shí),取所述兩相鄰的增量的偏移的較小值為去重后的所述兩相鄰增量的偏移,取所述兩相鄰增量的長度的較大值為去重后的所述兩相鄰增量的長度,取所述兩相鄰增量的快照號的較大值為去重后的所述兩相鄰增量的快照號。
13.根據(jù)權(quán)利要求11所述的裝置,其特征在于,如果所述兩相鄰增量包括第一增量和第二增量,所述第一增量為數(shù)據(jù)截?cái)?,所述第二增量為?shù)據(jù)修改,則所述增量去重模塊還用于: 如果所述第一增量的偏移小于所述第二增量的偏移,且所述第一增量的長度大于所述第二增量的長度,則只保留所述第一增量,并取所述第一增量和所述第二增量的快照號的較大值為去重后的所述兩相鄰增量的快照號; 如果所述第一增量的偏移大于所述第二增量的偏移,且所述第一增量的長度大于所述第二增量的長度,則將所述第一增量的偏移取為所述第二增量的長度,同時(shí)保留所述第一增量,并取所述第一增量和所述第二增量的快照號的較大值為去重后的所述兩相鄰增量的快照號。
14.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述增量去重模塊還用于,如果所述同一文件或目錄的屬性在所述兩相鄰增量中被修改,則僅保留快照號較大的增量。
15.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述增量去重模塊還用于: 如果所述文件或目錄先被創(chuàng)建,然后數(shù)據(jù)或?qū)傩员恍薷?,則只保留創(chuàng)建的增量,并在遠(yuǎn)程復(fù)制創(chuàng)建所述文件或目錄時(shí),拷貝最新的所述數(shù)據(jù)或?qū)傩灾怠?br>
16.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述增量去重模塊還用于: 如果所述數(shù)據(jù)或?qū)傩韵缺恍薷?,然后所述文件或目錄被刪除,則只保留刪除的增量,遠(yuǎn)程復(fù)制時(shí)直接刪除所述文件 或目錄。
【文檔編號】H04L29/08GK103645970SQ201310689124
【公開日】2014年3月19日 申請日期:2013年12月13日 優(yōu)先權(quán)日:2013年12月13日
【發(fā)明者】譚造保 申請人:華為技術(shù)有限公司