欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種數(shù)據(jù)存儲方法及裝置與流程

文檔序號:11133489閱讀:402來源:國知局
一種數(shù)據(jù)存儲方法及裝置與制造工藝

本發(fā)明涉及數(shù)據(jù)存儲技術(shù)領(lǐng)域,更具體地說,涉及一種數(shù)據(jù)存儲方法及裝置。



背景技術(shù):

在數(shù)據(jù)存儲領(lǐng)域,隨著SSD(固態(tài)硬盤)等高讀寫性能介質(zhì)的技術(shù)更新,對存儲性能要求較高的存儲業(yè)務逐漸從低讀寫性能、大容量的傳統(tǒng)存儲介質(zhì)轉(zhuǎn)移到SSD等存儲介質(zhì)上。

目前來看,SSD的單位存儲價格要遠大于機械硬盤等傳統(tǒng)存儲介質(zhì)的單位存儲價格,因此,對于海量數(shù)據(jù)存儲業(yè)務,為了實現(xiàn)其存儲的低成本及大容量通常需要基于傳統(tǒng)存儲介質(zhì)實現(xiàn),但是傳統(tǒng)存儲介質(zhì)的讀寫性能較差,無法滿足對于海量數(shù)據(jù)的頻繁訪問要求。

綜上所述,現(xiàn)有技術(shù)中提供的數(shù)據(jù)存儲方案存在無法同時實現(xiàn)存儲介質(zhì)的低成本及高讀寫性能的問題。



技術(shù)實現(xiàn)要素:

本發(fā)明的目的是提供一種數(shù)據(jù)存儲方法及裝置,以解決現(xiàn)有技術(shù)中提供的數(shù)據(jù)存儲方案存在無法同時實現(xiàn)存儲介質(zhì)的低成本及高讀寫性能的問題。

為了實現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:

一種數(shù)據(jù)存儲方法,包括:

將存儲介質(zhì)按照其讀寫性能劃分為不同的存儲介質(zhì)層,并基于每層存儲介質(zhì)層的權(quán)重值及預設容量參數(shù)計算該存儲介質(zhì)層的數(shù)據(jù)塊大??;

獲取待存儲數(shù)據(jù)的熱度,并確定與該存儲數(shù)據(jù)的熱度對應讀寫性能的存儲介質(zhì)層為目標存儲層;

將所述待存儲數(shù)據(jù)按照所述目標介質(zhì)層的數(shù)據(jù)塊大小劃分為存儲數(shù)據(jù)塊,并將該存儲數(shù)據(jù)塊存儲至所述目標存儲層中。

優(yōu)選的,還包括:

將各層存儲介質(zhì)層中的存儲數(shù)據(jù)塊進行哈希計算,得到與每個存儲數(shù)據(jù)塊對應的塊簽名;

將數(shù)據(jù)塊大小相同的所述存儲數(shù)據(jù)塊的塊簽名存儲至同一哈希組中。

優(yōu)選的,還包括:

對各層所述存儲介質(zhì)層中存儲的存儲數(shù)據(jù)塊進行實時監(jiān)控;

當任一存儲數(shù)據(jù)塊的熱度變化且與當前存儲介質(zhì)層的讀寫性能不對應時,則確定該存儲數(shù)據(jù)塊為待遷移數(shù)據(jù),并確定與該待遷移數(shù)據(jù)的當前熱度對應讀寫性能的存儲介質(zhì)為目標遷移層;

判斷所述待遷移數(shù)據(jù)的數(shù)據(jù)塊大小與所述目標遷移層的數(shù)據(jù)塊大小是否相同,如果是,則將所述待遷移數(shù)據(jù)遷移至所述目標遷移層,如果否,則將所述待遷移數(shù)據(jù)遷移至所述目標遷移層后重新計算該待遷移數(shù)據(jù)對應數(shù)據(jù)塊的哈希值,得到對應的塊簽名,并將該塊簽名存儲至對應哈希組中。

優(yōu)選的,還包括:

當有新數(shù)據(jù)需要寫入時,確定所述新數(shù)據(jù)對應的存儲介質(zhì)層為目標寫入層,其中,所述新數(shù)據(jù)的寫入包括數(shù)據(jù)遷移、數(shù)據(jù)修改及數(shù)據(jù)寫入;

