本申請涉及數(shù)據(jù)存儲(chǔ)
技術(shù)領(lǐng)域:
,更具體地說,涉及一種元數(shù)據(jù)存儲(chǔ)方法及系統(tǒng)。
背景技術(shù):
:隨著固態(tài)硬盤(solidstatedisk,ssd)技術(shù)的發(fā)展,固態(tài)硬盤在性能、壽命、可靠性及容量上已經(jīng)達(dá)到了企業(yè)級別使用的程度,所以在近幾年基于全閃存存儲(chǔ)介質(zhì)(例如固態(tài)硬盤)的全閃存陣列的研究如火如荼。固態(tài)硬盤相較于傳統(tǒng)的機(jī)械磁盤主要有以下幾個(gè)優(yōu)點(diǎn):1、固態(tài)硬盤的性能大大優(yōu)于傳統(tǒng)磁盤,企業(yè)級的固態(tài)硬盤的io時(shí)延以及可以達(dá)到50μs以下,而企業(yè)級的磁盤的時(shí)延都在毫秒級別;2、固態(tài)硬盤由于不需要機(jī)械馬達(dá),所以其在運(yùn)行時(shí)噪音小且耗電少;3、固態(tài)硬盤由于不存在機(jī)械設(shè)備,所以整盤損壞概率??;4、固態(tài)硬盤的可定制性高,可以在高密設(shè)備上應(yīng)用。固態(tài)硬盤在應(yīng)用過程中,數(shù)據(jù)塊是不能直接修改寫的,在進(jìn)行數(shù)據(jù)塊的修改寫時(shí),需要將修改寫的數(shù)據(jù)塊重新映射到新的存儲(chǔ)區(qū)域進(jìn)行存儲(chǔ),然后將之前存儲(chǔ)的修改前的數(shù)據(jù)庫無效掉,并等待垃圾回收進(jìn)行處理。但是固態(tài)硬盤不耐擦寫,頻繁的擦寫操作不僅會(huì)消耗掉固態(tài)硬盤的壽命,而且大量的小塊隨機(jī)寫操作會(huì)加劇垃圾回收處理的頻度,且垃圾回收存在數(shù)據(jù)搬遷,會(huì)影響固態(tài)硬盤對外能夠提供的io性能。如何減少對固態(tài)硬盤的小塊隨機(jī)寫,以提升固態(tài)硬盤的性能,并提升固態(tài)硬盤的使用壽命,成為相關(guān)技術(shù)人員研究的重點(diǎn)。技術(shù)實(shí)現(xiàn)要素:為解決上述技術(shù)問題,本發(fā)明提供了一種元數(shù)據(jù)存儲(chǔ)方法及系統(tǒng),以實(shí)現(xiàn)降低對固態(tài)硬盤的小塊隨機(jī)寫的頻度,提升固態(tài)硬盤的性能,并提升固態(tài)硬盤的使用壽命的目的。為實(shí)現(xiàn)上述技術(shù)目的,本發(fā)明實(shí)施例提供了如下技術(shù)方案:一種元數(shù)據(jù)存儲(chǔ)方法,應(yīng)用于全閃存陣列,所述元數(shù)據(jù)存儲(chǔ)方法包括:接收待修改元數(shù)據(jù);根據(jù)所述待修改元數(shù)據(jù)的存儲(chǔ)參數(shù)生成元數(shù)據(jù)塊;將所述元數(shù)據(jù)塊寫入所述全閃存陣列的非易失性內(nèi)存中,并判斷所述非易失性內(nèi)存中存儲(chǔ)的元數(shù)據(jù)塊總長度是否大于或等于預(yù)設(shè)長度,如果是,則對所述非易失性內(nèi)存中存儲(chǔ)的元數(shù)據(jù)塊進(jìn)行下盤??蛇x的,所述待修改元數(shù)據(jù)的存儲(chǔ)參數(shù)包括:修改模式、存儲(chǔ)位置及修改值??蛇x的,還包括:每隔預(yù)設(shè)時(shí)間對所述全閃存陣列的下層存儲(chǔ)介質(zhì)中存儲(chǔ)的元數(shù)據(jù)及元數(shù)據(jù)塊進(jìn)行全量備份??蛇x的,還包括:在對元數(shù)據(jù)及元數(shù)據(jù)塊進(jìn)行全量備份,且接收到待修改元數(shù)據(jù)時(shí),根據(jù)所述待修改元數(shù)據(jù)的存儲(chǔ)參數(shù)確定與所述待修改元數(shù)據(jù)關(guān)聯(lián)的源元數(shù)據(jù),并根據(jù)所述待修改元數(shù)據(jù)的存儲(chǔ)參數(shù)對所述源元數(shù)據(jù)進(jìn)行重定向?qū)???蛇x的,所述每隔預(yù)設(shè)時(shí)間對所述全閃存陣列的下層存儲(chǔ)介質(zhì)中存儲(chǔ)的元數(shù)據(jù)及元數(shù)據(jù)塊進(jìn)行全量備份包括:設(shè)置全量備份標(biāo)簽;從所述全閃存陣列中存儲(chǔ)的元數(shù)據(jù)及元數(shù)據(jù)塊的開始位置以固定長度的數(shù)據(jù)段將元數(shù)據(jù)寫入所述全閃存陣列下層存儲(chǔ)介質(zhì)中,直至所述全閃存陣列中存儲(chǔ)的所有元數(shù)據(jù)及元數(shù)據(jù)塊全部下盤完成;取消所述全量備份標(biāo)簽??蛇x的,還包括:當(dāng)所述全閃存陣列的節(jié)點(diǎn)出現(xiàn)故障時(shí),讀取歷史最近一次全量備份的元數(shù)據(jù)及元數(shù)據(jù)塊;對讀取的元數(shù)據(jù)及元數(shù)據(jù)塊進(jìn)行完整性校驗(yàn);當(dāng)讀取的元數(shù)據(jù)及元數(shù)據(jù)塊完整時(shí),以歷史最近一次全量備份的起始時(shí)間點(diǎn)對元數(shù)據(jù)及元數(shù)據(jù)塊進(jìn)行重放,直至讀取的所有的元數(shù)據(jù)及元數(shù)據(jù)塊重放完成。一種元數(shù)據(jù)存儲(chǔ)系統(tǒng),應(yīng)用于全閃存陣列,所述元數(shù)據(jù)存儲(chǔ)系統(tǒng)包括:接收模塊,用于接收待修改元數(shù)據(jù);數(shù)據(jù)塊生成模塊,用于根據(jù)所述待修改元數(shù)據(jù)的存儲(chǔ)參數(shù)生成元數(shù)據(jù)塊;下盤模塊,用于將所述元數(shù)據(jù)塊寫入所述全閃存陣列的非易失性內(nèi)存中,并判斷所述非易失性內(nèi)存中存儲(chǔ)的元數(shù)據(jù)塊總長度是否大于或等于預(yù)設(shè)長度,如果是,則對所述非易失性內(nèi)存中存儲(chǔ)的元數(shù)據(jù)塊進(jìn)行下盤??蛇x的,所述待修改元數(shù)據(jù)的存儲(chǔ)參數(shù)包括:修改模式、存儲(chǔ)位置及修改值??蛇x的,還包括:全量備份模塊,用于每隔預(yù)設(shè)時(shí)間對所述全閃存陣列的下層存儲(chǔ)介質(zhì)中存儲(chǔ)的元數(shù)據(jù)及元數(shù)據(jù)塊進(jìn)行全量備份??蛇x的,還包括:重定向?qū)懩K,用于在對元數(shù)據(jù)及元數(shù)據(jù)塊進(jìn)行全量備份,且接收到待修改元數(shù)據(jù)時(shí),根據(jù)所述待修改元數(shù)據(jù)的存儲(chǔ)參數(shù)確定與所述待修改元數(shù)據(jù)關(guān)聯(lián)的源元數(shù)據(jù),并根據(jù)所述待修改元數(shù)據(jù)的存儲(chǔ)參數(shù)對所述源元數(shù)據(jù)進(jìn)行重定向?qū)???蛇x的,所述全量備份模塊包括:標(biāo)簽設(shè)置單元,用于設(shè)置全量備份標(biāo)簽;寫入單元,用于從所述全閃存陣列中存儲(chǔ)的元數(shù)據(jù)及元數(shù)據(jù)塊的開始位置以固定長度的數(shù)據(jù)段將元數(shù)據(jù)寫入所述全閃存陣列下層存儲(chǔ)介質(zhì)中,直至所述全閃存陣列中存儲(chǔ)的所有元數(shù)據(jù)及元數(shù)據(jù)塊全部下盤完成;標(biāo)簽取消單元,用于取消所述全量備份標(biāo)簽。可選的,還包括:數(shù)據(jù)恢復(fù)模塊,用于當(dāng)所述全閃存陣列的節(jié)點(diǎn)出現(xiàn)故障時(shí),讀取歷史最近一次全量備份的元數(shù)據(jù)及元數(shù)據(jù)塊;對讀取的元數(shù)據(jù)及元數(shù)據(jù)塊進(jìn)行完整性校驗(yàn);當(dāng)讀取的元數(shù)據(jù)及元數(shù)據(jù)塊完整時(shí),以歷史最近一次全量備份的起始時(shí)間點(diǎn)對元數(shù)據(jù)及元數(shù)據(jù)塊進(jìn)行重放,直至讀取的所有的元數(shù)據(jù)及元數(shù)據(jù)塊重放完成。從上述技術(shù)方案可以看出,本發(fā)明實(shí)施例提供了一種元數(shù)據(jù)存儲(chǔ)方法及系統(tǒng),其中,所述元數(shù)據(jù)存儲(chǔ)方法針對元數(shù)據(jù)的修改單元一般較小的特性,根據(jù)接收的待修改元數(shù)據(jù)的存儲(chǔ)參數(shù)生成元數(shù)據(jù)塊,并存儲(chǔ)于非易失性內(nèi)存中;然后當(dāng)非易失性內(nèi)存中存儲(chǔ)的元數(shù)據(jù)塊總長度大于或等于預(yù)設(shè)長度時(shí),將非易失性內(nèi)存中存儲(chǔ)的元數(shù)據(jù)塊進(jìn)行合并下盤的方式減少小塊數(shù)據(jù)的隨機(jī)寫操作對下層存儲(chǔ)介質(zhì)(固態(tài)硬盤)的性能影響,從而實(shí)現(xiàn)提升固態(tài)硬盤的性能,并提升固態(tài)硬盤的使用壽命的目的。附圖說明為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。圖1為本申請的一個(gè)實(shí)施例提供的一種元數(shù)據(jù)存儲(chǔ)方法的流程示意圖;圖2為本申請的另一個(gè)實(shí)施例提供的一種元數(shù)據(jù)存儲(chǔ)方法的流程示意圖;圖3為本申請的又一個(gè)實(shí)施例提供的一種元數(shù)據(jù)存儲(chǔ)方法的流程示意圖;圖4為本申請的一個(gè)優(yōu)選實(shí)施例提供的一種元數(shù)據(jù)存儲(chǔ)方法的流程示意圖;圖5為本申請的另一個(gè)優(yōu)選實(shí)施例提供的一種元數(shù)據(jù)存儲(chǔ)方法的流程示意圖;圖6為本申請的一個(gè)實(shí)施例提供的一種元數(shù)據(jù)存儲(chǔ)系統(tǒng)的結(jié)構(gòu)示意圖;圖7為本申請的另一個(gè)實(shí)施例提供的一種元數(shù)據(jù)存儲(chǔ)系統(tǒng)的結(jié)構(gòu)示意圖;圖8為本申請的又一個(gè)實(shí)施例提供的一種元數(shù)據(jù)存儲(chǔ)系統(tǒng)的結(jié)構(gòu)示意圖;圖9為本申請的一個(gè)優(yōu)選實(shí)施例提供的一種元數(shù)據(jù)存儲(chǔ)系統(tǒng)的結(jié)構(gòu)示意圖;圖10為本申請的另一個(gè)優(yōu)選實(shí)施例提供的一種元數(shù)據(jù)存儲(chǔ)系統(tǒng)的結(jié)構(gòu)示意圖。具體實(shí)施方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。本申請實(shí)施例提供了一種元數(shù)據(jù)存儲(chǔ)方法,如圖1所示,應(yīng)用于全閃存陣列,所述元數(shù)據(jù)存儲(chǔ)方法包括:s101:接收待修改元數(shù)據(jù);s102:根據(jù)所述待修改元數(shù)據(jù)的存儲(chǔ)參數(shù)生成元數(shù)據(jù)塊;s103:將所述元數(shù)據(jù)塊寫入所述全閃存陣列的非易失性內(nèi)存中,并判斷所述非易失性內(nèi)存中存儲(chǔ)的元數(shù)據(jù)塊總長度是否大于或等于預(yù)設(shè)長度,如果是,則對所述非易失性內(nèi)存中存儲(chǔ)的元數(shù)據(jù)塊進(jìn)行下盤。需要說明的是,在存儲(chǔ)系統(tǒng)中,所有描述存儲(chǔ)數(shù)據(jù)屬性、位置以及在io棧各層需要的映射關(guān)系的數(shù)據(jù)都稱為元數(shù)據(jù)。在全閃存陣列中,上層存儲(chǔ)介質(zhì)的地址是邏輯連續(xù)的,但是在上層存儲(chǔ)介質(zhì)中的寫入操作一般是隨機(jī)的。也就是說,假設(shè)上層存儲(chǔ)介質(zhì)的地址為0-10000,第一次寫入數(shù)據(jù)的位置為0位置,第二次寫入數(shù)據(jù)的位置就可能是100位置;所以一次性分配10000長度的存儲(chǔ)單元存在存儲(chǔ)介質(zhì)的浪費(fèi),所以在數(shù)據(jù)存儲(chǔ)的過程中就存在一次地址空間之間的映射。假如每次寫入的數(shù)據(jù)長度均為8字節(jié),寫入的上層地址位置依次是0、64,、128、136,而在全閃存陣列的下層存儲(chǔ)介質(zhì)(例如固態(tài)硬盤或其他可長期保存數(shù)據(jù)的介質(zhì))處理這些數(shù)據(jù)時(shí),其在下層存儲(chǔ)介質(zhì)中存儲(chǔ)的位置則為0、1、2、3,時(shí)依照寫入順序排列的地址,那么這個(gè)過程組成的映射關(guān)系就為(0,0)(64,1)(128,2)和(136,3),這些映射關(guān)系就稱為元數(shù)據(jù)。在本申請實(shí)施例中,所述待修改元數(shù)據(jù)的存儲(chǔ)參數(shù)一般包括:修改模式、存儲(chǔ)位置及修改值;其中,修改模式包括事務(wù)處理模式參數(shù)和基本模式參數(shù),所述基本模式參數(shù)包括增加(add)、刪除(del)和修改(mod),這三項(xiàng)中的任意一項(xiàng)或多項(xiàng)構(gòu)成基本模式;所述事務(wù)處理模式參數(shù)還包括:傳輸起始(trans_begin)和傳輸完成(trans_end)。參考表1,為本申請的一個(gè)實(shí)施例提供的一種可行的元數(shù)據(jù)塊的結(jié)構(gòu):表1元數(shù)據(jù)塊結(jié)構(gòu)modeposcontentadd0x1a85aadel0x859nulltrans_beginnullnullmod0x67caddaddox982ccdel0x176nulltrans_endnullnullmod0x7ac1al在表1中,mode表示修改模式,content表示修改值,pos表示存儲(chǔ)位置。還需要說明的是,所述預(yù)設(shè)長度的取值可以為128kb(kilobyte,千字節(jié)),也可以為256kb,還可以為512kb,本申請對所述預(yù)設(shè)長度的具體取值并不做限定,具體視實(shí)際情況而定。在上述實(shí)施例的基礎(chǔ)上,在本申請的一個(gè)實(shí)施例中,如圖2所示,所述元數(shù)據(jù)存儲(chǔ)方法還包括:s201:每隔預(yù)設(shè)時(shí)間對所述全閃存陣列的下層存儲(chǔ)介質(zhì)中存儲(chǔ)的元數(shù)據(jù)及元數(shù)據(jù)塊進(jìn)行全量備份。為了降低系統(tǒng)出現(xiàn)故障導(dǎo)致元數(shù)據(jù)丟失時(shí)進(jìn)行數(shù)據(jù)恢復(fù)的難度,每隔預(yù)設(shè)時(shí)間就對所述全閃存陣列的下層存儲(chǔ)介質(zhì)中存儲(chǔ)的元數(shù)據(jù)及元數(shù)據(jù)塊進(jìn)行全量備份。所述下層存儲(chǔ)介質(zhì)可以為固態(tài)硬盤等長期存儲(chǔ)介質(zhì)。具體地,參考圖3,所述每隔預(yù)設(shè)時(shí)間對所述全閃存陣列的下層存儲(chǔ)介質(zhì)中存儲(chǔ)的元數(shù)據(jù)及元數(shù)據(jù)塊進(jìn)行全量備份包括:s2011:設(shè)置全量備份標(biāo)簽;s2022:從所述全閃存陣列中存儲(chǔ)的元數(shù)據(jù)及元數(shù)據(jù)塊的開始位置以固定長度的數(shù)據(jù)段將元數(shù)據(jù)寫入所述全閃存陣列下層存儲(chǔ)介質(zhì)中,直至所述全閃存陣列中存儲(chǔ)的所有元數(shù)據(jù)及元數(shù)據(jù)塊全部下盤完成;s2023:取消所述全量備份標(biāo)簽。需要說明的是,所述固定長度可以為8字節(jié),也可以為12字節(jié),還可以為16字節(jié),本申請對所述固定長度的具體取值并不做限定,具體視實(shí)際情況而定。還需要說明的是,當(dāng)系統(tǒng)正在進(jìn)行全量備份的過程中,需要對元數(shù)據(jù)進(jìn)行修改時(shí),需要對需要進(jìn)行修改的元數(shù)據(jù)進(jìn)行重定向?qū)懙牟僮?。具體地,參考圖4,所述元數(shù)據(jù)存儲(chǔ)方法還包括:s301:在對元數(shù)據(jù)及元數(shù)據(jù)塊進(jìn)行全量備份,且接收到待修改元數(shù)據(jù)時(shí),根據(jù)所述待修改元數(shù)據(jù)的存儲(chǔ)參數(shù)確定與所述待修改元數(shù)據(jù)關(guān)聯(lián)的源元數(shù)據(jù),并根據(jù)所述待修改元數(shù)據(jù)的存儲(chǔ)參數(shù)對所述源元數(shù)據(jù)進(jìn)行重定向?qū)?。重定向?qū)?redirectonwrite,row)是指將原來的數(shù)據(jù)段拷貝到新的內(nèi)存位置,將拷貝的位置數(shù)據(jù)進(jìn)行修改,并修改對應(yīng)的該數(shù)據(jù)段類型,在內(nèi)存中重新建立關(guān)系的操作。在重定向?qū)懙倪^程中,在下盤時(shí)需要將之前未修改的數(shù)據(jù)段下盤,下盤完成后未修改的數(shù)據(jù)段內(nèi)存釋放,并將數(shù)據(jù)段類型修改到未修改寫的狀態(tài)。優(yōu)選的,在進(jìn)行全量備份的過程中,從所述全閃存陣列中存儲(chǔ)的元數(shù)據(jù)及元數(shù)據(jù)塊的開始位置以固定長度的數(shù)據(jù)段將元數(shù)據(jù)寫入所述全閃存陣列下層存儲(chǔ)介質(zhì)的固定位置中,以便全量備份數(shù)據(jù)的查找。在上述實(shí)施例的基礎(chǔ)上,在本申請的又一個(gè)實(shí)施例中,如圖5所示,所述元數(shù)據(jù)存儲(chǔ)方法還包括:s401:當(dāng)所述全閃存陣列的節(jié)點(diǎn)出現(xiàn)故障時(shí),讀取歷史最近一次全量備份的元數(shù)據(jù)及元數(shù)據(jù)塊;s402:對讀取的元數(shù)據(jù)及元數(shù)據(jù)塊進(jìn)行完整性校驗(yàn);s403:當(dāng)讀取的元數(shù)據(jù)及元數(shù)據(jù)塊完整時(shí),以歷史最近一次全量備份的起始時(shí)間點(diǎn)對元數(shù)據(jù)及元數(shù)據(jù)塊進(jìn)行重放,直至讀取的所有的元數(shù)據(jù)及元數(shù)據(jù)塊重放完成。需要說明的是,對元數(shù)據(jù)及元數(shù)據(jù)塊進(jìn)行完整性校驗(yàn)主要通過元數(shù)據(jù)和元數(shù)據(jù)塊中的校驗(yàn)碼(例如md5值等)進(jìn)行計(jì)算驗(yàn)證,具體校驗(yàn)過程已為本領(lǐng)域技術(shù)過程所熟知,本申請?jiān)诖瞬蛔鲑樖觥O旅鎸Ρ旧暾垖?shí)施例提供的元數(shù)據(jù)存儲(chǔ)系統(tǒng)進(jìn)行描述,下文描述的元數(shù)據(jù)存儲(chǔ)系統(tǒng)與上文描述的元數(shù)據(jù)存儲(chǔ)方法可相互對應(yīng)參照。一種元數(shù)據(jù)存儲(chǔ)系統(tǒng),應(yīng)用于全閃存陣列,如圖6所示,所述元數(shù)據(jù)存儲(chǔ)系統(tǒng)包括:接收模塊100,用于接收待修改元數(shù)據(jù);數(shù)據(jù)塊生成模塊200,用于根據(jù)所述待修改元數(shù)據(jù)的存儲(chǔ)參數(shù)生成元數(shù)據(jù)塊;下盤模塊300,用于將所述元數(shù)據(jù)塊寫入所述全閃存陣列的非易失性內(nèi)存中,并判斷所述非易失性內(nèi)存中存儲(chǔ)的元數(shù)據(jù)塊總長度是否大于或等于預(yù)設(shè)長度,如果是,則對所述非易失性內(nèi)存中存儲(chǔ)的元數(shù)據(jù)塊進(jìn)行下盤。在上述實(shí)施例的基礎(chǔ)上,在本申請的一個(gè)實(shí)施例中,所述待修改元數(shù)據(jù)的存儲(chǔ)參數(shù)包括:修改模式、存儲(chǔ)位置及修改值。在上述實(shí)施例的基礎(chǔ)上,在本申請的一個(gè)實(shí)施例中,如圖7所示,還包括:全量備份模塊400,用于每隔預(yù)設(shè)時(shí)間對所述全閃存陣列的下層存儲(chǔ)介質(zhì)中存儲(chǔ)的元數(shù)據(jù)及元數(shù)據(jù)塊進(jìn)行全量備份。在上述實(shí)施例的基礎(chǔ)上,在本申請的另一個(gè)實(shí)施例中,如圖8所示,還包括:重定向?qū)懩K500,用于在對元數(shù)據(jù)及元數(shù)據(jù)塊進(jìn)行全量備份,且接收到待修改元數(shù)據(jù)時(shí),根據(jù)所述待修改元數(shù)據(jù)的存儲(chǔ)參數(shù)確定與所述待修改元數(shù)據(jù)關(guān)聯(lián)的源元數(shù)據(jù),并根據(jù)所述待修改元數(shù)據(jù)的存儲(chǔ)參數(shù)對所述源元數(shù)據(jù)進(jìn)行重定向?qū)?。在上述?shí)施例的基礎(chǔ)上,在本申請的又一個(gè)實(shí)施例中,如圖9所示,還包括:所述全量備份模塊400包括:標(biāo)簽設(shè)置單元410,用于設(shè)置全量備份標(biāo)簽;寫入單元420,用于從所述全閃存陣列中存儲(chǔ)的元數(shù)據(jù)及元數(shù)據(jù)塊的開始位置以固定長度的數(shù)據(jù)段將元數(shù)據(jù)寫入所述全閃存陣列下層存儲(chǔ)介質(zhì)中,直至所述全閃存陣列中存儲(chǔ)的所有元數(shù)據(jù)及元數(shù)據(jù)塊全部下盤完成;標(biāo)簽取消單元430,用于取消所述全量備份標(biāo)簽。在上述實(shí)施例的基礎(chǔ)上,在本申請的再一個(gè)實(shí)施例中,如圖10所示,還包括:數(shù)據(jù)恢復(fù)模塊600,用于當(dāng)所述全閃存陣列的節(jié)點(diǎn)出現(xiàn)故障時(shí),讀取歷史最近一次全量備份的元數(shù)據(jù)及元數(shù)據(jù)塊;對讀取的元數(shù)據(jù)及元數(shù)據(jù)塊進(jìn)行完整性校驗(yàn);當(dāng)讀取的元數(shù)據(jù)及元數(shù)據(jù)塊完整時(shí),以歷史最近一次全量備份的起始時(shí)間點(diǎn)對元數(shù)據(jù)及元數(shù)據(jù)塊進(jìn)行重放,直至讀取的所有的元數(shù)據(jù)及元數(shù)據(jù)塊重放完成。綜上所述,本申請實(shí)施例提供了一種元數(shù)據(jù)存儲(chǔ)方法及系統(tǒng),其中,所述元數(shù)據(jù)存儲(chǔ)方法針對元數(shù)據(jù)的修改單元一般較小的特性,根據(jù)接收的待修改元數(shù)據(jù)的存儲(chǔ)參數(shù)生成元數(shù)據(jù)塊,并存儲(chǔ)于非易失性內(nèi)存中;然后當(dāng)非易失性內(nèi)存中存儲(chǔ)的元數(shù)據(jù)塊總長度大于或等于預(yù)設(shè)長度時(shí),將非易失性內(nèi)存中存儲(chǔ)的元數(shù)據(jù)塊進(jìn)行合并下盤的方式減少小塊數(shù)據(jù)的隨機(jī)寫操作對下層存儲(chǔ)介質(zhì)(固態(tài)硬盤)的性能影響,從而實(shí)現(xiàn)提升固態(tài)硬盤的性能,并提升固態(tài)硬盤的使用壽命的目的。本說明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見即可。對所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。當(dāng)前第1頁12