本發(fā)明涉及固態(tài)硬盤(pán)元數(shù)據(jù)管理領(lǐng)域,特別是涉及一種構(gòu)建丟失的ftltable的方法及裝置。
背景技術(shù):
::ftltable是ssd盤(pán)中最重要的元數(shù)據(jù)信息之一,記錄了lba到ppa的映射關(guān)系。ftltable通常是在服務(wù)器關(guān)機(jī),ssd盤(pán)下電流程中寫(xiě)入flash,在服務(wù)器重啟,ssd盤(pán)上電時(shí)讀取ftltable,而上電時(shí)間是ssd盤(pán)的一個(gè)重要指標(biāo)之一。但是當(dāng)遇到服務(wù)器異常掉電或者突發(fā)性的故障時(shí),導(dǎo)致ftltable未能寫(xiě)入flash,或者服務(wù)器重啟,ssd上電時(shí)讀取ftltable出錯(cuò)并無(wú)法恢復(fù)時(shí),就需要重新構(gòu)建ftltable。ssd盤(pán)做深度重建的傳統(tǒng)做法是通過(guò)讀取每個(gè)ppa的數(shù)據(jù)利用oob中記錄的lba來(lái)恢復(fù)重建ftltable,該方法流程雖然簡(jiǎn)單清晰,但是耗費(fèi)的時(shí)間非常的長(zhǎng),這對(duì)ssd盤(pán)的性能產(chǎn)生了很大的負(fù)面影響。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的是提供一種構(gòu)建丟失的ftltable的方法,解決了服務(wù)器啟動(dòng)時(shí),ssd讀取ftltable失敗時(shí),重新構(gòu)建ftltable導(dǎo)致ssd盤(pán)上電時(shí)間過(guò)長(zhǎng)的問(wèn)題,縮短了重構(gòu)ftltable所耗費(fèi)的時(shí)間,提高了ssd盤(pán)的性能,本發(fā)明還提供了一種構(gòu)建丟失的ftltable的裝置。為解決上述技術(shù)問(wèn)題,本發(fā)明提供一種構(gòu)建丟失的ftltable的方法,該方法包括:讀取在block中的預(yù)先存儲(chǔ)的反向信息,其中,所述反向信息為根據(jù)各個(gè)ppa的標(biāo)識(shí)信息記錄各個(gè)所述ppa對(duì)應(yīng)的lba的反向信息;根據(jù)所述ppa的標(biāo)識(shí)信息,判斷所述ppa是否存在對(duì)應(yīng)的所述反向信息,如果是,則在所述反向信息中查找所述ppa對(duì)應(yīng)的lba,確定所述lba到所述ppa的映射關(guān)系;根據(jù)所述映射關(guān)系構(gòu)建ftltable。其中,所述標(biāo)識(shí)信息為根據(jù)各個(gè)ppa在所述block中的位置順序,確定的各個(gè)ppa位置的序列號(hào)信息;所述根據(jù)各個(gè)ppa的標(biāo)識(shí)信息記錄各個(gè)所述ppa對(duì)應(yīng)的lba的反向信息包括:按照在所述block中各個(gè)所述ppa的位置順序,依次記錄各個(gè)所述ppa對(duì)應(yīng)的lba的反向信息。其中,判斷所述ppa是否存在所述ppa對(duì)應(yīng)的所述反向信息包括:根據(jù)所述標(biāo)識(shí)信息,判斷在所述block中是否存在所述ppa對(duì)應(yīng)的所述反向信息,其中,所述反向信息在所述block中的存儲(chǔ)位置為根據(jù)各個(gè)所述ppa的位置順序,選取存儲(chǔ)所述反向信息的位置。其中,所述反向信息為反向表,且所述反向表的大小不超過(guò)一個(gè)sector存儲(chǔ)空間的大小。其中,根據(jù)所述ppa的標(biāo)識(shí)信息,判斷在所述block中是否存在存儲(chǔ)所述ppa對(duì)應(yīng)的lba的所述反向信息包括:如果在所述block中不存在所述ppa對(duì)應(yīng)的所述反向信息,則在所述ppa中讀取所述ppa對(duì)應(yīng)的lba。其中,在根據(jù)所述映射關(guān)系構(gòu)建ftltable之后還包括:判斷是否各個(gè)所述block中的所述反向信息均讀取完成,如果否,則再次執(zhí)行讀取在block中的預(yù)先存儲(chǔ)的反向信息的操作。本發(fā)明還提供了一種構(gòu)建丟失的ftltable的裝置,包括:讀取模塊,用于讀取在block中的預(yù)先存儲(chǔ)的反向信息,其中,所述反向信息為根據(jù)各個(gè)ppa的標(biāo)識(shí)信息記錄各個(gè)所述ppa對(duì)應(yīng)的lba的反向信息;判斷查找模塊,用于根據(jù)所述ppa的標(biāo)識(shí)信息,判斷所述ppa是否存在對(duì)應(yīng)的所述反向信息,如果是,則在所述反向信息中查找所述ppa對(duì)應(yīng)的lba,確定所述lba到所述ppa的映射關(guān)系;重建模塊,用于根據(jù)所述映射關(guān)系構(gòu)建ftltable。其中,所述判斷查詢模塊包括:記錄單元,用于按照在所述block中各個(gè)所述ppa的位置順序,依次記錄各個(gè)所述ppa對(duì)應(yīng)的lba的反向信息;按照在所述block中各個(gè)所述ppa的位置順序,依次記錄各個(gè)所述ppa對(duì)應(yīng)的lba的反向信息;查找單元,用于根據(jù)在所述block中各個(gè)所述ppa的位置順序,查找所述ppa在所述反向信息中對(duì)應(yīng)的lba。其中,所述判斷查詢模塊包括:判斷單元,用于根據(jù)所述標(biāo)識(shí)信息,判斷在所述block中是否存在所述ppa對(duì)應(yīng)的所述反向信息,其中,所述反向信息在所述block中的存儲(chǔ)位置為根據(jù)各個(gè)所述ppa的位置順序,選取存儲(chǔ)所述反向信息的位置。其中,所述判斷單元用于如果在所述block中不存在所述ppa對(duì)應(yīng)的所述反向信息,則在所述ppa中讀取所述ppa對(duì)應(yīng)的lba。本發(fā)明所提供的一種深度構(gòu)建丟失的ftltable的方法,通過(guò)在block中的ppa寫(xiě)入lba時(shí),建立一個(gè)記錄各個(gè)ppa對(duì)應(yīng)的lba的反向信息,在服務(wù)器突然斷電或故障導(dǎo)致ftltable丟失時(shí),可以通過(guò)查詢反向信息即可獲得lba到ppa的映射關(guān)系,從而重新構(gòu)建ftltable,相對(duì)于現(xiàn)有的逐個(gè)讀取ppa,利用oob中記錄的lba,獲取lba到ppa的映射關(guān)系,本發(fā)明只需讀取反向信息即可獲得各個(gè)ppa對(duì)應(yīng)的lba,極大的減少了獲取lba到ppa的映射關(guān)系所耗費(fèi)的時(shí)間,從而縮短構(gòu)建ftltable的時(shí)間,在ssd盤(pán)上電時(shí),讀取ftltable失敗時(shí),能夠較為迅速的重新構(gòu)建ftltable,從而縮短ssd盤(pán)的上電時(shí)間,提高ssd盤(pán)的使用性能,進(jìn)而提高保證服務(wù)器的對(duì)元數(shù)據(jù)的管理性能。本發(fā)明還提供了一種深度構(gòu)建丟失的ftltable的裝置,具有上述有益效果。附圖說(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為本發(fā)明提供的構(gòu)建丟失的ftltable的一種具體實(shí)施方式流程圖;圖2為本發(fā)明提供的構(gòu)建丟失的ftltable的另一種具體實(shí)施方式流程圖;圖3為本發(fā)明實(shí)施例提供的構(gòu)建丟失的ftltable的裝置的結(jié)構(gòu)框圖。具體實(shí)施方式為了使本
技術(shù)領(lǐng)域:
:的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明。顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明提供的構(gòu)建丟失的ftltable的一種具體實(shí)施方式流程圖如圖1所示,該方法可以包括:步驟s101:讀取在block中的預(yù)先存儲(chǔ)的反向信息。具體的,該反向信息可以是在ppa中寫(xiě)入lba的同時(shí),根據(jù)各個(gè)ppa的標(biāo)識(shí)信息記錄的各個(gè)ppa對(duì)應(yīng)的lba的反向信息。但是,反向信息不一定必須是在ppa中寫(xiě)入lba的同時(shí),立即記錄并存儲(chǔ)反向信息,只要在重新構(gòu)建ftltable之前記錄即可,但是為了避免服務(wù)器突然斷電或發(fā)生其他故障,導(dǎo)致記錄并存儲(chǔ)反向信息失敗,從而無(wú)法根據(jù)反向信息構(gòu)建ftltable,比較優(yōu)選的方案是在ppa中寫(xiě)入lba時(shí),就及時(shí)的記錄并存儲(chǔ)對(duì)應(yīng)的反向信息。步驟s102:根據(jù)所述ppa的標(biāo)識(shí)信息,判斷所述ppa是否存在對(duì)應(yīng)的所述反向信息。因?yàn)榉聪蛐畔⑹歉鶕?jù)ppa的標(biāo)識(shí)信息來(lái)記錄ppa對(duì)應(yīng)的lba,所以該標(biāo)識(shí)信息必然和記錄有ppa對(duì)應(yīng)的lba的反向信息存在必然的聯(lián)系,根據(jù)這樣的聯(lián)系就能夠查找并確定每個(gè)ppa是否存在對(duì)應(yīng)的反向信息。步驟s103:如果所述ppa存在對(duì)應(yīng)的所述反向信息,則在所述反向信息中查找所述ppa對(duì)應(yīng)的lba,確定所述lba到所述ppa的映射關(guān)系。步驟s104:根據(jù)所述映射關(guān)系構(gòu)建ftltable。需要說(shuō)明的是,ftltable記錄的是lba到ppa的映射關(guān)系,是一種根據(jù)lba查找對(duì)應(yīng)的ppa的信息,它的作用類(lèi)似于賓館前臺(tái)的登記手冊(cè),登記著房客入住的在哪個(gè)房間,當(dāng)要去賓館找人時(shí),只需要告知房客姓名即可通過(guò)查詢登記手冊(cè)找到房客入住的房間。ftltable的保存通常是在ssd盤(pán)下電流程中進(jìn)行的,但是一旦遇到服務(wù)器異常掉電,未能將ftltable寫(xiě)入flash,或者是ftltable出錯(cuò)并無(wú)法恢復(fù),在ssd盤(pán)上電過(guò)程中,將無(wú)法直接讀取ftltable,只能重新構(gòu)建ftltable?,F(xiàn)有的重新構(gòu)建ftltable的方式是逐個(gè)讀取ppa中的lba,確定lba到ppa的映射關(guān)系,類(lèi)似于逐個(gè)去敲每個(gè)房間的門(mén),最終確定每個(gè)房間內(nèi)的入住的房客,這個(gè)方式流程雖然簡(jiǎn)單,但是由于整個(gè)ftltable中涉及到ppa數(shù)量非常多,逐個(gè)讀取ppa的過(guò)程十分耗費(fèi)時(shí)間,而ssd的上電時(shí)間直接影響著ssd盤(pán)的性能,甚至某些具體的應(yīng)用場(chǎng)景中ssd盤(pán)對(duì)上電時(shí)間有嚴(yán)格的要求,例如,ssd做啟動(dòng)盤(pán),如果ssd上電時(shí)間過(guò)長(zhǎng)將直接影響服務(wù)器的啟動(dòng)。為解決上述問(wèn)題,本發(fā)明中,在ppa中寫(xiě)入lba的同時(shí)記錄并存儲(chǔ)有反向信息,而反向信息之所以稱之為反向信息是因?yàn)橛涗浀氖莗pa對(duì)應(yīng)的lba的信息,是一種根據(jù)ppa查找對(duì)應(yīng)的ppa的信息。在記錄lba和ppa之間的對(duì)應(yīng)關(guān)系時(shí),之所以沒(méi)有直接記錄lba到ppa的映射關(guān)系,是因?yàn)閘ba寫(xiě)入ppa時(shí),是按照ppa在block中的位置逐個(gè)依次寫(xiě)入,直接記錄ppa對(duì)應(yīng)的lba更為簡(jiǎn)單方便,便于數(shù)據(jù)管理,但這并不是實(shí)現(xiàn)本發(fā)明的目的的唯一實(shí)施方式,直接在ppa寫(xiě)入lba時(shí)記錄lba到ppa的映射關(guān)系,也可以實(shí)現(xiàn)本發(fā)明的目的,總之只要能夠記錄lba和ppa之間的聯(lián)系,并能夠通過(guò)這種聯(lián)系迅速的確定lba到ppa的映射關(guān)系即可,以便根據(jù)映射關(guān)系快速重新構(gòu)建ftltable,而不需要逐個(gè)讀取ppa中的lba來(lái)建立ftltable,從而縮短ftltable重建所耗費(fèi)的時(shí)間。基于上述實(shí)施例,由于lba是按照block中ppa的位置順序依次寫(xiě)入的,為了簡(jiǎn)化流程,反向信息記錄ppa對(duì)應(yīng)的lba也可以根據(jù)ppa在block中的位置順序進(jìn)行記錄。本發(fā)明的另一具體實(shí)施例中,可以包括:所述標(biāo)識(shí)信息為根據(jù)各個(gè)ppa在所述block中的位置順序,確定的各個(gè)ppa位置的序列號(hào)信息;所述根據(jù)各個(gè)ppa的標(biāo)識(shí)信息記錄各個(gè)所述ppa對(duì)應(yīng)的lba的反向信息可以進(jìn)一步改進(jìn),具體為按照在所述block中各個(gè)所述ppa的位置順序,依次記錄各個(gè)所述ppa對(duì)應(yīng)的lba的反向信息。具體的可以是,例如block中第一個(gè)ppa對(duì)應(yīng)的lba存儲(chǔ)在反向信息中第一個(gè)存儲(chǔ)空間,第二個(gè)ppa對(duì)應(yīng)的lba存儲(chǔ)在反向信息的第二個(gè)存儲(chǔ)空間,以此類(lèi)推,各個(gè)ppa在block中的位置順序,即為對(duì)應(yīng)的lba在反向信息中的存儲(chǔ)空間的順序。當(dāng)然這只是實(shí)現(xiàn)本發(fā)明的一種具體的實(shí)施方式,并不是本發(fā)明的必要技術(shù)特征,例如,還可以是block中序列號(hào)為第四、五、六個(gè)的ppa,對(duì)應(yīng)的lba依次存儲(chǔ)在反向信息中第一、第二、第三個(gè)存儲(chǔ)空間內(nèi),也能夠?qū)崿F(xiàn)本發(fā)明的技術(shù)方案,與此想類(lèi)似的實(shí)施方式,在此不一一贅述?;谏鲜鰧?shí)施例,考慮到服務(wù)器突然斷電,而存在部分ppa對(duì)應(yīng)的lba未能及時(shí)存儲(chǔ),在查找ppa對(duì)應(yīng)的lba之前需要確定block中是否存在ppa對(duì)應(yīng)的反向信息,本發(fā)明的另一具體題實(shí)施例中,可以包括:根據(jù)所述標(biāo)識(shí)信息,判斷在所述block中是否存在所述ppa對(duì)應(yīng)的所述反向信息,其中,所述反向信息在所述block中的存儲(chǔ)位置為根據(jù)各個(gè)所述ppa的位置順序,選取存儲(chǔ)所述反向信息的位置。具體的,每個(gè)block中有多份反向信息,在存儲(chǔ)的反向信息時(shí),一般按照ppa在block中的位置順序存儲(chǔ),例如第一份反向信息是記錄了序列號(hào)為1、2、3的ppa對(duì)應(yīng)的lba,第二份反向信息是記錄了序列號(hào)為4、5、6的ppa對(duì)應(yīng)的lba,那么第一份反向信息存儲(chǔ)在第一存儲(chǔ)空間,而第二份反向表存儲(chǔ)在第二存儲(chǔ)空間,根據(jù)這樣的存儲(chǔ)順序之間的聯(lián)系,很容易查找到ppa對(duì)應(yīng)的反向信息。另外,反向信息存儲(chǔ)的位置還和每份反向信息所需要占用的存儲(chǔ)空間有關(guān),例如序列號(hào)為1至6的序列號(hào)的ppa對(duì)應(yīng)的lba記錄在第一份反向信息中,而第二份反向信息記錄的是序列號(hào)為7、8、9的ppa對(duì)應(yīng)lba,但是存儲(chǔ)第一份反向信息需要第一存儲(chǔ)空間和第二存儲(chǔ)空間,則第二份反向信息的位置只能是在第三存儲(chǔ)空間了。當(dāng)然,這僅僅是本發(fā)明的一種具體存儲(chǔ)方式,也可以直接將反向信息和ppa選取相應(yīng)的標(biāo)識(shí),根據(jù)標(biāo)識(shí)查找ppa對(duì)應(yīng)的反向信息,也能實(shí)現(xiàn)本發(fā)明的技術(shù)方案,所以這并不是本發(fā)明的必要技術(shù)特征。基于上述實(shí)施例,本發(fā)明另一具體實(shí)施例中,可以包括:所述反向信息為反向表,且所述反向表的大小不超過(guò)一個(gè)sector存儲(chǔ)空間的大小。需要說(shuō)明的是,反向表只是存儲(chǔ)ppa對(duì)應(yīng)的lba的一種具體的形式,也可以是類(lèi)似的其他形式,都不影響本發(fā)明的實(shí)現(xiàn)。另外,反向表最終存儲(chǔ)在flash中,而ssd對(duì)flash最小的管理單位是一個(gè)sector,如果反向表的大小遠(yuǎn)小于一個(gè)sector,而該sector中多余的空間不能再存儲(chǔ)其他數(shù)據(jù),就會(huì)造成空間的浪費(fèi),如果反向表的大小是sector的整數(shù)倍,反向表需要記錄的lba就越多,而反向表只有在記錄完需要記錄的ppa對(duì)應(yīng)的lba后,才會(huì)存儲(chǔ)至對(duì)應(yīng)的存儲(chǔ)空間,在服務(wù)器突然斷電時(shí),未寫(xiě)入flash的反向表內(nèi)的lba就越多,在重新構(gòu)建ftltable時(shí),需要逐個(gè)讀取ppa中的lba的數(shù)量就會(huì)越多,從而影響重新構(gòu)建的效率,因此較為優(yōu)選的實(shí)施方式是反向表的大小和sector的存儲(chǔ)空間相同,但是反向表的大小遠(yuǎn)小于sector的存儲(chǔ)空間也能夠保證快速獲取lba到ppa的映射關(guān)系,只是可能存在存儲(chǔ)空間的浪費(fèi),所以這并不是實(shí)現(xiàn)本發(fā)明的必要技術(shù)特征。此外,當(dāng)反向表的大小和sector的大小相同時(shí),一個(gè)sector的大小一般是4kb,而4kb大小反向表可以存儲(chǔ)1024個(gè)ppa對(duì)應(yīng)的lba,而1024個(gè)sector中,僅僅需要一個(gè)sector用來(lái)存儲(chǔ)反向表,因此,反向表在flash中占用的空間非常少,可以直接劃定某幾個(gè)sector用以存儲(chǔ)反向表,在查找的時(shí)候,在特定的位置查找反向表即可,進(jìn)一步簡(jiǎn)化了重新構(gòu)建ftltable的流程?;谏鲜鋈我鈱?shí)施例,考慮到服務(wù)器突然斷電,而存在部分ppa對(duì)應(yīng)的lba未能及時(shí)存儲(chǔ),可以根據(jù)所述ppa的標(biāo)識(shí)信息,判斷在所述block中是否存在存儲(chǔ)所述ppa對(duì)應(yīng)的lba的所述反向信息進(jìn)一步改進(jìn),本發(fā)明的另一具體實(shí)施例中,可以包括:如果在所述block中不存在所述ppa對(duì)應(yīng)的所述反向信息,則在所述ppa中讀取所述ppa對(duì)應(yīng)的lba。需要說(shuō)明的是,每個(gè)block中存儲(chǔ)有多份反向表,每份反向表中存儲(chǔ)有一個(gè)以上的ppa對(duì)應(yīng)的lba,當(dāng)一份反向表的能夠存儲(chǔ)的lba的數(shù)量達(dá)到上限時(shí),才將該反向表進(jìn)行存儲(chǔ)。所以一旦服務(wù)器突然斷電,就可能存在少數(shù)幾個(gè)ppa對(duì)應(yīng)的lba未進(jìn)行存儲(chǔ),在重新構(gòu)建ftltable時(shí),就需要在沒(méi)有對(duì)應(yīng)的反向表的各個(gè)ppa中依次讀取lba。一般在ssd系統(tǒng)中同一時(shí)刻只有一個(gè)block處于open的可寫(xiě)入數(shù)的狀態(tài),而block中在ppa中寫(xiě)入lba也是按位置順序依次寫(xiě)入的,并且每在一定數(shù)量的ppa中寫(xiě)入lba,就會(huì)生成一個(gè)反向表,在服務(wù)器突然斷電時(shí),最多也只有一個(gè)block中正在寫(xiě)入的幾個(gè)ppa中的lba為記錄到反向表并存儲(chǔ)在sector,因此未存儲(chǔ)對(duì)應(yīng)的lba的ppa特別少,所以相對(duì)于整個(gè)ftltable而言,只有少數(shù)幾個(gè)ppa對(duì)應(yīng)的lba需要在ppa中讀取,而絕大多數(shù)部分ppa對(duì)應(yīng)的lba直接查找反向表即可得到,依然能夠達(dá)到大大縮短重建ftltable所耗費(fèi)的時(shí)間?;谏鲜鰧?shí)施例,本發(fā)明的另一種具體實(shí)施方式中,可以包括:在根據(jù)所述映射關(guān)系構(gòu)建ftltable之后,判斷是否各個(gè)所述block中的所述反向信息均讀取完成,如果否,則再次執(zhí)行讀取在block中的預(yù)先存儲(chǔ)的反向信息的操作。因?yàn)檎麄€(gè)ftltable涉及到多個(gè)block,可以在讀取block之前,將各個(gè)block按照使用的順序先進(jìn)性排序,然后按照該排序依次讀取block中的反向表,避免讀取未寫(xiě)入數(shù)據(jù)的block,當(dāng)所有block中的反向表讀取完成,也就確定了各個(gè)lba到ppa的映射關(guān)系。基于上述實(shí)施例,本發(fā)明提供的構(gòu)建丟失的ftltable另一種具體實(shí)施方式流程圖如圖2所示,該方法可以包括:步驟s201:將系統(tǒng)中寫(xiě)入數(shù)據(jù)的block按寫(xiě)入數(shù)據(jù)的先后順序排序。步驟s202:按照排序選取一個(gè)block讀取block中的反向表。步驟s203:根據(jù)block中ppa的序列號(hào),判斷是否存在對(duì)應(yīng)的反向表,如果是進(jìn)入步驟s204,如果否,進(jìn)入步驟205。步驟s204:根據(jù)ppa的序列號(hào)查找反向表中ppa對(duì)應(yīng)的lba。步驟s205:在逐個(gè)讀取ppa中讀取對(duì)應(yīng)的lba。步驟s206:確定lba到ppa的映射關(guān)系,并重構(gòu)ftltable。步驟s207:判斷是否各個(gè)block中的反向表是否都讀取完成,如果是進(jìn)入步驟s208,如果否,進(jìn)入步驟s202。步驟s208:ftltable構(gòu)建完成。下面對(duì)本發(fā)明實(shí)施例提供的構(gòu)建丟失的ftltable裝置進(jìn)行介紹,下文描述的構(gòu)建丟失的ftltable的裝置與上文描述的構(gòu)建丟失的ftltable的方法可相互對(duì)應(yīng)參照。圖3為本發(fā)明實(shí)施例提供的構(gòu)建丟失的ftltable的裝置的結(jié)構(gòu)框圖,參照?qǐng)D3構(gòu)建丟失的ftltable的裝置可以包括:讀取模塊100,用于讀取在block中的預(yù)先存儲(chǔ)的反向信息,其中,所述反向信息為根據(jù)各個(gè)ppa的標(biāo)識(shí)信息記錄各個(gè)所述ppa對(duì)應(yīng)的lba的反向信息;判斷查找模塊200,用于根據(jù)所述ppa的標(biāo)識(shí)信息,判斷所述ppa是否存在對(duì)應(yīng)的所述反向信息,如果是,則在所述反向信息中查找所述ppa對(duì)應(yīng)的lba,確定所述lba到所述ppa的映射關(guān)系;重建模塊300,用于根據(jù)所述映射關(guān)系構(gòu)建ftltable。優(yōu)選的,所述判斷查詢模塊包括:記錄單元,用于按照在所述block中各個(gè)所述ppa的位置順序,依次記錄各個(gè)所述ppa對(duì)應(yīng)的lba的反向信息;按照在所述block中各個(gè)所述ppa的位置順序,依次記錄各個(gè)所述ppa對(duì)應(yīng)的lba的反向信息;查找單元,用于根據(jù)在所述block中各個(gè)所述ppa的位置順序,查找所述ppa在所述反向信息中對(duì)應(yīng)的lba。優(yōu)選的,判斷單元,用于根據(jù)所述標(biāo)識(shí)信息,判斷在所述block中是否存在所述ppa對(duì)應(yīng)的所述反向信息,其中,所述反向信息在所述block中的存儲(chǔ)位置為根據(jù)各個(gè)所述ppa的位置順序,選取存儲(chǔ)所述反向信息的位置。作為一種具體實(shí)施方式,本發(fā)明所提供的構(gòu)建丟失的ftltable的裝置還可以進(jìn)一步包括:所述判斷單元用于如果在所述block中不存在所述ppa對(duì)應(yīng)的所述反向信息,則在所述ppa中讀取所述ppa對(duì)應(yīng)的lba。本實(shí)施例的構(gòu)建丟失的ftltable的裝置用于實(shí)現(xiàn)前述的構(gòu)建丟失的ftltable的方法,因此構(gòu)建丟失的ftltable的裝置中的具體實(shí)施方式可見(jiàn)前文中的構(gòu)建丟失的ftltable的方法的實(shí)施例部分,例如,讀取模塊100,用于實(shí)現(xiàn)上述構(gòu)建丟失的ftltable的方法中步驟s101,判斷查找模塊200,用于實(shí)現(xiàn)上述步驟s102和s103,重建模塊300,用于實(shí)現(xiàn)上述步驟s104,所以,其具體實(shí)施方式可以參照相應(yīng)的各個(gè)部分實(shí)施例的描述,在此不再贅述。本說(shuō)明書(shū)中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其它實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同或相似部分互相參見(jiàn)即可。對(duì)于實(shí)施例公開(kāi)的裝置而言,由于其與實(shí)施例公開(kāi)的方法相對(duì)應(yīng),所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法部分說(shuō)明即可。專業(yè)人員還可以進(jìn)一步意識(shí)到,結(jié)合本文中所公開(kāi)的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來(lái)實(shí)現(xiàn),為了清楚地說(shuō)明硬件和軟件的可互換性,在上述說(shuō)明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來(lái)執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來(lái)使用不同方法來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。結(jié)合本文中所公開(kāi)的實(shí)施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來(lái)實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(ram)、內(nèi)存、只讀存儲(chǔ)器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬盤(pán)、可移動(dòng)磁盤(pán)、cd-rom、或
技術(shù)領(lǐng)域:
:內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。以上對(duì)本發(fā)明所提供的構(gòu)建丟失的ftltable的方法以及裝置進(jìn)行了詳細(xì)介紹。本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對(duì)于本
技術(shù)領(lǐng)域:
:的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以對(duì)本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。當(dāng)前第1頁(yè)12當(dāng)前第1頁(yè)12