將所述新數(shù)據(jù)按照所述目標寫入層的數(shù)據(jù)塊大小進行合并或者劃分,得到與所述目標寫入層對應的存儲數(shù)據(jù)塊并將其存儲至所述目標寫入層中。

優(yōu)選的,得到與所述目標寫入層對應的存儲數(shù)據(jù)塊并將其存儲至所述目標寫入層中,包括:

將得到的與所述目標寫入層對應的存儲數(shù)據(jù)塊進行哈希計算,得到對應的寫入數(shù)據(jù)塊簽名;

在與所述寫入數(shù)據(jù)塊簽名對應的哈希組中查找是否存在相同的塊簽名,如果存在,則將該塊簽名對應的使用計數(shù)加1,如果不存在,則將所述寫入數(shù)據(jù)塊簽名對應存儲數(shù)據(jù)塊存儲至所述目標寫入層中,并將所述寫入數(shù)據(jù)塊簽名加入對應哈希組中。

優(yōu)選的,將所述寫入數(shù)據(jù)塊簽名加入對應哈希組中之后,還包括:

如果所述新數(shù)據(jù)的寫入為數(shù)據(jù)修改,則將與所述新數(shù)據(jù)對應的原存儲數(shù)據(jù)塊的使用計數(shù)減1。

優(yōu)選的,還包括:

如果各層存儲介質(zhì)中存在使用計數(shù)為0的存儲數(shù)據(jù)塊,則將該存儲數(shù)據(jù)塊放入LRU鏈表中。

優(yōu)選的,還包括:

獲取所述存儲介質(zhì)層中各存儲數(shù)據(jù)塊對應的元數(shù)據(jù);

基于所述元數(shù)據(jù)計算被修改的存儲數(shù)據(jù)塊及新寫入的存儲數(shù)據(jù)塊的計數(shù)和,并確定該計數(shù)和與存儲數(shù)據(jù)塊總數(shù)的比值為元數(shù)據(jù)臟信息;

當所述元數(shù)據(jù)臟信息大于對應閾值時,將所述存儲介質(zhì)中各存儲數(shù)據(jù)的元數(shù)據(jù)更新至對應的存儲磁盤。

一種數(shù)據(jù)存儲裝置,包括:

劃分模塊,用于將存儲介質(zhì)按照其讀寫性能劃分為不同的存儲介質(zhì)層,并基于每層存儲介質(zhì)層的權(quán)重值及預設容量參數(shù)計算該存儲介質(zhì)層的數(shù)據(jù)塊大?。?/p>

確定模塊,用于獲取待存儲數(shù)據(jù)的熱度,并確定與該存儲數(shù)據(jù)的熱度對應讀寫性能的存儲介質(zhì)層為目標存儲層;

存儲模塊,用于將所述待存儲數(shù)據(jù)按照所述目標介質(zhì)層的數(shù)據(jù)塊大小劃分為存儲數(shù)據(jù)塊,并將該存儲數(shù)據(jù)塊存儲至所述目標存儲層中。

優(yōu)選的,還包括:

管理模塊,用于:將各層存儲介質(zhì)層中的存儲數(shù)據(jù)塊進行哈希計算,得到與每個存儲數(shù)據(jù)塊對應的塊簽名;將數(shù)據(jù)塊大小相同的所述存儲數(shù)據(jù)塊的塊簽名存儲至同一哈希組中。

本發(fā)明提供了一種數(shù)據(jù)存儲方法及裝置,其中該方法包括:將存儲介質(zhì)按照其讀寫性能劃分為不同的存儲介質(zhì)層,并基于每層存儲介質(zhì)層的權(quán)重值及預設容量參數(shù)計算該存儲介質(zhì)層的數(shù)據(jù)塊大?。猾@取待存儲數(shù)據(jù)的熱度,并確定與該存儲數(shù)據(jù)的熱度對應讀寫性能的存儲介質(zhì)層為目標存儲層;將所述待存儲數(shù)據(jù)按照所述目標介質(zhì)層的數(shù)據(jù)塊大小劃分為存儲數(shù)據(jù)塊,并將該存儲數(shù)據(jù)塊存儲至所述目標存儲層中。通過本申請公開的上述技術(shù)特征,利用高讀寫性能的存儲介質(zhì)層存儲對應高熱度的待存儲數(shù)據(jù),由此,保證了對于高熱度數(shù)據(jù)的讀寫速率;并且,在不同的存儲介質(zhì)層中將存儲的數(shù)據(jù)劃分為對應的存儲數(shù)據(jù)塊,由此高性能存儲介質(zhì)層具有較小的存儲數(shù)據(jù)塊,充分增加了高性能存儲介質(zhì)的空間利用率,對于低讀寫性能的存儲介質(zhì)劃分較大的存儲數(shù)據(jù)塊,以減小頻繁數(shù)據(jù)訪問帶來的性能損耗??梢?,本申請中能夠充分結(jié)合高性能存儲介質(zhì)及低性能存儲介質(zhì)的優(yōu)點,在一定程度上保證低成本的同時實現(xiàn)了高讀寫性能。

