本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,特別涉及一種數(shù)據(jù)存儲方法及裝置。
背景技術(shù):
隨著云計算技術(shù)的發(fā)展,用戶對于數(shù)據(jù)存儲的速度要求越來越高。為更好的滿足用戶的這種需求,SSD(Solid State Drives,固態(tài)硬盤)應(yīng)運而生。SSD是用固態(tài)電子存儲芯片陣列制成的硬盤,而摒棄了傳統(tǒng)磁盤中采用磁頭等活動的機械式部件,從而提高數(shù)據(jù)存儲的速度。
目前,SSD在進行數(shù)據(jù)存儲時,主要是將同一種業(yè)務(wù)數(shù)據(jù)固定存儲到SSD的一個分區(qū)內(nèi)。那么,當(dāng)該種類的業(yè)務(wù)數(shù)據(jù)不斷變化時,就需要對相應(yīng)的分區(qū)進行不斷的讀寫操作,而不斷的讀寫操作會增加該分區(qū)存儲芯片的磨損,進而減短整個SSD的使用壽命。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供了一種數(shù)據(jù)存儲方法及裝置,能夠有效提高硬盤的使用壽命。
第一方面,本發(fā)明實施例提供了一種數(shù)據(jù)存儲方法,在硬盤上創(chuàng)建至少兩個獨立存儲區(qū)域,還包括:
接收數(shù)據(jù)存儲請求,其中,所述數(shù)據(jù)存儲請求攜帶有待存儲數(shù)據(jù);
確定每一個所述獨立存儲區(qū)域已完成的數(shù)據(jù)讀寫次數(shù);
根據(jù)每一個所述獨立存儲區(qū)域分別對應(yīng)的已完成的數(shù)據(jù)讀寫次數(shù),從所述至少兩個獨立存儲區(qū)域中確定出至少一個可用的獨立存儲區(qū)域;
將所述待存儲數(shù)據(jù)存儲至所述至少一個可用的獨立存儲區(qū)域。
優(yōu)選地,
在所述接收數(shù)據(jù)存儲請求之前,在所述在硬盤上創(chuàng)建至少兩個獨立存儲區(qū)域之后,進一步包括:
設(shè)置統(tǒng)計表格;利用所述統(tǒng)計表格存儲每一個所述獨立存儲區(qū)域分別對應(yīng)的已完成的數(shù)據(jù)讀寫次數(shù);
所述確定每一個所述獨立存儲區(qū)域已完成的數(shù)據(jù)讀寫次數(shù),包括:
查詢所述統(tǒng)計表格,并在所述統(tǒng)計表格中確定出每一個所述獨立存儲區(qū)域已完成的數(shù)據(jù)讀寫次數(shù);
所述根據(jù)每一個所述獨立存儲區(qū)域分別對應(yīng)的已完成的數(shù)據(jù)讀寫次數(shù),從所述至少兩個獨立存儲區(qū)域中確定出至少一個可用的獨立存儲區(qū)域,包括:
在各個所述已完成的數(shù)據(jù)讀寫次數(shù)中,選擇至少一個相對最小的所述已完成的數(shù)據(jù)讀寫次數(shù);確定每一個所述相對最小的所述已完成的數(shù)據(jù)讀寫次數(shù)對應(yīng)的獨立存儲區(qū)域為可用的獨立存儲區(qū)域。
優(yōu)選地,
進一步包括:
確定每一個所述可用的獨立存儲區(qū)域的存儲空間;
所述將所述待存儲數(shù)據(jù)存儲至所述至少一個可用的獨立存儲區(qū)域,包括:
根據(jù)每一個所述可用的獨立存儲區(qū)域的存儲空間,從所述至少一個可用的獨立存儲區(qū)域中確定出目標(biāo)獨立存儲區(qū)域;
將所述待存儲數(shù)據(jù)存儲至所述目標(biāo)獨立存儲區(qū)域。
優(yōu)選地,
進一步包括:
確定每一個所述可用的獨立存儲區(qū)域中的各個區(qū)塊分別對應(yīng)的已存儲空間;
所述根據(jù)每一個所述可用的獨立存儲區(qū)域的存儲空間,從所述至少一個可用的獨立存儲區(qū)域中確定出可用的目標(biāo)獨立存儲區(qū)域,包括:
利用如下公式(1),計算每一個所述可用的獨立存儲區(qū)域的存儲空間利用率;
其中,μi表征第i個所述可用的獨立存儲區(qū)域的存儲空間利用率;mij表征第i個所述可用的獨立存儲區(qū)域中的第j個所述區(qū)塊的已存儲空間;Ui表征第i個所述可用的獨立存儲區(qū)域的存儲空間;ki表征第i個所述可用的獨立存儲區(qū)域中的所述區(qū)塊的數(shù)量;
將最小的所述存儲空間利用率對應(yīng)的所述可用的獨立存儲區(qū)域確定為可用的目標(biāo)獨立存儲區(qū)域。
優(yōu)選地,
在所述將所述待存儲數(shù)據(jù)存儲至所述目標(biāo)獨立存儲區(qū)域之后,進一步包括:
將所述統(tǒng)計表格中的所述目標(biāo)獨立存儲區(qū)域?qū)?yīng)的已完成的數(shù)據(jù)讀寫次數(shù)加1。
優(yōu)選地,
所述將所述待存儲數(shù)據(jù)存儲至所述至少一個可用的獨立存儲區(qū)域,包括:
將所述待存儲數(shù)據(jù)存儲至每一個所述可用的獨立存儲區(qū)域。
第二方面,本發(fā)明實施例提供了一種數(shù)據(jù)存儲裝置,包括:
創(chuàng)建單元,用于在硬盤上創(chuàng)建至少兩個獨立存儲區(qū)域;
接收單元,用于接收數(shù)據(jù)存儲請求,其中,所述數(shù)據(jù)存儲請求攜帶有待存儲數(shù)據(jù);
第一確定單元,用于確定出所述創(chuàng)建單元創(chuàng)建的每一個所述獨立存儲區(qū)域已完成的數(shù)據(jù)讀寫次數(shù);
第二確定單元,用于根據(jù)所述第一確定單元確定出的每一個所述獨立存儲區(qū)域分別對應(yīng)的已完成的數(shù)據(jù)讀寫次數(shù),從所述至少兩個獨立存儲區(qū)域中確定出至少一個可用的獨立存儲區(qū)域;
第一存儲單元,用于將所述待存儲數(shù)據(jù)存儲至所述第二確定單元確定的所述至少一個可用的獨立存儲區(qū)域。
優(yōu)選地,
進一步包括:
設(shè)置單元,用于設(shè)置統(tǒng)計表格;
第二存儲單元,用于利用所述統(tǒng)計表格存儲每一個所述獨立存儲區(qū)域分別對應(yīng)的已完成的數(shù)據(jù)讀寫次數(shù);
所述第一確定單元,用于查詢所述統(tǒng)計表格,并在所述統(tǒng)計表格中確定出每一個所述獨立存儲區(qū)域已完成的數(shù)據(jù)讀寫次數(shù);
所述第二確定單元,用于在各個所述已完成的數(shù)據(jù)讀寫次數(shù)中,選擇至少一個相對最小的所述已完成的數(shù)據(jù)讀寫次數(shù);確定每一個所述相對最小的所述已完成的數(shù)據(jù)讀寫次數(shù)對應(yīng)的獨立存儲區(qū)域為可用的獨立存儲區(qū)域。
優(yōu)選地,
進一步包括:
第三確定單元,用于確定每一個所述可用的獨立存儲區(qū)域的存儲空間;
所述第一存儲單元,包括:確定子單元及存儲子單元;其中,
所述確定子單元,用于根據(jù)每一個所述可用的獨立存儲區(qū)域的存儲空間,從所述至少一個可用的獨立存儲區(qū)域中確定出目標(biāo)獨立存儲區(qū)域;
所述存儲子單元,用于將所述待存儲數(shù)據(jù)存儲至所述確定子單元確定出的所述目標(biāo)獨立存儲區(qū)域。
優(yōu)選地,
進一步包括:
第四確定單元,用于確定每一個所述可用的獨立存儲區(qū)域中的各個區(qū)塊分別對應(yīng)的已存儲空間;
所述確定子單元,用于利用如下公式(1),計算每一個所述可用的獨立存儲區(qū)域的存儲空間利用率;
其中,μi表征第i個所述可用的獨立存儲區(qū)域的存儲空間利用率;mij表征第i個所述可用的獨立存儲區(qū)域中的第j個所述區(qū)塊的已存儲空間;Ui表征第i個所述可用的獨立存儲區(qū)域的存儲空間;ki表征第i個所述可用的獨立存儲區(qū)域中的所述區(qū)塊的數(shù)量;
將最小的所述存儲空間利用率對應(yīng)的所述可用的獨立存儲區(qū)域確定為目標(biāo)獨立存儲區(qū)域。
本發(fā)明實施例提供了一種數(shù)據(jù)存儲方法及裝置,通過在硬盤上創(chuàng)建至少兩個獨立存儲區(qū)域,其中,每一個獨立存儲區(qū)域均可用來存儲多種不同種類的業(yè)務(wù)數(shù)據(jù),因此,無論是任何一種業(yè)務(wù)數(shù)據(jù)需要存儲時,可首先確定每一個獨立存儲區(qū)域已完成的讀寫次數(shù),然后根據(jù)每一個獨立存儲區(qū)域分別對應(yīng)的已完成的讀寫次數(shù),從所有的獨立存儲區(qū)域中確定出至少一個可用的獨立存儲區(qū)域,最后進行存儲。由于不再是將數(shù)據(jù)存儲到固定的某一區(qū)域,而是根據(jù)每一個獨立存儲區(qū)域已完成的讀寫次數(shù)動態(tài)調(diào)整存儲的位置,因此,可有效避免對某一區(qū)域的反復(fù)讀寫而造成的存儲芯片磨損,進行提高了整個硬盤的使用壽命。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明一個實施例提供的一種數(shù)據(jù)存儲方法的流程圖;
圖2是本發(fā)明另一個實施例提供的一種數(shù)據(jù)存儲方法的流程圖;
圖3是本發(fā)明實施例提供的數(shù)據(jù)存儲裝置所在設(shè)備的硬件架構(gòu)圖;
圖4是本發(fā)明一個實施例提供的一種數(shù)據(jù)存儲裝置的結(jié)構(gòu)示意圖;
圖5是本發(fā)明另一個實施例提供的一種數(shù)據(jù)存儲裝置的結(jié)構(gòu)示意圖;
圖6是本發(fā)明再一個實施例提供的一種數(shù)據(jù)存儲裝置的結(jié)構(gòu)示意圖;
圖7是本發(fā)明又一個實施例提供的一種數(shù)據(jù)存儲裝置的結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例,基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
如圖1所示,本發(fā)明實施例提供了一種數(shù)據(jù)存儲方法,該方法可以包括以下步驟:
步驟101:在硬盤上創(chuàng)建至少兩個獨立存儲區(qū)域。
步驟102:接收數(shù)據(jù)存儲請求,其中,所述數(shù)據(jù)存儲請求攜帶有待存儲數(shù)據(jù)。
步驟103:確定每一個所述獨立存儲區(qū)域已完成的數(shù)據(jù)讀寫次數(shù)。
步驟104:根據(jù)每一個所述獨立存儲區(qū)域分別對應(yīng)的已完成的數(shù)據(jù)讀寫次數(shù),從所述至少兩個獨立存儲區(qū)域中確定出至少一個可用的獨立存儲區(qū)域。
步驟105:將所述待存儲數(shù)據(jù)存儲至所述至少一個可用的獨立存儲區(qū)域。
在圖1所述的實施例中,通過在硬盤上創(chuàng)建至少兩個獨立存儲區(qū)域,其中,每一個獨立存儲區(qū)域均可用來存儲多種不同種類的業(yè)務(wù)數(shù)據(jù),因此,無論是任何一種業(yè)務(wù)數(shù)據(jù)需要存儲時,可首先確定每一個獨立存儲區(qū)域已完成的讀寫次數(shù),然后根據(jù)每一個獨立存儲區(qū)域分別對應(yīng)的已完成的讀寫次數(shù),從所有的獨立存儲區(qū)域中確定出至少一個可用的獨立存儲區(qū)域,最后進行存儲。由于不再是將數(shù)據(jù)存儲到固定的某一區(qū)域,而是根據(jù)每一個獨立存儲區(qū)域已完成的讀寫次數(shù)動態(tài)調(diào)整存儲的位置,因此,可有效避免對某一區(qū)域的反復(fù)讀寫而造成的存儲芯片磨損,進行提高了整個硬盤的使用壽命。
在本發(fā)明一個實施例中,為了能夠確定出每一個獨立存儲區(qū)域分別對應(yīng)的已完成的讀寫次數(shù),在所述步驟102之前,在所述步驟101之后,進一步包括:設(shè)置統(tǒng)計表格;利用所述統(tǒng)計表格存儲每一個所述獨立存儲區(qū)域分別對應(yīng)的已完成的數(shù)據(jù)讀寫次數(shù);所述步驟103的具體實施方式可包括:查詢所述統(tǒng)計表格,并在所述統(tǒng)計表格中確定出每一個所述獨立存儲區(qū)域已完成的數(shù)據(jù)讀寫次數(shù);所述步驟104的具體實施方式可包括:在各個所述已完成的數(shù)據(jù)讀寫次數(shù)中,選擇至少一個相對最小的所述已完成的數(shù)據(jù)讀寫次數(shù);確定每一個所述相對最小的所述已完成的數(shù)據(jù)讀寫次數(shù)對應(yīng)的獨立存儲區(qū)域為可用的獨立存儲區(qū)域。
例如,在硬盤中創(chuàng)建了5個獨立存儲區(qū)域,且分別用A、B、C、D、E進行表示,則獨立存儲區(qū)域A、B、C、D、E分別對應(yīng)的已完成的數(shù)據(jù)讀寫次數(shù)可如下表1所示。
表1
由以上統(tǒng)計表格可以得出,獨立存儲區(qū)域A、B、C、D、E分別對應(yīng)的已完成的數(shù)據(jù)讀寫次數(shù)之間的大小關(guān)系為A>B>D>C>E,且其中,A、B及D對應(yīng)的已完成的數(shù)據(jù)讀寫次數(shù)相對最大,而C、E對應(yīng)的已完成的數(shù)據(jù)讀寫次數(shù)相對最小,從而接下來在進行數(shù)據(jù)存儲時,可優(yōu)先將C、E確定為可用的獨立存儲區(qū)域進行數(shù)據(jù)存儲。
通過設(shè)置統(tǒng)計表格,可以很快速的確定出當(dāng)前每一個獨立存儲區(qū)域已完成的數(shù)據(jù)讀寫次數(shù),而且通過將待存儲數(shù)據(jù)存儲至至少一個最小的已完成的數(shù)據(jù)讀寫次數(shù)對應(yīng)的獨立存儲區(qū)域,進而避免對某一區(qū)域進行反復(fù)讀寫,從而提高了硬盤的使用壽命。
在本發(fā)明一個實施例中,為提高硬盤的工作效率,進一步包括:確定每一個所述可用的獨立存儲區(qū)域的存儲空間;所述步驟105的具體實施方式可包括:根據(jù)每一個所述可用的獨立存儲區(qū)域的存儲空間,從所述至少一個可用的獨立存儲區(qū)域中確定出目標(biāo)獨立存儲區(qū)域;將所述待存儲數(shù)據(jù)存儲至所述目標(biāo)獨立存儲區(qū)域。
例如,4個可用的獨立存儲區(qū)域為a、b、c、d,且分別對應(yīng)的已完成的數(shù)據(jù)讀寫次數(shù)均在1500至2000次之間,而分別對應(yīng)的存儲空間依次為100G、90G、95G及10G,可見,雖然這4個獨立存儲區(qū)域在已完成的數(shù)據(jù)讀寫次數(shù)上差別較小,但在存儲空間上還是有很大差異的,尤其是獨立存儲區(qū)域d。那么為能夠在提高硬盤使用壽命的同時,也相對提高硬盤的工作效率,避免存儲空間較小的獨立存儲區(qū)域d存儲的數(shù)據(jù)較多而降低硬盤的工作效率,因此,在進行數(shù)據(jù)存儲時,可優(yōu)先將待存儲數(shù)據(jù)存儲到a、b、c中的任意一個或者是多個。
當(dāng)根據(jù)每一個獨立存儲區(qū)域已完成的數(shù)據(jù)讀寫次數(shù)確定出至少一個可用的獨立存儲區(qū)域后,通過進一步利用每一個可用的獨立存儲區(qū)域?qū)?yīng)的存儲空間確定目標(biāo)獨立存儲區(qū)域,可避免因為某一個獨立存儲區(qū)域存儲空間較小且存儲的數(shù)據(jù)較多而影響到整個硬盤的工作效率。
在本發(fā)明一個實施例中,為更加準(zhǔn)確的確定出目標(biāo)獨立存儲區(qū)域,可進一步包括:確定每一個所述可用的獨立存儲區(qū)域中的各個區(qū)塊分別對應(yīng)的已存儲空間;所述根據(jù)每一個所述可用的獨立存儲區(qū)域的存儲空間,從所述至少一個可用的獨立存儲區(qū)域中確定出可用的目標(biāo)獨立存儲區(qū)域,包括:利用如下公式(1),計算每一個所述可用的獨立存儲區(qū)域的存儲空間利用率;
其中,μi表征第i個所述可用的獨立存儲區(qū)域的存儲空間利用率;mij表征第i個所述可用的獨立存儲區(qū)域中的第j個所述區(qū)塊的已存儲空間;Ui表征第i個所述可用的獨立存儲區(qū)域的存儲空間;ki表征第i個所述可用的獨立存儲區(qū)域中的所述區(qū)塊的數(shù)量;將最小的所述存儲空間利用率對應(yīng)的所述可用的獨立存儲區(qū)域確定為目標(biāo)獨立存儲區(qū)域。
例如,以確定出了3個可用的獨立存儲區(qū)e、f、g及分別對應(yīng)的存儲空間100G、95G、90G為例,那么在e、f、g中確定目標(biāo)獨立存儲區(qū)域時,可利用公式(1)進行確定。下面以第1個獨立存儲區(qū)域e中共包含109個區(qū)塊為例,當(dāng)確定出e中的109區(qū)塊分別對應(yīng)的已存儲空間后,可通過以上數(shù)據(jù)計算出獨立存儲區(qū)域e的存儲空間利用率(具體計算過程未給出),另外,假設(shè)獨立存儲區(qū)域f和g對應(yīng)的存儲空間利用率分別為μ2=50%、μ3=60%,不難得出μ1<μ2<μ3,因此,可優(yōu)先將待存儲數(shù)據(jù)存儲至e中。
另外,如果計算得出的μ1、μ2及μ3之間的差值幾乎為0,那么還可以將待存儲數(shù)據(jù)平均分?jǐn)偞鎯Φ竭@3個獨立存儲區(qū)域中。
當(dāng)根據(jù)每一個獨立存儲區(qū)域已完成的數(shù)據(jù)讀寫次數(shù)確定出至少一個可用的獨立存儲區(qū)域后,通過進一步計算每一個可用的獨立存儲區(qū)域的存儲空間利用率,并選擇最小的存儲空間利用率對應(yīng)的獨立存儲區(qū)域進行數(shù)據(jù)存儲,可以更加準(zhǔn)確、可靠的提高硬盤的工作效率。
在本發(fā)明一個實施例中,為了保證每一次確定的每一個獨立存儲區(qū)域已完成的數(shù)據(jù)讀寫次數(shù)的準(zhǔn)確性,在所述將所述待存儲數(shù)據(jù)存儲至所述目標(biāo)獨立存儲區(qū)域之后,進一步包括:將所述統(tǒng)計表格中的所述目標(biāo)獨立存儲區(qū)域?qū)?yīng)的已完成的數(shù)據(jù)讀寫次數(shù)加1。
例如,目標(biāo)獨立存儲區(qū)域為e,且統(tǒng)計表格中存儲的e的已完成的數(shù)據(jù)讀寫次數(shù)為1500次,那么在將待存儲數(shù)據(jù)存儲到e之后,需要對統(tǒng)計表格中的數(shù)據(jù)進行更新,即1500+1=1501,那么在下一次進行數(shù)據(jù)存儲時,查詢到的統(tǒng)計表格中的e對應(yīng)的已完成的數(shù)據(jù)讀寫次數(shù)就會是1501。
又如,將待存儲數(shù)據(jù)分別存儲到n(≥2)個獨立存儲區(qū)域中,則在完成存儲之后,應(yīng)將統(tǒng)計表格中的這n獨立存儲區(qū)域?qū)?yīng)的已完成的數(shù)據(jù)讀寫次數(shù)均加1。
在完成一次數(shù)據(jù)存儲后,通過將統(tǒng)計表格中的相應(yīng)獨立存儲區(qū)域已完成的數(shù)據(jù)讀寫次數(shù)加1,可有效保證存儲的已完成的數(shù)據(jù)讀寫次數(shù)的準(zhǔn)確性,進而才能夠更加準(zhǔn)確的使數(shù)據(jù)的讀寫均勻分布在整個硬盤上,為提高硬盤的使用壽命奠定基礎(chǔ)。
在本發(fā)明一個實施例中,所述步驟104的具體實施步驟可包括:將所述待存儲數(shù)據(jù)存儲至每一個所述可用的獨立存儲區(qū)域。
例如,以確定出4個可用的獨立存儲區(qū)a、c、e、f、分別對應(yīng)的剩余存儲空間為20G、10G、25G、15G及待存儲數(shù)據(jù)大小為30G為例,那么可以根據(jù)每一個可用的獨立存儲區(qū)域在4個可用的獨立存儲區(qū)域中的剩余存儲空間百分比進行存儲,如,a的剩余存儲空間百分比為同理,可以確定出c、e、f分別對應(yīng)的剩余存儲空間百分比為λ2=14.3%、λ3=35.7%、λ4=21.4%,從而可以分別確定出a、c、e、f中待存儲的數(shù)據(jù)大小,如a待存儲的數(shù)據(jù)大小為28.6%*30G=8.58G,其它同理可得。
又如,待存儲數(shù)據(jù)的大小均小于確定出的4個可用的獨立存儲區(qū)a、c、e、f時,還可待存儲數(shù)據(jù)按照25%的比例均勻存儲到這4個獨立存儲區(qū)域中。
下面將對本發(fā)明實施例提供的一種數(shù)據(jù)存儲方法進行詳細(xì)說明,如圖2所示,該方法可以包括以下步驟:
步驟201:預(yù)先在SSD上創(chuàng)建N(≥2)個獨立存儲區(qū)域。
例如,可通過在相應(yīng)的操作系統(tǒng)下運行NVMECLI create-ns命令,當(dāng)SSD中的控制芯片獲取到該命令后,該控制芯片就可以根據(jù)該命令中攜帶的相應(yīng)信息(如,創(chuàng)建的數(shù)量及各個待創(chuàng)建獨立存儲區(qū)域的存儲空間)創(chuàng)建出N(≥2)個獨立存儲區(qū)域,其中,2≤N≤16。
步驟202:預(yù)先設(shè)置統(tǒng)計表格。
該統(tǒng)計表格中應(yīng)對應(yīng)獨立存儲區(qū)域及已完成的數(shù)據(jù)讀寫次數(shù)兩列信息。
步驟203:利用統(tǒng)計表格存儲N個獨立存儲區(qū)域分別對應(yīng)的已完成的數(shù)據(jù)讀寫次數(shù)。
例如,在上述步驟201中創(chuàng)建了a、b、c、d及e共N=5個獨立存儲區(qū)域,那么就可以通過在步驟202中的設(shè)置的統(tǒng)計表格中存儲a、b、c、d及e分別對應(yīng)的已完成的數(shù)據(jù)讀寫次數(shù),如,分別為8000次、3000次、2000次、7000次及2500次。
值得說明的是,獨立存儲區(qū)域已完成的數(shù)據(jù)讀寫次數(shù)的存儲形式并不局限于本發(fā)明實施例中的統(tǒng)計表格,還可以是其它多種形式,如空白文檔等。
步驟204:接收攜帶有待存儲數(shù)據(jù)的數(shù)據(jù)存儲請求。
步驟205:查詢統(tǒng)計表格,并在統(tǒng)計表格中確定出N個獨立存儲區(qū)域分別對應(yīng)的已完成的數(shù)據(jù)讀寫次數(shù)。
以步驟203中的a、b、c、d及e為例。
步驟206:在N個已完成的數(shù)據(jù)讀寫次數(shù)中,選擇出n(≥1)個相對最小的已完成的數(shù)據(jù)讀寫次數(shù)。
根據(jù)步驟205,則獨立存儲區(qū)域a、b、c、d及e分別對應(yīng)的已完成的數(shù)據(jù)讀寫次數(shù)之間的大小關(guān)系為a>d>b>e>c,且其中b、c、e對應(yīng)的已完成的數(shù)據(jù)讀寫次數(shù)相對最小,而a、d對應(yīng)的已完成的數(shù)據(jù)讀寫次數(shù)相對最大。
步驟207:確定選擇出的n個相對最小的已完成的數(shù)據(jù)讀寫次數(shù)對應(yīng)的獨立存儲區(qū)域為可用的獨立存儲區(qū)域。
由于b、c、e對應(yīng)的已完成的數(shù)據(jù)讀寫次數(shù)相對最小,所以可以將這3個獨立存儲區(qū)域確定為可用的獨立存儲區(qū)域,而避免當(dāng)前將待存儲數(shù)據(jù)存儲到已經(jīng)進行過多次數(shù)據(jù)讀寫的a、d中。
步驟208:確定選擇出的n個可用的獨立存儲區(qū)域的存儲空間。
例如,b、c、e對應(yīng)的存儲空間分別為200G、50G及80G。
步驟209:確定選擇出的n個可用的獨立存儲區(qū)域中的各個區(qū)塊分別對應(yīng)的已存儲空間。
例如,b中包含2*1010個區(qū)塊、c中包含5*109個區(qū)塊及e中包含8*109個區(qū)塊,其中,由于區(qū)塊的數(shù)量較多,因此可用的獨立存儲區(qū)域b、c及e中的各個區(qū)塊的已使用空間用m1j(j從1至2*1010)、m2j(j從1至5*109)及m3j(j從1至8*109)今進行表示。
步驟210:計算n個可用的獨立存儲區(qū)域的存儲空間利用率μi(1≤i≤n)。
以b為例,利用公式(1)計算存儲空間利用率同理,c及e的存儲空間利用率μ2及μ3也可通過公式得出,具體計算過程類似,次數(shù)不再贅述,如,有μ2=65%、μ3=45%。
步驟211:在n個μi中,將最小的μx(1≤x≤n)對應(yīng)的可用的獨立存儲區(qū)域確定為目標(biāo)獨立存儲區(qū)域。
由步驟210則有,μ2>μ1>μ3,因此,μ3對應(yīng)的可用的獨立存儲區(qū)域e為目標(biāo)獨立存儲區(qū)域。
步驟212:將待存儲數(shù)據(jù)存儲至目標(biāo)獨立存儲區(qū)域。
在該步驟中,可將待存儲數(shù)據(jù)存儲至e中。
步驟213:將統(tǒng)計表格中的目標(biāo)獨立存儲區(qū)域?qū)?yīng)的已完成的數(shù)據(jù)讀寫次數(shù)加1。
在完成本次存儲之后,應(yīng)將統(tǒng)計表格中存儲的e的已完成的數(shù)據(jù)讀寫次數(shù)2500+1=2501,因此,在下一次再進行數(shù)據(jù)存儲時,通過查詢統(tǒng)計表格獲取到的e的已完成的數(shù)據(jù)讀寫次數(shù)為2501次。
如圖3、圖4所示,本發(fā)明實施例提供了一種數(shù)據(jù)存儲裝置。裝置實施例可以通過軟件實現(xiàn),也可以通過硬件或者軟硬件結(jié)合的方式實現(xiàn)。從硬件層面而言,如圖3所示,為本發(fā)明實施例提供的數(shù)據(jù)存儲裝置所在設(shè)備的一種硬件結(jié)構(gòu)圖,除了圖3所示的處理器、內(nèi)存、網(wǎng)絡(luò)接口、以及非易失性存儲器之外,實施例中裝置所在的設(shè)備通常還可以包括其他硬件,如負(fù)責(zé)處理報文的轉(zhuǎn)發(fā)芯片等等。以軟件實現(xiàn)為例,如圖4所示,作為一個邏輯意義上的裝置,是通過其所在設(shè)備的CPU將非易失性存儲器中對應(yīng)的計算機程序指令讀取到內(nèi)存中運行形成的。本實施例提供的一種數(shù)據(jù)存儲裝置,包括:
創(chuàng)建單元401,用于在硬盤上創(chuàng)建至少兩個獨立存儲區(qū)域;
接收單元402,用于接收數(shù)據(jù)存儲請求,其中,所述數(shù)據(jù)存儲請求攜帶有待存儲數(shù)據(jù);
第一確定單元403,用于確定出所述創(chuàng)建單元401創(chuàng)建的每一個所述獨立存儲區(qū)域已完成的數(shù)據(jù)讀寫次數(shù);
第二確定單元404,用于根據(jù)所述第一確定單元403確定出的每一個所述獨立存儲區(qū)域分別對應(yīng)的已完成的數(shù)據(jù)讀寫次數(shù),從所述至少兩個獨立存儲區(qū)域中確定出至少一個可用的獨立存儲區(qū)域;
第一存儲單元405,用于將所述待存儲數(shù)據(jù)存儲至所述第二確定單元404確定的所述至少一個可用的獨立存儲區(qū)域。
如圖5所示,在本發(fā)明一個實施例中,進一步包括:
設(shè)置單元501,用于設(shè)置統(tǒng)計表格;
第二存儲單元502,用于利用所述統(tǒng)計表格存儲每一個所述獨立存儲區(qū)域分別對應(yīng)的已完成的數(shù)據(jù)讀寫次數(shù);
所述第一確定單元403,用于查詢所述統(tǒng)計表格,并在所述統(tǒng)計表格中確定出每一個所述獨立存儲區(qū)域已完成的數(shù)據(jù)讀寫次數(shù);
所述第二確定單元404,用于在各個所述已完成的數(shù)據(jù)讀寫次數(shù)中,選擇至少一個相對最小的所述已完成的數(shù)據(jù)讀寫次數(shù);確定每一個所述相對最小的所述已完成的數(shù)據(jù)讀寫次數(shù)對應(yīng)的獨立存儲區(qū)域為可用的獨立存儲區(qū)域。
如圖6所示,在本發(fā)明一個實施例中,
進一步包括:
第三確定單元601,用于確定每一個所述可用的獨立存儲區(qū)域的存儲空間
所述第一存儲單元405,包括:確定子單元602及存儲子單元603;其中,
所述確定子單元602,用于根據(jù)每一個所述可用的獨立存儲區(qū)域的存儲空間,從所述至少一個可用的獨立存儲區(qū)域中確定出目標(biāo)獨立存儲區(qū)域;
所述存儲子單元603,用于將所述待存儲數(shù)據(jù)存儲至所述確定子單元602確定出的所述目標(biāo)獨立存儲區(qū)域。
如圖7所示,在本發(fā)明一個實施例中,進一步包括:
第四確定單元701,用于確定每一個所述可用的獨立存儲區(qū)域中的各個區(qū)塊分別對應(yīng)的已存儲空間;
所述確定子單元602,用于利用如下公式(1),計算每一個所述可用的獨立存儲區(qū)域的存儲空間利用率;
其中,μi表征第i個所述可用的獨立存儲區(qū)域的存儲空間利用率;mij表征第i個所述可用的獨立存儲區(qū)域中的第j個所述區(qū)塊的已存儲空間;Ui表征第i個所述可用的獨立存儲區(qū)域的存儲空間;ki表征第i個所述可用的獨立存儲區(qū)域中的所述區(qū)塊的數(shù)量;
將最小的所述存儲空間利用率對應(yīng)的所述可用的獨立存儲區(qū)域確定為目標(biāo)獨立存儲區(qū)域。
綜上,本發(fā)明各個實施例至少具有如下有益效果:
1、在本發(fā)明實施例中,通過在硬盤上創(chuàng)建至少兩個獨立存儲區(qū)域,其中,每一個獨立存儲區(qū)域均可用來存儲多種不同種類的業(yè)務(wù)數(shù)據(jù),因此,無論是任何一種業(yè)務(wù)數(shù)據(jù)需要存儲時,可首先確定每一個獨立存儲區(qū)域已完成的讀寫次數(shù),然后根據(jù)每一個獨立存儲區(qū)域分別對應(yīng)的已完成的讀寫次數(shù),從所有的獨立存儲區(qū)域中確定出至少一個可用的獨立存儲區(qū)域,最后進行存儲。由于不再是將數(shù)據(jù)存儲到固定的某一區(qū)域,而是根據(jù)每一個獨立存儲區(qū)域已完成的讀寫次數(shù)動態(tài)調(diào)整存儲的位置,因此,可有效避免對某一區(qū)域的反復(fù)讀寫而造成的存儲芯片磨損,進行提高了整個硬盤的使用壽命。
2、在本發(fā)明實施例中,通過設(shè)置統(tǒng)計表格,可以很快速的確定出當(dāng)前每一個獨立存儲區(qū)域已完成的數(shù)據(jù)讀寫次數(shù),而且通過將待存儲數(shù)據(jù)存儲至至少一個最小的已完成的數(shù)據(jù)讀寫次數(shù)對應(yīng)的獨立存儲區(qū)域,進而避免對某一區(qū)域進行反復(fù)讀寫,從而提高了硬盤的使用壽命。
3、在本發(fā)明實施例中,當(dāng)根據(jù)每一個獨立存儲區(qū)域已完成的數(shù)據(jù)讀寫次數(shù)確定出至少一個可用的獨立存儲區(qū)域后,通過進一步利用每一個可用的獨立存儲區(qū)域?qū)?yīng)的存儲空間確定目標(biāo)獨立存儲區(qū)域,可避免因為某一個獨立存儲區(qū)域存儲空間較小且存儲的數(shù)據(jù)較多而影響到整個硬盤的工作效率。
4、在本發(fā)明實施例中,當(dāng)根據(jù)每一個獨立存儲區(qū)域已完成的數(shù)據(jù)讀寫次數(shù)確定出至少一個可用的獨立存儲區(qū)域后,通過進一步計算每一個可用的獨立存儲區(qū)域的存儲空間利用率,并選擇最小的存儲空間利用率對應(yīng)的獨立存儲區(qū)域進行數(shù)據(jù)存儲,可以更加準(zhǔn)確、可靠的提高硬盤的工作效率。
5、在本發(fā)明實施例中,在完成一次數(shù)據(jù)存儲后,通過將統(tǒng)計表格中的相應(yīng)獨立存儲區(qū)域已完成的數(shù)據(jù)讀寫次數(shù)加1,可有效保證存儲的已完成的數(shù)據(jù)讀寫次數(shù)的準(zhǔn)確性,進而才能夠更加準(zhǔn)確的使數(shù)據(jù)的讀寫均勻分布在整個硬盤上,為提高硬盤的使用壽命奠定基礎(chǔ)。
上述裝置內(nèi)的各單元之間的信息交互、執(zhí)行過程等內(nèi)容,由于與本發(fā)明方法實施例基于同一構(gòu)思,具體內(nèi)容可參見本發(fā)明方法實施例中的敘述,此處不再贅述。
需要說明的是,在本文中,諸如第一和第二之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個······”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同因素。
本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲在計算機可讀取的存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)中。
最后需要說明的是:以上所述僅為本發(fā)明的較佳實施例,僅用于說明本發(fā)明的技術(shù)方案,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進等,均包含在本發(fā)明的保護范圍內(nèi)。