專(zhuān)利名稱::快照資源的處理方法及設(shè)備的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及通信領(lǐng)域,尤其涉及一種快照資源的處理方法及設(shè)備。
背景技術(shù):
:快照(Snapshot)技術(shù)的核心是CFW(CopyOnFirstWrite,第一次寫(xiě)時(shí)拷貝),具體含義是為某一SAN(StorageAreaNetwork,存儲(chǔ)區(qū)域網(wǎng)絡(luò))(也稱為主資源)創(chuàng)建一個(gè)快照資源后,如圖1所示,當(dāng)主資源上的某數(shù)據(jù)塊第一次發(fā)生變化時(shí)(例如數(shù)據(jù)塊B、G和L要被改變?yōu)閿?shù)據(jù)塊B1、G1和Li),系統(tǒng)先把數(shù)據(jù)塊B、G和L拷貝到快照資源中,然后再把新數(shù)據(jù)寫(xiě)入主資源數(shù)據(jù)塊B、G和L所在的位置。當(dāng)該數(shù)據(jù)塊B1、G1和Ll再次發(fā)生變化時(shí),系統(tǒng)直接把新數(shù)據(jù)寫(xiě)入數(shù)據(jù)塊Bi、Gl和Ll所在的位置,而不再把被數(shù)據(jù)塊Bi、Gl和Ll拷貝到快照資源中。這樣,系統(tǒng)保留了創(chuàng)建快照時(shí)刻主資源的數(shù)據(jù)映像,便于數(shù)據(jù)恢復(fù)。如圖2所示,正常情況下啟用快照后,創(chuàng)建時(shí)間點(diǎn)1,主資源有新數(shù)據(jù)A1、B1、C1的寫(xiě)入請(qǐng)求時(shí),系統(tǒng)將相應(yīng)位置的老數(shù)據(jù)A、B、C讀出并寫(xiě)入快照資源,然后主資源寫(xiě)入新數(shù)據(jù)Al、Bi、Cl;主資源有新數(shù)據(jù)A2、B2、C2、D2、E2和F2的寫(xiě)入請(qǐng)求時(shí),快照資源創(chuàng)建時(shí)間點(diǎn)2,系統(tǒng)將主資源中對(duì)應(yīng)數(shù)據(jù)塊的老數(shù)據(jù)Al、Bi、Cl、D、E、F讀出寫(xiě)入快照資源,然后主資源寫(xiě)入新數(shù)據(jù)A2、B2、C2、D2、E2和F2。其中,與上述CFW對(duì)應(yīng),每一時(shí)間點(diǎn)內(nèi)只在主資源上的某數(shù)據(jù)塊第一次發(fā)生變化時(shí)將對(duì)應(yīng)的數(shù)據(jù)寫(xiě)入快照資源。但是,當(dāng)發(fā)生異常時(shí),如圖3所示,假設(shè)在第2次寫(xiě)入新數(shù)據(jù)時(shí),主資源中A2區(qū)塊損壞,無(wú)法正常讀出內(nèi)容(仍能正常寫(xiě)入),則無(wú)法將A2中的老數(shù)據(jù)寫(xiě)入快照資源,系統(tǒng)將中止向主資源內(nèi)寫(xiě)入數(shù)據(jù)。為了保證主資源的可用,現(xiàn)有技術(shù)中主資源和快照資源的實(shí)現(xiàn)是盡量不影響主資源的業(yè)務(wù)運(yùn)行,圖3所示的情況下,將快照資源離線來(lái)優(yōu)先保障主資源本身的業(yè)務(wù)。在上述非正常情況下,讀失敗會(huì)導(dǎo)致快照資源離線,離線后的快照資源將沒(méi)有任何用途,上面保存的數(shù)據(jù)將全部丟失,但是,離線后的快照資源上絕大部分的數(shù)據(jù)都是可以利用的,并不需要因?yàn)橐粋€(gè)讀錯(cuò)誤而全部銷(xiāo)毀,結(jié)合圖3所示,即使讀錯(cuò)誤發(fā)生后,時(shí)間點(diǎn)1的數(shù)據(jù)仍然是可以通過(guò)快照資源恢復(fù)出來(lái)的。其次,離線后的快照資源不能再對(duì)主資源進(jìn)行數(shù)據(jù)保護(hù),主資源就完全暴露在數(shù)據(jù)丟失的風(fēng)險(xiǎn)之下。再次,讀失敗的原因多種多樣,某些情況并不是因?yàn)槲锢碣Y源發(fā)生了實(shí)質(zhì)性的損傷,而是由于環(huán)境、軟件、數(shù)據(jù)讀寫(xiě)等多方面的因素造成的暫時(shí)性的數(shù)據(jù)不能讀取,所以此時(shí)將快照資源離線是不妥當(dāng)?shù)模阅軌驅(qū)煺针x線進(jìn)行優(yōu)化顯得很重要。因此,發(fā)明人認(rèn)為現(xiàn)有技術(shù)中在主資源讀失敗時(shí)將快照資源離線以保證主資源正常使用的操作具有多種弊端。
發(fā)明內(nèi)容本發(fā)明提供了一種快照資源的處理方法及設(shè)備,在主資源讀失敗時(shí)保證快照資源在線,同時(shí)保證主資源的正常使用。本發(fā)明提供了一種快照資源的處理方法,應(yīng)用于存儲(chǔ)區(qū)域網(wǎng)絡(luò)SAN的主資源配置有快照資源的系統(tǒng)中,該方法包括當(dāng)向所述主資源的數(shù)據(jù)塊內(nèi)寫(xiě)入新數(shù)據(jù)時(shí),若發(fā)生讀失敗則將新數(shù)據(jù)寫(xiě)入所述主資源的保留數(shù)據(jù)塊,同時(shí)保留讀失敗的原數(shù)據(jù)塊內(nèi)的數(shù)據(jù);在快照資源中存儲(chǔ)所述保留數(shù)據(jù)塊中的數(shù)據(jù);通過(guò)映射表項(xiàng)存儲(chǔ)所述保留數(shù)據(jù)塊與所述原數(shù)據(jù)塊的位置對(duì)應(yīng)關(guān)系以及當(dāng)前的快照時(shí)間戳;當(dāng)讀取所述原數(shù)據(jù)塊內(nèi)的數(shù)據(jù)時(shí),查找所述映射表項(xiàng)獲取所述保留數(shù)據(jù)塊的位置并從所述保留數(shù)據(jù)塊內(nèi)讀取資源。還包括當(dāng)向所述原數(shù)據(jù)塊寫(xiě)入新數(shù)據(jù)時(shí),若發(fā)生讀失敗則根據(jù)所述映射表項(xiàng)將所述新數(shù)據(jù)寫(xiě)入所述保留數(shù)據(jù)塊;否則,將讀取到的數(shù)據(jù)寫(xiě)入所述快照資源中與所述快照時(shí)間戳對(duì)應(yīng)的位置,將所述新數(shù)據(jù)寫(xiě)入所述原數(shù)據(jù)塊,并刪除所述映射表項(xiàng)。所述映射表項(xiàng)中還包括第一次寫(xiě)入標(biāo)記,用于標(biāo)識(shí)所述原數(shù)據(jù)塊是否第一次有數(shù)據(jù)寫(xiě)入;當(dāng)所述映射表項(xiàng)中還包括第一次寫(xiě)入標(biāo)記時(shí),若向所述原數(shù)據(jù)塊寫(xiě)入新數(shù)據(jù),首先查找所述映射表項(xiàng)中存儲(chǔ)的第一次寫(xiě)入標(biāo)記;如果所述第一次寫(xiě)入標(biāo)記標(biāo)識(shí)為非第一次寫(xiě)入,直接根據(jù)所述映射表項(xiàng)將所述新數(shù)據(jù)寫(xiě)入所述保留數(shù)據(jù)塊;如果所述第一次寫(xiě)入標(biāo)記標(biāo)識(shí)為第一次寫(xiě)入,讀取所述原數(shù)據(jù)塊的數(shù)據(jù),若讀取失敗,則根據(jù)所述映射表項(xiàng)將所述新數(shù)據(jù)寫(xiě)入所述保留數(shù)據(jù)塊,并將所述第一次寫(xiě)入標(biāo)記更新為非第一次寫(xiě)入,若讀取成功,將讀取到的數(shù)據(jù)寫(xiě)入所述快照資源中與所述快照時(shí)間戳對(duì)應(yīng)的位置,將所述新數(shù)據(jù)寫(xiě)入所述原數(shù)據(jù)塊,并刪除所述映射表項(xiàng)。所述第一次寫(xiě)入標(biāo)記在所述快照資源內(nèi)創(chuàng)建新的快照時(shí)間戳后更新為標(biāo)識(shí)第一次寫(xiě)入。若在快照資源中存儲(chǔ)所述保留數(shù)據(jù)塊或原數(shù)據(jù)塊中的數(shù)據(jù)之后、向所述原數(shù)據(jù)塊寫(xiě)入新數(shù)據(jù)之前,所述快照資源內(nèi)沒(méi)有創(chuàng)建新的快照時(shí)間戳,則查找所述映射表項(xiàng)獲知所述第一次寫(xiě)入標(biāo)記標(biāo)識(shí)為非第一次寫(xiě)入,直接將所述新數(shù)據(jù)寫(xiě)入所述保留數(shù)據(jù)塊;若在快照資源中存儲(chǔ)所述保留數(shù)據(jù)塊或原數(shù)據(jù)塊中的數(shù)據(jù)之后、向所述原數(shù)據(jù)塊寫(xiě)入新數(shù)據(jù)之前,所述快照資源內(nèi)創(chuàng)建有新的快照時(shí)間戳,則查找所述映射表項(xiàng)獲知所述第一次寫(xiě)入標(biāo)記標(biāo)識(shí)為第一次寫(xiě)入,讀取所述原數(shù)據(jù)塊的數(shù)據(jù);如果讀取失敗,則根據(jù)所述映射表項(xiàng)將所述新數(shù)據(jù)寫(xiě)入所述保留數(shù)據(jù)塊;如果讀取成功,則將讀取到的數(shù)據(jù)寫(xiě)入所述快照資源中與所述快照時(shí)間戳對(duì)應(yīng)的位置,將所述新數(shù)據(jù)寫(xiě)入所述原數(shù)據(jù)塊,并讀取所述保留數(shù)據(jù)塊內(nèi)的數(shù)據(jù)寫(xiě)入所述快照資源內(nèi)與當(dāng)前快照時(shí)間戳對(duì)應(yīng)的位置。所述保留數(shù)據(jù)塊位于存儲(chǔ)區(qū)域的頭區(qū)域。本發(fā)明提供一種存儲(chǔ)設(shè)備,應(yīng)用于存儲(chǔ)區(qū)域網(wǎng)絡(luò)SAN,包括數(shù)據(jù)存儲(chǔ)的主資源和快照資源,該存儲(chǔ)設(shè)備包括寫(xiě)入單元、存儲(chǔ)單元和讀取單元,其中所述寫(xiě)入單元,與所述存儲(chǔ)單元連接,用于向所述主資源的數(shù)據(jù)塊內(nèi)寫(xiě)入新數(shù)據(jù),并在發(fā)生讀失敗將新數(shù)據(jù)寫(xiě)入所述主資源的保留數(shù)據(jù)塊,保留讀失敗的原數(shù)據(jù)塊內(nèi)的數(shù)據(jù);在快照資源中存儲(chǔ)所述保留數(shù)據(jù)塊中的數(shù)據(jù);所述存儲(chǔ)單元,與所述寫(xiě)入單元連接,用于通過(guò)映射表項(xiàng)存儲(chǔ)所述保留數(shù)據(jù)塊與所述原數(shù)據(jù)塊的位置對(duì)應(yīng)關(guān)系以及當(dāng)前的快照時(shí)間戳;所述讀取單元,與所述存儲(chǔ)單元連接,用于查找所述映射表項(xiàng)獲取所述保留數(shù)據(jù)塊的位置并從所述保留數(shù)據(jù)塊內(nèi)讀取資源。所述寫(xiě)入單元還用于當(dāng)向所述原數(shù)據(jù)塊寫(xiě)入新數(shù)據(jù)時(shí),若讀失敗則根據(jù)所述存儲(chǔ)單元存儲(chǔ)的映射表項(xiàng)將所述新數(shù)據(jù)寫(xiě)入所述保留數(shù)據(jù)塊;否則,將讀取到的數(shù)據(jù)寫(xiě)入所述快照資源中與所述快照時(shí)間戳對(duì)應(yīng)的位置,將所述新數(shù)據(jù)寫(xiě)入所述原數(shù)據(jù)塊,并刪除所述映射表項(xiàng)。所述映射表項(xiàng)中還包括第一次寫(xiě)入標(biāo)記,用于標(biāo)識(shí)所述原數(shù)據(jù)塊是否第一次有數(shù)據(jù)寫(xiě)入;所述寫(xiě)入單元還用于當(dāng)所述映射表項(xiàng)中還包括第一次寫(xiě)入標(biāo)記時(shí),首先查找所述映射表項(xiàng)中存儲(chǔ)的第一次寫(xiě)入標(biāo)記;如果所述第一次寫(xiě)入標(biāo)記標(biāo)識(shí)為非第一次寫(xiě)入,直接根據(jù)所述映射表項(xiàng)將所述新數(shù)據(jù)寫(xiě)入所述保留數(shù)據(jù)塊;如果所述第一次寫(xiě)入標(biāo)記標(biāo)識(shí)為第一次寫(xiě)入,讀取所述原數(shù)據(jù)塊的數(shù)據(jù),若讀取失敗,則根據(jù)所述映射表項(xiàng)將所述新數(shù)據(jù)寫(xiě)入所述保留數(shù)據(jù)塊,并將所述第一次寫(xiě)入標(biāo)記更新為非第一次寫(xiě)入,若讀取成功,將讀取到的數(shù)據(jù)寫(xiě)入所述快照資源中與所述快照時(shí)間戳對(duì)應(yīng)的位置,將所述新數(shù)據(jù)寫(xiě)入所述原數(shù)據(jù)塊,并刪除所述映射表項(xiàng)。所述第一次寫(xiě)入標(biāo)記在所述快照資源內(nèi)創(chuàng)建新的快照時(shí)間戳后更新為標(biāo)識(shí)第一次寫(xiě)入。所述寫(xiě)入單元還用于若在快照資源中存儲(chǔ)所述保留數(shù)據(jù)塊或原數(shù)據(jù)塊中的數(shù)據(jù)之后、向所述原數(shù)據(jù)塊寫(xiě)入新數(shù)據(jù)之前,所述快照資源內(nèi)沒(méi)有創(chuàng)建新的快照時(shí)間戳,則查找所述映射表項(xiàng)獲知所述第一次寫(xiě)入標(biāo)記標(biāo)識(shí)為非第一次寫(xiě)入,直接將所述新數(shù)據(jù)寫(xiě)入所述保留數(shù)據(jù)塊;若在快照資源中存儲(chǔ)所述保留數(shù)據(jù)塊或原數(shù)據(jù)塊中的數(shù)據(jù)之后、向所述原數(shù)據(jù)塊寫(xiě)入新數(shù)據(jù)之前,所述快照資源內(nèi)創(chuàng)建有新的快照時(shí)間戳,則查找所述映射表項(xiàng)獲知所述第一次寫(xiě)入標(biāo)記標(biāo)識(shí)為第一次寫(xiě)入,讀取所述原數(shù)據(jù)塊的數(shù)據(jù);如果讀取失敗,則根據(jù)所述映射表項(xiàng)將所述新數(shù)據(jù)寫(xiě)入所述保留數(shù)據(jù)塊;如果讀取成功,則將讀取到的數(shù)據(jù)寫(xiě)入所述快照資源中與所述快照時(shí)間戳對(duì)應(yīng)的位置,將所述新數(shù)據(jù)寫(xiě)入所述原數(shù)據(jù)塊,并讀取所述保留數(shù)據(jù)塊內(nèi)的數(shù)據(jù)寫(xiě)入所述快照資源內(nèi)與當(dāng)前快照時(shí)間戳對(duì)應(yīng)的位置。所述保留數(shù)據(jù)塊位于存儲(chǔ)區(qū)域的頭區(qū)域。與現(xiàn)有技術(shù)相比,本發(fā)明至少具有以下優(yōu)點(diǎn)在向主資源的數(shù)據(jù)塊內(nèi)寫(xiě)入數(shù)據(jù)時(shí),若發(fā)生讀失敗則將新數(shù)據(jù)寫(xiě)入主資源的保留數(shù)據(jù)塊,同時(shí)保留讀失敗的原數(shù)據(jù)塊內(nèi)的數(shù)據(jù),在快照資源中存儲(chǔ)所述保留數(shù)據(jù)塊中的數(shù)據(jù),并通過(guò)映射表項(xiàng)存儲(chǔ)所述保留數(shù)據(jù)塊與所述原數(shù)據(jù)塊的位置對(duì)應(yīng)關(guān)系以及當(dāng)前的快照時(shí)間戳,根據(jù)該映射表進(jìn)一步保證了快照資源不離線的情況下主資源的正常讀寫(xiě)。圖1是現(xiàn)有技術(shù)中快照技術(shù)示意圖;圖2是現(xiàn)有技術(shù)中正常情況下的快照技術(shù)示意圖;圖3是現(xiàn)有技術(shù)中讀失敗的時(shí)快照技術(shù)示意圖;圖4是本發(fā)明本發(fā)明提供的快照資源的處理方法流程示意圖5是本發(fā)明應(yīng)用場(chǎng)景中存儲(chǔ)區(qū)域示意圖;圖6、7、8是本發(fā)明應(yīng)用場(chǎng)景提供的快照資源的處理方法示意圖;圖9是本發(fā)明提供一種存儲(chǔ)設(shè)備的結(jié)構(gòu)示意圖。具體實(shí)施例方式本發(fā)明的核心思想是在主資源內(nèi)的數(shù)據(jù)讀失敗時(shí),利用主資源中的保留空間來(lái)進(jìn)行新數(shù)據(jù)的寫(xiě)入,不去破壞無(wú)法讀取的數(shù)據(jù)區(qū)域,在不需要快照資源離線的情況下保證主資源的正常讀寫(xiě)。本發(fā)明提供一種快照資源的處理方法,應(yīng)用于存儲(chǔ)區(qū)域網(wǎng)絡(luò)SAN的主資源配置有快照資源的系統(tǒng)中,如圖4所示,該方法包括步驟401,在向所述主資源的數(shù)據(jù)塊內(nèi)寫(xiě)入新數(shù)據(jù)時(shí),若發(fā)生讀失敗則將新數(shù)據(jù)寫(xiě)入所述主資源的保留數(shù)據(jù)塊,同時(shí)保留讀失敗的原數(shù)據(jù)塊內(nèi)的數(shù)據(jù);步驟402,在快照資源中存儲(chǔ)所述保留數(shù)據(jù)塊中的數(shù)據(jù);步驟403,通過(guò)映射表項(xiàng)存儲(chǔ)所述保留數(shù)據(jù)塊與所述原數(shù)據(jù)塊的位置對(duì)應(yīng)關(guān)系以及當(dāng)前的快照時(shí)間戳;步驟404,當(dāng)讀取所述原數(shù)據(jù)塊內(nèi)的數(shù)據(jù)時(shí),查找所述映射表項(xiàng)獲取所述保留數(shù)據(jù)塊的位置并從所述保留數(shù)據(jù)塊內(nèi)讀取資源。下面結(jié)合具體應(yīng)用場(chǎng)景詳細(xì)介紹本發(fā)明提供的快照資源的處理方法。本發(fā)明應(yīng)用場(chǎng)景中首先介紹存儲(chǔ)設(shè)備中的存儲(chǔ)區(qū)域,如圖5所示,該存儲(chǔ)區(qū)域包括數(shù)據(jù)區(qū)域和頭區(qū)域,現(xiàn)有技術(shù)中在數(shù)據(jù)區(qū)域內(nèi)確定主資源的數(shù)據(jù)存儲(chǔ)區(qū)域,即數(shù)據(jù)區(qū)域存儲(chǔ)用戶寫(xiě)入的數(shù)據(jù),頭區(qū)域存放SAN資源的管理信息,一般頭區(qū)域會(huì)有幾MB的空間,例如IOM0實(shí)際上,頭區(qū)域幾MB的空間不會(huì)全部使用,都具有被閑置的保留空間。本應(yīng)用場(chǎng)景中,在向主資源內(nèi)寫(xiě)入新數(shù)據(jù)時(shí),如果讀取主資源中的數(shù)據(jù)塊失敗,則將新數(shù)據(jù)寫(xiě)入保留空間,保留讀取失敗的原數(shù)據(jù)塊內(nèi)的數(shù)據(jù),此時(shí)主資源的損壞的數(shù)據(jù)區(qū)塊由于沒(méi)有被新數(shù)據(jù)寫(xiě)入,那么原本應(yīng)該記錄在快照空間中的老數(shù)據(jù)仍然保留,只是記錄的位置發(fā)生變化,保留在原有位置而已,此時(shí)快照資源不需要離線。將新數(shù)據(jù)寫(xiě)入保留空間后,存儲(chǔ)設(shè)備內(nèi)需要建立如表1所示的表項(xiàng)。表1原數(shù)據(jù)塊~~保留數(shù)據(jù)塊快照時(shí)間戳0x01olio20:00其中,表1中記錄有原數(shù)據(jù)塊的位置0x01、保留數(shù)據(jù)塊的位置0x10以及讀失敗時(shí)對(duì)應(yīng)的快照時(shí)間戳。當(dāng)需要從原數(shù)據(jù)塊中讀取數(shù)據(jù)時(shí),首先查找表1存儲(chǔ)的對(duì)應(yīng)關(guān)系,從保留數(shù)據(jù)塊中讀取對(duì)應(yīng)的數(shù)據(jù)。當(dāng)需要向原數(shù)據(jù)塊中寫(xiě)入新數(shù)據(jù)時(shí),首先可以嘗試讀取原數(shù)據(jù)塊內(nèi)的數(shù)據(jù),如果讀取失敗,則根據(jù)表1中的對(duì)應(yīng)關(guān)系找到保留數(shù)據(jù)塊的位置0x10,將新數(shù)據(jù)寫(xiě)入保留數(shù)據(jù);如果讀取成功,則將原數(shù)據(jù)塊中的數(shù)據(jù)寫(xiě)入快照資源中與快照時(shí)間戳20:00對(duì)應(yīng)的位置,如果在快照時(shí)間戳20:00之后創(chuàng)建了新的時(shí)間戳,例如22:00,而此時(shí)的讀成功發(fā)生在快照時(shí)間戳20:00之后,則還需要將保留數(shù)據(jù)塊中的數(shù)據(jù)讀出寫(xiě)入快照資源中與快照時(shí)間戳20:00對(duì)應(yīng)的位置,即當(dāng)前讀成功時(shí)對(duì)應(yīng)的快照時(shí)間戳在快照資源中對(duì)應(yīng)的位置。需要說(shuō)明的是,存儲(chǔ)設(shè)備中也可以配置為在讀失敗后則不再嘗試讀取原數(shù)據(jù)塊內(nèi)的數(shù)據(jù)而是一直使用保留數(shù)據(jù)塊代替原數(shù)據(jù)塊。本發(fā)明應(yīng)用場(chǎng)景提供的方法中,表1還可以包括第一次寫(xiě)入標(biāo)記,如表2所示。<table>tableseeoriginaldocumentpage8</column></row><table>其中,原數(shù)據(jù)塊用來(lái)標(biāo)明主資源讀失敗的位置。保留數(shù)據(jù)塊與老數(shù)據(jù)區(qū)塊對(duì)應(yīng),表示新數(shù)據(jù)的寫(xiě)入位置,也就是將新數(shù)據(jù)寫(xiě)入到保留區(qū)域中,記錄下新的地址,之后的數(shù)據(jù)讀會(huì)映射至新數(shù)據(jù)區(qū),而寫(xiě)則需要區(qū)分具體情況??煺諘r(shí)間戳就是快照時(shí)間點(diǎn)標(biāo)記,簡(jiǎn)單的說(shuō)可以理解為一個(gè)時(shí)間點(diǎn),快照功能保護(hù)數(shù)據(jù)的基準(zhǔn)點(diǎn),舉例來(lái)說(shuō),快照資源在20:00、20:10、20:20創(chuàng)建了3時(shí)間點(diǎn),那么今后數(shù)據(jù)恢復(fù)時(shí)就可以恢復(fù)到這3個(gè)其中任意一個(gè)點(diǎn)的數(shù)據(jù)。將讀失敗時(shí)的時(shí)間戳記錄下來(lái),有兩個(gè)用途,第一,將來(lái)數(shù)據(jù)回滾恢復(fù)時(shí),如果回滾的目標(biāo)時(shí)間在該時(shí)間點(diǎn)之后,那么對(duì)應(yīng)的表格數(shù)據(jù)將保留,因?yàn)榇藭r(shí)的新老數(shù)據(jù)的映射關(guān)系還在;如果回滾的目標(biāo)時(shí)間在該時(shí)間點(diǎn)之前,那么該條目可以刪除,因?yàn)榇藭r(shí)的數(shù)據(jù)仍在老數(shù)據(jù)區(qū)。第二個(gè)用途是,假設(shè)老數(shù)據(jù)區(qū)塊的故障恢復(fù)時(shí),數(shù)據(jù)存入到老位置時(shí)需要將里面的數(shù)據(jù)讀出,并存放到快照資源中,并且要放至之前時(shí)間戳的位置中。第一次寫(xiě)入標(biāo)志位該位置只有0和1兩個(gè)值,用來(lái)指示老數(shù)據(jù)區(qū)的狀態(tài),0表示還沒(méi)有數(shù)據(jù)寫(xiě)入,1表示已有過(guò)第一次寫(xiě)入;這樣就有兩種情況第一次寫(xiě)入時(shí),發(fā)現(xiàn)該位置為0,就會(huì)觸發(fā)快照讀,若此時(shí)的老數(shù)據(jù)區(qū)已修復(fù),則將讀出的數(shù)據(jù)寫(xiě)入該條目時(shí)間戳的快照資源中,并將該條目對(duì)應(yīng)的這一行的內(nèi)容刪除,之后的數(shù)據(jù)讀寫(xiě)不需要再查找表格,若沒(méi)有修復(fù)故障,照常讀失敗,則會(huì)查找該條目將新數(shù)據(jù)寫(xiě)入新位置,并將該位置1;后續(xù)寫(xiě)入時(shí)該位已經(jīng)置1了,所以只需要查找表格,將新數(shù)據(jù)寫(xiě)入新區(qū)域即可。注意該位置在表格的條目創(chuàng)建時(shí)置1,只在新建時(shí)間點(diǎn)后才置位0,這里與快照的原理相同,這樣做是只在第一次寫(xiě)時(shí)才進(jìn)行嘗試修復(fù)讀操作,而不是每次都進(jìn)行嘗試讀,最大的提高效率。下面基于表2所示映射表項(xiàng)介紹快照資源的處理方法。如圖6所示,假設(shè)保留區(qū)域的初始值為00,當(dāng)?shù)?步寫(xiě)入新數(shù)據(jù)Α2時(shí),主資源的數(shù)據(jù)塊發(fā)生錯(cuò)誤,無(wú)法正常讀出老數(shù)據(jù)Al,則將新數(shù)據(jù)Α2寫(xiě)入保留數(shù)據(jù)塊中,原數(shù)據(jù)塊不產(chǎn)生影響,原數(shù)據(jù)塊仍然存放數(shù)據(jù)Al。此時(shí)建立如表2所示的映射表項(xiàng),存儲(chǔ)原數(shù)據(jù)塊與保留數(shù)據(jù)塊的位置對(duì)應(yīng)關(guān)系、時(shí)間戳以及第一次寫(xiě)入標(biāo)記。該第一次寫(xiě)入標(biāo)記此時(shí)被置為1,在后續(xù)創(chuàng)建新的快照時(shí)間戳后該標(biāo)記被更新為0。此時(shí),需要讀取原數(shù)據(jù)塊內(nèi)的數(shù)據(jù)時(shí),即主資源有對(duì)0x01位置的讀請(qǐng)求時(shí),查找映射表,將對(duì)應(yīng)的新數(shù)據(jù)區(qū)OxlO中的數(shù)據(jù)讀出并交給上層,此時(shí)表項(xiàng)中的后面內(nèi)容不需要查看。如果需要向原數(shù)據(jù)塊寫(xiě)入新數(shù)據(jù),則可以劃分為兩種情況一、在讀失敗后沒(méi)有新創(chuàng)建快照時(shí)間戳;二、讀失敗后創(chuàng)建了新的快照時(shí)間戳,下來(lái)針對(duì)這兩種情況逐一的進(jìn)行分析。針對(duì)第一種情況,在表項(xiàng)2建立完成后,再有新的數(shù)據(jù)向原數(shù)據(jù)塊寫(xiě)入時(shí),存儲(chǔ)設(shè)備首先查看映射表項(xiàng),檢查到與原數(shù)據(jù)塊對(duì)應(yīng)的映射表項(xiàng)中的第一次寫(xiě)入位是1,則不再進(jìn)行原數(shù)據(jù)塊的讀重試,直接將新數(shù)據(jù)寫(xiě)入新區(qū)塊中。如圖7中所示,在讀失敗后若沒(méi)有創(chuàng)建新的快照時(shí)間戳,若再對(duì)A2的數(shù)據(jù)進(jìn)行修改,則只需要將A3寫(xiě)入到A2區(qū)域中即可,此時(shí)的時(shí)間戳仍是3。針對(duì)第二種情況,在表項(xiàng)2建立完成后,再有新的數(shù)據(jù)向原數(shù)據(jù)塊寫(xiě)入時(shí),存儲(chǔ)設(shè)備首先查看映射表項(xiàng),檢查到與原數(shù)據(jù)塊對(duì)應(yīng)的映射表項(xiàng)中的第一次寫(xiě)入位是0,觸發(fā)快照讀操作,此時(shí)的讀操作又分為讀成功和讀失敗兩種情況讀成功時(shí),存儲(chǔ)設(shè)備將讀出的數(shù)據(jù)放入映射表記錄的時(shí)間戳空間內(nèi),即快照資源中與映射表記錄的時(shí)間戳對(duì)應(yīng)的位置,如圖8中將Al存入時(shí)間點(diǎn)3的快照中。存儲(chǔ)設(shè)備還需讀出保留數(shù)據(jù)塊的數(shù)據(jù),放入當(dāng)前時(shí)間戳空間內(nèi),如圖8中將A2存入至?xí)r間點(diǎn)4的快照中。并將當(dāng)前需要寫(xiě)入的數(shù)據(jù)寫(xiě)入原數(shù)據(jù)塊中,即將A3寫(xiě)入原數(shù)據(jù)塊。然后,存儲(chǔ)設(shè)備將原數(shù)據(jù)塊對(duì)應(yīng)的映射表項(xiàng)刪除。讀失敗時(shí),存儲(chǔ)設(shè)備查找映射表,將保留數(shù)據(jù)塊中的數(shù)據(jù)即A2寫(xiě)入快照資源,如圖9所示,將請(qǐng)求寫(xiě)入的數(shù)據(jù)寫(xiě)入保留數(shù)據(jù)塊,即將A3寫(xiě)入保留數(shù)據(jù)塊,并將原數(shù)據(jù)塊對(duì)應(yīng)的映射表中記錄的第一次寫(xiě)入位置1。依據(jù)本發(fā)明提供的方法,再對(duì)數(shù)據(jù)進(jìn)行恢復(fù)操作時(shí),例如回滾,都可以回滾到任意一個(gè)時(shí)間點(diǎn)。需要說(shuō)明的是,如果回滾的目標(biāo)點(diǎn)在映射表的時(shí)間戳之后,那么映射表的記錄仍然生效,取數(shù)據(jù)時(shí)安裝上述的讀寫(xiě)流程來(lái)處理,如果回滾的目標(biāo)點(diǎn)在時(shí)間戳之前,那么映射表的記錄可以刪除,之后的操作按現(xiàn)有技術(shù)中的方式處理。通過(guò)采用本發(fā)明提供的方法,在向主資源的數(shù)據(jù)塊內(nèi)寫(xiě)入數(shù)據(jù)時(shí),若發(fā)生讀失敗則將新數(shù)據(jù)寫(xiě)入主資源的保留數(shù)據(jù)塊,同時(shí)保留讀失敗的原數(shù)據(jù)塊內(nèi)的數(shù)據(jù),在快照資源中存儲(chǔ)所述保留數(shù)據(jù)塊中的數(shù)據(jù),并通過(guò)映射表項(xiàng)存儲(chǔ)所述保留數(shù)據(jù)塊與所述原數(shù)據(jù)塊的位置對(duì)應(yīng)關(guān)系以及當(dāng)前的快照時(shí)間戳,根據(jù)該映射表進(jìn)一步保證了快照資源不離線的情況下主資源的正常讀寫(xiě)。本發(fā)明提供一種存儲(chǔ)設(shè)備,應(yīng)用于存儲(chǔ)區(qū)域網(wǎng)絡(luò)SAN,包括數(shù)據(jù)存儲(chǔ)的主資源和快照資源,如圖10所示,該存儲(chǔ)設(shè)備包括寫(xiě)入單元11、存儲(chǔ)單元12和讀取單元13,其中所述寫(xiě)入單元11,與所述存儲(chǔ)單元12連接,用于向所述主資源的數(shù)據(jù)塊內(nèi)寫(xiě)入新數(shù)據(jù),并在發(fā)生讀失敗將新數(shù)據(jù)寫(xiě)入所述主資源的保留數(shù)據(jù)塊,保留讀失敗的原數(shù)據(jù)塊內(nèi)的數(shù)據(jù);在快照資源中存儲(chǔ)所述保留數(shù)據(jù)塊中的數(shù)據(jù);該寫(xiě)入單元11還用于當(dāng)向所述原數(shù)據(jù)塊寫(xiě)入新數(shù)據(jù)時(shí),若讀失敗則根據(jù)所述存儲(chǔ)單元存儲(chǔ)的映射表項(xiàng)將所述新數(shù)據(jù)寫(xiě)入所述保留數(shù)據(jù)塊;否則,將讀取到的數(shù)據(jù)寫(xiě)入所述快照資源中與所述快照時(shí)間戳對(duì)應(yīng)的位置,將所述新數(shù)據(jù)寫(xiě)入所述原數(shù)據(jù)塊,并刪除所述映射表項(xiàng);所述存儲(chǔ)單元12,與所述寫(xiě)入單元11連接,用于通過(guò)映射表項(xiàng)存儲(chǔ)所述保留數(shù)據(jù)塊與所述原數(shù)據(jù)塊的位置對(duì)應(yīng)關(guān)系以及當(dāng)前的快照時(shí)間戳;所述讀取單元13,與所述存儲(chǔ)單元12連接,用于查找所述映射表項(xiàng)獲取所述保留數(shù)據(jù)塊的位置并從所述保留數(shù)據(jù)塊內(nèi)讀取資源。所述映射表項(xiàng)中還包括第一次寫(xiě)入標(biāo)記,用于標(biāo)識(shí)所述原數(shù)據(jù)塊是否第一次有數(shù)據(jù)寫(xiě)入;所述寫(xiě)入單元11還用于當(dāng)所述映射表項(xiàng)中還包括第一次寫(xiě)入標(biāo)記時(shí),首先查找所述映射表項(xiàng)中存儲(chǔ)的第一次寫(xiě)入標(biāo)記;如果所述第一次寫(xiě)入標(biāo)記標(biāo)識(shí)為非第一次寫(xiě)入,直接根據(jù)所述映射表項(xiàng)將所述新數(shù)據(jù)寫(xiě)入所述保留數(shù)據(jù)塊;如果所述第一次寫(xiě)入標(biāo)記標(biāo)識(shí)為第一次寫(xiě)入,讀取所述原數(shù)據(jù)塊的數(shù)據(jù),若讀取失敗,則根據(jù)所述映射表項(xiàng)將所述新數(shù)據(jù)寫(xiě)入所述保留數(shù)據(jù)塊,并將所述第一次寫(xiě)入標(biāo)記更新為非第一次寫(xiě)入,若讀取成功,將讀取到的數(shù)據(jù)寫(xiě)入所述快照資源中與所述快照時(shí)間戳對(duì)應(yīng)的位置,將所述新數(shù)據(jù)寫(xiě)入所述原數(shù)據(jù)塊,并刪除所述映射表項(xiàng)。所述存儲(chǔ)單元12還用于在所述快照資源內(nèi)創(chuàng)建新的快照時(shí)間戳后將所述第一次寫(xiě)入標(biāo)記更新為標(biāo)識(shí)第一次寫(xiě)入。所述寫(xiě)入單元11還用于若在快照資源中存儲(chǔ)所述保留數(shù)據(jù)塊或原數(shù)據(jù)塊中的數(shù)據(jù)之后、向所述原數(shù)據(jù)塊寫(xiě)入新數(shù)據(jù)之前,所述快照資源內(nèi)沒(méi)有創(chuàng)建新的快照時(shí)間戳,則查找所述映射表項(xiàng)獲知所述第一次寫(xiě)入標(biāo)記標(biāo)識(shí)為非第一次寫(xiě)入,直接將所述新數(shù)據(jù)寫(xiě)入所述保留數(shù)據(jù)塊;若在快照資源中存儲(chǔ)所述保留數(shù)據(jù)塊或原數(shù)據(jù)塊中的數(shù)據(jù)之后、向所述原數(shù)據(jù)塊寫(xiě)入新數(shù)據(jù)之前,所述快照資源內(nèi)創(chuàng)建有新的快照時(shí)間戳,則查找所述映射表項(xiàng)獲知所述第一次寫(xiě)入標(biāo)記標(biāo)識(shí)為第一次寫(xiě)入,讀取所述原數(shù)據(jù)塊的數(shù)據(jù);如果讀取失敗,則根據(jù)所述映射表項(xiàng)將所述新數(shù)據(jù)寫(xiě)入所述保留數(shù)據(jù)塊;如果讀取成功,則將讀取到的數(shù)據(jù)寫(xiě)入所述快照資源中與所述快照時(shí)間戳對(duì)應(yīng)的位置,將所述新數(shù)據(jù)寫(xiě)入所述原數(shù)據(jù)塊,并讀取所述保留數(shù)據(jù)塊內(nèi)的數(shù)據(jù)寫(xiě)入所述快照資源內(nèi)與當(dāng)前快照時(shí)間戳對(duì)應(yīng)的位置。所述保留數(shù)據(jù)塊位于存儲(chǔ)區(qū)域的頭區(qū)域。通過(guò)采用本發(fā)明提供的存儲(chǔ)設(shè)備,在向主資源的數(shù)據(jù)塊內(nèi)寫(xiě)入數(shù)據(jù)時(shí),若發(fā)生讀失敗則將新數(shù)據(jù)寫(xiě)入主資源的保留數(shù)據(jù)塊,同時(shí)保留讀失敗的原數(shù)據(jù)塊內(nèi)的數(shù)據(jù),在快照資源中存儲(chǔ)所述保留數(shù)據(jù)塊中的數(shù)據(jù),并通過(guò)映射表項(xiàng)存儲(chǔ)所述保留數(shù)據(jù)塊與所述原數(shù)據(jù)塊的位置對(duì)應(yīng)關(guān)系以及當(dāng)前的快照時(shí)間戳,根據(jù)該映射表進(jìn)一步保證了快照資源不離線的情況下主資源的正常讀寫(xiě)。通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。本領(lǐng)域技術(shù)人員可以理解附圖只是一個(gè)優(yōu)選實(shí)施例的示意圖,附圖中的模塊或流程并不一定是實(shí)施本發(fā)明所必須的。本領(lǐng)域技術(shù)人員可以理解實(shí)施例中的裝置中的模塊可以按照實(shí)施例描述進(jìn)行分布于實(shí)施例的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施例的一個(gè)或多個(gè)裝置中。上述實(shí)施例的模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。以上公開(kāi)的僅為本發(fā)明的幾個(gè)具體實(shí)施例,但是,本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護(hù)范圍。權(quán)利要求一種快照資源的處理方法,應(yīng)用于存儲(chǔ)區(qū)域網(wǎng)絡(luò)SAN的主資源配置有快照資源的系統(tǒng)中,其特征在于,該方法包括當(dāng)向所述主資源的數(shù)據(jù)塊內(nèi)寫(xiě)入新數(shù)據(jù)時(shí),若發(fā)生讀失敗則將新數(shù)據(jù)寫(xiě)入所述主資源的保留數(shù)據(jù)塊,同時(shí)保留讀失敗的原數(shù)據(jù)塊內(nèi)的數(shù)據(jù);在快照資源中存儲(chǔ)所述保留數(shù)據(jù)塊中的數(shù)據(jù);通過(guò)映射表項(xiàng)存儲(chǔ)所述保留數(shù)據(jù)塊與所述原數(shù)據(jù)塊的位置對(duì)應(yīng)關(guān)系以及當(dāng)前的快照時(shí)間戳;當(dāng)讀取所述原數(shù)據(jù)塊內(nèi)的數(shù)據(jù)時(shí),查找所述映射表項(xiàng)獲取所述保留數(shù)據(jù)塊的位置并從所述保留數(shù)據(jù)塊內(nèi)讀取資源。2.如權(quán)利要求1所述的方法,其特征在于,還包括當(dāng)向所述原數(shù)據(jù)塊寫(xiě)入新數(shù)據(jù)時(shí),若發(fā)生讀失敗則根據(jù)所述映射表項(xiàng)將所述新數(shù)據(jù)寫(xiě)入所述保留數(shù)據(jù)塊;否則,將讀取到的數(shù)據(jù)寫(xiě)入所述快照資源中與所述快照時(shí)間戳對(duì)應(yīng)的位置,將所述新數(shù)據(jù)寫(xiě)入所述原數(shù)據(jù)塊,并刪除所述映射表項(xiàng)。3.如權(quán)利要求1或2所述的方法,其特征在于,所述映射表項(xiàng)中還包括第一次寫(xiě)入標(biāo)記,用于標(biāo)識(shí)所述原數(shù)據(jù)塊是否第一次有數(shù)據(jù)寫(xiě)入;當(dāng)所述映射表項(xiàng)中還包括第一次寫(xiě)入標(biāo)記時(shí),若向所述原數(shù)據(jù)塊寫(xiě)入新數(shù)據(jù),首先查找所述映射表項(xiàng)中存儲(chǔ)的第一次寫(xiě)入標(biāo)記;如果所述第一次寫(xiě)入標(biāo)記標(biāo)識(shí)為非第一次寫(xiě)入,直接根據(jù)所述映射表項(xiàng)將所述新數(shù)據(jù)寫(xiě)入所述保留數(shù)據(jù)塊;如果所述第一次寫(xiě)入標(biāo)記標(biāo)識(shí)為第一次寫(xiě)入,讀取所述原數(shù)據(jù)塊的數(shù)據(jù),若讀取失敗,則根據(jù)所述映射表項(xiàng)將所述新數(shù)據(jù)寫(xiě)入所述保留數(shù)據(jù)塊,并將所述第一次寫(xiě)入標(biāo)記更新為非第一次寫(xiě)入,若讀取成功,將讀取到的數(shù)據(jù)寫(xiě)入所述快照資源中與所述快照時(shí)間戳對(duì)應(yīng)的位置,將所述新數(shù)據(jù)寫(xiě)入所述原數(shù)據(jù)塊,并刪除所述映射表項(xiàng)。4.如權(quán)利要求3所述的方法,其特征在于,所述第一次寫(xiě)入標(biāo)記在所述快照資源內(nèi)創(chuàng)建新的快照時(shí)間戳后更新為標(biāo)識(shí)第一次寫(xiě)入。5.如權(quán)利要求3所述的方法,其特征在于,若在快照資源中存儲(chǔ)所述保留數(shù)據(jù)塊或原數(shù)據(jù)塊中的數(shù)據(jù)之后、向所述原數(shù)據(jù)塊寫(xiě)入新數(shù)據(jù)之前,所述快照資源內(nèi)沒(méi)有創(chuàng)建新的快照時(shí)間戳,則查找所述映射表項(xiàng)獲知所述第一次寫(xiě)入標(biāo)記標(biāo)識(shí)為非第一次寫(xiě)入,直接將所述新數(shù)據(jù)寫(xiě)入所述保留數(shù)據(jù)塊;若在快照資源中存儲(chǔ)所述保留數(shù)據(jù)塊或原數(shù)據(jù)塊中的數(shù)據(jù)之后、向所述原數(shù)據(jù)塊寫(xiě)入新數(shù)據(jù)之前,所述快照資源內(nèi)創(chuàng)建有新的快照時(shí)間戳,則查找所述映射表項(xiàng)獲知所述第一次寫(xiě)入標(biāo)記標(biāo)識(shí)為第一次寫(xiě)入,讀取所述原數(shù)據(jù)塊的數(shù)據(jù);如果讀取失敗,則根據(jù)所述映射表項(xiàng)將所述新數(shù)據(jù)寫(xiě)入所述保留數(shù)據(jù)塊;如果讀取成功,則將讀取到的數(shù)據(jù)寫(xiě)入所述快照資源中與所述快照時(shí)間戳對(duì)應(yīng)的位置,將所述新數(shù)據(jù)寫(xiě)入所述原數(shù)據(jù)塊,并讀取所述保留數(shù)據(jù)塊內(nèi)的數(shù)據(jù)寫(xiě)入所述快照資源內(nèi)與當(dāng)前快照時(shí)間戳對(duì)應(yīng)的位置。6.如權(quán)利要求1或2所述的方法,其特征在于,所述保留數(shù)據(jù)塊位于存儲(chǔ)區(qū)域的頭區(qū)域。7.一種存儲(chǔ)設(shè)備,應(yīng)用于存儲(chǔ)區(qū)域網(wǎng)絡(luò)SAN,包括數(shù)據(jù)存儲(chǔ)的主資源和快照資源,其特征在于,該存儲(chǔ)設(shè)備包括寫(xiě)入單元、存儲(chǔ)單元和讀取單元,其中所述寫(xiě)入單元,與所述存儲(chǔ)單元連接,用于向所述主資源的數(shù)據(jù)塊內(nèi)寫(xiě)入新數(shù)據(jù),并在發(fā)生讀失敗將新數(shù)據(jù)寫(xiě)入所述主資源的保留數(shù)據(jù)塊,保留讀失敗的原數(shù)據(jù)塊內(nèi)的數(shù)據(jù);在快照資源中存儲(chǔ)所述保留數(shù)據(jù)塊中的數(shù)據(jù);所述存儲(chǔ)單元,與所述寫(xiě)入單元連接,用于通過(guò)映射表項(xiàng)存儲(chǔ)所述保留數(shù)據(jù)塊與所述原數(shù)據(jù)塊的位置對(duì)應(yīng)關(guān)系以及當(dāng)前的快照時(shí)間戳;所述讀取單元,與所述存儲(chǔ)單元連接,用于查找所述映射表項(xiàng)獲取所述保留數(shù)據(jù)塊的位置并從所述保留數(shù)據(jù)塊內(nèi)讀取資源。8.如權(quán)利要求7所述的存儲(chǔ)設(shè)備,其特征在于,所述寫(xiě)入單元還用于當(dāng)向所述原數(shù)據(jù)塊寫(xiě)入新數(shù)據(jù)時(shí),若讀失敗則根據(jù)所述存儲(chǔ)單元存儲(chǔ)的映射表項(xiàng)將所述新數(shù)據(jù)寫(xiě)入所述保留數(shù)據(jù)塊;否則,將讀取到的數(shù)據(jù)寫(xiě)入所述快照資源中與所述快照時(shí)間戳對(duì)應(yīng)的位置,將所述新數(shù)據(jù)寫(xiě)入所述原數(shù)據(jù)塊,并刪除所述映射表項(xiàng)。9.如權(quán)利要求7或8所述的存儲(chǔ)設(shè)備,其特征在于,所述映射表項(xiàng)中還包括第一次寫(xiě)入標(biāo)記,用于標(biāo)識(shí)所述原數(shù)據(jù)塊是否第一次有數(shù)據(jù)寫(xiě)入;所述寫(xiě)入單元還用于當(dāng)所述映射表項(xiàng)中還包括第一次寫(xiě)入標(biāo)記時(shí),首先查找所述映射表項(xiàng)中存儲(chǔ)的第一次寫(xiě)入標(biāo)記;如果所述第一次寫(xiě)入標(biāo)記標(biāo)識(shí)為非第一次寫(xiě)入,直接根據(jù)所述映射表項(xiàng)將所述新數(shù)據(jù)寫(xiě)入所述保留數(shù)據(jù)塊;如果所述第一次寫(xiě)入標(biāo)記標(biāo)識(shí)為第一次寫(xiě)入,讀取所述原數(shù)據(jù)塊的數(shù)據(jù),若讀取失敗,則根據(jù)所述映射表項(xiàng)將所述新數(shù)據(jù)寫(xiě)入所述保留數(shù)據(jù)塊,并將所述第一次寫(xiě)入標(biāo)記更新為非第一次寫(xiě)入,若讀取成功,將讀取到的數(shù)據(jù)寫(xiě)入所述快照資源中與所述快照時(shí)間戳對(duì)應(yīng)的位置,將所述新數(shù)據(jù)寫(xiě)入所述原數(shù)據(jù)塊,并刪除所述映射表項(xiàng)。10.如權(quán)利要求9所述的存儲(chǔ)設(shè)備,其特征在于,所述存儲(chǔ)單元還用于在所述快照資源內(nèi)創(chuàng)建新的快照時(shí)間戳后將所述第一次寫(xiě)入標(biāo)記更新為標(biāo)識(shí)第一次寫(xiě)入。11.如權(quán)利要求9所述的存儲(chǔ)設(shè)備,其特征在于,所述寫(xiě)入單元還用于若在快照資源中存儲(chǔ)所述保留數(shù)據(jù)塊或原數(shù)據(jù)塊中的數(shù)據(jù)之后、向所述原數(shù)據(jù)塊寫(xiě)入新數(shù)據(jù)之前,所述快照資源內(nèi)沒(méi)有創(chuàng)建新的快照時(shí)間戳,則查找所述映射表項(xiàng)獲知所述第一次寫(xiě)入標(biāo)記標(biāo)識(shí)為非第一次寫(xiě)入,直接將所述新數(shù)據(jù)寫(xiě)入所述保留數(shù)據(jù)塊;若在快照資源中存儲(chǔ)所述保留數(shù)據(jù)塊或原數(shù)據(jù)塊中的數(shù)據(jù)之后、向所述原數(shù)據(jù)塊寫(xiě)入新數(shù)據(jù)之前,所述快照資源內(nèi)創(chuàng)建有新的快照時(shí)間戳,則查找所述映射表項(xiàng)獲知所述第一次寫(xiě)入標(biāo)記標(biāo)識(shí)為第一次寫(xiě)入,讀取所述原數(shù)據(jù)塊的數(shù)據(jù);如果讀取失敗,則根據(jù)所述映射表項(xiàng)將所述新數(shù)據(jù)寫(xiě)入所述保留數(shù)據(jù)塊;如果讀取成功,則將讀取到的數(shù)據(jù)寫(xiě)入所述快照資源中與所述快照時(shí)間戳對(duì)應(yīng)的位置,將所述新數(shù)據(jù)寫(xiě)入所述原數(shù)據(jù)塊,并讀取所述保留數(shù)據(jù)塊內(nèi)的數(shù)據(jù)寫(xiě)入所述快照資源內(nèi)與當(dāng)前快照時(shí)間戳對(duì)應(yīng)的位置。12.如權(quán)利要求7或8所述的存儲(chǔ)設(shè)備,其特征在于,所述保留數(shù)據(jù)塊位于存儲(chǔ)區(qū)域的頭區(qū)域。全文摘要本發(fā)明公開(kāi)了一種快照資源的處理方法和設(shè)備,在向主資源的數(shù)據(jù)塊內(nèi)寫(xiě)入新數(shù)據(jù)時(shí),若發(fā)生讀失敗則將新數(shù)據(jù)寫(xiě)入主資源的保留數(shù)據(jù)塊,同時(shí)保留讀失敗的原數(shù)據(jù)塊內(nèi)的數(shù)據(jù),在快照資源中存儲(chǔ)所述保留數(shù)據(jù)塊中的數(shù)據(jù),并通過(guò)映射表項(xiàng)存儲(chǔ)所述保留數(shù)據(jù)塊與所述原數(shù)據(jù)塊的位置對(duì)應(yīng)關(guān)系以及當(dāng)前的快照時(shí)間戳,根據(jù)該映射表進(jìn)一步保證了快照資源不離線的情況下主資源的正常讀寫(xiě)。文檔編號(hào)G06F11/14GK101833488SQ20101016053公開(kāi)日2010年9月15日申請(qǐng)日期2010年4月30日優(yōu)先權(quán)日2010年4月30日發(fā)明者余劍聲,孫策申請(qǐng)人:杭州華三通信技術(shù)有限公司