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