亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

增量快照方法和裝置制造方法

文檔序號(hào):6631240閱讀:257來源:國(guó)知局
增量快照方法和裝置制造方法
【專利摘要】本發(fā)明提供了一種增量快照方法和裝置,包括:當(dāng)需要對(duì)快照源卷進(jìn)行寫數(shù)據(jù)操作時(shí),根據(jù)待寫快照源卷的快照鏈表,查找到最晚創(chuàng)建的快照,確定最晚創(chuàng)建的快照在寫時(shí)拷貝COW卷中存有COW映射,將待寫數(shù)據(jù)寫入快照源卷對(duì)應(yīng)的扇區(qū)中;當(dāng)需要對(duì)快照進(jìn)行讀數(shù)據(jù)操作時(shí),判斷待讀快照在COW卷中是否有COW映射,如果是,根據(jù)待讀快照的COW映射,從COW卷讀取對(duì)應(yīng)的待讀數(shù)據(jù);如果否,根據(jù)待讀快照的快照鏈表,查找與待讀快照關(guān)聯(lián)的最晚創(chuàng)建的快照,根據(jù)最晚創(chuàng)建的快照的COW映射,從快照源卷讀取對(duì)應(yīng)的待讀數(shù)據(jù)。本發(fā)明減少了存儲(chǔ)空間和存儲(chǔ)成本,降低了存儲(chǔ)管理復(fù)雜帶來的風(fēng)險(xiǎn),方便存儲(chǔ)管理。
【專利說明】增量快照方法和裝置

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及存儲(chǔ)災(zāi)備【技術(shù)領(lǐng)域】,尤其涉及一種增量快照方法和裝置。

【背景技術(shù)】
[0002]隨著計(jì)算機(jī)技術(shù)的快速發(fā)展,數(shù)字化信息已經(jīng)逐步取代紙媒數(shù)據(jù),呈現(xiàn)快速增長(zhǎng)。海量數(shù)據(jù)催生了云計(jì)算、大數(shù)據(jù)和海量存儲(chǔ)系統(tǒng)的發(fā)展,對(duì)存儲(chǔ)設(shè)備和存儲(chǔ)應(yīng)用的需求也越來越高。政府行業(yè)、銀行系統(tǒng)、電力企業(yè)等對(duì)數(shù)據(jù)的安全性和業(yè)務(wù)連續(xù)性有著較高的要求,必須提供在線的數(shù)據(jù)保護(hù)。
[0003]快照(Snapshot)是一種在線存儲(chǔ)設(shè)備防止數(shù)據(jù)丟失的有效方法??煺盏囊粋€(gè)功能在于能對(duì)在線數(shù)據(jù)按需進(jìn)行備份和恢復(fù)。當(dāng)存儲(chǔ)設(shè)備發(fā)生應(yīng)用故障或文件損壞時(shí)可進(jìn)行快速數(shù)據(jù)恢復(fù),將數(shù)據(jù)恢復(fù)到某個(gè)可用時(shí)間點(diǎn)的狀態(tài)??煺盏牧硪粋€(gè)功能在于為存儲(chǔ)用戶提供了一個(gè)數(shù)據(jù)訪問通道,當(dāng)原數(shù)據(jù)進(jìn)行在線應(yīng)用處理時(shí),用戶可以訪問快照數(shù)據(jù),還可以利用快照進(jìn)行測(cè)試等工作。所有存儲(chǔ)系統(tǒng),不論高中低端,只要應(yīng)用于在線系統(tǒng),那么快照就成為一個(gè)不可或缺的功能。
[0004]傳統(tǒng)的快照技術(shù)是針對(duì)每個(gè)存儲(chǔ)資源時(shí)間點(diǎn)的數(shù)據(jù)狀態(tài)進(jìn)行單一映射和保護(hù),便于快照直接恢復(fù),但是由于不同時(shí)間點(diǎn)的快照沒有關(guān)聯(lián),創(chuàng)建多個(gè)快照時(shí)存在的冗余副本較多,一方面,使得存儲(chǔ)容量變大,存儲(chǔ)成本較高;另一方面,在對(duì)快照源卷進(jìn)行數(shù)據(jù)修改時(shí),對(duì)應(yīng)的多個(gè)快照也需要進(jìn)行數(shù)據(jù)修改,操作復(fù)雜。
[0005]此外,傳統(tǒng)快照技術(shù)是針對(duì)每個(gè)時(shí)間點(diǎn)的快照,每個(gè)快照的源數(shù)據(jù)和寫入數(shù)據(jù)的映射關(guān)系需要采用獨(dú)立的卷存儲(chǔ)。當(dāng)快照個(gè)數(shù)越來越多時(shí),需要的卷也越來越多,這無疑帶來了存儲(chǔ)管理復(fù)雜,存儲(chǔ)成本大等問題。


【發(fā)明內(nèi)容】