附圖說明

為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。

圖1為本發(fā)明實施例提供的一種數(shù)據(jù)存儲方法的流程圖;

圖2為本發(fā)明實施例提供的一種數(shù)據(jù)存儲裝置的結(jié)構(gòu)示意圖。

具體實施方式

下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。

請參閱圖1,其示出了本發(fā)明實施例提供的一種數(shù)據(jù)存儲方法的流程圖,可以包括以下步驟:

S11:將存儲介質(zhì)按照其讀寫性能劃分為不同的存儲介質(zhì)層,并基于每層存儲介質(zhì)層的權(quán)重值及預設容量參數(shù)計算該存儲介質(zhì)層的數(shù)據(jù)塊大小。

其中,按照存儲介質(zhì)的讀寫性能將其劃分為不同的存儲介質(zhì)層,具體可以為將存儲介質(zhì)按照其讀寫性能的高低分為不同的存儲介質(zhì)層,如可以將存儲介質(zhì)分為三層,包括SSD層、10K轉(zhuǎn)/分鐘的SAS機械硬盤層和7.2K轉(zhuǎn)/分鐘的SATA機械硬盤層。而計算每層存儲介質(zhì)層的數(shù)據(jù)塊大小時所利用的權(quán)重值和預設容量參數(shù)可以由工作人員根據(jù)實際需要進行確定,對數(shù)據(jù)塊大小的確定是基于存儲介質(zhì)層的讀寫性能及容量來實現(xiàn)的,一般來說,存儲介質(zhì)層的讀寫性能越高,劃分的數(shù)據(jù)塊大小越小。仍然以上述例子進行說明,當存儲介質(zhì)層第一層至第三層分別為SSD層、10K轉(zhuǎn)/分鐘的SAS機械硬盤層和7.2K轉(zhuǎn)/分鐘的SATA機械硬盤層時,則計算對應數(shù)據(jù)塊大小的公式可以為:

數(shù)據(jù)塊大?。?k*權(quán)重值*容量調(diào)整參數(shù)

其中存儲介質(zhì)層對應的權(quán)重值可以選擇三組取值,分別是:

低權(quán)重:1(第一層)、2(第二層)、4(第三層)

中權(quán)重:2(第一層)、16(第二層)、64(第三層)

高權(quán)重:4(第一層)、32(第二層)、128(第三層)

其中,權(quán)重的級別可以根據(jù)用戶業(yè)務的io塊大小的統(tǒng)計信息決定或由管理員手動設定。具體來說,io塊由大至小可分別對應低權(quán)重至高權(quán)重。

而預設容量參數(shù)的作用是根據(jù)每層存儲介質(zhì)層的容量對其數(shù)據(jù)塊大小進行調(diào)整,具體來說,可以按照下列方式進行設置:

第一層:當容量低于(不包括)100GB時預設容量參數(shù)為1/2(權(quán)重值為1時預設容量參數(shù)取1),當容量介于100GB(包括)到10TB(不包括)之間時預設容量參數(shù)為1,當容量高于(包括)10TB時預設容量參數(shù)為2;

第二層:當容量低于(不包括)10TB時預設容量參數(shù)為1/2(權(quán)重值為1時容量參數(shù)取1),當容量介于10TB(包括)到100TB(不包括)之間時預設容量參數(shù)為1,當容量高于(包括)100TB時預設容量參數(shù)為2;

第三層:當容量低于(不包括)50TB時預設容量參數(shù)為1/2(權(quán)重值為1時容量參數(shù)取1),當容量介于50TB(包括)到1EB(不包括)之間時預設容量參數(shù)為1,當容量高于(包括)1EB時預設容量參數(shù)為2。

