一種數(shù)據(jù)處理方法及裝置制造方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種數(shù)據(jù)處理方法及裝置,應(yīng)用于包含多個(gè)存儲(chǔ)空間的存儲(chǔ)設(shè)備中,能夠解決文件元數(shù)據(jù)頻繁更改的問(wèn)題。該數(shù)據(jù)處理方法,包括:該方法包括:確定待回收的第一存儲(chǔ)空間;將第一存儲(chǔ)空間中的數(shù)據(jù)讀取到緩存中;將該數(shù)據(jù)從緩存寫(xiě)入第二存儲(chǔ)空間;根據(jù)第二存儲(chǔ)空間更新預(yù)設(shè)的存儲(chǔ)空間對(duì)應(yīng)關(guān)系,該預(yù)設(shè)的存儲(chǔ)空間對(duì)應(yīng)關(guān)系包含有第一虛擬存儲(chǔ)空間與第一存儲(chǔ)空間的對(duì)應(yīng)關(guān)系;接收主機(jī)的數(shù)據(jù)讀取請(qǐng)求,該數(shù)據(jù)讀取請(qǐng)求中包含有該數(shù)據(jù)的地址信息,其中該數(shù)據(jù)的地址信息中包含有第一虛擬存儲(chǔ)空間的信息;根據(jù)第一虛擬存儲(chǔ)空間的信息與更新后的該存儲(chǔ)空間對(duì)應(yīng)關(guān)系確定存儲(chǔ)該數(shù)據(jù)的第二存儲(chǔ)空間;將第二存儲(chǔ)空間中的該數(shù)據(jù)發(fā)送給主機(jī)。
【專(zhuān)利說(shuō)明】一種數(shù)據(jù)處理方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及存儲(chǔ)【技術(shù)領(lǐng)域】,尤其涉及一種數(shù)據(jù)處理方法及裝置。
【背景技術(shù)】
[0002]固態(tài)硬盤(pán)(Solid State Disk,SSD)為用固態(tài)電子存儲(chǔ)芯片陣列制成的硬盤(pán),廣泛應(yīng)用于軍事、車(chē)載、工控、視頻監(jiān)控、網(wǎng)絡(luò)監(jiān)控、網(wǎng)絡(luò)終端、電力、醫(yī)療、航空、導(dǎo)航設(shè)備等領(lǐng)域。
[0003]目前,應(yīng)用于SSD介質(zhì)的文件系統(tǒng)多采用寫(xiě)前重定向(Redirect On Write, ROW)快照算法。通常,該文件系統(tǒng)的存儲(chǔ)設(shè)備包含多個(gè)存儲(chǔ)空間,在回收一個(gè)存儲(chǔ)空間時(shí),需要將該存儲(chǔ)空間中的數(shù)據(jù)讀取到緩存中,再將該數(shù)據(jù)從緩存中寫(xiě)入到另一個(gè)存儲(chǔ)空間中,使存儲(chǔ)該數(shù)據(jù)的原存儲(chǔ)空間得到回收。
[0004]然而現(xiàn)有技術(shù)中,該文件系統(tǒng)存儲(chǔ)的文件的元數(shù)據(jù)中的地址信息具體為該文件中的數(shù)據(jù)在存儲(chǔ)設(shè)備中的實(shí)際存儲(chǔ)地址,在進(jìn)行存儲(chǔ)空間的回收時(shí),由于待回收的存儲(chǔ)空間中數(shù)據(jù)的實(shí)際存儲(chǔ)地址會(huì)發(fā)生改變,所以必然會(huì)導(dǎo)致對(duì)應(yīng)的文件元數(shù)據(jù)發(fā)生改變。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供一種數(shù)據(jù)處理方法及裝置,用以解決文件元數(shù)據(jù)頻繁更改的問(wèn)題。
[0006]第一方面,提供一種數(shù)據(jù)處理方法,所述方法應(yīng)用于包含多個(gè)存儲(chǔ)空間的存儲(chǔ)設(shè)備中,所述方法包括:
[0007]確定待回收的第一存儲(chǔ)空間;
[0008]將所述第一存儲(chǔ)空間中的數(shù)據(jù)讀取到緩存中;
[0009]將所述數(shù)據(jù)從所述緩存寫(xiě)入第二存儲(chǔ)空間;
[0010]根據(jù)所述第二存儲(chǔ)空間更新預(yù)設(shè)的存儲(chǔ)空間對(duì)應(yīng)關(guān)系,所述預(yù)設(shè)的存儲(chǔ)空間對(duì)應(yīng)關(guān)系包含有第一虛擬存儲(chǔ)空間與所述第一存儲(chǔ)空間的對(duì)應(yīng)關(guān)系;
[0011]接收主機(jī)的數(shù)據(jù)讀取請(qǐng)求,所述數(shù)據(jù)讀取請(qǐng)求中包含有所述數(shù)據(jù)的地址信息,其中所述數(shù)據(jù)的地址信息中包含有第一虛擬存儲(chǔ)空間的信息;
[0012]根據(jù)所述第一虛擬存儲(chǔ)空間的信息與更新后的所述存儲(chǔ)空間對(duì)應(yīng)關(guān)系確定存儲(chǔ)所述數(shù)據(jù)的第二存儲(chǔ)空間;
[0013]將所述第二存儲(chǔ)空間中的所述數(shù)據(jù)發(fā)送給所述主機(jī)。
[0014]結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,所述數(shù)據(jù)的地址信息還包括所述數(shù)據(jù)對(duì)應(yīng)的哈希值,所述將所述第二存儲(chǔ)空間中的所述數(shù)據(jù)發(fā)送給所述主機(jī)之前還包括:
[0015]更新所述數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系,所述數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系包含有所述哈希值與所述數(shù)據(jù)在所述第一存儲(chǔ)空間中的地址的對(duì)應(yīng)關(guān)系;
[0016]所述將所述第二存儲(chǔ)空間中的所述數(shù)據(jù)發(fā)送給所述主機(jī)包括:
[0017]根據(jù)數(shù)據(jù)讀取請(qǐng)求中的所述哈希值與更新后的所述數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系確定所述數(shù)據(jù)在第二存儲(chǔ)空間中的地址;
[0018]將所述第二存儲(chǔ)空間中的地址中的所述數(shù)據(jù)發(fā)送給所述主機(jī)。
[0019]結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述哈希值根據(jù)所述數(shù)據(jù)在文件中的偏移量、所述文件的標(biāo)識(shí)以及所述數(shù)據(jù)的寫(xiě)入所述存儲(chǔ)設(shè)備的時(shí)間進(jìn)行哈希計(jì)算獲得。
[0020]結(jié)合第一方面,第一方面的第一種可能的實(shí)現(xiàn)方式,或者第一方面的第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述確定待回收的第一存儲(chǔ)空間包括:
[0021]根據(jù)存儲(chǔ)空間中不位于數(shù)據(jù)末端的空閑空間的大小,確定待回收的第一存儲(chǔ)空間。
[0022]結(jié)合第一方面,第一方面的第一種可能的實(shí)現(xiàn)方式,第一方面的第二種可能的實(shí)現(xiàn)方式,或者第一方面的第三種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述將所述數(shù)據(jù)從所述緩存寫(xiě)入第二存儲(chǔ)空間之前還包括:
[0023]對(duì)所述數(shù)據(jù)進(jìn)行數(shù)據(jù)歸并,以回收不位于所述數(shù)據(jù)末端的空閑空間;
[0024]所述將所述數(shù)據(jù)從所述緩存寫(xiě)入第二存儲(chǔ)空間包括:
[0025]將進(jìn)行數(shù)據(jù)歸并后的數(shù)據(jù)從所述緩存寫(xiě)入第二存儲(chǔ)空間。
[0026]第二方面,提供一種數(shù)據(jù)處理裝置,所述裝置應(yīng)用于包含多個(gè)存儲(chǔ)空間的存儲(chǔ)設(shè)備中,所述裝置包括:
[0027]確定模塊,用于確定待回收的第一存儲(chǔ)空間;
[0028]讀取模塊,用于將所述第一存儲(chǔ)空間中的數(shù)據(jù)讀取到緩存中;
[0029]寫(xiě)入模塊,用于將所述數(shù)據(jù)從所述緩存寫(xiě)入第二存儲(chǔ)空間;
[0030]更新模塊,用于根據(jù)所述第二存儲(chǔ)空間更新預(yù)設(shè)的存儲(chǔ)空間對(duì)應(yīng)關(guān)系,所述預(yù)設(shè)的存儲(chǔ)空間對(duì)應(yīng)關(guān)系包含有第一虛擬存儲(chǔ)空間與所述第一存儲(chǔ)空間的對(duì)應(yīng)關(guān)系;
[0031]接收模塊,用于接收主機(jī)的數(shù)據(jù)讀取請(qǐng)求,所述數(shù)據(jù)讀取請(qǐng)求中包含有所述數(shù)據(jù)的地址信息,其中所述數(shù)據(jù)的地址信息中包含有第一虛擬存儲(chǔ)空間的信息;
[0032]所述確定模塊,還用于根據(jù)所述第一虛擬存儲(chǔ)空間的信息與更新后的所述存儲(chǔ)空間對(duì)應(yīng)關(guān)系確定存儲(chǔ)所述數(shù)據(jù)的第二存儲(chǔ)空間;
[0033]發(fā)送模塊,用于將所述第二存儲(chǔ)空間中的所述數(shù)據(jù)發(fā)送給所述主機(jī)。
[0034]結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,所述數(shù)據(jù)的地址信息還包括所述數(shù)據(jù)對(duì)應(yīng)的哈希值,所述更新模塊,還用于在將所述第二存儲(chǔ)空間中的所述數(shù)據(jù)發(fā)送給所述主機(jī)之前,更新所述數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系,所述數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系包含有所述哈希值與所述數(shù)據(jù)在所述第一存儲(chǔ)空間中的地址的對(duì)應(yīng)關(guān)系;
[0035]所述確定模塊,還用于根據(jù)數(shù)據(jù)讀取請(qǐng)求中的所述哈希值與更新后的所述數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系確定所述數(shù)據(jù)在第二存儲(chǔ)空間中的地址;
[0036]所述發(fā)送模塊,具體用于將所述第二存儲(chǔ)空間中的地址中的所述數(shù)據(jù)發(fā)送給所述主機(jī)。
[0037]結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述哈希值根據(jù)所述數(shù)據(jù)在文件中的偏移量、所述文件的標(biāo)識(shí)以及所述數(shù)據(jù)的寫(xiě)入所述存儲(chǔ)設(shè)備的時(shí)間進(jìn)行哈希計(jì)算獲得。
[0038]結(jié)合第二方面,第二方面的第一種可能的實(shí)現(xiàn)方式,或者第二方面的第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述確定單元,具體用于根據(jù)存儲(chǔ)空間中不位于數(shù)據(jù)末端的空閑空間的大小,確定待回收的第一存儲(chǔ)空間。
[0039]結(jié)合第二方面,第二方面的第一種可能的實(shí)現(xiàn)方式,第二方面的第二種可能的實(shí)現(xiàn)方式,或者第二方面的第三種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,還包括:
[0040]歸并模塊,用于在將所述數(shù)據(jù)從所述緩存寫(xiě)入第二存儲(chǔ)空間之前,對(duì)所述數(shù)據(jù)進(jìn)行數(shù)據(jù)歸并,以回收不位于所述數(shù)據(jù)末端的空閑空間;
[0041]所述寫(xiě)入模塊,具體用于將進(jìn)行數(shù)據(jù)歸并后的數(shù)據(jù)從所述緩存寫(xiě)入第二存儲(chǔ)空間。
[0042]根據(jù)第一方面提供的數(shù)據(jù)處理方法,第二方面提供的數(shù)據(jù)處理裝置,設(shè)定文件系統(tǒng)存儲(chǔ)的文件的元數(shù)據(jù)中的地址信息具體包含有虛擬存儲(chǔ)空間的信息,在文件中的數(shù)據(jù)位于的存儲(chǔ)空間發(fā)生變化時(shí),可以調(diào)整虛擬存儲(chǔ)空間和存儲(chǔ)設(shè)備的存儲(chǔ)空間的對(duì)應(yīng)關(guān)系,而虛擬存儲(chǔ)空間的信息無(wú)需發(fā)生變化,即地址信息無(wú)需發(fā)生變化,從而可以避免文件元數(shù)據(jù)的更改。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0043]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例。
[0044]圖1為本發(fā)明實(shí)施例1提供的數(shù)據(jù)處理方法的流程圖;
[0045]圖2為本發(fā)明實(shí)施例2提供的數(shù)據(jù)處理方法的流程圖;
[0046]圖3為本發(fā)明實(shí)施例3提供的數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖;
[0047]圖4為本發(fā)明實(shí)施例4提供的數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖;
[0048]圖5為本發(fā)明實(shí)施例5提供的數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0049]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例。
[0050]實(shí)施例1:
[0051]圖1為本發(fā)明實(shí)施例1提供的一種數(shù)據(jù)處理方法的流程圖,該方法應(yīng)用于使用固態(tài)硬盤(pán)(Solid State Disk, SSD)介質(zhì)存儲(chǔ)數(shù)據(jù)的文件系統(tǒng)中。該方法可以包括如下步驟:
[0052]步驟101、確定待回收的第一存儲(chǔ)空間。
[0053]實(shí)際應(yīng)用中,文件系統(tǒng)在向SSD中寫(xiě)數(shù)據(jù)時(shí),通常只能按照從前至后的順序按頁(yè)page寫(xiě)入數(shù)據(jù)。例如,假設(shè)一個(gè)存儲(chǔ)空間中包含了多個(gè)頁(yè),存儲(chǔ)空間中的數(shù)據(jù)末端位于第12頁(yè),在該存儲(chǔ)空間中繼續(xù)寫(xiě)入數(shù)據(jù)時(shí),只能從該數(shù)據(jù)末端繼續(xù)寫(xiě)入。如果由于數(shù)據(jù)刪除等操作使該存儲(chǔ)空間中的第8頁(yè)中出現(xiàn)了空閑空間,該空閑空間是不可以被再次寫(xiě)入數(shù)據(jù)的,因此,在一個(gè)存儲(chǔ)空間中不位于數(shù)據(jù)末端的空閑空間相當(dāng)于垃圾空間。在本發(fā)明實(shí)施例中,在確定SSD中待回收的存儲(chǔ)空間時(shí),可以根據(jù)存儲(chǔ)空間中不位于數(shù)據(jù)末端的空閑空間的大小,確定待回收的第一存儲(chǔ)空間。[0054]具體實(shí)施時(shí),可以設(shè)定一個(gè)空間閾值,當(dāng)存儲(chǔ)空間中不位于數(shù)據(jù)末端的空閑空間達(dá)到該空間閾值時(shí),確定該存儲(chǔ)空間為待回收的第一存儲(chǔ)空間。該空間閾值根據(jù)存儲(chǔ)空間的大小確定,具體可以設(shè)定為存儲(chǔ)空間的一個(gè)百分比,例如,可以設(shè)定為存儲(chǔ)空間的10%。即當(dāng)存儲(chǔ)空間的大小為1024KB時(shí),空間閾值可以設(shè)定為102.4KB。
[0055]步驟102、將第一存儲(chǔ)空間中的數(shù)據(jù)讀取到緩存中。
[0056]在將第一存儲(chǔ)空間的數(shù)據(jù)讀取到緩存中之后,可以對(duì)第一存儲(chǔ)空間的數(shù)據(jù)進(jìn)行擦除,也可以在后續(xù)再次使用該第一存儲(chǔ)空間時(shí)對(duì)第一存儲(chǔ)空間的數(shù)據(jù)進(jìn)行擦除。當(dāng)?shù)谝淮鎯?chǔ)空間的數(shù)據(jù)被擦除后,實(shí)現(xiàn)了對(duì)第一存儲(chǔ)空間的回收。
[0057]具體實(shí)施時(shí),可以先判斷當(dāng)前緩存的數(shù)據(jù)中是否存在第一存儲(chǔ)空間中的數(shù)據(jù),當(dāng)當(dāng)前緩存的數(shù)據(jù)中不存在第一存儲(chǔ)空間中的數(shù)據(jù)時(shí),再?gòu)牡谝淮鎯?chǔ)空間讀取數(shù)據(jù)到緩存中。
[0058]步驟103、對(duì)緩存中的第一存儲(chǔ)空間的數(shù)據(jù)進(jìn)行數(shù)據(jù)歸并。
[0059]進(jìn)行數(shù)據(jù)歸并后,空閑空間全部位于數(shù)據(jù)末端。
[0060]步驟104、將進(jìn)行數(shù)據(jù)歸并后的數(shù)據(jù)從緩存寫(xiě)入第二存儲(chǔ)空間。
[0061]第二存儲(chǔ)空間可以為一個(gè)沒(méi)有存儲(chǔ)任何數(shù)據(jù)的存儲(chǔ)空間,也可以為一個(gè)已經(jīng)存儲(chǔ)有數(shù)據(jù)的存儲(chǔ)空間,具體需要根據(jù)待寫(xiě)入的數(shù)據(jù)的數(shù)據(jù)量來(lái)選擇一個(gè)存儲(chǔ)空間作為第二存儲(chǔ)空間。
[0062]具體實(shí)施時(shí),可以先判斷當(dāng)前緩存中的其它數(shù)據(jù)對(duì)應(yīng)的存儲(chǔ)空間中是否存在指定存儲(chǔ)空間具有足夠空間可以與入待與入的數(shù)據(jù),當(dāng)確定存在指定存儲(chǔ)空間時(shí),將該指定存儲(chǔ)空間作為第二存儲(chǔ)空間。當(dāng)確定不存在指定存儲(chǔ)空間時(shí),可以根據(jù)存儲(chǔ)的各存儲(chǔ)空間的剩余空間信息確定具有足夠空間可以寫(xiě)入待寫(xiě)入的數(shù)據(jù)的存儲(chǔ)空間,將該確定的存儲(chǔ)空間作為第二存儲(chǔ)空間。
[0063]步驟105、根據(jù)第二存儲(chǔ)空間更新預(yù)設(shè)的存儲(chǔ)空間對(duì)應(yīng)關(guān)系,該預(yù)設(shè)的存儲(chǔ)空間對(duì)應(yīng)關(guān)系包含有第一虛擬存儲(chǔ)空間與第一存儲(chǔ)空間的對(duì)應(yīng)關(guān)系。
[0064]具體為將第一虛擬存儲(chǔ)空間與第一存儲(chǔ)空間的對(duì)應(yīng)關(guān)系修改為第一虛擬存儲(chǔ)空間與第二存儲(chǔ)空間的對(duì)應(yīng)關(guān)系。
[0065]在本發(fā)明實(shí)施例中,當(dāng)數(shù)據(jù)存儲(chǔ)在第一存儲(chǔ)空間中時(shí),存儲(chǔ)空間對(duì)應(yīng)關(guān)系中和第一虛擬存儲(chǔ)空間對(duì)應(yīng)的存儲(chǔ)設(shè)備的存儲(chǔ)空間為第一存儲(chǔ)空間。當(dāng)數(shù)據(jù)存儲(chǔ)在第二存儲(chǔ)空間中時(shí),存儲(chǔ)空間對(duì)應(yīng)關(guān)系中,和第一虛擬存儲(chǔ)空間對(duì)應(yīng)的存儲(chǔ)設(shè)備的存儲(chǔ)空間為第二存儲(chǔ)空間。
[0066]步驟106、根據(jù)該數(shù)據(jù)在第二存儲(chǔ)空間中的地址更新該數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系,該數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系包含有該數(shù)據(jù)對(duì)應(yīng)的哈希值與該數(shù)據(jù)在第一存儲(chǔ)空間中的地址的對(duì)應(yīng)關(guān)系。
[0067]實(shí)際應(yīng)用中,可以將該數(shù)據(jù)對(duì)應(yīng)的哈希值與該數(shù)據(jù)在第一存儲(chǔ)空間中的地址的對(duì)應(yīng)關(guān)系修改為該數(shù)據(jù)對(duì)應(yīng)的哈希值與該數(shù)據(jù)在第二存儲(chǔ)空間中的地址的對(duì)應(yīng)關(guān)系。
[0068]在本發(fā)明實(shí)施例中,當(dāng)數(shù)據(jù)存儲(chǔ)在第一存儲(chǔ)空間中時(shí),存儲(chǔ)地址對(duì)應(yīng)關(guān)系中,和該數(shù)據(jù)對(duì)應(yīng)的哈希值為該數(shù)據(jù)在第一存儲(chǔ)空間中的地址。當(dāng)數(shù)據(jù)存儲(chǔ)在第二存儲(chǔ)空間中時(shí),存儲(chǔ)地址對(duì)應(yīng)關(guān)系中,和該數(shù)據(jù)對(duì)應(yīng)的哈希值為該數(shù)據(jù)在第二存儲(chǔ)空間中的地址。
[0069]步驟107、接收主機(jī)的數(shù)據(jù)讀取請(qǐng)求,該數(shù)據(jù)讀取請(qǐng)求中包含有該數(shù)據(jù)的地址信息,其中該數(shù)據(jù)的地址信息中包含有第一虛擬存儲(chǔ)空間的信息和該哈希值。
[0070]其中,待讀取數(shù)據(jù)歸屬于一個(gè)文件。從而,進(jìn)一步的,上述數(shù)據(jù)對(duì)應(yīng)的哈希值可以根據(jù)該數(shù)據(jù)在文件中的偏移量、該文件的標(biāo)識(shí)以及該數(shù)據(jù)的寫(xiě)入存儲(chǔ)設(shè)備的時(shí)間進(jìn)行哈希計(jì)算獲得。
[0071]步驟108、根據(jù)第一虛擬存儲(chǔ)空間的信息與更新后的該存儲(chǔ)空間對(duì)應(yīng)關(guān)系確定存儲(chǔ)該數(shù)據(jù)的第二存儲(chǔ)空間;根據(jù)該哈希值與更新后的該數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系確定該數(shù)據(jù)在第二存儲(chǔ)空間中的地址。
[0072]在本發(fā)明實(shí)施例中,根據(jù)存儲(chǔ)空間對(duì)應(yīng)關(guān)系,確定待讀取數(shù)據(jù)的地址信息中的虛擬存儲(chǔ)空間的信息對(duì)應(yīng)的存儲(chǔ)空間,該確定的存儲(chǔ)空間即為待讀取數(shù)據(jù)實(shí)際存儲(chǔ)的存儲(chǔ)空間;再根據(jù)存儲(chǔ)地址對(duì)應(yīng)關(guān)系,確定待讀取數(shù)據(jù)的地址信息中的哈希值對(duì)應(yīng)的在存儲(chǔ)空間內(nèi)的存儲(chǔ)地址,該確定的存儲(chǔ)地址即為待讀取數(shù)據(jù)在存儲(chǔ)空間內(nèi)實(shí)際的存儲(chǔ)地址。
[0073]通過(guò)本步驟108可以確定出待讀取數(shù)據(jù)實(shí)際存儲(chǔ)在哪一個(gè)存儲(chǔ)空間,以及存儲(chǔ)在該存儲(chǔ)空間中的哪一個(gè)位置。
[0074]步驟109、將該第二存儲(chǔ)空間中的地址中的該數(shù)據(jù)發(fā)送給主機(jī)。
[0075]在本發(fā)明實(shí)施例1中,文件中的數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系不和該文件中的數(shù)據(jù)一同存儲(chǔ)在一個(gè)存儲(chǔ)空間內(nèi)。
[0076]實(shí)施例2:
[0077]在本發(fā)明實(shí)施例2中,文件中的數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系和該文件中的數(shù)據(jù)一同存儲(chǔ)在一個(gè)存儲(chǔ)空間內(nèi)。即文件系統(tǒng)的存儲(chǔ)設(shè)備的一個(gè)存儲(chǔ)空間中的數(shù)據(jù)包括文件數(shù)據(jù)和該文件數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系兩部分。該文件數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系包含有該文件數(shù)據(jù)對(duì)應(yīng)的哈希值與該文件數(shù)據(jù)在存儲(chǔ)空間中的地址的對(duì)應(yīng)關(guān)系。
[0078]此時(shí),存儲(chǔ)地址對(duì)應(yīng)關(guān)系不需要區(qū)分存儲(chǔ)空間,存儲(chǔ)地址對(duì)應(yīng)關(guān)系存儲(chǔ)在第一存儲(chǔ)空間內(nèi),該存儲(chǔ)地址對(duì)應(yīng)關(guān)系即為文件數(shù)據(jù)對(duì)應(yīng)的哈希值與文件數(shù)據(jù)在第一存儲(chǔ)空間中的地址的對(duì)應(yīng)關(guān)系;存儲(chǔ)地址對(duì)應(yīng)關(guān)系存儲(chǔ)在第二存儲(chǔ)空間內(nèi),該存儲(chǔ)地址對(duì)應(yīng)關(guān)系即為文件數(shù)據(jù)對(duì)應(yīng)的哈希值與文件數(shù)據(jù)在第二存儲(chǔ)空間中的地址的對(duì)應(yīng)關(guān)系。
[0079]圖2為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)處理方法的流程圖,包括如下步驟:
[0080]步驟201、確定待回收的第一存儲(chǔ)空間。
[0081]步驟202、將第一存儲(chǔ)空間中的數(shù)據(jù)讀取到緩存中。
[0082]步驟203、對(duì)該數(shù)據(jù)進(jìn)行數(shù)據(jù)歸并。
[0083]步驟204、根據(jù)進(jìn)行數(shù)據(jù)歸并后的數(shù)據(jù),更新該數(shù)據(jù)中的文件數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系,該文件數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系包含有該文件數(shù)據(jù)對(duì)應(yīng)的哈希值與該文件數(shù)據(jù)在存儲(chǔ)空間中的地址的對(duì)應(yīng)關(guān)系。
[0084]具體實(shí)施時(shí),可以在緩存中存放數(shù)據(jù)時(shí),采用和存儲(chǔ)設(shè)備的存儲(chǔ)空間存放數(shù)據(jù)相同的存放形式,即在緩存中構(gòu)建虛擬存儲(chǔ)空間對(duì)應(yīng)于存儲(chǔ)設(shè)備的存儲(chǔ)空間,這樣通過(guò)數(shù)據(jù)在緩存中的虛擬存儲(chǔ)空間中的地址可以確定出該數(shù)據(jù)在存儲(chǔ)設(shè)備的存儲(chǔ)空間中的地址。
[0085]步驟205、將進(jìn)行歸并、更新后的數(shù)據(jù)從緩存寫(xiě)入第二存儲(chǔ)空間。
[0086]步驟206、根據(jù)第二存儲(chǔ)空間更新預(yù)設(shè)的存儲(chǔ)空間對(duì)應(yīng)關(guān)系,該預(yù)設(shè)的存儲(chǔ)空間對(duì)應(yīng)關(guān)系包含有第一虛擬存儲(chǔ)空間與第一存儲(chǔ)空間的對(duì)應(yīng)關(guān)系。
[0087]步驟207、接收主機(jī)的數(shù)據(jù)讀取請(qǐng)求,該數(shù)據(jù)讀取請(qǐng)求中包含有該文件數(shù)據(jù)的地址信息,其中該文件數(shù)據(jù)的地址信息中包含有第一虛擬存儲(chǔ)空間的信息和該文件數(shù)據(jù)對(duì)應(yīng)的哈希值。
[0088]步驟208、根據(jù)第一虛擬存儲(chǔ)空間的信息與更新后的存儲(chǔ)空間對(duì)應(yīng)關(guān)系確定存儲(chǔ)該文件數(shù)據(jù)的第二存儲(chǔ)空間;根據(jù)該文件數(shù)據(jù)對(duì)應(yīng)的哈希值與更新后的文件數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系確定該文件數(shù)據(jù)在第二存儲(chǔ)空間中的地址。
[0089]步驟209、將該第二存儲(chǔ)空間中的地址中的該文件數(shù)據(jù)發(fā)送給主機(jī)。
[0090]上述步驟201?步驟203,以及步驟205?步驟209,具體可參見(jiàn)上述實(shí)施例1中相應(yīng)步驟,在此不再贅述。
[0091]可見(jiàn),采用本發(fā)明實(shí)施例提供的數(shù)據(jù)處理方法,文件系統(tǒng)存儲(chǔ)的文件的元數(shù)據(jù)中的地址信息包含有虛擬存儲(chǔ)空間的信息和該文件中的數(shù)據(jù)對(duì)應(yīng)的哈希值,并建立虛擬存儲(chǔ)空間和存儲(chǔ)設(shè)備的存儲(chǔ)空間的對(duì)應(yīng)關(guān)系以及哈希值和數(shù)據(jù)在存儲(chǔ)空間中的地址的對(duì)應(yīng)關(guān)系,當(dāng)文件中的數(shù)據(jù)在存儲(chǔ)設(shè)備中的實(shí)際存儲(chǔ)位置發(fā)生變化時(shí),修改虛擬存儲(chǔ)空間對(duì)應(yīng)的存儲(chǔ)空間以及哈希值對(duì)應(yīng)的存儲(chǔ)空間中的地址,而地址信息中的虛擬存儲(chǔ)空間的信息和哈希值無(wú)需修改,即地址信息無(wú)需修改,進(jìn)而避免了文件元數(shù)據(jù)的更改。
[0092]實(shí)施例3:
[0093]基于同一發(fā)明構(gòu)思,根據(jù)本發(fā)明上述實(shí)施例1提供的數(shù)據(jù)處理方法,相應(yīng)地,本發(fā)明實(shí)施例還提供一種數(shù)據(jù)處理裝置,應(yīng)用于包含多個(gè)存儲(chǔ)空間的存儲(chǔ)設(shè)備中,其結(jié)構(gòu)示意圖如圖3所示,具體包括:
[0094]確定模塊301,用于確定待回收的第一存儲(chǔ)空間;
[0095]讀取模塊302,用于將該第一存儲(chǔ)空間中的數(shù)據(jù)讀取到緩存中;
[0096]歸并模塊303,用于對(duì)該數(shù)據(jù)進(jìn)行數(shù)據(jù)歸并,以回收不位于該數(shù)據(jù)末端的空閑空間;
[0097]寫(xiě)入模塊304,用于將進(jìn)行數(shù)據(jù)歸并后的數(shù)據(jù)從緩存寫(xiě)入第二存儲(chǔ)空間;
[0098]更新模塊305,用于根據(jù)該第二存儲(chǔ)空間更新預(yù)設(shè)的存儲(chǔ)空間對(duì)應(yīng)關(guān)系,該預(yù)設(shè)的存儲(chǔ)空間對(duì)應(yīng)關(guān)系包含有第一虛擬存儲(chǔ)空間與該第一存儲(chǔ)空間的對(duì)應(yīng)關(guān)系;以及根據(jù)該數(shù)據(jù)在該第二存儲(chǔ)空間中的地址更新該數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系,該數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系包含有該數(shù)據(jù)對(duì)應(yīng)的哈希值與該數(shù)據(jù)在該第一存儲(chǔ)空間中的地址的對(duì)應(yīng)關(guān)系;
[0099]接收模塊306,用于接收主機(jī)的數(shù)據(jù)讀取請(qǐng)求,該數(shù)據(jù)讀取請(qǐng)求中包含有該數(shù)據(jù)的地址信息,其中該數(shù)據(jù)的地址信息中包含有第一虛擬存儲(chǔ)空間的信息和該哈希值;
[0100]確定模塊301,還用于根據(jù)該第一虛擬存儲(chǔ)空間的信息與更新后的該存儲(chǔ)空間對(duì)應(yīng)關(guān)系確定存儲(chǔ)該數(shù)據(jù)的第二存儲(chǔ)空間;根據(jù)數(shù)據(jù)讀取請(qǐng)求中的該哈希值與更新后的該數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系確定該數(shù)據(jù)在第二存儲(chǔ)空間中的地址;
[0101]發(fā)送模塊307,用于將該第二存儲(chǔ)空間中的地址中的該數(shù)據(jù)發(fā)送給該主機(jī)。
[0102]其中,該哈希值可以根據(jù)該數(shù)據(jù)在文件中的偏移量、該文件的標(biāo)識(shí)以及該數(shù)據(jù)的寫(xiě)入該存儲(chǔ)設(shè)備的時(shí)間進(jìn)行哈希計(jì)算獲得。
[0103]上述各模塊的功能可對(duì)應(yīng)于圖1所示流程中的相應(yīng)處理步驟,在此不再贅述。
[0104]實(shí)施例4:
[0105]基于同一發(fā)明構(gòu)思,根據(jù)本發(fā)明上述實(shí)施例2提供的數(shù)據(jù)處理方法,相應(yīng)地,本發(fā)明實(shí)施例還提供一種數(shù)據(jù)處理裝置,應(yīng)用于包含多個(gè)存儲(chǔ)空間的存儲(chǔ)設(shè)備中,其結(jié)構(gòu)示意圖如圖4所示,具體包括:
[0106]確定模塊401,用于確定待回收的第一存儲(chǔ)空間;
[0107]讀取模塊402,用于將第一存儲(chǔ)空間中的數(shù)據(jù)讀取到緩存中;
[0108]歸并模塊403,用于對(duì)該數(shù)據(jù)進(jìn)行數(shù)據(jù)歸并;
[0109]更新模塊404,用于根據(jù)進(jìn)行數(shù)據(jù)歸并后的數(shù)據(jù),更新該數(shù)據(jù)中的文件數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系,該文件數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系包含有該文件數(shù)據(jù)對(duì)應(yīng)的哈希值與該文件數(shù)據(jù)在存儲(chǔ)空間中的地址的對(duì)應(yīng)關(guān)系;
[0110]寫(xiě)入模塊405,用于將進(jìn)行數(shù)據(jù)歸并、更新后的數(shù)據(jù)從緩存寫(xiě)入第二存儲(chǔ)空間;
[0111]更新模塊404,還用于根據(jù)該第二存儲(chǔ)空間更新預(yù)設(shè)的存儲(chǔ)空間對(duì)應(yīng)關(guān)系,該預(yù)設(shè)的存儲(chǔ)空間對(duì)應(yīng)關(guān)系包含有第一虛擬存儲(chǔ)空間與該第一存儲(chǔ)空間的對(duì)應(yīng)關(guān)系;
[0112]接收模塊406,用于接收主機(jī)的數(shù)據(jù)讀取請(qǐng)求,該數(shù)據(jù)讀取請(qǐng)求中包含有該文件數(shù)據(jù)的地址信息,其中該文件數(shù)據(jù)的地址信息中包含有第一虛擬存儲(chǔ)空間的信息和該文件數(shù)據(jù)對(duì)應(yīng)的哈希值;
[0113]確定模塊401,還用于根據(jù)該第一虛擬存儲(chǔ)空間的信息與更新后的該存儲(chǔ)空間對(duì)應(yīng)關(guān)系確定存儲(chǔ)該文件數(shù)據(jù)的第二存儲(chǔ)空間;根據(jù)數(shù)據(jù)讀取請(qǐng)求中的該哈希值與更新后的該文件數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系確定該文件數(shù)據(jù)在第二存儲(chǔ)空間中的地址;
[0114]發(fā)送模塊407,用于將該第二存儲(chǔ)空間中的地址中的該文件數(shù)據(jù)發(fā)送給該主機(jī)。
[0115]上述各模塊的功能可對(duì)應(yīng)于圖2所示流程中的相應(yīng)處理步驟,在此不再贅述。
[0116]采用本發(fā)明實(shí)施例提供的數(shù)據(jù)處理裝置,文件系統(tǒng)存儲(chǔ)的文件的元數(shù)據(jù)中的地址信息包含有虛擬存儲(chǔ)空間的信息和該文件中的數(shù)據(jù)對(duì)應(yīng)的哈希值,建立虛擬存儲(chǔ)空間和存儲(chǔ)設(shè)備的存儲(chǔ)空間的對(duì)應(yīng)關(guān)系以及哈希值和數(shù)據(jù)在存儲(chǔ)空間中的地址的對(duì)應(yīng)關(guān)系,當(dāng)文件中的數(shù)據(jù)在存儲(chǔ)設(shè)備中的實(shí)際存儲(chǔ)位置發(fā)生改變時(shí),通過(guò)修改上述兩個(gè)對(duì)應(yīng)關(guān)系,可以避免地址信息中的虛擬存儲(chǔ)空間的信息和哈希值的修改,即可以避免文件元數(shù)據(jù)的更改。
[0117]實(shí)施例5:
[0118]基于同一發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供一種數(shù)據(jù)處理裝置,應(yīng)用于包含多個(gè)存儲(chǔ)空間的存儲(chǔ)設(shè)備中,其結(jié)構(gòu)示意圖如圖5所示,包括存儲(chǔ)器501、處理器502 (例如CPU)、接收器503、發(fā)送器504和通信總線(xiàn)500。
[0119]通信總線(xiàn)500用于設(shè)備各部分之間的連接通信。
[0120]存儲(chǔ)器501可能包含高速隨機(jī)存取存儲(chǔ)器(Random Access Memory, RAM),也可能還包括非不穩(wěn)定的存儲(chǔ)器(non-volatile memory),例如磁盤(pán)存儲(chǔ)器。
[0121]處理器502用于執(zhí)行存儲(chǔ)器501中存儲(chǔ)的可執(zhí)行模塊,例如計(jì)算機(jī)程序。
[0122]接收器503用于接收信息。
[0123]發(fā)送器504用于發(fā)送信息。
[0124]在一些實(shí)施方式中,存儲(chǔ)器501存儲(chǔ)了程序5011,程序5011可以被處理器502執(zhí)行,這個(gè)程序包括:確定待回收的第一存儲(chǔ)空間;將第一存儲(chǔ)空間中的數(shù)據(jù)讀取到緩存中;將該數(shù)據(jù)從緩存寫(xiě)入第二存儲(chǔ)空間;根據(jù)第二存儲(chǔ)空間更新預(yù)設(shè)的存儲(chǔ)空間對(duì)應(yīng)關(guān)系,該預(yù)設(shè)的存儲(chǔ)空間對(duì)應(yīng)關(guān)系包含有第一虛擬存儲(chǔ)空間與第一存儲(chǔ)空間的對(duì)應(yīng)關(guān)系;接收器503用于接收主機(jī)的數(shù)據(jù)讀取請(qǐng)求,該數(shù)據(jù)讀取請(qǐng)求中包含有該數(shù)據(jù)的地址信息,其中該數(shù)據(jù)的地址信息中包含有第一虛擬存儲(chǔ)空間的信息;程序5011還包括:根據(jù)第一虛擬存儲(chǔ)空間的信息與更新后的該存儲(chǔ)空間對(duì)應(yīng)關(guān)系確定存儲(chǔ)該數(shù)據(jù)的第二存儲(chǔ)空間;發(fā)送器504用于將第二存儲(chǔ)空間中的該數(shù)據(jù)發(fā)送給主機(jī)。
[0125]在一些實(shí)施方式中,該數(shù)據(jù)的地址信息還包括該數(shù)據(jù)對(duì)應(yīng)的哈希值,程序5011還包括:將第二存儲(chǔ)空間中的該數(shù)據(jù)發(fā)送給主機(jī)之前,更新該數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系,該數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系包含有該哈希值與該數(shù)據(jù)在第一存儲(chǔ)空間中的地址的對(duì)應(yīng)關(guān)系;根據(jù)數(shù)據(jù)讀取請(qǐng)求中的該哈希值與更新后的該數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系確定該數(shù)據(jù)在第二存儲(chǔ)空間中的地址;發(fā)送器504具體用于將該第二存儲(chǔ)空間中的地址中的該數(shù)據(jù)發(fā)送給主機(jī)。
[0126]在一些實(shí)施方式中,該哈希值根據(jù)該數(shù)據(jù)在文件中的偏移量、該文件的標(biāo)識(shí)以及該數(shù)據(jù)的寫(xiě)入該存儲(chǔ)設(shè)備的時(shí)間進(jìn)行哈希計(jì)算獲得。
[0127]在一些實(shí)施方式中,程序5011具體包括:根據(jù)存儲(chǔ)空間中不位于數(shù)據(jù)末端的空閑空間的大小,確定待回收的第一存儲(chǔ)空間。
[0128]在一些實(shí)施方式中,程序5011還包括:將該數(shù)據(jù)從緩存寫(xiě)入第二存儲(chǔ)空間之前,對(duì)該數(shù)據(jù)進(jìn)行數(shù)據(jù)歸并,以回收不位于該數(shù)據(jù)末端的空閑空間;將進(jìn)行數(shù)據(jù)歸并后的數(shù)據(jù)從緩存寫(xiě)入第二存儲(chǔ)空間。
[0129]綜上所述,采用本發(fā)明實(shí)施例提供的方案,能夠避免文件元數(shù)據(jù)中的地址信息的頻繁更改,進(jìn)而避免文件元數(shù)據(jù)的頻繁更改。
[0130]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤(pán)存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
[0131]本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專(zhuān)用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
[0132]這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
[0133]這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
[0134]盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。
[0135]顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明實(shí)施例進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明實(shí)施例的精神和范圍。這樣,倘若本發(fā)明實(shí)施例的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
【權(quán)利要求】
1.一種數(shù)據(jù)處理方法,其特征在于,所述方法應(yīng)用于包含多個(gè)存儲(chǔ)空間的存儲(chǔ)設(shè)備中,所述方法包括: 確定待回收的第一存儲(chǔ)空間; 將所述第一存儲(chǔ)空間中的數(shù)據(jù)讀取到緩存中; 將所述數(shù)據(jù)從所述緩存寫(xiě)入第二存儲(chǔ)空間; 根據(jù)所述第二存儲(chǔ)空間更新預(yù)設(shè)的存儲(chǔ)空間對(duì)應(yīng)關(guān)系,所述預(yù)設(shè)的存儲(chǔ)空間對(duì)應(yīng)關(guān)系包含有第一虛擬存儲(chǔ)空間與所述第一存儲(chǔ)空間的對(duì)應(yīng)關(guān)系; 接收主機(jī)的數(shù)據(jù)讀取請(qǐng)求,所述數(shù)據(jù)讀取請(qǐng)求中包含有所述數(shù)據(jù)的地址信息,其中所述數(shù)據(jù)的地址信息中包含有第一虛擬存儲(chǔ)空間的信息; 根據(jù)所述第一虛擬存儲(chǔ)空間的信息與更新后的所述存儲(chǔ)空間對(duì)應(yīng)關(guān)系確定存儲(chǔ)所述數(shù)據(jù)的第二存儲(chǔ)空間; 將所述第二存儲(chǔ)空間中的所述數(shù)據(jù)發(fā)送給所述主機(jī)。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理方法,其特征在于,所述數(shù)據(jù)的地址信息還包括所述數(shù)據(jù)對(duì)應(yīng)的哈希值,所述將所述第二存儲(chǔ)空間中的所述數(shù)據(jù)發(fā)送給所述主機(jī)之前還包括: 更新所述數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系,所述數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系包含有所述哈希值與所述數(shù)據(jù)在所述第一存儲(chǔ)空間中的地址的對(duì)應(yīng)關(guān)系; 所述將所述第二存儲(chǔ)空間中的所述數(shù)據(jù)發(fā)送給所述主機(jī)包括:` 根據(jù)數(shù)據(jù)讀取請(qǐng)求中的所述哈希值與更新后的所述數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系確定所述數(shù)據(jù)在第二存儲(chǔ)空間中的地址; 將所述第二存儲(chǔ)空間中的地址中的所述數(shù)據(jù)發(fā)送給所述主機(jī)。
3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)處理方法,其特征在于,所述哈希值根據(jù)所述數(shù)據(jù)在文件中的偏移量、所述文件的標(biāo)識(shí)以及所述數(shù)據(jù)的寫(xiě)入所述存儲(chǔ)設(shè)備的時(shí)間進(jìn)行哈希計(jì)算獲得。
4.根據(jù)權(quán)利要求1-3任一所述的數(shù)據(jù)處理方法,其特征在于,所述確定待回收的第一存儲(chǔ)空間包括: 根據(jù)存儲(chǔ)空間中不位于數(shù)據(jù)末端的空閑空間的大小,確定待回收的第一存儲(chǔ)空間。
5.根據(jù)權(quán)利要求1-4任一所述的數(shù)據(jù)處理方法,其特征在于,所述將所述數(shù)據(jù)從所述緩存寫(xiě)入第二存儲(chǔ)空間之前還包括: 對(duì)所述數(shù)據(jù)進(jìn)行數(shù)據(jù)歸并,以回收不位于所述數(shù)據(jù)末端的空閑空間; 所述將所述數(shù)據(jù)從所述緩存寫(xiě)入第二存儲(chǔ)空間包括: 將進(jìn)行數(shù)據(jù)歸并后的數(shù)據(jù)從所述緩存寫(xiě)入第二存儲(chǔ)空間。
6.一種數(shù)據(jù)處理裝置,其特征在于,所述裝置應(yīng)用于包含多個(gè)存儲(chǔ)空間的存儲(chǔ)設(shè)備中,所述裝置包括: 確定模塊,用于確定待回收的第一存儲(chǔ)空間; 讀取模塊,用于將所述第一存儲(chǔ)空間中的數(shù)據(jù)讀取到緩存中; 寫(xiě)入模塊,用于將所述數(shù)據(jù)從所述緩存寫(xiě)入第二存儲(chǔ)空間; 更新模塊,用于根據(jù)所述第二存儲(chǔ)空間更新預(yù)設(shè)的存儲(chǔ)空間對(duì)應(yīng)關(guān)系,所述預(yù)設(shè)的存儲(chǔ)空間對(duì)應(yīng)關(guān)系包含有第一虛擬存儲(chǔ)空間與所述第一存儲(chǔ)空間的對(duì)應(yīng)關(guān)系;接收模塊,用于接收主機(jī)的數(shù)據(jù)讀取請(qǐng)求,所述數(shù)據(jù)讀取請(qǐng)求中包含有所述數(shù)據(jù)的地址信息,其中所述數(shù)據(jù)的地址信息中包含有第一虛擬存儲(chǔ)空間的信息; 所述確定模塊,還用于根據(jù)所述第一虛擬存儲(chǔ)空間的信息與更新后的所述存儲(chǔ)空間對(duì)應(yīng)關(guān)系確定存儲(chǔ)所述數(shù)據(jù)的第二存儲(chǔ)空間; 發(fā)送模塊,用于將所述第二存儲(chǔ)空間中的所述數(shù)據(jù)發(fā)送給所述主機(jī)。
7.根據(jù)權(quán)利要求6所述的數(shù)據(jù)處理裝置,其特征在于,所述數(shù)據(jù)的地址信息還包括所述數(shù)據(jù)對(duì)應(yīng)的哈希值,所述更新模塊,還用于在將所述第二存儲(chǔ)空間中的所述數(shù)據(jù)發(fā)送給所述主機(jī)之前,更新所述數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系,所述數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系包含有所述哈希值與所述數(shù)據(jù)在所述第一存儲(chǔ)空間中的地址的對(duì)應(yīng)關(guān)系; 所述確定模塊,還用于根據(jù)數(shù)據(jù)讀取請(qǐng)求中的所述哈希值與更新后的所述數(shù)據(jù)的存儲(chǔ)地址對(duì)應(yīng)關(guān)系確定所述數(shù)據(jù)在第二存儲(chǔ)空間中的地址; 所述發(fā)送模塊,具體用于將所述第二存儲(chǔ)空間中的地址中的所述數(shù)據(jù)發(fā)送給所述主機(jī)。
8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)處理裝置,其特征在于,所述哈希值根據(jù)所述數(shù)據(jù)在文件中的偏移量、所述文件的標(biāo)識(shí)以及所述數(shù)據(jù)的寫(xiě)入所述存儲(chǔ)設(shè)備的時(shí)間進(jìn)行哈希計(jì)算獲得。
9.根據(jù)權(quán)利要求6-8任一所述的數(shù)據(jù)處理裝置,其特征在于,所述確定單元,具體用于根據(jù)存儲(chǔ)空間中不位于數(shù)據(jù)末端的空閑空間的大小,確定待回收的第一存儲(chǔ)空間。
10.根據(jù)權(quán)利要求6-9任一所述的數(shù)據(jù)處理裝置,其特征在于,還包括:` 歸并模塊,用于在將所述數(shù)據(jù)從所述緩存寫(xiě)入第二存儲(chǔ)空間之前,對(duì)所述數(shù)據(jù)進(jìn)行數(shù)據(jù)歸并,以回收不位于所述數(shù)據(jù)末端的空閑空間; 所述寫(xiě)入模塊,具體用于將進(jìn)行數(shù)據(jù)歸并后的數(shù)據(jù)從所述緩存寫(xiě)入第二存儲(chǔ)空間。
【文檔編號(hào)】G06F3/06GK103677674SQ201310740639
【公開(kāi)日】2014年3月26日 申請(qǐng)日期:2013年12月27日 優(yōu)先權(quán)日:2013年12月27日
【發(fā)明者】孔晗 申請(qǐng)人:華為技術(shù)有限公司