[0006]為了解決上述技術(shù)問題,本發(fā)明提供了一種共享卷的增量快照方法和裝置,能夠減少存儲(chǔ)空間和存儲(chǔ)成本,方便存儲(chǔ)管理。
[0007]為了達(dá)到本發(fā)明目的,本發(fā)明提供了一種增量快照方法,包括:當(dāng)需要對(duì)快照源卷進(jìn)行寫數(shù)據(jù)操作時(shí),根據(jù)待寫快照源卷的快照鏈表,查找到最晚創(chuàng)建的快照,確定所述最晚創(chuàng)建的快照在寫時(shí)拷貝COW卷中存有COW映射,將待寫數(shù)據(jù)寫入快照源卷對(duì)應(yīng)的扇區(qū)中;當(dāng)需要對(duì)快照進(jìn)行讀數(shù)據(jù)操作時(shí),判斷待讀快照在COW卷中是否有COW映射,如果有,根據(jù)所述待讀快照的COW映射,從COW卷讀取對(duì)應(yīng)的待讀數(shù)據(jù);如果沒有,根據(jù)所述待讀快照的快照鏈表,查找與所述待讀快照關(guān)聯(lián)的最晚創(chuàng)建的快照,根據(jù)所述最晚創(chuàng)建的快照的COW映射,從快照源卷讀取對(duì)應(yīng)的待讀數(shù)據(jù)。
[0008]進(jìn)一步地,所述根據(jù)待寫快照源卷的快照鏈表,查找最晚創(chuàng)建的快照之前,還包括:預(yù)先在所述COW卷中建立快照鏈表和對(duì)應(yīng)的例外哈希表,其中,在所述快照鏈表中,通過snap_ID表示快照之間的依賴關(guān)系,每個(gè)快照作為頭指針,指向所述快照的例外哈希表。
[0009]進(jìn)一步地,所述確定所述最晚創(chuàng)建的快照在寫時(shí)拷貝COW卷中存有COW映射,將待寫數(shù)據(jù)寫入快照源卷對(duì)應(yīng)的扇區(qū)中,包括:根據(jù)所述快照源卷中待寫扇區(qū)的扇區(qū)號(hào)確定對(duì)應(yīng)的塊號(hào);判斷所述塊號(hào)對(duì)應(yīng)的塊數(shù)據(jù)在COW卷是否有COW映射;如果有,將所述待寫數(shù)據(jù)寫入快照源卷的待寫扇區(qū)中;如果沒有,將所述快照源卷中待寫扇區(qū)的數(shù)據(jù)拷貝到所述塊號(hào)對(duì)應(yīng)的塊中,建立待寫數(shù)據(jù)的COW映射,并將所述COW映射寫入COW卷,將所述待寫數(shù)據(jù)寫入快照源卷的待寫扇區(qū)中。
[0010]進(jìn)一步地,所述判斷所述塊號(hào)對(duì)應(yīng)的塊數(shù)據(jù)在COW卷是否有COW映射,包括:在所述最晚創(chuàng)建的快照指向的例外哈希表中,查找所述塊號(hào)是否有對(duì)應(yīng)的塊數(shù)據(jù),如果有,則表示所述塊號(hào)對(duì)應(yīng)的塊數(shù)據(jù)在COW卷有COW映射,如果沒有,則所述塊號(hào)對(duì)應(yīng)的塊數(shù)據(jù)沒有在COff卷有COW映射。
[0011]進(jìn)一步地,所述判斷待讀快照在COW卷中是否有COW映射,包括:根據(jù)快照中待讀扇區(qū)的扇區(qū)號(hào)確定對(duì)應(yīng)的塊號(hào),在待讀快照的例外哈希表中,查找所述塊號(hào)是否有對(duì)應(yīng)的塊數(shù)據(jù),如果有,則表示所述塊號(hào)對(duì)應(yīng)的塊數(shù)據(jù)在COW卷有COW映射,如果沒有,則所述塊號(hào)對(duì)應(yīng)的塊數(shù)據(jù)沒有在COW卷有COW映射。
[0012]進(jìn)一步地,所述根據(jù)所述待讀快照的快照鏈表,查找與所述待讀快照關(guān)聯(lián)的最晚創(chuàng)建的快照,根據(jù)所述最晚創(chuàng)建的快照的COW映射,從快照源卷讀取對(duì)應(yīng)的待讀數(shù)據(jù),包括:在所述待讀快照的照鏈表中查找與所述待讀快照相鄰的創(chuàng)建時(shí)間晚的快照;判斷查找出的快照是否是最晚創(chuàng)建的快照;如果是,根據(jù)最晚創(chuàng)建的快照的COW映射,從快照源卷讀取對(duì)應(yīng)的待讀數(shù)據(jù);如果否,遍歷所述待讀快照的依賴快照,查找與所述待讀快照關(guān)聯(lián)的最晚創(chuàng)建的快照。
[0013]進(jìn)一步地,所述方法還包括:當(dāng)需要進(jìn)行刪除快照操作時(shí),將待刪除快照在所述快照鏈表中的snap_ID設(shè)置為無效,并將所述snap_ID添加到釋放鏈表中,刪除所述待刪除快照。
[0014]進(jìn)一步地,所述刪除所述待刪除快照,包括:判斷所述待刪除快照是否是最早建立的快照;如果是,刪除所述待刪除快照;如果否,將所述待刪除快照的數(shù)據(jù)寫入與所述待刪除快照相鄰的創(chuàng)建時(shí)間早的快照中,刪除所述待刪除快照。
[0015]一種增量快照裝置,包括:寫操作處理模塊,用于當(dāng)需要對(duì)快照源卷進(jìn)行寫數(shù)據(jù)操作時(shí),根據(jù)待寫快照源卷的快照鏈表,查找到最晚創(chuàng)建的快照,確定所述最晚創(chuàng)建的快照在寫時(shí)拷貝COW卷中存有COW映射,將待寫數(shù)據(jù)寫入快照源卷對(duì)應(yīng)的扇區(qū)中;讀操作處理模塊,用于當(dāng)需要對(duì)快照進(jìn)行讀數(shù)據(jù)操作時(shí),判斷待讀快照在COW卷中是否有COW映射,如果有,根據(jù)所述待讀快照的COW映射,從COW卷讀取對(duì)應(yīng)的待讀數(shù)據(jù);如果沒有,根據(jù)所述待讀快照的快照鏈表,查找與所述待讀快照關(guān)聯(lián)的最晚創(chuàng)建的快照,根據(jù)所述最晚創(chuàng)建的快照的COW映射,從快照源卷讀取對(duì)應(yīng)的待讀數(shù)據(jù)。
[0016]進(jìn)一步地,還包括設(shè)置模塊,用于預(yù)先在所述COW卷中建立快照鏈表和對(duì)應(yīng)的例外哈希表,其中,在所述快照鏈表中,通過snap_ID表示快照之間的依賴關(guān)系,每個(gè)快照作為頭指針,指向所述快照的例外哈希表。
[0017]進(jìn)一步地,所述寫操作處理模塊,用于確定所述最晚創(chuàng)建的快照在寫時(shí)拷貝COW卷中存有COW映射,將待寫數(shù)據(jù)寫入快照源卷對(duì)應(yīng)的扇區(qū)中,具體為:所述寫操作處理模塊,具體用于根據(jù)快照源卷中待寫扇區(qū)的扇區(qū)號(hào)確定對(duì)應(yīng)的塊號(hào);判斷所述塊號(hào)對(duì)應(yīng)的塊數(shù)據(jù)在COW卷是否有COW映射;如果有,將所述待寫數(shù)據(jù)寫入快照源卷的待寫扇區(qū)中;如果沒有,將所述快照源卷中待寫扇區(qū)的數(shù)據(jù)拷貝到所述塊號(hào)對(duì)應(yīng)的塊中,建立待寫數(shù)據(jù)的cow映射,并將所述COW映射寫入COW卷,將所述待寫數(shù)據(jù)寫入快照源卷的待寫扇區(qū)中。
[0018]進(jìn)一步地,所述讀操作處理模塊,用于根據(jù)所述待讀快照的快照鏈表,查找與所述待讀快照關(guān)聯(lián)的最晚創(chuàng)建的快照,根據(jù)所述最晚創(chuàng)建的快照的COW映射,從快照源卷讀取對(duì)應(yīng)的待讀數(shù)據(jù),具體為:所述讀操作處理模塊,用于在所述待讀快照的照鏈表中查找與所述待讀快照相鄰的創(chuàng)建時(shí)間晚的快照;判斷查找出的快照是否是最晚創(chuàng)建的快照;如果是,根據(jù)最晚創(chuàng)建的快照的COW映射,從快照源卷讀取對(duì)應(yīng)的待讀數(shù)據(jù);如果否,遍歷所述待讀快照的依賴快照,查找與所述待讀快照關(guān)聯(lián)的最晚創(chuàng)建的快照。
[0019]進(jìn)一步地,還包括:刪除處理模塊,用于當(dāng)需要進(jìn)行刪除快照操作時(shí),將待刪除快照在所述快照鏈表中的snap_ID設(shè)置為無效,并將所述snap_ID添加到釋放鏈表中,刪除所述待刪除快照。
[0020]進(jìn)一步地,所述刪除處理模塊,用于刪除所述待刪除快照,具體為:所述刪除處理模塊,用于判斷所述待刪除快照是否是最早建立的快照;如果是,刪除所述待刪除快照;如果否,將所述待刪除快照的數(shù)據(jù)寫入與所述待刪除快照相鄰的創(chuàng)建時(shí)間早的快照中,刪除所述待刪除快照。
[0021]與現(xiàn)有技術(shù)相比,本發(fā)明包括:當(dāng)需要對(duì)快照源卷進(jìn)行寫數(shù)據(jù)操作時(shí),根據(jù)待寫快照源卷的快照鏈表,查找到最晚創(chuàng)建的快照,確定所述最晚創(chuàng)建的快照在寫時(shí)拷貝COW卷中存有COW映射,將待寫數(shù)據(jù)寫入快照源卷對(duì)應(yīng)的扇區(qū)中;當(dāng)需要對(duì)快照進(jìn)行讀數(shù)據(jù)操作時(shí),判斷待讀快照在COW卷中是否有COW映射,如果有,根據(jù)所述待讀快照的COW映射,從COff卷讀取對(duì)應(yīng)的待讀數(shù)據(jù);如果沒有,根據(jù)所述待讀快照的快照鏈表,查找與所述待讀快照關(guān)聯(lián)的最晚創(chuàng)建的快照,根據(jù)所述最晚創(chuàng)建的快照的COW映射,從快照源卷讀取對(duì)應(yīng)的待讀數(shù)據(jù)。本發(fā)明通過同一快照源卷的不同時(shí)間點(diǎn)創(chuàng)建的快照相關(guān)聯(lián),減少了存儲(chǔ)空間和存儲(chǔ)成本,降低了存儲(chǔ)管理復(fù)雜帶來的風(fēng)險(xiǎn),方便存儲(chǔ)管理。