S12:獲取待存儲數(shù)據(jù)的熱度,并確定與該存儲數(shù)據(jù)的熱度對應讀寫性能的存儲介質(zhì)層為目標存儲層。

按照待存儲數(shù)據(jù)的熱度確定對應的目標存儲層,其中,待存儲數(shù)據(jù)的熱度可以指該數(shù)據(jù)的訪問率等,具體來說,待存儲數(shù)據(jù)熱度越高,則將其對應至讀寫性能越高的層中,由此,由高讀寫性能的存儲介質(zhì)層實現(xiàn)高熱度數(shù)據(jù)的存儲,保證了其讀寫速率。

S13:將待存儲數(shù)據(jù)按照目標介質(zhì)層的數(shù)據(jù)塊大小劃分為存儲數(shù)據(jù)塊,并將該存儲數(shù)據(jù)塊存儲至目標存儲層中。

將待存儲數(shù)據(jù)劃分為存儲數(shù)據(jù)塊,已對其實現(xiàn)存儲。

通過本申請公開的上述技術(shù)特征,利用高讀寫性能的存儲介質(zhì)層存儲對應高熱度的待存儲數(shù)據(jù),由此,保證了對于高熱度數(shù)據(jù)的讀寫速率;并且,在不同的存儲介質(zhì)層中將存儲的數(shù)據(jù)劃分為對應的存儲數(shù)據(jù)塊,由此高性能存儲介質(zhì)層具有較小的存儲數(shù)據(jù)塊,充分增加了高性能存儲介質(zhì)的空間利用率,對于低讀寫性能的存儲介質(zhì)劃分較大的存儲數(shù)據(jù)塊,以減小頻繁數(shù)據(jù)訪問帶來的性能損耗??梢?,本申請中能夠充分結(jié)合高性能存儲介質(zhì)及低性能存儲介質(zhì)的優(yōu)點,在一定程度上保證低成本的同時實現(xiàn)了高讀寫性能。

本發(fā)明實施例提供的一種數(shù)據(jù)存儲方法,還可以包括:

將各層存儲介質(zhì)層中的存儲數(shù)據(jù)塊進行哈希計算,得到與每個存儲數(shù)據(jù)塊對應的塊簽名;

將數(shù)據(jù)塊大小相同的存儲數(shù)據(jù)塊的塊簽名存儲至同一哈希組中。

其中,哈希計算與現(xiàn)有技術(shù)中對應概念的含義一致,在此不再贅述。通過對存儲數(shù)據(jù)塊的哈希計算,得到對應的塊簽名,進而將數(shù)據(jù)塊大小相同的存數(shù)數(shù)據(jù)塊的塊簽名存儲至同一哈希組中;從而在需要對某一存儲數(shù)據(jù)塊進行查詢時能夠通過對應哈希組實現(xiàn)快速查找。

本發(fā)明實施例提供的一種數(shù)據(jù)存儲方法,還可以包括:

對各層存儲介質(zhì)層中存儲的存儲數(shù)據(jù)塊進行實時監(jiān)控;

當任一存儲數(shù)據(jù)塊的熱度變化且與當前存儲介質(zhì)層的讀寫性能不對應時,則確定該存儲數(shù)據(jù)塊為待遷移數(shù)據(jù),并確定與該待遷移數(shù)據(jù)的當前熱度對應讀寫性能的存儲介質(zhì)為目標遷移層;

判斷待遷移數(shù)據(jù)的數(shù)據(jù)塊大小與目標遷移層的數(shù)據(jù)塊大小是否相同,如果是,則將待遷移數(shù)據(jù)遷移至目標遷移層,如果否,則將待遷移數(shù)據(jù)遷移至目標遷移層后重新計算該待遷移數(shù)據(jù)對應數(shù)據(jù)塊的哈希值,得到對應的塊簽名,并將該塊簽名存儲至對應哈希組中。

