一種基于快照重映射的數(shù)據(jù)狀態(tài)轉(zhuǎn)換的方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開(kāi)了一種基于快照重映射的數(shù)據(jù)狀態(tài)轉(zhuǎn)換的方法及系統(tǒng),涉及數(shù)據(jù)存儲(chǔ)領(lǐng)域,特別涉及一種基于映射方式的虛擬化存儲(chǔ)方法。該方法包括根據(jù)數(shù)據(jù)狀態(tài)獲取該數(shù)據(jù)的起始狀態(tài)快照,該狀態(tài)快照包括映射表和指向新?tīng)顟B(tài)快照的指針,其中該新?tīng)顟B(tài)快照只用于讀取數(shù)據(jù);通過(guò)快照重映射動(dòng)態(tài)的將該數(shù)據(jù)狀態(tài)由該起始狀態(tài)快照遷移到該新動(dòng)態(tài)快照,同時(shí)將該起始狀態(tài)快照的指針指向該新?tīng)顟B(tài)快照并生成狀態(tài)快照鏈,同時(shí)修改狀態(tài)快照各自的映射表,以實(shí)現(xiàn)數(shù)據(jù)狀態(tài)轉(zhuǎn)換。本發(fā)明的方法及系統(tǒng)能夠在線實(shí)現(xiàn)無(wú)需數(shù)據(jù)遷移的持久存儲(chǔ)數(shù)據(jù)的狀態(tài)轉(zhuǎn)換,減少更改持久存儲(chǔ)的數(shù)據(jù)狀態(tài)的開(kāi)銷。
【專利說(shuō)明】一種基于快照重映射的數(shù)據(jù)狀態(tài)轉(zhuǎn)換的方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲(chǔ)領(lǐng)域,特別涉及一種基于映射方式的虛擬化存儲(chǔ)方法。
【背景技術(shù)】
[0002]當(dāng)前網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)功能日益豐富,需要管理和維護(hù)存儲(chǔ)的數(shù)據(jù)塊的狀態(tài)。網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)中存在棧式的多層的塊設(shè)備驅(qū)動(dòng),每層塊設(shè)備需要維護(hù)一致的數(shù)據(jù)視圖。
[0003]傳統(tǒng)的存儲(chǔ)快照是關(guān)于指定數(shù)據(jù)集合的一個(gè)完全可用拷貝,該拷貝包括相應(yīng)數(shù)據(jù)在某個(gè)時(shí)間點(diǎn)(拷貝開(kāi)始的時(shí)間點(diǎn))的映像??煺湛梢允瞧渌硎镜臄?shù)據(jù)的一個(gè)副本,也可以是數(shù)據(jù)的一個(gè)復(fù)制品。實(shí)現(xiàn)快照功能的文件系統(tǒng)基本上都是一些專用系統(tǒng)或者專為某個(gè)特定功能實(shí)現(xiàn)的文件系統(tǒng),在這個(gè)層級(jí)上實(shí)現(xiàn)快照,缺乏靈活性和可擴(kuò)展性,同時(shí)無(wú)法保證每個(gè)快照都處于數(shù)據(jù)一致性的狀態(tài)。
[0004]發(fā)明專利“一種塊級(jí)快照系統(tǒng)及基于該系統(tǒng)的用戶讀寫(xiě)方法”公開(kāi)了一種塊級(jí)快照系統(tǒng),包括由源設(shè)備以及一個(gè)或多個(gè)快照設(shè)備形成的快照設(shè)備鏈,源設(shè)備和快照設(shè)備中包括緩存設(shè)備、一對(duì)塊設(shè)備SDU和SDL,以及存儲(chǔ)設(shè)備。其中塊設(shè)備SDU用于接受并處理用戶對(duì)所述系統(tǒng)的讀寫(xiě)請(qǐng)求、緩存設(shè)備用于處理從所述塊設(shè)備SDU轉(zhuǎn)發(fā)來(lái)的用戶的讀寫(xiě)請(qǐng)求且用于緩存數(shù)據(jù)、塊設(shè)備SDL用于處理從所述緩存設(shè)備轉(zhuǎn)發(fā)來(lái)的讀請(qǐng)求。當(dāng)系統(tǒng)接收用戶的讀請(qǐng)求時(shí),塊設(shè)備SDU將對(duì)于不是本地?cái)?shù)據(jù)的讀請(qǐng)求轉(zhuǎn)發(fā)到前一個(gè)時(shí)間點(diǎn)的塊設(shè)備SDU ;而對(duì)于本地?cái)?shù)據(jù)的讀請(qǐng)求則由塊設(shè)備SDL從存儲(chǔ)設(shè)備中讀出并返回給緩存設(shè)備用以緩存。緩存設(shè)備只緩存本地存儲(chǔ)的數(shù)據(jù),從而解決了緩存資源冗余的問(wèn)題。但是該發(fā)明涉及快照間共享緩存的方法,快照是數(shù)據(jù)對(duì)象在某個(gè)時(shí)間點(diǎn)的一致映像。本發(fā)明的快照是數(shù)據(jù)在一個(gè)狀態(tài)下的映像,這些狀態(tài)用于存儲(chǔ)系統(tǒng)內(nèi)部。
[0005]發(fā)明專利“一種基于連續(xù)快照的持續(xù)數(shù)據(jù)保護(hù)的方法”公開(kāi)了一種基于連續(xù)快照的持續(xù)數(shù)據(jù)保護(hù)的方法及系統(tǒng),通過(guò)快照獲取磁盤(pán)或者邏輯存儲(chǔ)單元的一個(gè)副本,通過(guò)連續(xù)快照可以獲取磁盤(pán)連續(xù)多的副本,從而實(shí)現(xiàn)數(shù)據(jù)的連續(xù)保護(hù),通過(guò)回滾快照將邏輯存儲(chǔ)單元恢復(fù)到之前的一個(gè)狀態(tài),或者通過(guò)克隆快照產(chǎn)生一個(gè)新的邏輯磁盤(pán),供用戶掛載使用,本發(fā)明通過(guò)自動(dòng)的快照技術(shù)連續(xù)保存存儲(chǔ)池的狀態(tài),實(shí)現(xiàn)數(shù)據(jù)的持續(xù)保護(hù),在意外發(fā)生時(shí)不僅能夠快速回滾到正常的系統(tǒng)和數(shù)據(jù)狀態(tài),而且能夠通過(guò)選擇有效的歷史狀態(tài)點(diǎn)數(shù)據(jù)來(lái)避免“誤操作、病毒侵襲”等軟災(zāi)難導(dǎo)致的數(shù)據(jù)錯(cuò)誤。但是該發(fā)明用快照實(shí)現(xiàn)數(shù)據(jù)連續(xù)保護(hù)。本發(fā)明涉及用快照表達(dá)并保護(hù)持久存儲(chǔ)數(shù)據(jù)的狀態(tài)。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的在于實(shí)現(xiàn)數(shù)據(jù)狀態(tài)轉(zhuǎn)換并提供數(shù)據(jù)的一個(gè)完全可用的副本或映像,提出了一種狀態(tài)快照,及重映射實(shí)現(xiàn)數(shù)據(jù)狀態(tài)轉(zhuǎn)換的方法。
[0007]具體地來(lái)講,本發(fā)明公開(kāi)了一種基于快照重映射的數(shù)據(jù)狀態(tài)轉(zhuǎn)換的方法,包括如下步驟:
[0008]步驟1,根據(jù)數(shù)據(jù)狀態(tài)獲取該數(shù)據(jù)的起始狀態(tài)快照,該狀態(tài)快照包括映射表和指向新?tīng)顟B(tài)快照的指針,其中該新?tīng)顟B(tài)快照只用于讀取數(shù)據(jù);
[0009]步驟2,通過(guò)快照重映射,動(dòng)態(tài)的將該數(shù)據(jù)狀態(tài)由該起始狀態(tài)快照遷移到該新動(dòng)態(tài)快照,同時(shí)將該起始狀態(tài)快照的指針指向該新?tīng)顟B(tài)快照并生成狀態(tài)快照鏈,同時(shí)修改狀態(tài)快照各自的映射表,以實(shí)現(xiàn)數(shù)據(jù)狀態(tài)轉(zhuǎn)換。
[0010]所述的基于快照重映射的數(shù)據(jù)狀態(tài)轉(zhuǎn)換的方法,該步驟2中修改狀態(tài)快照各自的映射表的具體步驟為:將該起始狀態(tài)快照的映射表中數(shù)據(jù)塊對(duì)應(yīng)的表項(xiàng)填入該新?tīng)顟B(tài)快照的映射表,同時(shí)刪除該起始狀態(tài)快照的該映射表中的該表項(xiàng)。
[0011]所述的基于快照重映射的數(shù)據(jù)狀態(tài)轉(zhuǎn)換的方法,還包括該起始狀態(tài)快照通過(guò)寫(xiě)時(shí)轉(zhuǎn)向技術(shù)將新數(shù)據(jù)寫(xiě)入到硬盤(pán)或存儲(chǔ)系統(tǒng),并修改該起始狀態(tài)快照的映射表指向新數(shù)據(jù)。
[0012]所述的基于快照重映射的數(shù)據(jù)狀態(tài)轉(zhuǎn)換的方法,還包括:讀取數(shù)據(jù)時(shí),按順序依次讀取該狀態(tài)快照鏈中各狀態(tài)快照的映射表,當(dāng)讀取該起始狀態(tài)快照的映射表時(shí),如果命中,則根據(jù)該映射表查找與其相對(duì)應(yīng)的數(shù)據(jù)塊中的數(shù)據(jù)并讀取該數(shù)據(jù),否則讀取該新?tīng)顟B(tài)快照的映射表,如果命中,則根據(jù)該新?tīng)顟B(tài)快照的映射表查找與其相對(duì)應(yīng)的數(shù)據(jù)塊中的數(shù)據(jù)并讀取該數(shù)據(jù),否則繼續(xù)讀取后續(xù)狀態(tài)快照,如果沒(méi)有后續(xù)狀態(tài),則返回空值。
[0013]所述的基于快照重映射的數(shù)據(jù)狀態(tài)轉(zhuǎn)換的方法,還包括映射表修改后,釋放空閑數(shù)據(jù)塊的資源,為后續(xù)數(shù)據(jù)提供寫(xiě)入空間。
[0014]本發(fā)明還公開(kāi)了一種基于快照重映射的數(shù)據(jù)狀態(tài)轉(zhuǎn)換的系統(tǒng),其特征在于,包括:
[0015]獲取模塊,用于根據(jù)數(shù)據(jù)狀態(tài)獲取該數(shù)據(jù)的起始狀態(tài)快照,該狀態(tài)快照包括映射表和指向新?tīng)顟B(tài)快照的指針,其中該新?tīng)顟B(tài)快照只用于讀取數(shù)據(jù);
[0016]遷移模塊,用于通過(guò)快照重映射,動(dòng)態(tài)的將該數(shù)據(jù)狀態(tài)由該起始狀態(tài)快照遷移到該新動(dòng)態(tài)快照,同時(shí)將該起始狀態(tài)快照的指針指向該新?tīng)顟B(tài)快照并生成狀態(tài)快照鏈,同時(shí)修改狀態(tài)快照各自的映射表,以實(shí)現(xiàn)數(shù)據(jù)狀態(tài)轉(zhuǎn)換。
[0017]所述的基于快照重映射的數(shù)據(jù)狀態(tài)轉(zhuǎn)換的系統(tǒng),還包括修改映射表模塊,該模塊用于將該起始狀態(tài)快照的映射表中數(shù)據(jù)塊對(duì)應(yīng)的表項(xiàng)填入該新?tīng)顟B(tài)快照的映射表,同時(shí)刪除該起始狀態(tài)快照的該映射表中的該表項(xiàng)。
[0018]所述的基于快照重映射的數(shù)據(jù)狀態(tài)轉(zhuǎn)換的系統(tǒng),還包括寫(xiě)入數(shù)據(jù)模塊,該模塊用于通過(guò)寫(xiě)時(shí)轉(zhuǎn)向技術(shù)將新數(shù)據(jù)寫(xiě)入到硬盤(pán)或存儲(chǔ)系統(tǒng),并修改該起始狀態(tài)快照的映射表指向新數(shù)據(jù)。
[0019]所述的基于快照重映射的數(shù)據(jù)狀態(tài)轉(zhuǎn)換的系統(tǒng),還包括讀取數(shù)據(jù)模塊,該模塊用于讀取數(shù)據(jù)時(shí),按順序依次讀取該狀態(tài)快照鏈中各狀態(tài)快照的映射表,當(dāng)讀取該起始狀態(tài)快照的映射表時(shí),如果命中,則根據(jù)該映射表查找與其相對(duì)應(yīng)的數(shù)據(jù)塊中的數(shù)據(jù)并讀取該數(shù)據(jù),否則讀取該新?tīng)顟B(tài)快照的映射表,如果命中,則根據(jù)該新?tīng)顟B(tài)快照的映射表查找與其相對(duì)應(yīng)的數(shù)據(jù)塊中的數(shù)據(jù)并讀取該數(shù)據(jù),否則繼續(xù)讀取后續(xù)狀態(tài)快照,如果沒(méi)有后續(xù)狀態(tài),則返回空值。
[0020]所述的基于快照重映射的數(shù)據(jù)狀態(tài)轉(zhuǎn)換的系統(tǒng),還包括釋放資源模塊,該模塊用于釋放空閑數(shù)據(jù)塊的資源,為后續(xù)數(shù)據(jù)提供寫(xiě)入空間。
[0021]由以上方案可知,本發(fā)明的優(yōu)點(diǎn)在于:
[0022]狀態(tài)快照提供了 一個(gè)完全可用的映像,可產(chǎn)生數(shù)據(jù)對(duì)象在同一個(gè)狀態(tài)下一致的數(shù)據(jù)副本;在線實(shí)現(xiàn)無(wú)需數(shù)據(jù)遷移的持久存儲(chǔ)數(shù)據(jù)的狀態(tài)轉(zhuǎn)換,減少更改持久存儲(chǔ)的數(shù)據(jù)狀態(tài)的開(kāi)銷。
【專利附圖】
【附圖說(shuō)明】
[0023]圖1為狀態(tài)快照示意圖;
[0024]圖2為更改數(shù)據(jù)塊狀態(tài)示意圖;
[0025]圖3為源卷寫(xiě)入數(shù)據(jù)流程圖;
[0026]圖4為數(shù)據(jù)狀態(tài)轉(zhuǎn)換示意圖;
[0027]圖5為資源釋放示意圖;
[0028]其中附圖標(biāo)記為:
[0029]I為狀態(tài)快照(源卷);
[0030]2為狀態(tài)快照(只讀);
[0031]3為數(shù)據(jù)塊;
[0032]步驟100為源卷寫(xiě)入數(shù)據(jù)步驟,包括:
[0033]步驟101/102/103/104。
【具體實(shí)施方式】
[0034]本發(fā)明中的快照是數(shù)據(jù)達(dá)到某一個(gè)狀態(tài)時(shí)的映像,對(duì)一個(gè)基于狀態(tài)建立的快照,其中快照可見(jiàn)的所有數(shù)據(jù)都可統(tǒng)一在該狀態(tài)下,如圖1所示,從狀態(tài)快照讀I取數(shù)據(jù)時(shí),首先讀取狀態(tài)快照I的映射表,如果未命中,則需要搜索狀態(tài)快照I的后續(xù)一個(gè)狀態(tài)快照2。狀態(tài)快照主要結(jié)構(gòu)包括映射表、指向下一個(gè)狀態(tài)快照的指針,其中,狀態(tài)快照I為源卷,源卷使用寫(xiě)時(shí)轉(zhuǎn)向技術(shù)(Redirect-On-Write, ROW),將新數(shù)據(jù)寫(xiě)入到硬盤(pán)或存儲(chǔ)系統(tǒng)中未被使用的位置,然后修改資源映射表指向新數(shù)據(jù)。后續(xù)狀態(tài)快照2只讀,不允許寫(xiě)入。
[0035]傳統(tǒng)的快照用來(lái)表達(dá)某個(gè)時(shí)間點(diǎn)的數(shù)據(jù),因此一個(gè)時(shí)間點(diǎn)的數(shù)據(jù)對(duì)象靜態(tài)的不變地屬于該時(shí)間點(diǎn)的快照。而本發(fā)明中一個(gè)數(shù)據(jù)對(duì)象可以根據(jù)狀態(tài)不同,動(dòng)態(tài)地由一個(gè)狀態(tài)的快照遷移到另外一個(gè)狀態(tài)的快照,該過(guò)程通過(guò)數(shù)據(jù)塊的重映射實(shí)現(xiàn)數(shù)據(jù)狀態(tài)轉(zhuǎn)換,不需拷貝數(shù)據(jù),如圖2所示,狀態(tài)快照I的指針指向狀態(tài)快照2,解除狀態(tài)快照I對(duì)數(shù)據(jù)塊3的映射,同時(shí)建立狀態(tài)快照2對(duì)數(shù)據(jù)塊3的映射,重映射過(guò)程需要實(shí)現(xiàn)兩個(gè)快照上的映射表原子地一起修改。
[0036]數(shù)據(jù)寫(xiě)入狀態(tài)快照I的具體步驟為:數(shù)據(jù)寫(xiě)入狀態(tài)快照I (源卷)的過(guò)程采用寫(xiě)時(shí)轉(zhuǎn)向技術(shù),將數(shù)據(jù)寫(xiě)入新分配的存儲(chǔ)單元,然后更新映射表,如圖3所示,執(zhí)行步驟101寫(xiě)入數(shù)據(jù),將數(shù)據(jù)寫(xiě)入狀態(tài)快照I中SO號(hào)數(shù)據(jù)塊,執(zhí)行步驟102寫(xiě)重定向,對(duì)狀態(tài)快照I中SO號(hào)數(shù)據(jù)塊寫(xiě)操作轉(zhuǎn)發(fā)到一個(gè)新分配的Pa數(shù)據(jù)塊,數(shù)據(jù)寫(xiě)入Pa數(shù)據(jù)塊,執(zhí)行步驟103更新映射表,寫(xiě)入Pa數(shù)據(jù)塊完成后,修改狀態(tài)快照I的映射表,建立映射S0->pa,執(zhí)行步驟104返回,根據(jù)以上步驟繼續(xù)將數(shù)據(jù)寫(xiě)入S1-S4號(hào)數(shù)據(jù)塊。
[0037]修改映射表實(shí)現(xiàn)數(shù)據(jù)狀態(tài)轉(zhuǎn)換的具體步驟為:如圖4所示,將狀態(tài)快照I的映射表中S0、S1、S2號(hào)數(shù)據(jù)塊對(duì)應(yīng)的表項(xiàng)填入狀態(tài)快照2的映射表,然后刪除狀態(tài)快照I的映射表中的表項(xiàng),狀態(tài)快照I的下一個(gè)狀態(tài)記錄在狀態(tài)快照的元數(shù)據(jù)中,狀態(tài)快照I的下一個(gè)狀態(tài)是狀態(tài)快照2。[0038]讀取數(shù)據(jù)的具體步驟為:按狀態(tài)快照鏈的順序依次搜索,直到搜索到要讀取的數(shù)據(jù),首先讀取狀態(tài)快照1,先搜索狀態(tài)快照I的映射表,如果命中,則根據(jù)映射找到實(shí)際數(shù)據(jù)塊并讀取數(shù)據(jù),如果沒(méi)有命中狀態(tài)快照I的映射表,那么搜索狀態(tài)快照2的映射表,如果命中,則根據(jù)映射找到實(shí)際數(shù)據(jù)塊并讀取數(shù)據(jù),如果沒(méi)有命中狀態(tài)快照2的映射表,那么繼續(xù)搜索后續(xù)狀態(tài)快照,如果沒(méi)有后續(xù)狀態(tài)快照,那么返回空值。
[0039]釋放空閑數(shù)據(jù)塊資源的具體步驟為:如圖5所示,寫(xiě)入狀態(tài)快照I中S0、S1、S2、S3、S4號(hào)塊,數(shù)據(jù)寫(xiě)入新分配的數(shù)據(jù)塊p0、pl、p2、p3、p4,并建立新的表項(xiàng)。由于數(shù)據(jù)塊pd、pe不再被映射表項(xiàng)引用,因此釋放這兩個(gè)數(shù)據(jù)塊的資源,為后續(xù)數(shù)據(jù)的寫(xiě)入提供空間,提高效率。
[0040]本發(fā)明包括的模塊為:獲取模塊、遷移模塊、修改映射表模塊、寫(xiě)入數(shù)據(jù)模塊、讀取數(shù)據(jù)模塊、釋放資源模塊。
[0041]獲取模塊,用于根據(jù)數(shù)據(jù)狀態(tài)獲取該數(shù)據(jù)的起始狀態(tài)快照,該狀態(tài)快照包括映射表和指向新?tīng)顟B(tài)快照的指針,其中該新?tīng)顟B(tài)快照只用于讀取數(shù)據(jù);
[0042]遷移模塊,用于通過(guò)快照重映射,動(dòng)態(tài)的將該數(shù)據(jù)狀態(tài)由該起始狀態(tài)快照遷移到該新動(dòng)態(tài)快照,同時(shí)將該起始狀態(tài)快照的指針指向該新?tīng)顟B(tài)快照并生成狀態(tài)快照鏈,同時(shí)修改狀態(tài)快照各自的映射表,以實(shí)現(xiàn)數(shù)據(jù)狀態(tài)轉(zhuǎn)換。
[0043]修改映射表模塊,該模塊用于將該起始狀態(tài)快照的映射表中數(shù)據(jù)塊對(duì)應(yīng)的表項(xiàng)填入該新?tīng)顟B(tài)快照的映射表,同時(shí)刪除該起始狀態(tài)快照的該映射表中的該表項(xiàng)。
[0044]寫(xiě)入數(shù)據(jù)模塊,該模塊用于通過(guò)寫(xiě)時(shí)轉(zhuǎn)向技術(shù)將新數(shù)據(jù)寫(xiě)入到硬盤(pán)或存儲(chǔ)系統(tǒng),并修改該起始狀態(tài)快照的映射表指向新數(shù)據(jù)。
[0045]讀取數(shù)據(jù)模塊,該模塊用于讀取數(shù)據(jù)時(shí),按順序依次讀取該狀態(tài)快照鏈中各狀態(tài)快照的映射表,當(dāng)讀取該起始狀態(tài)快照的映射表時(shí),如果命中,則根據(jù)該映射表查找與其相對(duì)應(yīng)的數(shù)據(jù)塊中的數(shù)據(jù)并讀取該數(shù)據(jù),否則讀取該新?tīng)顟B(tài)快照的映射表,如果命中,則根據(jù)該新?tīng)顟B(tài)快照的映射表查找與其相對(duì)應(yīng)的數(shù)據(jù)塊中的數(shù)據(jù)并讀取該數(shù)據(jù),否則繼續(xù)讀取后續(xù)狀態(tài)快照,如果沒(méi)有后續(xù)狀態(tài),則返回空值。
[0046]釋放資源模塊,該模塊用于釋放空閑數(shù)據(jù)塊的資源,為后續(xù)數(shù)據(jù)提供寫(xiě)入空間。
【權(quán)利要求】
1.一種基于快照重映射的數(shù)據(jù)狀態(tài)轉(zhuǎn)換的方法,其特征在于,包括如下步驟: 步驟I,根據(jù)數(shù)據(jù)狀態(tài)獲取該數(shù)據(jù)的起始狀態(tài)快照,該狀態(tài)快照包括映射表和指向新?tīng)顟B(tài)快照的指針,其中該新?tīng)顟B(tài)快照只用于讀取數(shù)據(jù); 步驟2,通過(guò)快照重映射,動(dòng)態(tài)的將該數(shù)據(jù)狀態(tài)由該起始狀態(tài)快照遷移到該新動(dòng)態(tài)快照,同時(shí)將該起始狀態(tài)快照的指針指向該新?tīng)顟B(tài)快照并生成狀態(tài)快照鏈,同時(shí)修改狀態(tài)快照各自的映射表,以實(shí)現(xiàn)數(shù)據(jù)狀態(tài)轉(zhuǎn)換。
2.如權(quán)利要求1所述的基于快照重映射的數(shù)據(jù)狀態(tài)轉(zhuǎn)換的方法,其特征在于,該步驟2中修改狀態(tài)快照各自的映射表的具體步驟為:將該起始狀態(tài)快照的映射表中數(shù)據(jù)塊對(duì)應(yīng)的表項(xiàng)填入該新?tīng)顟B(tài)快照的映射表,同時(shí)刪除該起始狀態(tài)快照的該映射表中的該表項(xiàng)。
3.如權(quán)利要求1所述的基于快照重映射的數(shù)據(jù)狀態(tài)轉(zhuǎn)換的方法,其特征在于,還包括該起始狀態(tài)快照通過(guò)寫(xiě)時(shí)轉(zhuǎn)向技術(shù)將新數(shù)據(jù)寫(xiě)入到硬盤(pán)或存儲(chǔ)系統(tǒng),并修改該起始狀態(tài)快照的映射表指向新數(shù)據(jù)。
4.如權(quán)利要求1所述的基于快照重映射的數(shù)據(jù)狀態(tài)轉(zhuǎn)換的方法,其特征在于,還包括:讀取數(shù)據(jù)時(shí),按順序依次讀取該狀態(tài)快照鏈中各狀態(tài)快照的映射表,當(dāng)讀取該起始狀態(tài)快照的映射表時(shí),如果命中,則根據(jù)該映射表查找與其相對(duì)應(yīng)的數(shù)據(jù)塊中的數(shù)據(jù)并讀取該數(shù)據(jù),否則讀取該新?tīng)顟B(tài)快照的映射表,如果命中,則根據(jù)該新?tīng)顟B(tài)快照的映射表查找與其相對(duì)應(yīng)的數(shù)據(jù)塊中的數(shù)據(jù)并讀取該數(shù)據(jù),否則繼續(xù)讀取后續(xù)狀態(tài)快照,如果沒(méi)有后續(xù)狀態(tài),則返回空值。
5.如權(quán)利要求1所述的基于快照重映射的數(shù)據(jù)狀態(tài)轉(zhuǎn)換的方法,其特征在于,還包括映射表修改后,釋放空閑數(shù)據(jù)塊的資源,為后續(xù)數(shù)據(jù)提供寫(xiě)入空間。
6.一種基于快照重映射的數(shù)據(jù)狀態(tài)轉(zhuǎn)換的系統(tǒng),其特征在于,包括: 獲取模塊,用于根據(jù)數(shù)據(jù)狀態(tài)獲取該數(shù)據(jù)的起始狀態(tài)快照,該狀態(tài)快照包括映射表和指向新?tīng)顟B(tài)快照的指針,其中該新?tīng)顟B(tài)快照只用于讀取數(shù)據(jù); 遷移模塊,用于通過(guò)快照重映射,動(dòng)態(tài)的將該數(shù)據(jù)狀態(tài)由該起始狀態(tài)快照遷移到該新動(dòng)態(tài)快照,同時(shí)將該起始狀態(tài)快照的指針指向該新?tīng)顟B(tài)快照并生成狀態(tài)快照鏈,同時(shí)修改狀態(tài)快照各自的映射表,以實(shí)現(xiàn)數(shù)據(jù)狀態(tài)轉(zhuǎn)換。
7.如權(quán)利要求6所述的基于快照重映射的數(shù)據(jù)狀態(tài)轉(zhuǎn)換的系統(tǒng),其特征在于,還包括修改映射表模塊,該模塊用于將該起始狀態(tài)快照的映射表中數(shù)據(jù)塊對(duì)應(yīng)的表項(xiàng)填入該新?tīng)顟B(tài)快照的映射表,同時(shí)刪除該起始狀態(tài)快照的該映射表中的該表項(xiàng)。
8.如權(quán)利要求6所述的基于快照重映射的數(shù)據(jù)狀態(tài)轉(zhuǎn)換的系統(tǒng),其特征在于,還包括寫(xiě)入數(shù)據(jù)模塊,該模塊用于通過(guò)寫(xiě)時(shí)轉(zhuǎn)向技術(shù)將新數(shù)據(jù)寫(xiě)入到硬盤(pán)或存儲(chǔ)系統(tǒng),并修改該起始狀態(tài)快照的映射表指向新數(shù)據(jù)。
9.如權(quán)利要求6所述的基于快照重映射的數(shù)據(jù)狀態(tài)轉(zhuǎn)換的系統(tǒng),其特征在于,還包括讀取數(shù)據(jù)模塊,該模塊用于讀取數(shù)據(jù)時(shí),按順序依次讀取該狀態(tài)快照鏈中各狀態(tài)快照的映射表,當(dāng)讀取該起始狀態(tài)快照的映射表時(shí),如果命中,則根據(jù)該映射表查找與其相對(duì)應(yīng)的數(shù)據(jù)塊中的數(shù)據(jù)并讀取該數(shù)據(jù),否則讀取該新?tīng)顟B(tài)快照的映射表,如果命中,則根據(jù)該新?tīng)顟B(tài)快照的映射表查找與其相對(duì)應(yīng)的數(shù)據(jù)塊中的數(shù)據(jù)并讀取該數(shù)據(jù),否則繼續(xù)讀取后續(xù)狀態(tài)快照,如果沒(méi)有后續(xù)狀態(tài),則返回空值。
10.如權(quán)利要求6所述的基于快照重映射的數(shù)據(jù)狀態(tài)轉(zhuǎn)換的系統(tǒng),其特征在于,還包括釋放資 源模塊,該模塊用于釋放空閑數(shù)據(jù)塊的資源,為后續(xù)數(shù)據(jù)提供寫(xiě)入空間。
【文檔編號(hào)】G06F11/14GK103838647SQ201410053469
【公開(kāi)日】2014年6月4日 申請(qǐng)日期:2014年2月17日 優(yōu)先權(quán)日:2014年2月17日
【發(fā)明者】孫振元, 郭明陽(yáng), 許魯 申請(qǐng)人:中國(guó)科學(xué)院計(jì)算技術(shù)研究所, 天津中科藍(lán)鯨信息技術(shù)有限公司