專利名稱:一種保存快照數(shù)據(jù)的方法及存儲(chǔ)快照系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及^f茲盤陣列技術(shù)領(lǐng)域,尤其涉及一種保存快照數(shù)據(jù)的方法及存 儲(chǔ)快照系統(tǒng)。
背景技術(shù):
在數(shù)字時(shí)代,公司電子化存儲(chǔ)的關(guān)鍵業(yè)務(wù)數(shù)據(jù)日益增長(zhǎng)。當(dāng)發(fā)生文件丟 失、數(shù)據(jù)損壞或者用戶誤才喿作時(shí)必須能夠筒單快速恢復(fù)??煺占夹g(shù)為此提供 了解決方案,方便實(shí)現(xiàn)數(shù)據(jù)備份。
SNIA (存儲(chǔ)網(wǎng)絡(luò)行業(yè)協(xié)會(huì))對(duì)快照(Snapshot)的定義是關(guān)于指定數(shù) 據(jù)集合的一個(gè)完全可用拷貝,該拷貝包括相應(yīng)數(shù)據(jù)在某個(gè)時(shí)間點(diǎn)(拷貝開始 的時(shí)間點(diǎn))的映4象。
在該快照方法中,將進(jìn)行讀寫的邏輯巻稱為源邏輯巻,實(shí)現(xiàn)源邏輯巻快 照增加的輔助邏輯巻稱為快照邏輯巻。差異復(fù)制是建立快照中方便快捷的方 式,差異復(fù)制包4舌兩種方法,寫拷貝(Copy-on-Write )和重定向?qū)?(Redirect-on-Write )。寫拷貝方法是每次接收寫操作時(shí),先將源邏輯巻中 被覆蓋的數(shù)據(jù)拷貝到快照邏輯巻,然后將數(shù)據(jù)寫到源邏輯巻。重定向?qū)懛椒?是每次接收寫操作時(shí),直接將數(shù)據(jù)寫到快照邏輯巻中。在該快照系統(tǒng)中,處 理數(shù)據(jù)的單位為一個(gè)條帶大小的數(shù)據(jù),稱為一個(gè)數(shù)據(jù)塊。
在實(shí)際應(yīng)用中發(fā)現(xiàn),訪問(wèn)磁盤空間時(shí),大多數(shù)情況下都是逐步向磁盤上 寫數(shù)據(jù),而不是一次性寫滿。在磁盤空間未寫滿的情況下,可以認(rèn)為空閑空 間上的數(shù)據(jù)是無(wú)用數(shù)據(jù),而在做快照時(shí)因?yàn)闊o(wú)法區(qū)分有用數(shù)據(jù)和無(wú)用數(shù)據(jù), 因此也將這些無(wú)用數(shù)據(jù)當(dāng)作舊數(shù)據(jù)保存起來(lái)。此種情況下是將數(shù)據(jù)區(qū)分為有 用數(shù)據(jù)和無(wú)用數(shù)據(jù)進(jìn)行對(duì)待。另一種情況是在使用前對(duì)硬盤進(jìn)行初始化,將 所有數(shù)據(jù)都初始化為零,在快照的處理過(guò)程中,將所有數(shù)據(jù)都為零的數(shù)據(jù)塊 認(rèn)為是常量數(shù)據(jù)塊,也可認(rèn)為是前一種情況中的無(wú)用數(shù)據(jù)。
權(quán)利要求
1、一種保存快照數(shù)據(jù)的方法,其特征在于,包括存儲(chǔ)快照系統(tǒng)快照源邏輯卷上的數(shù)據(jù);所述存儲(chǔ)快照系統(tǒng)判斷若所述數(shù)據(jù)是無(wú)用數(shù)據(jù)或常量數(shù)據(jù)塊,則不拷貝該數(shù)據(jù);其中,該存儲(chǔ)快照系統(tǒng)是通過(guò)寫入標(biāo)記表區(qū)分所述源邏輯卷上的無(wú)用數(shù)據(jù)和有用數(shù)據(jù);其中,該寫入標(biāo)記表用于記錄寫數(shù)據(jù)情況。
2、 如權(quán)利要求l所述的方法,其特征在于,所述寫入標(biāo)記表包含源邏輯巻地址和標(biāo)志位;其中,該源邏輯巻地址 為數(shù)據(jù)塊在源邏輯巻中的開始地址;該標(biāo)志位用于記錄該數(shù)據(jù)塊是否被修 改,若該數(shù)據(jù)塊被修改,則其標(biāo)志位設(shè)置為1;若該數(shù)據(jù)塊未被修改,則其 標(biāo)志位設(shè)置為0;所述存儲(chǔ)快照系統(tǒng)通過(guò)寫入標(biāo)記表區(qū)分源邏輯巻上的無(wú)用數(shù)據(jù)和有用 數(shù)據(jù),是指所述存儲(chǔ)快照系統(tǒng)根據(jù)所述寫入標(biāo)記表判斷若所述源邏輯巻上數(shù)據(jù)塊 對(duì)應(yīng)的標(biāo)志位為l,則判定該數(shù)據(jù)塊為有用數(shù)據(jù);判斷若所述源邏輯巻上數(shù) 據(jù)塊對(duì)應(yīng)的標(biāo)志位為0,則判定該數(shù)據(jù)塊為無(wú)用數(shù)據(jù)。
3、 如權(quán)利要求l所述的方法,其特征在于,所述存儲(chǔ)快照系統(tǒng)判斷所述源邏輯巻上的所述數(shù)據(jù)是常量數(shù)據(jù)塊,是指所述存儲(chǔ)快照系統(tǒng)是通過(guò)判斷若所述源邏輯巻上的所述數(shù)據(jù)中所有數(shù) 據(jù)都為0,確定該源邏輯巻上的所述數(shù)據(jù)是常量數(shù)據(jù)塊。
4、 如權(quán)利要求2所述的方法,其特征在于,當(dāng)所述存儲(chǔ)快照系統(tǒng)快照所述源邏輯巻上的數(shù)據(jù)是快照前向所述源邏 輯巻寫數(shù)據(jù),則分為以下步驟步驟11、所述存儲(chǔ)快照系統(tǒng)對(duì)源邏輯巻啟動(dòng)寫數(shù)據(jù)的命令,根據(jù)數(shù)據(jù) 塊大小進(jìn)行分解,分解為多個(gè)數(shù)據(jù)塊后依次處理每個(gè)數(shù)據(jù)塊;步驟12、所述存儲(chǔ)快照系統(tǒng)從分解后的數(shù)據(jù)塊中取一個(gè)數(shù)據(jù)塊進(jìn)行處理;步驟13、所述存儲(chǔ)快照系統(tǒng)根據(jù)數(shù)據(jù)塊的開始地址到所述源邏輯巻的 所述寫入標(biāo)記表中查找該數(shù)據(jù)塊對(duì)應(yīng)的標(biāo)志位,并將該標(biāo)志位設(shè)置為1;步驟14、所述存儲(chǔ)快照系統(tǒng)判斷當(dāng)前處理的數(shù)據(jù)塊是否是最后一個(gè)數(shù) 據(jù)塊,如果是,則完成對(duì)所述源邏輯巻的寫數(shù)據(jù)過(guò)程;否則執(zhí)行步驟12。
5、 如權(quán)利要求l所述的方法,其特征在于,所述存儲(chǔ)快照系統(tǒng)快照所述源邏輯巻上的數(shù)據(jù)時(shí),還包括所述存儲(chǔ)快照系統(tǒng)對(duì)每個(gè)快照保存一個(gè)修改記錄表,及在快照邏輯巻中 分配數(shù)據(jù)區(qū)域用于保存做快照后所述源邏輯巻中凈皮覆蓋的數(shù)據(jù);所述修改記錄表包含源邏輯巻地址和快照邏輯巻地址;所述源邏輯巻 地址是每個(gè)數(shù)據(jù)塊在源邏輯巻中的開始地址,所述快照邏輯巻地址是數(shù)據(jù)塊 被覆蓋的數(shù)據(jù)在快照邏輯巻中被保存的開始地址;所述修改記錄表中記錄的 未進(jìn)行拷貝的數(shù)據(jù)的快照邏輯巻地址為-l;其中,在讀快照時(shí),若所述快照 邏輯巻地址為-1時(shí),則返回該數(shù)據(jù)塊的所有數(shù)據(jù)為0。
6、 如權(quán)利要求5所述的方法,其特征在于,當(dāng)所述存儲(chǔ)快照系統(tǒng)快照所述源邏輯巻上的數(shù)據(jù)是快照后向所述源邏 輯巻寫lt據(jù),則分為以下步驟步驟21、所述存儲(chǔ)快照系統(tǒng)對(duì)源邏輯巻啟動(dòng)寫數(shù)據(jù)的命令,根據(jù)數(shù)據(jù) 塊大小進(jìn)行分解,分解為多個(gè)數(shù)據(jù)塊后依次處理每個(gè)數(shù)據(jù)塊;步驟22、所述存儲(chǔ)快照系統(tǒng)從分解后的數(shù)據(jù)塊中取一個(gè)數(shù)據(jù)塊進(jìn)行處理;步驟23、所述存儲(chǔ)快照系統(tǒng)根據(jù)數(shù)據(jù)塊的開始地址到快照的修改記錄 表中查找對(duì)應(yīng)的修改記錄,若找到該修改記錄,則執(zhí)行步驟22;否則執(zhí)行 步驟24。步驟24、所述存儲(chǔ)快照系統(tǒng)到所述源邏輯巻的所述寫入標(biāo)記表中查找 該數(shù)據(jù)塊對(duì)應(yīng)的標(biāo)志位,判斷若該標(biāo)志位為1,則執(zhí)行步驟25,否則執(zhí)行步驟26;步驟25、所述存儲(chǔ)快照系統(tǒng)向所述源邏輯巻發(fā)送讀取所述數(shù)據(jù)塊的命 令,向快照邏輯巻申請(qǐng)空間保存數(shù)據(jù),將讀取的數(shù)據(jù)寫入快照邏輯巻中申請(qǐng) 的位置,將該凝:據(jù)塊在快照中保存的開始地址和在源邏輯巻中的開始地址保 存到快照的修改記錄表中,執(zhí)行步驟27;步驟26、所述存儲(chǔ)快照系統(tǒng)將該數(shù)據(jù)塊在所述源邏輯巻中的開始地址 和快照邏輯巻地址設(shè)置為-1 ,并保存到快照的修改記錄表中;步驟27、所述存儲(chǔ)快照系統(tǒng)判斷判斷當(dāng)前處理的數(shù)據(jù)塊是否是最后一 個(gè)數(shù)據(jù)塊,如果是,則完成對(duì)所述源邏輯巻的寫數(shù)據(jù)過(guò)程,否則執(zhí)行步驟 22。
7、 如權(quán)利要求6所述的方法,其特征在于,所述存儲(chǔ)快照系統(tǒng)根據(jù)數(shù)據(jù)塊的開始地址到快照的修改記錄表中查找 對(duì)應(yīng)的修改記錄,若找到該修改記錄后,還包括步驟所述存儲(chǔ)快照系統(tǒng)向源邏輯巻發(fā)送讀取所述數(shù)據(jù)塊的命令,通過(guò)判斷該 數(shù)據(jù)塊中所有數(shù)據(jù)是否都為0,如果是,則將該數(shù)據(jù)塊在源邏輯巻中的開始 地址和快照邏輯巻地址設(shè)置為-1,并保存到快照的修改記錄表中,直至處理 到最后一個(gè)數(shù)據(jù)塊,完成對(duì)源邏輯巻的寫數(shù)據(jù)過(guò)程;否則,所述存儲(chǔ)快照系統(tǒng)向快照邏輯巻申請(qǐng)空間保存數(shù)據(jù),將讀取的數(shù) 據(jù)寫入快照邏輯巻中申請(qǐng)的位置,將該數(shù)據(jù)塊在快照中保存的開始地址和在 源邏輯巻中的開始地址保存到快照的修改記錄表中,直至處理到最后一個(gè)數(shù) 據(jù)塊,完成對(duì)源邏輯巻的寫數(shù)據(jù)過(guò)程。
8、 如權(quán)利要求5所述的方法,其特征在于,當(dāng)所述存儲(chǔ)快照系統(tǒng)快照所述源邏輯巻上的數(shù)據(jù)是讀快照的過(guò)程,則分 為以下步驟步驟31、所述存儲(chǔ)快照系統(tǒng)對(duì)所述源邏輯巻啟動(dòng)讀快照的命令,根據(jù) 數(shù)據(jù)塊大小進(jìn)行分解,分解為多個(gè)數(shù)據(jù)塊后依次處理每個(gè)數(shù)據(jù)塊;步驟32、所述存儲(chǔ)快照系統(tǒng)從分解的數(shù)據(jù)塊中取一個(gè)數(shù)據(jù)塊進(jìn)行處理,根據(jù)數(shù)據(jù)塊的開始地址到快照的修改記錄表中查找對(duì)應(yīng)的修改記錄,如果找到該數(shù)據(jù)塊的修改記錄,則執(zhí)行步驟33,否則執(zhí)行步驟34;步驟33、所述存儲(chǔ)快照系統(tǒng)取所述數(shù)據(jù)塊的修改記錄表中的快照邏輯 巻地址,判斷該快照邏輯巻地址是否為-1,如果是,則執(zhí)行步驟36,否則執(zhí) 行步驟35;步驟34、所述存儲(chǔ)快照系統(tǒng)根據(jù)所述數(shù)據(jù)塊開始地址到源邏輯巻中讀 取該數(shù)據(jù)塊,讀完后返回讀結(jié)果,執(zhí)行步驟37;步驟35、所述存儲(chǔ)快照系統(tǒng)取所述數(shù)據(jù)塊的修改記錄表中的快照邏輯 巻地址,到快照邏輯巻中讀取該數(shù)據(jù)塊,讀完后返回讀結(jié)果,執(zhí)行步驟37;步驟36、所述存儲(chǔ)快照系統(tǒng)設(shè)置所述數(shù)據(jù)塊中的所有數(shù)據(jù)為0,返回讀 結(jié)果;步驟37、所述存儲(chǔ)快照系統(tǒng)判斷當(dāng)前處理的數(shù)據(jù)塊是否是最后一個(gè)數(shù) 據(jù)塊,如果是,則完成讀快照的過(guò)程,否則,執(zhí)行步驟32。
9、 一種存儲(chǔ)快照系統(tǒng),其特征在于, 包括快照單元和控制單元,其中,所述控制單元,用于通過(guò)讀取寫入標(biāo)記表判斷若源邏輯巻上的數(shù)據(jù)是無(wú) 用數(shù)據(jù),或判斷若源邏輯巻上的數(shù)據(jù)是常量數(shù)據(jù)塊,則向快照單元發(fā)送不拷 貝該數(shù)據(jù)的信息;其中,該控制單元是通過(guò)讀取所述寫入標(biāo)記表區(qū)分源邏輯 巻上的無(wú)用數(shù)據(jù)和有用數(shù)據(jù);其中,該寫入標(biāo)記表用于記錄寫數(shù)據(jù)情況;所述快照單元,用于接收所述控制單元發(fā)送的所述信息,并根據(jù)該信息 快照所述源邏輯巻上的數(shù)據(jù)。
10、 如權(quán)利要求9所述的存儲(chǔ)快照系統(tǒng),其特征在于,所述控制單元讀取的所述寫入標(biāo)記表包含源邏輯巻地址和標(biāo)志位;其 中,該源邏輯巻地址為數(shù)據(jù)塊在源邏輯巻中的開始地址;該標(biāo)志位用于記錄 該數(shù)據(jù)塊是否被修改,若該數(shù)據(jù)塊被修改,則其標(biāo)志位設(shè)置為1;若該數(shù)據(jù) 塊未被修改,則其標(biāo)志位設(shè)置為0;所述控制單元通過(guò)讀取所述寫入標(biāo)記表區(qū)分源邏輯巻上的無(wú)用數(shù)據(jù)和有用數(shù)據(jù),是指所述控制單元根據(jù)讀取的所述寫入標(biāo)記表,判斷若所述源邏輯巻上數(shù)據(jù) 塊對(duì)應(yīng)的標(biāo)志位為1,則判定該數(shù)據(jù)塊為有用數(shù)據(jù);判斷若所述源邏輯巻上 數(shù)據(jù)塊對(duì)應(yīng)的標(biāo)志位為0,則判定該數(shù)據(jù)塊為無(wú)用數(shù)據(jù)。
11、 如權(quán)利要求9所述的存儲(chǔ)快照系統(tǒng),其特征在于,所述控制單元判斷所述源邏輯巻上的數(shù)據(jù)是常量數(shù)據(jù)塊,是指所述控制單元是通過(guò)判斷若所述源邏輯巻上的所述數(shù)據(jù)中所有數(shù)據(jù)都 為0,確定該源邏輯巻上的所述數(shù)據(jù)是常量數(shù)據(jù)塊。
全文摘要
本發(fā)明公開了一種保存快照數(shù)據(jù)的方法及存儲(chǔ)快照系統(tǒng),包括存儲(chǔ)快照系統(tǒng)快照源邏輯卷上的數(shù)據(jù);存儲(chǔ)快照系統(tǒng)判斷若所述數(shù)據(jù)是無(wú)用數(shù)據(jù)或常量數(shù)據(jù)塊,則不拷貝該數(shù)據(jù);其中,該存儲(chǔ)快照系統(tǒng)是通過(guò)寫入標(biāo)記表區(qū)分所述源邏輯卷上的無(wú)用數(shù)據(jù)和有用數(shù)據(jù);其中,該寫入標(biāo)記表用于記錄寫數(shù)據(jù)情況。應(yīng)用本發(fā)明,解決了快照中保存無(wú)用數(shù)據(jù)或者常量數(shù)據(jù)占用存儲(chǔ)空間的問(wèn)題。
文檔編號(hào)G06F11/14GK101661415SQ200910177809
公開日2010年3月3日 申請(qǐng)日期2009年9月21日 優(yōu)先權(quán)日2009年9月21日
發(fā)明者譚海棠, 陳韻霞 申請(qǐng)人:中興通訊股份有限公司