當存儲數(shù)據(jù)塊的熱度發(fā)生變化,包括由高熱度降至一定低熱度或者由低熱度升至一定高熱度等,與當前所在的存儲介質(zhì)層的讀寫性能不再具有對應關(guān)系時,需要將其遷移至與其當前熱度對應的存儲介質(zhì)層中。具體來說,如果其當前所處的存儲介質(zhì)層與目標遷移層的數(shù)據(jù)塊大小一致,則說明其快簽名所在的哈希組無需發(fā)生變化,則直接進行遷移即可,否則,則需要在遷移完成后重新計算對應哈希值,并將該哈希值作為其快簽名存入與目標遷移層的數(shù)據(jù)塊大小對應的哈希組中,而其原來的塊簽名直接進行刪除即可。通過上述方式能夠?qū)崿F(xiàn)冷熱數(shù)據(jù)的交換,由此,能夠保證存儲介質(zhì)層的讀寫性能與存儲在其中的存儲數(shù)據(jù)塊的熱度的對應性,保證了本發(fā)明實施例提供的上述方法的順利實現(xiàn)。

另外,在對存儲數(shù)據(jù)塊進行監(jiān)控后,可以將熱度發(fā)生變化需要被遷移的數(shù)據(jù)對應塊簽名連接到對應的熱度上升鏈表或者熱度下降鏈表中,進而基于這兩個鏈表實現(xiàn)對應存儲數(shù)據(jù)塊的遷移。

本發(fā)明實施例提供的一種數(shù)據(jù)存儲方法,還可以包括:

當有新數(shù)據(jù)需要寫入時,確定新數(shù)據(jù)對應的存儲介質(zhì)層為目標寫入層,其中,新數(shù)據(jù)的寫入包括數(shù)據(jù)遷移、數(shù)據(jù)修改及數(shù)據(jù)寫入;

將新數(shù)據(jù)按照目標寫入層的數(shù)據(jù)塊大小進行合并或者劃分,得到與目標寫入層對應的存儲數(shù)據(jù)塊并將其存儲至目標寫入層中。

其中,上述新數(shù)據(jù)的寫入包括數(shù)據(jù)遷移、數(shù)據(jù)修改及數(shù)據(jù)寫入,即為包括數(shù)據(jù)遷移過程中將該數(shù)據(jù)寫入到目標遷移層的過程(此時目標遷移層即為目標寫入層)、對任一存儲介質(zhì)層中的數(shù)據(jù)進行修改的過程及寫入新的數(shù)據(jù)的過程。在上述過程中,都需要將需要寫入的數(shù)據(jù)劃分與目標寫入層的數(shù)據(jù)塊大小相同的存儲數(shù)據(jù)塊再進行存儲,從而保證了各存儲介質(zhì)層中存儲數(shù)據(jù)塊的塊大小的維護,進一步保證了本發(fā)明實施例提供的上述方法的順利實現(xiàn)。

其中,對于該寫入過程,具體可以包括:

如果新數(shù)據(jù)的數(shù)據(jù)塊大小等于目標寫入層的數(shù)據(jù)塊大小,則直接寫入;

如果新數(shù)據(jù)的數(shù)據(jù)塊大小小于目標寫入層的數(shù)據(jù)塊大小,分為三種情況:

1、新數(shù)據(jù)寫入為數(shù)據(jù)修改,則獲取與該新數(shù)據(jù)對應修改內(nèi)容部分具有連續(xù)物理地址的存儲數(shù)據(jù)塊的復制數(shù)據(jù),并將該復制與新數(shù)據(jù)組成與目標寫入層數(shù)據(jù)塊大小相同的存儲數(shù)據(jù)塊后寫入目標寫入層;

2、新數(shù)據(jù)寫入為數(shù)據(jù)寫入,則直接將新數(shù)據(jù)寫入目標寫入層,并在目標寫入層中為該新數(shù)據(jù)分配目標寫入層對應數(shù)據(jù)塊大小的存儲資源;

3、新數(shù)據(jù)寫入為數(shù)據(jù)遷移,則獲取與該數(shù)據(jù)在原存儲介質(zhì)層中具有連續(xù)物理地址的存儲數(shù)據(jù)塊,并將該存儲數(shù)據(jù)塊與新數(shù)據(jù)組成與目標寫入層數(shù)據(jù)塊大小相同的存儲數(shù)據(jù)塊后一起遷移至目標寫入層;

如果新數(shù)據(jù)的數(shù)據(jù)塊大小大于目標寫入層的數(shù)據(jù)流大小,分為三種情況:

