專利名稱:一種快照系統(tǒng)及其使用方法
一種快照系統(tǒng)及其^_用方法
技術(shù)領(lǐng)城
本發(fā)明涉及數(shù)據(jù)保護(hù)領(lǐng)域,是一種快照系統(tǒng)及其使用方法。
背景技術(shù):
快照是對(duì)源數(shù)據(jù)生成的一個(gè)靜態(tài)集,它在數(shù)據(jù)備份、數(shù)據(jù)挖掘等領(lǐng)域
得到了廣泛應(yīng)用。快照按照不同的實(shí)現(xiàn)技術(shù)可以分為分離鏡像(Split Mirror )、寫時(shí)拷貝(COW: Copy On Write)、寫時(shí)重定向(ROW: Redirect on Write)和隨處寫(WA: Write Anywhere)。目前后三類4支術(shù)是主流的快照技 術(shù),其中ROW和WA^支術(shù)基本一致,只是在^t據(jù)的組織上不同。ROW采 用了一塊與數(shù)據(jù)空間隔離的,用于存放快照數(shù)據(jù)的快照空間,當(dāng)源數(shù)據(jù)更 新時(shí),新數(shù)據(jù)寫入到快照空間。WA沒有預(yù)留快照空間,快照數(shù)據(jù)與源數(shù) 據(jù)共用同一塊物理空間,混合存放。不同的快照實(shí)現(xiàn)技術(shù),在不同的應(yīng)用 負(fù)載下,性能差異很大。例如對(duì)于以寫操作為主的應(yīng)用,如聯(lián)機(jī)事務(wù)處 理(OLTP)應(yīng)用,ROW與WA快照技術(shù)由于其較好的寫性能會(huì)取得比 COW快照技術(shù)更好的性能。而對(duì)于以讀4喿作為主的應(yīng)用,如決策支持系 統(tǒng)(DSS)應(yīng)用,COW快照技術(shù)具有更好的性能,這是因?yàn)镃OW快照技 術(shù)不打亂源數(shù)據(jù)的順序性,在讀源數(shù)據(jù)時(shí)性能不受快照的影響,而ROW 和WA快照技術(shù)會(huì)造成源數(shù)據(jù)分散,打亂源數(shù)據(jù)的順序性,在讀操作時(shí)可 能會(huì)面臨大量的讀合并操作,導(dǎo)致性能較低。
現(xiàn)有的快照產(chǎn)品與原型系統(tǒng)是針對(duì)特定應(yīng)用而設(shè)計(jì),在某一個(gè)特定的 快照產(chǎn)品或原型系統(tǒng)中通常采用單一技術(shù)實(shí)現(xiàn),例如,IBM ESS FlashCopy 只采用了 COW技術(shù),而多倫多大學(xué)的Clotho系統(tǒng)則采用了 WA技術(shù)。這 些系統(tǒng)針對(duì)特定應(yīng)用具有良好的工作性能。但隨著服務(wù)整合和虛擬存儲(chǔ)系 統(tǒng)的廣泛應(yīng)用,存儲(chǔ)的應(yīng)用模式發(fā)生顯著變化。多種不同類型的應(yīng)用并發(fā) 運(yùn)行在同 一個(gè)存儲(chǔ)平臺(tái)上,現(xiàn)有技術(shù)中 一個(gè)快照系統(tǒng)只采用 一種快照實(shí)現(xiàn) 技術(shù)很可能會(huì)帶來快照操作實(shí)現(xiàn)效率低、系統(tǒng)性能不佳的缺陷。
發(fā)明內(nèi)容
因此,本發(fā)明的目的是克服現(xiàn)有的快照產(chǎn)品所釆用的快照技術(shù)單一,
不具有通用性的缺陷,從而提供一種能夠同時(shí)支持COW和ROW兩種快 照技術(shù)的快照系統(tǒng)。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種快照系統(tǒng),包括設(shè)備管理工具 集、快照實(shí)現(xiàn)模塊以及物理設(shè)備;其特征在于,所述的快照實(shí)現(xiàn)模塊包括 用于數(shù)據(jù)查找和時(shí)間點(diǎn)管理的快照機(jī)制層,以及用于對(duì)所述的物理設(shè)備進(jìn) 行分配和回收管理的物理資源管理層,所述的快照機(jī)制層中包含有至少一 個(gè)快照組,不同快照組可釆用不同的快照技術(shù);所述的物理資源管理層中 包含有與所述的快照組對(duì)應(yīng)的元數(shù)據(jù)設(shè)備與數(shù)據(jù)設(shè)備。
上述技術(shù)方案中,在所述的快照組中,所采用的快照技術(shù)為寫時(shí)拷貝 技術(shù)或?qū)憰r(shí)重定向技術(shù)。
上述技術(shù)方案中,所述元數(shù)據(jù)設(shè)備中存放元數(shù)據(jù),所述的元數(shù)據(jù)用于 指示數(shù)據(jù)的增量以及所述快照組的快照版本中的數(shù)據(jù)在所述數(shù)據(jù)設(shè)備上
的存放位置;所述元數(shù)據(jù)采用位圖或映射表的形式進(jìn)行記錄。
上述技術(shù)方案中,所述位圖采用多級(jí)的結(jié)構(gòu)劃分,上一級(jí)位圖某一位 的值為1用于表示對(duì)應(yīng)的下一級(jí)位圖中存在值為1的位,若為0,則表示 對(duì)應(yīng)的下一級(jí)位圖中不存在值為1的位;在最低級(jí)的位圖上,某一位的值 為1用于表示對(duì)應(yīng)數(shù)據(jù)塊上的數(shù)據(jù)發(fā)生變化,若為0,則對(duì)應(yīng)數(shù)據(jù)塊上的 數(shù)據(jù)不發(fā)生變化。
上述技術(shù)方案中,所有的快照組采用相同的內(nèi)存結(jié)構(gòu),具有四個(gè)指針 包括用于對(duì)應(yīng)讀操作時(shí)需要訪問的物理設(shè)備rO, rl指針,以及用于對(duì)應(yīng)寫 操作時(shí)需要訪問的物理設(shè)備的w0、 wl指針。
上述技術(shù)方案中,所述的快照組中,在一定的時(shí)間點(diǎn)有相應(yīng)的快照設(shè) 備,各個(gè)時(shí)間點(diǎn)的快照設(shè)備間采用鏈?zhǔn)浇Y(jié)構(gòu)進(jìn)行組織。
本發(fā)明還提供了 一種對(duì)所述的快照系統(tǒng)的使用方法,包括以下步驟
步驟l)、用戶通過所述的設(shè)備管理工具集發(fā)布創(chuàng)建快照的命令,并在 所述的命令中決定選擇何種快照技術(shù)創(chuàng)建快照;
步驟2)、所述的快照實(shí)現(xiàn)模塊中的快照機(jī)制層根據(jù)步驟1)中所選擇 的快照技術(shù)創(chuàng)建快照;
步驟3)、根據(jù)用戶的需求,對(duì)快照做相關(guān)的操作,所述的操作包括對(duì) 快照的讀、寫以及刪除。
上述技術(shù)方案中,在所迷的步驟2)中,所述的創(chuàng)建快照還包括下列
步驟
步驟2-1-1)、創(chuàng)建一個(gè)源設(shè)備,將所述源設(shè)備的所有快照關(guān)系指針都 指向源設(shè)備的物理設(shè)備;
步驟2-1-2)、在后續(xù)的時(shí)間點(diǎn)創(chuàng)建快照,并在快照集鏈表中插入所創(chuàng) 建的快照。
上述技術(shù)方案中,若創(chuàng)建快照時(shí)采用寫時(shí)拷貝技術(shù),則所述的在快照 集鏈表中插入所創(chuàng)建的快照時(shí),將所述源設(shè)備的wO指針指向新創(chuàng)建的快 照設(shè)備,將新創(chuàng)建的快照設(shè)備的rO指針指向所述的源設(shè)備,若所述快照集 鏈表中還存在時(shí)間點(diǎn)更早的快照設(shè)備,則將與新創(chuàng)建的快照設(shè)備相比時(shí)間 點(diǎn)更早且時(shí)間最接近的快照設(shè)備的r0指針指向新創(chuàng)建的快照設(shè)備。
上述技術(shù)方案中,若創(chuàng)建快照時(shí)采用寫時(shí)重定向技術(shù),則所述的在快 照集鏈表中插入所創(chuàng)建的快照時(shí),將所述源設(shè)備的r0指針指向新創(chuàng)建的快 照設(shè)備,將所述新創(chuàng)建的快照設(shè)備的r0指針指向時(shí)間點(diǎn)更早且時(shí)間最接近 的快照設(shè)備;若所述快照集鏈表中不存在時(shí)間點(diǎn)更早的快照設(shè)備,則所述 新創(chuàng)建的快照設(shè)備的r0指針指向零設(shè)備。
上述技術(shù)方案中,在所述的步驟3)中,所述的讀取快照中的數(shù)據(jù)包 括對(duì)源設(shè)備中數(shù)據(jù)的讀取和對(duì)'決照設(shè)備中數(shù)據(jù)的讀取。
上述技術(shù)方案中,所述的對(duì)源設(shè)備中數(shù)據(jù)的讀取還包括以下步驟
步驟3-1-1 )、根據(jù)所要讀取數(shù)據(jù)的地址在所述位圖中查詢相應(yīng)的位, 若該位的值為1,則直接在本地讀取,并返回所讀取的數(shù)據(jù)值,若該位的 值為0,則執(zhí)行下一步;
步驟3-1-2)、判斷源設(shè)備中的數(shù)據(jù)是否存在相應(yīng)的快照,若不存在快 照,則返回全零數(shù)據(jù),若存在快照,則根據(jù)快照集鏈表將讀數(shù)據(jù)請(qǐng)求進(jìn)行 轉(zhuǎn)發(fā),通過對(duì)快照數(shù)據(jù)的讀取完成所述的數(shù)據(jù)讀取過程。
上述技術(shù)方案中,所述的判斷源設(shè)備中的數(shù)據(jù)是否存在相應(yīng)的快照 時(shí),若所述源設(shè)備中的rO指針指向的是物理設(shè)備,則不存在快照;若所述 源設(shè)備中的rO指針指向的是邏輯設(shè)備,則存在快照。
上述技術(shù)方案中,當(dāng)所述快照采用寫時(shí)拷貝技術(shù)創(chuàng)建時(shí),步驟3)還 包括以下步驟,用于對(duì)該快照的數(shù)據(jù)讀取
步驟3-2-1 )、根據(jù)位圖的值確定數(shù)據(jù)存放的物理設(shè)備,在確定過程中, 從快照集鏈表的尾部向前遍歷,如果在某一快照Sk上的位圖值為1,則在
其前一快照Sw的數(shù)據(jù)設(shè)備上讀取數(shù)據(jù),若位圖值為0,則將讀數(shù)據(jù)請(qǐng)求
沿著快照集鏈表轉(zhuǎn)發(fā)到前一快照上,直至找到位圖值為1的快照;
步驟3-2-2)、若在快照集鏈表的快照中沒有找到位圖值為l的快照, 讀數(shù)據(jù)請(qǐng)求到達(dá)源設(shè)備,若源設(shè)備的位圖值為l時(shí),在與源設(shè)備相鄰快照 的數(shù)據(jù)設(shè)備上讀取數(shù)據(jù),否則在源的數(shù)據(jù)設(shè)備上讀取數(shù)據(jù);
當(dāng)所述快照采用寫時(shí)重定向技術(shù)創(chuàng)建時(shí),步驟3)還包括以下步驟, 用于對(duì)該快照的數(shù)據(jù)讀取
首先根據(jù)位圖的值確定數(shù)據(jù)存放的物理設(shè)備,然后從數(shù)據(jù)所存放的物 理設(shè)備上讀取數(shù)據(jù);其中,在確定數(shù)據(jù)存放的物理設(shè)備時(shí),從快照集鏈表 的尾部向前遍歷,若在某一快照Sk上的位圖值為1,則在本地的數(shù)據(jù)設(shè)備 上讀取,并返回相應(yīng)的數(shù)據(jù),若位圖值為0,則判斷當(dāng)前快照是否為快照 集鏈表中最老的快照,即是否是快照鏈表尾端的快照,若是,則返回全O, 否則將讀數(shù)據(jù)請(qǐng)求轉(zhuǎn)發(fā)到快照鏈表中的前一快照中。
上述技術(shù)方案中,如果在快照中完成寫數(shù)據(jù)操作,在所述的步驟3) 中還包括以下步驟
首先,根據(jù)位圖的值確定數(shù)據(jù)存放的物理設(shè)備;然后在所確定的物理 設(shè)備中寫入數(shù)據(jù)。
上述技術(shù)方案中,當(dāng)所述快照采用寫時(shí)拷貝技術(shù)創(chuàng)建時(shí),步驟3)還 包括以下步驟,用于對(duì)快照數(shù)據(jù)的寫
對(duì)位圖值進(jìn)行判斷,若位圖值為1,則直接寫入源的物理設(shè)備中;如 果位圖值為0,則在完成寫時(shí)拷貝操作后再寫入源的物理設(shè)備中。
上述技術(shù)方案中,當(dāng)所述快照釆用寫時(shí)重定向技術(shù)創(chuàng)建時(shí),步驟3) 還包括以下步驟,用于對(duì)快照數(shù)據(jù)的寫
對(duì)位圖值進(jìn)行判斷,如果位圖值為1,則直接寫入源的物理設(shè)備中; 如果位圖值為0,進(jìn)行數(shù)據(jù)塊的數(shù)據(jù)合并后再寫入源的物理設(shè)備中。
上述技術(shù)方案中,在所述的步驟3)中,當(dāng)所述快照采用寫時(shí)拷貝技 術(shù)時(shí),在刪除快照的過程中,只能刪除時(shí)間點(diǎn)最早的快照。
上述技術(shù)方案中,在所述的步驟3)中,當(dāng)所述快照采用寫時(shí)重定向 技術(shù)時(shí),在對(duì)所要?jiǎng)h除的快照做刪除操作前,對(duì)刪除快照所要觸發(fā)的數(shù)據(jù) 進(jìn)行合并。
上述技術(shù)方案中,所述的數(shù)據(jù)合并包括以下步驟
步驟3-3-1 )、依次讀取快照設(shè)備S2中每個(gè)數(shù)據(jù)塊在位圖中的對(duì)應(yīng)位;
其中,S2是要?jiǎng)h除的快照設(shè)備S1的相鄰快照設(shè)備;
步驟3-3-2 )、將快照設(shè)備S2中的位圖位與快照設(shè)備S1的相應(yīng)位圖位 進(jìn)行組合,可得到四種情況 S2 Sl
a、 0 0
b、 0 1
c、 1 0
d、 1 1
當(dāng)S2的位圖位為1時(shí),表示有新數(shù)據(jù)寫過,因此在數(shù)據(jù)合并時(shí)只需 要將S2的位圖位為1的數(shù)據(jù)塊拷貝回Sl的數(shù)據(jù)設(shè)備上;
步驟3-3-3)、執(zhí)行數(shù)據(jù)回移搡作,將S2的數(shù)據(jù)設(shè)備中的數(shù)據(jù)拷貝到 Sl的數(shù)據(jù)設(shè)備上;
步驟3-3-4)、數(shù)據(jù)回移結(jié)束后,置S2的位圖相應(yīng)位為0;
步驟3-3-5)、如果所有數(shù)據(jù)塊處理完,結(jié)束數(shù)據(jù)合并操作,否則重新 執(zhí)行步驟3-3-1),繼續(xù)處理下一個(gè)數(shù)據(jù)塊。
本發(fā)明的優(yōu)點(diǎn)在于
1 、本發(fā)明的通用快照系統(tǒng)可同時(shí)支持COW和ROW兩種快照技術(shù), 用戶可根據(jù)實(shí)際需求,靈活地進(jìn)行選擇,為不同應(yīng)用提供最佳支持。
2、 本發(fā)明在支持COW和ROW只讀快照設(shè)備的同時(shí),提供了可寫快 照支持,拓展了快照技術(shù)在服務(wù)部署、電子教室等新領(lǐng)域的應(yīng)用。
3、 本發(fā)明采用了鏈?zhǔn)皆O(shè)備組織結(jié)構(gòu),某一個(gè)具體時(shí)間點(diǎn)上,數(shù)據(jù)只 需要在數(shù)據(jù)設(shè)備上保存一份,不隨快照個(gè)數(shù)增加而增加,而在星型結(jié)構(gòu)的 COW方式中,存儲(chǔ)資源的使用隨著快照設(shè)備個(gè)數(shù)的增加而線性增加,因 此本發(fā)明可以有效節(jié)約存儲(chǔ)空間
4、 本發(fā)明采用了鏈?zhǔn)皆O(shè)備組織結(jié)構(gòu)和元數(shù)據(jù)設(shè)備與數(shù)據(jù)設(shè)備分離結(jié) 構(gòu),在性能和容量上具有很好的擴(kuò)展性。
5、 本發(fā)明采用獨(dú)立設(shè)備存放元數(shù)據(jù),不在數(shù)據(jù)設(shè)備上預(yù)留空間,避 免了預(yù)留空間過大或過小的缺陷,系統(tǒng)規(guī)模不受元數(shù)據(jù)預(yù)留區(qū)容量的限 制。
6、 本發(fā)明采用獨(dú)立設(shè)備存放元數(shù)據(jù),使得對(duì)元數(shù)據(jù)的操作不會(huì)造成 數(shù)據(jù)設(shè)備訪問的磁頭抖動(dòng),不影響用戶數(shù)據(jù)訪問的性能。
7、 本發(fā)明在存儲(chǔ)元數(shù)據(jù)時(shí)采用了三級(jí)位圖內(nèi)存結(jié)構(gòu),提供第三級(jí)位
圖的換入換出操作,在保持元數(shù)據(jù)操作高效的同時(shí)占用較少的內(nèi)存資源。
8、本發(fā)明采用了鏈?zhǔn)浇M織,讀寫數(shù)據(jù)時(shí)只涉及到兩個(gè)數(shù)據(jù)設(shè)備,性 能不隨快照數(shù)量的增加而降低。
以下,結(jié)合附圖來詳細(xì)說明本發(fā)明的實(shí)施例,其中 圖1為本發(fā)明的快照系統(tǒng)的組織結(jié)構(gòu)圖; 圖2為本發(fā)明的快照系統(tǒng)的邏輯結(jié)構(gòu)圖3為本發(fā)明的快照系統(tǒng)中采用COW技術(shù)的快照設(shè)備關(guān)系圖; 圖4為本發(fā)明的快照系統(tǒng)中采用ROW技術(shù)的快照設(shè)備關(guān)系圖; 圖5為本發(fā)明的快照系統(tǒng)中所釆用的三級(jí)結(jié)構(gòu)位圖的示意圖; 圖6為本發(fā)明的快照系統(tǒng)中釆用COW技術(shù)創(chuàng)建快照的示意圖; 圖7為本發(fā)明的快照系統(tǒng)中采用ROW技術(shù)創(chuàng)建快照的示意圖; 圖8為本發(fā)明的快照系統(tǒng)在一個(gè)實(shí)施方式中采用ROW技術(shù)創(chuàng)建快照
時(shí),元 數(shù)據(jù)與數(shù)據(jù)的相應(yīng)變化關(guān)系示意圖9為本發(fā)明的快照系統(tǒng)在一個(gè)實(shí)施方式中釆用COW技術(shù)創(chuàng)建快照
時(shí),元數(shù)據(jù)與數(shù)據(jù)的相應(yīng)變化關(guān)系示意圖10為本發(fā)明的快照系統(tǒng)的使用方法的示意圖。
具體實(shí)施例方式
下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明的快照系統(tǒng)進(jìn)行說明。
在對(duì)本發(fā)明進(jìn)行詳細(xì)說明前,首先對(duì)本發(fā)明中所涉及的部分名詞的定 義進(jìn)行相關(guān)的說明
邏輯設(shè)備通過本發(fā)明的快照系統(tǒng)創(chuàng)建出來的設(shè)備稱為邏輯設(shè)備,分 為快照設(shè)備與源設(shè)備兩種。
物理設(shè)備邏輯設(shè)備所使用的底層設(shè)備,用于存放數(shù)據(jù)的設(shè)備稱為物 理設(shè)備。
元數(shù)據(jù)設(shè)備存放元數(shù)據(jù)的物理設(shè)備稱為元數(shù)據(jù)設(shè)備。
數(shù)據(jù)設(shè)備存放用戶數(shù)據(jù)的物理設(shè)備稱為數(shù)據(jù)設(shè)備
零設(shè)備是一個(gè)虛擬設(shè)備,讀取時(shí)返回零數(shù)據(jù)。
數(shù)據(jù)塊1/0請(qǐng)求訪問的最小粒度, 一般為4K字節(jié)。
快照組 一 個(gè)源設(shè)備以及從該源設(shè)備派生出的多個(gè)快照設(shè)備構(gòu)成的一
組設(shè)備
在對(duì)本發(fā)明中容易混淆的上述詞匯進(jìn)行說明后,下面對(duì)本發(fā)明的通用 快照系統(tǒng)以及該系統(tǒng)中所涉及的相應(yīng)方法進(jìn)刊--說明。
本發(fā)明的通用快照系統(tǒng)是一種設(shè)備級(jí)的快照系統(tǒng),該快照系統(tǒng)可同時(shí)
支持寫時(shí)拷貝(COW)的快照技術(shù)和寫時(shí)重定向(ROW)的快照技術(shù)。如圖2 所示, 一個(gè)完整的通用快照系統(tǒng)包括設(shè)備管理工具集、快照實(shí)現(xiàn)模塊以及 物理設(shè)備。其中,設(shè)備管理工具集位于所述的通用快照系統(tǒng)的頂端,是系 統(tǒng)與用戶間的交互接口 ,所述的快照實(shí)現(xiàn)模塊位于設(shè)備管理工具集的下一 層,屬于系統(tǒng)的核心模塊,用于實(shí)現(xiàn)對(duì)快照的各種操作,物理設(shè)備是本發(fā) 明的通用快照系統(tǒng)的底層,用于存儲(chǔ)與快照相關(guān)的各種數(shù)據(jù)。下面分別對(duì) 它們的組成以及功能做進(jìn)一步的說明。
設(shè)備管理工具集由一組用戶程序組成,提供創(chuàng)建/刪除/修改快照設(shè)備 的管理功能。本發(fā)明的通用快照系統(tǒng)在創(chuàng)建快照時(shí),需要對(duì)采用何種快照 技術(shù)創(chuàng)建快照進(jìn)行選擇,這一選擇過程也由設(shè)備管理工具集實(shí)現(xiàn)。設(shè)備管 理工具集的具體實(shí)現(xiàn)與現(xiàn)有技術(shù)中所存在的快照系統(tǒng)的相應(yīng)功能模塊的 實(shí)現(xiàn)存在相似性,因此,不在本發(fā)明中做重復(fù)性說明。
快照實(shí)現(xiàn)模塊是通用快照系統(tǒng)的主體部分。從邏輯上可分為兩層快 照機(jī)制層和物理資源管理層。快照機(jī)制層提供快照設(shè)備間的關(guān)系,用于數(shù) 據(jù)查找和時(shí)間點(diǎn)管理。物理資源管理層提供下層物理空間的分配和回收管 理。下面對(duì)快照機(jī)制層與物理資源管理層的組成與功能分別進(jìn)行說明。
快照機(jī)制層包含有多個(gè)快照組, 一個(gè)快照組中所采用的快照技術(shù)是相 同的,而不同的快照組間則可以使用不同的快照技術(shù)。即在本發(fā)明中,一 個(gè)快照組只能選擇COW和ROW快照實(shí)現(xiàn)技術(shù)中的一種,但不同的快照 組間的快照實(shí)現(xiàn)技術(shù)則不必相同。
在一個(gè)快照組內(nèi),多個(gè)快照設(shè)備之間按照時(shí)間點(diǎn)進(jìn)行區(qū)分,各個(gè)快照 設(shè)備之間采用增量模式和串聯(lián)方式進(jìn)行組織。在圖3和圖4中描述了一個(gè) 快照組中源設(shè)備與快照設(shè)備間的關(guān)系。圖3表示了在COW快照實(shí)現(xiàn)技術(shù) 下,源設(shè)備與快照設(shè)備間的關(guān)系。圖4則表示了在ROW快照實(shí)現(xiàn)技術(shù)下, 源設(shè)備與快照設(shè)備間的關(guān)系。ROW設(shè)備組中,設(shè)備間依賴關(guān)系由源設(shè)備 依次指向最早創(chuàng)建的快照設(shè)備,在COW設(shè)備組中正好相反,依賴關(guān)系由 最早創(chuàng)建的快照設(shè)備指向源設(shè)備。
雖然在上述的快照組中,快照組可能采用COW技術(shù),也可能采用
ROW,但在實(shí)現(xiàn)上為了簡(jiǎn)化設(shè)計(jì),整合COW和ROW兩種不同技術(shù),本 發(fā)明釆用了四個(gè)指針的通用內(nèi)存結(jié)構(gòu)。在圖6中,對(duì)四個(gè)指針的通用內(nèi)存 結(jié)構(gòu)進(jìn)行了說明,其中,r0, rl指針對(duì)應(yīng)讀操作時(shí)需要訪問的物理設(shè)備, w0, wl對(duì)應(yīng)寫操作時(shí)需要訪問的物理設(shè)備。
本發(fā)明的通用快照系統(tǒng)所提供的快照按照類型可分為只讀和可寫快 照。 一般情況下的快照是只讀的,源設(shè)備與在不同時(shí)刻創(chuàng)建的只讀快照構(gòu) 成一個(gè)鏈?zhǔn)浇Y(jié)構(gòu),源設(shè)備在鏈頭,作為根結(jié)點(diǎn),時(shí)間最早的快照設(shè)備在鏈 尾。每個(gè)快照設(shè)備記錄在相鄰快照時(shí)間點(diǎn)變化的增量數(shù)據(jù),為數(shù)據(jù)版本管 理應(yīng)用提供了源巻上數(shù)據(jù)的多個(gè)時(shí)間點(diǎn)的不同版本。在某些特定應(yīng)用下, 本系統(tǒng)還提供可寫快照,它通過為只讀快照創(chuàng)建一個(gè)全新的快照設(shè)備,得 到只讀快照的一個(gè)可寫副本,實(shí)現(xiàn)只讀快照的可寫。為只讀快照創(chuàng)建了可 寫快照后,原來的只讀快照對(duì)外仍可見,為只讀快照創(chuàng)建的可寫快照對(duì)外 表現(xiàn)為一個(gè)全新的快照設(shè)備,它相當(dāng)于一個(gè)新的源設(shè)備。對(duì)可寫快照可再 創(chuàng)建只讀快照,可寫快照與其只讀快照也構(gòu)成一條鏈。對(duì)可寫快照的寫操 作都直接寫入新的快照設(shè)備中。
對(duì)可寫快照進(jìn)行讀操作時(shí),首先在可寫快照所在的鏈中查找數(shù)據(jù),如 果查找不到,則轉(zhuǎn)發(fā)到其所依賴的只讀快照中進(jìn)行讀取。如圖3, 4所示, g0為一個(gè)快照組,對(duì)其中的快照設(shè)備snap5做可寫快照,產(chǎn)生了snap5,快 照設(shè)備,繼續(xù)對(duì)snap5,做只讀快照,形成g2快照組??煺战Mg2通過其可 寫設(shè)備snap5 ,的parent指針與快照組g0進(jìn)行連接。同理,對(duì)快照組g2中 的snap5,2做可寫快照,最終形成g3快照組。讀取g2組中snap5,1設(shè)備中 的數(shù)據(jù)時(shí),首先在g2組中進(jìn)行查找,如果查到鏈頭設(shè)備snap5,還沒有找 到所需數(shù)據(jù),則通過snap5,的parent指針在g0組中繼續(xù)查找。直到找到 所需數(shù)據(jù)。
備的打開、關(guān)閉、添加、刪除以及合法性檢查等等。在一個(gè)快照組中,源 設(shè)備和快照設(shè)備都可稱為邏輯設(shè)備, 一個(gè)邏輯設(shè)備在物理資源層對(duì)應(yīng)兩個(gè) 物理設(shè)備,如圖l所示,其中一個(gè)物理設(shè)備為元數(shù)據(jù)設(shè)備,另一個(gè)為數(shù)據(jù) 設(shè)備。
在元數(shù)據(jù)設(shè)備上,對(duì)物理設(shè)備等物理資源的管理和使用進(jìn)行標(biāo)識(shí)的元 數(shù)據(jù)進(jìn)行存儲(chǔ)。具體的說,所述的元數(shù)據(jù)用于指示數(shù)據(jù)的增量以及快照版 本中的數(shù)據(jù)在數(shù)據(jù)設(shè)備上的存放位置,它反映了某 一 時(shí)間點(diǎn)的快照版本的
數(shù)據(jù)映射關(guān)系。對(duì)數(shù)據(jù)設(shè)備中的每一個(gè)數(shù)據(jù)塊(Chunk),在元數(shù)據(jù)設(shè)備的 元數(shù)據(jù)表中均有對(duì)應(yīng)的項(xiàng),用于記錄該數(shù)據(jù)塊是否被修改過以及該數(shù)據(jù)塊 的存放位置。在一個(gè)元數(shù)據(jù)項(xiàng)中必須包括時(shí)間、數(shù)據(jù)位置、數(shù)據(jù)修改狀 態(tài)等信息。元數(shù)據(jù)可以采用位圖(bitmap),映射表等多種記錄形式。在本 實(shí)施例中,采用位圖方式記錄元數(shù)據(jù)。在具體記錄時(shí),每一個(gè)邏輯設(shè)備均 有一個(gè)位圖,位圖中的每一位代表一個(gè)數(shù)據(jù)塊大小的地址范圍,整個(gè)位圖 覆蓋快照設(shè)備的邏輯空間,通過位圖中相應(yīng)位的值進(jìn)行用戶數(shù)據(jù)的定位操 作。
用于記錄元數(shù)據(jù)的位圖存放在元數(shù)據(jù)設(shè)備中,考慮到元數(shù)據(jù)的存儲(chǔ)空 間和訪問效率問題,可對(duì)位圖進(jìn)行多級(jí)的結(jié)構(gòu)劃分,所劃分的位圖結(jié)構(gòu)與 數(shù)據(jù)設(shè)備中的數(shù)據(jù)塊大小有密切的聯(lián)系。在本實(shí)施例中,數(shù)據(jù)塊大小設(shè)定 為4096字節(jié),如圖5所示,位圖使用如下的三級(jí)結(jié)構(gòu)第一級(jí)位圖中的 每一位代表4T大小的邏輯空間,占用4k字節(jié)(l頁),第二級(jí)位圖中的每 一位代表128M地址空間,第三級(jí)位圖中的每一位代表4k地址空間。第一 級(jí)位圖常駐內(nèi)存,第二、三級(jí)采用換入換出機(jī)制,保證元數(shù)據(jù)較小的空間 占用。三級(jí)位圖之間的關(guān)系為第一級(jí)位圖的某一位如果為1,表示其對(duì) 應(yīng)的二級(jí)位圖中有l(wèi)存在,類似,如果二級(jí)位圖中有l(wèi)存在,則表示其對(duì) 應(yīng)的三級(jí)位圖中有l(wèi)存在。通過三級(jí)位圖結(jié)構(gòu),可以減少位圖遍歷時(shí)間。
在本發(fā)明的通用快照系統(tǒng)中,當(dāng)數(shù)據(jù)在邏輯設(shè)備間發(fā)生變化時(shí),使用元 數(shù)據(jù)反映上述變化,即元數(shù)據(jù)具有可用于指示數(shù)據(jù)增量的功能。采用位圖 方式記錄的元數(shù)據(jù)在表示兩個(gè)不同時(shí)間點(diǎn)的快照間的增量時(shí),其具體含義
位圖值為1:表示在這兩個(gè)快照的時(shí)間點(diǎn)之間有寫操作; 位圖值為0:表示在這兩個(gè)快照的時(shí)間點(diǎn)之間沒有任何寫操作。 通過元數(shù)據(jù)可實(shí)現(xiàn)對(duì)邏輯設(shè)備中數(shù)據(jù)的讀取。但在本發(fā)明的通用快照 系統(tǒng)中,在快照組中所采用的快照實(shí)現(xiàn)技術(shù)可以是COW快照實(shí)現(xiàn)技術(shù), 也可以是ROW快照實(shí)現(xiàn)技術(shù)。因此采用位圖方式記錄的元數(shù)據(jù)在兩種快 照實(shí)現(xiàn)技術(shù)中具有各自特定的含義,在利用元數(shù)據(jù)實(shí)現(xiàn)對(duì)數(shù)據(jù)的讀取時(shí),
快照系統(tǒng)進(jìn)行快照的創(chuàng)建、刪除以及快照數(shù)據(jù)的讀取時(shí)會(huì)有詳細(xì)的涉及, 在下文中將做詳細(xì)的說明。
對(duì)本發(fā)明的通用快照系統(tǒng)的結(jié)構(gòu)進(jìn)行上述說明后,對(duì)本發(fā)明的通用快
照系統(tǒng)的使用方法做進(jìn)一步說明,包括以下步驟
步驟1、用戶通過所述的設(shè)備管理工具集發(fā)布創(chuàng)建快照的命令,并在
所述的命令中決定選擇何種快照技術(shù)創(chuàng)建快照;
步驟2、所述的快照實(shí)現(xiàn)模塊中的快照機(jī)制層根據(jù)步驟1中所選擇的 快照技術(shù)創(chuàng)建快照;
步驟3、根據(jù)用戶的需求,讀取快照中的數(shù)據(jù);
步驟4、根據(jù)用戶的需求,在快照中完成寫數(shù)據(jù)的操作;
步驟5、根據(jù)用戶的需求,對(duì)快照進(jìn)行刪除。
在上述的步驟中,所涉及到的快照創(chuàng)建、快照數(shù)據(jù)讀取、快照數(shù)據(jù)的 寫以及快照的刪除都可能會(huì)由于快照技術(shù)的不同而存在著差異,下面分別 進(jìn)行說明。
ROW類快照創(chuàng)建過程如圖7所示,只有源設(shè)備存在時(shí),其使用的物 理設(shè)備為物理設(shè)備l,當(dāng)創(chuàng)建快照后,將指定給快照設(shè)備的物理設(shè)備2交 給源設(shè)備使用,而源設(shè)備使用的物理設(shè)備1交給快照設(shè)備使用。
在ROW模式中,由于創(chuàng)建快照時(shí),元數(shù)據(jù)設(shè)備與數(shù)據(jù)設(shè)備一起被交 換,位圖中的1與數(shù)據(jù)設(shè)備上的增量數(shù)據(jù)有——對(duì)應(yīng)關(guān)系。當(dāng)訪問某一時(shí) 間點(diǎn)快照數(shù)據(jù)時(shí),其位圖中的值含義如下
位圖值為1:表示與相應(yīng)位對(duì)應(yīng)的數(shù)據(jù)塊的數(shù)據(jù)就存放在該快照的數(shù) 據(jù)設(shè)備上。
位圖值為(h表示與相應(yīng)位對(duì)應(yīng)的數(shù)據(jù)塊的數(shù)據(jù)不在該快照的數(shù)據(jù)設(shè) 備上。
如圖8所示,ROW的位圖和數(shù)據(jù)位置是——對(duì)應(yīng)的,位圖為1,表示 數(shù)據(jù)在本設(shè)備上,為O則需要向后查找。例如,在圖8中,要讀取狀態(tài)6 的A數(shù)據(jù),則必須向后查找到sl時(shí)間點(diǎn)才能確定數(shù)據(jù)位置。
COW類快照創(chuàng)建過程如圖6所示,在COW模式創(chuàng)建過程中,只交換 元數(shù)據(jù)設(shè)備,數(shù)據(jù)設(shè)備不進(jìn)行交換。設(shè)備組的各個(gè)邏輯設(shè)備間依賴關(guān)系與 ROW方式不同。例如,源設(shè)備對(duì)應(yīng)物理設(shè)備l,在創(chuàng)建快照后,源設(shè)備仍 然對(duì)應(yīng)物理設(shè)備1 ,而快照s 1則對(duì)應(yīng)物理設(shè)備2 。
在COW模式中,快照創(chuàng)建后發(fā)生的寫會(huì)引起COW過程,將數(shù)據(jù)拷 貝到快照中。因此,在未進(jìn)行COW之前,快照設(shè)備元數(shù)據(jù)的1不能表示 數(shù)據(jù)存放在快照的數(shù)據(jù)設(shè)備上,此時(shí),1只表明在當(dāng)時(shí)對(duì)相應(yīng)的數(shù)據(jù)塊產(chǎn) 生了 COW操作。結(jié)合圖6,對(duì)COW模式中的數(shù)據(jù)位置確定方法做如下說
明
在讀快照S1時(shí),讀取它的后一時(shí)間點(diǎn)的快照S2的位圖,如果該位圖 的值為1,表示對(duì)應(yīng)數(shù)據(jù)塊的數(shù)據(jù)存放在快照Sl的數(shù)據(jù)設(shè)備上;如果位圖 值為0,則沿著鏈往后面時(shí)間點(diǎn)的快照繼續(xù)查找,如果遇到快照Sk的位圖 值為1,則表示相應(yīng)數(shù)據(jù)塊的數(shù)據(jù)存放在快照Sw的數(shù)據(jù)設(shè)備上;如果在 查找過程中遇到了源設(shè)備,且源設(shè)備的位圖值為1時(shí),則表示數(shù)據(jù)塊的數(shù) 據(jù)存放在源設(shè)備的相鄰快照的數(shù)據(jù)設(shè)備上;如果源設(shè)備的位圖值為0,則 表示數(shù)據(jù)塊的數(shù)據(jù)存放在源的數(shù)據(jù)設(shè)備上。
如圖9所示,1狀態(tài)為在源寫了 ABCD四塊后創(chuàng)建了 sl快照設(shè)備, 此時(shí)sl持有源在s0狀態(tài)的位圖,源的位圖清零。在狀態(tài)2時(shí),寫1, 3 塊,此時(shí)會(huì)觸發(fā)COW操作,將數(shù)據(jù)從源設(shè)備拷貝到sl快照設(shè)備。源的位 圖相應(yīng)位置位,快照的位圖不變。在狀態(tài)4時(shí),寫源的2, 3塊,此時(shí)觸 發(fā)COW操作,將數(shù)據(jù)從源設(shè)備拷貝到s2快照設(shè)備,依次類推。當(dāng)讀取sl 時(shí)間點(diǎn)數(shù)據(jù)時(shí),需要向前查找,比如在狀態(tài)6時(shí),讀取D數(shù)據(jù),則需要向 前查找到s3設(shè)備才能最終確定數(shù)據(jù)的位置。元數(shù)據(jù)存儲(chǔ)在物理設(shè)備中時(shí),可以與數(shù)據(jù) 一起存放在同 一物理介質(zhì) 上,實(shí)現(xiàn)混合存放,也可以存放在獨(dú)立的物理設(shè)備上,與數(shù)據(jù)所在的物理 介質(zhì)隔離。在本實(shí)施方式中,考慮到效率和擴(kuò)展性問題,最終采用了分離 元數(shù)據(jù)設(shè)備的方案。
在對(duì)本發(fā)明的通用快照系統(tǒng)的基本組成進(jìn)行說明后,對(duì)快照系統(tǒng)創(chuàng)建 快照、刪除快照、讀取數(shù)據(jù)、數(shù)據(jù)遷移等過程進(jìn)行說明。
圖6和圖7都是對(duì)快照創(chuàng)建流程的相應(yīng)說明,其中的圖6是采用COW 快照實(shí)現(xiàn)技術(shù)創(chuàng)建快照的流程,而圖7則是采用ROW快照實(shí)現(xiàn)技術(shù)創(chuàng)建 快照的流程。
在圖6中,快照設(shè)備和源設(shè)備中都有四個(gè)快照關(guān)系指針,分別指向其 讀寫操作需要訪問的物理設(shè)備,并記錄了快照之間、快照與源設(shè)備之間的
依賴關(guān)系。COW模式中快照的創(chuàng)建過程如下首先創(chuàng)建一個(gè)源設(shè)備,在 創(chuàng)建時(shí),將源設(shè)備的所有快照關(guān)系指針都指向源設(shè)備的物理設(shè)備,此時(shí)在 快照鏈表中只有源設(shè)備本身;然后在下一個(gè)時(shí)間點(diǎn)創(chuàng)建第一個(gè)快照,在快 照鏈表插入快照的過程中,修改源設(shè)備的w0指針指向快照,而快照的r0 指針指向源,若所創(chuàng)建的快照為只讀快照,則需把快照的w0和wl設(shè)備 修改為空指針;為源設(shè)備創(chuàng)建第二個(gè)快照時(shí),在鏈表中插入快照設(shè)備2時(shí),
修改源設(shè)備的w0指針指向快照設(shè)備2,快照設(shè)備2的rO指針指向源,快 照設(shè)備1的r0指針指向快照設(shè)備2,若該快照為只讀快照,同樣需把快照 設(shè)備2的w0和wl設(shè)備修改為空指針。通過上述流程,建立起各個(gè)不同 時(shí)間點(diǎn)快照設(shè)備之間的依賴關(guān)系。
圖7與圖6的快照創(chuàng)建過程類似,只是在四個(gè)指針指向時(shí)有所不同。 ROW方式中,源設(shè)備的rO指針指向快照設(shè)備,快照設(shè)備不反指向源設(shè)備。 在有多個(gè)快照設(shè)備時(shí),ROW的快照鏈?zhǔn)怯勺钚聲r(shí)間點(diǎn)的快照依次指向最 老時(shí)間點(diǎn)快照,如圖7所示,sl為最早創(chuàng)建的快照設(shè)備,其時(shí)間點(diǎn)最老, s2為最后創(chuàng)建的快照,其時(shí)間點(diǎn)最新??煺真溣稍丛O(shè)備依次指向s2, sl 設(shè)備,與COW方式正好相反。
在對(duì)通用快照系統(tǒng)中的數(shù)據(jù)進(jìn)行讀取時(shí),可分為對(duì)源設(shè)備中數(shù)據(jù)的讀 取和對(duì)'決照設(shè)備中數(shù)據(jù)的讀取。
讀取源設(shè)備中數(shù)據(jù)時(shí),無論是COW模式還是ROW模式,它們?cè)谧x 取數(shù)據(jù)時(shí)的流程相同,包括以下步驟
步驟Al、根據(jù)所要讀取數(shù)據(jù)的地址在位圖中查詢相應(yīng)的位,若該位 的值為1,則直接在本地讀耳又,并返回所讀耳又的lt據(jù)值,若該位的值為0, 則執(zhí)行下一步;
步驟A2、判斷源設(shè)備中的數(shù)據(jù)是否存在相應(yīng)的快照,判斷算法為 如果rO指針指向的是物理設(shè)備,則不存在快照;如果是邏輯設(shè)備,則存在 快照。若不存在快照,則返回全零數(shù)據(jù),若存在快照,則根據(jù)快照鏈將讀 數(shù)據(jù)請(qǐng)求進(jìn)行轉(zhuǎn)發(fā),進(jìn)入快照數(shù)據(jù)的讀取流程。
在讀取快照數(shù)據(jù)的過程中,根據(jù)快照實(shí)現(xiàn)技術(shù)的不同,在讀取時(shí)存在 著明顯的差異,下面分別進(jìn)行說明。
在COW模式下,讀取快照數(shù)據(jù)的過程如下
步驟Bl、根據(jù)位圖的值確定數(shù)據(jù)存放的物理設(shè)備;判斷算法為從 快照鏈表的尾部向前遍歷,如果在某一快照Sk上的位圖值為1,則在其前 一快照Sw的數(shù)據(jù)設(shè)備上讀取數(shù)據(jù),若位圖值為0,則將讀數(shù)據(jù)請(qǐng)求沿著 快照鏈表轉(zhuǎn)發(fā)到前一快照上,直至找到位圖值為l的快照;
步驟B2、在快照鏈表的快照中沒有找到位圖值為1的快照,讀數(shù)據(jù) 請(qǐng)求到達(dá)源設(shè)備,若源設(shè)備的位圖值為1時(shí),在與源設(shè)備相鄰快照的數(shù)據(jù) 設(shè)備上讀取數(shù)據(jù),否則在源的數(shù)據(jù)設(shè)備上讀取數(shù)據(jù)。本步驟的具體實(shí)現(xiàn), 可參見上文對(duì)圖9的說明。
在ROW模式下,讀取快照數(shù)據(jù)的過程如下
根據(jù)位圖的值確定數(shù)據(jù)存放的物理設(shè)備,然后從數(shù)據(jù)所存放的物理設(shè)
備上讀取數(shù)據(jù)。在ROW模式下,確定數(shù)據(jù)存放位置的判斷算法為從快 照鏈表的尾部向前遍歷,若在某一快照Sk上的位圖值為1,則在本地的數(shù) 據(jù)設(shè)備上讀取,并返回相應(yīng)的數(shù)據(jù),若位圖值為0,則判斷當(dāng)前快照是否 為快照鏈表中最老的快照,即是否是快照鏈表尾端的快照,若是,則返回 全0,否則將讀數(shù)據(jù)請(qǐng)求轉(zhuǎn)發(fā)到快照鏈表中的前一快照中。本步驟的具體 實(shí)現(xiàn),可參見上文對(duì)圖8的說明。
在對(duì)源進(jìn)行寫數(shù)據(jù)操作過程中,根據(jù)快照實(shí)現(xiàn)技術(shù)的不同,在寫數(shù)據(jù) 時(shí)也存在著差異,下面分別進(jìn)行說明。 在COW模式下,寫數(shù)據(jù)的流程如下 步驟al、根據(jù)位圖的值確定數(shù)據(jù)存放的物理設(shè)備; 步驟a2、根據(jù)步驟al所確定的物理設(shè)備寫入數(shù)據(jù)。 具體的實(shí)現(xiàn)方法為如果位圖值為1,則直接寫入源的物理設(shè)備中; 如果位圖值為0,完成COW操作后再寫入源的物理設(shè)備中。 在ROW模式下,寫數(shù)據(jù)的流程如下 步驟bl、根據(jù)位圖的值確定數(shù)據(jù)存放的物理設(shè)備; 步驟b2、根據(jù)步驟bl所確定的物理設(shè)備寫入數(shù)據(jù)。 具體的實(shí)現(xiàn)方法為如果位圖值為1,則直接寫入源的物理設(shè)備中; 如果位圖值為0,進(jìn)行數(shù)據(jù)塊的數(shù)據(jù)合并后再寫入源的物理設(shè)備中。
同樣的,在通用快照系統(tǒng)中,對(duì)快照的刪除也會(huì)由于快照技術(shù)的不同 而存在著差異,下面分情況對(duì)快照的刪除過程進(jìn)行描述。
在COW方式中,當(dāng)存在多個(gè)時(shí)間快照時(shí),為簡(jiǎn)化設(shè)計(jì)和實(shí)現(xiàn),我們 規(guī)定只能刪除最老的時(shí)間點(diǎn)快照,避免數(shù)據(jù)遷移操作。
而ROW方式中,存在著刪除新創(chuàng)建快照的需求,由圖7的關(guān)系可以 看出,不同時(shí)間點(diǎn)快照存在著依賴關(guān)系,同一個(gè)時(shí)間點(diǎn)的數(shù)據(jù)可能分布在 不同的物理設(shè)備上,因此需要將數(shù)據(jù)進(jìn)行合并。以圖7為例,對(duì)刪除快照 設(shè)備時(shí)所觸發(fā)的數(shù)據(jù)合并方法進(jìn)行說明。
在圖7中,Sl與S2為緊鄰的兩個(gè)時(shí)間點(diǎn)的快照設(shè)備,假設(shè)要?jiǎng)h除快 照設(shè)備Sl,具體的數(shù)據(jù)合并過程包括
步驟10、依次讀取快照設(shè)備S2中每個(gè)數(shù)據(jù)塊在位圖中的對(duì)應(yīng)位; 步驟20、將快照設(shè)備S2中的位圖位與快照設(shè)備Sl的相應(yīng)位圖位進(jìn)
行組合,可得到四種情況 S2 Sl 3、 0 0
b、 0 1
c、 1 0
d、 1 1
當(dāng)S2的位圖位為1時(shí),表示有新數(shù)據(jù)寫過,因此在數(shù)據(jù)合并時(shí)只需 要將S2的位圖位為1的數(shù)據(jù)塊拷貝回Sl的數(shù)據(jù)設(shè)備上,而無論Sl的位 圖位是何值。這個(gè)拷貝過程稱為數(shù)據(jù)回移操作。
步驟30、執(zhí)行數(shù)據(jù)回移操作,由S2的數(shù)據(jù)設(shè)備中的數(shù)據(jù)拷貝到Sl 的數(shù)據(jù)設(shè)備。
步驟40、遷移結(jié)束后,置S2的位圖相應(yīng)位為0;
步驟50、如果所有數(shù)據(jù)塊處理完,執(zhí)行下一步;否則重新執(zhí)行步驟 10,繼續(xù)處理下一個(gè)數(shù)據(jù)塊。
步驟60、對(duì)兩個(gè)邏輯設(shè)備加鎖,同時(shí)改變位圖和rl指針的值,將兩者 的物理設(shè)備進(jìn)行交換。
步驟70、釋放被刪除設(shè)備所占用的內(nèi)存,物理設(shè)備等資源。 最后所應(yīng)說明的是,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非限制。 盡管參照實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理 解,對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,都不脫離本發(fā)明技術(shù)方案 的精神和范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
權(quán)利要求
1、一種快照系統(tǒng),包括設(shè)備管理工具集、快照實(shí)現(xiàn)模塊以及物理設(shè)備;其特征在于,所述的快照實(shí)現(xiàn)模塊包括用于數(shù)據(jù)查找和時(shí)間點(diǎn)管理的快照機(jī)制層,以及用于對(duì)所述的物理設(shè)備進(jìn)行分配和回收管理的物理資源管理層,所述的快照機(jī)制層中包含有至少一個(gè)快照組,不同快照組可采用不同的快照技術(shù);所述的物理資源管理層中包含有與所述的快照組對(duì)應(yīng)的元數(shù)據(jù)設(shè)備與數(shù)據(jù)設(shè)備。
2、 根據(jù)權(quán)利要求1所述的快照系統(tǒng),其特征在于,在所述的快照組 中,所采用的快照技術(shù)為寫時(shí)拷貝技術(shù)或?qū)憰r(shí)重定向技術(shù)。
3、 根據(jù)權(quán)利要求2所述的快照系統(tǒng),其特征在于,所述元數(shù)據(jù)設(shè)備 中存放元數(shù)據(jù),所述的元數(shù)據(jù)用于指示數(shù)據(jù)的增量以及所述快照組的快照 版本中的數(shù)據(jù)在所述數(shù)據(jù)設(shè)備上的存放位置;所述元數(shù)據(jù)采用位圖或映射 表的形式進(jìn)行記錄。4、 根據(jù)權(quán)利要求3所述的快照系統(tǒng),其特征在于,所述位圖采用多 級(jí)的結(jié)構(gòu)劃分,上一級(jí)位圖某一位的值為l用于表示對(duì)應(yīng)的下一級(jí)位圖中 存在值為1的位,若為0,則表示對(duì)應(yīng)的下一級(jí)位圖中不存在值為1的位; 在最低級(jí)的位圖上,某一位的值為1用于表示對(duì)應(yīng)數(shù)據(jù)塊上的數(shù)據(jù)發(fā)生變 化,若為0,則對(duì)應(yīng)數(shù)據(jù)塊上的數(shù)據(jù)不發(fā)生變化。5、 根據(jù)權(quán)利要求1所述的快照系統(tǒng),其特征在于,所有的快照組采 用相同的內(nèi)存結(jié)構(gòu),具有四個(gè)指針包括用于對(duì)應(yīng)讀操作時(shí)需要訪問的物 理設(shè)備r0, rl指針,以及用于對(duì)應(yīng)寫操作時(shí)需要訪問的物理設(shè)備的w0、 wl指針。6、 根據(jù)權(quán)利要求1所述的快照系統(tǒng),其特征在于,所述的快照組中, 在 一 定的時(shí)間點(diǎn)有相應(yīng)的快照設(shè)備,各個(gè)時(shí)間點(diǎn)的快照設(shè)備間采用鏈?zhǔn)浇Y(jié) 構(gòu)進(jìn)行組織。7、 一種對(duì)權(quán)利要求l-6所述的快照系統(tǒng)的使用方法,包括以下步驟 步驟l)、用戶通過所述的設(shè)備管理工具集發(fā)布創(chuàng)建快照的命令,并在所述的命令中決定選擇何種快照技術(shù)創(chuàng)建快照;步驟2)、所述的快照實(shí)現(xiàn)模塊中的快照機(jī)制層根據(jù)步驟1 )中所選擇 的快照技術(shù)創(chuàng)建快照;步驟3)、根據(jù)用戶的需求,對(duì)快照做相關(guān)的操作,所述的操作包括對(duì)快照的讀、寫以及刪除。8、 根據(jù)權(quán)利要求7所述的快照系統(tǒng)的使用方法,其特征在于,在所述的步驟2)中,所述的創(chuàng)建快照還包括下列步驟步驟2-1-1)、創(chuàng)建一個(gè)源設(shè)備,將所述源設(shè)備的所有快照關(guān)系指針都 指向源設(shè)備的物理設(shè)備;步驟2-1-2)、在后續(xù)的時(shí)間點(diǎn)創(chuàng)建快照,并在快照集鏈表中插入所創(chuàng) 建的快照。9、 根據(jù)權(quán)利要求8所述的快照系統(tǒng)的使用方法,其特征在于,若創(chuàng) 建快照時(shí)釆用寫時(shí)拷貝技術(shù),則所述的在快照集鏈表中插入所創(chuàng)建的快照 時(shí),將所述源設(shè)備的w0指針指向新創(chuàng)建的快照設(shè)備,將新創(chuàng)建的快照設(shè) 備的r0指針指向所述的源設(shè)備,若所述快照集鏈表中還存在時(shí)間點(diǎn)更早的 快照設(shè)備,則將與新創(chuàng)建的快照設(shè)備相比時(shí)間點(diǎn)更早且時(shí)間最接近的快照 設(shè)備的r0指針指向新創(chuàng)建的快照設(shè)備。10、 根據(jù)權(quán)利要求8所述的快照系統(tǒng)的使用方法,其特征在于,若創(chuàng) 建快照時(shí)釆用寫時(shí)重定向技術(shù),則所述的在快照集鏈表中插入所創(chuàng)建的快 照時(shí),將所述源設(shè)備的rO指針指向新創(chuàng)建的快照設(shè)備,將所述新創(chuàng)建的快 照設(shè)備的r0指針指向時(shí)間點(diǎn)更早且時(shí)間最接近的快照設(shè)備;若所述快照集 鏈表中不存在時(shí)間點(diǎn)更早的快照設(shè)備,則所述新創(chuàng)建的快照設(shè)備的r0指針 指向零設(shè)備。11、 根據(jù)權(quán)利要求7所述的快照系統(tǒng)的使用方法,其特征在于,在所 述的步驟3)中,所述的讀取快照中的數(shù)據(jù)包括對(duì)源設(shè)備中數(shù)據(jù)的讀取和 對(duì)快照設(shè)備中數(shù)據(jù)的讀取。12、 根據(jù)權(quán)利要求11所述的快照系統(tǒng)的使用方法,其特征在于,所 述的對(duì)源設(shè)備中數(shù)據(jù)的讀取還包括以下步驟步驟3-1-1 )、根據(jù)所要讀取數(shù)據(jù)的地址在所述位圖中查詢相應(yīng)的位, 若該位的值為1,則直接在本地讀取,并返回所讀取的數(shù)據(jù)值,若該位的 值為0,則執(zhí)行下一步;步驟3-1-2)、判斷源設(shè)備中的數(shù)據(jù)是否存在相應(yīng)的快照,若不存在快 照,則返回全零數(shù)據(jù),若存在快照,則根據(jù)快照集鏈表將讀數(shù)據(jù)請(qǐng)求進(jìn)行 轉(zhuǎn)發(fā),通過對(duì)快照數(shù)據(jù)的讀取完成所述的數(shù)據(jù)讀取過程。13、 根據(jù)權(quán)利要求12所述的快照系統(tǒng)的使用方法,其特征在于,所 述的判斷源設(shè)備中的數(shù)據(jù)是否存在相應(yīng)的快照時(shí),若所述源設(shè)備中的r0指針指向的是物理設(shè)備,則不存在快照;若所述源設(shè)備中的r0指針指向的 是邏輯設(shè)備,則存在快照。14、 根據(jù)權(quán)利要求11所述的快照系統(tǒng)的使用方法,其特征在于,當(dāng) 所述快照釆用寫時(shí)拷貝技術(shù)創(chuàng)建時(shí),步驟3)還包括以下步驟,用于對(duì)該 快照的數(shù)據(jù)讀取步驟3-2-1 )、根據(jù)位圖的值確定數(shù)據(jù)存放的物理設(shè)備,在確定過程中, 從快照集鏈表的尾部向前遍歷,如果在某一快照Sk上的位圖值為1,則在 其前一快照Sw的數(shù)據(jù)設(shè)備上讀取數(shù)據(jù),若位圖值為0,則將讀數(shù)據(jù)請(qǐng)求 沿著快照集鏈表轉(zhuǎn)發(fā)到前一快照上,直至找到位圖值為l的快照;步驟3-2-2)、若在快照集鏈表的快照中沒有找到位圖值為l的快照, 讀數(shù)據(jù)請(qǐng)求到達(dá)源設(shè)備,若源設(shè)備的位圖值為l時(shí),在與源設(shè)備相鄰快照 的數(shù)據(jù)設(shè)備上讀取數(shù)據(jù),否則在源的數(shù)據(jù)設(shè)備上讀取數(shù)據(jù);當(dāng)所述快照采用寫時(shí)重定向技術(shù)創(chuàng)建時(shí),步驟3)還包括以下步驟, 用于對(duì)該快照的^:據(jù)讀^F又首先根據(jù)位圖的值確定數(shù)據(jù)存放的物理設(shè)備,然后從數(shù)據(jù)所存放的物 理設(shè)備上讀取數(shù)據(jù);其中,在確定數(shù)據(jù)存放的物理設(shè)備時(shí),從快照集鏈表 的尾部向前遍歷,若在某一快照Sk上的位圖值為1,則在本地的數(shù)據(jù)設(shè)備 上讀取,并返回相應(yīng)的數(shù)據(jù),若位圖值為0,則判斷當(dāng)前快照是否為快照 集鏈表中最老的快照,即是否是快照鏈表尾端的快照,若是,則返回全O, 否則將讀數(shù)據(jù)請(qǐng)求轉(zhuǎn)發(fā)到快照鏈表中的前一快照中。15、 根據(jù)權(quán)利要求7所述的快照系統(tǒng)的使用方法,其特征在于,如果 在快照中完成寫數(shù)據(jù)操作,在所述的步驟3)中還包括以下步驟首先,根據(jù)位圖的值確定數(shù)據(jù)存放的物理設(shè)備;然后在所確定的物理 設(shè)備中寫入數(shù)據(jù)。16、 根據(jù)權(quán)利要求15所述的快照系統(tǒng)的使用方法,其特征在于,當(dāng) 所述快照采用寫時(shí)拷貝技術(shù)創(chuàng)建時(shí),步驟3)還包括以下步驟,用于對(duì)快 照數(shù)據(jù)的寫對(duì)位圖值進(jìn)行判斷,若位圖值為1,則直接寫入源的物理設(shè)備中;如 果位圖值為0,則在完成寫時(shí)拷貝操作后再寫入源的物理設(shè)備中。17、 根據(jù)權(quán)利要求15所述的快照系統(tǒng)的使用方法,其特征在于,當(dāng) 所述快照采用寫時(shí)重定向技術(shù)創(chuàng)建時(shí),步驟3)還包括以下步驟,用于對(duì) 快照數(shù)據(jù)的寫 對(duì)位圖值進(jìn)行判斷,如果位圖值為1,則直接寫入源的物理設(shè)備中; 如果位圖值為0,進(jìn)行數(shù)據(jù)塊的數(shù)據(jù)合并后再寫入源的物理設(shè)備中。18、 根據(jù)權(quán)利要求7所述的快照系統(tǒng)的使用方法,其特征在于,在所 述的步驟3)中,當(dāng)所述快照采用寫時(shí)拷貝技術(shù)時(shí),在刪除快照的過程中, 只能刪除時(shí)間點(diǎn)最早的快照。19、 根據(jù)權(quán)利要求7所述的快照系統(tǒng)的使用方法,其特征在于,在所 述的步驟3)中,當(dāng)所述快照采用寫時(shí)重定向技術(shù)時(shí),在對(duì)所要?jiǎng)h除的快 照做刪除操作前,對(duì)刪除快照所要觸發(fā)的數(shù)據(jù)進(jìn)行合并。20、 根據(jù)權(quán)利要求19所述的快照系統(tǒng)的使用方法,其特征在于,所 述的數(shù)據(jù)合并包括以下步驟步驟3-3-1 )、依次讀取快照設(shè)備S2中每個(gè)數(shù)據(jù)塊在位圖中的對(duì)應(yīng)位; 其中,S2是要?jiǎng)h除的快照設(shè)備S1的相鄰快照設(shè)備;步驟3-3-2 )、將快照設(shè)備S2中的位圖位與快照設(shè)備Sl的相應(yīng)位圖位 進(jìn)行組合,可得到四種情況 S2 Sl3、 0 0b、 0 1c、 1 0d、 1 1當(dāng)S2的位圖位為1時(shí),表示有新數(shù)據(jù)寫過,因此在數(shù)據(jù)合并時(shí)只需 要將S2的位圖位為1的數(shù)據(jù)塊拷貝回Sl的數(shù)據(jù)設(shè)備上;步驟3-3-3)、執(zhí)行數(shù)據(jù)回移操作,將S2的數(shù)據(jù)設(shè)備中的數(shù)據(jù)拷貝到 Sl的數(shù)據(jù)設(shè)備上;步驟3-3-4)、數(shù)據(jù)回移結(jié)束后,置S2的位圖相應(yīng)位為0;步驟3-3-5)、如果所有數(shù)據(jù)塊處理完,結(jié)束數(shù)據(jù)合并操作,否則重新 執(zhí)行步驟3-3-1),繼續(xù)處理下一個(gè)數(shù)據(jù)塊。
全文摘要
本發(fā)明提供一種的快照系統(tǒng),包括設(shè)備管理工具集、快照實(shí)現(xiàn)模塊以及物理設(shè)備;所述的快照實(shí)現(xiàn)模塊包括用于數(shù)據(jù)查找和時(shí)間點(diǎn)管理的快照機(jī)制層,以及用于對(duì)所述的物理設(shè)備進(jìn)行分配和回收管理的物理資源管理層,所述的快照機(jī)制層中包含有至少一個(gè)快照組,不同快照組可采用不同的快照技術(shù);所述的物理資源管理層中包含有與所述的快照組對(duì)應(yīng)的元數(shù)據(jù)設(shè)備與數(shù)據(jù)設(shè)備。本發(fā)明可同時(shí)支持COW和ROW兩種快照技術(shù),用戶可根據(jù)實(shí)際需求,靈活地進(jìn)行選擇。
文檔編號(hào)G06F17/30GK101183383SQ20071017971
公開日2008年5月21日 申請(qǐng)日期2007年12月17日 優(yōu)先權(quán)日2007年12月17日
發(fā)明者朱旭東, 劍 柯, 許金萍, 那文武 申請(qǐng)人:中國科學(xué)院計(jì)算技術(shù)研究所