【專利附圖】

【附圖說明】
[0022]圖1是本發(fā)明快照系統(tǒng)的框架結(jié)構(gòu)示意圖。
[0023]圖2是本發(fā)明增量快照的內(nèi)存結(jié)構(gòu)示意圖。
[0024]圖3是本發(fā)明增量快照方法的流程示意圖。
[0025]圖4是本發(fā)明對(duì)快照源卷進(jìn)行寫數(shù)據(jù)操作的流程示意圖。
[0026]圖5是本發(fā)明對(duì)快照進(jìn)行讀數(shù)據(jù)操作的流程示意圖。
[0027]圖6是本發(fā)明對(duì)快照進(jìn)行刪除操作的流程示意圖。
[0028]圖7是本發(fā)明增量快照裝置的結(jié)構(gòu)示意圖。

【具體實(shí)施方式】
[0029]下面結(jié)合附圖對(duì)本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)說明。通過足夠詳細(xì)的描述這些實(shí)施示例,使得本領(lǐng)域技術(shù)人員能夠?qū)嵺`本發(fā)明。在不脫離本發(fā)明的主旨和范圍的情況下,可以對(duì)實(shí)施做出邏輯的、實(shí)現(xiàn)的和其他的改變。
[0030]圖1是本發(fā)明快照系統(tǒng)的框架結(jié)構(gòu)示意圖,如圖1所示,快照數(shù)據(jù)存儲(chǔ)在云端,快照系統(tǒng)中存在多個(gè)快照關(guān)系,在一個(gè)快照關(guān)系里,物理上的磁盤卷組成包括:快照源卷、寫時(shí)拷貝(COW,Copy On Write)卷和快照,三者是相互獨(dú)立的,其中,
[0031]快照源卷,由用戶創(chuàng)建快照關(guān)系時(shí)設(shè)定,用于存放用戶寫盤時(shí)的數(shù)據(jù);
[0032]快照,是一個(gè)邏輯卷,用于存放需要保護(hù)的快照源卷的數(shù)據(jù),給用戶進(jìn)行訪問;
[0033]COff卷,用于記錄同一個(gè)快照源卷的多個(gè)快照?qǐng)?zhí)行COW操作時(shí)產(chǎn)生的例外,該例外是指快照源卷上的數(shù)據(jù)和快照上的數(shù)據(jù)之間的映射關(guān)系,COW卷的數(shù)據(jù)內(nèi)容是對(duì)快照源卷和快照共享的。
[0034]一個(gè)快照源卷可以對(duì)應(yīng)多個(gè)快照,每一個(gè)快照源卷對(duì)應(yīng)一個(gè)COW卷,快照的讀寫操作會(huì)在快照源卷和COW卷上共同完成。
[0035]圖2是本發(fā)明增量快照的內(nèi)存結(jié)構(gòu)示意圖,如圖2所示,增量快照相對(duì)傳統(tǒng)快照,增加了不同時(shí)間點(diǎn)快照狀態(tài)的聯(lián)系,增量快照之間的關(guān)系通過快照鏈表表示。
[0036]具體地,根據(jù)快照創(chuàng)建的時(shí)間點(diǎn),可以由早到晚組成快照鏈表,因?yàn)橐话銜?huì)對(duì)較晚的快照進(jìn)行操作,遍歷鏈表時(shí),從最晚的快照開始,這樣由早到晚排列使得遍歷鏈表很快可達(dá),當(dāng)然也可以其他的設(shè)定順序,對(duì)此不限制。
[0037]每個(gè)快照作為頭指針,指向該快照的例外哈希表??煺罩g通過snap_ID表示依賴關(guān)系,較早的快照snap_ID小,較早創(chuàng)建的快照依賴于較晚創(chuàng)建的快照。
[0038]圖3是本發(fā)明增量快照方法的流程示意圖,如圖3所示,具體可以包括:
[0039]步驟31,當(dāng)需要對(duì)快照源卷進(jìn)行寫數(shù)據(jù)操作時(shí),根據(jù)待寫快照源卷的快照鏈表,查找到最晚創(chuàng)建的快照,確定該最晚創(chuàng)建的快照在COW卷中存有COW映射,將待寫數(shù)據(jù)寫入快照源卷對(duì)應(yīng)的扇區(qū)中。
[0040]本步驟中對(duì)快照源卷進(jìn)行寫數(shù)據(jù)操作的具體流程可如圖4所示,包括:
[0041]步驟311,當(dāng)需要對(duì)快照源卷進(jìn)行寫數(shù)據(jù)操作時(shí),根據(jù)待寫快照源卷的快照鏈表,查找最晚創(chuàng)建的快照。
[0042]具體地,需要預(yù)先在COW卷中建立快照鏈表和對(duì)應(yīng)的例外哈希表,在快照鏈表中,通過snap_ID表示快照之間的依賴關(guān)系,在實(shí)施例中,按照快照創(chuàng)建時(shí)間由早到晚的順序排列,較早創(chuàng)建的快照snap_ID小,較早創(chuàng)建的快照依賴于較晚創(chuàng)建的快照。
[0043]因?yàn)樵隽靠煺罩休^早的快照依賴于較晚的快照,所以需要查找最晚創(chuàng)建的快照。在查找到最晚創(chuàng)建的快照后,可以將查找到的最晚創(chuàng)建的快照在快照鏈表中的snap_ID標(biāo)記為 snap_find0
[0044]步驟312,根據(jù)快照源卷中待寫扇區(qū)的扇區(qū)號(hào)確定對(duì)應(yīng)的塊(chunk)號(hào)。
[0045]具體地,在本實(shí)施例中,塊號(hào)=(扇區(qū)號(hào)X扇區(qū)大小)/塊大小。
[0046]步驟313,判斷該塊號(hào)對(duì)應(yīng)的塊數(shù)據(jù)在COW卷是否有COW映射,如果否,進(jìn)入步驟314 ;如果是,進(jìn)入步驟315。
[0047]具體地,在snap_find指向的例外哈希表中,查找該塊號(hào)是否有對(duì)應(yīng)的塊數(shù)據(jù),如果有,則表示該塊號(hào)對(duì)應(yīng)的塊數(shù)據(jù)在COW卷有COW映射,如果沒有,則該塊號(hào)對(duì)應(yīng)的塊數(shù)據(jù)沒有在COW卷有COW映射。
[0048]步驟314,將快照源卷中待寫扇區(qū)的數(shù)據(jù)拷貝到該塊號(hào)對(duì)應(yīng)的塊中,建立待寫數(shù)據(jù)的COW映射,并將該COW映射寫入COW卷,然后進(jìn)入315。
[0049]步驟315,將待寫數(shù)據(jù)寫入快照源卷的待寫扇區(qū)中。
[0050]步驟32,當(dāng)需要對(duì)快照進(jìn)行讀數(shù)據(jù)操作時(shí),判斷待讀快照在COW卷中是否有COW映射,如果是,根據(jù)待讀快照的COW映射,從COW卷讀取對(duì)應(yīng)的待讀數(shù)據(jù);如果否,根據(jù)待讀快照的快照鏈表,查找與該待讀快照關(guān)聯(lián)的最晚創(chuàng)建的快照,根據(jù)最晚創(chuàng)建的快照的COW映射,從快照源卷讀取對(duì)應(yīng)的待讀數(shù)據(jù)。
[0051]本步驟中對(duì)快照進(jìn)行讀數(shù)據(jù)操作的具體流程可如圖5所示,包括:
[0052]步驟321,當(dāng)需要對(duì)快照進(jìn)行讀數(shù)據(jù)操作時(shí),根據(jù)快照中待讀扇區(qū)的扇區(qū)號(hào)確定對(duì)應(yīng)的塊號(hào)。
[0053]步驟322,判斷該塊號(hào)對(duì)應(yīng)的塊數(shù)據(jù)在COW卷是否有COW映射,如果是,進(jìn)入步驟323 ;如果否,進(jìn)入步驟324。
[0054]具體地,在待讀快照的例外哈希表中,查找該塊號(hào)是否有對(duì)應(yīng)的塊數(shù)據(jù),如果有,則表示該塊號(hào)對(duì)應(yīng)的塊數(shù)據(jù)在COW卷有COW映射,如果沒有,則該塊號(hào)對(duì)應(yīng)的塊數(shù)據(jù)沒有在COW卷有COW映射。
[0055]步驟323,根據(jù)待讀快照的COW映射,從COW卷讀取對(duì)應(yīng)的待讀數(shù)據(jù)。
[0056]步驟324,在待讀快照的照鏈表中查找與該待讀快照相鄰的創(chuàng)建時(shí)間晚的快照。
[0057]步驟325,判斷查找出的快照是否是最晚創(chuàng)建的快照,如果是,進(jìn)入步驟326 ;如果否,返回步驟322,即遍歷該待讀快照的依賴快照,查找與所述待讀快照關(guān)聯(lián)的最晚創(chuàng)建的快照。
[0058]步驟326,根據(jù)最晚創(chuàng)建的快照的COW映射,從快照源卷讀取對(duì)應(yīng)的待讀數(shù)據(jù)。
[0059]步驟33,當(dāng)需要進(jìn)行刪除快照操作時(shí),將待刪除快照在快照鏈表中的snap_ID設(shè)置為無效,將該snap_ID添加到釋放鏈表中,刪除該待刪除快照。
[0060]本步驟中進(jìn)行刪除快照操作的具體流程可如圖6所示,包括:
[0061]步驟331,當(dāng)需要進(jìn)行刪除快照操作時(shí),將待刪除快照在快照鏈表中的snap_ID設(shè)置為無效,將該snap_ID添加到釋放鏈表中。
[0062]步驟332,判斷該待刪除快照是否是最早建立的快照,如果否,進(jìn)入步驟333 ;如果是,進(jìn)入步驟334。
[0063]步驟333,將該待刪除快照的數(shù)據(jù)寫入與該待刪除快照相鄰的創(chuàng)建時(shí)間早的快照中,然后進(jìn)入334。
[0064]步驟334,刪除該待刪除快照。
[0065]本發(fā)明通過同一快照源卷的不同時(shí)間點(diǎn)創(chuàng)建的快照相關(guān)聯(lián),當(dāng)需要對(duì)快照源卷進(jìn)行寫數(shù)據(jù)操作時(shí),根據(jù)待寫快照源卷的快照鏈表,查找到最晚創(chuàng)建的快照,確定該最晚創(chuàng)建的快照在COW卷中存有COW映射,將待寫數(shù)據(jù)寫入快照源卷對(duì)應(yīng)的扇區(qū)中;當(dāng)需要對(duì)快照進(jìn)行讀數(shù)據(jù)操作時(shí),判斷待讀快照在COW卷中是否有COW映射,如果是,根據(jù)待讀快照的COW映射,從COW卷讀取對(duì)應(yīng)的待讀數(shù)據(jù);如果否,根據(jù)待讀快照的快照鏈表,查找與該待讀快照關(guān)聯(lián)的最晚創(chuàng)建的快照,根據(jù)最晚創(chuàng)建的快照的COW映射,從快照源卷讀取對(duì)應(yīng)的待讀數(shù)據(jù)。如此,減少了存儲(chǔ)空間和存儲(chǔ)成本,降低了存儲(chǔ)管理復(fù)雜帶來的風(fēng)險(xiǎn),方便存儲(chǔ)管理。
[0066]圖6是本發(fā)明增量快照裝置的結(jié)構(gòu)示意圖,如圖6所示,具體可以包括:
[0067]設(shè)置模塊,用于預(yù)先在COW卷中建立快照鏈表和對(duì)應(yīng)的例外哈希表,在快照鏈表中,其中,在快照鏈表中,通過snap_ID表示快照之間的依賴關(guān)系,每個(gè)快照作為頭指針,指向所述快照的例外哈希表。
[0068]寫操作處理模塊,用于當(dāng)需要對(duì)快照源卷進(jìn)行寫數(shù)據(jù)操作時(shí),根據(jù)待寫快照源卷的快照鏈表,查找到最晚創(chuàng)建的快照,確定該最晚創(chuàng)建的快照在COW卷中存有COW映射,將待寫數(shù)據(jù)寫入快照源卷對(duì)應(yīng)的扇區(qū)中;
[0069]具體地,寫操作處理模塊,用于當(dāng)需要對(duì)快照源卷進(jìn)行寫數(shù)據(jù)操作時(shí),根據(jù)待寫快照源卷的快照鏈表,查找最晚創(chuàng)建的快照;根據(jù)快照源卷中待寫扇區(qū)的扇區(qū)號(hào)確定對(duì)應(yīng)的塊號(hào);判斷該塊號(hào)對(duì)應(yīng)的塊數(shù)據(jù)在COW卷是否有COW映射;如果是,將待寫數(shù)據(jù)寫入快照源卷的待寫扇區(qū)中;如果否,將快照源卷中待寫扇區(qū)的數(shù)據(jù)拷貝到該塊號(hào)對(duì)應(yīng)的塊中,建立待寫數(shù)據(jù)的COW映射,并將該COW映射寫入COW卷,將待寫數(shù)據(jù)寫入快照源卷的待寫扇區(qū)中。
[0070]讀操作處理模塊,用于當(dāng)需要對(duì)快照進(jìn)行讀數(shù)據(jù)操作時(shí),判斷待讀快照在COW卷中是否有COW映射,如果是,根據(jù)待讀快照的COW映射,從COW卷讀取對(duì)應(yīng)的待讀數(shù)據(jù);如果否,根據(jù)待讀快照的快照鏈表,查找與該待讀快照關(guān)聯(lián)的最晚創(chuàng)建的快照,根據(jù)最晚創(chuàng)建的快照的COW映射,從快照源卷讀取對(duì)應(yīng)的待讀數(shù)據(jù);
[0071]具體地,讀操作處理模塊,用于當(dāng)需要對(duì)快照進(jìn)行讀數(shù)據(jù)操作時(shí),根據(jù)快照中待讀扇區(qū)的扇區(qū)號(hào)確定對(duì)應(yīng)的塊號(hào);判斷該塊號(hào)對(duì)應(yīng)的塊數(shù)據(jù)在COW卷是否有COW映射,如果是,根據(jù)待讀快照的COW映射,從COW卷讀取對(duì)應(yīng)的待讀數(shù)據(jù),如果否,在待讀快照的照鏈表中查找與該待讀快照相鄰的創(chuàng)建時(shí)間晚的快照;判斷查找出的快照是否是最晚創(chuàng)建的快照,如果是,根據(jù)最晚創(chuàng)建的快照的COW映射,從快照源卷讀取對(duì)應(yīng)的待讀數(shù)據(jù)。
[0072]刪除處理模塊,用于當(dāng)需要進(jìn)行刪除快照操作時(shí),將待刪除快照在快照鏈表中的snap_ID設(shè)置為無效,將該snap_ID添加到釋放鏈表中,刪除該待刪除快照。
[0073]具體地,刪除處理模塊,用于當(dāng)需要進(jìn)行刪除快照操作時(shí),將待刪除快照在快照鏈表中的snap_ID設(shè)置為無效,將該snap_ID添加到釋放鏈表中;判斷該待刪除快照是否是最早建立的快照,如果是,刪除該待刪除快照,如果否,將該待刪除快照的數(shù)據(jù)寫入與該待刪除快照相鄰的創(chuàng)建時(shí)間早的快照中,刪除該待刪除快照。
[0074]增量快照裝置是和的增量快照方法對(duì)應(yīng)的,因此,增量快照裝置具體的實(shí)現(xiàn)細(xì)節(jié)可參看的增量快照方法,在此不贅述。
[0075]本發(fā)明通過同一快照源卷的不同時(shí)間點(diǎn)創(chuàng)建的快照相關(guān)聯(lián),減少了存儲(chǔ)空間和存儲(chǔ)成本,降低了存儲(chǔ)管理復(fù)雜帶來的風(fēng)險(xiǎn),方便存儲(chǔ)管理。
[0076]應(yīng)當(dāng)理解,雖然本說明書根據(jù)實(shí)施方式加以描述,但并非每個(gè)實(shí)施方式僅包含一個(gè)獨(dú)立的技術(shù)方案,說明書的這種敘述方式僅僅是為清楚起見,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)將說明書作為一個(gè)整體,各實(shí)施方式中的技術(shù)方案也可以經(jīng)適當(dāng)組合,形成本領(lǐng)域技術(shù)人員可以理解的其他實(shí)施方式。
【權(quán)利要求】
1.一種增量快照方法,其特征在于,包括: 當(dāng)需要對(duì)快照源卷進(jìn)行寫數(shù)據(jù)操作時(shí),根據(jù)待寫快照源卷的快照鏈表,查找到最晚創(chuàng)建的快照,確定所述最晚創(chuàng)建的快照在寫時(shí)拷貝COW卷中存有COW映射,將待寫數(shù)據(jù)寫入快照源卷對(duì)應(yīng)的扇區(qū)中; 當(dāng)需要對(duì)快照進(jìn)行讀數(shù)據(jù)操作時(shí),判斷待讀快照在COW卷中是否有COW映射,如果有,根據(jù)所述待讀快照的COW映射,從COW卷讀取對(duì)應(yīng)的待讀數(shù)據(jù);如果沒有,根據(jù)所述待讀快照的快照鏈表,查找與所述待讀快照關(guān)聯(lián)的最晚創(chuàng)建的快照,根據(jù)所述最晚創(chuàng)建的快照的COff映射,從快照源卷讀取對(duì)應(yīng)的待讀數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的增量快照方法,其特征在于,所述根據(jù)待寫快照源卷的快照鏈表,查找最晚創(chuàng)建的快照之前,還包括: 預(yù)先在所述COW卷中建立快照鏈表和對(duì)應(yīng)的例外哈希表,其中,在所述快照鏈表中,通過snap_ID表示快照之間的依賴關(guān)系,每個(gè)快照作為頭指針,指向所述快照的例外哈希表。
3.根據(jù)權(quán)利要求1或2所述的增量快照方法,其特征在于,所述確定所述最晚創(chuàng)建的快照在寫時(shí)拷貝COW卷中存有COW映射,將待寫數(shù)據(jù)寫入快照源卷對(duì)應(yīng)的扇區(qū)中,包括: 根據(jù)所述快照源卷中待寫扇區(qū)的扇區(qū)號(hào)確定對(duì)應(yīng)的塊號(hào); 判斷所述塊號(hào)對(duì)應(yīng)的塊數(shù)據(jù)在COW卷是否有COW映射; 如果有,將所述待寫數(shù)據(jù)寫入快照源卷的待寫扇區(qū)中; 如果沒有,將所述快照源卷中待寫扇區(qū)的數(shù)據(jù)拷貝到所述塊號(hào)對(duì)應(yīng)的塊中,建立待寫數(shù)據(jù)的COW映射,并將所述COW映射寫入COW卷,將所述待寫數(shù)據(jù)寫入快照源卷的待寫扇區(qū)中。
4.根據(jù)權(quán)利要求3所述的增量快照方法,其特征在于,所述判斷所述塊號(hào)對(duì)應(yīng)的塊數(shù)據(jù)在COW卷是否有COW映射,包括: 在所述最晚創(chuàng)建的快照指向的例外哈希表中,查找所述塊號(hào)是否有對(duì)應(yīng)的塊數(shù)據(jù),如果有,則表示所述塊號(hào)對(duì)應(yīng)的塊數(shù)據(jù)在COW卷有COW映射,如果沒有,則所述塊號(hào)對(duì)應(yīng)的塊數(shù)據(jù)沒有在COW卷有COW映射。
5.根據(jù)權(quán)利要求1所述的增量快照方法,其特征在于,所述判斷待讀快照在COW卷中是否有COW映射,包括: 根據(jù)快照中待讀扇區(qū)的扇區(qū)號(hào)確定對(duì)應(yīng)的塊號(hào),在待讀快照的例外哈希表中,查找所述塊號(hào)是否有對(duì)應(yīng)的塊數(shù)據(jù),如果有,則表示所述塊號(hào)對(duì)應(yīng)的塊數(shù)據(jù)在COW卷有COW映射,如果沒有,則所述塊號(hào)對(duì)應(yīng)的塊數(shù)據(jù)沒有在COW卷有COW映射。
6.根據(jù)權(quán)利要求1或5所述的增量快照方法,其特征在于,所述根據(jù)所述待讀快照的快照鏈表,查找與所述待讀快照關(guān)聯(lián)的最晚創(chuàng)建的快照,根據(jù)所述最晚創(chuàng)建的快照的COW映射,從快照源卷讀取對(duì)應(yīng)的待讀數(shù)據(jù),包括: 在所述待讀快照的照鏈表中查找與所述待讀快照相鄰的創(chuàng)建時(shí)間晚的快照; 判斷查找出的快照是否是最晚創(chuàng)建的快照; 如果是,根據(jù)最晚創(chuàng)建的快照的COW映射,從快照源卷讀取對(duì)應(yīng)的待讀數(shù)據(jù); 如果否,遍歷所述待讀快照的依賴快照,查找與所述待讀快照關(guān)聯(lián)的最晚創(chuàng)建的快照。
7.根據(jù)權(quán)利要求2所述的增量快照方法,其特征在于,所述方法還包括:當(dāng)需要進(jìn)行刪除快照操作時(shí),將待刪除快照在所述快照鏈表中的snap_ID設(shè)置為無效,并將所述snap_ID添加到釋放鏈表中,刪除所述待刪除快照。
8.根據(jù)權(quán)利要求7所述的增量快照方法,其特征在于,所述刪除所述待刪除快照,包括: 判斷所述待刪除快照是否是最早建立的快照; 如果是,刪除所述待刪除快照; 如果否,將所述待刪除快照的數(shù)據(jù)寫入與所述待刪除快照相鄰的創(chuàng)建時(shí)間早的快照中,刪除所述待刪除快照。
9.一種增量快照裝置,其特征在于,包括: 寫操作處理模塊,用于當(dāng)需要對(duì)快照源卷進(jìn)行寫數(shù)據(jù)操作時(shí),根據(jù)待寫快照源卷的快照鏈表,查找到最晚創(chuàng)建的快照,確定所述最晚創(chuàng)建的快照在寫時(shí)拷貝COW卷中存有COW映射,將待寫數(shù)據(jù)寫入快照源卷對(duì)應(yīng)的扇區(qū)中; 讀操作處理模塊,用于當(dāng)需要對(duì)快照進(jìn)行讀數(shù)據(jù)操作時(shí),判斷待讀快照在COW卷中是否有COW映射,如果有,根據(jù)所述待讀快照的COW映射,從COW卷讀取對(duì)應(yīng)的待讀數(shù)據(jù);如果沒有,根據(jù)所述待讀快照的快照鏈表,查找與所述待讀快照關(guān)聯(lián)的最晚創(chuàng)建的快照,根據(jù)所述最晚創(chuàng)建的快照的COW映射,從快照源卷讀取對(duì)應(yīng)的待讀數(shù)據(jù)。
10.根據(jù)權(quán)利要求8所述的增量快照裝置,其特征在于,還包括設(shè)置模塊,用于預(yù)先在所述COW卷中建立快照鏈表和對(duì)應(yīng)的例外哈希表,其中,在所述快照鏈表中,通過snap_ID表示快照之間的依賴關(guān)系,每個(gè)快照作為頭指針,指向所述快照的例外哈希表。
11.根據(jù)權(quán)利要求8或9所述的增量快照裝置,其特征在于,所述寫操作處理模塊,用于確定所述最晚創(chuàng)建的快照在寫時(shí)拷貝COW卷中存有COW映射,將待寫數(shù)據(jù)寫入快照源卷對(duì)應(yīng)的扇區(qū)中,具體為: 所述寫操作處理模塊,具體用于根據(jù)快照源卷中待寫扇區(qū)的扇區(qū)號(hào)確定對(duì)應(yīng)的塊號(hào);判斷所述塊號(hào)對(duì)應(yīng)的塊數(shù)據(jù)在COW卷是否有COW映射;如果有,將所述待寫數(shù)據(jù)寫入快照源卷的待寫扇區(qū)中;如果沒有,將所述快照源卷中待寫扇區(qū)的數(shù)據(jù)拷貝到所述塊號(hào)對(duì)應(yīng)的塊中,建立待寫數(shù)據(jù)的COW映射,并將所述COW映射寫入COW卷,將所述待寫數(shù)據(jù)寫入快照源卷的待與扇區(qū)中。
12.根據(jù)權(quán)利要求9所述的增量快照裝置,其特征在于,所述讀操作處理模塊,用于根據(jù)所述待讀快照的快照鏈表,查找與所述待讀快照關(guān)聯(lián)的最晚創(chuàng)建的快照,根據(jù)所述最晚創(chuàng)建的快照的COW映射,從快照源卷讀取對(duì)應(yīng)的待讀數(shù)據(jù),具體為: 所述讀操作處理模塊,用于在所述待讀快照的照鏈表中查找與所述待讀快照相鄰的創(chuàng)建時(shí)間晚的快照;判斷查找出的快照是否是最晚創(chuàng)建的快照;如果是,根據(jù)最晚創(chuàng)建的快照的COW映射,從快照源卷讀取對(duì)應(yīng)的待讀數(shù)據(jù);如果否,遍歷所述待讀快照的依賴快照,查找與所述待讀快照關(guān)聯(lián)的最晚創(chuàng)建的快照。
13.根據(jù)權(quán)利要求9所述的增量快照裝置,其特征在于,還包括:刪除處理模塊,用于當(dāng)需要進(jìn)行刪除快照操作時(shí),將待刪除快照在所述快照鏈表中的snap_ID設(shè)置為無效,并將所述snap_ID添加到釋放鏈表中,刪除所述待刪除快照。
14.根據(jù)權(quán)利要求13所述的增量快照裝置,其特征在于,所述刪除處理模塊,用于刪除所述待刪除快照,具體為: 所述刪除處理模塊,用于判斷所述待刪除快照是否是最早建立的快照;如果是,刪除所述待刪除快照;如果否,將所述待刪除快照的數(shù)據(jù)寫入與所述待刪除快照相鄰的創(chuàng)建時(shí)間早的快照中,刪除所述待刪除快照。
【文檔編號(hào)】G06F3/06GK104360914SQ201410568524
【公開日】2015年2月18日 申請(qǐng)日期:2014年10月22日 優(yōu)先權(quán)日:2014年10月22日
【發(fā)明者】王佳, 王倩 申請(qǐng)人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1