1、新數(shù)據(jù)寫入為數(shù)據(jù)修改,則將新數(shù)據(jù)拆分為與目標寫入層對應塊大小相同的數(shù)據(jù)塊并寫入目標寫入層中,如果拆分之后具有比目標寫入層對應塊大小小的一部分數(shù)據(jù),則按照新數(shù)據(jù)的數(shù)據(jù)塊大小小于目標寫入層的數(shù)據(jù)塊大小中的情況1對其進行處理;

2、新數(shù)據(jù)寫入為數(shù)據(jù)寫入,則將新數(shù)據(jù)拆分為與目標寫入層對應塊大小相同的數(shù)據(jù)塊并寫入目標寫入層中,如果拆分之后具有比目標寫入層對應塊大小小的一部分數(shù)據(jù),則按照新數(shù)據(jù)的數(shù)據(jù)塊大小小于目標寫入層的數(shù)據(jù)塊大小中的情況2對其進行處理;

3、新數(shù)據(jù)寫入為數(shù)據(jù)遷移,則將新數(shù)據(jù)拆分為與目標寫入層對應塊大小相同的數(shù)據(jù)塊并寫入目標寫入層中,如果拆分之后具有比目標寫入層對應塊大小小的一部分數(shù)據(jù),則按照新數(shù)據(jù)的數(shù)據(jù)塊大小小于目標寫入層的數(shù)據(jù)塊大小中的情況3對其進行處理。

本發(fā)明實施例提供的一種數(shù)據(jù)存儲方法,得到與目標寫入層對應的存儲數(shù)據(jù)塊并將其存儲至目標寫入層中,可以包括:

將得到的與目標寫入層對應的存儲數(shù)據(jù)塊進行哈希計算,得到對應的寫入數(shù)據(jù)塊簽名;

在與寫入數(shù)據(jù)塊簽名對應的哈希組中查找是否存在相同的塊簽名,如果存在,則將該塊簽名對應的使用計數(shù)加1,如果不存在,則將寫入數(shù)據(jù)塊簽名對應存儲數(shù)據(jù)塊存儲至目標寫入層中,并將寫入數(shù)據(jù)塊簽名加入對應哈希組中。

其中,使用計數(shù)為有多少用戶需要對該數(shù)據(jù)進行使用,在寫入數(shù)據(jù)塊簽名對應的哈希組中查找到存在相同的塊簽名,則說明該數(shù)據(jù)已經(jīng)存在,此時,只需將其使用計數(shù)加1,即說明增加了一個需要利用該數(shù)據(jù)的用戶即可,如果在寫入數(shù)據(jù)塊簽名對應的哈希組中未查找到存在相同的塊簽名,則將實現(xiàn)新數(shù)據(jù)的存儲,并將其對應寫入數(shù)據(jù)塊簽名加入哈希組中。通過上述步驟,實現(xiàn)數(shù)據(jù)塊的重復刪除,并通過使用計數(shù)的維護能夠使得對于該數(shù)據(jù)的用戶信息進行準確表現(xiàn)。

本發(fā)明實施例提供的一種數(shù)據(jù)存儲方法,將寫入數(shù)據(jù)塊簽名加入對應哈希組中之后,還可以包括:

如果新數(shù)據(jù)的寫入為數(shù)據(jù)修改,則將與新數(shù)據(jù)對應的原存儲數(shù)據(jù)塊的使用計數(shù)減1。

數(shù)據(jù)修改中,原存儲數(shù)據(jù)的使用計數(shù)減1,表示原存儲數(shù)據(jù)的使用用戶減1,從而通過對使用計數(shù)的維護實現(xiàn)對于該數(shù)據(jù)的用戶信息的準確表現(xiàn)。

本發(fā)明實施例提供的一種數(shù)據(jù)存儲方法,還可以包括:

如果各層存儲介質(zhì)中存在使用計數(shù)為0的存儲數(shù)據(jù)塊,則將該存儲數(shù)據(jù)塊放入LRU鏈表中。

當使用計數(shù)為0時,說明一定時間內(nèi)不再有用戶需要對該部分數(shù)據(jù)進行利用,此時,將該存儲數(shù)據(jù)放入LRU鏈表中,能夠保證對于存儲介質(zhì)層的充分利用。

