本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種元數(shù)據(jù)處理方法及裝置。
背景技術(shù):
目前,隨著閃存介質(zhì)產(chǎn)品在手機(jī)、平板、電視和手表等范圍的應(yīng)用越來越廣泛,閃存介質(zhì)產(chǎn)品的可靠性也變得非常重要。閃存介質(zhì)產(chǎn)品的可靠性主要指閃存介質(zhì)產(chǎn)品的文件系統(tǒng)的可靠性。閃存介質(zhì)產(chǎn)品的文件系統(tǒng)的數(shù)據(jù)分為元數(shù)據(jù)和數(shù)據(jù)本身。元數(shù)據(jù)(metadata),又稱中介數(shù)據(jù)或中繼數(shù)據(jù),是描述數(shù)據(jù)的數(shù)據(jù)(dataaboutdata),主要是描述數(shù)據(jù)屬性(property)的信息,例如超級(jí)塊,文件信息,映射表等關(guān)鍵數(shù)據(jù)。如果元數(shù)據(jù)損壞,不管文件系統(tǒng)的數(shù)據(jù)本身是否正確,數(shù)據(jù)都會(huì)變得不可用,因此,元數(shù)據(jù)的可靠性是閃存介質(zhì)產(chǎn)品的文件系統(tǒng)的可靠性的關(guān)鍵。
在現(xiàn)有技術(shù)中,閃存介質(zhì)產(chǎn)品的文件系統(tǒng)通常將元數(shù)據(jù)按順序存放。示例的,以第四代擴(kuò)展文件系統(tǒng)(英文全稱:fourthextendedfilesystem,英文簡稱:ext4)的索引節(jié)點(diǎn)(inode)為例說明,索引節(jié)點(diǎn)為元數(shù)據(jù)的一部分。如圖1所示,ext4的一個(gè)索引節(jié)點(diǎn)的大小為256字節(jié)(英文全稱:byte,英文簡稱:b),一個(gè)塊(block)的大小為4千字節(jié)(英文全稱:kibibyte,英文簡稱:kb),一個(gè)塊存放16個(gè)索引節(jié)點(diǎn)。其中,索引節(jié)點(diǎn)有需要頻繁刷新的,例如索引節(jié)點(diǎn)2和索引節(jié)點(diǎn)32;或者很少刷新或根本不會(huì)刷新的,例如,索引節(jié)點(diǎn)1等。由于元數(shù)據(jù)在文件系統(tǒng)中是關(guān)聯(lián)存儲(chǔ)的,因此,在刷新過程中,如果遇到異常情況,例如,突然斷電或電壓波動(dòng)等,整個(gè)塊的元數(shù)據(jù)可能損壞,導(dǎo)致塊上數(shù)據(jù)不一致,文件系統(tǒng)故障。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種元數(shù)據(jù)處理方法及裝置,通過隔離存儲(chǔ)元數(shù)據(jù),避免相互關(guān)聯(lián)的元數(shù)據(jù)間的相互影響,從而來提高元數(shù)據(jù)的可靠性。
上述目標(biāo)和其他目標(biāo)將通過獨(dú)立權(quán)利要求中的特征來達(dá)成。進(jìn)一步的實(shí)現(xiàn)方式在從屬權(quán)利要求、說明書和附圖中體現(xiàn)。
第一方面,提供一種元數(shù)據(jù)處理方法,包括:
在計(jì)算機(jī)開機(jī)以后,計(jì)算機(jī)需要持續(xù)地讀、寫或處理文件系統(tǒng)中的數(shù)據(jù),在計(jì)算機(jī)持續(xù)地讀、寫或處理文件系統(tǒng)中的數(shù)據(jù)中時(shí),首先,確定元數(shù)據(jù)滿足隔離存儲(chǔ)策略,所述元數(shù)據(jù)為文件系統(tǒng)中的任意一個(gè)元數(shù)據(jù),所述元數(shù)據(jù)存儲(chǔ)在所述文件系統(tǒng)的第一塊(block)中,所述第一塊為所述文件系統(tǒng)包括的任意一個(gè)非預(yù)留塊;然后,復(fù)制所述元數(shù)據(jù),將復(fù)制的所述元數(shù)據(jù)存儲(chǔ)到預(yù)留塊中;生成預(yù)留編號(hào),所述預(yù)留編號(hào)為存儲(chǔ)在所述預(yù)留塊中的復(fù)制的所述元數(shù)據(jù)的編號(hào);將所述預(yù)留編號(hào)存儲(chǔ)在所述第一塊中,以便于處理所述第一塊中的元數(shù)據(jù)時(shí)根據(jù)所述預(yù)留編號(hào)查找到復(fù)制的所述元數(shù)據(jù),處理復(fù)制的所述元數(shù)據(jù)。
上述第一方面提供的元數(shù)據(jù)處理方法,當(dāng)確定文件系統(tǒng)中的元數(shù)據(jù)滿足隔離存儲(chǔ)策略時(shí),通過復(fù)制所述元數(shù)據(jù),將復(fù)制的所述元數(shù)據(jù)存儲(chǔ)到預(yù)留塊中,同時(shí),生成存儲(chǔ)在所述預(yù)留塊中的復(fù)制的所述元數(shù)據(jù)的預(yù)留編號(hào),將所述預(yù)留編號(hào)存儲(chǔ)在存儲(chǔ)所述元數(shù)據(jù)的塊中,從而將文件系統(tǒng)中的元數(shù)據(jù)根據(jù)隔離存儲(chǔ)策略隔離存儲(chǔ),在處理元數(shù)據(jù)時(shí)根據(jù)預(yù)留編號(hào)查找到復(fù)制的所述元數(shù)據(jù),處理復(fù)制的所述元數(shù)據(jù),避免相互關(guān)聯(lián)的元數(shù)據(jù)間的相互影響,從而提高元數(shù)據(jù)的可靠性。
在第一方面的第一種可實(shí)現(xiàn)方式中,所述判斷元數(shù)據(jù)滿足隔離存儲(chǔ)策略包括:
判斷所述元數(shù)據(jù)的平均刷新次數(shù)大于門限值。
在第一方面的第二種可實(shí)現(xiàn)方式中,所述判斷元數(shù)據(jù)滿足隔離存儲(chǔ)策略包括:
判斷所述元數(shù)據(jù)為預(yù)先配置的需要隔離存儲(chǔ)的元數(shù)據(jù)。
結(jié)合第一方面、第一方面的第一種可實(shí)現(xiàn)方式至第一方面的第二種可實(shí)現(xiàn)方式中的任意一種,在第一方面的第三種可實(shí)現(xiàn)方式中,在將所述預(yù)留編號(hào)存儲(chǔ)在所述第一塊中之后,所述方法還包括:
當(dāng)對(duì)所述元數(shù)據(jù)進(jìn)行讀、寫或刪除操作時(shí),確定所述第一塊中包括所述預(yù)留編號(hào);根據(jù)所述預(yù)留編號(hào)查詢到所述預(yù)留塊中包括的復(fù)制的所述元數(shù)據(jù),對(duì)所述預(yù)留編號(hào)對(duì)應(yīng)的所述復(fù)制的所述元數(shù)據(jù)進(jìn)行讀、寫或刪除操作。
結(jié)合第一方面第三種可實(shí)現(xiàn)方式,在第一方面的第四種可實(shí)現(xiàn)方式中,所述預(yù)留編號(hào)為大于0的整數(shù)。
第二方面,提供一種元數(shù)據(jù)處理裝置,包括:判斷單元,用于確定元數(shù)據(jù)滿足隔離存儲(chǔ)策略,所述元數(shù)據(jù)為文件系統(tǒng)中的任意一個(gè)元數(shù)據(jù),所述元數(shù)據(jù)存儲(chǔ)在所述文件系統(tǒng)的第一塊中,所述第一塊為所述文件系統(tǒng)包括的任意一個(gè)非預(yù)留塊;處理單元,用于復(fù)制所述判斷單元確定的所述元數(shù)據(jù),將復(fù)制的所述元數(shù)據(jù)存儲(chǔ)到預(yù)留塊中;生成單元,用于生成預(yù)留編號(hào),所述預(yù)留編號(hào)為存儲(chǔ)在所述預(yù)留塊中的復(fù)制的所述元數(shù)據(jù)的編號(hào);所述處理單元,還用于將所述生成單元生成的所述預(yù)留編號(hào)存儲(chǔ)在所述第一塊中。具體的實(shí)現(xiàn)方式可以參考第一方面提供的元數(shù)據(jù)處理方法中的行為的功能。
需要說明的是,上述第二方面所述功能模塊可以通過硬件實(shí)現(xiàn),也可以通過硬件執(zhí)行相應(yīng)的軟件實(shí)現(xiàn)。所述硬件或軟件包括一個(gè)或多個(gè)與上述功能相對(duì)應(yīng)的模塊。例如,通信接口,用于完成接收單元和發(fā)送單元的功能,處理器,用于完成處理單元的功能。處理器、通信接口和存儲(chǔ)器通過總線連接并完成相互間的通信。具體的,可以參考第一方面提供的元數(shù)據(jù)處理方法中的行為的功能。
本發(fā)明中,元數(shù)據(jù)處理裝置的名字對(duì)設(shè)備本身不構(gòu)成限定,在實(shí)際實(shí)現(xiàn)中,這些設(shè)備可以以其他名稱出現(xiàn)。只要各個(gè)設(shè)備的功能和本發(fā)明類似,屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi)。
本發(fā)明的這些方面或其他方面在以下實(shí)施例的描述中會(huì)更加簡明易懂。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為現(xiàn)有技術(shù)提供的一種索引節(jié)點(diǎn)存儲(chǔ)示意圖;
圖2為本發(fā)明實(shí)施例提供的一種閃存介質(zhì)產(chǎn)品的邏輯結(jié)構(gòu)示意圖;
圖3為本發(fā)明實(shí)施例提供的一種計(jì)算機(jī)設(shè)備的硬件結(jié)構(gòu)示意圖;
圖4為本發(fā)明實(shí)施例提供的一種元數(shù)據(jù)處理方法流程圖;
圖5為本發(fā)明實(shí)施例提供的另一種元數(shù)據(jù)處理方法流程圖;
圖6為本發(fā)明實(shí)施例提供的一種索引節(jié)點(diǎn)存儲(chǔ)示意圖;
圖7為本發(fā)明實(shí)施例提供的一種元數(shù)據(jù)處理裝置結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚地描述。
本發(fā)明的基本原理在于:現(xiàn)有的閃存介質(zhì)產(chǎn)品的文件系統(tǒng)通常將元數(shù)據(jù)按順序存放,如果一個(gè)元數(shù)據(jù)損壞,將導(dǎo)致整個(gè)文件系統(tǒng)故障的情況下,本發(fā)明中當(dāng)確定文件系統(tǒng)中的元數(shù)據(jù)滿足隔離存儲(chǔ)策略時(shí),通過復(fù)制所述元數(shù)據(jù),將復(fù)制的所述元數(shù)據(jù)存儲(chǔ)到預(yù)留塊中,同時(shí),生成存儲(chǔ)在所述預(yù)留塊中的復(fù)制的所述元數(shù)據(jù)的預(yù)留編號(hào),將所述預(yù)留編號(hào)存儲(chǔ)在存儲(chǔ)所述元數(shù)據(jù)的塊中,也就是非預(yù)留塊中,從而實(shí)現(xiàn)將文件系統(tǒng)中的元數(shù)據(jù)根據(jù)隔離存儲(chǔ)策略隔離存儲(chǔ),在處理非預(yù)留塊中的元數(shù)據(jù)時(shí),根據(jù)預(yù)留編號(hào)在預(yù)留塊中查找到復(fù)制的所述元數(shù)據(jù),處理預(yù)留塊中包括的復(fù)制的所述元數(shù)據(jù),克服了處理非預(yù)留塊中的所述元數(shù)據(jù),避免元數(shù)據(jù)間的相互影響,從而提高元數(shù)據(jù)的可靠性。
下面將參考附圖詳細(xì)描述本發(fā)明的實(shí)施方式。
本發(fā)明實(shí)施例提供一種閃存介質(zhì)產(chǎn)品的邏輯結(jié)構(gòu)示意圖,如圖2所示,包括:應(yīng)用層(application)、系統(tǒng)會(huì)話層(systemcall)、虛擬文件系統(tǒng)層(vfs)、文件系統(tǒng)(filesystem)、設(shè)備驅(qū)動(dòng)(devicedriver)和閃存(flash)。其中,文件系統(tǒng)可以是ext3、ext4、閃存日志型文件系統(tǒng)第2版(英文全稱:journallingflashfilesystemversion2,英文簡稱:jffs2)和b-tree文件系統(tǒng)(brtfs)中的任意一種。
文件系統(tǒng),也稱為文件管理系統(tǒng),是計(jì)算機(jī)的操作系統(tǒng)中負(fù)責(zé)管理和存儲(chǔ)文件信息的軟件機(jī)構(gòu),也是在存儲(chǔ)設(shè)備上組織文件的方法。文件系統(tǒng)由三部分組成:文件系統(tǒng)的接口,對(duì)對(duì)象操縱和管理的軟件集合,對(duì)象及屬性。從系統(tǒng)角度來看,文件系統(tǒng)是對(duì)文件存儲(chǔ)設(shè)備的空間進(jìn)行組織和分配,負(fù)責(zé)文件存儲(chǔ)并對(duì)存入的文件進(jìn)行保護(hù)和檢索的系統(tǒng)。具體地說,它負(fù)責(zé)為用戶建立文件,存入、讀出、修改、轉(zhuǎn)儲(chǔ)文件,控制文件的存取,當(dāng)用戶不再使用時(shí)撤銷文件等。
如圖3所示,圖2中的閃存介質(zhì)產(chǎn)品可以以圖3中的計(jì)算機(jī)設(shè)備(或系統(tǒng))的方式來實(shí)現(xiàn)。
圖3所示為本發(fā)明實(shí)施例提供的計(jì)算機(jī)設(shè)備的硬件結(jié)構(gòu)示意圖。計(jì)算機(jī)設(shè)備100包括至少一個(gè)處理器101,通信總線102,存儲(chǔ)器103以及至少一個(gè)通信接口104。
處理器101可以是一個(gè)處理器,也可以是多個(gè)處理元件的統(tǒng)稱。例如,處理器101可以是一個(gè)通用中央處理器(英文全稱:centralprocessingunit,英文簡稱:cpu),也可以是特定應(yīng)用集成電路(英文全稱:application-specificintegratedcircuit,英文簡稱:asic),或一個(gè)或多個(gè)用于控制本發(fā)明方案程序執(zhí)行的集成電路,例如:一個(gè)或多個(gè)微處理器(英文全稱:digitalsignalprocessor,英文簡稱:dsp),或,一個(gè)或者多個(gè)現(xiàn)場可編程門陣列(英文全稱:fieldprogrammablegatearray,英文簡稱:fpga)。
在具體實(shí)現(xiàn)中,作為一種實(shí)施例,處理器101可以包括一個(gè)或多個(gè)cpu,例如圖3中的cpu0和cpu1。
在具體實(shí)現(xiàn)中,作為一種實(shí)施例,計(jì)算機(jī)設(shè)備100可以包括多個(gè)處理器,例如圖3中的處理器101和處理器105。這些處理器中的每一個(gè)可以是一個(gè)單核(single-cpu)處理器,也可以是一個(gè)多核(multi-cpu)處理器。這里的處理器可以指一個(gè)或多個(gè)設(shè)備、電路、和/或用于處理數(shù)據(jù)(例如計(jì)算機(jī)程序指令)的處理核。
通信總線102可以是工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(英文全稱:industrystandardarchitecture,英文簡稱:isa)總線、外部設(shè)備互連(英文全稱:peripheralcomponent,英文簡稱:pci)總線或擴(kuò)展工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(英文全稱:extendedindustrystandardarchitecture,英文簡稱:eisa)總線等。該總線可以分為地址總線、數(shù)據(jù)總線、控制總線等。為便于表示,圖3中僅用一條粗線表示,但并不表示僅有一根總線或一種類型的總線。
存儲(chǔ)器103可以是只讀存儲(chǔ)器(英文全稱:read-onlymemory,英文簡稱:rom)或可存儲(chǔ)靜態(tài)信息和指令的其他類型的靜態(tài)存儲(chǔ)設(shè)備,隨機(jī)存取存儲(chǔ)器(英文全稱:randomaccessmemory,英文簡稱:ram)或者可存儲(chǔ)信息和指令的其他類型的動(dòng)態(tài)存儲(chǔ)設(shè)備,也可以是電可擦可編程只讀存儲(chǔ)器(英文全稱:electricallyerasableprogrammableread-onlymemory,英文簡稱:eeprom)、只讀光盤(英文全稱:compactdiscread-onlymemory,英文簡稱:cd-rom)或其他光盤存儲(chǔ)、光碟存儲(chǔ)(包括壓縮光碟、激光碟、光碟、數(shù)字通用光碟、藍(lán)光光碟等)、磁盤存 儲(chǔ)介質(zhì)或者其他磁存儲(chǔ)設(shè)備、或者能夠用于攜帶或存儲(chǔ)具有指令或數(shù)據(jù)結(jié)構(gòu)形式的期望的程序代碼并能夠由計(jì)算機(jī)存取的任何其他介質(zhì),但不限于此。存儲(chǔ)器可以是獨(dú)立存在,通過總線與處理器相連接。存儲(chǔ)器也可以和處理器集成在一起。
其中,所述存儲(chǔ)器103用于存儲(chǔ)實(shí)現(xiàn)本發(fā)明實(shí)施例提供的方案的應(yīng)用程序代碼,并由處理器101來控制執(zhí)行。所述處理器101用于執(zhí)行所述存儲(chǔ)器103中存儲(chǔ)的應(yīng)用程序代碼以用于實(shí)現(xiàn)本發(fā)明實(shí)施例提供的方案。
所述通信接口104,使用任何收發(fā)器一類的裝置,用于與其他設(shè)備或通信網(wǎng)絡(luò)通信,如以太網(wǎng),無線接入網(wǎng)(ran),無線局域網(wǎng)(英文全稱:wirelesslocalareanetworks,英文簡稱:wlan)等。通信接口104可以包括接收單元實(shí)現(xiàn)接收功能,以及發(fā)送單元實(shí)現(xiàn)發(fā)送功能。
在具體實(shí)現(xiàn)中,作為一種實(shí)施例,圖3所示的計(jì)算機(jī)設(shè)備100可以是圖2中的閃存介質(zhì)產(chǎn)品。
處理器101,用于判斷元數(shù)據(jù)滿足隔離存儲(chǔ)策略;
所述處理器101,還用于復(fù)制所述元數(shù)據(jù),將復(fù)制的所述元數(shù)據(jù)存儲(chǔ)到預(yù)留塊中;
所述處理器101,還用于生成預(yù)留編號(hào);
所述處理器101,還用于將所述預(yù)留編號(hào)存儲(chǔ)在所述第一塊中。
存儲(chǔ)器103,用于存儲(chǔ)元數(shù)據(jù),以及復(fù)制的元數(shù)據(jù)。
通信接口104,用于閃存介質(zhì)產(chǎn)品與其他設(shè)備傳輸數(shù)據(jù)。
實(shí)施例1
本發(fā)明實(shí)施例提供一種元數(shù)據(jù)處理方法,如圖4所示,包括:
步驟201、確定元數(shù)據(jù)滿足隔離存儲(chǔ)策略。
需要說明的是,這里的元數(shù)據(jù)指的是文件系統(tǒng)中的任意一個(gè)元數(shù)據(jù)。也就是在進(jìn)行數(shù)據(jù)處理時(shí),文件系統(tǒng)中的任意一個(gè)元數(shù)據(jù)都需要進(jìn)行判斷,判斷是否滿足隔離存儲(chǔ)策略,來執(zhí)行步驟202至步驟204,以便于將不同的元數(shù)據(jù)隔離存儲(chǔ)。元數(shù)據(jù)可以存儲(chǔ)在所述文件系統(tǒng)的第一塊(block)中,所述第一塊為所述文件系統(tǒng)包括的任意一個(gè)非預(yù)留塊。這里的“第一”只是用于區(qū)分不同的塊,并不是指第一個(gè)塊,本發(fā)明對(duì)此不作限定。
步驟202、復(fù)制元數(shù)據(jù),將復(fù)制的元數(shù)據(jù)存儲(chǔ)到預(yù)留塊中。
復(fù)制滿足隔離存儲(chǔ)策略的元數(shù)據(jù),將復(fù)制的所述元數(shù)據(jù)存儲(chǔ)到文件系統(tǒng)的預(yù)留塊中。這里的預(yù)留塊指的是空閑的,沒有存儲(chǔ)元數(shù)據(jù)的塊。
步驟203、生成預(yù)留編號(hào)。
所述預(yù)留編號(hào)為存儲(chǔ)在所述預(yù)留塊中的復(fù)制的所述元數(shù)據(jù)的編號(hào)。所述預(yù)留編號(hào)為大于0的整數(shù)。
步驟204、將預(yù)留編號(hào)存儲(chǔ)在第一塊中。
也就是將預(yù)留編號(hào)存儲(chǔ)在存儲(chǔ)元數(shù)據(jù)的非預(yù)留塊中,無需刪除存儲(chǔ)在第一塊中的元數(shù)據(jù)。
這樣一來,當(dāng)確定文件系統(tǒng)中的元數(shù)據(jù)滿足隔離存儲(chǔ)策略時(shí),通過復(fù)制所述元數(shù)據(jù),將復(fù)制的所述元數(shù)據(jù)存儲(chǔ)到預(yù)留塊中,同時(shí),生成存儲(chǔ)在所述預(yù)留塊中的復(fù)制的所述元數(shù)據(jù)的預(yù)留編號(hào),將所述預(yù)留編號(hào)存儲(chǔ)在存儲(chǔ)所述元數(shù)據(jù)的塊中,也就是非預(yù)留塊中,從而實(shí)現(xiàn)將文件系統(tǒng)中的元數(shù)據(jù)根據(jù)隔離存儲(chǔ)策略隔離存儲(chǔ),在處理非預(yù)留塊中的元數(shù)據(jù)時(shí),根據(jù)預(yù)留編號(hào)在預(yù)留塊中查找到復(fù)制的所述元數(shù)據(jù),處理預(yù)留塊中包括的復(fù)制的所述元數(shù)據(jù),克服了處理非預(yù)留塊中的所述元數(shù)據(jù),避免元數(shù)據(jù)間的相互影響,從而提高元數(shù)據(jù)的可靠性。
上述圖4所示的方法步驟具體的可以由圖3所示的計(jì)算機(jī)設(shè)備實(shí)現(xiàn)。示例的,步驟201所述的判斷元數(shù)據(jù)滿足隔離存儲(chǔ)策略等方法步驟都可以由處理器101來實(shí)現(xiàn)。
進(jìn)一步的,如圖5所示,步驟201所述的判斷元數(shù)據(jù)滿足隔離存儲(chǔ)策略具體的可以由步驟201a或步驟201b實(shí)現(xiàn),具體的如下詳細(xì)步驟所述:
步驟201a、確定元數(shù)據(jù)的平均刷新次數(shù)大于門限值。
這里的平均刷新次數(shù)指的是每次開機(jī)使用元數(shù)據(jù)的過程中刷新元數(shù)據(jù)的次數(shù)的平均值。
步驟201b、確定元數(shù)據(jù)為預(yù)先配置的需要隔離存儲(chǔ)的元數(shù)據(jù)。
預(yù)先配置可以是用戶根據(jù)需要隔離存儲(chǔ)的元數(shù)據(jù)的需求配置的。
在步驟204所述的將所述預(yù)留編號(hào)存儲(chǔ)在所述第一塊中之后,可以對(duì)所述元數(shù)據(jù)進(jìn)行處理,所述處理可以是讀元數(shù)據(jù)、寫元數(shù)據(jù)或者刪除元數(shù)據(jù)。具體如以下詳細(xì)步驟所述:
步驟205、確定第一塊中包括預(yù)留編號(hào)。
步驟206、根據(jù)預(yù)留編號(hào)查詢到預(yù)留塊中包括的復(fù)制的所述元數(shù)據(jù),處理所述復(fù)制的所述元數(shù)據(jù)。
需要說明的是,確定第一塊中沒有包括預(yù)留編號(hào),直接處理元數(shù)據(jù)。
根據(jù)隔離存儲(chǔ)策略將元數(shù)據(jù)進(jìn)行隔離存儲(chǔ),提高元數(shù)據(jù)的可靠性,減 少文件系統(tǒng)故障的概率。將元數(shù)據(jù)進(jìn)行隔離存儲(chǔ)后,在刷新隔離存儲(chǔ)的元數(shù)據(jù)過程中,即使遇到異常情況,也只會(huì)損壞隔離存儲(chǔ)的元數(shù)據(jù),不會(huì)影響到其他元數(shù)據(jù)。通常,頻繁刷新的元數(shù)據(jù)一般不是系統(tǒng)重要數(shù)據(jù),損壞也不會(huì)導(dǎo)致系統(tǒng)故障;而很少刷新或不刷新的元數(shù)據(jù)一般是系統(tǒng)關(guān)鍵數(shù)據(jù),在將頻繁刷新的元數(shù)據(jù)進(jìn)行隔離存儲(chǔ)后,很少刷新或不刷新的元數(shù)據(jù)得到保護(hù)不會(huì)被破壞。
示例的,如圖1所示,隔離存儲(chǔ)前的索引節(jié)點(diǎn)存儲(chǔ)示意圖,圖1中所述的組(group)1中的索引節(jié)點(diǎn)2和索引節(jié)點(diǎn)32為需要頻繁刷新的索引節(jié)點(diǎn)。如圖6所示,隔離存儲(chǔ)后的索引節(jié)點(diǎn)存儲(chǔ)示意圖,當(dāng)索引節(jié)點(diǎn)2和索引節(jié)點(diǎn)32滿足隔離存儲(chǔ)策略,生成伙伴索引節(jié)點(diǎn)2和伙伴索引節(jié)點(diǎn)32,將伙伴索引節(jié)點(diǎn)2和伙伴索引節(jié)點(diǎn)32存儲(chǔ)到組n的塊中,并將伙伴索引節(jié)點(diǎn)2和伙伴索引節(jié)點(diǎn)32在組n的塊中的編號(hào)存儲(chǔ)到組1中的索引節(jié)點(diǎn)2和索引節(jié)點(diǎn)32中。塊n為預(yù)留塊。
當(dāng)讀或?qū)懰饕?jié)點(diǎn)2時(shí),首先找到組1中的索引節(jié)點(diǎn)2,檢查組1中的索引節(jié)點(diǎn)2的結(jié)構(gòu)中是否有伙伴索引節(jié)點(diǎn)2的編號(hào),如果沒有,說明還不需要隔離存放索引節(jié)點(diǎn)2,直接讀或?qū)懡M1中的索引節(jié)點(diǎn)2;如果有伙伴索引節(jié)點(diǎn)2的編號(hào),使用伙伴索引節(jié)點(diǎn)2的編號(hào)查找到組n的塊中伙伴索引節(jié)點(diǎn)2,對(duì)伙伴索引節(jié)點(diǎn)2進(jìn)行讀或?qū)憽?/p>
當(dāng)刪除索引節(jié)點(diǎn)2時(shí),在刪除索引節(jié)點(diǎn)2之前,檢查組1中的索引節(jié)點(diǎn)2的結(jié)構(gòu)中是否有伙伴索引節(jié)點(diǎn)2的編號(hào),如果沒有,直接刪除組1中的索引節(jié)點(diǎn)2;如果有伙伴索引節(jié)點(diǎn)2的編號(hào),使用伙伴索引節(jié)點(diǎn)2的編號(hào)查找到組n的塊中伙伴索引節(jié)點(diǎn)2,刪除組n的塊中伙伴索引節(jié)點(diǎn)2,再刪除組1中的索引節(jié)點(diǎn)2。
同理,索引節(jié)點(diǎn)32也可以按照處理索引節(jié)點(diǎn)2的方法處理索引節(jié)點(diǎn)32。
這樣一來,對(duì)系統(tǒng)修改在于通過真實(shí)的索引節(jié)點(diǎn)映射到伙伴索引節(jié)點(diǎn),伙伴索引節(jié)點(diǎn)成為頻繁刷新的索引節(jié)點(diǎn),真實(shí)索引節(jié)點(diǎn)變成不刷新的索引節(jié)點(diǎn),從而實(shí)現(xiàn)隔離功能,避免元數(shù)據(jù)間的相互影響,提高元數(shù)據(jù)的可靠性。
上述圖5所示的方法步驟具體的可以由圖3所示的計(jì)算機(jī)設(shè)備實(shí)現(xiàn)。
實(shí)施例2
本發(fā)明實(shí)施例提供一種元數(shù)據(jù)處理裝置30,如圖7所示,包括:
判斷單元301,用于確定元數(shù)據(jù)滿足隔離存儲(chǔ)策略,所述元數(shù)據(jù)為文件系統(tǒng)中的任意一個(gè)元數(shù)據(jù),所述元數(shù)據(jù)存儲(chǔ)在所述文件系統(tǒng)的第一塊block中,所述第一塊為所述文件系統(tǒng)包括的任意一個(gè)非預(yù)留塊;
處理單元302,用于復(fù)制所述判斷單元301確定的所述元數(shù)據(jù),將復(fù)制的所述元數(shù)據(jù)存儲(chǔ)到預(yù)留塊中;
生成單元303,用于生成預(yù)留編號(hào),所述預(yù)留編號(hào)為存儲(chǔ)在所述預(yù)留塊中的復(fù)制的所述元數(shù)據(jù)的編號(hào);
所述處理單元302,還用于將所述生成單元303生成的所述預(yù)留編號(hào)存儲(chǔ)在所述第一塊中。
這樣一來,當(dāng)確定文件系統(tǒng)中的元數(shù)據(jù)滿足隔離存儲(chǔ)策略時(shí),通過復(fù)制所述元數(shù)據(jù),將復(fù)制的所述元數(shù)據(jù)存儲(chǔ)到預(yù)留塊中,同時(shí),生成存儲(chǔ)在所述預(yù)留塊中的復(fù)制的所述元數(shù)據(jù)的預(yù)留編號(hào),將所述預(yù)留編號(hào)存儲(chǔ)在存儲(chǔ)所述元數(shù)據(jù)的塊中,也就是非預(yù)留塊中,從而實(shí)現(xiàn)將文件系統(tǒng)中的元數(shù)據(jù)根據(jù)隔離存儲(chǔ)策略隔離存儲(chǔ),在處理非預(yù)留塊中的元數(shù)據(jù)時(shí),根據(jù)預(yù)留編號(hào)在預(yù)留塊中查找到復(fù)制的所述元數(shù)據(jù),處理預(yù)留塊中包括的復(fù)制的所述元數(shù)據(jù),克服了處理非預(yù)留塊中的所述元數(shù)據(jù),避免元數(shù)據(jù)間的相互影響,從而提高元數(shù)據(jù)的可靠性。
在本實(shí)施例中,元數(shù)據(jù)處理裝置30是以功能單元的形式來呈現(xiàn)。這里的“單元”可以指特定應(yīng)用集成電路(英文全稱:application-specificintegratedcircuit,英文簡稱:asic),執(zhí)行一個(gè)或多個(gè)軟件或固件程序的處理器和存儲(chǔ)器,集成邏輯電路,和/或其他可以提供上述功能的器件。在一個(gè)簡單的實(shí)施例中,本領(lǐng)域的技術(shù)人員可以想到元數(shù)據(jù)處理裝置30可以采用圖7所示的形式。判斷單元301,處理單元302和生成單元303可以通過圖3的計(jì)算機(jī)設(shè)備來實(shí)現(xiàn),具體的,判斷單元301,處理單元302和生成單元303可以由處理器101實(shí)現(xiàn)。
本發(fā)明實(shí)施例還提供了一種計(jì)算機(jī)存儲(chǔ)介質(zhì),用于儲(chǔ)存為上述圖5所示的元數(shù)據(jù)處理裝置所用的計(jì)算機(jī)軟件指令,其包含用于執(zhí)行上述方法實(shí)施例所設(shè)計(jì)的程序。通過執(zhí)行存儲(chǔ)的程序,可以處理元數(shù)據(jù)。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的裝置和單元的具體工作過程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過程,在此不再贅述。另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理包括,也可以兩個(gè)或兩個(gè) 以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:只讀存儲(chǔ)器(英文全稱:read-onlymemory,英文簡稱:rom)、隨機(jī)存取存儲(chǔ)器(英文全稱:random-accessmemory,英文簡稱:ram)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。