本發(fā)明涉及閃存設(shè)備技術(shù)領(lǐng)域,具體涉及一種數(shù)據(jù)處理方法、裝置及閃存設(shè)備。
背景技術(shù):
固態(tài)硬盤(Solid State Drives,SSD),簡(jiǎn)稱固盤,為用固態(tài)電子存儲(chǔ)芯片陣列制成的硬盤。SSD被廣泛應(yīng)用于軍事、車載、工控、視頻監(jiān)控、網(wǎng)絡(luò)監(jiān)控、網(wǎng)絡(luò)終端、電力、醫(yī)療、航空、導(dǎo)航設(shè)備等領(lǐng)域。市面上,常見(jiàn)的SSD的容量一般有60/64GB、120/128GB、240/256GB、480/512GB、960G/1024G,斜線左邊的數(shù)值為用戶可用空間容量,右邊的數(shù)值為SSD的物理空間容量,兩者之間的差值為冗余空間(Over Provisioning,OP),通常這部分空間用戶不可操作,容量大小一般由主控決定。OP一般被用來(lái)做優(yōu)化操作,包括磨損平衡,垃圾回收和壞塊映射等。冗余比即為冗余空間容量與用戶可用空間容量之間的比值,業(yè)界典型的冗余比為7%和28%:以1024GB物理空間容量為例,當(dāng)用戶可用空間容量為960GB時(shí),對(duì)應(yīng)的冗余比為7%,即(1024-960)/960;當(dāng)用戶可用空間容量為800GB時(shí),對(duì)應(yīng)的冗余比為28%,即(1024-800)/800。冗余比越大隨機(jī)寫入性能越高,性能波動(dòng)越小,使用壽命越長(zhǎng),但是冗余比越大意味著成本越高。
由于SSD中的閃存必須先擦除才能再寫入,讀寫是以頁(yè)為單位而擦除是以塊為單位,導(dǎo)致實(shí)際寫入的數(shù)據(jù)量比主機(jī)寫入的數(shù)據(jù)量大很多。寫入放大(Write Amplification,WA),即實(shí)際寫入數(shù)據(jù)量與主機(jī)寫入數(shù)據(jù)量的比值。WA越大,冗余比越小,使用壽命越短,隨機(jī)寫入性能越低。
目前,SSD廠商對(duì)一定容量的SSD提供多種冗余比,用戶根據(jù)自己的需求選擇一種固定的冗余比。一旦冗余比固定,該SSD的各項(xiàng)參數(shù)也就隨之固定,同時(shí)該SSD的性能、使用壽命也就隨之固定,該SSD只能以該固定冗余比運(yùn)行,導(dǎo)致SSD的性能、使用壽命難以進(jìn)一步優(yōu)化。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種數(shù)據(jù)處理方法、裝置及閃存設(shè)備,能夠動(dòng)態(tài)調(diào)整冗余比,提高閃存設(shè)備的可靠性和性能穩(wěn)定性,從而延長(zhǎng)閃存設(shè)備的使用壽命。
本發(fā)明實(shí)施例第一方面提供一種數(shù)據(jù)處理方法,所述方法應(yīng)用于存儲(chǔ)系統(tǒng)中,所述存儲(chǔ)系統(tǒng)包括主機(jī)和閃存設(shè)備,所述閃存設(shè)備的物理存儲(chǔ)空間根據(jù)多個(gè)不同的冗余比配置多個(gè)冗余等級(jí),每個(gè)冗余等級(jí)對(duì)應(yīng)一段用戶存儲(chǔ)空間容量的區(qū)間,每個(gè)用戶存儲(chǔ)空間容量的區(qū)間對(duì)應(yīng)不同的調(diào)整參數(shù),所述冗余比為冗余空間容量與所述用戶存儲(chǔ)空間容量的比值,所述冗余空間容量為所述物理存儲(chǔ)空間的容量與所述用戶存儲(chǔ)空間容量的差值,所述方法由所述閃存設(shè)備執(zhí)行包括:
接收所述主機(jī)發(fā)送的操作指令,根據(jù)所述操作指令對(duì)所述閃存設(shè)備中存儲(chǔ)的數(shù)據(jù)進(jìn)行操作,并確定操作后的所述閃存設(shè)備中用戶存儲(chǔ)的數(shù)據(jù)量;
根據(jù)所述操作后的所述閃存設(shè)備中用戶存儲(chǔ)的數(shù)據(jù)量以及所述每個(gè)冗余等級(jí)對(duì)應(yīng)的用戶存儲(chǔ)空間容量的區(qū)間,確定目標(biāo)冗余等級(jí);
根據(jù)所述目標(biāo)冗余等級(jí)以及所述每個(gè)冗余等級(jí)與調(diào)整參數(shù)之間的對(duì)應(yīng)關(guān)系,確定目標(biāo)調(diào)整參數(shù);
按照所述目標(biāo)調(diào)整參數(shù)調(diào)整所述閃存設(shè)備的冗余空間容量的大小。
在本發(fā)明實(shí)施例第一方面的第一種可能的實(shí)現(xiàn)方式中,所述接收所述主機(jī)發(fā)送的操作指令,根據(jù)所述操作指令對(duì)所述閃存設(shè)備中存儲(chǔ)的數(shù)據(jù)進(jìn)行操作,并確定操作后的所述閃存設(shè)備中用戶存儲(chǔ)的數(shù)據(jù)量,包括:
接收所述主機(jī)發(fā)送的寫入指令,根據(jù)所述寫入指令確定待添加數(shù)據(jù);
將所述待添加數(shù)據(jù)添加至所述閃存設(shè)備中,并將所述待添加數(shù)據(jù)添加至所述閃存設(shè)備后的用戶存儲(chǔ)的數(shù)據(jù)量確定為操作后的所述閃存設(shè)備中用戶存儲(chǔ)的數(shù)據(jù)量。
在本發(fā)明實(shí)施例第一方面的第二種可能的實(shí)現(xiàn)方式中,所述接收所述主機(jī)發(fā)送的操作指令,根據(jù)所述操作指令對(duì)所述閃存設(shè)備中存儲(chǔ)的數(shù)據(jù)進(jìn)行操作,并確定操作后的所述閃存設(shè)備中用戶存儲(chǔ)的數(shù)據(jù)量,包括:
接收所述主機(jī)發(fā)送的刪除指令,根據(jù)所述刪除指令確定待刪除數(shù)據(jù);
將所述待刪除數(shù)據(jù)從所述閃存設(shè)備中刪除,并將所述待刪除數(shù)據(jù)被刪除后的用戶存儲(chǔ)的數(shù)據(jù)量確定為操作后的所述閃存設(shè)備中用戶存儲(chǔ)的數(shù)據(jù)量。
結(jié)合本發(fā)明實(shí)施例第一方面的第一種可能的實(shí)現(xiàn)方式中,在本發(fā)明實(shí)施例第三種可能的實(shí)現(xiàn)方式中,所述將所述待添加數(shù)據(jù)添加至所述閃存設(shè)備中之前,還包括:
對(duì)所述待添加數(shù)據(jù)進(jìn)行壓縮,所述待添加數(shù)據(jù)是壓縮后的數(shù)據(jù)。
結(jié)合本發(fā)明實(shí)施例第一方面的第一種至第三種可能的實(shí)現(xiàn)方式中,在本發(fā)明實(shí)施例第四種可能的實(shí)現(xiàn)方式中,在所述按照所述目標(biāo)調(diào)整參數(shù)調(diào)整所述閃存設(shè)備的冗余空間容量的大小的步驟之后,還包括:
根據(jù)所述目標(biāo)調(diào)整參數(shù)中的目標(biāo)垃圾回收調(diào)整參數(shù)對(duì)所述閃存設(shè)備存儲(chǔ)的數(shù)據(jù)進(jìn)行垃圾回收處理。
結(jié)合本發(fā)明實(shí)施例第一方面的第一種至第三種可能的實(shí)現(xiàn)方式中,在本發(fā)明實(shí)施例第五種可能的實(shí)現(xiàn)方式中,在所述按照所述目標(biāo)調(diào)整參數(shù)調(diào)整所述閃存設(shè)備的冗余空間容量的大小的步驟之后,還包括:
根據(jù)所述目標(biāo)調(diào)整參數(shù)中的目標(biāo)磨損平衡調(diào)整參數(shù)對(duì)所述閃存設(shè)備存儲(chǔ)的數(shù)據(jù)進(jìn)行磨損平衡處理。
本發(fā)明實(shí)施例第二方面提供一種數(shù)據(jù)處理裝置,所述數(shù)據(jù)處理裝置應(yīng)用于存儲(chǔ)系統(tǒng)中的閃存設(shè)備中,所述存儲(chǔ)系統(tǒng)還包括主機(jī),所述閃存設(shè)備的物理存儲(chǔ)空間根據(jù)多個(gè)不同的冗余比配置多個(gè)冗余等級(jí),每個(gè)冗余等級(jí)對(duì)應(yīng)一段用戶存儲(chǔ)空間容量的區(qū)間,每個(gè)用戶存儲(chǔ)空間容量的區(qū)間對(duì)應(yīng)不同的調(diào)整參數(shù),所述冗余比為冗余空間容量與所述用戶存儲(chǔ)空間容量的比值,所述冗余空間容量為所述物理存儲(chǔ)空間的容量與所述用戶存儲(chǔ)空間容量的差值,所述數(shù)據(jù)處理裝置包括:
接收單元,用于接收所述主機(jī)發(fā)送的操作指令,根據(jù)所述操作指令對(duì)所述閃存設(shè)備中存儲(chǔ)的數(shù)據(jù)進(jìn)行操作,并確定操作后的所述閃存設(shè)備中用戶存儲(chǔ)的數(shù)據(jù)量;
確定單元,用于根據(jù)所述操作后的所述閃存設(shè)備中用戶存儲(chǔ)的數(shù)據(jù)量以及所述每個(gè)冗余等級(jí)對(duì)應(yīng)的用戶存儲(chǔ)空間容量的區(qū)間,確定目標(biāo)冗余等級(jí);
所述確定單元還用于根據(jù)所述目標(biāo)冗余等級(jí)以及所述每個(gè)冗余等級(jí)與調(diào)整參數(shù)之間的對(duì)應(yīng)關(guān)系,確定目標(biāo)調(diào)整參數(shù);
調(diào)整單元,用于按照所述目標(biāo)調(diào)整參數(shù)調(diào)整所述閃存設(shè)備的冗余空間容量的大小。
在本發(fā)明實(shí)施例第二方面的第一種可能的實(shí)現(xiàn)方式中,所述接收單元具體用于接收所述主機(jī)發(fā)送的寫入指令,根據(jù)所述寫入指令確定待添加數(shù)據(jù),將所述待添加數(shù)據(jù)添加至所述閃存設(shè)備中,并將所述待添加數(shù)據(jù)添加至所述閃存設(shè)備后的用戶存儲(chǔ)的數(shù)據(jù)量確定為操作后的所述閃存設(shè)備中用戶存儲(chǔ)的數(shù)據(jù)量。
在本發(fā)明實(shí)施例第二方面的第二種可能的實(shí)現(xiàn)方式中,所述接收單元具體用于接收所述主機(jī)發(fā)送的刪除指令,根據(jù)所述刪除指令確定待刪除數(shù)據(jù),將所述待刪除數(shù)據(jù)從所述閃存設(shè)備中刪除,并將所述待刪除數(shù)據(jù)被刪除后的用戶存儲(chǔ)的數(shù)據(jù)量確定為操作后的所述閃存設(shè)備中用戶存儲(chǔ)的數(shù)據(jù)量。
結(jié)合本發(fā)明實(shí)施例第二方面的第一種可能的實(shí)現(xiàn)方式中,在本發(fā)明實(shí)施例第三種可能的實(shí)現(xiàn)方式中,所述接收單元還用于對(duì)所述待添加數(shù)據(jù)進(jìn)行壓縮,所述待添加數(shù)據(jù)是壓縮后的數(shù)據(jù)。
結(jié)合本發(fā)明實(shí)施例第二方面的第一種至第三種可能的實(shí)現(xiàn)方式中,在本發(fā)明實(shí)施例第四種可能的實(shí)現(xiàn)方式中,還包括:
處理單元,用于根據(jù)所述目標(biāo)調(diào)整參數(shù)中的目標(biāo)垃圾回收調(diào)整參數(shù)對(duì)所述閃存設(shè)備存儲(chǔ)的數(shù)據(jù)進(jìn)行垃圾回收處理。
結(jié)合本發(fā)明實(shí)施例第二方面的第一種至第三種可能的實(shí)現(xiàn)方式中,在本發(fā)明實(shí)施例第五種可能的實(shí)現(xiàn)方式中,所述處理單元還用于根據(jù)所述目標(biāo)調(diào)整參數(shù)中的目標(biāo)磨損平衡調(diào)整參數(shù)對(duì)所述閃存設(shè)備存儲(chǔ)的數(shù)據(jù)進(jìn)行磨損平衡處理。
本發(fā)明實(shí)施例第三方面提供一種閃存設(shè)備,包括本發(fā)明實(shí)施例第二方面提供的數(shù)據(jù)處理裝置。
在本發(fā)明實(shí)施例中,通過(guò)接收主機(jī)發(fā)送的操作指令,根據(jù)操作指令對(duì)閃存設(shè)備中存儲(chǔ)的數(shù)據(jù)進(jìn)行操作,并確定操作后的閃存設(shè)備中用戶存儲(chǔ)的數(shù)據(jù)量,然后根據(jù)操作后的閃存設(shè)備中用戶存儲(chǔ)的數(shù)據(jù)量以及每個(gè)冗余等級(jí)對(duì)應(yīng)的用戶存儲(chǔ)空間容量的區(qū)間,確定目標(biāo)冗余等級(jí),并根據(jù)目標(biāo)冗余等級(jí)以及每個(gè)冗余等級(jí)與調(diào)整參數(shù)之間的對(duì)應(yīng)關(guān)系,確定目標(biāo)調(diào)整參數(shù),最后按照目標(biāo)調(diào)整參數(shù)調(diào)整閃存設(shè)備的冗余空間容量的大小,從而實(shí)現(xiàn)根據(jù)存儲(chǔ)的數(shù)據(jù)量大小動(dòng)態(tài)調(diào)整閃存設(shè)備的冗余比,進(jìn)而提高閃存設(shè)備的可靠性和性能穩(wěn)定性,同時(shí)延長(zhǎng)閃存設(shè)備的使用壽命。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為現(xiàn)有技術(shù)中的存儲(chǔ)系統(tǒng)的網(wǎng)絡(luò)架構(gòu)示意圖;
圖2為本發(fā)明實(shí)施例提供的配置冗余等級(jí)的示意圖;
圖3為本發(fā)明實(shí)施例提供的一種閃存設(shè)備的結(jié)構(gòu)示意圖;
圖4為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)處理方法的流程示意圖;
圖5為本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)處理方法的流程示意圖;
圖6為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
為了更好理解本發(fā)明實(shí)施例公開(kāi)的一種數(shù)據(jù)處理方法、裝置及閃存設(shè)備,下面先對(duì)現(xiàn)有技術(shù)中的存儲(chǔ)系統(tǒng)的網(wǎng)絡(luò)構(gòu)架進(jìn)行描述。請(qǐng)參見(jiàn)圖1,為現(xiàn)有技術(shù)中的存儲(chǔ)系統(tǒng)的網(wǎng)絡(luò)構(gòu)架示意圖。圖1所示的存儲(chǔ)系統(tǒng)包括主機(jī)和閃存設(shè)備,需要說(shuō)明的是,現(xiàn)有技術(shù)中的存儲(chǔ)系統(tǒng)中包括多個(gè)主機(jī)和多個(gè)閃存設(shè)備,本發(fā)明實(shí)施例對(duì)存儲(chǔ)系統(tǒng)中的一個(gè)主機(jī)和一個(gè)閃存設(shè)備進(jìn)行介紹。其中,所述主機(jī)可以包括但不限于臺(tái)式電腦、筆記本電腦、服務(wù)器等設(shè)備,所述主機(jī)通過(guò)發(fā)送一系列的指令對(duì)所述閃存設(shè)備進(jìn)行控制。所述閃存設(shè)備根據(jù)所述主機(jī)發(fā)送的指令執(zhí)行相應(yīng)的操作,例如,讀、寫、刪除等操作。所述閃存設(shè)備的物理存儲(chǔ)空間包括冗余空間和用戶存儲(chǔ)空間,所述物理存儲(chǔ)空間即所述閃存設(shè)備的總?cè)萘靠臻g,所述用戶存儲(chǔ)空間用于存儲(chǔ)用戶通過(guò)主機(jī)輸入的數(shù)據(jù)。本發(fā)明實(shí)施例提供一種數(shù)據(jù)處理方法、裝置及閃存設(shè)備,可以應(yīng)用于圖1所示的存儲(chǔ)系統(tǒng)中,具體可以應(yīng)用于調(diào)整閃存設(shè)備冗余空間的場(chǎng)景。本發(fā)明實(shí)施例中的數(shù)據(jù)處理裝置位于閃存設(shè)備中。
本發(fā)明實(shí)施例中的閃存設(shè)備可以包括但不限于固態(tài)硬盤(Solid State Disk,SSD)、移動(dòng)硬盤、軟盤、U盤、SD卡等具有與非門閃存(NAND Flash)的存儲(chǔ)設(shè)備。需要說(shuō)明的是,本發(fā)明實(shí)施例中的閃存設(shè)備主要針對(duì)固態(tài)硬盤進(jìn)行介紹,其他閃存設(shè)備也可以應(yīng)用本發(fā)明實(shí)施例。
固態(tài)硬盤SSD主要由主控制器和NAND Flash組成。其中,NAND Flash是一種非易失性隨機(jī)訪問(wèn)存儲(chǔ)介質(zhì),其特點(diǎn)是斷電后數(shù)據(jù)不消失,它不同于傳統(tǒng)的易失性隨機(jī)訪問(wèn)存儲(chǔ)介質(zhì)和揮發(fā)性閃存設(shè)備,如動(dòng)態(tài)隨機(jī)存取存取器DRAM和動(dòng)態(tài)隨機(jī)存取存取器SRAM等,因此可以作為外部閃存設(shè)備使用。NAND Flash分為單階儲(chǔ)存單元(Single Level Cell,SLC)和多階儲(chǔ)存單元(Multi Level Cell,MLC)兩種類型,它們的區(qū)別主要是結(jié)構(gòu)不同。目前市場(chǎng)上的NAND Flash多采用MLC芯片。
NAND Flash器件本身通常由一個(gè)內(nèi)部寄存器和存儲(chǔ)矩陣組成,存儲(chǔ)矩陣包括若干塊,每個(gè)塊又包含若干頁(yè),每個(gè)頁(yè)包含若干字節(jié)。對(duì)NAND Flash的操作最主要是讀、寫和擦除。由于Flash閃存設(shè)備是一個(gè)非易失性的半導(dǎo)體,對(duì)NANDFlash的讀寫都是以頁(yè)為單位的,而擦除是以塊為單位的。在進(jìn)行寫入操作之前必須先進(jìn)行頁(yè)面擦除操作。一般NAND Flash的使用順序是:擦除->編程->多次讀取->擦除……
冗余空間(Over Provisioning,OP)為用戶不可操作的容量,大小為SSD的物理空間容量減去用戶可用空間容量,OP區(qū)域一般被用于優(yōu)化操作,如:磨損平衡,垃圾回收和壞塊映射等。
磨損平衡(Wear leveling,WL)為確保閃存每個(gè)塊被寫入的次數(shù)相等的一種機(jī)制。用戶邏輯地址空間里的數(shù)據(jù)更新速度是不同的,有些區(qū)域會(huì)經(jīng)常更新,有些則不常更新。顯而易見(jiàn)的,那些經(jīng)常更新的數(shù)據(jù)所占用的閃存塊會(huì)被快速的磨損掉,而不常更新的數(shù)據(jù)占用的閃存塊磨損就小得多。采用磨損平衡機(jī)制便能很好地解決這個(gè)問(wèn)題,讓每個(gè)閃存塊的編程次數(shù)盡可能保持一致。
垃圾回收(Garbage Collection,GC)把一個(gè)閃存塊里的有效頁(yè)數(shù)據(jù)復(fù)制到一個(gè)空白塊里,然后把這個(gè)塊完全擦除。GC是SSD里的一個(gè)非常關(guān)鍵的操作,其效率對(duì)性能有決定性影響。閃存塊里有效頁(yè)的數(shù)量對(duì)GC效率有決定性的影響,有效頁(yè)的數(shù)量越少,需要復(fù)制的頁(yè)就越少,花費(fèi)的時(shí)間也越少,從而提高垃圾回收的效率。
寫入放大(Write amplification,WA)為NAND Flash實(shí)際寫入數(shù)據(jù)量與主機(jī)寫入數(shù)據(jù)量的比值。因?yàn)镹AND Flash必須先擦除才能寫入,在執(zhí)行這些操作的時(shí)候,移動(dòng)或覆蓋用戶數(shù)據(jù)不止一次。這些重復(fù)的操作,不但增加了寫入數(shù)據(jù)量,減少了SSD的使用壽命,而且消耗了NAND Flash的帶寬,并間接影響了SSD的隨機(jī)寫入性能。例如:要寫入一個(gè)4KB的數(shù)據(jù),最壞的情況就是,一個(gè)塊里已經(jīng)沒(méi)有干凈空間了,但是有無(wú)效的數(shù)據(jù)可以擦除,所以主控制器就把所有的數(shù)據(jù)讀到緩存,擦除塊,緩存里更新整個(gè)塊的數(shù)據(jù),再把新數(shù)據(jù)寫回去,這個(gè)操作帶來(lái)的寫入放大就是:實(shí)際寫4K的數(shù)據(jù),造成了整個(gè)塊(共1024KB)的寫入操作,那就是放大了256倍。同時(shí)還帶來(lái)了原本只需要簡(jiǎn)單一步寫入4KB的操作變成:閃存讀取(1024KB)→緩存改(4KB)→閃存擦除(1024KB)→閃存寫入(1024KB),共四步操作,造成了延遲大大增加,減慢寫入的速度。所以寫入放大是影響SSD隨機(jī)寫入性能和壽命的關(guān)鍵因素。
本發(fā)明實(shí)施例中的所述閃存設(shè)備的物理存儲(chǔ)空間根據(jù)多個(gè)不同的冗余比配置了多個(gè)冗余等級(jí),具體的,請(qǐng)參見(jiàn)圖2所示的配置冗余等級(jí)的示意圖。需要說(shuō)明的是,圖2中的數(shù)值只是舉例,具體數(shù)值可由閃存設(shè)備的制造廠商設(shè)定,在此不做限定。圖2以物理存儲(chǔ)空間容量為1024G的閃存設(shè)備為例,若某個(gè)冗余比為7%,那么960G即為用戶存儲(chǔ)空間容量,1024G與960G的差值空間容量64G即為該閃存設(shè)備的冗余空間。本發(fā)明實(shí)施例根據(jù)多個(gè)不同的榮譽(yù)比對(duì)該閃存設(shè)備的物理存儲(chǔ)空間1024G進(jìn)行配置,配置了5個(gè)冗余等級(jí),分別為L(zhǎng)evel 0、Level 1、Level 2、Level 3、Level 4和Level 5,對(duì)應(yīng)的用戶存儲(chǔ)空間容量的區(qū)間分別為(800G,960G]、(720G,800G]、(660G,720G]、(520G,660G]、(400G,520G]、[0G,400G]。本發(fā)明實(shí)施例還為每個(gè)用戶存儲(chǔ)空間容量配置了對(duì)應(yīng)的調(diào)整參數(shù),所述調(diào)整參數(shù)包括冗余空間調(diào)整參數(shù)、垃圾回收GC調(diào)整參數(shù)、磨損平衡WL調(diào)整參數(shù)、寫入放大WA、冷熱數(shù)據(jù)交換頻率等參數(shù)。由于每個(gè)冗余等級(jí)對(duì)應(yīng)一段用戶存儲(chǔ)空間容量的區(qū)間,并且每個(gè)用戶存儲(chǔ)空間容量的區(qū)間對(duì)應(yīng)不同的調(diào)整參數(shù),因此可以推出每個(gè)冗余等級(jí)與調(diào)整參數(shù)之間的對(duì)應(yīng)關(guān)系?,F(xiàn)有技術(shù)中,通常閃存設(shè)備的制造廠商在制造SSD閃存設(shè)備時(shí)會(huì)根據(jù)客戶的需求為客戶提供一種固定冗余比,一旦冗余比固定,該SSD閃存設(shè)備的性能、各項(xiàng)參數(shù)以及使用壽命等都難以進(jìn)一步優(yōu)化。
基于圖1所示的網(wǎng)絡(luò)架構(gòu),請(qǐng)參見(jiàn)圖3,為本發(fā)明實(shí)施例提供了一種閃存設(shè)備的結(jié)構(gòu)示意圖。如圖3所示,該閃存設(shè)備包括:至少一個(gè)處理器1001,例如CPU,通信接口1003,存儲(chǔ)器1004,至少一個(gè)通信總線1002??蛇x的,所述處理器1001為該閃存設(shè)備的主控制器。其中,所述通信接口1003用于接收與該閃存設(shè)備位于同一存儲(chǔ)系統(tǒng)中的主機(jī)發(fā)送的操作指令。其中,通信總線1002用于實(shí)現(xiàn)這些組件之間的連接通信。其中,存儲(chǔ)器1005可以是NAND Flash存儲(chǔ)器,用于存儲(chǔ)數(shù)據(jù)。所述存儲(chǔ)器1005的物理存儲(chǔ)空間根據(jù)多個(gè)不同的冗余比配置多個(gè)冗余等級(jí),每個(gè)冗余等級(jí)對(duì)應(yīng)一段用戶存儲(chǔ)空間容量的區(qū)間,每個(gè)用戶存儲(chǔ)空間容量的區(qū)間對(duì)應(yīng)不同的調(diào)整參數(shù),所述冗余比為冗余空間容量與所述用戶存儲(chǔ)空間容量的比值,所述冗余空間容量為所述物理存儲(chǔ)空間的容量與所述用戶存儲(chǔ)空間容量的差值。
下面將結(jié)合附圖3-附圖5對(duì)本發(fā)明實(shí)施例提供的數(shù)據(jù)處理方法進(jìn)行詳細(xì)介紹。
請(qǐng)參見(jiàn)圖4,為本發(fā)明實(shí)施例提供了一種數(shù)據(jù)處理方法的流程示意圖。結(jié)合圖3所述的閃存設(shè)備,存儲(chǔ)器1005中存儲(chǔ)一組程序代碼,且處理器1001調(diào)用存儲(chǔ)器1005中存儲(chǔ)的程序代碼,用于執(zhí)行所述數(shù)據(jù)處理方法,可以包括以下步驟S101-步驟S104。
S101,接收主機(jī)發(fā)送的操作指令,根據(jù)所述操作指令對(duì)閃存設(shè)備中存儲(chǔ)的數(shù)據(jù)進(jìn)行操作,并確定操作后的所述閃存設(shè)備中用戶存儲(chǔ)的數(shù)據(jù)量。
可選的,所述處理器1001根據(jù)所述通信接口1003接收到的主機(jī)發(fā)送的操作指令對(duì)存儲(chǔ)器1005中存儲(chǔ)的數(shù)據(jù)進(jìn)行操作,并確定操作后的所述存儲(chǔ)器1005中用戶存儲(chǔ)的數(shù)據(jù)量。所述通信接口1003在接收到所述操作指令時(shí),所述處理器1001首先判斷所述操作指令是否已被執(zhí)行。若判斷的結(jié)果為否,即所述處理器1001未執(zhí)行過(guò)所述操作指令,則對(duì)所述存儲(chǔ)器1005存儲(chǔ)的數(shù)據(jù)進(jìn)行操作。在所述處理器1001執(zhí)行操作之前,所述存儲(chǔ)器1005中可能存儲(chǔ)了一部分?jǐn)?shù)據(jù),將這部分?jǐn)?shù)據(jù)作為所述閃存設(shè)備的初始數(shù)據(jù)量,執(zhí)行操作可能改變所述初始數(shù)據(jù)量,因此所述閃存設(shè)備需確定操作后的所述存儲(chǔ)器1005中用戶存儲(chǔ)的數(shù)據(jù)量,并根據(jù)所述操作后的所述存儲(chǔ)器1005中用戶存儲(chǔ)的數(shù)據(jù)量判斷是否需要調(diào)整所述閃存設(shè)備的冗余等級(jí)。若所述處理器1001已執(zhí)行過(guò)所述操作指令,可以理解的是所述處理器1001已根據(jù)所述操作指令對(duì)所述存儲(chǔ)器1005存儲(chǔ)的數(shù)據(jù)進(jìn)行了操作,此時(shí)不對(duì)所述閃存設(shè)備進(jìn)行處理。
其中,所述操作指令包括寫入指令或刪除指令。具體的,當(dāng)所述操作指令為所述寫入指令時(shí),所述處理器1001首先判斷所述寫入指令是否被寫過(guò),若否則確定待添加數(shù)據(jù),并將所述待添加數(shù)據(jù)添加至所述閃存設(shè)備中,使得所述初始數(shù)據(jù)量在原基礎(chǔ)上增大了,因此將所述初始數(shù)據(jù)量與所述待添加數(shù)據(jù)的數(shù)據(jù)量之和確定為所述操作后的所述存儲(chǔ)器1005中用戶存儲(chǔ)的數(shù)據(jù)量;當(dāng)所述操作指令為所述刪除指令時(shí),所述處理器1001首先判斷所述刪除指令是否被執(zhí)行過(guò),若否則確定待刪除數(shù)據(jù),并將所述待刪除數(shù)據(jù)從所述存儲(chǔ)器1005中刪除,使得所述初始數(shù)據(jù)量在原基礎(chǔ)上減小了,因此將所述初始數(shù)據(jù)量與所述待刪除數(shù)據(jù)的數(shù)據(jù)量之差確定為所述操作后的所述存儲(chǔ)器1005中用戶存儲(chǔ)的數(shù)據(jù)量。
S102,根據(jù)所述操作后的所述閃存設(shè)備中用戶存儲(chǔ)的數(shù)據(jù)量以及每個(gè)冗余等級(jí)對(duì)應(yīng)的用戶存儲(chǔ)空間容量的區(qū)間,確定目標(biāo)冗余等級(jí)。
可選的,由于所述閃存設(shè)備根據(jù)不同的冗余比配置了多個(gè)冗余等級(jí),每個(gè)冗余等級(jí)對(duì)應(yīng)一段用戶存儲(chǔ)空間容量的區(qū)間,因此所述處理器1001根據(jù)所述操作后的所述存儲(chǔ)器1005中用戶存儲(chǔ)的數(shù)據(jù)量以及每個(gè)冗余等級(jí)對(duì)應(yīng)的用戶存儲(chǔ)空間容量的區(qū)間,確定目標(biāo)冗余等級(jí)。若所述操作后的所述存儲(chǔ)器1005中用戶存儲(chǔ)的數(shù)據(jù)量為500G,根據(jù)圖2可知,此時(shí)對(duì)應(yīng)的用戶存儲(chǔ)空間容量的區(qū)間為(400G,520G],對(duì)應(yīng)的冗余等級(jí)為L(zhǎng)evel 4,則將Level 4確定為目標(biāo)冗余等級(jí)。若所述閃存設(shè)備未被使用過(guò)或被格式化,則默認(rèn)將所述冗余等級(jí)設(shè)置為L(zhǎng)evel 5。
S103,根據(jù)所述目標(biāo)冗余等級(jí)以及所述每個(gè)冗余等級(jí)與調(diào)整參數(shù)之間的對(duì)應(yīng)關(guān)系,確定目標(biāo)調(diào)整參數(shù)。
可選的,由于所述閃存設(shè)備根據(jù)不同的冗余比配置了多個(gè)冗余等級(jí),每個(gè)冗余等級(jí)對(duì)應(yīng)一段用戶存儲(chǔ)空間容量的區(qū)間,每個(gè)用戶存儲(chǔ)空間容量的區(qū)間對(duì)應(yīng)不同的調(diào)整參數(shù),因此可以推出所述每個(gè)冗余等級(jí)與調(diào)整參數(shù)之間的對(duì)應(yīng)關(guān)系,即所述閃存設(shè)備為所述每個(gè)冗余等級(jí)配置不同的調(diào)整參數(shù)。所述處理器1001根據(jù)所述目標(biāo)冗余等級(jí)以及所述每個(gè)冗余等級(jí)與調(diào)整參數(shù)之間的對(duì)應(yīng)關(guān)系,確定目標(biāo)調(diào)整參數(shù)。所述目標(biāo)調(diào)整參數(shù)可能與在接收到所述操作指令之前的調(diào)整參數(shù)相同,也可能不相同,由所述操作后的所述存儲(chǔ)器1005中用戶存儲(chǔ)的數(shù)據(jù)量確定,若所述操作后的所述存儲(chǔ)器1005中用戶存儲(chǔ)的數(shù)據(jù)量與所述初始數(shù)據(jù)量屬于同一個(gè)用戶存儲(chǔ)空間容量的區(qū)間,則所述目標(biāo)調(diào)整參數(shù)與所述初始數(shù)據(jù)量對(duì)應(yīng)的調(diào)整參數(shù)相同,否則不相同。所述處理器1001在每次所述存儲(chǔ)器1005中用戶存儲(chǔ)的數(shù)據(jù)量發(fā)生改變時(shí),都需重新確定目標(biāo)冗余等級(jí)和目標(biāo)調(diào)整參數(shù)?,F(xiàn)有技術(shù)中由于冗余比固定,冗余空間的容量固定,因此不管所述存儲(chǔ)器1005中用戶存儲(chǔ)的數(shù)據(jù)量如何變化,所述處理器1001都是以固定的調(diào)整參數(shù)對(duì)用戶存儲(chǔ)的數(shù)據(jù)進(jìn)行調(diào)整,這樣便在一定程度上影響所述閃存設(shè)備的可靠性和性能穩(wěn)定性。
S104,按照所述目標(biāo)調(diào)整參數(shù)調(diào)整所述閃存設(shè)備的冗余空間容量的大小。
可選的,所述處理器1001按照所述目標(biāo)調(diào)整參數(shù)調(diào)整所述存儲(chǔ)器1005的冗余空間容量的大小?,F(xiàn)有技術(shù)中,每個(gè)閃存設(shè)備的冗余空間容量在出廠時(shí)便以確定,使得所述閃存設(shè)備的處理性能有一定的局限性。本發(fā)明實(shí)施例中的所述存儲(chǔ)器1005的冗余空間并不是固定不變,而是隨著所述存儲(chǔ)器1005中用戶存儲(chǔ)的數(shù)據(jù)量的變化而變化,并根據(jù)調(diào)整參數(shù)對(duì)所述存儲(chǔ)器1005的冗余空間容量進(jìn)行相應(yīng)的調(diào)整,以使所述閃存設(shè)備處于最佳運(yùn)行狀態(tài)。例如,所述目標(biāo)調(diào)整參數(shù)為L(zhǎng)evel 4對(duì)應(yīng)的調(diào)整參數(shù),根據(jù)所述目標(biāo)調(diào)整參見(jiàn)將此時(shí)對(duì)應(yīng)的冗余空間為調(diào)整為1024G-520G=504G,相比現(xiàn)有技術(shù)中固定冗余比為7%的閃存設(shè)備對(duì)應(yīng)的冗余空間64G而言,增大了冗余空間,有利于減小WA,因此,與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例中的閃存設(shè)備的可靠性更高、性能穩(wěn)定性更強(qiáng)。
其中,所述目標(biāo)調(diào)整參數(shù)包括目標(biāo)垃圾回收調(diào)整參數(shù)和目標(biāo)磨損平衡調(diào)整參數(shù)。在調(diào)整所述存儲(chǔ)器1005的冗余空間容量的大小之后,所述處理器1001根據(jù)所述目標(biāo)垃圾回收調(diào)整參數(shù)對(duì)所述閃存設(shè)備存儲(chǔ)的數(shù)據(jù)進(jìn)行垃圾回收處理,根據(jù)所述目標(biāo)磨損平衡調(diào)整參數(shù)對(duì)所述閃存設(shè)備存儲(chǔ)的數(shù)據(jù)進(jìn)行磨損平衡調(diào)節(jié)處理。
需要說(shuō)明的是,現(xiàn)有技術(shù)中的冗余空間是固定的,用戶不可訪問(wèn)的,但是本發(fā)明實(shí)施例的冗余空間是可以動(dòng)態(tài)變化的,針對(duì)某個(gè)冗余等級(jí)下的冗余空間是固定的,但是當(dāng)冗余等級(jí)由一個(gè)等級(jí)跨越到另一個(gè)等級(jí)時(shí),冗余空間也將隨之變化。
在本發(fā)明實(shí)施例中,通過(guò)接收主機(jī)發(fā)送的操作指令,根據(jù)操作指令對(duì)閃存設(shè)備中存儲(chǔ)的數(shù)據(jù)進(jìn)行操作,并確定操作后的閃存設(shè)備中用戶存儲(chǔ)的數(shù)據(jù)量,然后根據(jù)操作后的閃存設(shè)備中用戶存儲(chǔ)的數(shù)據(jù)量以及每個(gè)冗余等級(jí)對(duì)應(yīng)的用戶存儲(chǔ)空間容量的區(qū)間,確定目標(biāo)冗余等級(jí),并根據(jù)目標(biāo)冗余等級(jí)以及每個(gè)冗余等級(jí)與調(diào)整參數(shù)之間的對(duì)應(yīng)關(guān)系,確定目標(biāo)調(diào)整參數(shù),最后按照目標(biāo)調(diào)整參數(shù)調(diào)整閃存設(shè)備的冗余空間容量的大小,從而實(shí)現(xiàn)根據(jù)存儲(chǔ)的數(shù)據(jù)量大小動(dòng)態(tài)調(diào)整閃存設(shè)備的冗余比,進(jìn)而提高閃存設(shè)備的可靠性和性能穩(wěn)定性,同時(shí)延長(zhǎng)閃存設(shè)備的使用壽命。
請(qǐng)參見(jiàn)圖5,為本發(fā)明實(shí)施例提供了另一種數(shù)據(jù)處理方法的流程示意圖。結(jié)合圖3所述的閃存設(shè)備,存儲(chǔ)器1005中存儲(chǔ)一組程序代碼,且處理器1001調(diào)用存儲(chǔ)器1005中存儲(chǔ)的程序代碼,用于執(zhí)行所述數(shù)據(jù)處理方法,可以包括以下步驟S201-步驟S210。
S201,接收主機(jī)發(fā)送的寫入指令,根據(jù)所述寫入指令確定待添加數(shù)據(jù)。
可選的,所述通信接口1003接收主機(jī)發(fā)送的寫入指令,并通過(guò)所述通信總線1002將所述寫入指令傳輸至所述處理器1001,所述處理器1001根據(jù)所述寫入確定待添加數(shù)據(jù)。所述處理器1001在接收到所述寫入指令時(shí),判斷所述寫入指令是否已被執(zhí)行。所述主機(jī)與閃存設(shè)備位于存儲(chǔ)系統(tǒng)中,所述主機(jī)控制所述閃存設(shè)備運(yùn)行的主機(jī),可以包括但不限于臺(tái)式電腦、筆記本電腦、服務(wù)器等設(shè)備。由于所述處理器1001接收到的所述寫入指令可能已被執(zhí)行過(guò),因此所述處理器1001需判斷所述寫入指令是否已被執(zhí)行。若所述寫入指令未被執(zhí)行過(guò),可以理解的是所述處理器1001并未根據(jù)所述寫入指令向所述存儲(chǔ)器1005中添加數(shù)據(jù)。若所述寫入指令已被執(zhí)行,可以理解的是所述處理器1001已經(jīng)執(zhí)行了根據(jù)所述寫入指令向所述存儲(chǔ)器1005添加數(shù)據(jù)的操作,若再次接收到所述寫入指令,并不會(huì)改變所述存儲(chǔ)器1005存儲(chǔ)的數(shù)據(jù)量大小,因此此時(shí)不對(duì)所述閃存設(shè)備進(jìn)行處理。確定所述待添加數(shù)據(jù)包括確定所述待添加數(shù)據(jù)的內(nèi)容和數(shù)據(jù)量大小。
S202,對(duì)所述待添加數(shù)據(jù)進(jìn)行壓縮。
可選的,所述處理器1001對(duì)所述待添加數(shù)據(jù)進(jìn)行壓縮。由于有些SSD具有壓縮功能,使得用戶真實(shí)添加至SSD的數(shù)據(jù)量為對(duì)添加數(shù)據(jù)壓縮后的數(shù)據(jù)量,因此所述待添加數(shù)據(jù)為壓縮后的所述待添加數(shù)據(jù)。
需要說(shuō)明的是,本發(fā)明實(shí)施例中的步驟S202在SSD具有壓縮功能時(shí)執(zhí)行,若SSD不具有壓縮功能,則不執(zhí)行步驟S202,直接執(zhí)行步驟S203。
S203,將所述待添加數(shù)據(jù)添加至閃存設(shè)備中,并將所述待添加數(shù)據(jù)添加至所述閃存設(shè)備后的用戶存儲(chǔ)的數(shù)據(jù)量確定為操作后的所述閃存設(shè)備中用戶存儲(chǔ)的數(shù)據(jù)量。
可選的,所述處理器1001將所述待添加數(shù)據(jù)添加至所述存儲(chǔ)器1005中,從而在所述存儲(chǔ)器1005之前用戶存儲(chǔ)的數(shù)據(jù)量的基礎(chǔ)上增加了新的數(shù)據(jù)量,將所述待添加數(shù)據(jù)添加至所述存儲(chǔ)器1005后的用戶存儲(chǔ)的數(shù)據(jù)量確定為操作后的所述存儲(chǔ)器1005中用戶存儲(chǔ)的數(shù)據(jù)量。
S204,接收主機(jī)發(fā)送的刪除指令,根據(jù)所述刪除指令確定待刪除數(shù)據(jù)。
可選的,所述處理器1001接收主機(jī)發(fā)送的刪除指令,并通過(guò)所述通信總線1002將所述刪除指令傳輸至所述處理器1001,所述處理器1001根據(jù)所述刪除指令確定待刪除數(shù)據(jù)所述處理器1001在接收到所述刪除指令時(shí),判斷所述刪除指令是否已被執(zhí)行。其中,所述刪除指令為修剪(TRIM)指令,本發(fā)明實(shí)施例實(shí)施的前提條件是所述閃存設(shè)備能夠支持所述TRIM指令,所述TRIM指令用于操作系統(tǒng)在刪除某個(gè)文件或者格式化后,告訴SSD主控制器這個(gè)數(shù)據(jù)塊不再需要了。當(dāng)某些文件被刪除或者格式化了整個(gè)分區(qū)時(shí),操作系統(tǒng)把所述TRIM指令和在操作中更新的邏輯地址一起發(fā)給SSD主控制器(其中包含了無(wú)效數(shù)據(jù)地址),這樣在之后的垃圾回收處理中,無(wú)效數(shù)據(jù)就能被清空了,用戶存儲(chǔ)空間容量和冗余空間容量相應(yīng)的變大了,從而減少了寫入放大WA,同時(shí)也提升了性能。本發(fā)明實(shí)施例還要求所述主機(jī)盡可能多下發(fā)所述TRIM指令,以使所述閃存設(shè)備能夠反向調(diào)整空間冗余等級(jí)。由于所述處理器1001接收到指令可能已被執(zhí)行過(guò),因此所述處理器1001需判斷所述刪除指令是否已被執(zhí)行。若所述刪除指令未被執(zhí)行過(guò),可以理解的是所述處理器1001并未根據(jù)所述刪除指令向所述閃存設(shè)備中刪除數(shù)據(jù)。若所述刪除指令已被執(zhí)行,可以理解的是所述處理器1001已經(jīng)執(zhí)行了根據(jù)所述刪除指令從所述存儲(chǔ)器1005刪除數(shù)據(jù)的操作,若再次接收到所述刪除指令,并不會(huì)改變所述存儲(chǔ)器1005存儲(chǔ)的數(shù)據(jù)量大小,因此此時(shí)不對(duì)所述閃存設(shè)備進(jìn)行處理。確定所述待刪除數(shù)據(jù)包括確定所述待刪除數(shù)據(jù)的內(nèi)容和數(shù)據(jù)量大小,可以理解的是確定需要被無(wú)效的數(shù)據(jù)或者被擦除的數(shù)據(jù)塊。
S205,將所述待刪除數(shù)據(jù)從閃存設(shè)備中刪除,并將所述待刪除數(shù)據(jù)被刪除后的用戶存儲(chǔ)的數(shù)據(jù)量確定為操作后的所述閃存設(shè)備中用戶存儲(chǔ)的數(shù)據(jù)量。
可選的,所述處理器1001將所述待刪除數(shù)據(jù)從所述存儲(chǔ)器1005中刪除,從而在所述存儲(chǔ)器1005之前用戶存儲(chǔ)的數(shù)據(jù)量的基礎(chǔ)上減少了數(shù)據(jù)量,所述處理器1001將所述待刪除數(shù)據(jù)被刪除后的用戶存儲(chǔ)的數(shù)據(jù)量確定為操作后的所述存儲(chǔ)器1005中用戶存儲(chǔ)的數(shù)據(jù)量。
S206,根據(jù)所述操作后的所述閃存設(shè)備中用戶存儲(chǔ)的數(shù)據(jù)量以及每個(gè)冗余等級(jí)對(duì)應(yīng)的用戶存儲(chǔ)空間容量的區(qū)間,確定目標(biāo)冗余等級(jí)。
S207,根據(jù)所述目標(biāo)冗余等級(jí)以及所述每個(gè)冗余等級(jí)與調(diào)整參數(shù)之間的對(duì)應(yīng)關(guān)系,確定目標(biāo)調(diào)整參數(shù)。
S208,按照所述目標(biāo)調(diào)整參數(shù)調(diào)整所述閃存設(shè)備的冗余空間容量的大小。
本發(fā)明實(shí)施例中的步驟S206-步驟S208的具體實(shí)現(xiàn)過(guò)程可參見(jiàn)圖3所示實(shí)施例中的步驟S102-步驟S104的具體描述,在此不再贅述。
S209,根據(jù)所述目標(biāo)調(diào)整參數(shù)中的目標(biāo)垃圾回收調(diào)整參數(shù)對(duì)所述閃存設(shè)備存儲(chǔ)的數(shù)據(jù)進(jìn)行垃圾回收處理。
可選的,所述處理器1001根據(jù)所述目標(biāo)調(diào)整參數(shù)中的目標(biāo)垃圾回收調(diào)整參數(shù)對(duì)所述閃存設(shè)備存儲(chǔ)的數(shù)據(jù)進(jìn)行垃圾回收處理。垃圾回收,由SSD的主控制器把那些包含“無(wú)效”數(shù)據(jù)的塊里的所有“有效”數(shù)據(jù)合并起來(lái)放到新的“空白塊”里,并刪除“無(wú)效”數(shù)據(jù)塊來(lái)增加備用的“空白塊”數(shù)量,可見(jiàn),垃圾回收一方面減少了無(wú)效數(shù)據(jù)的數(shù)據(jù)量,另一方面增加了空白塊的數(shù)量,從而為用戶提供了更多的可用空白塊。
由于垃圾回收會(huì)對(duì)SSD產(chǎn)生大量負(fù)載,因此垃圾回收可分閑置垃圾回收及被動(dòng)垃圾回收。閑置垃圾回收就是讓SSD主控在系統(tǒng)閑置時(shí)提前進(jìn)行垃圾回收操作,產(chǎn)生一定數(shù)量的空白塊,讓垃圾回收操作不至于明顯影響用戶使用感受,但缺點(diǎn)是會(huì)因此造成額外的寫入放大,因?yàn)閯偫厥盏挠行?shù)據(jù)可能會(huì)因?yàn)橛脩舾露儫o(wú)效。被動(dòng)垃圾回收則是所有SSD一定具備的,SSD主控性能對(duì)被動(dòng)垃圾回收效率有決定性影響,因?yàn)榇藭r(shí)SSD需要同時(shí)進(jìn)行垃圾回收及用戶要求的數(shù)據(jù)操作,主控性能不足就會(huì)讓用戶發(fā)覺(jué)SSD的性能下降。被動(dòng)垃圾回收即根據(jù)關(guān)聯(lián)主機(jī)發(fā)送的TRIM指令執(zhí)行垃圾回收操作,觸發(fā)SSD產(chǎn)生更多的無(wú)效頁(yè)數(shù)據(jù),減輕垃圾回收的壓力,從而減少用戶發(fā)覺(jué)SSD性能下降的機(jī)會(huì)。
垃圾回收調(diào)整參數(shù)用于確定什么時(shí)候?qū)λ鲩W存設(shè)備進(jìn)行垃圾回收處理操作,即啟動(dòng)垃圾回收的參數(shù)?,F(xiàn)有技術(shù)中,在固定冗余比的情況下,不管SSD中存儲(chǔ)的數(shù)據(jù)量為多少,該SSD都以固定的垃圾回收參數(shù)對(duì)SSD進(jìn)行垃圾回收處理,影響SSD的性能和可靠性。由于本發(fā)明實(shí)施例為不同空間冗余等級(jí)分別配置了最佳的調(diào)整參數(shù),因此本發(fā)明實(shí)施例能夠根據(jù)存儲(chǔ)數(shù)據(jù)量的大小進(jìn)行適當(dāng)?shù)睦厥仗幚?,以?yōu)化SSD的性能。
S210,根據(jù)所述目標(biāo)調(diào)整參數(shù)中的目標(biāo)磨損平衡調(diào)整參數(shù)對(duì)所述閃存設(shè)備存儲(chǔ)的數(shù)據(jù)進(jìn)行磨損平衡處理。
可選的,所述處理器1001根據(jù)所述目標(biāo)調(diào)整參數(shù)中的目標(biāo)磨損平衡調(diào)整參數(shù)對(duì)所述閃存設(shè)備存儲(chǔ)的數(shù)據(jù)進(jìn)行磨損平衡處理,確保每個(gè)塊被寫入的次數(shù)相等。磨損平衡算法有動(dòng)態(tài)及靜態(tài)兩種,簡(jiǎn)單來(lái)說(shuō)動(dòng)態(tài)磨損平衡是每次都挑最年輕的閃存塊使用,老閃存塊盡量不用。靜態(tài)磨損平衡就是把長(zhǎng)期沒(méi)有修改的老數(shù)據(jù)從年輕的閃存塊里搬出來(lái),重新找個(gè)最老的閃存塊存放,這樣年輕的閃存塊就能再次被經(jīng)常使用。不管是動(dòng)態(tài)磨損平衡還是靜態(tài)磨損平衡都需要一個(gè)啟動(dòng)粒度,磨損平衡調(diào)整參數(shù)就是用來(lái)確定什么時(shí)候啟動(dòng)磨損平衡處理操作的參數(shù)。各個(gè)空間冗余等級(jí)下的磨損調(diào)整參數(shù)各不相同,冗余比越大的冗余等級(jí)下的啟動(dòng)粒度越高。
在本發(fā)明實(shí)施例中,通過(guò)接收主機(jī)發(fā)送的操作指令,根據(jù)操作指令對(duì)閃存設(shè)備中存儲(chǔ)的數(shù)據(jù)進(jìn)行操作,并確定操作后的閃存設(shè)備中用戶存儲(chǔ)的數(shù)據(jù)量,然后根據(jù)操作后的閃存設(shè)備中用戶存儲(chǔ)的數(shù)據(jù)量以及每個(gè)冗余等級(jí)對(duì)應(yīng)的用戶存儲(chǔ)空間容量的區(qū)間,確定目標(biāo)冗余等級(jí),并根據(jù)目標(biāo)冗余等級(jí)以及每個(gè)冗余等級(jí)與調(diào)整參數(shù)之間的對(duì)應(yīng)關(guān)系,確定目標(biāo)調(diào)整參數(shù),最后按照目標(biāo)調(diào)整參數(shù)調(diào)整閃存設(shè)備的冗余空間容量的大小并根據(jù)目標(biāo)調(diào)整參數(shù)對(duì)閃存設(shè)備進(jìn)行相應(yīng)的調(diào)節(jié),從而實(shí)現(xiàn)根據(jù)存儲(chǔ)的數(shù)據(jù)量大小動(dòng)態(tài)調(diào)整閃存設(shè)備的冗余比,進(jìn)而提高閃存設(shè)備的可靠性和性能穩(wěn)定性,延長(zhǎng)閃存設(shè)備的使用壽命,同時(shí)提高閃存設(shè)備的主動(dòng)性。
下面將結(jié)合附圖6對(duì)本發(fā)明實(shí)施例提供的數(shù)據(jù)處理裝置進(jìn)行詳細(xì)介紹。需要說(shuō)明的是,附圖6所示的數(shù)據(jù)處理裝置,用于執(zhí)行本發(fā)明圖4和圖5所示實(shí)施例的方法,為了便于說(shuō)明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分,具體技術(shù)細(xì)節(jié)未揭示的,請(qǐng)參照本發(fā)明圖4和圖5所示的實(shí)施例。
本發(fā)明實(shí)施例中的數(shù)據(jù)處理裝置應(yīng)用于圖1所示存儲(chǔ)系統(tǒng)中的閃存設(shè)備中,所述閃存設(shè)備的物理存儲(chǔ)空間根據(jù)多個(gè)不同的冗余比配置多個(gè)冗余等級(jí),每個(gè)冗余等級(jí)對(duì)應(yīng)一段用戶存儲(chǔ)空間容量的區(qū)間,每個(gè)用戶存儲(chǔ)空間容量的區(qū)間對(duì)應(yīng)不同的調(diào)整參數(shù),所述冗余比為冗余空間容量與所述用戶存儲(chǔ)空間容量的比值,所述冗余空間容量為所述物理存儲(chǔ)空間的容量與所述用戶存儲(chǔ)空間容量的差值。
請(qǐng)參見(jiàn)圖6,為本發(fā)明提供的一種數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖,該數(shù)據(jù)處理裝置10可包括:接收單元101、確定單元102和調(diào)整單元103。
接收單元101,用于接收所述主機(jī)發(fā)送的操作指令,根據(jù)所述操作指令對(duì)所述閃存設(shè)備中存儲(chǔ)的數(shù)據(jù)進(jìn)行操作,并確定操作后的所述閃存設(shè)備中用戶存儲(chǔ)的數(shù)據(jù)量。
確定單元102,用于根據(jù)所述操作后的所述閃存設(shè)備中用戶存儲(chǔ)的數(shù)據(jù)量以及所述每個(gè)冗余等級(jí)對(duì)應(yīng)的用戶存儲(chǔ)空間容量的區(qū)間,確定目標(biāo)冗余等級(jí)。
所述確定單元102還用于根據(jù)所述目標(biāo)冗余等級(jí)以及所述每個(gè)冗余等級(jí)與調(diào)整參數(shù)之間的對(duì)應(yīng)關(guān)系,確定目標(biāo)調(diào)整參數(shù)。
調(diào)整單元103,用于按照所述目標(biāo)調(diào)整參數(shù)調(diào)整所述閃存設(shè)備的冗余空間容量的大小。
本發(fā)明實(shí)施例和圖4所示方法實(shí)施例基于同一構(gòu)思,其帶來(lái)的技術(shù)效果也相同,具體原理請(qǐng)參照?qǐng)D4所示實(shí)施例的描述,此處不再贅述。
可選的,所述接收單元101具體用于接收所述主機(jī)發(fā)送的寫入指令,根據(jù)所述寫入指令確定待添加數(shù)據(jù),將所述待添加數(shù)據(jù)添加至所述閃存設(shè)備中,并將所述待添加數(shù)據(jù)添加至所述閃存設(shè)備后的用戶存儲(chǔ)的數(shù)據(jù)量確定為操作后的所述閃存設(shè)備中用戶存儲(chǔ)的數(shù)據(jù)量。
所述接收單元101具體用于接收所述主機(jī)發(fā)送的刪除指令,根據(jù)所述刪除指令確定待刪除數(shù)據(jù),將所述待刪除數(shù)據(jù)從所述閃存設(shè)備中刪除,并將所述待刪除數(shù)據(jù)被刪除后的用戶存儲(chǔ)的數(shù)據(jù)量確定為操作后的所述閃存設(shè)備中用戶存儲(chǔ)的數(shù)據(jù)量。
所述接收單元101還用于對(duì)所述待添加數(shù)據(jù)進(jìn)行壓縮,所述待添加數(shù)據(jù)是壓縮后的數(shù)據(jù)。
所述數(shù)據(jù)處理裝置10還包括:
處理單元,用于根據(jù)所述目標(biāo)調(diào)整參數(shù)中的目標(biāo)垃圾回收調(diào)整參數(shù)對(duì)所述閃存設(shè)備存儲(chǔ)的數(shù)據(jù)進(jìn)行垃圾回收處理。
所述處理單元還用于根據(jù)所述目標(biāo)調(diào)整參數(shù)中的目標(biāo)磨損平衡調(diào)整參數(shù)對(duì)所述閃存設(shè)備存儲(chǔ)的數(shù)據(jù)進(jìn)行磨損平衡處理。
本發(fā)明實(shí)施例和圖5所示方法實(shí)施例基于同一構(gòu)思,其帶來(lái)的技術(shù)效果也相同,具體原理請(qǐng)參照?qǐng)D5所示實(shí)施例的描述,此處不再贅述。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory,ROM)或隨機(jī)存儲(chǔ)記憶體(Random Access Memory,RAM)等。
以上所揭露的僅為本發(fā)明較佳實(shí)施例而已,當(dāng)然不能以此來(lái)限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。