另外需要說明的是,可以通過del_dup_node數(shù)據(jù)結(jié)構(gòu)對存儲數(shù)據(jù)塊進行描述,該存儲結(jié)構(gòu)即為對應存儲數(shù)據(jù)塊的元數(shù)據(jù),可以包括:塊簽名、數(shù)據(jù)塊訪問熱度(即上文中的熱度)、物理地址、數(shù)據(jù)塊大小、上次分級(即距離當前時間最近的一次遷移前所在的存儲介質(zhì)層)、當前分級(當前所在的存儲介質(zhì)層)、使用計數(shù)、flag標志等。其中,flag標志可以體現(xiàn)存儲數(shù)據(jù)塊當前的狀態(tài),可以包括遷移前、遷移中、遷移后等。

具體來說,存當需要對存儲數(shù)據(jù)塊進行遷移時,存儲數(shù)據(jù)塊遷移前對應flag標志為遷移前,而當開始對其進行遷移可以更新元數(shù)據(jù)中的flag標志為遷移中,在完成對存儲數(shù)據(jù)塊的遷移后可以更新元數(shù)據(jù)中的flag標志為遷移后。并且在對存儲數(shù)據(jù)塊實現(xiàn)遷移后,還可以更新該數(shù)據(jù)塊在元數(shù)據(jù)中的塊大小、物理地址、上次分級、當前分級等;該過程需要原子的進行操作。

對應的,本發(fā)明實施例提供的一種數(shù)據(jù)存儲方法,還可以包括:

獲取存儲介質(zhì)層中各存儲數(shù)據(jù)塊對應的元數(shù)據(jù);

基于元數(shù)據(jù)計算被修改的存儲數(shù)據(jù)塊及新寫入的存儲數(shù)據(jù)塊的計數(shù)和,并確定該計數(shù)和與存儲數(shù)據(jù)塊總數(shù)的比值為元數(shù)據(jù)臟信息;

當元數(shù)據(jù)臟信息大于對應閾值時,將存儲介質(zhì)中各存儲數(shù)據(jù)的元數(shù)據(jù)更新至對應的存儲磁盤。

其中,當元數(shù)據(jù)臟信息大于對應閾值或者距離上述元數(shù)據(jù)更新達到預設時間段時,需要對元數(shù)據(jù)更新至對應存儲磁盤。此過程可以通過后臺同步線程實現(xiàn),從而通過元數(shù)據(jù)的更新保證了數(shù)據(jù)的一致性。具體來說,將元數(shù)據(jù)更新至對應存儲磁盤為將存儲磁盤中不存在的元數(shù)據(jù)加入,將存儲磁盤中存在當前時刻存儲介質(zhì)層不存在的元數(shù)據(jù)刪除,并將對于同一存儲數(shù)據(jù)塊將存儲磁盤中的元數(shù)據(jù)更改為當前存儲介質(zhì)中的元數(shù)據(jù),實現(xiàn)全部元數(shù)據(jù)的更新。

本發(fā)明實施例還提供了一種數(shù)據(jù)存儲裝置,如圖2所示,可以包括:

劃分模塊11,用于將存儲介質(zhì)按照其讀寫性能劃分為不同的存儲介質(zhì)層,并基于每層存儲介質(zhì)層的權(quán)重值及預設容量參數(shù)計算該存儲介質(zhì)層的數(shù)據(jù)塊大?。?/p>

確定模塊12,用于獲取待存儲數(shù)據(jù)的熱度,并確定與該存儲數(shù)據(jù)的熱度對應讀寫性能的存儲介質(zhì)層為目標存儲層;

存儲模塊13,用于將待存儲數(shù)據(jù)按照目標介質(zhì)層的數(shù)據(jù)塊大小劃分為存儲數(shù)據(jù)塊,并將該存儲數(shù)據(jù)塊存儲至目標存儲層中。

本發(fā)明實施例提供的一種數(shù)據(jù)存儲裝置,還可以包括:

管理模塊,用于:將各層存儲介質(zhì)層中的存儲數(shù)據(jù)塊進行哈希計算,得到與每個存儲數(shù)據(jù)塊對應的塊簽名;將數(shù)據(jù)塊大小相同的存儲數(shù)據(jù)塊的塊簽名存儲至同一哈希組中。

本發(fā)明實施例提供的一種數(shù)據(jù)存儲裝置,還可以包括:

