一種數(shù)據(jù)復(fù)制方法及裝置制造方法
【專(zhuān)利摘要】本發(fā)明提供一種數(shù)據(jù)復(fù)制方法以及對(duì)應(yīng)裝置,應(yīng)用于存儲(chǔ)設(shè)備上,該方法包括:處理數(shù)據(jù)寫(xiě)入業(yè)務(wù),并相應(yīng)更新差異位圖以及寫(xiě)入統(tǒng)計(jì)表;在執(zhí)行復(fù)制時(shí),掛起寫(xiě)入業(yè)務(wù);將差異位圖以及寫(xiě)入統(tǒng)計(jì)表進(jìn)行備份;判斷備份的差異位圖是否遍歷結(jié)束,如果是則結(jié)束,否則獲取下一個(gè)標(biāo)志位;判斷當(dāng)前標(biāo)志位是否表示有數(shù)據(jù)差異,如果是則獲取當(dāng)前標(biāo)志位對(duì)應(yīng)的寫(xiě)入統(tǒng)計(jì)參數(shù),否則返回;判斷讀取到的寫(xiě)入統(tǒng)計(jì)參數(shù)是否達(dá)到閾值,如果是則獲取整個(gè)數(shù)據(jù)塊數(shù)據(jù)作為差異數(shù)據(jù),否則執(zhí)行微掃描操作以獲得差異數(shù)據(jù)。本發(fā)明利用寫(xiě)入統(tǒng)計(jì)參數(shù)來(lái)判斷是否執(zhí)行微掃描操作,有效地利用了微掃描的優(yōu)勢(shì),同時(shí)有效地規(guī)避了微掃描的各種問(wèn)題。
【專(zhuān)利說(shuō)明】一種數(shù)據(jù)復(fù)制方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及存儲(chǔ)【技術(shù)領(lǐng)域】,尤其涉及一種數(shù)據(jù)復(fù)制方法及裝置。
【背景技術(shù)】
[0002]復(fù)制技術(shù)是網(wǎng)絡(luò)存儲(chǔ)中一種數(shù)據(jù)保護(hù)技術(shù),其主要實(shí)現(xiàn)手段是利用IP網(wǎng)絡(luò),實(shí)現(xiàn)兩臺(tái)存儲(chǔ)設(shè)備的LUN資源(邏輯存儲(chǔ)資源)之間的數(shù)據(jù)“同步”,其目的是為L(zhǎng)UN建立和維護(hù)數(shù)據(jù)副本。很多時(shí)候復(fù)制是遠(yuǎn)程的復(fù)制,受益于IP網(wǎng)絡(luò)傳輸能力的不斷提升,遠(yuǎn)程復(fù)制正在得到更為廣泛的使用。
[0003]遠(yuǎn)程復(fù)制的核心思想就是在災(zāi)難備份中心為生產(chǎn)中心的LUN (稱(chēng)為復(fù)制源)建立數(shù)據(jù)副本(稱(chēng)為復(fù)制副本),將復(fù)制源中發(fā)生變化的數(shù)據(jù)周期性的同步到復(fù)制副本。一旦一臺(tái)存儲(chǔ)設(shè)備所在區(qū)域發(fā)生災(zāi)難導(dǎo)致該設(shè)備上數(shù)據(jù)丟失時(shí),可使用遠(yuǎn)程的方式在另一臺(tái)存儲(chǔ)設(shè)備上的數(shù)據(jù)副本恢復(fù)出生產(chǎn)數(shù)據(jù)。
[0004]考慮到遠(yuǎn)程復(fù)制通常會(huì)跨越廣域網(wǎng)絡(luò)(比如IP WAN),為了提高復(fù)制的處理效率和節(jié)約廣域網(wǎng)絡(luò)的帶寬,因此復(fù)制通常采用增量復(fù)制方式,即每次復(fù)制同步時(shí),僅復(fù)制兩個(gè)復(fù)制時(shí)間點(diǎn)之間發(fā)生變化的數(shù)據(jù)。在復(fù)制源一側(cè),作為遠(yuǎn)程復(fù)制的源資源,存儲(chǔ)設(shè)備需要記錄在兩次復(fù)制之間的數(shù)據(jù)的變化情況。目前數(shù)據(jù)變化情況主要通過(guò)差異位圖來(lái)進(jìn)行標(biāo)識(shí),差異位圖通過(guò)一個(gè)bit標(biāo)識(shí)復(fù)制源某一段存儲(chǔ)空間/區(qū)域內(nèi)的數(shù)據(jù)發(fā)生了變化,需要同步到復(fù)制副本。這一段存儲(chǔ)空間/區(qū)域簡(jiǎn)稱(chēng)為數(shù)據(jù)塊,其大小(通常稱(chēng)為差異粒度)一般是固定的。其實(shí)現(xiàn)方法是,當(dāng)復(fù)制源有寫(xiě)入操作時(shí),確定哪些區(qū)域內(nèi)的數(shù)據(jù)發(fā)生了變化,進(jìn)而同步更新差異位圖記錄變化。
[0005]從以上描述可以看出,所述差異粒度越小,則差異數(shù)據(jù)變化的記錄就越精確。但是在目前網(wǎng)絡(luò)中數(shù)據(jù)量飛速增長(zhǎng)的情況下,LUN容量越來(lái)越大,此時(shí)差異粒度越小,則差異位圖所占用的空間就會(huì)越大。例如復(fù)制源的大小為128TB時(shí),如果差異粒度為一個(gè)扇區(qū),則差異位圖的大小為32GB。維護(hù)差異位圖的代價(jià)將越來(lái)越大,需要考慮差異位圖所占的處理資源、差異位圖的更新頻率、差異位圖的訪(fǎng)問(wèn)速度、對(duì)復(fù)制源在線(xiàn)業(yè)務(wù)的影響等諸多因素。因此在目前業(yè)界通用的實(shí)現(xiàn)中,差異粒度都比較粗,通常都大于64KB。
[0006]粗粒度的差異位圖帶來(lái)的問(wèn)題就是:即使只修改了很小一部分?jǐn)?shù)據(jù),但是需要按照差異粒度傳輸全部的數(shù)據(jù)。請(qǐng)參考圖2的示例,假設(shè)差異粒度是1M。通過(guò)差異位圖發(fā)現(xiàn)第一個(gè)數(shù)據(jù)塊的數(shù)據(jù)存在差異,這IM的差異數(shù)據(jù)中實(shí)際上只有前12K數(shù)據(jù)是不一致的,而其他數(shù)據(jù)都是一致的。這些其他數(shù)據(jù)理論上是沒(méi)有必要復(fù)制的。為了降低數(shù)據(jù)傳輸量,提高鏈路帶寬的使用率,一種改進(jìn)作法是:在復(fù)制差異數(shù)據(jù)傳輸前,再進(jìn)行微掃描,即通過(guò)特定方法進(jìn)一步比較復(fù)制源和復(fù)制副本上差異粒度中的數(shù)據(jù),獲取更細(xì)差異粒度上的差異數(shù)據(jù)。圖2中微掃描使用了更細(xì)的差異粒度4KB,其中相應(yīng)的位圖并沒(méi)有全部顯示出來(lái)。在實(shí)現(xiàn)上,可以通過(guò)分段MD5校驗(yàn)獲得復(fù)制源和復(fù)制副本的差異,這樣就可以知道在圖2中只有前12K數(shù)據(jù)是不一致的。
[0007]通過(guò)微掃描方式,可以減少?gòu)?fù)制過(guò)程中傳輸?shù)臄?shù)據(jù)量,但是微掃描引入了新的處理流程,一方面,微掃描需要讀復(fù)制源,額外的讀操作會(huì)影響復(fù)制源的在線(xiàn)業(yè)務(wù)性能;另一方面,需要進(jìn)行微掃描的存儲(chǔ)空間越大,對(duì)復(fù)制源的在線(xiàn)業(yè)務(wù)性能影響越大。
【發(fā)明內(nèi)容】
[0008]有鑒于此,本發(fā)明提供一種數(shù)據(jù)復(fù)制裝置,應(yīng)用于存儲(chǔ)設(shè)備上,該存儲(chǔ)設(shè)備用于將復(fù)制源的數(shù)據(jù)發(fā)送給復(fù)制副本上去,該裝置包括業(yè)務(wù)處理單元、初始化處理單元、位圖遍歷單元、差異獲取單元以及復(fù)制執(zhí)行單元,中:
[0009]業(yè)務(wù)處理單元,用于處理面向復(fù)制源的數(shù)據(jù)寫(xiě)入業(yè)務(wù),將數(shù)據(jù)寫(xiě)入到對(duì)應(yīng)的數(shù)據(jù)塊上,并相應(yīng)更新差異位圖以及寫(xiě)入統(tǒng)計(jì)表;其中該差異位圖包括若干標(biāo)志位,每一標(biāo)志位對(duì)應(yīng)于一個(gè)數(shù)據(jù)塊,所述寫(xiě)入統(tǒng)計(jì)表包括與標(biāo)志位對(duì)應(yīng)的寫(xiě)入統(tǒng)計(jì)參數(shù);
[0010]初始化處理單元,用于在需要執(zhí)行復(fù)制操作時(shí),掛起業(yè)務(wù)處理單元的數(shù)據(jù)寫(xiě)入業(yè)務(wù)以暫停向復(fù)制源中寫(xiě)入數(shù)據(jù);將差異位圖以及寫(xiě)入統(tǒng)計(jì)表進(jìn)行備份,并在備份完成后將差異位圖以及寫(xiě)入統(tǒng)計(jì)表初始化,然后恢復(fù)業(yè)務(wù)處理單元的數(shù)據(jù)寫(xiě)入業(yè)務(wù);
[0011]位圖遍歷單元用于判斷備份的差異位圖是否遍歷結(jié)束,如果是則通知初始化處理單元結(jié)束本次復(fù)制,否則獲取備份的差異位圖中的下一個(gè)標(biāo)志位作為當(dāng)前標(biāo)志位;判斷當(dāng)前標(biāo)志位是否表示有數(shù)據(jù)差異,如果是則從備份的寫(xiě)入統(tǒng)計(jì)表中讀取當(dāng)前標(biāo)志位對(duì)應(yīng)的寫(xiě)入統(tǒng)計(jì)參數(shù),否則返回繼續(xù)判斷備份的差異位圖是否遍歷結(jié)束;
[0012]差異獲取單元,用于判斷讀取到的寫(xiě)入統(tǒng)計(jì)參數(shù)是否已經(jīng)達(dá)到預(yù)設(shè)閾值,如果是則獲取該標(biāo)志位對(duì)應(yīng)的數(shù)據(jù)塊上的數(shù)據(jù)作為差異數(shù)據(jù),否則對(duì)該標(biāo)志位對(duì)應(yīng)的數(shù)據(jù)塊執(zhí)行微掃描操作以獲得對(duì)應(yīng)的差異數(shù)據(jù);
[0013]復(fù)制執(zhí)行單元,用于將差異數(shù)據(jù)發(fā)送給復(fù)制副本。
[0014]本發(fā)明還相應(yīng)提供一種數(shù)據(jù)復(fù)制方法,應(yīng)用于存儲(chǔ)設(shè)備上,該存儲(chǔ)設(shè)備用于將復(fù)制源的數(shù)據(jù)發(fā)送給復(fù)制副本上去,其中,該方法包括以下步驟:
[0015]步驟A、處理面向復(fù)制源的數(shù)據(jù)寫(xiě)入業(yè)務(wù),將數(shù)據(jù)寫(xiě)入到對(duì)應(yīng)的數(shù)據(jù)塊上,并相應(yīng)更新差異位圖以及寫(xiě)入統(tǒng)計(jì)表;其中該差異位圖包括若干標(biāo)志位,每一標(biāo)志位對(duì)應(yīng)于一個(gè)數(shù)據(jù)塊,所述寫(xiě)入統(tǒng)計(jì)表包括與標(biāo)志位對(duì)應(yīng)的寫(xiě)入統(tǒng)計(jì)參數(shù);
[0016]步驟B、在需要執(zhí)行復(fù)制操作時(shí),掛起數(shù)據(jù)寫(xiě)入業(yè)務(wù)以暫停向復(fù)制源中寫(xiě)入數(shù)據(jù);將差異位圖以及寫(xiě)入統(tǒng)計(jì)表進(jìn)行備份,并在備份完成后將差異位圖以及寫(xiě)入統(tǒng)計(jì)表初始化,然后恢復(fù)數(shù)據(jù)寫(xiě)入業(yè)務(wù);
[0017]步驟C、判斷備份的差異位圖是否遍歷結(jié)束,如果是則結(jié)束本次復(fù)制,否則獲取備份的差異位圖中的下一個(gè)標(biāo)志位作為當(dāng)前標(biāo)志位;
[0018]步驟D、判斷當(dāng)前標(biāo)志位是否表示有數(shù)據(jù)差異,如果是則從備份的寫(xiě)入統(tǒng)計(jì)表中讀取當(dāng)前標(biāo)志位對(duì)應(yīng)的寫(xiě)入統(tǒng)計(jì)參數(shù),否則返回步驟C ;
[0019]步驟E、判斷讀取到的寫(xiě)入統(tǒng)計(jì)參數(shù)是否已經(jīng)達(dá)到預(yù)設(shè)閾值,如果是則獲取該標(biāo)志位對(duì)應(yīng)的數(shù)據(jù)塊上的數(shù)據(jù)作為差異數(shù)據(jù),否則對(duì)該標(biāo)志位對(duì)應(yīng)的數(shù)據(jù)塊執(zhí)行微掃描操作以獲得對(duì)應(yīng)的差異數(shù)據(jù),并將差異數(shù)據(jù)發(fā)送給復(fù)制副本。
[0020]本發(fā)明利用寫(xiě)入統(tǒng)計(jì)參數(shù)來(lái)判斷是否執(zhí)行微掃描操作,有效地利用了微掃描的優(yōu)勢(shì),同時(shí)有效地規(guī)避了微掃描所引發(fā)的各種問(wèn)題?!緦?zhuān)利附圖】
【附圖說(shuō)明】
[0021]圖1是一種典型的數(shù)據(jù)復(fù)制過(guò)程組網(wǎng)示意圖。
[0022]圖2是現(xiàn)有技術(shù)中一種微掃描實(shí)現(xiàn)方案的數(shù)據(jù)差異示意圖。
[0023]圖3是本發(fā)明一種實(shí)施方式中數(shù)據(jù)復(fù)制裝置的邏輯結(jié)構(gòu)圖。
[0024]圖4是本發(fā)明一種實(shí)施方式中一次數(shù)據(jù)復(fù)制的處理流程圖。
[0025]圖5是本發(fā)明一種實(shí)施方式中數(shù)據(jù)寫(xiě)入復(fù)制源的處理流程圖。
【具體實(shí)施方式】
[0026]本發(fā)明提供一種更符合存儲(chǔ)業(yè)務(wù)特點(diǎn)的復(fù)制方法及對(duì)應(yīng)的裝置。其中該復(fù)制裝置應(yīng)用在存儲(chǔ)設(shè)備上。在介紹該裝置在存儲(chǔ)設(shè)備上運(yùn)行的處理流程前,先定義一下本發(fā)明使用較多的技術(shù)概念。
[0027]復(fù)制源:表示一個(gè)復(fù)制關(guān)系對(duì)中的源資源,通常位于業(yè)務(wù)生產(chǎn)中心。
[0028]復(fù)制副本:表示一個(gè)復(fù)制關(guān)系對(duì)中的目的資源,通常位于災(zāi)難備份中心。
[0029]差異位圖:采用一個(gè)bit標(biāo)識(shí)源資源某一數(shù)據(jù)塊中數(shù)據(jù)是否發(fā)生了變化。
[0030]微掃描:通過(guò)某種算法,比如消息摘要算法,來(lái)獲取復(fù)制源中數(shù)據(jù)塊與復(fù)制副本中對(duì)應(yīng)的數(shù)據(jù)塊更小粒度的差異數(shù)據(jù)。
[0031]請(qǐng)結(jié)合圖1所示的典型應(yīng)用場(chǎng)景,以軟件實(shí)現(xiàn)為例,本發(fā)明的數(shù)據(jù)復(fù)制裝置運(yùn)行在位于復(fù)制源一側(cè)的作為復(fù)制源設(shè)備的存儲(chǔ)設(shè)備上,該源設(shè)備用于將復(fù)制源上的數(shù)據(jù)發(fā)送到遠(yuǎn)端的復(fù)制副本。請(qǐng)參考圖3以及圖4,該復(fù)制裝置包括業(yè)務(wù)處理單元、初始化處理單元、位圖遍歷單元、差異獲取單元以及復(fù)制執(zhí)行單元,該復(fù)制裝置運(yùn)行在所述源設(shè)備上時(shí),執(zhí)行如下各個(gè)步驟的處理流程。
[0032]步驟101,業(yè)務(wù)處理單元處理面向復(fù)制源的數(shù)據(jù)寫(xiě)入業(yè)務(wù),將數(shù)據(jù)寫(xiě)入到對(duì)應(yīng)的數(shù)據(jù)塊上,并相應(yīng)更新差異位圖以及寫(xiě)入統(tǒng)計(jì)表;其中該差異位圖包括若干標(biāo)志位,每一標(biāo)志位對(duì)應(yīng)于一個(gè)數(shù)據(jù)塊,所述寫(xiě)入統(tǒng)計(jì)表包括與標(biāo)志位對(duì)應(yīng)的寫(xiě)入統(tǒng)計(jì)參數(shù);
[0033]步驟102,在需要執(zhí)行復(fù)制操作時(shí),初始化處理單元掛起業(yè)務(wù)處理單元的數(shù)據(jù)寫(xiě)入業(yè)務(wù)以暫停向復(fù)制源中寫(xiě)入數(shù)據(jù);
[0034]步驟103,初始化處理單元將差異位圖以及寫(xiě)入統(tǒng)計(jì)表進(jìn)行備份;
[0035]步驟104,在步驟103的備份完成后,初始化處理單元將差異位圖以及寫(xiě)入統(tǒng)計(jì)表初始化,恢復(fù)業(yè)務(wù)處理單元的數(shù)據(jù)寫(xiě)入業(yè)務(wù);
[0036]步驟105,位圖遍歷單元判斷備份的差異位圖是否遍歷結(jié)束,如果是則轉(zhuǎn)步驟112,否則獲取備份差異位圖的下一個(gè)標(biāo)志位(初始為第I個(gè))作為當(dāng)前標(biāo)志位;
[0037]步驟106,位圖遍歷單元判斷當(dāng)前標(biāo)識(shí)位是否表示有數(shù)據(jù)差異,如果是則轉(zhuǎn)步驟107處理,否則返回步驟105 ;
[0038]步驟107,位圖遍歷單元從備份寫(xiě)入統(tǒng)計(jì)表中讀取當(dāng)前標(biāo)志位對(duì)應(yīng)的寫(xiě)入統(tǒng)計(jì)參數(shù);
[0039]步驟108,差異獲取單元判斷位圖遍歷單元讀取到的寫(xiě)入統(tǒng)計(jì)參數(shù)是否達(dá)到預(yù)設(shè)閾值,如果是轉(zhuǎn)步驟109,如果否則轉(zhuǎn)步驟110 ;
[0040]步驟109,差異獲取單元獲取該標(biāo)志位對(duì)應(yīng)的數(shù)據(jù)塊上的數(shù)據(jù)作為差異數(shù)據(jù);
[0041]步驟110,差異獲取單元對(duì)該標(biāo)志位對(duì)應(yīng)的數(shù)據(jù)塊執(zhí)行微掃描操作以獲得對(duì)應(yīng)的更細(xì)粒度的差異數(shù)據(jù)
[0042]步驟111,復(fù)制執(zhí)行單元將差異獲取單元獲取到的差異數(shù)據(jù)發(fā)送給遠(yuǎn)端的復(fù)制副本,并返回步驟105。
[0043]步驟112,初始化處理單元?jiǎng)h除備份的差異位圖以及寫(xiě)入統(tǒng)計(jì)表,結(jié)束本次復(fù)制。
[0044]復(fù)制業(yè)務(wù)通常是周期性開(kāi)展的,在兩次復(fù)制開(kāi)始時(shí)刻之間,可能會(huì)有大量的數(shù)據(jù)寫(xiě)入業(yè)務(wù),當(dāng)數(shù)據(jù)通過(guò)存儲(chǔ)設(shè)備寫(xiě)入生產(chǎn)中心的復(fù)制源時(shí),除了正常的寫(xiě)入操作外,還需要在差異位圖中將被寫(xiě)入數(shù)據(jù)的數(shù)據(jù)塊對(duì)應(yīng)的標(biāo)記位(以一個(gè)bit表示的bit位為例)標(biāo)記起來(lái),比如說(shuō)將該bit位置I表示對(duì)應(yīng)的數(shù)據(jù)塊上的數(shù)據(jù)有過(guò)更改,這樣一來(lái)下次復(fù)制業(yè)務(wù)啟動(dòng)時(shí),存儲(chǔ)設(shè)備可以知道那些數(shù)據(jù)塊上寫(xiě)入了新數(shù)據(jù)(即有差異數(shù)據(jù))。
[0045]在本發(fā)明中,除了更新差異位圖的標(biāo)志位之外,對(duì)于被更新的標(biāo)記位,業(yè)務(wù)處理單元還在寫(xiě)入統(tǒng)計(jì)表中需要將該標(biāo)記位對(duì)應(yīng)的寫(xiě)入統(tǒng)計(jì)參數(shù)更新。寫(xiě)入統(tǒng)計(jì)參數(shù)可以有多種選擇,比如說(shuō),寫(xiě)入統(tǒng)計(jì)參數(shù)可以是寫(xiě)入次數(shù)計(jì)數(shù),表示該標(biāo)志位對(duì)應(yīng)的數(shù)據(jù)塊被寫(xiě)入數(shù)據(jù)的次數(shù);再比如說(shuō),可以寫(xiě)入統(tǒng)計(jì)參數(shù)可以寫(xiě)入長(zhǎng)度總和,表示該標(biāo)志位對(duì)應(yīng)的數(shù)據(jù)塊一次或者多次被寫(xiě)入數(shù)據(jù)的長(zhǎng)度總和。當(dāng)然,本領(lǐng)域普通技術(shù)人員可以根據(jù)實(shí)際應(yīng)用的需要選擇其他寫(xiě)入統(tǒng)計(jì)參數(shù),甚至將多個(gè)具體參數(shù)的組合作為寫(xiě)入統(tǒng)計(jì)參數(shù)。
[0046]寫(xiě)入統(tǒng)計(jì)參數(shù)是本發(fā)明中是否執(zhí)行微掃描的重要參考。以寫(xiě)入次數(shù)計(jì)數(shù)為例,如果一個(gè)數(shù)據(jù)塊在上次復(fù)制至本次復(fù)制這一周期內(nèi)頻繁寫(xiě)入數(shù)據(jù),這在相當(dāng)程度上可以說(shuō)明這個(gè)數(shù)據(jù)塊有很多的數(shù)據(jù)已經(jīng)被更改了,也就是說(shuō)差異數(shù)據(jù)的數(shù)量很大,這個(gè)時(shí)候執(zhí)行微掃描會(huì)消耗較多的處理時(shí)間和處理資源,而最終上還是要傳輸較大量的差異數(shù)據(jù),沒(méi)有達(dá)到顯著節(jié)約帶寬的目的,還浪費(fèi)處理資源和時(shí)間,因此微掃描的意義不大。相反,如果一個(gè)數(shù)據(jù)塊上的數(shù)據(jù)寫(xiě)入次數(shù)非常少,比如只有一兩次,則說(shuō)明這個(gè)數(shù)據(jù)塊上大部分?jǐn)?shù)據(jù)很可能沒(méi)有被更改,因此通過(guò)微掃描操作獲取到的差異數(shù)據(jù)量可能會(huì)很小,可以達(dá)到顯著節(jié)約帶寬的目的。同樣的道理,如果寫(xiě)入統(tǒng)計(jì)參數(shù)是寫(xiě)入長(zhǎng)度總和,如果寫(xiě)入長(zhǎng)度總和越高,則說(shuō)明微掃描操作的意義相對(duì)越小,反之則越高。
[0047]本發(fā)明采用預(yù)設(shè)閾值的辦法來(lái)區(qū)分是否要進(jìn)行微掃描,當(dāng)寫(xiě)入統(tǒng)計(jì)參數(shù)小于閾值的時(shí)候就可以啟動(dòng)微掃描來(lái)獲取差異數(shù)據(jù),此時(shí)獲取的差異數(shù)據(jù)的數(shù)據(jù)量就比較?。蝗绻笥诘扔陂撝祫t獲取當(dāng)前數(shù)據(jù)塊的全部數(shù)據(jù)作為差異數(shù)據(jù)即可。差異數(shù)據(jù)是復(fù)制過(guò)程的傳輸對(duì)象,本發(fā)明通過(guò)預(yù)設(shè)閾值使得在獲取差異數(shù)據(jù)上的處理消耗與傳輸差異數(shù)據(jù)的帶寬消耗之間取得相對(duì)平衡,達(dá)到節(jié)約帶寬和節(jié)約處理資源平衡的目標(biāo)。
[0048]上述閾值的選取與存儲(chǔ)設(shè)備上的存儲(chǔ)業(yè)務(wù)特點(diǎn)有關(guān)。舉例來(lái)說(shuō),以順序存儲(chǔ)為例,數(shù)據(jù)通常是順序?qū)懭氲?,相?dāng)長(zhǎng)一段時(shí)間內(nèi),寫(xiě)入的數(shù)據(jù)不會(huì)被覆蓋,那也就是說(shuō),寫(xiě)入次數(shù)計(jì)數(shù)或者長(zhǎng)度總和大致都可以反映出數(shù)據(jù)塊中實(shí)際差異數(shù)據(jù)的大小。除了順序?qū)懭氲膽?yīng)用以外,隨機(jī)寫(xiě)入的應(yīng)用也很多,這種情況下,本發(fā)明實(shí)施效果也比較好。
[0049]反之,考慮一些極端的情況,如果一個(gè)數(shù)據(jù)塊中部分空間的數(shù)據(jù)被反復(fù)寫(xiě)入,那么寫(xiě)入次數(shù)計(jì)數(shù)或者長(zhǎng)度總和就未必能很好地反映出實(shí)際差異數(shù)據(jù)的大小。比如說(shuō)數(shù)據(jù)塊的大小為4M,其中只有256K的空間被反復(fù)寫(xiě)入了 8次,但實(shí)際的差異數(shù)據(jù)只有256K,此時(shí)執(zhí)行微掃描的效果會(huì)更好,但寫(xiě)入統(tǒng)計(jì)參數(shù)可能無(wú)法反映出這一點(diǎn),假設(shè)閾值是4次。但是,首先在各種應(yīng)用中這種比較極端的情況并不多見(jiàn);其次,使用者可以根據(jù)自己網(wǎng)絡(luò)上的應(yīng)用特點(diǎn)來(lái)合理設(shè)定閾值,比如說(shuō)如果網(wǎng)絡(luò)上很多應(yīng)用是屬于經(jīng)常要反復(fù)在相同位置寫(xiě)入數(shù)據(jù)的,那么閾值可以調(diào)高一些。反之,如果是隨機(jī)寫(xiě)入和順序?qū)懭氲膽?yīng)用為主的話(huà),則相應(yīng)需要將閾值調(diào)低一些。
[0050]請(qǐng)參考圖4,在優(yōu)選的方式中,業(yè)務(wù)處理單元對(duì)于寫(xiě)入統(tǒng)計(jì)參數(shù)的更新可以做特別的處理,當(dāng)寫(xiě)入統(tǒng)計(jì)參數(shù)已經(jīng)達(dá)到閾值以后,則不再更新該寫(xiě)入統(tǒng)計(jì)參數(shù)。這樣的做好處是節(jié)約閾值所占用的空間。以寫(xiě)入次數(shù)計(jì)數(shù)為例來(lái)說(shuō),假設(shè)寫(xiě)入次數(shù)計(jì)數(shù)為15,其需要占用四個(gè)bit的空間。在網(wǎng)絡(luò)存儲(chǔ)這樣的海量數(shù)據(jù)處理環(huán)境下,一旦某個(gè)數(shù)據(jù)塊中寫(xiě)入次數(shù)多達(dá)上百次,比如說(shuō)200次,則需要8個(gè)bit的空間。如果寫(xiě)入統(tǒng)計(jì)參數(shù)持續(xù)更新,則閾值所占用的空間將難以很好地確定。如果閾值太短則容易導(dǎo)致溢出,如果太長(zhǎng)則可能對(duì)于大部分情況來(lái)說(shuō)是個(gè)浪費(fèi),因?yàn)樵趯?shí)際處理過(guò)程中寫(xiě)入統(tǒng)計(jì)表是要加載到內(nèi)存中的,閾值所占空間每增加一個(gè)bit,則可能需要增加數(shù)G的內(nèi)存空間。因此本發(fā)明優(yōu)選方案中,為了規(guī)避閾值所占空間大小的難以確定,避免浪費(fèi)內(nèi)存空間的問(wèn)題,業(yè)務(wù)寫(xiě)入單元每次更新閾值前需要判斷當(dāng)前寫(xiě)入統(tǒng)計(jì)參數(shù)是否已經(jīng)等于閾值,如果是則更新操作為保持不變,否則更新操作為將寫(xiě)入統(tǒng)計(jì)參數(shù)改寫(xiě)。
[0051]另外,對(duì)于上述提及的兩種典型的寫(xiě)入統(tǒng)計(jì)參數(shù)一寫(xiě)入次數(shù)技術(shù)以及寫(xiě)入長(zhǎng)度總和,這兩種參數(shù)可以同時(shí)提供給用戶(hù)使用,這樣用戶(hù)可以根據(jù)自身網(wǎng)絡(luò)存儲(chǔ)環(huán)境中的實(shí)際應(yīng)用選擇使用哪種寫(xiě)入統(tǒng)計(jì)參數(shù)。寫(xiě)入次數(shù)計(jì)數(shù)的優(yōu)勢(shì)是節(jié)約空間,與數(shù)據(jù)寫(xiě)入數(shù)量大小沒(méi)有關(guān)系,而寫(xiě)入長(zhǎng)度總和則可以更加客觀(guān)反映出差異數(shù)據(jù)的大小,但有些場(chǎng)景中需要消耗相對(duì)較多的空間。
[0052]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
【權(quán)利要求】
1.一種數(shù)據(jù)復(fù)制裝置,應(yīng)用于存儲(chǔ)設(shè)備上,該存儲(chǔ)設(shè)備用于將復(fù)制源的數(shù)據(jù)發(fā)送給復(fù)制副本上去,該裝置包括業(yè)務(wù)處理單元、初始化處理單元、位圖遍歷單元、差異獲取單元以及復(fù)制執(zhí)行單元,其特征在于: 業(yè)務(wù)處理單元,用于處理面向復(fù)制源的數(shù)據(jù)寫(xiě)入業(yè)務(wù),將數(shù)據(jù)寫(xiě)入到對(duì)應(yīng)的數(shù)據(jù)塊上,并相應(yīng)更新差異位圖以及寫(xiě)入統(tǒng)計(jì)表;其中該差異位圖包括若干標(biāo)志位,每一標(biāo)志位對(duì)應(yīng)于一個(gè)數(shù)據(jù)塊,所述寫(xiě)入統(tǒng)計(jì)表包括與標(biāo)志位對(duì)應(yīng)的寫(xiě)入統(tǒng)計(jì)參數(shù); 初始化處理單元,用于在需要執(zhí)行復(fù)制操作時(shí),掛起業(yè)務(wù)處理單元的數(shù)據(jù)寫(xiě)入業(yè)務(wù)以暫停向復(fù)制源中寫(xiě)入數(shù)據(jù);將差異位圖以及寫(xiě)入統(tǒng)計(jì)表進(jìn)行備份,并在備份完成后將差異位圖以及寫(xiě)入統(tǒng)計(jì)表初始化,然后恢復(fù)業(yè)務(wù)處理單元的數(shù)據(jù)寫(xiě)入業(yè)務(wù); 位圖遍歷單元用于判斷備份的差異位圖是否遍歷結(jié)束,如果是則通知初始化處理單元結(jié)束本次復(fù)制,否則獲取備份的差異位圖中的下一個(gè)標(biāo)志位作為當(dāng)前標(biāo)志位;判斷當(dāng)前標(biāo)志位是否表示有數(shù)據(jù)差異,如果是則從備份的寫(xiě)入統(tǒng)計(jì)表中讀取當(dāng)前標(biāo)志位對(duì)應(yīng)的寫(xiě)入統(tǒng)計(jì)參數(shù),否則返回繼續(xù)判斷備份的差異位圖是否遍歷結(jié)束; 差異獲取單元,用于判斷讀取到的寫(xiě)入統(tǒng)計(jì)參數(shù)是否已經(jīng)達(dá)到預(yù)設(shè)閾值,如果是則獲取該標(biāo)志位對(duì)應(yīng)的數(shù)據(jù)塊上的數(shù)據(jù)作為差異數(shù)據(jù),否則對(duì)該標(biāo)志位對(duì)應(yīng)的數(shù)據(jù)塊執(zhí)行微掃描操作以獲得對(duì)應(yīng)的差異數(shù)據(jù); 復(fù)制執(zhí)行單元,用于將差異數(shù)據(jù)發(fā)送給復(fù)制副本。
2.如權(quán)利要求1所述的裝置,其特征在于: 所述寫(xiě)入統(tǒng)計(jì)參數(shù)為寫(xiě)入次數(shù)計(jì)數(shù),用于表示當(dāng)前標(biāo)志位對(duì)應(yīng)的數(shù)據(jù)塊上被寫(xiě)入數(shù)據(jù)的次數(shù)。
3.如權(quán)利要求1所述的裝置,其 特征在于:所述寫(xiě)入統(tǒng)計(jì)參數(shù)為寫(xiě)入長(zhǎng)度總和,用于表示當(dāng)前標(biāo)志位對(duì)應(yīng)的數(shù)據(jù)塊上被寫(xiě)入數(shù)據(jù)的長(zhǎng)度總和。
4.如權(quán)利要求1所述的裝置,其特征在于:所述業(yè)務(wù)處理單元進(jìn)一步用于在更新所述寫(xiě)入統(tǒng)計(jì)表中的寫(xiě)入統(tǒng)計(jì)參數(shù)之前,判讀該寫(xiě)入統(tǒng)計(jì)參數(shù)是否已經(jīng)到達(dá)預(yù)設(shè)閾值,如果是則更新操作為保持不變,否則更新操作為改寫(xiě)該寫(xiě)入統(tǒng)計(jì)參數(shù)。
5.如權(quán)利要求1所述的裝置,其特征在于:所述初始化處理單元進(jìn)一步用于在結(jié)束本次復(fù)制之前刪除備份的差異位圖以及寫(xiě)入統(tǒng)計(jì)表。
6.一種數(shù)據(jù)復(fù)制方法,應(yīng)用于存儲(chǔ)設(shè)備上,該存儲(chǔ)設(shè)備用于將復(fù)制源的數(shù)據(jù)發(fā)送給復(fù)制副本上去,其特征在于,該方法包括以下步驟: 步驟A、處理面向復(fù)制源的數(shù)據(jù)寫(xiě)入業(yè)務(wù),將數(shù)據(jù)寫(xiě)入到對(duì)應(yīng)的數(shù)據(jù)塊上,并相應(yīng)更新差異位圖以及寫(xiě)入統(tǒng)計(jì)表;其中該差異位圖包括若干標(biāo)志位,每一標(biāo)志位對(duì)應(yīng)于一個(gè)數(shù)據(jù)塊,所述寫(xiě)入統(tǒng)計(jì)表包括與標(biāo)志位對(duì)應(yīng)的寫(xiě)入統(tǒng)計(jì)參數(shù); 步驟B、在需要執(zhí)行復(fù)制操作時(shí),掛起數(shù)據(jù)寫(xiě)入業(yè)務(wù)以暫停向復(fù)制源中寫(xiě)入數(shù)據(jù);將差異位圖以及寫(xiě)入統(tǒng)計(jì)表進(jìn)行備份,并在備份完成后將差異位圖以及寫(xiě)入統(tǒng)計(jì)表初始化,然后恢復(fù)數(shù)據(jù)寫(xiě)入業(yè)務(wù); 步驟C、判斷備份的差異位圖是否遍歷結(jié)束,如果是則結(jié)束本次復(fù)制,否則獲取備份的差異位圖中的下一個(gè)標(biāo)志位作為當(dāng)前標(biāo)志位; 步驟D、判斷當(dāng)前標(biāo)志位是否表示有數(shù)據(jù)差異,如果是則從備份的寫(xiě)入統(tǒng)計(jì)表中讀取當(dāng)前標(biāo)志位對(duì)應(yīng)的寫(xiě)入統(tǒng)計(jì)參數(shù),否則返回步驟C ;步驟E、判斷讀取到的寫(xiě)入統(tǒng)計(jì)參數(shù)是否已經(jīng)達(dá)到預(yù)設(shè)閾值,如果是則獲取該標(biāo)志位對(duì)應(yīng)的數(shù)據(jù)塊上的數(shù)據(jù)作為差異數(shù)據(jù),否則對(duì)該標(biāo)志位對(duì)應(yīng)的數(shù)據(jù)塊執(zhí)行微掃描操作以獲得對(duì)應(yīng)的差異數(shù)據(jù),并將差異數(shù)據(jù)發(fā)送給復(fù)制副本。
7.如權(quán)利要求6所述的方法,其特征在于: 所述寫(xiě)入統(tǒng)計(jì)參數(shù)為寫(xiě)入次數(shù)計(jì)數(shù),用于表示當(dāng)前標(biāo)志位對(duì)應(yīng)的數(shù)據(jù)塊上被寫(xiě)入數(shù)據(jù)的次數(shù)。
8.如權(quán)利要求6所述的方法,其特征在于:所述寫(xiě)入統(tǒng)計(jì)參數(shù)為寫(xiě)入長(zhǎng)度總和,用于表示當(dāng)前標(biāo)志位對(duì)應(yīng)的數(shù)據(jù)塊上被寫(xiě)入數(shù)據(jù)的長(zhǎng)度總和。
9.如權(quán)利要求6所述的方法,其特征在于:所述步驟A進(jìn)一步包括: 在更新所述寫(xiě)入統(tǒng)計(jì)表中的寫(xiě)入統(tǒng)計(jì)參數(shù)之前,判讀該寫(xiě)入統(tǒng)計(jì)參數(shù)是否已經(jīng)到達(dá)預(yù)設(shè)閾值,如果是則更新操作為保持不變,否則更新操作為改寫(xiě)該寫(xiě)入統(tǒng)計(jì)參數(shù)。
10.如權(quán)利要求6所述的方法,其特征在于:步驟C進(jìn)一步包括: 在結(jié)束本次復(fù)制之前刪 除備份的差異位圖以及寫(xiě)入統(tǒng)計(jì)表。
【文檔編號(hào)】G06F3/06GK103885717SQ201210556389
【公開(kāi)日】2014年6月25日 申請(qǐng)日期:2012年12月19日 優(yōu)先權(quán)日:2012年12月19日
【發(fā)明者】龔飛, 上官應(yīng)蘭 申請(qǐng)人:杭州宏杉科技有限公司