遷移模塊,用于:對各層存儲介質(zhì)層中存儲的存儲數(shù)據(jù)塊進行實時監(jiān)控;當任一存儲數(shù)據(jù)塊的熱度變化且與當前存儲介質(zhì)層的讀寫性能不對應時,則確定該存儲數(shù)據(jù)塊為待遷移數(shù)據(jù),并確定與該待遷移數(shù)據(jù)的當前熱度對應讀寫性能的存儲介質(zhì)為目標遷移層;判斷待遷移數(shù)據(jù)的數(shù)據(jù)塊大小與目標遷移層的數(shù)據(jù)塊大小是否相同,如果是,則將待遷移數(shù)據(jù)遷移至目標遷移層,如果否,則將待遷移數(shù)據(jù)遷移至目標遷移層后重新計算該待遷移數(shù)據(jù)對應數(shù)據(jù)塊的哈希值,得到對應的塊簽名,并將該塊簽名存儲至對應哈希組中。

本發(fā)明實施例提供的一種數(shù)據(jù)存儲裝置,還可以包括:

寫入模塊,用于:當有新數(shù)據(jù)需要寫入時,確定新數(shù)據(jù)對應的存儲介質(zhì)層為目標寫入層,其中,新數(shù)據(jù)的寫入包括數(shù)據(jù)遷移、數(shù)據(jù)修改及數(shù)據(jù)寫入;將新數(shù)據(jù)按照目標寫入層的數(shù)據(jù)塊大小進行合并或者劃分,得到與目標寫入層對應的存儲數(shù)據(jù)塊并將其存儲至目標寫入層中。

本發(fā)明實施例提供的一種數(shù)據(jù)存儲裝置,寫入模塊可以包括:

簽名單元,用于:將得到的與目標寫入層對應的存儲數(shù)據(jù)塊進行哈希計算,得到對應的寫入數(shù)據(jù)塊簽名;在與寫入數(shù)據(jù)塊簽名對應的哈希組中查找是否存在相同的塊簽名,如果存在,則將該塊簽名對應的使用計數(shù)加1,如果不存在,則將寫入數(shù)據(jù)塊簽名對應存儲數(shù)據(jù)塊存儲至目標寫入層中,并將寫入數(shù)據(jù)塊簽名加入對應哈希組中。

本發(fā)明實施例提供的一種數(shù)據(jù)存儲裝置,寫入模塊還可以包括:

計數(shù)更新單元,用于如果新數(shù)據(jù)的寫入為數(shù)據(jù)修改,則將與新數(shù)據(jù)對應的原存儲數(shù)據(jù)塊的使用計數(shù)減1。

本發(fā)明實施例提供的一種數(shù)據(jù)存儲裝置,寫入模塊還可以包括:

處理單元,用于如果各層存儲介質(zhì)中存在使用計數(shù)為0的存儲數(shù)據(jù)塊,則將該存儲數(shù)據(jù)塊放入LRU鏈表中。

本發(fā)明實施例提供的一種數(shù)據(jù)存儲裝置,還可以包括:

更新模塊,用于:獲取存儲介質(zhì)層中各存儲數(shù)據(jù)塊對應的元數(shù)據(jù);基于元數(shù)據(jù)計算被修改的存儲數(shù)據(jù)塊及新寫入的存儲數(shù)據(jù)塊的計數(shù)和,并確定該計數(shù)和與存儲數(shù)據(jù)塊總數(shù)的比值為元數(shù)據(jù)臟信息;當元數(shù)據(jù)臟信息大于對應閾值時,將存儲介質(zhì)中各存儲數(shù)據(jù)的元數(shù)據(jù)更新至對應的存儲磁盤。

本發(fā)明實施例提供的一種數(shù)據(jù)存儲裝置中相關(guān)部分的說明請參見本發(fā)明實施例提供的一種數(shù)據(jù)存儲方法中對應部分的詳細說明,在此不再贅述。

對所公開的實施例的上述說明,使本領(lǐng)域技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領(lǐng)域技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
西畴县| 黑龙江省| 临汾市| 沛县| 济宁市| 柳林县| 南召县| 八宿县| 开远市| 正阳县| 榆中县| 沛县| 肇州县| 沐川县| 财经| 乌拉特中旗| 永和县| 张家川| 永济市| 江阴市| 密云县| 宾阳县| 曲阳县| 大姚县| 福鼎市| 武穴市| 铁岭县| 南丰县| 枣阳市| 林芝县| 大足县| 靖西县| 扬中市| 涿州市| 新竹市| 桂东县| 兴业县| 鱼台县| 万全县| 江永县| 盘山县|