亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

用于分配存儲(chǔ)的設(shè)備、系統(tǒng)和方法

文檔序號(hào):6351063閱讀:228來(lái)源:國(guó)知局

專(zhuān)利名稱(chēng)::用于分配存儲(chǔ)的設(shè)備、系統(tǒng)和方法
技術(shù)領(lǐng)域
:本發(fā)明涉及數(shù)據(jù)存儲(chǔ)的分配并且更具體地涉及數(shù)據(jù)存儲(chǔ)在非易失性存儲(chǔ)裝置諸如固態(tài)存儲(chǔ)裝置上的分配。
背景技術(shù)
:相關(guān)領(lǐng)域描述典型的數(shù)據(jù)存儲(chǔ)裝置為塊存儲(chǔ)裝置,其中邏輯塊地址(“LBA”)與物理塊地址(“PBA”)之間存在近一對(duì)一映射。通常,LBA和PBA之間的一對(duì)一映射的唯一例外是,數(shù)據(jù)存儲(chǔ)裝置可具有少量附加塊,這些附加塊可重新映射到經(jīng)確定為不良?jí)K的塊。根據(jù)LBA和PBA之間的這種一對(duì)一映射,LBA與對(duì)象名、文件名和其它邏輯標(biāo)識(shí)符之間的高層映射在文件服務(wù)器或文件系統(tǒng)中進(jìn)行。通常,使用LBA和PBA之間的這種一對(duì)一映射的數(shù)據(jù)存儲(chǔ)裝置為隨機(jī)存取存儲(chǔ)裝置。文件服務(wù)器或文件系統(tǒng)可使用小型計(jì)算機(jī)系統(tǒng)接口(“SCSI”)命令將指定給特定LBA的數(shù)據(jù)塊發(fā)送至數(shù)據(jù)存儲(chǔ)裝置。當(dāng)初始化數(shù)據(jù)存儲(chǔ)裝置時(shí),向典型的存儲(chǔ)裝置分配LBA。在這種情況下,分配LBA相當(dāng)于將在數(shù)據(jù)存儲(chǔ)裝置上可用的LBA的范圍或列表指定給連接至文件服務(wù)器或文件系統(tǒng)的客戶(hù)端或計(jì)算機(jī),所述文件服務(wù)器或文件系統(tǒng)連接至數(shù)據(jù)存儲(chǔ)裝置。在服務(wù)器或其它計(jì)算機(jī)可訪問(wèn)不止一個(gè)數(shù)據(jù)存儲(chǔ)裝置的系統(tǒng)中,如果數(shù)據(jù)存儲(chǔ)裝置為隨機(jī)存取裝置,則文件服務(wù)器或文件系統(tǒng)通常包括附加標(biāo)識(shí)符,其中每個(gè)LBA識(shí)別被訪問(wèn)的特定數(shù)據(jù)存儲(chǔ)裝置。所述標(biāo)識(shí)符可為驅(qū)動(dòng)器名、在存儲(chǔ)裝置的制造商處指定的唯一標(biāo)識(shí)符、邏輯名或可用于對(duì)所述系統(tǒng)中可訪問(wèn)的各種數(shù)據(jù)存儲(chǔ)裝置進(jìn)行區(qū)分的其它標(biāo)識(shí)符。在該系統(tǒng)中,客戶(hù)端可通過(guò)一個(gè)或多個(gè)服務(wù)器來(lái)訪問(wèn)數(shù)據(jù)存儲(chǔ)裝置。每個(gè)客戶(hù)端均可分配有存儲(chǔ)空間。分配的存儲(chǔ)空間可為整個(gè)存儲(chǔ)裝置,可為存儲(chǔ)裝置的一部分,或者可為兩個(gè)或更多個(gè)存儲(chǔ)裝置的全部或部分。通常,對(duì)于其中的服務(wù)器或客戶(hù)端可訪問(wèn)兩個(gè)或更多個(gè)存儲(chǔ)裝置的系統(tǒng)而言,存儲(chǔ)空間和相應(yīng)地址的分配將在連接至這些存儲(chǔ)裝置的文件服務(wù)器或文件系統(tǒng)中進(jìn)行。通常,文件系統(tǒng)管理指定和未指定的LBA。未指定的LBA位于未使用的LBA池中。創(chuàng)建新文件時(shí),將LBA從未使用的LBA池中移除并且LBA與該文件關(guān)聯(lián)。刪除該文件時(shí),使LBA返回到未使用的LBA池中。在LBA和PBA之間不存在一一對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)裝置諸如順序存儲(chǔ)裝置或日志結(jié)構(gòu)存儲(chǔ)裝置中,通常存在另一層邏輯到物理映射,其與存在于連接至隨機(jī)存取存儲(chǔ)裝置的文件系統(tǒng)或文件服務(wù)器中的邏輯到邏輯映射類(lèi)似。這些裝置可針對(duì)訪問(wèn)所述裝置的任何文件系統(tǒng)冗余地管理其自身的LBA使用率。這種重復(fù)可有利于文件系統(tǒng)實(shí)施〃TRIM命令〃,以向所述裝置提供文件系統(tǒng)正在將LBA移動(dòng)至未使用的LBA池中的提示,以使得所述裝置可同樣如此??赡艽嬖谄渌壿嫷竭壿嬘成?,以支持其它中間轉(zhuǎn)換,例如支持精簡(jiǎn)配置層。在順序存儲(chǔ)裝置、日志結(jié)構(gòu)文件系統(tǒng)或其它類(lèi)似裝置中,文件系統(tǒng)/文件服務(wù)器中的邏輯到邏輯映射以及其它邏輯到邏輯映射和/或邏輯到物理映射是無(wú)效的,增加了復(fù)雜性并且在一些情況下為冗余的。
發(fā)明內(nèi)容非易失性存儲(chǔ)裝置可向客戶(hù)端呈現(xiàn)邏輯地址空間。邏輯地址空間可包括可與存儲(chǔ)裝置的物理存儲(chǔ)位置(或通常為“存儲(chǔ)位置”)無(wú)關(guān)的多個(gè)邏輯標(biāo)識(shí)符(LID)。因此,邏輯地址空間與特定存儲(chǔ)位置之間可能不存在預(yù)定義和/或預(yù)置映射。所述裝置(或其它實(shí)體)可保留將邏輯地址空間中的LID與存儲(chǔ)裝置的各個(gè)存儲(chǔ)位置關(guān)聯(lián)的索引。LID與存儲(chǔ)位置之間的關(guān)聯(lián)數(shù)據(jù)可為任意數(shù)據(jù)。LID與存儲(chǔ)位置的關(guān)聯(lián)數(shù)據(jù)可用于確定可用邏輯容量和/或可用物理存儲(chǔ)容量。客戶(hù)端請(qǐng)求可包括針對(duì)邏輯地址空間中的邏輯容量的請(qǐng)求。如果邏輯地址空間中存在足夠的邏輯容量,則可滿(mǎn)足該請(qǐng)求。邏輯地址空間的邏輯容量可包括已分配、未分配、已指定和/或未指定的識(shí)別LID。如本文所用,分配的LID可指邏輯地址空間中已分配給特定客戶(hù)端的LID。所述分配可包括預(yù)留所述LID、一系列LID、一組順序定序LID、一組連續(xù)LID、一組連續(xù)和不連續(xù)LID和/或邏輯地址空間中的邏輯容量,以供客戶(hù)端使用。分配的LID可能或可能不對(duì)應(yīng)于存儲(chǔ)裝置上的物理存儲(chǔ)容量。未分配的LID可指邏輯地址空間中未分配給客戶(hù)端和/或與存儲(chǔ)在非易失性存儲(chǔ)裝置上的數(shù)據(jù)關(guān)聯(lián)的LID。如本文所用,指定的LID可指與存儲(chǔ)在非易失性存儲(chǔ)裝置上的數(shù)據(jù)關(guān)聯(lián)的分配的LID。因此,指定的LID可指與所述存儲(chǔ)裝置的一個(gè)或多個(gè)存儲(chǔ)位置關(guān)聯(lián)的LID。未指定的LID可指與存儲(chǔ)在非易失性存儲(chǔ)裝置上的數(shù)據(jù)不關(guān)聯(lián)的LID。如上所述,分配的LID可為未指定的LID。類(lèi)似地,未分配的LID可為未指定的LID。一種分配數(shù)據(jù)存儲(chǔ)空間的設(shè)備可被配置為在功能上執(zhí)行以下必要步驟接收分配請(qǐng)求,確定數(shù)據(jù)存儲(chǔ)裝置的邏輯空間是否具有足夠的未指定和/或未分配的邏輯空間,并且提供回復(fù)。分配請(qǐng)求模塊可從請(qǐng)求裝置接收分配邏輯地址空間中的邏輯容量的分配請(qǐng)求。在數(shù)據(jù)存儲(chǔ)裝置處接收分配請(qǐng)求。所述邏輯容量用于將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)裝置上。邏輯容量模塊確定邏輯地址空間是否具有足夠的未指定和/或未分配的邏輯空間來(lái)滿(mǎn)足分配請(qǐng)求。所述確定可包括搜索保留邏輯容量分配的索引,諸如邏輯到物理映像,其包括邏輯空間中映射到一個(gè)或多個(gè)物理位置的指定的邏輯標(biāo)識(shí)符(“LID”),與所述指定的LID相對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)裝置上的所述一個(gè)或多個(gè)物理位置。然而,可使用其它數(shù)據(jù)結(jié)構(gòu)、索引和/或映像。分配回復(fù)模塊可響應(yīng)于確定邏輯空間是否具有足夠的邏輯空間的邏輯容量模塊向請(qǐng)求裝置提供回復(fù)。所述回復(fù)可包括關(guān)于是否可滿(mǎn)足分配請(qǐng)求的指示。如本文所用,邏輯標(biāo)識(shí)符(“LID”)可指邏輯塊地址(“LBA”)、一系列LBA、一組不連續(xù)LBA、索引、文件名、索引節(jié)點(diǎn)或其它邏輯標(biāo)識(shí)符中的一個(gè)或多個(gè)。LID可指不同于對(duì)象標(biāo)識(shí)符的邏輯標(biāo)識(shí)符。在一些實(shí)施方案中,數(shù)據(jù)存儲(chǔ)裝置包括存儲(chǔ)裝置和存儲(chǔ)控制器和/或驅(qū)動(dòng)器,其中存儲(chǔ)控制器和/或驅(qū)動(dòng)器包括包括存儲(chǔ)裝置中的物理地址的邏輯到物理映像。在另一個(gè)實(shí)施方案中,對(duì)應(yīng)于邏輯空間(“邏輯空間容量”)的存儲(chǔ)容量顯著大于數(shù)據(jù)存儲(chǔ)裝置的物理存儲(chǔ)容量。邏輯空間容量包括與分配的邏輯空間結(jié)合的未指定和/或未分配的邏輯空間。分配的邏輯空間包括分配的邏輯空間內(nèi)的指定的LID和未指定的LID。在一些實(shí)施方案中,所述設(shè)備包括物理容量請(qǐng)求模塊、物理容量分配模塊和物理容量回復(fù)模塊。物理容量請(qǐng)求模塊從請(qǐng)求裝置接收物理容量請(qǐng)求,其中在數(shù)據(jù)存儲(chǔ)裝置處接收物理容量請(qǐng)求。物理容量請(qǐng)求包括數(shù)據(jù)存儲(chǔ)裝置中的可用物理存儲(chǔ)容量的量的請(qǐng)求。物理容量分配模塊確定數(shù)據(jù)存儲(chǔ)裝置上的可用物理存儲(chǔ)容量的量??捎梦锢泶鎯?chǔ)容量的量包括數(shù)據(jù)存儲(chǔ)裝置中的未指定的存儲(chǔ)位置的物理存儲(chǔ)容量。在另一個(gè)實(shí)施方案中,物理容量分配模塊追蹤指定的物理地址、未指定的物理地址、分配的物理地址容量和/或未分配的物理地址容量。在另一個(gè)實(shí)施方案中,接收分配請(qǐng)求包括接收邏輯分配請(qǐng)求或接收存儲(chǔ)數(shù)據(jù)的請(qǐng)求。在另一個(gè)實(shí)施方案中,確定邏輯空間是否包括足夠的未分配的邏輯空間來(lái)滿(mǎn)足分配請(qǐng)求包括接收請(qǐng)求的LID列表以待分配并且驗(yàn)證這些LID可供分配或者識(shí)別滿(mǎn)足連同所述請(qǐng)求接收的標(biāo)準(zhǔn)的未分配的LID。在一個(gè)實(shí)施方案中,所述設(shè)備包括分配模塊,該分配模塊響應(yīng)于確定邏輯空間包括足夠的未分配的邏輯空間來(lái)滿(mǎn)足分配請(qǐng)求的邏輯容量模塊向請(qǐng)求裝置分配足以滿(mǎn)足分配請(qǐng)求的未分配的邏輯空間。在另一個(gè)實(shí)施方案中,分配模塊結(jié)合存儲(chǔ)數(shù)據(jù)的請(qǐng)求分配一個(gè)或多個(gè)LID,并且在存儲(chǔ)與存儲(chǔ)數(shù)據(jù)的請(qǐng)求關(guān)聯(lián)的數(shù)據(jù)的同時(shí)分配所述一個(gè)或多個(gè)LID。在一個(gè)實(shí)施方案中,將回復(fù)傳送至請(qǐng)求裝置包括將分配的LID傳送至請(qǐng)求裝置,其中這些分配的LID滿(mǎn)足分配請(qǐng)求。在另一個(gè)實(shí)施方案中,將回復(fù)傳送至請(qǐng)求裝置包括將指示數(shù)據(jù)存儲(chǔ)裝置包括足夠的未分配的邏輯空間來(lái)滿(mǎn)足分配請(qǐng)求的回復(fù)傳送至請(qǐng)求裝置。在另一個(gè)實(shí)施方案中,將回復(fù)傳送至請(qǐng)求裝置包括將指示數(shù)據(jù)存儲(chǔ)裝置具有不足的未分配的邏輯空間來(lái)滿(mǎn)足分配請(qǐng)求的回復(fù)傳送至請(qǐng)求裝置。在另一個(gè)實(shí)施方案中,將回復(fù)傳送至請(qǐng)求裝置包括將已分配請(qǐng)求的LID的確認(rèn)傳送至請(qǐng)求裝置,其中分配請(qǐng)求包括分配LID的請(qǐng)求。在一個(gè)實(shí)施方案中,所述設(shè)備包括分配查詢(xún)請(qǐng)求模塊、分配查詢(xún)確定模塊和分配查詢(xún)回復(fù)模塊。分配查詢(xún)請(qǐng)求模塊在數(shù)據(jù)存儲(chǔ)裝置處接收分配查詢(xún)。分配查詢(xún)確定模塊識(shí)別滿(mǎn)足分配查詢(xún)中指定的標(biāo)準(zhǔn)的一個(gè)或多個(gè)LID。識(shí)別的LID包括已指定的分配的LID、未指定的分配的LID和/或未分配的LID。分配查詢(xún)回復(fù)模塊傳送分配查詢(xún)的結(jié)果,其中這些結(jié)果包括識(shí)別的LID列表、已找到滿(mǎn)足標(biāo)準(zhǔn)的LID的確認(rèn)和/或未找到滿(mǎn)足分配查詢(xún)中的標(biāo)準(zhǔn)的LID的確認(rèn)。在另一個(gè)實(shí)施方案中,所述設(shè)備包括從數(shù)據(jù)存儲(chǔ)裝置內(nèi)部對(duì)數(shù)據(jù)存儲(chǔ)裝置的邏輯空間進(jìn)行管理的邏輯空間管理模塊。管理邏輯空間可包括從請(qǐng)求裝置接收解除分配請(qǐng)求,其中解除分配請(qǐng)求使一個(gè)或多個(gè)分配的LID返回到未分配的狀態(tài),并且將成功的解除分配傳送至請(qǐng)求裝置。管理邏輯空間可包括從請(qǐng)求裝置接收LID組命令請(qǐng)求并且向請(qǐng)求裝置傳送指示對(duì)LID組命令請(qǐng)求的響應(yīng)的回復(fù)。LID組命令請(qǐng)求包括將對(duì)兩個(gè)或更多個(gè)LID(“LID組”)采取的動(dòng)作、與該LID組關(guān)聯(lián)的元數(shù)據(jù)和/或與該LID組關(guān)聯(lián)的數(shù)據(jù)。所述動(dòng)作包括修改元數(shù)據(jù),備份數(shù)據(jù),備份元數(shù)據(jù),改變控制參數(shù),改變存取參數(shù),刪除數(shù)據(jù),復(fù)制數(shù)據(jù),加密數(shù)據(jù),刪除重復(fù)數(shù)據(jù),壓縮數(shù)據(jù)和/或解壓縮數(shù)據(jù)。在一個(gè)實(shí)施方案中,所述設(shè)備包括物理空間預(yù)留請(qǐng)求模塊、物理空間預(yù)留模塊和物理空間預(yù)留返回模塊。物理空間預(yù)留請(qǐng)求模塊從請(qǐng)求裝置接收預(yù)留數(shù)據(jù)存儲(chǔ)裝置上的可用物理存儲(chǔ)容量的請(qǐng)求(“物理空間預(yù)留請(qǐng)求”)。在數(shù)據(jù)存儲(chǔ)裝置處接收物理空間預(yù)留請(qǐng)求,并且該請(qǐng)求包括請(qǐng)求的物理存儲(chǔ)容量的量的指示。物理空間預(yù)留模塊確定數(shù)據(jù)存儲(chǔ)裝置是否具有滿(mǎn)足物理存儲(chǔ)空間請(qǐng)求的可用物理存儲(chǔ)容量的量,并且響應(yīng)于確定可用物理存儲(chǔ)容量的量足以滿(mǎn)足物理空間預(yù)留請(qǐng)求,預(yù)留數(shù)據(jù)存儲(chǔ)裝置上的可用物理存儲(chǔ)容量的量以滿(mǎn)足物理存儲(chǔ)空間請(qǐng)求(“預(yù)留的物理容量”)。物理空間預(yù)留返回模塊響應(yīng)于確定數(shù)據(jù)存儲(chǔ)裝置是否具有滿(mǎn)足物理空間預(yù)留請(qǐng)求的可用物理存儲(chǔ)空間的量的物理空間預(yù)留模塊,向請(qǐng)求裝置發(fā)送請(qǐng)求的物理存儲(chǔ)容量的量的可用性或不可用性指示。在一個(gè)實(shí)施方案中,物理空間預(yù)留請(qǐng)求包括邏輯空間的量,其中請(qǐng)求的物理存儲(chǔ)容量的量的指示來(lái)源于請(qǐng)求的邏輯空間。在另一個(gè)實(shí)施方案中,物理空間預(yù)留請(qǐng)求包括一個(gè)或多個(gè)LID,其中請(qǐng)求的物理存儲(chǔ)容量的量的指示來(lái)源于與所述LID關(guān)聯(lián)的數(shù)據(jù)量。與所述LID關(guān)聯(lián)的數(shù)據(jù)包括指定給這些LID的數(shù)據(jù)和/或分配給每個(gè)LID的數(shù)據(jù)容量。在另一個(gè)實(shí)施方案中,物理空間預(yù)留請(qǐng)求包括存儲(chǔ)數(shù)據(jù)的請(qǐng)求,其中請(qǐng)求的物理存儲(chǔ)容量的量的指示來(lái)源于所述數(shù)據(jù)和/或與所述數(shù)據(jù)關(guān)聯(lián)的元數(shù)據(jù)。在另一個(gè)實(shí)施方案中,物理空間預(yù)留請(qǐng)求包括與存儲(chǔ)數(shù)據(jù)的請(qǐng)求關(guān)聯(lián)的物理空間預(yù)留請(qǐng)求,其中請(qǐng)求的物理存儲(chǔ)容量的量的指示在物理空間預(yù)留請(qǐng)求中指示并且與存儲(chǔ)數(shù)據(jù)的請(qǐng)求的數(shù)據(jù)相關(guān)。在另一個(gè)實(shí)施方案中,物理空間預(yù)留請(qǐng)求包括預(yù)留物理存儲(chǔ)容量的量的請(qǐng)求。在另一個(gè)實(shí)施方案中,物理空間預(yù)留請(qǐng)求包括預(yù)留物理存儲(chǔ)容量的量并將預(yù)留的物理存儲(chǔ)容量分配給邏輯實(shí)體的請(qǐng)求。在一個(gè)實(shí)施方案中,所述設(shè)備包括響應(yīng)于取消觸發(fā)事件將預(yù)留的物理存儲(chǔ)空間的全部或部分取消的物理空間預(yù)留取消模塊。取消觸發(fā)事件可包括確定待寫(xiě)入數(shù)據(jù)存儲(chǔ)裝置且與由物理空間預(yù)留模塊預(yù)留的可用空間關(guān)聯(lián)的數(shù)據(jù)先前已存儲(chǔ)在存儲(chǔ)系統(tǒng)中。取消觸發(fā)事件可包括超時(shí)。取消觸發(fā)事件可包括將與預(yù)留的存儲(chǔ)空間關(guān)聯(lián)的數(shù)據(jù)寫(xiě)入數(shù)據(jù)存儲(chǔ)裝置,其中寫(xiě)入的數(shù)據(jù)存儲(chǔ)在小于關(guān)聯(lián)的預(yù)留的物理容量的空間中。在另一個(gè)實(shí)施方案中,物理空間預(yù)留模塊響應(yīng)于接收與物理空間預(yù)留請(qǐng)求關(guān)聯(lián)的寫(xiě)入請(qǐng)求并且將數(shù)據(jù)寫(xiě)入數(shù)據(jù)存儲(chǔ)裝置(響應(yīng)于該寫(xiě)入請(qǐng)求),接收取消對(duì)先前接收的物理空間預(yù)留請(qǐng)求的全部或部分物理存儲(chǔ)容量進(jìn)行預(yù)留的請(qǐng)求,和/或接收指定附加物理存儲(chǔ)容量的請(qǐng)求,改變預(yù)留的可用物理存儲(chǔ)容量,其中所述附加物理存儲(chǔ)容量與物理空間預(yù)留請(qǐng)求的物理存儲(chǔ)容量關(guān)聯(lián)。在一個(gè)實(shí)施方案中,當(dāng)存儲(chǔ)在一個(gè)或多個(gè)物理地址處的數(shù)據(jù)被移動(dòng)至一個(gè)或多個(gè)不同的物理地址,存儲(chǔ)在所述一個(gè)或多個(gè)物理地址處的數(shù)據(jù)存儲(chǔ)在第一位置且與存儲(chǔ)在第二位置處的數(shù)據(jù)相同,并且一個(gè)或多個(gè)LID的映射經(jīng)改變以對(duì)應(yīng)于第二位置,和/或映射到一個(gè)或多個(gè)LID(“第一LID”)的一個(gè)或多個(gè)物理位置被重新映射到一個(gè)或多個(gè)不同的LID(“第二LID”)時(shí),所述一個(gè)或多個(gè)LID到所述一個(gè)或多個(gè)物理地址的映射發(fā)生變化。用于分配數(shù)據(jù)存儲(chǔ)空間的另一種設(shè)備包括存儲(chǔ)裝置驅(qū)動(dòng)器。存儲(chǔ)裝置驅(qū)動(dòng)器經(jīng)由存儲(chǔ)接口耦合至文件系統(tǒng)或文件服務(wù)器,其中存儲(chǔ)接口包括命令接口,該命令接口可操作以從文件系統(tǒng)/文件服務(wù)器傳送分配數(shù)據(jù)存儲(chǔ)裝置的邏輯容量的分配請(qǐng)求,并且向文件系統(tǒng)/文件服務(wù)器傳送分配回復(fù),其中所述邏輯容量用于將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)裝置上。存儲(chǔ)裝置驅(qū)動(dòng)器和/或數(shù)據(jù)存儲(chǔ)裝置確定邏輯空間是否包括足夠的未分配的邏輯空間來(lái)滿(mǎn)足分配請(qǐng)求,其中所述確定包括搜索邏輯到物理映像。邏輯到物理映像包括邏輯空間中映射到一個(gè)或多個(gè)物理位置的指定的LID,與所述指定的LID相對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)裝置上的所述一個(gè)或多個(gè)物理位置處,其中指定的LID不同于映射到該指定的LID的一個(gè)或多個(gè)物理地址。分配回復(fù)響應(yīng)于分配請(qǐng)求并且包括關(guān)于邏輯空間是否包括足夠的邏輯空間來(lái)滿(mǎn)足分配請(qǐng)求的指示。在一個(gè)實(shí)施方案中,所述設(shè)備包括存儲(chǔ)裝置接口,其可操作以將存儲(chǔ)裝置驅(qū)動(dòng)器耦接至數(shù)據(jù)存儲(chǔ)裝置,這足以使數(shù)據(jù)存儲(chǔ)裝置與存儲(chǔ)裝置驅(qū)動(dòng)器配合,以確定邏輯空間是否包括足夠的邏輯容量來(lái)滿(mǎn)足分配請(qǐng)求。在另一個(gè)實(shí)施方案中,存儲(chǔ)裝置接口包括外設(shè)部件互連擴(kuò)展("PCIExpress”或“PCIe”)、串行高級(jí)技術(shù)附件(“ΑΤΑ”)總線、并行ATA總線、小型計(jì)算機(jī)系統(tǒng)接口(“SCSI”)、火線(FireWire)、光纖通道、通用串行總線(“USB”)和PCIe高級(jí)交換(“PCIe-AS”)中的一個(gè)或多個(gè)。在另一個(gè)實(shí)施方案中,命令接口作為新的輸入輸出控制(“I0-CTL”)命令或現(xiàn)有IO-CTL命令的擴(kuò)展來(lái)實(shí)施。本發(fā)明還呈現(xiàn)了一種分配存儲(chǔ)空間的系統(tǒng)。所述系統(tǒng)可通過(guò)具有非易失性存儲(chǔ)器、分配請(qǐng)求模塊、邏輯容量模塊和分配回復(fù)模塊的存儲(chǔ)裝置來(lái)體現(xiàn)。分配請(qǐng)求模塊從請(qǐng)求裝置接收分配邏輯容量的分配請(qǐng)求。在數(shù)據(jù)存儲(chǔ)裝置處接收分配請(qǐng)求,并且邏輯容量用于將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)裝置上。邏輯容量模塊確定邏輯空間是否具有足夠的未分配的邏輯空間來(lái)滿(mǎn)足分配請(qǐng)求,其中所述確定包括搜索邏輯到物理映像。邏輯到物理映像包括邏輯空間中映射到一個(gè)或多個(gè)物理位置的指定的邏輯標(biāo)識(shí)符(“LID”),與所述指定的LID相對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)裝置上的所述一個(gè)或多個(gè)物理位置處,其中指定的LID不同于映射到該指定的LID的一個(gè)或多個(gè)物理地址。分配回復(fù)模塊響應(yīng)于確定邏輯空間是否具有足夠的邏輯空間的邏輯容量模塊將回復(fù)傳送至請(qǐng)求裝置,其中所述回復(fù)包括關(guān)于邏輯空間是否包括足夠的邏輯空間來(lái)滿(mǎn)足分配請(qǐng)求的指示。本發(fā)明還呈現(xiàn)了一種用于分配存儲(chǔ)空間的方法。公開(kāi)的實(shí)施方案中的方法基本上包括執(zhí)行以上針對(duì)所述設(shè)備和系統(tǒng)的操作呈現(xiàn)的功能所需的步驟。在一個(gè)實(shí)施方案中,所述方法包括從請(qǐng)求裝置接收分配邏輯容量的分配請(qǐng)求,其中在數(shù)據(jù)存儲(chǔ)裝置處接收分配請(qǐng)求。所述邏輯容量用于將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)裝置上。所述方法還包括確定邏輯空間是否包括足夠的未分配的邏輯空間來(lái)滿(mǎn)足分配請(qǐng)求,其中所述確定包括搜索邏輯到物理映像。邏輯到物理映像包括邏輯空間中映射到一個(gè)或多個(gè)物理位置的指定的邏輯標(biāo)識(shí)符(“LID”),與所述指定的LID相對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)裝置上的所述一個(gè)或多個(gè)物理位置處,其中指定的LID不同于映射到該指定的LID的一個(gè)或多個(gè)物理地址。所述方法包括響應(yīng)于確定邏輯空間是否具有足夠的邏輯空間將回復(fù)傳送至請(qǐng)求裝置,其中所述回復(fù)包括關(guān)于邏輯空間是否包括足夠的邏輯空間來(lái)滿(mǎn)足分配請(qǐng)求的指示。在本說(shuō)明書(shū)中通篇對(duì)特征、優(yōu)點(diǎn)或類(lèi)似的術(shù)語(yǔ)的參考并未暗示可通過(guò)本發(fā)明來(lái)實(shí)現(xiàn)的所有特征和優(yōu)點(diǎn)均應(yīng)當(dāng)包括或包括在本發(fā)明的任何單個(gè)實(shí)施方案中。相反,應(yīng)當(dāng)將涉及這些特征和優(yōu)點(diǎn)的術(shù)語(yǔ)理解為意指,結(jié)合實(shí)施方案描述的具體特征、優(yōu)點(diǎn)或特性包括在本發(fā)明的至少一個(gè)實(shí)施方案中。因此,在本說(shuō)明書(shū)中通篇討論的特征和優(yōu)點(diǎn)及類(lèi)似的術(shù)語(yǔ)可能(但未必)涉及相同的實(shí)施方案。此外,可以任何適當(dāng)?shù)姆绞綄⒈景l(fā)明的所述特征、優(yōu)點(diǎn)和特性結(jié)合在一個(gè)或多個(gè)實(shí)施方案中。相關(guān)領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,本發(fā)明可在無(wú)需具體實(shí)施方案的一個(gè)或多個(gè)具體特征或優(yōu)點(diǎn)的情況下實(shí)施。在其它情況中,可在某些實(shí)施方案中看到可能不存在于本發(fā)明的所有實(shí)施方案中的其它特征和優(yōu)點(diǎn)。本發(fā)明的這些特征和優(yōu)點(diǎn)通過(guò)以下說(shuō)明和所附權(quán)利要求將變得更加顯而易見(jiàn),或者可通過(guò)本發(fā)明的實(shí)施來(lái)了解,如下所述。為了易于理解本發(fā)明的優(yōu)點(diǎn),將通過(guò)參考在附圖中示出的具體實(shí)施方案對(duì)本發(fā)明進(jìn)行以上簡(jiǎn)述的更具體說(shuō)明。理解到這些圖僅描述了本發(fā)明的典型實(shí)施方案并因此不被視為對(duì)其范圍進(jìn)行限制,從而將通過(guò)采用附圖對(duì)本發(fā)明進(jìn)行其它特定和詳細(xì)的描述和解釋?zhuān)渲袌DIA為示出了根據(jù)本發(fā)明的分配數(shù)據(jù)存儲(chǔ)空間的系統(tǒng)的一個(gè)實(shí)施方案的示意性框圖;圖IB為示出了根據(jù)本發(fā)明的分配數(shù)據(jù)存儲(chǔ)空間的系統(tǒng)的另一個(gè)實(shí)施方案的示意性框圖;圖IC為示出了根據(jù)本發(fā)明的分配數(shù)據(jù)存儲(chǔ)空間的系統(tǒng)的另一個(gè)實(shí)施方案的示意性框圖;圖2為示出了固態(tài)存儲(chǔ)裝置的具體實(shí)施方案的示意性框圖,所述固態(tài)存儲(chǔ)裝置可包括根據(jù)本發(fā)明的分配數(shù)據(jù)存儲(chǔ)空間的設(shè)備;圖3為示出了固態(tài)存儲(chǔ)裝置中的寫(xiě)入數(shù)據(jù)管道和讀取數(shù)據(jù)管道的示意性框圖,所述固態(tài)存儲(chǔ)裝置可包括根據(jù)本發(fā)明的分配數(shù)據(jù)存儲(chǔ)空間的設(shè)備;圖4為示出了根據(jù)本發(fā)明的分配數(shù)據(jù)存儲(chǔ)空間的設(shè)備的一個(gè)實(shí)施方案的示意性框圖;圖5為示出了根據(jù)本發(fā)明的分配數(shù)據(jù)存儲(chǔ)空間的設(shè)備的另一個(gè)實(shí)施方案的示意性框圖;圖6為示出了根據(jù)本發(fā)明的用于分配數(shù)據(jù)存儲(chǔ)空間的方法的一個(gè)實(shí)施方案的示意性流程圖;圖7為示出了根據(jù)本發(fā)明的用于處理存儲(chǔ)裝置處的物理容量請(qǐng)求的方法的一個(gè)實(shí)施方案的示意性流程圖;圖8為示出了根據(jù)本發(fā)明的用于預(yù)留物理存儲(chǔ)空間的方法的一個(gè)實(shí)施方案的示意性流程圖;圖9為示出了根據(jù)本發(fā)明的用于在數(shù)據(jù)存儲(chǔ)裝置中指定分配的邏輯標(biāo)識(shí)符的方法的一個(gè)實(shí)施方案的示意性流程圖;圖10為示出了根據(jù)本發(fā)明的用于在數(shù)據(jù)存儲(chǔ)裝置中指定分配的邏輯標(biāo)識(shí)符的方法的另一個(gè)實(shí)施方案的示意性流程圖;并且圖11為示出了根據(jù)本發(fā)明的用于在存儲(chǔ)裝置處處理分配查詢(xún)的方法的一個(gè)實(shí)施方案的示意性流程圖。圖12為將邏輯標(biāo)識(shí)符與非易失性存儲(chǔ)裝置的存儲(chǔ)位置關(guān)聯(lián)的索引的示例性實(shí)施方案的示意圖;圖13為將邏輯標(biāo)識(shí)符與非易失性存儲(chǔ)裝置的存儲(chǔ)位置關(guān)聯(lián)的索引的示例性實(shí)施方案的示意圖;圖14示出了用于保留未分配的邏輯容量的索引的一個(gè)實(shí)例;圖15為用于分配非易失性存儲(chǔ)裝置的方法的一個(gè)實(shí)施方案的流程圖;并且圖16為用于分配非易失性存儲(chǔ)裝置的方法的一個(gè)實(shí)施方案的流程圖。具體實(shí)施例方式本說(shuō)明書(shū)中描述的許多功能單元已被標(biāo)記為模塊,以便更具體地強(qiáng)調(diào)其實(shí)施獨(dú)立性。例如,模塊可作為包括定制VLSI電路或門(mén)陣列、現(xiàn)貨半導(dǎo)體(諸如邏輯片、晶體管)或其它分立元件的硬件電路來(lái)實(shí)施。模塊也可在可編程硬件裝置諸如現(xiàn)場(chǎng)可編程門(mén)陣列、可編程陣列邏輯、可編程邏輯裝置等中實(shí)施。模塊也可在軟件中實(shí)施以通過(guò)各種類(lèi)型的處理器來(lái)執(zhí)行??蓤?zhí)行代碼的識(shí)別模塊可例如包括計(jì)算機(jī)指令的一個(gè)或多個(gè)物理塊或邏輯塊,其可例如以對(duì)象、程序或功能來(lái)組織。然而,識(shí)別模塊的可執(zhí)行文件(executables)無(wú)需物理地設(shè)置在一起,但可包括存儲(chǔ)在不同位置中的不同指令,這些指令在邏輯地接合在一起時(shí)包括所述模塊并且實(shí)現(xiàn)該模塊的所述目的。實(shí)際上,可執(zhí)行代碼的模塊可為單指令或多指令,并且甚至可分布在若干不同代碼段上、不同程序之間和整個(gè)若干存儲(chǔ)裝置上。類(lèi)似地,模塊內(nèi)的操作數(shù)據(jù)可在本文中得以識(shí)別和示出,并且可以任何適當(dāng)?shù)男问襟w現(xiàn)并組織在任何適當(dāng)類(lèi)型的數(shù)據(jù)結(jié)構(gòu)內(nèi)。所述操作數(shù)據(jù)可被收集成單個(gè)數(shù)據(jù)集,或者可分布在不同位置(包括不同的存儲(chǔ)裝置)上,并且可至少部分地僅作為電子信號(hào)存在于系統(tǒng)或網(wǎng)絡(luò)上。如果模塊或模塊的部分在軟件中實(shí)施,則軟件部分存儲(chǔ)在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)上。在本說(shuō)明書(shū)中通篇對(duì)“一個(gè)實(shí)施方案”或類(lèi)似的術(shù)語(yǔ)的參考意指,結(jié)合實(shí)施方案描述的特定特征、結(jié)構(gòu)或特性包括在本發(fā)明的至少一個(gè)實(shí)施方案中。因此,在本說(shuō)明書(shū)中通篇出現(xiàn)的短語(yǔ)“在一個(gè)實(shí)施方案中”和類(lèi)似的術(shù)語(yǔ)可能(但未必)均涉及相同的實(shí)施方案。所提及的計(jì)算機(jī)可讀介質(zhì)可采用能夠?qū)C(jī)器可讀指令存儲(chǔ)在數(shù)字處理設(shè)備上的任何形式。計(jì)算機(jī)可讀介質(zhì)可通過(guò)傳輸線、光盤(pán)、數(shù)字視頻光盤(pán)、磁帶、貝努里技術(shù)驅(qū)動(dòng)(Bernoullidrive)、磁盤(pán)、穿孔卡、閃速存儲(chǔ)器、集成電路或其它數(shù)字處理設(shè)備存儲(chǔ)裝置來(lái)體現(xiàn)。此外,可以任何適當(dāng)?shù)姆绞綄⒈景l(fā)明的所述特征、結(jié)構(gòu)或特性結(jié)合在一個(gè)或多個(gè)實(shí)施方案中。在以下說(shuō)明中,提供了許多具體細(xì)節(jié),諸如編程、軟件模塊、用戶(hù)選擇、網(wǎng)絡(luò)交易、數(shù)據(jù)庫(kù)查詢(xún)、數(shù)據(jù)庫(kù)結(jié)構(gòu)、硬件模塊、硬件電路、硬件芯片等的實(shí)例,以提供對(duì)本發(fā)明的實(shí)施方案的充分理解。然而,相關(guān)領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,本發(fā)明可在無(wú)需所述具體細(xì)節(jié)中的一個(gè)或多個(gè)的情況下實(shí)施,或者可通過(guò)其它方法、部件、材料等來(lái)實(shí)施。在其它情況中,未詳細(xì)示出或描述所熟知的結(jié)構(gòu)、材料或操作,以避免模糊本發(fā)明的各方面。通常將本文中包括的示意性流程圖作為邏輯流程圖來(lái)闡述。因此,所描述的順序和標(biāo)記步驟表示所呈現(xiàn)方法的一個(gè)實(shí)施方案??梢栽O(shè)想在功能、邏輯或效果上與所示方法的一個(gè)或多個(gè)步驟或其部分等效的其它步驟和方法。另外,提供了所采用的格式和符號(hào)以解釋所述方法的邏輯步驟,但應(yīng)理解這些格式和符號(hào)不旨在限制所述方法的范圍。雖然各種箭頭類(lèi)型和線條類(lèi)型可用于各流程圖中,但應(yīng)理解其不旨在限制相應(yīng)方法的范圍。實(shí)際上,一些箭頭或其它連接符可用于僅指示所述方法的邏輯流程。例如,箭頭可指示所述方法的列舉步驟之間的未指定期限的等待或監(jiān)測(cè)期。另外,進(jìn)行特定方法的順序可能會(huì)或可能不會(huì)嚴(yán)格符合所示出的相應(yīng)步驟的順序。圖IA為示出了根據(jù)本發(fā)明的分配數(shù)據(jù)存儲(chǔ)空間的系統(tǒng)100的一個(gè)實(shí)施方案的示意性框圖。系統(tǒng)100包括存儲(chǔ)系統(tǒng)102,存儲(chǔ)系統(tǒng)102具有存儲(chǔ)控制器104、存儲(chǔ)裝置106a-n和存儲(chǔ)裝置驅(qū)動(dòng)器118(在下文中,“存儲(chǔ)裝置驅(qū)動(dòng)器118”可與“驅(qū)動(dòng)器118”互換使用)。系統(tǒng)100包括通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)112連接至一個(gè)或多個(gè)客戶(hù)端110的服務(wù)器108。服務(wù)器108還可包括一個(gè)或多個(gè)客戶(hù)端110。服務(wù)器108包括通過(guò)存儲(chǔ)接口116連接至存儲(chǔ)系統(tǒng)102的驅(qū)動(dòng)器118的文件服務(wù)器114。下文更詳細(xì)地描述了系統(tǒng)100的部件。系統(tǒng)100包括存儲(chǔ)系統(tǒng)102。存儲(chǔ)系統(tǒng)102可為單個(gè)數(shù)據(jù)存儲(chǔ)裝置,可為存儲(chǔ)區(qū)域網(wǎng)絡(luò)(“3八^’)、僅大量磁盤(pán)/驅(qū)動(dòng)器(“JB0D”)、網(wǎng)絡(luò)附加存儲(chǔ)(“NAS”)或本領(lǐng)域的技術(shù)人員已知的其它存儲(chǔ)系統(tǒng)。在圖IA所示的系統(tǒng)100的實(shí)施方案中,存儲(chǔ)系統(tǒng)102連接至包括文件系統(tǒng)的文件服務(wù)器114并且包括位于服務(wù)器108中的驅(qū)動(dòng)器118。在下文中,文件服務(wù)器和文件系統(tǒng)可互換使用。在一個(gè)實(shí)施方案中,文件服務(wù)器114包括文件系統(tǒng)。在其它實(shí)施方案中,系統(tǒng)100包括一個(gè)或多個(gè)客戶(hù)端110、文件服務(wù)器114與一個(gè)或多個(gè)客戶(hù)端110的組合,或處理數(shù)據(jù)單元諸如對(duì)象、文件、邏輯塊等且將數(shù)據(jù)單元存儲(chǔ)在存儲(chǔ)裝置106上并且通過(guò)存儲(chǔ)接口116與數(shù)據(jù)存儲(chǔ)裝置交互的其它部件或系統(tǒng)。在優(yōu)選的實(shí)施方案中,存儲(chǔ)裝置106和控制存儲(chǔ)裝置106的存儲(chǔ)控制器104構(gòu)成數(shù)據(jù)存儲(chǔ)裝置。數(shù)據(jù)存儲(chǔ)裝置還可包括耦合至存儲(chǔ)控制器104的驅(qū)動(dòng)器118。驅(qū)動(dòng)器118可在多個(gè)存儲(chǔ)控制器104之間共享,而存儲(chǔ)控制器104可被多個(gè)存儲(chǔ)裝置106a-n共享。存儲(chǔ)系統(tǒng)102可包括多個(gè)數(shù)據(jù)存儲(chǔ)裝置,每個(gè)數(shù)據(jù)存儲(chǔ)裝置均包括存儲(chǔ)裝置106。然而,多個(gè)數(shù)據(jù)存儲(chǔ)裝置可具有共享的存儲(chǔ)控制器104和/或驅(qū)動(dòng)器118。多個(gè)數(shù)據(jù)存儲(chǔ)裝置中的一些可具有單獨(dú)的存儲(chǔ)控制器104和/或單獨(dú)的驅(qū)動(dòng)器118。因?yàn)閿?shù)據(jù)存儲(chǔ)裝置涉及分配,所以下面針對(duì)圖4的設(shè)備400更詳細(xì)地對(duì)其進(jìn)行了討論。在其它實(shí)施方案中,存儲(chǔ)系統(tǒng)102可能不需要特定驅(qū)動(dòng)器118,但可直接連接至文件服務(wù)器114,其中文件服務(wù)器114能夠直接與存儲(chǔ)系統(tǒng)102的存儲(chǔ)控制器104通信。在所述實(shí)施方案中,驅(qū)動(dòng)器118位于服務(wù)器108中,但在其它實(shí)施方案中,驅(qū)動(dòng)器118可部分或全部位于服務(wù)器108的外部。在本發(fā)明中,在存儲(chǔ)系統(tǒng)102中進(jìn)行邏輯地址分配和邏輯地址管理,如下文將進(jìn)一步闡述。存儲(chǔ)控制器104連接至一個(gè)或多個(gè)存儲(chǔ)裝置106a-n并且控制存儲(chǔ)裝置106中的數(shù)據(jù)存儲(chǔ)。存儲(chǔ)控制器104與一個(gè)或多個(gè)文件服務(wù)器114/文件系統(tǒng)通信并且通常通過(guò)驅(qū)動(dòng)器118與文件服務(wù)器114/文件系統(tǒng)通信。在一個(gè)實(shí)施方案中,驅(qū)動(dòng)器118可為存儲(chǔ)控制器104的擴(kuò)展。在一個(gè)具體實(shí)施方案中,存儲(chǔ)控制器104為固態(tài)存儲(chǔ)裝置控制器202,如將在圖2的設(shè)備201中更詳細(xì)地描述。通常,存儲(chǔ)控制器104將邏輯標(biāo)識(shí)符映射到存儲(chǔ)裝置106的物理地址并且可分配和管理邏輯標(biāo)識(shí)符,如下文將更詳細(xì)地描述。存儲(chǔ)控制器104和驅(qū)動(dòng)器118中可包括分配和管理邏輯標(biāo)識(shí)符的全部或部分步驟。然而,邏輯地址的全局分配可在存儲(chǔ)系統(tǒng)102的外部進(jìn)行,如將在圖IC的系統(tǒng)103中更詳細(xì)地描述。在一個(gè)實(shí)施方案中,驅(qū)動(dòng)器118或者存儲(chǔ)接口116為應(yīng)用程序接口(“API”),并且起作用以將命令和其它數(shù)據(jù)轉(zhuǎn)換成適于發(fā)送至存儲(chǔ)控制器104的格式。在另一個(gè)實(shí)施方案中,驅(qū)動(dòng)器118包括存儲(chǔ)控制器104的一個(gè)或多個(gè)功能。例如,驅(qū)動(dòng)器118可包括下述模塊的全部或部分并且可包括存儲(chǔ)裝置106的一個(gè)或多個(gè)索引或映像。構(gòu)成存儲(chǔ)系統(tǒng)102的驅(qū)動(dòng)器118、一個(gè)或多個(gè)存儲(chǔ)控制器104和一個(gè)或多個(gè)存儲(chǔ)裝置106具有連接至文件系統(tǒng)/文件服務(wù)器的存儲(chǔ)接口116,并且傳統(tǒng)上在文件系統(tǒng)/文件服務(wù)器中進(jìn)行的分配被有利地下推(即卸載)至存儲(chǔ)系統(tǒng)102。如本申請(qǐng)中所用的邏輯標(biāo)識(shí)符為與存儲(chǔ)數(shù)據(jù)單元的數(shù)據(jù)的物理地址不同的數(shù)據(jù)單元標(biāo)識(shí)符。如本申請(qǐng)中所用的數(shù)據(jù)單元為邏輯地組合在一起的任何數(shù)據(jù)集。數(shù)據(jù)單元可為文件、對(duì)象、廉價(jià)/獨(dú)立冗余磁盤(pán)/驅(qū)動(dòng)器陣列(“RAID”)數(shù)據(jù)條帶的數(shù)據(jù)段,或數(shù)據(jù)存儲(chǔ)中使用的其它數(shù)據(jù)集。數(shù)據(jù)單元可為可執(zhí)行代碼、數(shù)據(jù)、元數(shù)據(jù)、目錄、索引、可存儲(chǔ)在存儲(chǔ)裝置中的任何其它類(lèi)型的數(shù)據(jù)或其組合。數(shù)據(jù)單元可通過(guò)名稱(chēng)、邏輯地址、物理地址、地址范圍或用于識(shí)別數(shù)據(jù)單元的其它約定來(lái)識(shí)別。邏輯標(biāo)識(shí)符(“LID”)包括數(shù)據(jù)單元標(biāo)識(shí)符,諸如文件名、對(duì)象標(biāo)識(shí)符、索引節(jié)點(diǎn)、通用唯一標(biāo)識(shí)符(“UUID”)、全局唯一標(biāo)識(shí)符(“⑶ID”)或其它數(shù)據(jù)單元標(biāo)簽,并且還可包括邏輯塊地址(“LBA”)、柱面磁頭扇區(qū)(“CHS”)或其它低層邏輯標(biāo)識(shí)符。邏輯標(biāo)識(shí)符通常包括可映射到物理位置的任何邏輯標(biāo)簽。所述存儲(chǔ)系統(tǒng)102包括一個(gè)存儲(chǔ)控制器104,但還可包括其它存儲(chǔ)控制器104。在一個(gè)實(shí)施方案中,每個(gè)存儲(chǔ)控制器104控制唯一的一組存儲(chǔ)裝置106。在另一個(gè)實(shí)施方案中,兩個(gè)或更多個(gè)存儲(chǔ)控制器104可連接至存儲(chǔ)裝置(例如106a)并且可彼此通信以將數(shù)據(jù)存儲(chǔ)在存儲(chǔ)裝置106a上。例如,一個(gè)存儲(chǔ)控制器104可為主控制器,而另一個(gè)存儲(chǔ)控制器104可為從屬控制器。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到兩個(gè)或更多個(gè)存儲(chǔ)控制器104可控制存儲(chǔ)系統(tǒng)102中的兩個(gè)或更多個(gè)存儲(chǔ)裝置106的其它方式。存儲(chǔ)系統(tǒng)102包括一個(gè)或多個(gè)存儲(chǔ)裝置106a-n。存儲(chǔ)裝置106存儲(chǔ)數(shù)據(jù)單元的數(shù)據(jù),如存儲(chǔ)控制器104所指示。在一個(gè)實(shí)施方案中,存儲(chǔ)裝置106按順序或以日志結(jié)構(gòu)或某種類(lèi)似的方式來(lái)存儲(chǔ)至少一些數(shù)據(jù)。通常,在該存儲(chǔ)裝置106中,未以隨機(jī)存取裝置中的存儲(chǔ)方式來(lái)存儲(chǔ)數(shù)據(jù)。例如,當(dāng)修改數(shù)據(jù)單元時(shí),從一個(gè)位置讀取數(shù)據(jù)單元的數(shù)據(jù),對(duì)其進(jìn)行修改,然后將其寫(xiě)入不同位置。將數(shù)據(jù)寫(xiě)入數(shù)據(jù)存儲(chǔ)裝置106的次序和順序成為日志,并且通過(guò)重放該順序,可構(gòu)建或重構(gòu)索引。修改的數(shù)據(jù)可存儲(chǔ)在當(dāng)前按順序存儲(chǔ)數(shù)據(jù)的位置處。數(shù)據(jù)存儲(chǔ)裝置106可包括一個(gè)或多個(gè)追加點(diǎn),這些追加點(diǎn)指示存儲(chǔ)所述按順序存儲(chǔ)的數(shù)據(jù)的下一個(gè)位置。在該數(shù)據(jù)存儲(chǔ)裝置106中,邏輯標(biāo)識(shí)符被映射到一個(gè)或多個(gè)物理地址。例如,邏輯標(biāo)識(shí)符可映射到當(dāng)前數(shù)據(jù)以及相同數(shù)據(jù)的較早版本。下面更詳細(xì)描述了順序存儲(chǔ)和邏輯到物理映射。在一個(gè)實(shí)施方案中,存儲(chǔ)裝置106可為固態(tài)存儲(chǔ)裝置或存儲(chǔ)級(jí)存儲(chǔ)器,諸如閃速存儲(chǔ)器、納米隨機(jī)存取存儲(chǔ)器(“nanoRAM或NRAM”)、磁阻RAM(“MRAM”)、動(dòng)態(tài)RAM(“DRAM”)、相變RAM(“PRAM”)等。在其它實(shí)施方案中,存儲(chǔ)裝置可為被組織用于作為按順序存儲(chǔ)數(shù)據(jù)的日志結(jié)構(gòu)文件系統(tǒng)來(lái)存儲(chǔ)數(shù)據(jù)的硬盤(pán)驅(qū)動(dòng)器、光盤(pán)驅(qū)動(dòng)器、帶存儲(chǔ)器等。在另一個(gè)實(shí)施方案中,存儲(chǔ)裝置106包括作為性能較低的長(zhǎng)期存儲(chǔ)裝置(諸如硬盤(pán)驅(qū)動(dòng)器)的高速緩沖存儲(chǔ)器來(lái)操作的高性能存儲(chǔ)裝置,諸如閃速存儲(chǔ)器。2007年12月6日提交的標(biāo)題為"Apparatus,System,andMethodforSolid-StateStorageasCacheforHigh-Capacity,Non-VolatileStorage“的美國(guó)專(zhuān)利申請(qǐng)No.11/952,123(DavidFlynn等)中描述了作為大容量非易失性存儲(chǔ)裝置的高速緩沖存儲(chǔ)器來(lái)操作的固態(tài)存儲(chǔ)器的一個(gè)實(shí)例,該專(zhuān)利以引用的方式并入本文。在另一個(gè)實(shí)施方案中,存儲(chǔ)裝置106連同存儲(chǔ)控制器104可為服務(wù)器內(nèi)存儲(chǔ)區(qū)域網(wǎng)絡(luò)(“SAN”)的一部分,并且可與一個(gè)或多個(gè)客戶(hù)端110、存儲(chǔ)控制器104或位于設(shè)置存儲(chǔ)裝置106和存儲(chǔ)控制器104的服務(wù)器108外部的服務(wù)器108通信。2007年12月6日提交的標(biāo)題為"Apparatus,System,andMethodforanIn-ServerStorageAreaNetwork"的美國(guó)專(zhuān)利申請(qǐng)No.11/952,106(DavidFlyrm等)中描述了服務(wù)器內(nèi)SAN的一個(gè)實(shí)例,該專(zhuān)利以引用的方式并入本文。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到其它存儲(chǔ)裝置106,其中在存儲(chǔ)系統(tǒng)102中分配和管理邏輯標(biāo)識(shí)符是有利的。系統(tǒng)100包括服務(wù)器108。服務(wù)器108可在計(jì)算機(jī)諸如工作站、主計(jì)算機(jī)、個(gè)人計(jì)算機(jī)、膝上型計(jì)算機(jī)或可訪問(wèn)存儲(chǔ)裝置106的其它計(jì)算設(shè)備中得以體現(xiàn)。在一個(gè)實(shí)施方案中,服務(wù)器108為計(jì)算機(jī)內(nèi)的一個(gè)分區(qū)。服務(wù)器108可包括物理外殼。存儲(chǔ)系統(tǒng)102可位于服務(wù)器108的物理外殼中,例如作為插入服務(wù)器108的主板中的外設(shè)部件互連擴(kuò)展(“PCIExpress”或“PCI-e”)卡。存儲(chǔ)系統(tǒng)102可部分地位于服務(wù)器108的物理外殼內(nèi)。例如,如果所述存儲(chǔ)系統(tǒng)具有在運(yùn)行服務(wù)器108的處理器上運(yùn)行的驅(qū)動(dòng)器118,則存儲(chǔ)控制器和/或存儲(chǔ)裝置106可位于插入計(jì)算機(jī)中或通過(guò)電纜連接的外殼中。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到存儲(chǔ)系統(tǒng)102可連接至服務(wù)器108或與服務(wù)器108關(guān)聯(lián)的計(jì)算機(jī)的一部分的多種方式。在所述實(shí)施方案中,服務(wù)器108包括經(jīng)由存儲(chǔ)接口116連接至存儲(chǔ)系統(tǒng)102的文件服務(wù)器114/文件系統(tǒng)。在一個(gè)實(shí)施方案中,文件系統(tǒng)為被一個(gè)或多個(gè)客戶(hù)端110訪問(wèn)的文件服務(wù)器114的部件??蛻?hù)端110和/或文件系統(tǒng)/文件服務(wù)器114通過(guò)存儲(chǔ)接口116來(lái)訪問(wèn)存儲(chǔ)系統(tǒng)102。通常,文件系統(tǒng)/文件服務(wù)器114連接至存儲(chǔ)系統(tǒng)102的驅(qū)動(dòng)器118,并且驅(qū)動(dòng)器118通過(guò)存儲(chǔ)裝置接口120與存儲(chǔ)控制器104和一個(gè)或多個(gè)存儲(chǔ)裝置106交互。存儲(chǔ)裝置接口116可為PCI-e總線、串行高級(jí)技術(shù)附件(“serialATA”)總線、并行ATA等。在另一個(gè)實(shí)施方案中,存儲(chǔ)裝置接口116為外部總線,諸如小型計(jì)算機(jī)系統(tǒng)接口(“SCSI”)、火線、光纖通道、通用串行總線(“USB”)、PCIe高級(jí)交換(“PCIe-AS”)等。文件服務(wù)器114/文件系統(tǒng)通??晒芾碓L問(wèn)存儲(chǔ)系統(tǒng)102的一個(gè)或多個(gè)客戶(hù)端110的文件。在一個(gè)實(shí)施方案中,不存在驅(qū)動(dòng)器118,并且文件服務(wù)器114/文件系統(tǒng)經(jīng)由存儲(chǔ)裝置接口120直接與存儲(chǔ)控制器104通信。例如,存儲(chǔ)控制器104可模擬一種裝置,該裝置可在加載驅(qū)動(dòng)器118時(shí)短暫地,或較長(zhǎng)一段時(shí)間地直接連接至文件服務(wù)器114/文件系統(tǒng)。系統(tǒng)100包括一個(gè)或多個(gè)客戶(hù)端110。在一個(gè)實(shí)施方案中,一個(gè)或多個(gè)客戶(hù)端110通過(guò)一個(gè)或多個(gè)計(jì)算機(jī)網(wǎng)絡(luò)112與服務(wù)器108和文件服務(wù)器114通信。在另一個(gè)實(shí)施方案中,服務(wù)器108包括一個(gè)或多個(gè)客戶(hù)端110。客戶(hù)端110可為在服務(wù)器108或其它計(jì)算機(jī)上運(yùn)行的應(yīng)用程序。從存儲(chǔ)系統(tǒng)102的角度,文件服務(wù)器114可為客戶(hù)端110,而在下文中“客戶(hù)端”110可包括文件服務(wù)器114。計(jì)算機(jī)網(wǎng)絡(luò)112可包括因特網(wǎng)、廣域網(wǎng)(“WAN”)、城域網(wǎng)(“MAN”)、局域網(wǎng)(“LAN”),、令牌環(huán)、無(wú)線網(wǎng)絡(luò)、光纖通道網(wǎng)絡(luò)、SAN、網(wǎng)絡(luò)附加存儲(chǔ)(“NAS”)、ESCON等或任何網(wǎng)絡(luò)組合。計(jì)算機(jī)網(wǎng)絡(luò)112還可包括來(lái)自網(wǎng)絡(luò)技術(shù)(諸如以太網(wǎng)、令牌環(huán)、WiFi、WiMax等)的IEEE802族的網(wǎng)絡(luò),并且包括便于通信的電纜線路和部件??蛻?hù)端110可為主機(jī)、服務(wù)器、SAN的存儲(chǔ)控制器、工作站、個(gè)人計(jì)算機(jī)、膝上型計(jì)算機(jī)、手持式計(jì)算機(jī)、超級(jí)計(jì)算機(jī)、計(jì)算機(jī)集群、網(wǎng)絡(luò)交換機(jī)、路由器或裝置、數(shù)據(jù)庫(kù)或存儲(chǔ)裝置、數(shù)據(jù)采集或數(shù)據(jù)收集系統(tǒng)、診斷系統(tǒng)、測(cè)試系統(tǒng)、機(jī)器人、便攜式電子裝置、無(wú)線電裝置、文件服務(wù)器114等。客戶(hù)端110可在通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)112與服務(wù)器108通信的計(jì)算機(jī)或服務(wù)器上運(yùn)行??蛻?hù)端110可指示文件系統(tǒng)對(duì)文件、對(duì)象、邏輯塊或存儲(chǔ)在存儲(chǔ)系統(tǒng)102中的其它數(shù)據(jù)單元進(jìn)行讀取、寫(xiě)入、刪除、修改等。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,對(duì)象可具有很廣泛的定義。雖然術(shù)語(yǔ)“對(duì)象”可能并非始終包括所有數(shù)據(jù)單元,但在本申請(qǐng)中,“對(duì)象”應(yīng)當(dāng)從廣義理解并且可包括文件或其它數(shù)據(jù)結(jié)構(gòu)。然后,文件服務(wù)器114/文件系統(tǒng)可采用數(shù)據(jù)單元的邏輯名與使文件服務(wù)器114/文件系統(tǒng)與數(shù)據(jù)單元關(guān)聯(lián)的邏輯標(biāo)識(shí)符之間的映射來(lái)存取數(shù)據(jù)單元。在典型的實(shí)施方案中,文件服務(wù)器114/文件系統(tǒng)將數(shù)據(jù)單元的數(shù)據(jù)組織成邏輯塊并且將邏輯塊地址與每個(gè)邏輯塊關(guān)聯(lián)。邏輯塊地址可為文件服務(wù)器114/文件系統(tǒng)打算將邏輯塊存儲(chǔ)在存儲(chǔ)系統(tǒng)102中的位置。然后,文件服務(wù)器114/文件系統(tǒng)可通過(guò)SCSI命令讀取請(qǐng)求、寫(xiě)入請(qǐng)求等來(lái)指示存儲(chǔ)系統(tǒng)102。在本發(fā)明中,在存儲(chǔ)系統(tǒng)102中管理和分配邏輯標(biāo)識(shí)符,諸如邏輯塊地址,如下文將更詳細(xì)地討論。在一個(gè)實(shí)施方案中,甚至在存儲(chǔ)系統(tǒng)102并非隨機(jī)存取系統(tǒng)時(shí),文件服務(wù)器114/文件系統(tǒng)也將存儲(chǔ)系統(tǒng)102中的存儲(chǔ)處理為隨機(jī)存取裝置。在典型的隨機(jī)存取裝置中,邏輯標(biāo)識(shí)符與隨機(jī)存取裝置的物理地址幾乎為一一對(duì)應(yīng)。典型的隨機(jī)存取裝置中的該一對(duì)一映射(不包括隨機(jī)存取裝置上被預(yù)留以進(jìn)行不良?jí)K映射的少量物理地址)也與與邏輯標(biāo)識(shí)符關(guān)聯(lián)的存儲(chǔ)容量和與物理地址關(guān)聯(lián)的物理容量之間的近一對(duì)一關(guān)系有關(guān)。例如,如果邏輯標(biāo)識(shí)符為邏輯塊地址(“LBA”),則與LBA關(guān)聯(lián)的每個(gè)邏輯塊均具有固定大小。隨機(jī)存取裝置上的相應(yīng)物理塊通常與邏輯塊具有相同大小。這能夠使典型的文件服務(wù)器114/文件系統(tǒng)通過(guò)管理邏輯標(biāo)識(shí)符(諸如LBA)來(lái)管理隨機(jī)存取裝置上的物理容量。LBA到PBA映射的這種連續(xù)性通常取決于文件系統(tǒng)并且通過(guò)文件系統(tǒng)用于對(duì)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)裝置上的數(shù)據(jù)消除碎化。類(lèi)似地,一些系統(tǒng)可使用該連續(xù)性將數(shù)據(jù)設(shè)置在特定物理磁道上以提高性能,如同稱(chēng)為磁盤(pán)驅(qū)動(dòng)器"短擊(shortstroking)“的技術(shù)中的情況。高度可預(yù)測(cè)性LBA到PBA映射在某些應(yīng)用中是必要的,以通過(guò)直接管理邏輯地址空間來(lái)間接管理數(shù)據(jù)在物理地址空間中的存儲(chǔ)。然而,存儲(chǔ)系統(tǒng)102可為日志結(jié)構(gòu)文件系統(tǒng),使得不存在確定LBA到PBA映射的“固定"關(guān)系或算法,或在另一個(gè)實(shí)施方案中,存儲(chǔ)系統(tǒng)102可為隨機(jī)存取系統(tǒng),但可被不止一個(gè)客戶(hù)端110或文件服務(wù)器114/文件系統(tǒng)訪問(wèn),使得分配給每個(gè)客戶(hù)端110或文件服務(wù)器114/文件系統(tǒng)的邏輯標(biāo)識(shí)符表示遠(yuǎn)大于典型系統(tǒng)的邏輯到物理標(biāo)識(shí)符的一對(duì)一關(guān)系的存儲(chǔ)容量。存儲(chǔ)系統(tǒng)102也可為精簡(jiǎn)配置系統(tǒng),使得一個(gè)或多個(gè)客戶(hù)端110各自均具有遠(yuǎn)大于存儲(chǔ)系統(tǒng)102中的存儲(chǔ)裝置106的存儲(chǔ)容量的分配的邏輯地址范圍。在系統(tǒng)100中,存儲(chǔ)系統(tǒng)102管理和分配邏輯標(biāo)識(shí)符,使得邏輯標(biāo)識(shí)符與物理標(biāo)識(shí)符之間不存在一對(duì)一或近一對(duì)一關(guān)系。系統(tǒng)100是有利的,因?yàn)榕c典型的存儲(chǔ)系統(tǒng)相比,其可更有效地管理存儲(chǔ)容量。例如,對(duì)于多個(gè)客戶(hù)端110可訪問(wèn)的典型的隨機(jī)存取裝置而言,如果向每個(gè)客戶(hù)端分配一定量的存儲(chǔ)空間,則分配中通常會(huì)存在和占用存儲(chǔ)空間,即使占用的實(shí)際存儲(chǔ)空間的量遠(yuǎn)小于此。系統(tǒng)100也是有利的,因?yàn)橄到y(tǒng)100降低了連接至存儲(chǔ)裝置106的標(biāo)準(zhǔn)精簡(jiǎn)配置系統(tǒng)的復(fù)雜性。標(biāo)準(zhǔn)精簡(jiǎn)配置系統(tǒng)具有精簡(jiǎn)配置層,諸如按順序存儲(chǔ)數(shù)據(jù)的日志結(jié)構(gòu)文件系統(tǒng)或固態(tài)存儲(chǔ)器,該精簡(jiǎn)配置層除了具有存儲(chǔ)裝置106的邏輯到物理映射之外,還具有邏輯到邏輯映射。系統(tǒng)100更有效,因?yàn)橄硕鄠€(gè)層映射并且在最低層進(jìn)行精簡(jiǎn)配置(邏輯到物理映射)。圖IB為示出了根據(jù)本發(fā)明的分配數(shù)據(jù)存儲(chǔ)空間的系統(tǒng)101的另一個(gè)實(shí)施方案的示意性框圖。圖IB所示的系統(tǒng)101為圖IA所示的系統(tǒng)100的變型。系統(tǒng)101包括經(jīng)由存儲(chǔ)接口116連接至驅(qū)動(dòng)器118的存儲(chǔ)系統(tǒng)102、經(jīng)由存儲(chǔ)裝置接口120連接至每個(gè)存儲(chǔ)控制器104的驅(qū)動(dòng)器118以及存儲(chǔ)裝置106a-n,其基本上類(lèi)似于以上關(guān)于圖IA的系統(tǒng)100描述的那些。系統(tǒng)101還包括連接至計(jì)算機(jī)網(wǎng)絡(luò)112的一個(gè)或多個(gè)客戶(hù)端110,這些客戶(hù)端110也基本上類(lèi)似于以上關(guān)于圖IA的系統(tǒng)100描述的那些。在圖IB的系統(tǒng)101中,客戶(hù)端110各自具有文件服務(wù)器114/文件系統(tǒng)并且通過(guò)存儲(chǔ)裝置122來(lái)訪問(wèn)存儲(chǔ)系統(tǒng)102。文件服務(wù)器114/文件系統(tǒng)可為分布式文件服務(wù)器/文件系統(tǒng),諸如IBM的GPFS或Lustre集群文件系統(tǒng)。存儲(chǔ)裝置122可為SAN控制器、RAID控制器等并且每個(gè)文件服務(wù)器114/文件系統(tǒng)可獨(dú)立連接至存儲(chǔ)系統(tǒng)102的存儲(chǔ)裝置106。存儲(chǔ)裝置122可為存儲(chǔ)系統(tǒng)102的客戶(hù)端110。在這種情況下,系統(tǒng)101是有利的,因?yàn)樵谝粋€(gè)實(shí)施方案中,每個(gè)文件服務(wù)器114/文件系統(tǒng)可采用標(biāo)準(zhǔn)SCSI協(xié)議或標(biāo)準(zhǔn)SCSI協(xié)議的擴(kuò)展將存儲(chǔ)系統(tǒng)102的附加存儲(chǔ)處理為SCSI裝置。即使存儲(chǔ)系統(tǒng)102的實(shí)際存儲(chǔ)空間遠(yuǎn)小于分配給各個(gè)客戶(hù)端110的存儲(chǔ)空間,每個(gè)客戶(hù)端110及其文件服務(wù)器114/文件系統(tǒng)也可操作,如同其可完全訪問(wèn)通過(guò)存儲(chǔ)系統(tǒng)102分配給客戶(hù)端110的存儲(chǔ)空間。存儲(chǔ)系統(tǒng)102可有效地管理和分配客戶(hù)端110的邏輯標(biāo)識(shí)符,同時(shí)使文件服務(wù)器114/文件系統(tǒng)使用標(biāo)準(zhǔn)協(xié)議以連接至存儲(chǔ)系統(tǒng)102。在另一個(gè)實(shí)施方案中,存儲(chǔ)系統(tǒng)102在虛擬化操作系統(tǒng)(諸如VMware)上的虛擬服務(wù)器或客戶(hù)機(jī)內(nèi)管理和分配客戶(hù)端110的邏輯標(biāo)識(shí)符。在另一個(gè)實(shí)施方案中,文件服務(wù)器114/文件系統(tǒng)被配置為卸載存儲(chǔ)系統(tǒng)102的分配管理并通過(guò)分配請(qǐng)求、分配查詢(xún)等與存儲(chǔ)裝置驅(qū)動(dòng)器118通信,并且接收對(duì)這些請(qǐng)求的回復(fù),如下文將更詳細(xì)地闡述。存儲(chǔ)裝置106可位于存儲(chǔ)裝置122中或位于存儲(chǔ)裝置122的外部。在一個(gè)實(shí)施方案中,一個(gè)或多個(gè)存儲(chǔ)裝置106位于存儲(chǔ)裝置122中并且一個(gè)或多個(gè)存儲(chǔ)裝置106位于存儲(chǔ)裝置122的外部。存儲(chǔ)裝置106可與存儲(chǔ)裝置122布置在一起或可遠(yuǎn)離存儲(chǔ)裝置122。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到其它存儲(chǔ)裝置122以及存儲(chǔ)裝置122和存儲(chǔ)裝置106的其它配置。在一個(gè)實(shí)施方案中,一個(gè)或多個(gè)客戶(hù)端110還包括除了存儲(chǔ)系統(tǒng)102中示出的驅(qū)動(dòng)器118之外的驅(qū)動(dòng)器118(未示出)。在另一個(gè)實(shí)施方案中,存儲(chǔ)系統(tǒng)102不包括驅(qū)動(dòng)器118,但每個(gè)客戶(hù)端110均包括驅(qū)動(dòng)器118。驅(qū)動(dòng)器118通常用于解譯命令以及存儲(chǔ)系統(tǒng)102與文件服務(wù)器114/文件系統(tǒng)或存儲(chǔ)裝置122之間的其它通信。在一個(gè)實(shí)施方案中,存儲(chǔ)系統(tǒng)102模擬標(biāo)準(zhǔn)存儲(chǔ)裝置,直到加載驅(qū)動(dòng)器118。然后,驅(qū)動(dòng)器118可使得附加特征和命令在不存在驅(qū)動(dòng)器118的情況下不可用。圖IC為示出了根據(jù)本發(fā)明的分配數(shù)據(jù)存儲(chǔ)空間的系統(tǒng)103的另一個(gè)實(shí)施方案的示意性框圖。系統(tǒng)103包括具有存儲(chǔ)裝置106a-n的兩個(gè)或更多個(gè)存儲(chǔ)系統(tǒng)lOh-n,每個(gè)存儲(chǔ)系統(tǒng)lOh-n在服務(wù)器108a-n中均通過(guò)一個(gè)或多個(gè)計(jì)算機(jī)網(wǎng)絡(luò)112連接至客戶(hù)端110。系統(tǒng)103還包括與每個(gè)服務(wù)器108通信并且可與客戶(hù)端110通信的主分配管理器124。存儲(chǔ)裝置106、存儲(chǔ)系統(tǒng)102、服務(wù)器108、客戶(hù)端110和計(jì)算機(jī)網(wǎng)絡(luò)112基本上類(lèi)似于以上關(guān)于圖IA和IB的系統(tǒng)100、101描述的那些。另外,系統(tǒng)103包括存儲(chǔ)控制器104、存儲(chǔ)接口116、文件服務(wù)器114/文件系統(tǒng),并且可包括驅(qū)動(dòng)器118以及上述其它部件和零件。圖IC的系統(tǒng)103中描述的實(shí)施方案旨在表明具有存儲(chǔ)系統(tǒng)102的服務(wù)器108的數(shù)量不受限制,并且可包括不止一個(gè)存儲(chǔ)系統(tǒng)103。在一個(gè)實(shí)施方案中,系統(tǒng)103包括主分配管理器124。在一個(gè)實(shí)施方案中,主分配管理器IM在高層上管理存儲(chǔ)空間分配。例如,主分配管理器IM可向每個(gè)客戶(hù)端110分配存儲(chǔ)容量。然后,主分配管理器1可與每個(gè)存儲(chǔ)系統(tǒng)10-!!協(xié)調(diào),以分配和管理每個(gè)客戶(hù)端110的邏輯標(biāo)識(shí)符。在一個(gè)實(shí)施方案中,主分配管理器IM在高層上管理存儲(chǔ)空間,從而分配存儲(chǔ)容量、限制存儲(chǔ)容量、向客戶(hù)端110指定存儲(chǔ)系統(tǒng)102或存儲(chǔ)裝置106等,同時(shí)存儲(chǔ)系統(tǒng)102通過(guò)追蹤和分配邏輯標(biāo)識(shí)符并且將邏輯標(biāo)識(shí)符映射到物理位置來(lái)在低層上進(jìn)行管理和分配。主分配管理器1將分配請(qǐng)求、物理容量請(qǐng)求、分配查詢(xún)等發(fā)送至存儲(chǔ)系統(tǒng)lOh-n并且接收使主分配管理器IM能夠管理邏輯空間的回復(fù)。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到使主分配管理器1與分配和管理邏輯標(biāo)識(shí)符的存儲(chǔ)系統(tǒng)102結(jié)合的其它方式。在一個(gè)實(shí)施方案中,不同于也可管理邏輯和/或物理分配的精簡(jiǎn)配置層,主分配管理器IM無(wú)需進(jìn)行邏輯到邏輯重映射。主分配管理器IM可執(zhí)行為精簡(jiǎn)配置系統(tǒng)所共有的其它分配功能,但卸載存儲(chǔ)系統(tǒng)102的初次分配(邏輯和物理分配)。固態(tài)存儲(chǔ)裝置圖2為示出了固態(tài)存儲(chǔ)裝置控制器202的具體實(shí)施方案200的示意性框圖,固態(tài)存儲(chǔ)裝置控制器202可包括根據(jù)本發(fā)明的分配數(shù)據(jù)存儲(chǔ)空間的設(shè)備。固態(tài)存儲(chǔ)裝置206包括寫(xiě)入數(shù)據(jù)管道301和讀取數(shù)據(jù)管道303,這在下文關(guān)于圖3的討論中更詳細(xì)地描述。固態(tài)存儲(chǔ)裝置控制器202可包括多個(gè)固態(tài)存儲(chǔ)控制器O-N204a-n,每個(gè)控制器2(Ma-n均控制固態(tài)存儲(chǔ)器207。在所述實(shí)施方案中,示出了兩個(gè)固態(tài)控制器固態(tài)控制器020和固態(tài)存儲(chǔ)控制器N204η,并且每個(gè)控制器均控制固態(tài)存儲(chǔ)器207a-n。在所述實(shí)施方案中,固態(tài)存儲(chǔ)控制器020控制數(shù)據(jù)通道,以使得附加固態(tài)存儲(chǔ)器207a存儲(chǔ)數(shù)據(jù)。固態(tài)存儲(chǔ)控制器N20控制與存儲(chǔ)數(shù)據(jù)關(guān)聯(lián)的索引元數(shù)據(jù)通道,并且關(guān)聯(lián)的固態(tài)存儲(chǔ)器207η存儲(chǔ)索引元數(shù)據(jù)。在替代實(shí)施方案中,固態(tài)存儲(chǔ)裝置控制器202包括具有單個(gè)固態(tài)存儲(chǔ)器207a的單個(gè)固態(tài)控制器2(Ma。在另一個(gè)實(shí)施方案中,存在多個(gè)固態(tài)存儲(chǔ)控制器2(Ma-n和關(guān)聯(lián)的固態(tài)存儲(chǔ)器207a-n。在一個(gè)實(shí)施方案中,耦合至其關(guān)聯(lián)的固態(tài)存儲(chǔ)器207a-207n-l的一個(gè)或多個(gè)固態(tài)控制器2(Ma-204n-l控制數(shù)據(jù),而耦合至其關(guān)聯(lián)的固態(tài)存儲(chǔ)器207η的至少一個(gè)固態(tài)存儲(chǔ)控制器20控制索引元數(shù)據(jù)。在一個(gè)實(shí)施方案中,至少一個(gè)固態(tài)控制器204為現(xiàn)場(chǎng)可編程門(mén)陣列(“FPGA”),并且控制器功能被編入FPGA中。在具體實(shí)施方案中,F(xiàn)PGA為XilinxFPGA。在另一個(gè)實(shí)施方案中,固態(tài)存儲(chǔ)控制器204包括被專(zhuān)門(mén)設(shè)計(jì)為固態(tài)存儲(chǔ)控制器204的部件,諸如專(zhuān)用集成電路(“ASIC”)或定制邏輯解法。在另一個(gè)實(shí)施方案中,至少一個(gè)固態(tài)存儲(chǔ)控制器204由FPGA、ASIC和定制邏輯元件的組合構(gòu)成。固態(tài)存儲(chǔ)器固態(tài)存儲(chǔ)器206為非易失性固態(tài)存儲(chǔ)元件216、218、220的陣列,非易失性固態(tài)存儲(chǔ)元件216、218、220設(shè)置在存儲(chǔ)體214中并且通過(guò)雙向存儲(chǔ)輸入/輸出(“I/O”)總線210并行訪問(wèn)。在一個(gè)實(shí)施方案中,存儲(chǔ)I/O總線210能夠在任何一個(gè)時(shí)間進(jìn)行單向通信。例如,當(dāng)數(shù)據(jù)被寫(xiě)入固態(tài)存儲(chǔ)器207吋,不能從固態(tài)存儲(chǔ)器207中讀取數(shù)據(jù)。在另ー個(gè)實(shí)施方案中,數(shù)據(jù)可同時(shí)雙向流動(dòng)。然而,如本文針對(duì)數(shù)據(jù)總線所用,雙向是指可具有毎次僅單向流動(dòng)的數(shù)據(jù)的數(shù)據(jù)路徑,但當(dāng)數(shù)據(jù)停止在雙向數(shù)據(jù)總線上單向流動(dòng)時(shí),數(shù)據(jù)可在雙向數(shù)據(jù)總線上反向流動(dòng)。當(dāng)維護(hù)控制總線212內(nèi)的控制線和地址線吋,通過(guò)存儲(chǔ)I/O總線210以位級(jí)寫(xiě)入和讀取數(shù)據(jù)。固態(tài)存儲(chǔ)元件(例如SSS0.0216a)通常被配置成電路板上的芯片(ー個(gè)或多個(gè)小片的包)或小片。如同所述,固態(tài)存儲(chǔ)元件(例如216a)獨(dú)立于或半獨(dú)立于其它固態(tài)存儲(chǔ)元件(例如218a)操作,即使這些若干元件一起被封裝在芯片包、芯片包的堆?;蚰硞€(gè)其它封裝元件中。如同所述,固態(tài)存儲(chǔ)元件216、218、220的列被指定為存儲(chǔ)體214。如同所述,在固態(tài)存儲(chǔ)器207中的ηχm個(gè)固態(tài)存儲(chǔ)元件216、218、220的陣列中,可存在“η”個(gè)存儲(chǔ)體2Ha-n,并且每個(gè)存儲(chǔ)體中可存在“m”個(gè)固態(tài)存儲(chǔ)元件216a-m、218a-m、220a-m。在一個(gè)實(shí)施方案中,固態(tài)存儲(chǔ)器207a包括八個(gè)存儲(chǔ)體214,每個(gè)存儲(chǔ)體214中具有二十個(gè)固態(tài)存儲(chǔ)元件216、218、220,并且固態(tài)存儲(chǔ)器207η包括一個(gè)存儲(chǔ)體214,每個(gè)存儲(chǔ)體214中具有2個(gè)固態(tài)存儲(chǔ)元件216、218。在一個(gè)實(shí)施方案中,每個(gè)固態(tài)存儲(chǔ)元件216、218、220均由單層単元(“SLC”)裝置構(gòu)成。在另ー個(gè)實(shí)施方案中,每個(gè)固態(tài)存儲(chǔ)元件216、218、220均由多層単元(“MLC”)裝置構(gòu)成。在一個(gè)實(shí)施方案中,將共享公用存儲(chǔ)I/O總線210a行(例如216b、218b、220b)的多個(gè)存儲(chǔ)體的固態(tài)存儲(chǔ)元件封裝在一起。在另ー個(gè)實(shí)施方案中,固態(tài)存儲(chǔ)元件216、218、220在每個(gè)芯片中可具有ー個(gè)或多個(gè)小片,其中一個(gè)或多個(gè)芯片垂直堆疊,并且可獨(dú)立訪問(wèn)每個(gè)小片。在另ー個(gè)實(shí)施方案中,固態(tài)存儲(chǔ)元件(例如SSS0.0216a)在每個(gè)小片中可具有一個(gè)或多個(gè)虛擬小片并且在每個(gè)芯片中可具有ー個(gè)或多個(gè)小片,其中一個(gè)或多個(gè)芯片垂直堆疊,并且可獨(dú)立訪問(wèn)每個(gè)虛擬小片。在另ー個(gè)實(shí)施方案中,固態(tài)存儲(chǔ)元件SSS0.0216a在每個(gè)小片中可具有一個(gè)或多個(gè)虛擬小片并且在每個(gè)芯片中可具有ー個(gè)或多個(gè)小片,其中所述ー個(gè)或多個(gè)小片中的ー些或全部垂直堆疊,并且可獨(dú)立訪問(wèn)每個(gè)虛擬小片。在一個(gè)實(shí)施方案中,兩個(gè)小片以每組四個(gè)堆棧進(jìn)行垂直堆疊,以形成八個(gè)存儲(chǔ)元件(例如SSS0.O-SSS0.8)216a-220a,每個(gè)存儲(chǔ)元件均位于單獨(dú)的存儲(chǔ)體2Ha_n中。在另ー個(gè)實(shí)施方案中,20個(gè)存儲(chǔ)元件(例如SSS0.O-SSS20.0)216構(gòu)成虛擬存儲(chǔ)體21(或邏輯存儲(chǔ)體),以使得八個(gè)虛擬存儲(chǔ)體中的每ー個(gè)均具有20個(gè)存儲(chǔ)元件(例如SSSO.O-SSS20.8)216,218,220ο通過(guò)連接至特定一組存儲(chǔ)元件(SSS0.O-SSS0.8)216a、218a、220a的所有存儲(chǔ)元件的存儲(chǔ)I/O總線210將數(shù)據(jù)發(fā)送至固態(tài)存儲(chǔ)器207。存儲(chǔ)控制總線21用于選擇特定存儲(chǔ)體(例如存儲(chǔ)體-0214a),以使得通過(guò)連接至所有存儲(chǔ)體214的存儲(chǔ)I/O總線210接收的數(shù)據(jù)恰好被寫(xiě)入選定的存儲(chǔ)體21中。在優(yōu)選的實(shí)施方案中,存儲(chǔ)I/O總線210由ー個(gè)或多個(gè)獨(dú)立I/O總線構(gòu)成(包括210a.a-m、210n.a-m的“IIOBa-m”),其中每行內(nèi)的固態(tài)存儲(chǔ)元件共享并行訪問(wèn)每個(gè)固態(tài)存儲(chǔ)元件216、218、220的獨(dú)立I/O總線之一,以使得所有存儲(chǔ)體214被同時(shí)訪問(wèn)。例如,存儲(chǔ)I/O總線210的一個(gè)通道可同時(shí)訪問(wèn)每個(gè)存儲(chǔ)體2Ha-n的第一固態(tài)存儲(chǔ)元件216a、218a、220a。存儲(chǔ)I/O總線210的第二通道可同時(shí)訪問(wèn)每個(gè)存儲(chǔ)體2Ha-n的第二固態(tài)存儲(chǔ)元件216b、218b、220b。同時(shí)訪問(wèn)每行固態(tài)存儲(chǔ)元件216、218、220。在一個(gè)實(shí)施方案中,如果固態(tài)存儲(chǔ)元件216、218、220為多層(物理堆疊),則同時(shí)訪問(wèn)固態(tài)存儲(chǔ)元件216、218、220的所有物理層。如本文所用,“同時(shí)”還包括幾乎同時(shí)訪問(wèn),其中以稍微不同的間隔來(lái)訪問(wèn)裝置以避免開(kāi)關(guān)噪聲。在此背景下使用的同時(shí)不同于其中相繼地單獨(dú)發(fā)送命令和/或數(shù)據(jù)的順序或串行訪問(wèn)。通常,采用存儲(chǔ)控制總線212來(lái)獨(dú)立地選擇存儲(chǔ)體2Ha-n。在一個(gè)實(shí)施方案中,采用芯片啟動(dòng)或芯片選擇來(lái)選擇存儲(chǔ)體214。如果芯片選擇和芯片啟動(dòng)均可用,則存儲(chǔ)控制總線212可選擇多層固態(tài)存儲(chǔ)元件216、218、220中的ー層。在其它實(shí)施方案中,存儲(chǔ)控制總線212使用其它命令來(lái)単獨(dú)地選擇多層固態(tài)存儲(chǔ)元件216、218、220中的ー層。也可通過(guò)在存儲(chǔ)I/O總線210和存儲(chǔ)控制總線212上發(fā)送的控制信息和地址信息的組合來(lái)選擇固態(tài)存儲(chǔ)元件216、218、220。在一個(gè)實(shí)施方案中,每個(gè)固態(tài)存儲(chǔ)元件216、218、220均分成擦除塊,并且每個(gè)擦除塊均分成頁(yè)面。典型的頁(yè)面為2000字節(jié)(“2kB”)。在一個(gè)實(shí)例中,固態(tài)存儲(chǔ)元件(例如SSS0.0)包括兩個(gè)寄存器并且可對(duì)兩個(gè)頁(yè)面進(jìn)行編程,以使得雙寄存器固態(tài)存儲(chǔ)元件216、218、220具有4kB的容量。然后,具有20個(gè)固態(tài)存儲(chǔ)元件216、218、220的存儲(chǔ)體214會(huì)具有SOkB的頁(yè)面容量,這些容量可通過(guò)離開(kāi)存儲(chǔ)I/O總線210的通道的同一地址進(jìn)行訪問(wèn)。具有固態(tài)存儲(chǔ)元件216、218、220的80kB存儲(chǔ)體214中的該組頁(yè)面可被稱(chēng)為虛擬或邏輯頁(yè)面。類(lèi)似地,可將存儲(chǔ)體21的每個(gè)存儲(chǔ)元件216a-m的擦除塊分組以形成虛擬或邏輯擦除塊。在優(yōu)選的實(shí)施方案中,當(dāng)在固態(tài)存儲(chǔ)元件216、218、220內(nèi)接收到擦除命令吋,將固態(tài)存儲(chǔ)元件216、218、220內(nèi)的頁(yè)面的擦除塊擦除。盡管預(yù)計(jì)固態(tài)存儲(chǔ)元件216、218、220內(nèi)的擦除塊、頁(yè)面、位面或其它邏輯和物理分區(qū)的大小和數(shù)量通過(guò)技術(shù)改進(jìn)會(huì)隨時(shí)間改變,但可以預(yù)計(jì)與新配置一致的許多實(shí)施方案可被實(shí)施并且符合本文的一般說(shuō)明。通常,當(dāng)將包寫(xiě)入固態(tài)存儲(chǔ)元件216、218、220內(nèi)的特定位置吋,如果旨在將該包寫(xiě)入特定頁(yè)面內(nèi)的某個(gè)位置,其中該特定頁(yè)面為特定存儲(chǔ)體的特定元件的特定擦除塊所特有,則在存儲(chǔ)I/O總線210上發(fā)送物理地址,然后發(fā)送所述包。所述物理地址包含足夠的信息,以便固態(tài)存儲(chǔ)元件216、218、220將所述包指向以上頁(yè)面內(nèi)的指定位置。因?yàn)榇鎯?chǔ)I/O總線210a.a內(nèi)的適當(dāng)總線同時(shí)訪問(wèn)一行存儲(chǔ)元件(例如SSS0.O-SSS0.N216a,218a,220a)中的所有存儲(chǔ)元件,以到達(dá)正確頁(yè)面并且避免將數(shù)據(jù)包寫(xiě)入該行存儲(chǔ)元件(SSS0.O-SSSO.N216a,218a,220a)中以類(lèi)似方式尋址的頁(yè)面,所以通過(guò)存儲(chǔ)控制總線212來(lái)同時(shí)選擇包括固態(tài)存儲(chǔ)元件SSS0.0216a的存儲(chǔ)體214a,其中固態(tài)存儲(chǔ)元件SSS0.0216a具有將數(shù)據(jù)包寫(xiě)入的正確頁(yè)面。類(lèi)似地,在存儲(chǔ)I/O總線212上移動(dòng)的讀取命令需要存儲(chǔ)控制總線212上的同步命令,以選擇單個(gè)存儲(chǔ)體21和該存儲(chǔ)體21內(nèi)的適當(dāng)頁(yè)面。在優(yōu)選的實(shí)施方案中,讀取命令讀取整個(gè)頁(yè)面,并且因?yàn)榇鎯?chǔ)體214中并行存在多個(gè)固態(tài)存儲(chǔ)元件216、218、220,所以整個(gè)邏輯頁(yè)面通過(guò)讀取命令來(lái)讀取。然而,所述讀取命令可分成子命令,如下文將針對(duì)存儲(chǔ)體交錯(cuò)所闡述。也可在寫(xiě)入操作中訪問(wèn)邏輯頁(yè)面??赏ㄟ^(guò)存儲(chǔ)I/O總線210發(fā)送擦除塊擦除命令以將擦除塊擦除,所述擦除塊具有特定擦除塊地址以擦除特定擦除塊。通常,可通過(guò)存儲(chǔ)I/O總線210的并行路徑發(fā)送擦除塊擦除命令以擦除邏輯擦除塊,每個(gè)邏輯擦除塊均具有特定擦除塊地址以擦除特定擦除塊。同吋,通過(guò)存儲(chǔ)控制總線212來(lái)選擇特定存儲(chǔ)體(例如存儲(chǔ)體-0214a),以防止將所有存儲(chǔ)體(存儲(chǔ)體I-N214b-n)中以類(lèi)似方式尋址的擦除塊擦除。也可采用存儲(chǔ)I/O總線210和存儲(chǔ)控制總線212的組合將其它命令發(fā)送至特定位置。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到采用雙向存儲(chǔ)I/O總線210和存儲(chǔ)控制總線212來(lái)選擇特定存儲(chǔ)位置的其它方式。在一個(gè)實(shí)施方案中,將數(shù)據(jù)包按順序?qū)懭牍虘B(tài)存儲(chǔ)器207。例如,數(shù)據(jù)包流入具有存儲(chǔ)元件216的存儲(chǔ)體21的存儲(chǔ)寫(xiě)入緩沖器中,并且當(dāng)所述緩沖器已滿(mǎn)時(shí),將這些數(shù)據(jù)包編程為指定的邏輯頁(yè)面。然后,數(shù)據(jù)包再次填充存儲(chǔ)寫(xiě)入緩沖器,并且在已滿(mǎn)吋,將這些包寫(xiě)入同一邏輯頁(yè)面(如果存在空間)或?qū)懭胂漏`個(gè)邏輯頁(yè)面。下一個(gè)邏輯頁(yè)面可位于同一存儲(chǔ)體21或另ー個(gè)存儲(chǔ)體(例如214b)中。該進(jìn)程以邏輯頁(yè)面緊接邏輯頁(yè)面的方式繼續(xù)進(jìn)行,通常直到邏輯擦除塊被填充。在另ー個(gè)實(shí)施方案中,所述流動(dòng)可在整個(gè)邏輯擦除塊邊界中繼續(xù)進(jìn)行,同時(shí)該進(jìn)程以邏輯擦除塊緊接邏輯擦除塊的方式繼續(xù)進(jìn)行。在一個(gè)實(shí)施方案中,邏輯頁(yè)面(例如216a-n)中的每個(gè)固態(tài)存儲(chǔ)元件包括ー個(gè)或多個(gè)追加點(diǎn)。追加點(diǎn)可位于下一次寫(xiě)入來(lái)自寫(xiě)入緩沖器的數(shù)據(jù)的位置。一旦在追加點(diǎn)處寫(xiě)入數(shù)據(jù),則該追加點(diǎn)移動(dòng)至該數(shù)據(jù)的終端。該進(jìn)程通常繼續(xù)進(jìn)行直到邏輯擦除塊已滿(mǎn)。然后,將追加點(diǎn)移動(dòng)至不同邏輯擦除塊。保留寫(xiě)入邏輯擦除塊的順序,從而如果包括邏輯地址與物理地址之間的映射的索引已損壞或丟失,則可重放存儲(chǔ)數(shù)據(jù)的順序以重建該索引。該類(lèi)順序存儲(chǔ)可被稱(chēng)為日志結(jié)構(gòu)陣列,并且具有該類(lèi)順序存儲(chǔ)的存儲(chǔ)系統(tǒng)102可為ー種日志結(jié)構(gòu)系統(tǒng)。在該順序存儲(chǔ)系統(tǒng)或日志結(jié)構(gòu)文件系統(tǒng)中,當(dāng)在讀取-修改-寫(xiě)入操作中修改數(shù)據(jù)時(shí),從ー個(gè)位置讀取數(shù)據(jù),對(duì)其進(jìn)行修改,然后將其寫(xiě)入追加點(diǎn)而非讀取該數(shù)據(jù)的位置的頂部上方。所述索引將與以上數(shù)據(jù)關(guān)聯(lián)的邏輯標(biāo)識(shí)符映射到存儲(chǔ)與該邏輯標(biāo)識(shí)符相對(duì)應(yīng)的數(shù)據(jù)的每個(gè)位置。如果不需要無(wú)效數(shù)據(jù),則可在無(wú)用單元收集操作中擦除這些數(shù)據(jù),并且更新所述索引以反映所述無(wú)效數(shù)據(jù)已被清除。也可在所述索引中追蹤以上數(shù)據(jù)的較早版本,以追蹤每個(gè)版本。如果所述索引已損壞,則重放所述順序以重建該索引,并且在每次遇到特定邏輯標(biāo)識(shí)符的數(shù)據(jù)時(shí),將所述索引更新。一旦已重放整個(gè)順序,通常將特定邏輯標(biāo)識(shí)符的最新版本的數(shù)據(jù)映射到該邏輯標(biāo)識(shí)符。在一個(gè)實(shí)施方案中,每個(gè)固態(tài)存儲(chǔ)元件216、218、220包括不止ー個(gè)追加點(diǎn)。例如,熱數(shù)據(jù)(例如新數(shù)據(jù)或常用數(shù)據(jù))可按順序存儲(chǔ)在一個(gè)邏輯擦除塊的追加點(diǎn)處,而冷數(shù)據(jù)(例如不常用數(shù)據(jù))可存儲(chǔ)在另ー個(gè)邏輯擦除塊中的不同追加點(diǎn)處。在各個(gè)實(shí)施方案中,固態(tài)存儲(chǔ)元件216、218、220可具有超過(guò)兩個(gè)追加點(diǎn)。在讀取、修改、寫(xiě)入操作中,在讀取操作中設(shè)置和讀取與數(shù)據(jù)單元關(guān)聯(lián)的數(shù)據(jù)包。未將修改的數(shù)據(jù)單元中已修改的數(shù)據(jù)段寫(xiě)入其讀取位置。相反,再次將修改的數(shù)據(jù)段轉(zhuǎn)換成數(shù)據(jù)包,然后將其寫(xiě)入當(dāng)前寫(xiě)入的邏輯頁(yè)面中的下ー個(gè)可用位置。修改各個(gè)數(shù)據(jù)包的索引條目,以指向包含修改的數(shù)據(jù)段的包。與相同數(shù)據(jù)單元關(guān)聯(lián)的未經(jīng)修改數(shù)據(jù)包的索引中的條目或多個(gè)條目將包括未修改數(shù)據(jù)包的原始位置的指示字。因此,如果保留原始數(shù)據(jù)單元,例如保留數(shù)據(jù)單元的前ー個(gè)版本,則原始數(shù)據(jù)單元將在所述索引中具有初始寫(xiě)入的所有數(shù)據(jù)包的指示字。新數(shù)據(jù)單元將在所述索引中具有某些原始數(shù)據(jù)包的指示字,并且具有當(dāng)前寫(xiě)入的邏輯頁(yè)面中的修改的數(shù)據(jù)包的指示字。在復(fù)寫(xiě)操作中,所述索引包括原始數(shù)據(jù)單元的條目,所述原始數(shù)據(jù)單元映射到存儲(chǔ)在固態(tài)存儲(chǔ)器207中的多個(gè)包。在一個(gè)實(shí)施方案中,在進(jìn)行復(fù)寫(xiě)吋,在將新數(shù)據(jù)單元映射到源包的索引中,創(chuàng)建新數(shù)據(jù)單元并且創(chuàng)建新條目。新數(shù)據(jù)單元也被寫(xiě)入固態(tài)存儲(chǔ)器207,同時(shí)其位置被映射到所述索引中的新條目。在改變已在原始數(shù)據(jù)單元中做出但尚未傳播至副本并且所述索引已丟失或損壞的情況下,新數(shù)據(jù)單元包可用于識(shí)別原始數(shù)據(jù)單元內(nèi)被引用的包。通常,對(duì)于順序存儲(chǔ)而言,在將數(shù)據(jù)存儲(chǔ)在存儲(chǔ)裝置106上之前,寫(xiě)入該數(shù)據(jù)的物理地址是未知的,但可在存儲(chǔ)該數(shù)據(jù)時(shí)確定。通常,數(shù)據(jù)存儲(chǔ)裝置中的可用物理存儲(chǔ)容量未被映射到LID,直到將對(duì)應(yīng)于該LID的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)裝置中時(shí)或至少直到確定了存儲(chǔ)該數(shù)據(jù)的追加點(diǎn)的位置吋。有利地,將包按順序?qū)懭胗欣诟椒€(wěn)地使用固態(tài)存儲(chǔ)器207并且使得固態(tài)存儲(chǔ)裝置控制器202監(jiān)測(cè)固態(tài)存儲(chǔ)器207中各個(gè)邏輯頁(yè)面的存儲(chǔ)熱點(diǎn)和層使用率。將包按順序?qū)懭胍灿欣谟行У拇蠊β薀o(wú)用單元收集系統(tǒng),這將在下文進(jìn)行詳細(xì)描述。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到數(shù)據(jù)包的順序存儲(chǔ)的其它有益效果。固態(tài)存儲(chǔ)裝置控制器在各個(gè)實(shí)施方案中,固態(tài)存儲(chǔ)裝置控制器202還包括數(shù)據(jù)總線205、局部總線209、緩沖控制器208、緩沖器O-N22加-11、主控制器224、直接存儲(chǔ)器存取(“DMA”)控制器226、內(nèi)存控制器228、動(dòng)態(tài)存儲(chǔ)器陣列ぬ0、靜態(tài)隨機(jī)存儲(chǔ)器陣列ぬ2、管理控制器ぬ4、管理總線236、橋接器238至系統(tǒng)總線MO以及混雜邏輯M2,如下所述。在其它實(shí)施方案中,系統(tǒng)總線240耦接至一個(gè)或多個(gè)網(wǎng)絡(luò)接ロ卡(“NIC”)244,一些網(wǎng)絡(luò)接ロ卡244可包括遠(yuǎn)程DMA(“RDMA”)控制器M6、一個(gè)或多個(gè)中央處理器(“CPU”)248、ー個(gè)或多個(gè)外部?jī)?nèi)存控制器250和關(guān)聯(lián)的外部存儲(chǔ)器陣列252、一個(gè)或多個(gè)存儲(chǔ)控制器254、對(duì)端控制器(peercontroller)256和專(zhuān)用處理器258,如下所述。連接至系統(tǒng)總線MO的部件244-258可位于服務(wù)器108中或可為其它裝置。通常,固態(tài)存儲(chǔ)控制器204通過(guò)存儲(chǔ)I/O總線210將數(shù)據(jù)傳送至固態(tài)存儲(chǔ)器207。在典型的實(shí)施方案中,如果固態(tài)存儲(chǔ)器設(shè)置在存儲(chǔ)體214中,并且每個(gè)存儲(chǔ)體214均包括并行訪問(wèn)的多個(gè)存儲(chǔ)元件216、218、220,則存儲(chǔ)I/O總線210為總線的陣列,每行存儲(chǔ)元件216、218、220中的一個(gè)總線跨越存儲(chǔ)體214。如本文所用,術(shù)語(yǔ)“存儲(chǔ)I/O總線”可指一個(gè)存儲(chǔ)I/O總線210或數(shù)據(jù)獨(dú)立總線(未示出)的陣列。在優(yōu)選的實(shí)施方案中,訪問(wèn)一行存儲(chǔ)元件(例如216a、218a、220a)的每個(gè)存儲(chǔ)I/O總線210可包括在一行存儲(chǔ)元件216a、218a、220a中訪問(wèn)的存儲(chǔ)分區(qū)(例如擦除塊)的邏輯到物理映射。該映射也可使映射到某個(gè)存儲(chǔ)分區(qū)的物理地址處的邏輯地址重新映射到不同存儲(chǔ)分區(qū),其前提是第一存儲(chǔ)分區(qū)失效、部分失效、不可訪問(wèn)或存在某種其它問(wèn)題。也可通過(guò)系統(tǒng)總線M0、橋接器238、局部總線209、緩沖器222并且最終通過(guò)數(shù)據(jù)總線205將數(shù)據(jù)從請(qǐng)求裝置(諸如客戶(hù)端110或文件服務(wù)器114/文件系統(tǒng))傳送至固態(tài)存儲(chǔ)控制器204。數(shù)據(jù)總線205通常連接至通過(guò)緩沖控制器208控制的一個(gè)或多個(gè)緩沖器22h-n。緩沖控制器208通??刂茢?shù)據(jù)從局部總線209傳送至緩沖器222以及通過(guò)數(shù)據(jù)總線205傳送至管道輸入緩沖器306和輸出緩沖器330(見(jiàn)圖幻。緩沖控制器208通??刂迫绾慰蓪?lái)自請(qǐng)求裝置的數(shù)據(jù)暫時(shí)存儲(chǔ)在緩沖器222中,然后傳送到數(shù)據(jù)總線205上(或反之亦然),以解釋不同時(shí)鐘域的原因,防止數(shù)據(jù)沖突等。緩沖控制器208通常與主控制器224一起運(yùn)行,以協(xié)調(diào)數(shù)據(jù)流。隨著數(shù)據(jù)的到達(dá),數(shù)據(jù)將到達(dá)系統(tǒng)總線對(duì)0,通過(guò)橋接器238傳送至局部總線209。通常,將所述數(shù)據(jù)從局部總線209傳送至一個(gè)或多個(gè)數(shù)據(jù)緩沖器222,如主控制器224和緩沖控制器208所指示。然后,所述數(shù)據(jù)通過(guò)固態(tài)控制器204從緩沖器222流向數(shù)據(jù)總線205,并且流到固態(tài)存儲(chǔ)器207諸如NAND閃存或其它存儲(chǔ)介質(zhì)上。在優(yōu)選的實(shí)施方案中,采用包括一個(gè)或多個(gè)固態(tài)存儲(chǔ)控制器204a-2(Mn-l和關(guān)聯(lián)的固態(tài)存儲(chǔ)器207a-207n-l的一個(gè)或多個(gè)數(shù)據(jù)通道來(lái)傳送與所述數(shù)據(jù)一起到達(dá)的數(shù)據(jù)和關(guān)聯(lián)的帶外元數(shù)據(jù)(“數(shù)據(jù)單元的元數(shù)據(jù)”),而至少一個(gè)通道(固態(tài)存儲(chǔ)控制器20、固態(tài)存儲(chǔ)器207η)專(zhuān)用于帶內(nèi)元數(shù)據(jù),諸如在固態(tài)存儲(chǔ)裝置206內(nèi)部生成的索引信息和其它元數(shù)據(jù)。局部總線209通常為雙向總線或一組總線,其允許在位于固態(tài)存儲(chǔ)裝置控制器202內(nèi)部的裝置之間以及在位于固態(tài)存儲(chǔ)裝置206內(nèi)部的裝置與連接至系統(tǒng)總線MO的裝置244-258之間進(jìn)行的數(shù)據(jù)和命令通信。橋接器238有利于局部總線209與系統(tǒng)總線240之間的通信。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到其它實(shí)施方案,諸如總線Μ0、209、205、210和橋接器238的環(huán)形結(jié)構(gòu)或交換式星形配置和功能。系統(tǒng)總線240通常為計(jì)算機(jī)、服務(wù)器108或安裝或連接有固態(tài)存儲(chǔ)裝置206的其它裝置的總線。在一個(gè)實(shí)施方案中,系統(tǒng)總線240可為PCI-e總線、串行高級(jí)技術(shù)附件("serialATA”)總線、并行ATA等。在另ー個(gè)實(shí)施方案中,系統(tǒng)總線240為外部總線,諸如小型計(jì)算機(jī)系統(tǒng)接ロ(“SCSI”)、火線、光纖通道、USB、PCIe-AS等。固態(tài)存儲(chǔ)裝置206可被封裝以裝配在裝置內(nèi)部或作為外部連接裝置。固態(tài)存儲(chǔ)裝置控制器202包括控制固態(tài)存儲(chǔ)裝置206內(nèi)的高層功能的主控制器224。在各個(gè)實(shí)施方案中,主控制器2M通過(guò)解譯存儲(chǔ)請(qǐng)求和其它請(qǐng)求來(lái)控制數(shù)據(jù)流,指示索引的創(chuàng)建以將與數(shù)據(jù)關(guān)聯(lián)的標(biāo)識(shí)符映射到關(guān)聯(lián)數(shù)據(jù)的物理位置,從而協(xié)調(diào)DMA請(qǐng)求等。本文所述功能中的多個(gè)通過(guò)主控制器2M來(lái)完全或部分控制。在一個(gè)實(shí)施方案中,主控制器2M采用嵌入式控制器。在另ー個(gè)實(shí)施方案中,主控制器2M采用局部存儲(chǔ)器,諸如動(dòng)態(tài)存儲(chǔ)器陣列230(動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器“DRAM”)、靜態(tài)存儲(chǔ)器陣列323(靜態(tài)隨機(jī)存取存儲(chǔ)器“SRAM”)等。在一個(gè)實(shí)施方案中,局部存儲(chǔ)器通過(guò)主控制器2M來(lái)控制。在另ー個(gè)實(shí)施方案中,主控制器經(jīng)由內(nèi)存控制器2來(lái)訪問(wèn)局部存儲(chǔ)器。在另ー個(gè)實(shí)施方案中,主控制器運(yùn)行Linux服務(wù)器,并且可支持各種通用服務(wù)器接ロ,諸如萬(wàn)維網(wǎng)、超文本標(biāo)記語(yǔ)言(“HTML”)等。在另ー個(gè)實(shí)施方案中,主控制器2M采用納米處理器。主控制器2M可采用可編程邏輯或標(biāo)準(zhǔn)邏輯,或上列控制器類(lèi)型的任何組合來(lái)構(gòu)建。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到主控制器224的多個(gè)實(shí)施方案。在一個(gè)實(shí)施方案中,如果存儲(chǔ)控制器104/固態(tài)存儲(chǔ)裝置控制器202管理多個(gè)數(shù)據(jù)存儲(chǔ)裝置106/固態(tài)存儲(chǔ)器207a-n,則主控制器2M將工作負(fù)荷分配在內(nèi)部控制器(諸如固態(tài)存儲(chǔ)控制器2(Ma-n)之間。例如,主控制器2M可分配待寫(xiě)入數(shù)據(jù)存儲(chǔ)裝置(例如固態(tài)存儲(chǔ)器207a-n)的數(shù)據(jù),以使得所述數(shù)據(jù)的一部分存儲(chǔ)在每個(gè)附加數(shù)據(jù)存儲(chǔ)裝置106/固態(tài)存儲(chǔ)器207上。這個(gè)特征為允許較快地存儲(chǔ)和存取數(shù)據(jù)的性能增強(qiáng)。在一個(gè)實(shí)施方案中,主控制器2M采用FPGA來(lái)實(shí)施。固態(tài)存儲(chǔ)裝置控制器202也可采用FPGA來(lái)實(shí)施。在另一個(gè)實(shí)施方案中,主控制器224內(nèi)的固件可通過(guò)管理總線236、經(jīng)由網(wǎng)絡(luò)連接至網(wǎng)絡(luò)接ロ卡(“NIC”)244的系統(tǒng)總線240或連接至系統(tǒng)總線MO的其它裝置來(lái)更新。在一個(gè)實(shí)施方案中,管理對(duì)象、文件、另ー個(gè)數(shù)據(jù)單元的主控制器2M模擬塊存儲(chǔ),使得計(jì)算機(jī)或服務(wù)器108或連接至存儲(chǔ)裝置106/固態(tài)存儲(chǔ)裝置206的其它裝置將存儲(chǔ)裝置106/固態(tài)存儲(chǔ)裝置206視為塊存儲(chǔ)裝置并且將分成邏輯塊的數(shù)據(jù)發(fā)送至存儲(chǔ)裝置106/固態(tài)存儲(chǔ)裝置206中的特定邏輯塊地址。然后,主控制器2M劃分邏輯塊并且存儲(chǔ)來(lái)自這些邏輯塊的數(shù)據(jù),如同其對(duì)任何其它數(shù)據(jù)単元(諸如對(duì)象)的處理方式。然后,主控制器2M將這些邏輯塊和與其一起發(fā)送的邏輯塊地址映射到存儲(chǔ)數(shù)據(jù)的實(shí)際物理位置。所述映射存儲(chǔ)在索引中。通常,對(duì)于邏輯塊仿真而言,塊裝置應(yīng)用程序接ロ(“API”)設(shè)置在服務(wù)器108的驅(qū)動(dòng)器118、客戶(hù)端110或期望將存儲(chǔ)裝置106/固態(tài)存儲(chǔ)裝置206用作塊存儲(chǔ)裝置的其它裝置中。在另ー個(gè)實(shí)施方案中,主控制器224與NIC控制器244和嵌入式RDMA控制器246協(xié)調(diào),以提供剛好及時(shí)的數(shù)據(jù)和命令集RDMA傳送。NIC控制器244可隱藏在非透明端ロ后面,以能夠使用定制驅(qū)動(dòng)器。另外,客戶(hù)端110上的驅(qū)動(dòng)器可通過(guò)采用標(biāo)準(zhǔn)堆棧API且與NIC244—起操作經(jīng)由I/O存儲(chǔ)驅(qū)動(dòng)器來(lái)訪問(wèn)計(jì)算機(jī)網(wǎng)絡(luò)118。在一個(gè)實(shí)施方案中,主控制器2M也為RAID控制器。如果數(shù)據(jù)存儲(chǔ)裝置/固態(tài)存儲(chǔ)裝置206與一個(gè)或多個(gè)其它數(shù)據(jù)存儲(chǔ)裝置106/固態(tài)存儲(chǔ)裝置206進(jìn)行網(wǎng)絡(luò)連接,則主控制器2M可為單層RAID、多層RAID、漸進(jìn)RAID等的RAID控制器。主控制器224也使得一些對(duì)象存儲(chǔ)在RAID陣列中,而使得其它對(duì)象在無(wú)需RAID的情況下存儲(chǔ)。在另ー個(gè)實(shí)施方案中,主控制器2M可為分布式RAID控制器元件。在另ー個(gè)實(shí)施方案中,主控制器2M可包括多個(gè)RAID、分布式RAID以及如其它地方描述的其它功能。在一個(gè)實(shí)施方案中,主控制器2M與單個(gè)或冗余網(wǎng)絡(luò)管理器(例如交換機(jī))協(xié)調(diào),以建立路由,平衡帶寬利用率、故障轉(zhuǎn)移等。在另ー個(gè)實(shí)施方案中,主控制器224與集成專(zhuān)用邏輯(經(jīng)由局部總線209)和關(guān)聯(lián)的驅(qū)動(dòng)器軟件協(xié)調(diào)。在另ー個(gè)實(shí)施方案中,主控制器2M與附加專(zhuān)用處理器258或邏輯(經(jīng)由外部系統(tǒng)總線M0)和關(guān)聯(lián)的驅(qū)動(dòng)器軟件協(xié)調(diào)。在另ー個(gè)實(shí)施方案中,主控制器2M與遠(yuǎn)程專(zhuān)用邏輯(經(jīng)由計(jì)算機(jī)網(wǎng)絡(luò)118)和關(guān)聯(lián)的驅(qū)動(dòng)器軟件協(xié)調(diào)。在另ー個(gè)實(shí)施方案中,主控制器224與局部總線209或外部總線連接的硬盤(pán)驅(qū)動(dòng)器(“HDD”)存儲(chǔ)控制器協(xié)調(diào)??刂破?02可使存儲(chǔ)控制器2M對(duì)客戶(hù)端不可見(jiàn)。在一個(gè)實(shí)施方案中,主控制器2M與一個(gè)或多個(gè)存儲(chǔ)控制器2M通信,其中存儲(chǔ)裝置106/固態(tài)存儲(chǔ)裝置206可作為通過(guò)SCSI總線、互聯(lián)網(wǎng)SCSI(“SCSI”)、光纖通道等連接的存儲(chǔ)裝置。同吋,存儲(chǔ)裝置106/固態(tài)存儲(chǔ)裝置206可自主管理對(duì)象、文件和其它數(shù)據(jù)單元,并且可作為對(duì)象文件系統(tǒng)、分布式對(duì)象文件系統(tǒng)、文件系統(tǒng)等。主控制器2M也可被對(duì)端控制器256和/或?qū)S锰幚砥?58訪問(wèn)。在另ー個(gè)實(shí)施方案中,主控制器224與自主型集成管理控制器協(xié)調(diào),以定期驗(yàn)證FPGA代碼和/或控制器軟件,在運(yùn)行(重置)時(shí)驗(yàn)證FPGA代碼和/或在通電(重置)期間驗(yàn)證控制器軟件,支持外部重置請(qǐng)求,支持由于監(jiān)視器超時(shí)產(chǎn)生的重置請(qǐng)求,并且支持電壓、電流、功率、溫度以及閾值中斷的其它環(huán)境測(cè)量和設(shè)置。在另ー個(gè)實(shí)施方案中,主控制器224管理對(duì)未使用的擦除塊進(jìn)行的無(wú)用單元收集,以便再次使用。在另ー個(gè)實(shí)施方案中,主控制器2M管理耗損均衡、存儲(chǔ)單元的刷新等。在另ー個(gè)實(shí)施方案中,主控制器2M使數(shù)據(jù)存儲(chǔ)裝置/固態(tài)存儲(chǔ)裝置206分成多個(gè)虛擬裝置并且允許基于分區(qū)的介質(zhì)加密。在另ー個(gè)實(shí)施方案中,主控制器2M支持具有高級(jí)多位ECC糾錯(cuò)的固態(tài)存儲(chǔ)控制器204。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到存儲(chǔ)控制器104或更具體地固態(tài)存儲(chǔ)裝置206中的主控制器224的其它特征和功能。在一個(gè)實(shí)施方案中,固態(tài)存儲(chǔ)裝置控制器202包括控制動(dòng)態(tài)隨機(jī)存儲(chǔ)器陣列230和/或靜態(tài)隨機(jī)存儲(chǔ)器陣列232的內(nèi)存控制器228。如上所述,內(nèi)存控制器2可為獨(dú)立的或與主控制器224結(jié)合。內(nèi)存控制器2通??刂颇撤N類(lèi)型的易失性存儲(chǔ)器,諸如DRAM(動(dòng)態(tài)隨機(jī)存儲(chǔ)器陣列ぬ0)和SRAM(靜態(tài)隨機(jī)存儲(chǔ)器陣列ぬ2)。在其它實(shí)例中,內(nèi)存控制器2也控制其它存儲(chǔ)器類(lèi)型,諸如電可擦可編程只讀存儲(chǔ)器(“EEPR0M”)等。在其它實(shí)施方案中,內(nèi)存控制器2控制兩種或更多種存儲(chǔ)器類(lèi)型,并且內(nèi)存控制器2可包括不止ー個(gè)控制器。通常,內(nèi)存控制器228以盡可能可行的方式控制SRAM232,并且通過(guò)DRAM230來(lái)補(bǔ)充SRAM232ο在一個(gè)實(shí)施方案中,將索引存儲(chǔ)在存儲(chǔ)器230、232中,然后將其定期卸載到固態(tài)存儲(chǔ)器207η或其它非易失性存儲(chǔ)器的通道中。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到內(nèi)存控制器228、動(dòng)態(tài)存儲(chǔ)器陣列230和靜態(tài)存儲(chǔ)器陣列232的其它用途和配置。在一個(gè)實(shí)施方案中,固態(tài)存儲(chǔ)裝置控制器202包括DMA控制器226,DMA控制器2控制存儲(chǔ)裝置/固態(tài)存儲(chǔ)裝置206與ー個(gè)或多個(gè)外部?jī)?nèi)存控制器250、關(guān)聯(lián)的外部存儲(chǔ)器陣列252和CPU248之間的DMA操作。注意到,外部?jī)?nèi)存控制器250和外部存儲(chǔ)器陣列252被稱(chēng)為外部裝置,因?yàn)槠湮挥诖鎯?chǔ)裝置/固態(tài)存儲(chǔ)裝置206的外部。另外,DMA控制器2也可通過(guò)NIC244和關(guān)聯(lián)的RDMA控制器246與請(qǐng)求裝置一起控制RDMA操作。下文更詳細(xì)地闡述了DMA和RDMA。在一個(gè)實(shí)施方案中,固態(tài)存儲(chǔ)裝置控制器202包括連接至管理總線236的管理控制器234。通常管理控制器234管理存儲(chǔ)裝置/固態(tài)存儲(chǔ)裝置206的環(huán)境指標(biāo)和狀態(tài)。管理控制器234可通過(guò)管理總線236來(lái)監(jiān)測(cè)裝置溫度、風(fēng)扇速度、電源設(shè)置值等。管理控制器可支持可擦可編程只讀存儲(chǔ)器(“EEPR0M”)的讀取和編程,以存儲(chǔ)FPGA代碼和控制器軟件。通常,管理總線236連接至存儲(chǔ)裝置/固態(tài)存儲(chǔ)裝置206內(nèi)的各個(gè)部件。管理控制器234可通過(guò)局部總線209來(lái)傳送警報(bào)、中斷等或可包括系統(tǒng)總線240或其它總線的單獨(dú)接線。在一個(gè)實(shí)施方案中,管理總線236為內(nèi)部集成電路(“I2C”)總線。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到管理控制器234的其它相關(guān)功能和用途,管理控制器234通過(guò)管理總線236連接至存儲(chǔ)裝置/固態(tài)存儲(chǔ)裝置206的部件。在一個(gè)實(shí)施方案中,固態(tài)存儲(chǔ)裝置控制器202包括可針對(duì)具體應(yīng)用來(lái)定制的混雜邏輯M2。通常,如果固態(tài)裝置控制器202或主控制器2采用FPGA或其它可配置控制器來(lái)配置,則根據(jù)特定應(yīng)用程序、用戶(hù)要求、存儲(chǔ)要求等可包括定制邏輯。數(shù)據(jù)管道圖3為示出了根據(jù)本發(fā)明的固態(tài)存儲(chǔ)控制器204的一個(gè)實(shí)施方案300的示意性框圖,固態(tài)存儲(chǔ)控制器204具有位于固態(tài)存儲(chǔ)裝置206中的寫(xiě)入數(shù)據(jù)管道301和讀取數(shù)據(jù)管道303。實(shí)施方案300包括數(shù)據(jù)總線205、局部總線209和緩沖控制器208,其基本上類(lèi)似于關(guān)于圖2的固態(tài)存儲(chǔ)裝置控制器202描述的那些。寫(xiě)入數(shù)據(jù)管道包括分包器302和錯(cuò)誤校正碼(“ECC”)生成器304。在其它實(shí)施方案中,寫(xiě)入數(shù)據(jù)管道包括輸入緩沖器306、寫(xiě)入同步緩沖器308、寫(xiě)入程序模塊310、壓縮模塊312、加密模塊314、無(wú)用單元收集程序旁路316(其一部分位于讀取數(shù)據(jù)管道內(nèi))、介質(zhì)加密模塊318和寫(xiě)入緩沖器320。讀取數(shù)據(jù)管道303包括讀取同步緩沖器328、ECC糾錯(cuò)模塊322、解包器324、對(duì)齊模塊3和輸出緩沖器330。在其它實(shí)施方案中,讀取數(shù)據(jù)管道303可包括介質(zhì)解密模塊332、無(wú)用單元收集程序旁路316的一部分、解密模塊334、解壓縮模塊336和讀取程序模塊338。固態(tài)存儲(chǔ)控制器204還可包括控制和狀態(tài)寄存器340、控制隊(duì)列342、存儲(chǔ)體交錯(cuò)控制器344、同步緩沖器346、存儲(chǔ)總線控制器348和復(fù)用器(“MUX”)350。下文描述了固態(tài)控制器204與關(guān)聯(lián)的寫(xiě)入數(shù)據(jù)管道301和讀取數(shù)據(jù)管道303的部件。在其它實(shí)施方案中,可使用同步固態(tài)存儲(chǔ)器207,并且可消除同步緩沖器308、328。寫(xiě)入數(shù)據(jù)管道寫(xiě)入數(shù)據(jù)管道301包括分包器302,分包器302接收通過(guò)另ー個(gè)寫(xiě)入數(shù)據(jù)管道301階段直接或間接地寫(xiě)入固態(tài)存儲(chǔ)器的數(shù)據(jù)或元數(shù)據(jù)段,并且創(chuàng)建針對(duì)固態(tài)存儲(chǔ)器207來(lái)設(shè)置大小的ー個(gè)或多個(gè)包。所述數(shù)據(jù)或元數(shù)據(jù)段通常為對(duì)象、文件、索引節(jié)點(diǎn)或其它數(shù)據(jù)単元的一部分,但還可包括整個(gè)對(duì)象、文件、索引節(jié)點(diǎn)等。在另ー個(gè)實(shí)施方案中,數(shù)據(jù)段為邏輯數(shù)據(jù)塊的一部分,但還可包括整個(gè)邏輯塊。通常,從服務(wù)器108、客戶(hù)端110或者其它計(jì)算機(jī)或裝置處接收數(shù)據(jù)單元或數(shù)據(jù)單元的一部分,并且將其以流入固態(tài)存儲(chǔ)裝置206或服務(wù)器108中的數(shù)據(jù)段發(fā)送至固態(tài)存儲(chǔ)裝置206。數(shù)據(jù)段可具有固定或可變長(zhǎng)度,并且也可具有另ー個(gè)名稱(chēng),諸如數(shù)據(jù)包裏,但如本文所引用,其包括諸如文件、對(duì)象、邏輯塊等數(shù)據(jù)單元的全部或部分。每個(gè)數(shù)據(jù)單元均被存儲(chǔ)為ー個(gè)或多個(gè)包。每個(gè)數(shù)據(jù)單元均可具有ー個(gè)或多個(gè)容器包。每個(gè)包均包含標(biāo)題。標(biāo)題可包括標(biāo)題類(lèi)型字段。類(lèi)型字段可包括數(shù)據(jù)、屬性(諸如對(duì)象屬性)、元數(shù)據(jù)、數(shù)據(jù)段定界符(多包)、對(duì)象或其它結(jié)構(gòu)、鏈接等。標(biāo)題還可包括關(guān)于包大小的信息,諸如該包中包括的數(shù)據(jù)的字節(jié)數(shù)。包的長(zhǎng)度可通過(guò)包類(lèi)型來(lái)確定。標(biāo)題可包括建立包與數(shù)據(jù)單元的關(guān)系的信息,諸如邏輯標(biāo)識(shí)符。一個(gè)實(shí)例可能為邏輯塊地址和偏移,其使用數(shù)據(jù)包標(biāo)題中的偏移來(lái)識(shí)別數(shù)據(jù)段在數(shù)據(jù)單元內(nèi)的位置。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到通過(guò)分包器302添加至數(shù)據(jù)的標(biāo)題中可包括的其它信息和可添加至數(shù)據(jù)包的其它信息。每個(gè)包均包括標(biāo)題和可能來(lái)自數(shù)據(jù)或元數(shù)據(jù)段的數(shù)據(jù)。每個(gè)包的標(biāo)題包括將包與該包所屬的數(shù)據(jù)單元關(guān)聯(lián)的相關(guān)信息。例如,標(biāo)題可包括對(duì)象標(biāo)識(shí)符和偏移,其指示數(shù)據(jù)段、對(duì)象、邏輯塊或形成數(shù)據(jù)包的其它數(shù)據(jù)単元。標(biāo)題還可包括被存儲(chǔ)總線控制器348用來(lái)存儲(chǔ)包的邏輯標(biāo)識(shí)符。標(biāo)題還可包括關(guān)于包大小的信息,諸如該包中包括的字節(jié)數(shù)。標(biāo)題還可包括順序號(hào),該順序號(hào)在重構(gòu)數(shù)據(jù)段或數(shù)據(jù)單元吋,識(shí)別數(shù)據(jù)段相對(duì)于數(shù)據(jù)單元內(nèi)的其它包的所屬位置。標(biāo)題可包括標(biāo)題類(lèi)型字段。類(lèi)型字段可包括數(shù)據(jù)、對(duì)象屬性、元數(shù)據(jù)、數(shù)據(jù)段定界符(多包)、對(duì)象結(jié)構(gòu)、對(duì)象鏈接等。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到通過(guò)分包器302添加至數(shù)據(jù)或元數(shù)據(jù)的標(biāo)題中可包括的其它信息和可添加至包的其它信息。寫(xiě)入數(shù)據(jù)管道301包括ECC生成器304,其向從分包器302接收的ー個(gè)或多個(gè)包生成一個(gè)或多個(gè)錯(cuò)誤校正碼(“ECC”)。ECC生成器304通常采用糾錯(cuò)算法來(lái)生成通過(guò)數(shù)據(jù)包存儲(chǔ)的ECC。通過(guò)所述包存儲(chǔ)的ECC通常用于檢測(cè)和校正通過(guò)傳輸和存儲(chǔ)而引入數(shù)據(jù)中的錯(cuò)誤。在一個(gè)實(shí)施方案中,使包流向ECC生成器304中以作為具有長(zhǎng)度N的非編碼塊(“ECC·”)。ECC塊通常具有若干個(gè)包,但可為單個(gè)包。包可跨越多個(gè)ECC塊。ECC塊通常小于邏輯頁(yè)面,但在其它實(shí)施方案中,其可大于單個(gè)邏輯頁(yè)面。ECC塊、包、邏輯頁(yè)面、邏輯擦除塊等可對(duì)齊或不對(duì)齊。針對(duì)ECC塊計(jì)算長(zhǎng)度S的檢驗(yàn)子,追加該檢驗(yàn)子并且將其作為長(zhǎng)度N+S的編碼ECC組塊來(lái)輸出。在優(yōu)選的實(shí)施方案中,檢驗(yàn)子S針對(duì)跨越多個(gè)物理頁(yè)面使得ー個(gè)或多個(gè)ECC塊存儲(chǔ)在邏輯頁(yè)面中的ECC塊。N和S的值取決于被選擇用于實(shí)現(xiàn)特定性能、效率和穩(wěn)健性指標(biāo)的算法的特性。在該優(yōu)選的實(shí)施方案中,ECC塊與包之間不存在固定關(guān)系;包可包括不止ー個(gè)ECC塊;ECC塊可包括不止ー個(gè)包;并且第一包可在ECC塊內(nèi)的任何位置終止,而第二包可在第一包在同一ECC塊內(nèi)終止之后開(kāi)始。在該優(yōu)選的實(shí)施方案中,未動(dòng)態(tài)修改ECC算法。在優(yōu)選的實(shí)施方案中,通過(guò)數(shù)據(jù)包存儲(chǔ)的ECC足夠穩(wěn)健以校正超過(guò)兩位的錯(cuò)誤。有利地,采用允許進(jìn)行不僅僅単位校正或甚至雙位校正的穩(wěn)健ECC算法可延長(zhǎng)固態(tài)存儲(chǔ)器207的壽命。例如,如果將閃速存儲(chǔ)器用作固態(tài)存儲(chǔ)器207中的存儲(chǔ)介質(zhì),則每個(gè)擦除周期可將閃速存儲(chǔ)器寫(xiě)入大約100,000次,而不會(huì)產(chǎn)生錯(cuò)誤??刹捎梅€(wěn)健ECC算法來(lái)延長(zhǎng)該使用極限。通過(guò)使ECC生成器304和相應(yīng)ECC糾錯(cuò)模塊322位于固態(tài)存儲(chǔ)裝置206上,固態(tài)存儲(chǔ)裝置206可在內(nèi)部校正錯(cuò)誤,并且比采用穩(wěn)健性較低的ECC算法(諸如單位校正)具有更長(zhǎng)的使用壽命。2009年5月18日提交的標(biāo)題為〃Apparatus,System,andMethodtoIncreaseDataIntegrityinaRedundantStorageSystem"的美_專(zhuān)禾丨J申請(qǐng)No.12/468,041(JonathanThatcher等)和2009年5月18日提交的標(biāo)題為“Apparatus,System,anaMethodiorReconfiguringanArraytoOperatewithLessStorageElements"的美國(guó)專(zhuān)利申請(qǐng)No.12/468,040(JonathanThatcher等)中更詳細(xì)地描述了將遍布用于減少耗損的存儲(chǔ)元件的ECC組塊用于存儲(chǔ)裝置106中的ー個(gè)實(shí)例。這些申請(qǐng)描述了如果發(fā)現(xiàn)存儲(chǔ)元件存在錯(cuò)誤,采用ECC保護(hù)和奇偶校驗(yàn)信息來(lái)有效地檢測(cè)錯(cuò)誤,然后重新配置陣列。然而,在其它實(shí)施方案中,ECC生成器304可采用穩(wěn)健性較低的算法,并且可校正単位或雙位錯(cuò)誤。在另ー個(gè)實(shí)施方案中,固態(tài)存儲(chǔ)裝置206可包括可靠性較低的存儲(chǔ)器,諸如多層單元(“MLC”)閃存,以便增加容量,所述存儲(chǔ)器在無(wú)更穩(wěn)健的ECC算法的情況下可能不會(huì)充分可靠。在一個(gè)實(shí)施方案中,寫(xiě)入數(shù)據(jù)管道301包括輸入緩沖器306,輸入緩沖器306接收待寫(xiě)入固態(tài)存儲(chǔ)器207的數(shù)據(jù)段并且存儲(chǔ)輸入數(shù)據(jù)段,直到寫(xiě)入數(shù)據(jù)管道301的下ー個(gè)階段,諸如分包器302(或更復(fù)雜的寫(xiě)入數(shù)據(jù)管道301的其它階段)準(zhǔn)備處理下一個(gè)數(shù)據(jù)段吋。輸入緩沖器306通常使得速率數(shù)據(jù)段之間的差異通過(guò)寫(xiě)入數(shù)據(jù)管道301采用大小適當(dāng)?shù)臄?shù)據(jù)緩沖器來(lái)接收和處理。輸入緩沖器306也可使數(shù)據(jù)總線205以大于寫(xiě)入數(shù)據(jù)管道301可保持的速率將數(shù)據(jù)傳送至寫(xiě)入數(shù)據(jù)管道301,以便提高數(shù)據(jù)總線205的操作效率。通常,當(dāng)寫(xiě)入數(shù)據(jù)管道301不包括輸入緩沖器306吋,在其它地方進(jìn)行緩沖功能,諸如在固態(tài)存儲(chǔ)裝置206中但在寫(xiě)入數(shù)據(jù)管道301外部,在服務(wù)器108中,諸如在網(wǎng)絡(luò)接ロ卡(“NIC”)內(nèi)或在另ー個(gè)裝置處(例如在使用遠(yuǎn)程直接存儲(chǔ)器存取(“RDMA”)吋)。數(shù)據(jù)可從一個(gè)或多個(gè)客戶(hù)端110或文件服務(wù)器114/文件系統(tǒng)流入輸入緩沖器306中。通常,以從客戶(hù)端110和/或文件服務(wù)器114/文件系統(tǒng)到達(dá)的順序?qū)?shù)據(jù)輸入到輸入緩沖器306中。然后,可以到達(dá)順序按順序地存儲(chǔ)數(shù)據(jù),而非通過(guò)客戶(hù)端110或文件服務(wù)器114/文件系統(tǒng)進(jìn)行分離。在順序存儲(chǔ)裝置中,因?yàn)榭墒褂盟饕驮獢?shù)據(jù)來(lái)追蹤數(shù)據(jù)來(lái)源,所以可使來(lái)自各種來(lái)源的數(shù)據(jù)散置。在另ー個(gè)實(shí)施方案中,寫(xiě)入數(shù)據(jù)管道301還包括寫(xiě)入同步緩沖器308,寫(xiě)入同步緩沖器308在將從ECC生成器304接收的包寫(xiě)入固態(tài)存儲(chǔ)器207之前對(duì)這些包進(jìn)行緩沖。寫(xiě)入同步緩沖器308位于本地時(shí)鐘域與固態(tài)存儲(chǔ)器時(shí)鐘域之間的邊界處,并且提供緩沖以說(shuō)明時(shí)鐘域的差異。在其它實(shí)施方案中,可使用同步固態(tài)存儲(chǔ)器207,并且可消除同步緩沖器308>3280在一個(gè)實(shí)施方案中,寫(xiě)入數(shù)據(jù)管道301還包括介質(zhì)加密模塊318,介質(zhì)加密模塊318從分包器302直接或間接地接收ー個(gè)或多個(gè)包,并且在將這些包發(fā)送至ECC生成器304之前,使用固態(tài)存儲(chǔ)裝置206所獨(dú)具的加密密鑰將所述ー個(gè)或多個(gè)包加密。通常,將整個(gè)包(包括標(biāo)題)加密。在另ー個(gè)實(shí)施方案中,標(biāo)題未被加密。在該文獻(xiàn)中,應(yīng)理解加密密鑰是指從結(jié)合固態(tài)存儲(chǔ)器207的實(shí)施方案外部和在需要加密保護(hù)的實(shí)施方案中管理的秘密加密密鑰。介質(zhì)加密模塊318和相應(yīng)的介質(zhì)解密模塊332向存儲(chǔ)在固態(tài)存儲(chǔ)器207中的數(shù)據(jù)提供了保密級(jí)。例如,在使用介質(zhì)加密模塊318來(lái)加密數(shù)據(jù)的情況下,如果固態(tài)存儲(chǔ)器207連接至不同的固態(tài)存儲(chǔ)控制器204、固態(tài)存儲(chǔ)裝置206或服務(wù)器108,則在不使用在將數(shù)據(jù)寫(xiě)入固態(tài)存儲(chǔ)器207期間所使用的同一加密密鑰的情況下,通常不能輕易地讀取固態(tài)存儲(chǔ)器207的內(nèi)容。在典型的實(shí)施方案中,固態(tài)存儲(chǔ)裝置206未將加密密鑰存儲(chǔ)在非易失性存儲(chǔ)器中,并且不允許對(duì)加密密鑰進(jìn)行外部訪問(wèn)。在初始化期間向固態(tài)存儲(chǔ)控制器204提供加密密鑰。固態(tài)存儲(chǔ)裝置206可使用和存儲(chǔ)連同加密密鑰使用的非秘密加密隨機(jī)數(shù)??赏ㄟ^(guò)每個(gè)包來(lái)存儲(chǔ)不同隨機(jī)數(shù)。數(shù)據(jù)段可分裂在具有唯一隨機(jī)數(shù)的多個(gè)包之間,以通過(guò)加密算法來(lái)提高保護(hù)。可從客戶(hù)端110、服務(wù)器108、密鑰管理器或?qū)虘B(tài)存儲(chǔ)控制器204待使用的加密密鑰進(jìn)行管理的其它裝置處接收加密密鑰。在另ー個(gè)實(shí)施方案中,固態(tài)存儲(chǔ)器207可具有兩個(gè)或更多個(gè)分區(qū),并且固態(tài)存儲(chǔ)控制器204好似其為兩個(gè)或更多個(gè)固態(tài)存儲(chǔ)控制器204,每個(gè)固態(tài)存儲(chǔ)控制器204均在固態(tài)存儲(chǔ)器207內(nèi)的單個(gè)分區(qū)上操作。在該實(shí)施方案中,唯一介質(zhì)加密密鑰可與每個(gè)分區(qū)一起使用。在另ー個(gè)實(shí)施方案中,寫(xiě)入數(shù)據(jù)管道301還包括加密模塊314,加密模塊314在將數(shù)據(jù)段發(fā)送至分包器302之前,將從輸入緩沖器306直接或間接地接收的數(shù)據(jù)或元數(shù)據(jù)段加密,所述數(shù)據(jù)段通過(guò)使用連同該數(shù)據(jù)段接收的加密密鑰來(lái)加密。加密模塊314不同于介質(zhì)加密模塊318,因?yàn)楸患用苣K318用來(lái)加密數(shù)據(jù)的加密密鑰可能并非為存儲(chǔ)在固態(tài)存儲(chǔ)裝置206內(nèi)的所有數(shù)據(jù)所共用,但可基于數(shù)據(jù)單元而不同,并且可連同接收的數(shù)據(jù)段接收,如下所述。例如,加密模塊318待加密的數(shù)據(jù)段的加密密鑰可與數(shù)據(jù)段一起接收或可作為將數(shù)據(jù)段所屬的數(shù)據(jù)單元寫(xiě)入的命令的一部分來(lái)接收。固態(tài)存儲(chǔ)裝置206可使用和存儲(chǔ)每個(gè)數(shù)據(jù)包中連同加密密鑰使用的非秘密加密隨機(jī)數(shù)??赏ㄟ^(guò)每個(gè)包來(lái)存儲(chǔ)不同隨機(jī)數(shù)。數(shù)據(jù)段可分裂在具有唯一隨機(jī)數(shù)的多個(gè)包之間,以通過(guò)加密算法來(lái)提高保護(hù)。在一個(gè)實(shí)施方案中,介質(zhì)加密模塊318使用的隨機(jī)數(shù)與加密模塊314使用的隨機(jī)數(shù)相同。可從客戶(hù)端110、服務(wù)器108、密鑰管理器或保存待用于加密數(shù)據(jù)段的加密密鑰的其它裝置處接收加密密鑰。在一個(gè)實(shí)施方案中,將加密密鑰從固態(tài)存儲(chǔ)裝置206、服務(wù)器108、客戶(hù)端110或能夠執(zhí)行行業(yè)標(biāo)準(zhǔn)方法的其它外部代理之一傳送至固態(tài)存儲(chǔ)控制器204,以安全地傳送和保護(hù)私鑰和公鑰。在一個(gè)實(shí)施方案中,加密模塊318用連同第一包接收的第一加密密鑰將第一包加密,并且用連同第二包接收的第二加密密鑰將第二包加密。在另ー個(gè)實(shí)施方案中,加密模塊318用連同第一包接收的第一加密密鑰將第一包加密,并且將第二數(shù)據(jù)包在無(wú)需加密的情況下傳至下ー個(gè)階段。有利地,固態(tài)存儲(chǔ)裝置206的寫(xiě)入數(shù)據(jù)管道301中包括的加密模塊318允許進(jìn)行數(shù)據(jù)單元接數(shù)據(jù)單元或段接段數(shù)據(jù)加密,而無(wú)需使用單個(gè)文件服務(wù)器114/文件系統(tǒng)或其它外部系統(tǒng)來(lái)追蹤用于存儲(chǔ)相應(yīng)數(shù)據(jù)単元或數(shù)據(jù)段的不同加密密鑰。每個(gè)請(qǐng)求裝置155或相關(guān)密鑰管理器獨(dú)立地管理用于僅將請(qǐng)求裝置155發(fā)送的數(shù)據(jù)單元或數(shù)據(jù)段加密的加密密鑰。在另ー個(gè)實(shí)施方案中,寫(xiě)入數(shù)據(jù)管道301包括壓縮模塊312,壓縮模塊312在將數(shù)據(jù)段發(fā)送至分包器302之前壓縮元數(shù)據(jù)段的數(shù)據(jù)。壓縮模塊312通常采用本領(lǐng)域的技術(shù)人員已知的壓縮程序來(lái)壓縮數(shù)據(jù)或元數(shù)據(jù)段,以減小該段的存儲(chǔ)大小。例如,如果數(shù)據(jù)段包括512個(gè)零的字符串,則壓縮模塊312可用指示512個(gè)零的代碼或令牌來(lái)取代512個(gè)零,其中該代碼遠(yuǎn)比512個(gè)零占用的空間緊湊。在一個(gè)實(shí)施方案中,壓縮模塊312用第一壓縮程序來(lái)壓縮第一段,并且傳遞無(wú)需壓縮的第二段。在另ー個(gè)實(shí)施方案中,壓縮模塊312用第一壓縮程序來(lái)壓縮第一段,并且用壓縮第二壓縮程序來(lái)第二段。使固態(tài)存儲(chǔ)裝置206內(nèi)具有該靈活性是有利的,以使得客戶(hù)端110或?qū)?shù)據(jù)寫(xiě)入固態(tài)存儲(chǔ)裝置206的其它裝置各自可指定壓縮程序,或者以使得在另ー個(gè)指定無(wú)需壓縮時(shí),其中ー個(gè)可指定壓縮程序。也可根據(jù)基于每個(gè)數(shù)據(jù)單元類(lèi)型或數(shù)據(jù)單元類(lèi)別的設(shè)置默認(rèn)值來(lái)選擇壓縮程序。例如,特定數(shù)據(jù)單元的第一數(shù)據(jù)單元可能能夠覆蓋默認(rèn)壓縮程序設(shè)置值,相同數(shù)據(jù)單元類(lèi)別和數(shù)據(jù)單元類(lèi)型的第二數(shù)據(jù)單元可使用默認(rèn)壓縮程序,并且相同數(shù)據(jù)單元類(lèi)別和數(shù)據(jù)單元類(lèi)型的第三數(shù)據(jù)單元可無(wú)需壓縮。在一個(gè)實(shí)施方案中,寫(xiě)入數(shù)據(jù)管道301包括無(wú)用單元收集程序旁路316,該旁路從讀取數(shù)據(jù)管道303中接收數(shù)據(jù)段以作為無(wú)用單元收集系統(tǒng)中的數(shù)據(jù)旁路的一部分。通常因?yàn)榘粯?biāo)記為待刪除或已被修改并且修改的數(shù)據(jù)存儲(chǔ)在不同位置,所以無(wú)用單元收集系統(tǒng)通常會(huì)標(biāo)記不再有效的包。在某個(gè)時(shí)刻,無(wú)用單元收集系統(tǒng)確定可恢復(fù)特定存儲(chǔ)部分,諸如邏輯擦除塊。該確定可能是由于缺乏可用存儲(chǔ)容量、被標(biāo)記為無(wú)效的數(shù)據(jù)的百分比達(dá)到閾值、有效數(shù)據(jù)的合井、該存儲(chǔ)部分的錯(cuò)誤檢測(cè)率達(dá)到閾值或基于數(shù)據(jù)分布的改進(jìn)性能等。無(wú)用單元收集算法可考慮多種因素以確定要恢復(fù)存儲(chǔ)部分的時(shí)間。一旦存儲(chǔ)部分已被標(biāo)記為待恢復(fù),則通常必須重新設(shè)置該部分中的有效包。無(wú)用單元收集程序旁路316可使包讀取到讀取數(shù)據(jù)管道303中,然后直接傳送至寫(xiě)入數(shù)據(jù)管道301,而無(wú)需從固態(tài)存儲(chǔ)控制器204發(fā)送。在優(yōu)選的實(shí)施方案中,無(wú)用單元收集程序旁路316為在固態(tài)存儲(chǔ)裝置206內(nèi)操作的自主型無(wú)用單元收集程序系統(tǒng)的一部分。這可使固態(tài)存儲(chǔ)裝置206管理數(shù)據(jù),以使得數(shù)據(jù)系統(tǒng)地遍布固態(tài)存儲(chǔ)器207,以提高性能、數(shù)據(jù)可靠性,避免固態(tài)存儲(chǔ)器207的任何ー個(gè)位置或區(qū)域的過(guò)度使用和使用不足,并且延長(zhǎng)固態(tài)存儲(chǔ)器207的使用壽命。無(wú)用單元收集程序旁路316與一個(gè)或多個(gè)客戶(hù)端110或其它裝置寫(xiě)入的其它段協(xié)調(diào)將段插入寫(xiě)入數(shù)據(jù)管道301中。在所述實(shí)施方案中,無(wú)用單元收集程序旁路316位于寫(xiě)入數(shù)據(jù)管道301中的分包器302之前并且位于讀取數(shù)據(jù)管道303中的解包器3M之后,但也可位于讀取數(shù)據(jù)管道303和寫(xiě)入數(shù)據(jù)管道301中的其它位置。在刷新寫(xiě)入數(shù)據(jù)管道301期間,可使用無(wú)用單元收集程序旁路316來(lái)填充邏輯頁(yè)面的剰余部分,以便提高固態(tài)存儲(chǔ)器207內(nèi)的存儲(chǔ)效率,從而降低無(wú)用單元收集頻率。在一個(gè)實(shí)施方案中,寫(xiě)入數(shù)據(jù)管道301包括緩沖數(shù)據(jù)以進(jìn)行有效的寫(xiě)入操作的寫(xiě)入緩沖器320。通常,寫(xiě)入緩沖器320包括足夠的包容量來(lái)填充固態(tài)存儲(chǔ)器207中的至少ー個(gè)邏輯頁(yè)面。這使得寫(xiě)入操作不間斷地將數(shù)據(jù)的整個(gè)頁(yè)面發(fā)送至固態(tài)存儲(chǔ)器207。邏輯頁(yè)面可包括不止ー個(gè)ECC組塊。通過(guò)將寫(xiě)入數(shù)據(jù)管道301的寫(xiě)入緩沖器320和讀取數(shù)據(jù)管道303內(nèi)的緩沖器的大小設(shè)置成相同的容量或大于固態(tài)存儲(chǔ)器207內(nèi)的存儲(chǔ)寫(xiě)入緩沖器,可更有效地寫(xiě)入和讀取數(shù)據(jù),因?yàn)榭删木幹茊蝹€(gè)寫(xiě)入命令而非多個(gè)命令來(lái)將數(shù)據(jù)的整個(gè)邏輯頁(yè)面發(fā)送至固態(tài)存儲(chǔ)器207。在另ー個(gè)實(shí)施方案中,將具有小于邏輯頁(yè)面的寫(xiě)入緩沖器302的內(nèi)容寫(xiě)入固態(tài)存儲(chǔ)器207。填充寫(xiě)入緩沖器320吋,固態(tài)存儲(chǔ)器207可用于其它讀取操作。這是有利的,因?yàn)樵趯?shù)據(jù)寫(xiě)入存儲(chǔ)寫(xiě)入緩沖器并且流入存儲(chǔ)寫(xiě)入緩沖器的數(shù)據(jù)掛起(stall)吋,具有較小的寫(xiě)入緩沖器或無(wú)寫(xiě)入緩沖器的其它固態(tài)裝置可占用固態(tài)存儲(chǔ)器。將阻礙讀取操作,直到整個(gè)存儲(chǔ)寫(xiě)入緩沖器被填充和編程吋。不具有寫(xiě)入緩沖器或小型寫(xiě)入緩沖器的系統(tǒng)的另一種方法在于刷新未滿(mǎn)的存儲(chǔ)寫(xiě)入緩沖器,以便能夠進(jìn)行讀取。另外,這是無(wú)效的,因?yàn)樾枰鄠€(gè)寫(xiě)入/程序周期來(lái)填充頁(yè)面。對(duì)于具有大小大于邏輯頁(yè)面的寫(xiě)入緩沖器320的所述實(shí)施方案而言,包括多個(gè)子命令的單個(gè)寫(xiě)入命令然后可與單個(gè)程序命令先后將數(shù)據(jù)頁(yè)面從每個(gè)固態(tài)存儲(chǔ)元件216、218,220中的存儲(chǔ)寫(xiě)入緩沖器傳送至每個(gè)固態(tài)存儲(chǔ)元件216、218、220內(nèi)的指定頁(yè)面。這種技術(shù)具有消除已知可降低數(shù)據(jù)可靠性和耐久性的非全頁(yè)編程并且在填充緩沖器時(shí)釋放用于讀取和其它命令的目標(biāo)存儲(chǔ)體的有益效果。在一個(gè)實(shí)施方案中,寫(xiě)入緩沖器320為乒乓緩沖器,其中該緩沖器的ー側(cè)被填充,然后在該乒乓緩沖器的另ー側(cè)被填充時(shí),其被指定在適當(dāng)?shù)臅r(shí)間進(jìn)行傳送。在另ー個(gè)實(shí)施方案中,寫(xiě)入緩沖器320包括容量大于數(shù)據(jù)段的邏輯頁(yè)面的先進(jìn)先出(“FIFO”)寄存器。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到可在將數(shù)據(jù)寫(xiě)入固態(tài)存儲(chǔ)器207之前存儲(chǔ)數(shù)據(jù)的邏輯頁(yè)面的其它寫(xiě)入緩沖器320配置。在另ー個(gè)實(shí)施方案中,寫(xiě)入緩沖器320的大小小于邏輯頁(yè)面,從而可將小于信息頁(yè)面的頁(yè)面寫(xiě)入固態(tài)存儲(chǔ)器207中的存儲(chǔ)寫(xiě)入緩沖器。在該實(shí)施方案中,為了防止寫(xiě)入數(shù)據(jù)管道301中的掛起阻礙讀取操作,采用無(wú)用單元收集系統(tǒng)將需要從ー個(gè)位置移動(dòng)至另一個(gè)以作為無(wú)用単元收集進(jìn)程的一部分的數(shù)據(jù)排隊(duì)。如果寫(xiě)入數(shù)據(jù)管道301中發(fā)生數(shù)據(jù)掛起,可將所述數(shù)據(jù)通過(guò)無(wú)用單元收集程序旁路316提供給寫(xiě)入緩沖器320,然后傳至固態(tài)存儲(chǔ)器207中的存儲(chǔ)寫(xiě)入緩沖器,以在對(duì)這些數(shù)據(jù)編程之前填充邏輯頁(yè)面的頁(yè)面。這樣,寫(xiě)入數(shù)據(jù)管道301中的數(shù)據(jù)掛起不會(huì)使固態(tài)存儲(chǔ)裝置106的讀取掛起。在另ー個(gè)實(shí)施方案中,寫(xiě)入數(shù)據(jù)管道301包括具有寫(xiě)入數(shù)據(jù)管道301內(nèi)的ー個(gè)或多個(gè)用戶(hù)可定義功能的寫(xiě)入程序模塊310。寫(xiě)入程序模塊310可使用戶(hù)定制寫(xiě)入數(shù)據(jù)管道301。用戶(hù)可根據(jù)特定數(shù)據(jù)要求或應(yīng)用來(lái)定制寫(xiě)入數(shù)據(jù)管道301。如果固態(tài)存儲(chǔ)控制器204為FPGA,則用戶(hù)可采用定制命令和功能相對(duì)容易地對(duì)寫(xiě)入數(shù)據(jù)管道301編程。用戶(hù)也可使用寫(xiě)入程序模塊310來(lái)包括定制功能與ASIC,但ASIC定制可能比采用FPGA更難于實(shí)現(xiàn)。寫(xiě)入程序模塊310可包括緩沖器和旁路機(jī)構(gòu),以使得第一數(shù)據(jù)段在寫(xiě)入程序模塊310中執(zhí)行,同時(shí)第二數(shù)據(jù)段可繼續(xù)通過(guò)寫(xiě)入數(shù)據(jù)管道301。在另ー個(gè)實(shí)施方案中,寫(xiě)入程序模塊310可包括可通過(guò)軟件編程的處理器核。注意到,輸入緩沖器306與壓縮模塊312之間示出了寫(xiě)入程序模塊310,但寫(xiě)入程序模塊310可位于寫(xiě)入數(shù)據(jù)管道301中的任何位置,并且可分布在各個(gè)階段302-320之間。另外,已編程且獨(dú)立操作的多個(gè)寫(xiě)入程序模塊310可分布在各個(gè)階段302-320之間。另外,可改變階段302-320的順序。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到根據(jù)特定用戶(hù)要求對(duì)階段302-320的順序做出的可行性改變。讀取數(shù)據(jù)管道讀取數(shù)據(jù)管道303包括ECC糾錯(cuò)模塊322,其采用由請(qǐng)求包的每個(gè)ECC塊存儲(chǔ)的ECC來(lái)確定ECC塊中是否存在數(shù)據(jù)錯(cuò)誤,所述ECC塊為從固態(tài)存儲(chǔ)器207接收的請(qǐng)求包。然后,ECC糾錯(cuò)模塊322校正請(qǐng)求包中的任何錯(cuò)誤(如果存在任何錯(cuò)誤),并且采用ECC可校正這些錯(cuò)誤。例如,如果ECC可檢測(cè)六位錯(cuò)誤,但僅可校正三位錯(cuò)誤,則ECC糾錯(cuò)模塊322校正請(qǐng)求包的ECC塊中的最多三個(gè)出錯(cuò)位數(shù)。ECC糾錯(cuò)模塊322通過(guò)將出錯(cuò)位數(shù)改變?yōu)樾U?狀態(tài)或零狀態(tài)來(lái)校正出錯(cuò)位數(shù),以使得請(qǐng)求的數(shù)據(jù)包與在其被寫(xiě)入固態(tài)存儲(chǔ)器207中時(shí)相同,并且向所述包生成ECC。如果ECC糾錯(cuò)模塊322確定請(qǐng)求包所包含的出錯(cuò)位數(shù)大于ECC可校正的出錯(cuò)位數(shù),則ECC糾錯(cuò)模塊322不能校正請(qǐng)求包的損壞的ECC塊中的錯(cuò)誤并發(fā)送中斷。在ー個(gè)實(shí)施方案中,ECC糾錯(cuò)模塊322采用指示請(qǐng)求包出錯(cuò)的消息來(lái)發(fā)送中斷。所述消息可包括ECC糾錯(cuò)模塊322不能校正錯(cuò)誤或可暗示ECC糾錯(cuò)模塊322不能校正錯(cuò)誤的信息。在另ー個(gè)實(shí)施方案中,ECC糾錯(cuò)模塊322采用中斷和/或消息來(lái)發(fā)送請(qǐng)求包中損壞的ECC塊。在該優(yōu)選的實(shí)施方案中,請(qǐng)求包中ECC糾錯(cuò)模塊322不能校正的損壞的ECC塊或損壞的ECC塊的一部分被主控制器2M讀取、校正并且返回到ECC糾錯(cuò)模塊322,以由讀取數(shù)據(jù)管道303進(jìn)行進(jìn)一歩處理。在一個(gè)實(shí)施方案中,將請(qǐng)求包中損壞的ECC塊或損壞的ECC塊的一部分發(fā)送至請(qǐng)求所述數(shù)據(jù)的裝置。請(qǐng)求裝置巧5可校正ECC塊或使用另ー個(gè)副本(諸如備份或鏡像副本)來(lái)替換所述數(shù)據(jù),然后可使用請(qǐng)求的數(shù)據(jù)包中的替換數(shù)據(jù)或?qū)⑵浞祷氐阶x取數(shù)據(jù)管道303。請(qǐng)求裝置155可使用出錯(cuò)的請(qǐng)求包中的標(biāo)題信息來(lái)識(shí)別替換損壞的請(qǐng)求包或替換所述包所屬的數(shù)據(jù)單元所需的數(shù)據(jù)。在另ー個(gè)優(yōu)選的實(shí)施方案中,固態(tài)存儲(chǔ)控制器204使用某種類(lèi)型的RAID來(lái)存儲(chǔ)數(shù)據(jù),并且能夠恢復(fù)損壞的數(shù)據(jù)。在另ー個(gè)實(shí)施方案中,ECC糾錯(cuò)模塊322發(fā)送中斷和/或消息,并且接收裝置未成功進(jìn)行與請(qǐng)求的數(shù)據(jù)包關(guān)聯(lián)的讀取操作。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到由于ECC糾錯(cuò)模塊322確定請(qǐng)求包的ー個(gè)或多個(gè)ECC塊已損壞并且ECC糾錯(cuò)模塊322甚至在重試所述操作之后也不能校正錯(cuò)誤而要采取的其它選擇和動(dòng)作。讀取數(shù)據(jù)管道303包括從ECC糾錯(cuò)模塊322直接或間接地接收請(qǐng)求包的ECC塊并且檢查和移除一個(gè)或多個(gè)包標(biāo)題的解包器324。解包器3可通過(guò)檢查標(biāo)題內(nèi)的包標(biāo)識(shí)符、數(shù)據(jù)長(zhǎng)度、數(shù)據(jù)位置等來(lái)驗(yàn)證包標(biāo)題。在一個(gè)實(shí)施方案中,標(biāo)題包括可用于驗(yàn)證傳送至讀取數(shù)據(jù)管道303的包為請(qǐng)求包的散列碼。解包器3M也將標(biāo)題從分包器302添加的請(qǐng)求包中移除。解包器3M可_在不在某些包上操作,而是將這些標(biāo)題在無(wú)需修改下向前傳送。一個(gè)實(shí)例可能為在需要標(biāo)題信息來(lái)重建索引的重建進(jìn)程期間請(qǐng)求的容器標(biāo)簽。其它實(shí)例包括傳送旨在在固態(tài)存儲(chǔ)裝置206內(nèi)使用的各種類(lèi)型的包。在另ー個(gè)實(shí)施方案中,解包器324的操作可取決于包類(lèi)型。讀取數(shù)據(jù)管道303包括從解包器3M接收數(shù)據(jù)且移除無(wú)用數(shù)據(jù)的對(duì)齊模塊326。在一個(gè)實(shí)施方案中,發(fā)送至固態(tài)存儲(chǔ)器207的讀取命令檢索數(shù)據(jù)包。請(qǐng)求所述數(shù)據(jù)的裝置可能不需要檢索包內(nèi)的所有數(shù)據(jù),并且對(duì)齊模塊3移除無(wú)用數(shù)據(jù)。如果檢索頁(yè)面內(nèi)的所有數(shù)據(jù)為請(qǐng)求的數(shù)據(jù),則對(duì)齊模塊3不移除任何數(shù)據(jù)。對(duì)齊模塊3在將數(shù)據(jù)段轉(zhuǎn)發(fā)至下一個(gè)階段之前,以與請(qǐng)求數(shù)據(jù)段的裝置相兼容的形式將數(shù)據(jù)重新格式化為數(shù)據(jù)単元的數(shù)據(jù)段。通常,因?yàn)閿?shù)據(jù)由讀取數(shù)據(jù)管道303處理,所以數(shù)據(jù)段或包的大小在各個(gè)階段會(huì)發(fā)生變化。對(duì)齊模塊3使用接收數(shù)據(jù)將數(shù)據(jù)格式化成適于發(fā)送至請(qǐng)求裝置155且接合以形成響應(yīng)的數(shù)據(jù)段。例如,來(lái)自第一數(shù)據(jù)包的一部分的數(shù)據(jù)可與來(lái)自第二數(shù)據(jù)包的一部分的數(shù)據(jù)結(jié)合。如果數(shù)據(jù)段大于請(qǐng)求裝置請(qǐng)求的數(shù)據(jù),則對(duì)齊模塊3可丟棄無(wú)用數(shù)據(jù)。在一個(gè)實(shí)施方案中,讀取數(shù)據(jù)管道303包括讀取同步緩沖器328,讀取同步緩沖器328對(duì)從固態(tài)存儲(chǔ)器207讀取的一個(gè)或多個(gè)請(qǐng)求包在由讀取數(shù)據(jù)管道303處理之前進(jìn)行緩沖。讀取同步緩沖器3位于固態(tài)存儲(chǔ)器時(shí)鐘域與局部總線時(shí)鐘域之間的邊界處,并且提供緩沖以說(shuō)明時(shí)鐘域的差異。在另ー個(gè)實(shí)施方案中,讀取數(shù)據(jù)管道303包括從對(duì)齊模塊3接收請(qǐng)求包且在傳輸至請(qǐng)求裝置之前存儲(chǔ)該包的輸出緩沖器330。輸出緩沖器330說(shuō)明了從讀取數(shù)據(jù)管道303的階段接收數(shù)據(jù)段的時(shí)間與將數(shù)據(jù)段發(fā)送至固態(tài)存儲(chǔ)控制器204的其它部分或請(qǐng)求裝置、客戶(hù)端110、文件服務(wù)器114等的時(shí)間之間的差異。輸出緩沖器330也可使數(shù)據(jù)總線205以大于讀取數(shù)據(jù)管道303可保持的速率從讀取數(shù)據(jù)管道303接收數(shù)據(jù),以便提高數(shù)據(jù)總線205的操作效率。在一個(gè)實(shí)施方案中,讀取數(shù)據(jù)管道303包括介質(zhì)解密模塊332,介質(zhì)解密模塊332從ECC糾錯(cuò)模塊322接收ー個(gè)或多個(gè)加密的請(qǐng)求包,并且在將所述一個(gè)或多個(gè)請(qǐng)求包發(fā)送至解包器324之前,使用固態(tài)存儲(chǔ)裝置206所獨(dú)具的加密密鑰將所述ー個(gè)或多個(gè)請(qǐng)求包解密。通常,用于通過(guò)介質(zhì)解密模塊332來(lái)解密數(shù)據(jù)的加密密鑰與介質(zhì)加密模塊318使用的加密密鑰相同。在另ー個(gè)實(shí)施方案中,固態(tài)存儲(chǔ)器207可具有兩個(gè)或更多個(gè)分區(qū),并且固態(tài)存儲(chǔ)控制器204好似其為兩個(gè)或更多個(gè)固態(tài)存儲(chǔ)控制器204,每個(gè)固態(tài)存儲(chǔ)控制器204均在固態(tài)存儲(chǔ)器207內(nèi)的單個(gè)分區(qū)上操作。在該實(shí)施方案中,唯一介質(zhì)加密密鑰可與每個(gè)分區(qū)一起使用。在另ー個(gè)實(shí)施方案中,讀取數(shù)據(jù)管道303包括解密模塊334,解密模塊334在將數(shù)據(jù)段發(fā)送至輸出緩沖器330之前將解包器3M格式化的數(shù)據(jù)段解密。使用連同讀取請(qǐng)求接收的加密密鑰來(lái)解密數(shù)據(jù)段,所述讀取請(qǐng)求啟動(dòng)對(duì)讀取同步緩沖器3接收的請(qǐng)求包的檢索。解密模塊334可用連同第一包的讀取請(qǐng)求接收的加密密鑰將第一包解密,然后可用不同的加密密鑰將第二包解密或可將第二包在無(wú)需解密的情況下傳至讀取數(shù)據(jù)管道303的下ー個(gè)階段。通常,解密模塊334使用不同于介質(zhì)解密模塊332用于將請(qǐng)求包解密的加密密鑰將數(shù)據(jù)段解密。當(dāng)包中存儲(chǔ)有非秘密加密隨機(jī)數(shù)吋,將該隨機(jī)數(shù)連同加密密鑰用于解密數(shù)據(jù)包??蓮目蛻?hù)端110、服務(wù)器108、密鑰管理器或?qū)虘B(tài)存儲(chǔ)控制器204待使用的加密密鑰進(jìn)行管理的其它裝置處接收加密密鑰。在另ー個(gè)實(shí)施方案中,讀取數(shù)據(jù)管道303包括將解包器3M格式化的數(shù)據(jù)段解壓縮的解壓縮模塊336。在該優(yōu)選的實(shí)施方案中,解壓縮模塊336使用存儲(chǔ)在包標(biāo)題和容器標(biāo)簽中的一者或兩者中的壓縮信息來(lái)選擇與用于通過(guò)壓縮模塊312來(lái)壓縮數(shù)據(jù)的程序互補(bǔ)的程序。在另ー個(gè)實(shí)施方案中,請(qǐng)求被解壓縮的數(shù)據(jù)段的裝置指定解壓縮模塊336使用的解壓縮程序。在另ー個(gè)實(shí)施方案中,解壓縮模塊336根據(jù)基于每個(gè)數(shù)據(jù)單元類(lèi)型或數(shù)據(jù)單元類(lèi)別的設(shè)置默認(rèn)值來(lái)選擇解壓縮程序。第一數(shù)據(jù)單元的第一包可能能夠覆蓋默認(rèn)解壓縮程序,相同數(shù)據(jù)單元類(lèi)別和數(shù)據(jù)單元類(lèi)型的第二數(shù)據(jù)單元的第二包可使用默認(rèn)解壓縮程序,并且相同數(shù)據(jù)單元類(lèi)別和數(shù)據(jù)單元類(lèi)型的第三數(shù)據(jù)單元的第三包可無(wú)需解壓縮。在另ー個(gè)實(shí)施方案中,讀取數(shù)據(jù)管道303包括具有讀取數(shù)據(jù)管道303內(nèi)的ー個(gè)或多個(gè)用戶(hù)可定義功能的讀取程序模塊338。讀取程序模塊338具有與寫(xiě)入程序模塊310類(lèi)似的特性,并且可使用戶(hù)向讀取數(shù)據(jù)管道303提供定制功能。讀取程序模塊338可位于如圖3所示的位置,可位于讀取數(shù)據(jù)管道303內(nèi)的另ー個(gè)位置,或者可包括讀取數(shù)據(jù)管道303內(nèi)的多個(gè)位置中的多個(gè)部分。另外,獨(dú)立操作的多個(gè)讀取程序模塊338可位于讀取數(shù)據(jù)管道303內(nèi)的多個(gè)位置中。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到讀取數(shù)據(jù)管道303內(nèi)的讀取程序模塊338的其它形式。如同寫(xiě)入數(shù)據(jù)管道301,可重新設(shè)置讀取數(shù)據(jù)管道303的階段,并且本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到讀取數(shù)據(jù)管道303內(nèi)的階段的其它順序。固態(tài)存儲(chǔ)控制器204包括控制和狀態(tài)寄存器340與相應(yīng)控制隊(duì)列342。控制和狀態(tài)寄存器340與控制隊(duì)列342有利干與寫(xiě)入數(shù)據(jù)管道301和讀取數(shù)據(jù)管道303中處理的數(shù)據(jù)關(guān)聯(lián)的控制和定序命令和子命令。例如,分包器302中的數(shù)據(jù)段可具有與ECC生成器304關(guān)聯(lián)的控制隊(duì)列342中的ー個(gè)或多個(gè)相應(yīng)控制命令或指令。因?yàn)閷?shù)據(jù)段分包,所以所述指令或命令中的一些可在分包器302內(nèi)執(zhí)行。當(dāng)由數(shù)據(jù)段創(chuàng)建的新建數(shù)據(jù)包被傳至下ー個(gè)階段時(shí),其它命令或指令可通過(guò)控制和狀態(tài)寄存器340傳至下ー個(gè)控制隊(duì)列342。針對(duì)轉(zhuǎn)發(fā)至寫(xiě)入數(shù)據(jù)管道301的包,命令或指令可被同時(shí)加載到控制隊(duì)列342中,其中每個(gè)管道階段在該階段執(zhí)行各個(gè)包時(shí)彈出適當(dāng)?shù)拿罨蛑噶睢n?lèi)似地,針對(duì)從讀取數(shù)據(jù)管道303請(qǐng)求的包,命令或指令可被同時(shí)加載到控制隊(duì)列342中,其中每個(gè)管道階段在該階段執(zhí)行各個(gè)包時(shí)彈出適當(dāng)?shù)拿罨蛑噶?。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到控制和狀態(tài)寄存器340與控制隊(duì)列342的其它特征和功能。固態(tài)存儲(chǔ)控制器204和/或固態(tài)存儲(chǔ)裝置206還可包括存儲(chǔ)體交錯(cuò)控制器344。存儲(chǔ)體交錯(cuò)控制器344協(xié)調(diào)存儲(chǔ)體之間的寫(xiě)入、讀取、擦除等。通常,擦除邏輯擦除塊比寫(xiě)入邏輯頁(yè)面花費(fèi)的時(shí)間長(zhǎng),而讀取比寫(xiě)入邏輯頁(yè)面花費(fèi)的時(shí)間短。通過(guò)協(xié)調(diào)存儲(chǔ)體之間的命令,存儲(chǔ)體交錯(cuò)控制器344可提高固態(tài)存儲(chǔ)裝置202中的效率。2007年12月6日提交的標(biāo)“Apparatus,system,andMethodforManagingしommandsofSolid-btatestorageUsingBankInterleave"的美國(guó)申請(qǐng)No.11/952,095(DavidFlynn等)中更詳細(xì)地描述了存儲(chǔ)體交錯(cuò)控制器;344。固態(tài)存儲(chǔ)控制器204包括對(duì)從固態(tài)存儲(chǔ)器207發(fā)送和接收的命令和狀態(tài)消息進(jìn)行緩沖的同步緩沖器346。同步緩沖器346位于固態(tài)存儲(chǔ)器時(shí)鐘域與局部總線時(shí)鐘域之間的邊界處,并且提供緩沖以說(shuō)明時(shí)鐘域的差異。同步緩沖器346、寫(xiě)入同步緩沖器308和讀取同步緩沖器3可為獨(dú)立的或可一起起作用來(lái)緩沖數(shù)據(jù)、命令、狀態(tài)消息等。在該優(yōu)選的實(shí)施方案中,同步緩沖器346位于最少數(shù)量的信號(hào)穿過(guò)時(shí)鐘域的位置。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,時(shí)鐘域之間的同步可任意地移動(dòng)至固態(tài)存儲(chǔ)裝置202內(nèi)的其它位置,以便優(yōu)化設(shè)計(jì)實(shí)施的某個(gè)方面。固態(tài)存儲(chǔ)控制器204包括存儲(chǔ)總線控制器348,存儲(chǔ)總線控制器348解譯和轉(zhuǎn)換發(fā)送至固態(tài)存儲(chǔ)器110和從其讀取的數(shù)據(jù)與根據(jù)固態(tài)存儲(chǔ)器207的類(lèi)型從固態(tài)存儲(chǔ)器207接收的狀態(tài)消息的命令。例如,存儲(chǔ)總線控制器348可針對(duì)不同類(lèi)型的存儲(chǔ)器、具有不同性能特性的存儲(chǔ)器、來(lái)自不同制造商的存儲(chǔ)器等具有不同時(shí)序要求。存儲(chǔ)總線控制器348也將控制命令發(fā)送至存儲(chǔ)控制總線212。在該優(yōu)選的實(shí)施方案中,固態(tài)存儲(chǔ)控制器204包括具有復(fù)用器350a-n的陣列的MUX350,其中每個(gè)復(fù)用器專(zhuān)用于固態(tài)存儲(chǔ)器陣列207中的行。例如,復(fù)用器350a與固態(tài)存儲(chǔ)器元件216a、218a、220a關(guān)聯(lián)。MUX350將來(lái)自寫(xiě)入數(shù)據(jù)管道301的數(shù)據(jù)和來(lái)自存儲(chǔ)總線控制器348的命令經(jīng)由存儲(chǔ)I/O總線210發(fā)送至固態(tài)存儲(chǔ)器207,并且將來(lái)自固態(tài)存儲(chǔ)器207的數(shù)據(jù)和狀態(tài)消息經(jīng)由存儲(chǔ)I/O總線210發(fā)送至讀取數(shù)據(jù)管道303且通過(guò)存儲(chǔ)總線控制器348、同步緩沖器346和存儲(chǔ)體交錯(cuò)控制器344發(fā)送至控制和狀態(tài)寄存器340。在該優(yōu)選的實(shí)施方案中,固態(tài)存儲(chǔ)控制器204包括每行固態(tài)存儲(chǔ)器元件(例如SSS0.1216a、SSS0.2218a、SSSO.N220a)的MUX350。MUX350將來(lái)自寫(xiě)入數(shù)據(jù)管道301的數(shù)據(jù)與發(fā)送至固態(tài)存儲(chǔ)器207的命令經(jīng)由存儲(chǔ)I/O總線210組合,并且將讀取數(shù)據(jù)管道303待處理的數(shù)據(jù)與命令分離。存儲(chǔ)在寫(xiě)入緩沖器320中的包通過(guò)每行固態(tài)存儲(chǔ)器元件(SSSx.OtoSSSx.N216,218,220)的寫(xiě)入同步緩沖器308在離開(kāi)寫(xiě)入緩沖器320的總線上指向每行固態(tài)存儲(chǔ)器元件(SSSX.0toSSSx.N216,218,220)的MUX350通過(guò)MUX350從存儲(chǔ)I/O總線210接收所述命令和讀取數(shù)據(jù)。MUX350也將狀態(tài)消息指向存儲(chǔ)總線控制器348。分配設(shè)備圖4為示出了根據(jù)本發(fā)明的分配數(shù)據(jù)存儲(chǔ)空間的設(shè)備400的一個(gè)實(shí)施方案的示意性框圖。設(shè)備400包括分配請(qǐng)求模塊402、邏輯容量模塊404和分配回復(fù)模塊406,如下所述。分配請(qǐng)求模塊402、邏輯容量模塊404和分配回復(fù)模塊406通常在存儲(chǔ)系統(tǒng)102中示出,但分配請(qǐng)求模塊402、邏輯容量模塊404和分配回復(fù)模塊406的全部或部分可位于存儲(chǔ)控制器104、驅(qū)動(dòng)器118或存儲(chǔ)系統(tǒng)102中的其它位置中。設(shè)備400包括從請(qǐng)求裝置接收分配邏輯容量的分配請(qǐng)求的分配請(qǐng)求模塊402。請(qǐng)求裝置可為文件服務(wù)器114/文件系統(tǒng)、客戶(hù)端110、主分配管理器124、或能夠發(fā)送分配請(qǐng)求的任何其它裝置或部件。在數(shù)據(jù)存儲(chǔ)裝置處接收分配請(qǐng)求。在一個(gè)實(shí)施方案中,數(shù)據(jù)存儲(chǔ)裝置包括存儲(chǔ)裝置106(如同所示)和控制存儲(chǔ)裝置106的至少存儲(chǔ)控制器104,并且可包括耦合至存儲(chǔ)控制器104的驅(qū)動(dòng)器118。與分配請(qǐng)求關(guān)聯(lián)的邏輯容量用于專(zhuān)門(mén)將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)裝置上,其為分配請(qǐng)求的目標(biāo)。分配請(qǐng)求可包括邏輯分配請(qǐng)求或可包括存儲(chǔ)數(shù)據(jù)的請(qǐng)求。就邏輯分配請(qǐng)求而言,該請(qǐng)求通常為將LID分配給客戶(hù)端110的請(qǐng)求。就存儲(chǔ)數(shù)據(jù)的請(qǐng)求而言,ー個(gè)或多個(gè)LID被分配給客戶(hù)端110或文件服務(wù)器114/文件系統(tǒng),并且被指定,該請(qǐng)求可包括將這些LID與包括所述數(shù)據(jù)的存儲(chǔ)位置關(guān)聯(lián)。在一個(gè)實(shí)施方案中,在分配時(shí)將LID指定給數(shù)據(jù)(例如,分配請(qǐng)求可包括存儲(chǔ)數(shù)據(jù)的請(qǐng)求)。在另ー個(gè)實(shí)施方案中,如果將分配請(qǐng)求與存儲(chǔ)數(shù)據(jù)的請(qǐng)求分開(kāi),則將LID分配給所述數(shù)據(jù)可能與將LID指定給所述數(shù)據(jù)為單獨(dú)的步驟。在某些實(shí)施方案中,所述請(qǐng)求來(lái)自多個(gè)客戶(hù)端,因此客戶(hù)端標(biāo)識(shí)符可與該請(qǐng)求關(guān)聯(lián),設(shè)備400可使用客戶(hù)端標(biāo)識(shí)符以對(duì)所述客戶(hù)端的分配和/或可分配給客戶(hù)端的LID實(shí)施存取控制。另外,客戶(hù)端標(biāo)識(shí)符可用于管理將多少物理容量分配給特定客戶(hù)端或一組客戶(hù)端。設(shè)備400包括確定數(shù)據(jù)存儲(chǔ)裝置的邏輯空間是否具有足夠的未分配的邏輯空間來(lái)滿(mǎn)足分配請(qǐng)求的邏輯容量模塊404。邏輯容量模塊404可使用保留LID指定和/或分配的索引(或其它數(shù)據(jù)結(jié)構(gòu))來(lái)確定邏輯空間是否具有足夠的未指定和/或未分配的邏輯容量。在一些實(shí)施方案中,邏輯容量模塊404可捜索非易失性存儲(chǔ)裝置上保留的邏輯到物理映像或索引。邏輯到物理映像包括邏輯空間中的指定的邏輯標(biāo)識(shí)符(“LID”)與包括對(duì)應(yīng)于關(guān)聯(lián)的LID的數(shù)據(jù)的存儲(chǔ)位置(例如物理位置)之間的關(guān)聯(lián)數(shù)據(jù)。然而,根據(jù)本公開(kāi)的教導(dǎo),可使用用于確定邏輯容量的其它數(shù)據(jù)結(jié)構(gòu)和/或技木。因此,本公開(kāi)不應(yīng)被理解為限于該方面。下面結(jié)合圖11和12公開(kāi)了確定可用邏輯容量(例如未分配和/或未指定的邏輯容量)和/或可用物理存儲(chǔ)容量的其它實(shí)例。如上所述,未指定的LID可指不與存儲(chǔ)在非易失性存儲(chǔ)裝置上的數(shù)據(jù)相對(duì)應(yīng)的LID(例如,不存在于邏輯到物理映像中)。未指定的LID可被分配給客戶(hù)端110或可為未分配。在一些實(shí)施方案中,邏輯到物理映像被配置來(lái)使得所述映像中的LID與關(guān)于這些LID的物理地址之間不存在其它邏輯到邏輯映射。邏輯到物理映像中在數(shù)據(jù)存儲(chǔ)裝置處管理的LID可包括任何類(lèi)型的邏輯地址,諸如LBA、索引、文件名和索引節(jié)點(diǎn),并且可包括対象。特別地,邏輯到物理映像不限于對(duì)象或任何特定邏輯地址類(lèi)型,但可包括對(duì)象以及文件名、LBA等。在另ー個(gè)實(shí)施方案中,LID包括不同于對(duì)象標(biāo)識(shí)符的邏輯標(biāo)識(shí)符,并且對(duì)象不由數(shù)據(jù)存儲(chǔ)裝置直接管理。設(shè)備400是有利的,因?yàn)閿?shù)據(jù)存儲(chǔ)裝置以及設(shè)備400的模塊402-406的邏輯到物理映像不限于對(duì)象,但所述LID也可為L(zhǎng)BA和其它數(shù)據(jù)単元標(biāo)簽,這擴(kuò)大了設(shè)備400的范圍和靈活性。在一些實(shí)施方案中,邏輯容量模塊404捜索邏輯到物理映像以識(shí)別指定的LID,并且通過(guò)識(shí)別數(shù)據(jù)存儲(chǔ)裝置的邏輯空間,邏輯容量模塊404確定未分配的邏輯空間。例如,如果邏輯空間包括從0000至FFFF的一系列邏輯地址,并且邏輯到物理映像指示已指定邏輯地址0000至F000,則邏輯容量模塊404可確定未分配的邏輯空間可包括地址FOOl至FFFF。如果邏輯地址FOOl至FFFF未被分配給另ー個(gè)客戶(hù)端110,則其可供分配以滿(mǎn)足分配請(qǐng)求。在一些實(shí)施方案中,非易失性存儲(chǔ)裝置可針對(duì)各個(gè)不同的客戶(hù)端保留単獨(dú)的邏輯存儲(chǔ)空間。因此,每個(gè)客戶(hù)端可自行操作単獨(dú)的邏輯存儲(chǔ)空間。因此,非易失性存儲(chǔ)裝置可保留每個(gè)客戶(hù)端的単獨(dú)的元數(shù)據(jù)(例如索引、容量指示符等)??蛻?hù)端可通過(guò)地址(例如網(wǎng)絡(luò)地址)、憑證或其它標(biāo)識(shí)符來(lái)區(qū)分??蛻?hù)端請(qǐng)求中可提供標(biāo)識(shí)符和/或這些標(biāo)識(shí)符可與被客戶(hù)端用來(lái)訪問(wèn)非易失性存儲(chǔ)裝置的通信信道或協(xié)議關(guān)聯(lián)。在一些實(shí)施方案中,邏輯到物理映像(或其它數(shù)據(jù)結(jié)構(gòu))可包括被配置為追蹤尚未指定的邏輯容量分配的分配索引或分配條目。例如,可將LID(或邏輯容量的其它部分)分配給客戶(hù)端,但其可與存儲(chǔ)在存儲(chǔ)裝置106上的數(shù)據(jù)不關(guān)聯(lián)。因此,雖然可分配邏輯容量,但其可為“未指定”,因此可能不包括在邏輯到物理映像中。因此,當(dāng)確定未分配的邏輯空間時(shí),除了其它索引信息(例如邏輯到物理映像)之外,邏輯容量模塊404還可參考其它數(shù)據(jù)結(jié)構(gòu)(例如分配索引或分配條目)。作為另外一種選擇或除此之外,非易失性存儲(chǔ)裝置可保留可識(shí)別未分配的LID(或邏輯容量的其它部分)的“未分配的索引”。下面結(jié)合圖12描述了可用性索引的實(shí)例。如果(例如)分配請(qǐng)求包括針對(duì)一定數(shù)量的LID的請(qǐng)求,則邏輯容量模塊404可確定可用邏輯空間(例如未指定和/或未分配的邏輯容量)是否足以滿(mǎn)足或超出請(qǐng)求的邏輯地址的量。在另ー個(gè)實(shí)例中,如果分配請(qǐng)求包括LID列表或一系列LID,則邏輯容量模塊404可確定請(qǐng)求的LID的全部或部分中的LID是否未被分配或未被指定。在典型的隨機(jī)存取裝置中,通常LID為L(zhǎng)BA,并且根據(jù)預(yù)定映射,LBA與物理塊地址(“PBA”)匹配。相比之下,在順序存儲(chǔ)裝置、日志結(jié)構(gòu)裝置等中,指定的LID不同于映射到該指定的LID的ー個(gè)或多個(gè)物理地址(例如,從LID到存儲(chǔ)位置之間可能不存在預(yù)置或預(yù)定映射)。在此數(shù)據(jù)存儲(chǔ)裝置中,可通過(guò)無(wú)用単元收集進(jìn)程或其它空間恢復(fù)進(jìn)程來(lái)移動(dòng)數(shù)據(jù),并且在邏輯到物理映像中追蹤數(shù)據(jù)。通常,僅通過(guò)索引(例如邏輯到物理映射)來(lái)使順序或日志存儲(chǔ)裝置中的指定的LID與映射的物理地址相關(guān)。對(duì)于順序存儲(chǔ)裝置、日志結(jié)構(gòu)裝置等,邏輯到物理映射可出于各種原因而改變。在一個(gè)實(shí)施方案中,當(dāng)存儲(chǔ)在ー個(gè)或多個(gè)物理地址處的數(shù)據(jù)被移動(dòng)至ー個(gè)或多個(gè)不同的物理地址時(shí),ー個(gè)或多個(gè)LID到所述ー個(gè)或多個(gè)物理地址的映射發(fā)生變化。在另ー個(gè)實(shí)施方案中,ー個(gè)或多個(gè)LID到ー個(gè)或多個(gè)物理地址的映射在重復(fù)數(shù)據(jù)刪除進(jìn)程中發(fā)生變化。例如,當(dāng)存儲(chǔ)在所述ー個(gè)或多個(gè)物理地址處的數(shù)據(jù)存儲(chǔ)在第一物理位置且與存儲(chǔ)在第二物理位置處的數(shù)據(jù)相同,并且所述ー個(gè)或多個(gè)LID的映射經(jīng)改變以對(duì)應(yīng)于第二物理位置吋。在另ー個(gè)實(shí)施方案中,當(dāng)映射到ー個(gè)或多個(gè)LID(“第一LID”)的ー個(gè)或多個(gè)物理位置被重新映射到ー個(gè)或多個(gè)不同的LID(“第二LID”)吋,所述ー個(gè)或多個(gè)LID到所述ー個(gè)或多個(gè)物理地址的映射發(fā)生變化。例如,如果文件或?qū)ο竺淖?,也可能發(fā)生這種情況。在其中LID與物理存儲(chǔ)位置之間不具有預(yù)定和/或預(yù)置關(guān)聯(lián)數(shù)據(jù)和/或可移動(dòng)數(shù)據(jù)并且LID與物理存儲(chǔ)位置之間的關(guān)聯(lián)數(shù)據(jù)可能改變的存儲(chǔ)裝置中,可使用邏輯到物理索引。因?yàn)樗龃鎯?chǔ)裝置已保留其上的邏輯地址與存儲(chǔ)位置之間的關(guān)聯(lián)數(shù)據(jù),所以可避免客戶(hù)端地址轉(zhuǎn)換;客戶(hù)端無(wú)需保留単獨(dú)的冗余映射集合。因此,可消除客戶(hù)端與所述存儲(chǔ)裝置之間的ー個(gè)或多個(gè)映射和/或地址轉(zhuǎn)換層,從而減少客戶(hù)端的處理負(fù)荷。設(shè)備400包括分配回復(fù)模塊406,分配回復(fù)模塊406響應(yīng)于確定邏輯空間是否具有足夠的邏輯空間的邏輯容量模塊404將回復(fù)傳送至請(qǐng)求裝置。所述回復(fù)包括關(guān)于邏輯空間是否具有足夠的邏輯空間來(lái)滿(mǎn)足分配請(qǐng)求的指示。例如,如果邏輯容量模塊404確定未分配的邏輯空間不足以滿(mǎn)足分配請(qǐng)求,則分配回復(fù)模塊406可將分配請(qǐng)求失敗包括在所述回復(fù)中。如果(例如)邏輯容量模塊404確定未分配的邏輯空間足以滿(mǎn)足分配請(qǐng)求,則分配回復(fù)模塊406可根據(jù)分配請(qǐng)求的性質(zhì)將肯定性響應(yīng)、LID列表、一系列LID等包括在所述回復(fù)中。如果(例如)邏輯容量模塊404確定未分配的邏輯空間足以滿(mǎn)足分配請(qǐng)求并且分配請(qǐng)求包括分配特定LID的請(qǐng)求,則回復(fù)模塊406可將已分配請(qǐng)求的LID的確認(rèn)傳送至請(qǐng)求裝置。如果分配請(qǐng)求包括針對(duì)LID的請(qǐng)求,則分配回復(fù)模塊406可傳送請(qǐng)求的LID。如果分配請(qǐng)求包括針對(duì)滿(mǎn)足標(biāo)準(zhǔn)的LID的請(qǐng)求,則分配回復(fù)模塊406可傳送滿(mǎn)足該標(biāo)準(zhǔn)的LID。在一個(gè)實(shí)施方案中,分配請(qǐng)求針對(duì)特定的一組LID,并且分配回復(fù)模塊406可用請(qǐng)求的LID進(jìn)行回復(fù)。在另ー個(gè)實(shí)施方案中,分配請(qǐng)求為寫(xiě)入請(qǐng)求的一部分。在一種情況下,寫(xiě)入請(qǐng)求包括特定LID,并且分配回復(fù)模塊406可用請(qǐng)求的LID進(jìn)行回復(fù)。在另一種情況下,寫(xiě)入請(qǐng)求僅包括數(shù)據(jù)或數(shù)據(jù)量的指示,并且分配回復(fù)模塊406可通過(guò)向?qū)懭胝?qǐng)求分配足夠的LID且返回分配的LID來(lái)回復(fù)?;蛘?,如果提供了數(shù)據(jù)量的指示,則回復(fù)可包括未分配的LID。分配回復(fù)模塊406可在寫(xiě)入數(shù)據(jù)之前或之后進(jìn)行回復(fù)。如果分配回復(fù)模塊406在寫(xiě)入數(shù)據(jù)之后發(fā)送回復(fù),則回復(fù)可為寫(xiě)入數(shù)據(jù)的確認(rèn)的一部分。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到分配回復(fù)模塊406可響應(yīng)于確定數(shù)據(jù)存儲(chǔ)裝置的邏輯空間是否具有足夠的未分配的邏輯空間來(lái)滿(mǎn)足分配請(qǐng)求的邏輯容量模塊404進(jìn)行回復(fù)的其它方式。在一個(gè)實(shí)施方案中,對(duì)應(yīng)于邏輯空間(“邏輯空間容量”)的存儲(chǔ)容量顯著大于數(shù)據(jù)存儲(chǔ)裝置的物理存儲(chǔ)容量。邏輯空間容量包括與分配的邏輯空間結(jié)合的未分配的邏輯空間。分配的邏輯空間包括分配的邏輯空間內(nèi)的指定的LID和未指定的LID。換句話講,數(shù)據(jù)存儲(chǔ)裝置和關(guān)聯(lián)的邏輯到物理映射支持精簡(jiǎn)配置。在邏輯標(biāo)識(shí)符為L(zhǎng)BA的情況中,每個(gè)LBA通常具有定義的數(shù)據(jù)大小。在某些實(shí)施方案中,將LBA指定給邏輯塊,并且邏輯塊通常與存儲(chǔ)裝置106上的物理塊具有相同大小。在一個(gè)實(shí)施方案中,數(shù)據(jù)存儲(chǔ)裝置的邏輯空間的LID的子集與數(shù)據(jù)存儲(chǔ)裝置內(nèi)的物理塊為一一對(duì)應(yīng)。例如,如果將邏輯空間的一部分分配給客戶(hù)端110,并且客戶(hù)端110存儲(chǔ)邏輯塊,因此對(duì)于客戶(hù)端Iio而言,LID為L(zhǎng)BA,則每個(gè)LBA可與相當(dāng)于物理塊地址(“PBA”)的物理地址相對(duì)應(yīng)。數(shù)據(jù)存儲(chǔ)裝置可用的邏輯空間仍可適于分配給其它客戶(hù)端110,并且仍可為精簡(jiǎn)配置。雖然通常邏輯標(biāo)識(shí)符為邏輯塊地址,但在圖4的設(shè)備400中,邏輯標(biāo)識(shí)符可能更多。邏輯標(biāo)識(shí)符可為邏輯地址(“LA”)、邏輯塊地址(“LBA”)、文件名、文件地址、對(duì)象標(biāo)識(shí)符、索引節(jié)點(diǎn)、索引等。如果存儲(chǔ)系統(tǒng)102、服務(wù)器108等使用64或1位地址來(lái)表示LID,則可用于對(duì)該邏輯空間(即邏輯空間)尋址的邏輯標(biāo)識(shí)符會(huì)變得很大。地址中的一定量的位可專(zhuān)用于邏輯空間,而該地址中的其它位可帶有其它信息,諸如客戶(hù)端的識(shí)別、錯(cuò)誤校正信息、關(guān)于數(shù)據(jù)請(qǐng)求的屬性(諸如優(yōu)先級(jí)、數(shù)據(jù)類(lèi)型、完整性要求等)。僅使用地址中的一部分位(例如使用32位)來(lái)提供極大的地址空間。在一個(gè)實(shí)施方案中,將元數(shù)據(jù)提示(例如文件類(lèi)型、數(shù)據(jù)類(lèi)別等)從客戶(hù)端(例如FQ傳至存儲(chǔ)裝置。這些元數(shù)據(jù)提示可經(jīng)由地址位來(lái)編碼和傳送,所述地址位具有根據(jù)元信息來(lái)組織邏輯地址空間的側(cè)放作用。例如,所有系統(tǒng)文件可將地址中的最高命令位設(shè)置為1,因此所有系統(tǒng)文件均會(huì)位于邏輯地址空間的上半部。邏輯地址空間可超出存儲(chǔ)系統(tǒng)102中的存儲(chǔ)裝置106的物理存儲(chǔ)容量。通常,發(fā)送至存儲(chǔ)裝置106或存儲(chǔ)系統(tǒng)102的數(shù)據(jù)具有最小大小,從而以可識(shí)別單元發(fā)送數(shù)據(jù)。例如,可將發(fā)送至存儲(chǔ)系統(tǒng)102的數(shù)據(jù)分成組塊。終端處的數(shù)據(jù)可能與最小大小的組塊不匹配,因此除了尾端數(shù)據(jù)之外,數(shù)據(jù)組塊的剰余部分也可為空字符、零、一等。假設(shè)某個(gè)最小數(shù)據(jù)組塊被發(fā)送至存儲(chǔ)系統(tǒng)102,并且所有可能的邏輯標(biāo)識(shí)符各自對(duì)應(yīng)于ー個(gè)組塊,則邏輯標(biāo)識(shí)符具有龐大的數(shù)量,并且與這些組塊相關(guān)的邏輯存儲(chǔ)容量遠(yuǎn)大于存儲(chǔ)系統(tǒng)102中的存儲(chǔ)裝置106的物理存儲(chǔ)容量。數(shù)據(jù)存儲(chǔ)裝置中的可用物理存儲(chǔ)容量與可用LID無(wú)關(guān)。此外,這與其中可用邏輯塊地址與存儲(chǔ)裝置106的物理塊地址幾乎為一一對(duì)應(yīng)的典型隨機(jī)存取裝置形成對(duì)比。在具體實(shí)施方案中,存儲(chǔ)裝置驅(qū)動(dòng)器118經(jīng)由存儲(chǔ)接ロ116耦合至文件服務(wù)器114/文件系統(tǒng),并且存儲(chǔ)接ロ116包括能夠使文件服務(wù)器114/文件系統(tǒng)與存儲(chǔ)接ロ116交互的接ロ。所述接ロ可包括應(yīng)用程序接ロ(API)、塊存儲(chǔ)接ロ、改進(jìn)的塊存儲(chǔ)接ロ、命令接ロ等。根據(jù)ー個(gè)實(shí)施方案的命令接ロ可將位包括寫(xiě)入命令(例如客戶(hù)端請(qǐng)求)中,以指示應(yīng)當(dāng)連同寫(xiě)入進(jìn)行分配。寫(xiě)入中的第二位可指示請(qǐng)求的LBA參數(shù)為無(wú)效參數(shù)或包括客戶(hù)端的ID,并且可指示設(shè)備400應(yīng)當(dāng)分配ー個(gè)或多個(gè)LBA?;蛘撸蛻?hù)端請(qǐng)求包括具有任選定時(shí)器的特定物理分配請(qǐng)求(文件長(zhǎng)度)等。因此,所述接ロ允許多個(gè)不同特征和功能。所述接ロ可操作以從文件服務(wù)器114/文件系統(tǒng)傳送分配數(shù)據(jù)存儲(chǔ)裝置的邏輯容量的分配請(qǐng)求,并且向文件服務(wù)器114/文件系統(tǒng)傳送分配回復(fù)。分配回復(fù)響應(yīng)于分配請(qǐng)求并且包括關(guān)于邏輯空間是否具有足夠的邏輯空間來(lái)滿(mǎn)足分配請(qǐng)求的指示。命令接ロ可作為新的輸入輸出控制(“I0-CTL”)命令或現(xiàn)有IO-CTL命令的擴(kuò)展來(lái)實(shí)施。命令接ロ可實(shí)施新協(xié)議或擴(kuò)充現(xiàn)有協(xié)議。所述邏輯容量用于將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)裝置上。存儲(chǔ)裝置驅(qū)動(dòng)器118和/或數(shù)據(jù)存儲(chǔ)裝置確定邏輯空間是否具有足夠的未分配的邏輯空間來(lái)滿(mǎn)足分配請(qǐng)求,其中所述確定包括捜索邏輯到物理映像。存儲(chǔ)裝置驅(qū)動(dòng)器118可為數(shù)據(jù)存儲(chǔ)裝置的一部分。然而,未在文件服務(wù)器114/文件系統(tǒng)中做出關(guān)于足夠的未分配的邏輯空間的確定。相反,文件服務(wù)器114/文件系統(tǒng)發(fā)送并分配請(qǐng)求,并且數(shù)據(jù)存儲(chǔ)裝置/驅(qū)動(dòng)器118在捜索與作為數(shù)據(jù)存儲(chǔ)系統(tǒng)102的一部分的存儲(chǔ)裝置106相對(duì)應(yīng)的邏輯到物理映像之后,對(duì)分配請(qǐng)求進(jìn)行回復(fù)。在一個(gè)實(shí)施方案中,存儲(chǔ)裝置接ロ120可操作以將存儲(chǔ)裝置驅(qū)動(dòng)器118耦接至數(shù)據(jù)存儲(chǔ)裝置,這足以使數(shù)據(jù)存儲(chǔ)裝置與存儲(chǔ)裝置驅(qū)動(dòng)器118配合,以確定邏輯空間是否具有足夠的邏輯容量來(lái)滿(mǎn)足分配請(qǐng)求。如上所述,存儲(chǔ)裝置驅(qū)動(dòng)器118可為PCIExpress、串行ATA總線、并行ATA總線、SCSI、火線、光纖通道、USB、PCIe-AS等。接ロ116可使將邏輯地址空間中的LID與非易失性存儲(chǔ)裝置上的各個(gè)存儲(chǔ)位置關(guān)聯(lián)的索引直接暴露于客戶(hù)端。客戶(hù)端可調(diào)用所述接ロ的某些功能來(lái)識(shí)別可用分配空間、物理容量、分配和指定有LID的存儲(chǔ)介質(zhì)的健康狀態(tài)等。概括地說(shuō),所述接ロ可使設(shè)備400的特征和功能的全部或子集直接暴露于客戶(hù)端,然后客戶(hù)端可根據(jù)需要使用該信息。圖5為示出了根據(jù)本發(fā)明的分配數(shù)據(jù)存儲(chǔ)空間的設(shè)備500的另ー個(gè)實(shí)施方案的示意性框圖。設(shè)備500包括分配請(qǐng)求模塊402、邏輯容量模塊404和分配回復(fù)模塊406,其基本上類(lèi)似于以上關(guān)于圖4的設(shè)備400描述的那些。另外,設(shè)備500包括物理容量請(qǐng)求模塊502、物理容量分配模塊504、物理容量回復(fù)模塊506、分配模塊508、分配查詢(xún)請(qǐng)求模塊510、分配查詢(xún)確定模塊512、分配查詢(xún)回復(fù)模塊514、邏輯空間管理模塊516、映射模塊518、物理空間預(yù)留請(qǐng)求模塊520、物理空間預(yù)留模塊522、物理空間預(yù)留返回模塊524、物理空間預(yù)留取消模塊526、LID指定模塊528、DMA模塊530和刪除模塊532,如下所述。圖5的設(shè)備500的模塊402-406和502-532在存儲(chǔ)系統(tǒng)102中示出,并且其全部或部分可包括在驅(qū)動(dòng)器118、存儲(chǔ)控制器104或本領(lǐng)域的技術(shù)人員已知的任何其它適當(dāng)位置中。在一個(gè)實(shí)施方案中,設(shè)備500包括物理容量請(qǐng)求模塊502、物理容量分配模塊504和物理容量回復(fù)模塊506。物理容量請(qǐng)求模塊502從請(qǐng)求裝置接收物理容量請(qǐng)求。在數(shù)據(jù)存儲(chǔ)裝置處接收物理容量請(qǐng)求,并且該請(qǐng)求包括數(shù)據(jù)存儲(chǔ)裝置中的可用物理存儲(chǔ)容量的量(和/或分配給請(qǐng)求裝置的物理存儲(chǔ)容量)的請(qǐng)求。物理容量請(qǐng)求可包括物理容量或可例如通過(guò)指示待存儲(chǔ)的數(shù)據(jù)單元的大小來(lái)間接地請(qǐng)求物理存儲(chǔ)容量。另ー個(gè)間接物理存儲(chǔ)容量請(qǐng)求可包括可與數(shù)據(jù)大小相關(guān)的待存儲(chǔ)數(shù)據(jù)的邏輯地址。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到物理容量請(qǐng)求的其它形式。物理容量分配模塊504確定數(shù)據(jù)存儲(chǔ)裝置上的可用物理存儲(chǔ)容量的量??捎梦锢泶鎯?chǔ)容量的量包括數(shù)據(jù)存儲(chǔ)裝置中的未指定的存儲(chǔ)位置的物理存儲(chǔ)容量。在一些實(shí)施方案中,可“預(yù)算”可用物理存儲(chǔ)容量的量,例如存儲(chǔ)裝置的物理存儲(chǔ)容量中僅有一部分可用于請(qǐng)求裝置中。在一些實(shí)施方案中,可根據(jù)與每個(gè)客戶(hù)端或一組客戶(hù)端關(guān)聯(lián)的份額來(lái)“預(yù)算”可用物理存儲(chǔ)容量的量。設(shè)備500可實(shí)施這些份額??捎梦锢泶鎯?chǔ)裝置的分配可通過(guò)配置參數(shù)來(lái)確定,可根據(jù)服務(wù)政策的性能和/或質(zhì)量進(jìn)行動(dòng)態(tài)調(diào)整等。物理容量分配模塊504可使用索引(或其它數(shù)據(jù)結(jié)構(gòu)),諸如上述邏輯到物理映像來(lái)確定可用物理存儲(chǔ)容量的量。邏輯到物理映像可指示包括有效數(shù)據(jù)的存儲(chǔ)位置(例如包括有效數(shù)據(jù)的存儲(chǔ)位置)??梢眠壿嫷轿锢碛诚駚?lái)識(shí)別指定的存儲(chǔ)位置??捎么鎯?chǔ)容量可為總(或預(yù)算的)物理容量減去指定的容量。作為另外一種選擇或除此之外,分配索引(或其它數(shù)據(jù)結(jié)構(gòu))可保留可用物理存儲(chǔ)容量的指示符。所述指示符可響應(yīng)于在存儲(chǔ)裝置上進(jìn)行的存儲(chǔ)操作進(jìn)行更新,這些存儲(chǔ)操作包括但不限于無(wú)用單元收集操作、疏導(dǎo)操作、解除分配(例如TRIM)、寫(xiě)入其它數(shù)據(jù)、物理存儲(chǔ)容量預(yù)留、物理存儲(chǔ)容量預(yù)留取消等。因此,在請(qǐng)求吋,可“累計(jì)”可用物理存儲(chǔ)容量。物理容量回復(fù)模塊506響應(yīng)于確定數(shù)據(jù)存儲(chǔ)裝置上的可用物理存儲(chǔ)容量的量的物理容量分配模塊504將回復(fù)傳送至請(qǐng)求裝置。在一個(gè)實(shí)施方案中,物理容量分配模塊504追蹤指定的物理地址、未指定的物理地址、預(yù)留的物理地址容量、未預(yù)留的物理地址容量等。物理容量分配模塊504可使用邏輯到物理映像、有效性映像、未使用的物理地址池、使用的物理地址池、物理到邏輯映像或本領(lǐng)域的技術(shù)人員已知的其它方式來(lái)追蹤這些參數(shù)。所述回復(fù)可采取多種形式。在一個(gè)實(shí)施方案中,如果物理容量請(qǐng)求包括可用物理容量的請(qǐng)求,則該回復(fù)可包括可用物理存儲(chǔ)容量的量。在另ー個(gè)實(shí)施方案中,如果物理容量請(qǐng)求包括具體物理容量的量,則該回復(fù)可包括數(shù)據(jù)存儲(chǔ)裝置具有請(qǐng)求的可用物理存儲(chǔ)容量的確認(rèn)。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到響應(yīng)于物理容量請(qǐng)求的回復(fù)的其它形式。具有物理容量請(qǐng)求模塊502、物理容量分配模塊504和物理容量回復(fù)模塊506的設(shè)備500有利于其中邏輯到物理映射不為ー對(duì)一映射的存儲(chǔ)裝置106。在讀取和寫(xiě)入請(qǐng)求包括ー個(gè)或多個(gè)LBA的典型的隨機(jī)存取裝置中,文件服務(wù)器114/文件系統(tǒng)可通過(guò)識(shí)別指定的LBA來(lái)追蹤存儲(chǔ)裝置106的物理存儲(chǔ)容量。對(duì)于多個(gè)物理地址(由此存儲(chǔ)位置)可映射到單個(gè)邏輯標(biāo)識(shí)符(即多個(gè)版本的數(shù)據(jù)映射到邏輯標(biāo)識(shí)符)的日志結(jié)構(gòu)文件系統(tǒng)或類(lèi)似系統(tǒng)而言,追蹤邏輯標(biāo)識(shí)符可能不會(huì)提供物理存儲(chǔ)容量的任何指示。存儲(chǔ)位置與LID之間的這種多對(duì)ー關(guān)系可用于支持快照和/或備份。設(shè)備500追蹤可用物理存儲(chǔ)空間,并且可將可用物理存儲(chǔ)空間的量傳送至服務(wù)器108或其它裝置。設(shè)備500是有利的,因?yàn)槠淇墒刮募?wù)器114/文件系統(tǒng)查詢(xún)物理存儲(chǔ)容量。卸載數(shù)據(jù)存儲(chǔ)裝置的分配管理和物理容量管理對(duì)于可按順序存儲(chǔ)數(shù)據(jù)的存儲(chǔ)裝置106、日志結(jié)構(gòu)存儲(chǔ)裝置等而言是有效的。將指定的物理地址映射到指定的相應(yīng)LID。當(dāng)響應(yīng)于寫(xiě)入請(qǐng)求來(lái)存儲(chǔ)數(shù)據(jù)時(shí),將指定給該數(shù)據(jù)的LID映射到存儲(chǔ)該數(shù)據(jù)的實(shí)際位置。對(duì)于按順序存儲(chǔ)數(shù)據(jù)的日志結(jié)構(gòu)文件系統(tǒng)而言,不能從邏輯標(biāo)識(shí)符明顯看出存儲(chǔ)該數(shù)據(jù)的位置,即使該邏輯標(biāo)識(shí)符為L(zhǎng)BA。相反,將數(shù)據(jù)存儲(chǔ)在追加點(diǎn)處,并且將存儲(chǔ)該數(shù)據(jù)的地址映射到邏輯標(biāo)識(shí)符。如果數(shù)據(jù)為先前存儲(chǔ)數(shù)據(jù)的修改項(xiàng),則可將LID映射到當(dāng)前數(shù)據(jù)以及存儲(chǔ)舊數(shù)據(jù)的位置??赡苡腥舾砂姹镜臄?shù)據(jù)被映射到同一LID。在一個(gè)實(shí)施方案中,設(shè)備500包括分配足以滿(mǎn)足請(qǐng)求裝置的分配請(qǐng)求的未分配的邏輯空間的分配模塊508。分配模塊508可響應(yīng)于確定邏輯空間具有足夠的未分配的邏輯空間來(lái)滿(mǎn)足分配請(qǐng)求的邏輯容量模塊404來(lái)分配未分配的邏輯空間。在一個(gè)實(shí)施方案中,分配請(qǐng)求為預(yù)分配的一部分,其中邏輯空間與存儲(chǔ)數(shù)據(jù)的特定請(qǐng)求不關(guān)聯(lián)。例如,客戶(hù)端110可使用分配請(qǐng)求來(lái)請(qǐng)求邏輯空間,然后可隨時(shí)間繼續(xù)將數(shù)據(jù)存儲(chǔ)至分配的邏輯空間。分配模塊508響應(yīng)于分配請(qǐng)求和確定邏輯空間具有足夠的未分配的邏輯空間來(lái)滿(mǎn)足分配請(qǐng)求的邏輯容量模塊404將LID分配給客戶(hù)端110。在各個(gè)實(shí)施方案中,分配模塊508可分配邏輯空間的子集,可根據(jù)包括某種標(biāo)準(zhǔn)(針對(duì)請(qǐng)求的邏輯空間)的分配請(qǐng)求來(lái)分配邏輯空間等。例如,如果分配請(qǐng)求包括將LID分配給用戶(hù)的請(qǐng)求,則LID可能已被分配給客戶(hù)端110且也可為分配給該用戶(hù)的子集的一部分,例如將LID分配給與客戶(hù)端110關(guān)聯(lián)的一組。分配模塊508可將分配請(qǐng)求中識(shí)別的LID與客戶(hù)端110和該組關(guān)聯(lián)。分配模塊508也可根據(jù)與特定存儲(chǔ)請(qǐng)求關(guān)聯(lián)的分配請(qǐng)求來(lái)分配LID。例如,如果存儲(chǔ)請(qǐng)求包括特定LID,并且邏輯容量模塊404確定這些LID可用,則分配模塊508可在存儲(chǔ)存儲(chǔ)請(qǐng)求的數(shù)據(jù)的同時(shí)分配這些LID。在另ー個(gè)實(shí)例中,如果存儲(chǔ)請(qǐng)求不包括LID,并且邏輯容量模塊404確定足夠的LID可用于存儲(chǔ)請(qǐng)求,則分配模塊508可針對(duì)數(shù)據(jù)來(lái)選擇和分配LID,并且分配回復(fù)模塊406可傳送分配的LID。分配模塊508通常會(huì)設(shè)置未分配的LID以待分配。分配模塊508可識(shí)別ー個(gè)或多個(gè)未分配的LID的方式有若干種。例如,分配模塊508可通過(guò)從客戶(hù)端110接收請(qǐng)求的LID列表以待分配并且驗(yàn)證這些LID可供分配來(lái)識(shí)別未分配的LID。在另ー個(gè)實(shí)例中,分配模塊508可通過(guò)對(duì)滿(mǎn)足連同所述請(qǐng)求接收的標(biāo)準(zhǔn)的未分配的LID進(jìn)行搜索來(lái)識(shí)別未分配的LID。所述標(biāo)準(zhǔn)可為與特定存儲(chǔ)裝置106關(guān)聯(lián)、可用于RAID中、具有某種指定的元數(shù)據(jù)特性等的LID。在另ー個(gè)實(shí)例中,分配模塊508可通過(guò)創(chuàng)建滿(mǎn)足連同可用LID池中識(shí)別的請(qǐng)求接收的標(biāo)準(zhǔn)的LID子集來(lái)識(shí)別未分配的LID。在一個(gè)實(shí)例中,LID可為已分配給客戶(hù)端110的LID的子集。例如,如果將一組(set/group)LID分配給特定用戶(hù)、群體、雇主等,則可分配這些LID的子集。ー個(gè)具體實(shí)例為,如果將ー組LID分配給某個(gè)組織,則還可將分配的LID的子集分配給該組織內(nèi)的特定用戶(hù)。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到分配模塊508可識(shí)別ー個(gè)或多個(gè)未分配的LID的其它方式。在一個(gè)實(shí)施方案中,分配模塊508可通過(guò)將LID分配給客戶(hù)端110(除了已分配給客戶(hù)端110的LID之外)來(lái)擴(kuò)充分配給客戶(hù)端110的LID。另外,可通過(guò)將某些LID解除分配以使得其返回到未分配的LID的池中來(lái)減少分配給客戶(hù)端110的LID。在其它實(shí)施方案中,可分配、解除分配、増加、減少等分配的LID的子集。例如,可將分配給某個(gè)組織中的用戶(hù)的LID解除分配,從而仍可將分配給該用戶(hù)的LID分配給該組織,而非用戶(hù)。在一個(gè)實(shí)施方案中,設(shè)備500包括分配查詢(xún)請(qǐng)求模塊510、分配查詢(xún)確定模塊512、分配查詢(xún)回復(fù)模塊514。分配查詢(xún)請(qǐng)求模塊510在數(shù)據(jù)存儲(chǔ)裝置處接收分配查詢(xún)。分配查詢(xún)請(qǐng)求模塊510從某個(gè)請(qǐng)求裝置,諸如客戶(hù)端110、文件服務(wù)器114/文件系統(tǒng)、主分配管理器IM等接收分配查詢(xún)。分配查詢(xún)可包括關(guān)于分配邏輯空間或分配的邏輯空間的關(guān)聯(lián)的管理的信息的請(qǐng)求。例如,分配查詢(xún)可為識(shí)別指定的LID、識(shí)別分配的LID、識(shí)別未指定的分配的LID、未分配的LID或一系列LID等的請(qǐng)求。分配查詢(xún)可包括關(guān)于邏輯分配、邏輯容量、物理容量的信息,或滿(mǎn)足分配查詢(xún)中的標(biāo)準(zhǔn)的其它信息。所述信息可包括元數(shù)據(jù)、狀態(tài)、邏輯關(guān)聯(lián)數(shù)據(jù)、歷史使用率、標(biāo)志、控制符等。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到其它分配查詢(xún)和響應(yīng)于分配查詢(xún)返回的信息的類(lèi)型。分配查詢(xún)包括允許分配查詢(xún)確定模塊512處理分配請(qǐng)求的某種標(biāo)準(zhǔn)。在一個(gè)實(shí)施方案中,分配查詢(xún)確定模塊512識(shí)別滿(mǎn)足分配查詢(xún)中指定的標(biāo)準(zhǔn)的ー個(gè)或多個(gè)LID。識(shí)別的LID包括已指定的分配的LID、未指定的分配的LID、未分配的LID等。分配查詢(xún)回復(fù)模塊514將查詢(xún)結(jié)果傳送至客戶(hù)端110,到達(dá)請(qǐng)求裝置或分配查詢(xún)中指示的另ー個(gè)裝置。分配查詢(xún)的結(jié)果可包括識(shí)別的LID列表、已找到滿(mǎn)足標(biāo)準(zhǔn)的LID的確認(rèn)、未找到滿(mǎn)足分配查詢(xún)中的標(biāo)準(zhǔn)的LID的確認(rèn)、指定/未指定的LID狀態(tài)、邏輯存儲(chǔ)容量等。通常,分配查詢(xún)回復(fù)模塊514返回狀態(tài)信息,并且返回的信息可包括與管理和分配本領(lǐng)域的技術(shù)人員已知的LID有關(guān)的任何信息。在另ー個(gè)實(shí)施方案中,設(shè)備500包括從數(shù)據(jù)存儲(chǔ)裝置內(nèi)部對(duì)數(shù)據(jù)存儲(chǔ)裝置的邏輯空間進(jìn)行管理的邏輯空間管理模塊516。例如,邏輯空間管理模塊516可管理來(lái)自與數(shù)據(jù)存儲(chǔ)裝置的存儲(chǔ)裝置106關(guān)聯(lián)的存儲(chǔ)控制器104或驅(qū)動(dòng)器118的邏輯空間。邏輯空間管理模塊516可追蹤例如邏輯到物理映像、索引或其它數(shù)據(jù)結(jié)構(gòu)中未指定的LID和指定的LID。指定的LID為映射到ー個(gè)或多個(gè)物理地址的LID,其中來(lái)自與ー個(gè)或多個(gè)指定的LID相對(duì)應(yīng)的一個(gè)或多個(gè)數(shù)據(jù)包的數(shù)據(jù)存儲(chǔ)在存儲(chǔ)裝置106上。在各個(gè)實(shí)施方案中,邏輯空間管理模塊516可處理上述分配請(qǐng)求和分配查詢(xún)以及關(guān)于分配的其它功能。邏輯空間管理模塊516還可包括從請(qǐng)求裝置接收解除分配請(qǐng)求。解除分配請(qǐng)求通常包括使ー個(gè)或多個(gè)分配的LID返回到未分配的狀態(tài),然后將成功的解除分配傳送至請(qǐng)求裝置或其它指定裝置的請(qǐng)求。解除分配請(qǐng)求可包括返回一個(gè)或多個(gè)存儲(chǔ)位置的請(qǐng)求,該請(qǐng)求使關(guān)聯(lián)的LID保持分配,然后將成功的解除分配傳送至請(qǐng)求裝置或其它指定裝置。這可能是透明的,或要求應(yīng)當(dāng)延伸解除分配請(qǐng)求以包括關(guān)于邏輯/物理解除分配應(yīng)當(dāng)伴隨該請(qǐng)求進(jìn)行的指示。注意到,解除分配請(qǐng)求可為異步的且與疏導(dǎo)器相關(guān)。因此,解除分配請(qǐng)求在完成之前可為虛擬的(在時(shí)間上)。在任何時(shí)間點(diǎn),分配(邏輯和物理分配)的管理可偏離實(shí)際可用空間。管理模塊516被配置為處理這些差異。邏輯空間管理模塊516也可從請(qǐng)求裝置接收LID組命令請(qǐng)求并且可向請(qǐng)求裝置傳送指示對(duì)LID組命令請(qǐng)求的響應(yīng)的回復(fù)。LID組命令請(qǐng)求可包括將對(duì)例如兩個(gè)或更多個(gè)LID(“LID組”)采取的動(dòng)作、與該LID組關(guān)聯(lián)的元數(shù)據(jù)、與該LID組關(guān)聯(lián)的數(shù)據(jù)等。例如,如果若干用戶(hù)各自分配有LID并且這些用戶(hù)為組的一部分,則LID組命令可用于將若干用戶(hù)的LID解除分配,將其它LID分配給每個(gè)用戶(hù),返回每個(gè)用戶(hù)的使用信息等。響應(yīng)于LID組命令所采取的動(dòng)作還可包括修改元數(shù)據(jù)、備份數(shù)據(jù)、備份元數(shù)據(jù)、改變控制參數(shù)、改變存取參數(shù)、刪除數(shù)據(jù)、復(fù)制數(shù)據(jù)、加密數(shù)據(jù)、重復(fù)刪除數(shù)據(jù)、壓縮數(shù)據(jù)、解壓縮數(shù)據(jù)等。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到邏輯空間管理模塊516還可進(jìn)行的其它邏輯空間管理功能。在一個(gè)實(shí)施方案中,設(shè)備500包括在邏輯到物理映像中將指定的LID映射到指定的物理地址的映射模塊518。邏輯容量模塊404使用映射模塊518映射的邏輯到物理映像來(lái)確定邏輯空間是否具有足夠的未分配的邏輯空間。邏輯到物理映像可用于追蹤指定的LID、未指定的LID、分配的LID、未分配的LID、分配的LID容量、未分配的LID容量等的分配。在一個(gè)實(shí)施方案中,映射模塊518將指定的LID和相應(yīng)的指定的物理地址映射到多個(gè)映像中。例如,正向映像可用于快速識(shí)別給定LID的指定的物理地址。正向映像可包括B樹(shù)、內(nèi)容可尋址存儲(chǔ)器(“CAM”)、ニ叉樹(shù)、散列表等或有利于快速捜索群體稀疏的空間或范圍的其它數(shù)據(jù)結(jié)構(gòu)。通過(guò)使用快速捜索群體稀疏的虛擬或邏輯命名空間的正向映像,映射模塊518提供了確定邏輯標(biāo)識(shí)符的ー個(gè)或多個(gè)物理地址的有效方式。另外,反向映像可用于快速訪問(wèn)關(guān)于物理地址的信息并且鏈接至與該物理地址關(guān)聯(lián)的邏輯標(biāo)識(shí)符。反向映像可用于識(shí)別來(lái)自物理地址的LID。反向映像可用于將數(shù)據(jù)存儲(chǔ)裝置106中的地址映射到在存儲(chǔ)空間恢復(fù)操作期間一起擦除的擦除區(qū)域,諸如擦除塊中,使得反向映像的一部分跨越數(shù)據(jù)存儲(chǔ)裝置106的擦除區(qū)域。通過(guò)擦除區(qū)域來(lái)組織反向映像有利于追蹤在存儲(chǔ)恢復(fù)操作期間有用的信息。例如,反向映像可包括擦除區(qū)域中具有有效數(shù)據(jù)和具有無(wú)效數(shù)據(jù)的物理地址。當(dāng)從擦除區(qū)域復(fù)制有效數(shù)據(jù)并且將該擦除區(qū)域擦除吋,可易于改變反向映像以表明該擦除區(qū)域不包括數(shù)據(jù)且準(zhǔn)備對(duì)數(shù)據(jù)進(jìn)行順序存儲(chǔ)。2008^4^80的ホ示11"Apparatus,System,andMethodforEfficientMappingofVirtualandPhysicalAddresses,Non-VolatileStorage“的美國(guó)專(zhuān)利申請(qǐng)No.12/098,434(DavidFlyrm等)中包括對(duì)正向和反向映射的更詳細(xì)討論,該專(zhuān)利以引用的方式并入本文。通過(guò)將LID和相應(yīng)物理地址的大功率映射包括在存儲(chǔ)系統(tǒng)102和甚至存儲(chǔ)裝置106中,該映射有效地鞏固了傳統(tǒng)上在高層上進(jìn)行功能,諸如精簡(jiǎn)配置、分配功能等。映射模塊518提供了消除傳統(tǒng)系統(tǒng)中使用的映射層的有效方式。在精簡(jiǎn)配置的存儲(chǔ)系統(tǒng)中,ー個(gè)潛在問(wèn)題在于文件服務(wù)器/文件系統(tǒng)或客戶(hù)端可嘗試將數(shù)據(jù)寫(xiě)入存儲(chǔ)裝置,但由于存儲(chǔ)裝置缺乏可用磁盤(pán)空間,因此這只會(huì)使寫(xiě)入請(qǐng)求失敗。對(duì)于其中文件服務(wù)器/文件系統(tǒng)憑借LBA到PBA的一対一映射來(lái)追蹤可用物理存儲(chǔ)容量的隨機(jī)存取裝置中,存儲(chǔ)裝置用完存儲(chǔ)空間的可能性極低。然而,如果存儲(chǔ)裝置實(shí)際上為精簡(jiǎn)配置系統(tǒng)、日志結(jié)構(gòu)文件系統(tǒng)等,文件服務(wù)器/文件系統(tǒng)可以認(rèn)為該存儲(chǔ)裝置為隨機(jī)存取裝置。對(duì)于此情況,希望在寫(xiě)入請(qǐng)求之前或連同寫(xiě)入請(qǐng)求預(yù)留物理空間,以使得寫(xiě)入請(qǐng)求不會(huì)失敗。還存在文件服務(wù)器/文件系統(tǒng)或客戶(hù)端可能期望預(yù)留物理存儲(chǔ)空間的其它情況。設(shè)備500包括位于存儲(chǔ)系統(tǒng)102中的物理空間預(yù)留請(qǐng)求模塊520,物理空間預(yù)留請(qǐng)求模塊520從客戶(hù)端110或文件服務(wù)器114/文件系統(tǒng)接收預(yù)留數(shù)據(jù)存儲(chǔ)裝置(即為數(shù)據(jù)存儲(chǔ)裝置的一部分的存儲(chǔ)裝置106)上的可用物理存儲(chǔ)容量的請(qǐng)求[在下文中為“物理空間預(yù)留請(qǐng)求”]。在一個(gè)實(shí)施方案中,物理空間預(yù)留請(qǐng)求包括客戶(hù)端110或文件服務(wù)器114/文件系統(tǒng)請(qǐng)求的物理存儲(chǔ)容量的量的指示。請(qǐng)求的物理存儲(chǔ)容量的量的指示可以存儲(chǔ)裝置106的物理容量或存儲(chǔ)裝置106的容量的其它直接度量來(lái)表示。預(yù)留物理存儲(chǔ)容量的請(qǐng)求還可包括將預(yù)留的物理存儲(chǔ)容量分配給邏輯實(shí)體的請(qǐng)求。物理存儲(chǔ)容量的量的指示也可間接表示。例如,文件服務(wù)器114/文件系統(tǒng)可指示邏輯塊的數(shù)量,并且數(shù)據(jù)存儲(chǔ)裝置可確定每個(gè)邏輯塊的具體固定大小,然后將邏輯塊的數(shù)量轉(zhuǎn)換成物理存儲(chǔ)容量。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到物理空間預(yù)留請(qǐng)求中的物理存儲(chǔ)容量的量的其它指示符。在一個(gè)實(shí)施方案中,物理空間預(yù)留請(qǐng)求與寫(xiě)入請(qǐng)求關(guān)聯(lián)。在一個(gè)實(shí)施方案中,寫(xiě)入請(qǐng)求為兩步進(jìn)程,并且物理空間預(yù)留請(qǐng)求和寫(xiě)入請(qǐng)求是分開(kāi)的。在另ー個(gè)實(shí)施方案中,物理空間預(yù)留請(qǐng)求為寫(xiě)入請(qǐng)求的一部分或?qū)懭胝?qǐng)求被確認(rèn)為具有隱含的物理空間預(yù)留請(qǐng)求。在另ー個(gè)實(shí)施方案中,物理空間預(yù)留請(qǐng)求與特定寫(xiě)入請(qǐng)求不關(guān)聯(lián),但相反地可與計(jì)劃性存儲(chǔ)關(guān)聯(lián),從而預(yù)留臨界操作等(其中僅分配存儲(chǔ)空間是不夠的)的存儲(chǔ)空間。。在某些實(shí)施方案中,可將數(shù)據(jù)組織成原子數(shù)據(jù)單元。例如,原子數(shù)據(jù)單元可為包、頁(yè)面、邏輯頁(yè)面、邏輯包、塊、邏輯塊、與一個(gè)或多個(gè)邏輯塊地址關(guān)聯(lián)的一組數(shù)據(jù)(這些邏輯塊地址可為連續(xù)或不連續(xù)的)、文件、文檔或其它類(lèi)別的相關(guān)數(shù)據(jù)。在一個(gè)實(shí)施方案中,原子數(shù)據(jù)單元與多個(gè)不連續(xù)和/或無(wú)次序的邏輯塊地址或被寫(xiě)入數(shù)據(jù)管道處理為單個(gè)原子數(shù)據(jù)單元的其它標(biāo)識(shí)符關(guān)聯(lián)。如本文所用,在單個(gè)寫(xiě)入操作中寫(xiě)入不連續(xù)和/或無(wú)次序的邏輯塊被稱(chēng)為原子寫(xiě)入。在一個(gè)實(shí)施方案中,硬件控制器按照所接收的順序來(lái)處理操作,并且客戶(hù)端的軟件驅(qū)動(dòng)器將這些操作一起發(fā)送至硬件控制器以進(jìn)行單次原子寫(xiě)入,以使得寫(xiě)入數(shù)據(jù)管道可正常地處理原子寫(xiě)入操作。因?yàn)橛布错樞蛱幚聿僮?,所以這保證了不同邏輯塊地址或給定原子寫(xiě)入的其它標(biāo)識(shí)符一起穿過(guò)寫(xiě)入數(shù)據(jù)管道而到達(dá)非易失性存儲(chǔ)器。在一個(gè)實(shí)施方案中,一旦恢復(fù)電源,客戶(hù)端可在恢復(fù)時(shí)取消、重新處理或以其它方式處理失敗的原子寫(xiě)入和/或其它失敗或終止的操作。在一個(gè)實(shí)施方案中,設(shè)備500可使用指示特定塊是否為原子寫(xiě)入的一部分的元數(shù)據(jù)標(biāo)志來(lái)標(biāo)記原子寫(xiě)入的塊。元數(shù)據(jù)標(biāo)記的一個(gè)實(shí)例取決于非易失性存儲(chǔ)器的日志只寫(xiě)/只加協(xié)議以及元數(shù)據(jù)標(biāo)志等。使用只加日志來(lái)存儲(chǔ)數(shù)據(jù)且防止任何交錯(cuò)塊能夠使原子寫(xiě)入的成員元數(shù)據(jù)為單比特?cái)?shù)據(jù)。在一個(gè)實(shí)施方案中,標(biāo)志位可為0,除非塊為原子寫(xiě)入的成員,則該位可為1,或者反之亦然。在一個(gè)實(shí)施方案中,如果塊為原子寫(xiě)入的成員且為原子寫(xiě)入的最后ー個(gè)塊,則元數(shù)據(jù)標(biāo)志可為0以表明該塊為原子寫(xiě)入的最后ー個(gè)塊。在另ー個(gè)實(shí)施方案中,可發(fā)送不同的硬件命令,以標(biāo)記原子寫(xiě)入的不同標(biāo)題,諸如原子寫(xiě)入中的第一個(gè)塊、原子寫(xiě)入的中間成員塊、原子寫(xiě)入的尾標(biāo)等。在一個(gè)實(shí)施方案中,當(dāng)從客戶(hù)端或存儲(chǔ)裝置的功率損耗或其它失效中恢復(fù)時(shí),設(shè)備500以確定性方向掃描非易失性存儲(chǔ)器上的日志(例如,在一個(gè)實(shí)施方案中,日志的起始點(diǎn)為尾標(biāo),而日志的終點(diǎn)為表頭,并且始終將數(shù)據(jù)添加在表頭處)。在一個(gè)實(shí)施方案中,功率管理設(shè)備從日志的表頭掃描至日志的尾標(biāo)。對(duì)于原子寫(xiě)入的恢復(fù)而言,在一個(gè)實(shí)施方案中,當(dāng)從表頭掃描至尾標(biāo)時(shí),如果元數(shù)據(jù)標(biāo)志位為0,則塊為單塊原子寫(xiě)入或非原子寫(xiě)入塊。在一個(gè)實(shí)施方案中,一旦元數(shù)據(jù)標(biāo)志位從0變?yōu)?,掃描的前一個(gè)塊和可能掃描的當(dāng)前塊為原子寫(xiě)入的成員。在一個(gè)實(shí)施方案中,功率管理設(shè)備繼續(xù)掃描日志,直到元數(shù)據(jù)標(biāo)志變回到0,在日志的該點(diǎn)處,掃描的前一個(gè)塊為原子寫(xiě)入的最后ー個(gè)成員和針對(duì)原子寫(xiě)入存儲(chǔ)的第一個(gè)塊。在一個(gè)實(shí)施方案中,非易失性存儲(chǔ)器采用在日志前面(即日志的表頭)進(jìn)行新寫(xiě)入的基于日志的只加寫(xiě)入結(jié)構(gòu)化寫(xiě)入系統(tǒng)。在另ー個(gè)實(shí)施方案中,存儲(chǔ)控制器采用無(wú)用單元收集系統(tǒng)、疏導(dǎo)器、清除代理等來(lái)收回日志的刪除塊、舊塊和/或無(wú)效塊。在另ー個(gè)實(shí)施方案中,存儲(chǔ)控制器使用正向映像將邏輯塊地址映射到物理地址,以有利于使用只加寫(xiě)入結(jié)構(gòu)和無(wú)用單元收集。在一個(gè)實(shí)施方案中,設(shè)備500包括確定數(shù)據(jù)存儲(chǔ)裝置(即存儲(chǔ)裝置106)是否具有滿(mǎn)足物理存儲(chǔ)空間請(qǐng)求的可用物理存儲(chǔ)容量的量的物理空間預(yù)留模塊522。如果物理空間預(yù)留模塊522確定可用物理存儲(chǔ)容量的量足以滿(mǎn)足物理空間預(yù)留請(qǐng)求,則物理空間預(yù)留模塊522預(yù)留存儲(chǔ)裝置106上的可用物理存儲(chǔ)容量的量以滿(mǎn)足物理存儲(chǔ)空間請(qǐng)求。滿(mǎn)足物理存儲(chǔ)空間請(qǐng)求所預(yù)留的可用物理存儲(chǔ)容量的量為預(yù)留的物理容量。預(yù)留的物理容量的量可能或可能不等于物理空間預(yù)留請(qǐng)求中請(qǐng)求的存儲(chǔ)空間量的量。例如,存儲(chǔ)系統(tǒng)102可能需要通過(guò)將數(shù)據(jù)寫(xiě)入存儲(chǔ)裝置106來(lái)存儲(chǔ)附加信息,諸如元數(shù)據(jù)、索引信息、錯(cuò)誤校正碼等。另外,存儲(chǔ)系統(tǒng)102可加密數(shù)據(jù),這可能會(huì)影響存儲(chǔ)大小。存儲(chǔ)系統(tǒng)102也可壓縮數(shù)據(jù),這可減少滿(mǎn)足物理空間預(yù)留請(qǐng)求中的請(qǐng)求的量所需的物理存儲(chǔ)容量的量。在一個(gè)實(shí)施方案中,物理空間預(yù)留請(qǐng)求包括邏輯空間的量,并且請(qǐng)求的物理存儲(chǔ)容量的量的指示來(lái)源于請(qǐng)求的邏輯空間。在另ー個(gè)實(shí)施方案中,物理空間預(yù)留請(qǐng)求包括一個(gè)或多個(gè)LID,并且請(qǐng)求的物理存儲(chǔ)容量的量的指示來(lái)源干與所述LID關(guān)聯(lián)的數(shù)據(jù)量。在一個(gè)實(shí)例中,與所述LID關(guān)聯(lián)的數(shù)據(jù)為已指定給這些LID的數(shù)據(jù),諸如寫(xiě)入請(qǐng)求中的數(shù)據(jù)。在另ー個(gè)實(shí)例中,與所述LID關(guān)聯(lián)的數(shù)據(jù)為分配給每個(gè)LID的數(shù)據(jù)容量,例如LID為L(zhǎng)BA并且可使用邏輯塊大小來(lái)得到請(qǐng)求的物理存儲(chǔ)容量的量的情況。在另ー個(gè)實(shí)施方案中,物理空間預(yù)留請(qǐng)求為存儲(chǔ)數(shù)據(jù)的請(qǐng)求。在該實(shí)施方案中,可包含物理空間預(yù)留請(qǐng)求,并且請(qǐng)求的物理存儲(chǔ)容量的量的指示可來(lái)源于所述數(shù)據(jù)和/或與所述數(shù)據(jù)關(guān)聯(lián)的元數(shù)據(jù)。在另ー個(gè)實(shí)施方案中,物理空間預(yù)留請(qǐng)求與存儲(chǔ)數(shù)據(jù)的請(qǐng)求關(guān)聯(lián)。在該實(shí)施方案中,請(qǐng)求的物理存儲(chǔ)容量的量的指示在物理空間預(yù)留請(qǐng)求中指示并且可與存儲(chǔ)數(shù)據(jù)的請(qǐng)求的數(shù)據(jù)相關(guān)。然后,物理空間預(yù)留模塊522也可使用元數(shù)據(jù)、壓縮、加密等因素來(lái)確定滿(mǎn)足物理空間預(yù)留請(qǐng)求所需的物理容量的量。滿(mǎn)足物理空間預(yù)留請(qǐng)求所需的物理容量的量可等干、大于或小于物理空間預(yù)留請(qǐng)求中指示的量。一旦物理空間預(yù)留模塊522確定了滿(mǎn)足物理空間預(yù)留請(qǐng)求所需的物理容量的量,則物理空間預(yù)留模塊522確定存儲(chǔ)系統(tǒng)102中的一個(gè)或多個(gè)存儲(chǔ)裝置106a-n是否單獨(dú)或組合地具有足夠的可用物理存儲(chǔ)容量來(lái)滿(mǎn)足物理空間預(yù)留請(qǐng)求。所述請(qǐng)求可針對(duì)特定存儲(chǔ)裝置(例如106a)、存儲(chǔ)裝置106的組合上的空間(例如一些存儲(chǔ)裝置106位于RAID中的情況)或可針對(duì)存儲(chǔ)系統(tǒng)102中通常具有的可用空間。物理空間預(yù)留模塊522可使可用容量的確定適于物理空間預(yù)留請(qǐng)求的細(xì)節(jié)。如果物理空間預(yù)留請(qǐng)求針對(duì)不止一個(gè)存儲(chǔ)裝置上的空間,物理空間預(yù)留模塊522通常會(huì)從每個(gè)存儲(chǔ)裝置106的每個(gè)邏輯到物理映像或一組存儲(chǔ)裝置106的組合邏輯到物理映像中檢索可用物理存儲(chǔ)容量信息。物理空間預(yù)留模塊522通常會(huì)查看指定的物理地址。注意到,物理空間預(yù)留模塊522通過(guò)查看指定的LID可能不具有足夠的信息來(lái)確定可用物理容量,因?yàn)長(zhǎng)ID與物理地址之間通常不存在一對(duì)ー關(guān)系。在一個(gè)實(shí)施方案中,物理空間預(yù)留模塊522通過(guò)保留足夠的可用存儲(chǔ)容量以滿(mǎn)足物理空間預(yù)留請(qǐng)求中的請(qǐng)求的容量的量來(lái)預(yù)留物理存儲(chǔ)容量。通常,在日志結(jié)構(gòu)文件系統(tǒng)或其它順序存儲(chǔ)裝置中,物理空間預(yù)留模塊522不會(huì)預(yù)留存儲(chǔ)裝置106中的特定物理區(qū)域或物理地址范圍,但相反會(huì)預(yù)留物理存儲(chǔ)容量。例如,存儲(chǔ)裝置106可具有500千兆字節(jié)(“GB”)的可用物理存儲(chǔ)容量。存儲(chǔ)裝置106可接收數(shù)據(jù)并且將數(shù)據(jù)存儲(chǔ)在ー個(gè)或多個(gè)追加點(diǎn)處,從而減小存儲(chǔ)容量。同時(shí),無(wú)用單元收集或存儲(chǔ)空間恢復(fù)操作可在將恢復(fù)的擦除塊返回到存儲(chǔ)池的后臺(tái)中進(jìn)行,從而增加存儲(chǔ)空間。在一個(gè)實(shí)施方案中,存儲(chǔ)和釋放數(shù)據(jù)的位置不斷改變,因此物理空間預(yù)留模塊522可在無(wú)需預(yù)留固定物理存儲(chǔ)位置的情況下監(jiān)測(cè)存儲(chǔ)容量。物理空間預(yù)留模塊522可以多種方式來(lái)預(yù)留存儲(chǔ)空間。例如,物理空間預(yù)留模塊522可在存儲(chǔ)裝置106上的可用物理存儲(chǔ)容量減小至預(yù)留的存儲(chǔ)容量時(shí)暫停新數(shù)據(jù)的存儲(chǔ),可在存儲(chǔ)裝置106上的物理存儲(chǔ)容量減小至高于預(yù)留的物理存儲(chǔ)容量的某個(gè)水平時(shí)發(fā)送警報(bào),或者可發(fā)送使可用存儲(chǔ)容量保持高于預(yù)留的物理存儲(chǔ)容量的某個(gè)其它動(dòng)作或動(dòng)作的組合。在另ー個(gè)實(shí)施方案中,物理空間預(yù)留模塊522預(yù)留數(shù)據(jù)存儲(chǔ)裝置上的物理區(qū)域、物理地址范圍等。例如,如果物理空間預(yù)留模塊522預(yù)留了一定數(shù)量的擦除塊,則與物理空間預(yù)留請(qǐng)求關(guān)聯(lián)的數(shù)據(jù)可存儲(chǔ)在預(yù)留的區(qū)域或地址范圍中??蓪⑺鰯?shù)據(jù)按順序存儲(chǔ)在預(yù)留的存儲(chǔ)區(qū)域或范圍中。例如,可能期望將某些數(shù)據(jù)存儲(chǔ)在特定位置處。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到響應(yīng)于物理空間預(yù)留請(qǐng)求預(yù)留特定區(qū)域、地址范圍等的原因。在一個(gè)實(shí)施方案中,設(shè)備500包括物理空間預(yù)留返回模塊524,物理空間預(yù)留返回模塊5M響應(yīng)于確定數(shù)據(jù)存儲(chǔ)裝置是否具有滿(mǎn)足物理空間預(yù)留請(qǐng)求的可用物理存儲(chǔ)空間的量的物理空間預(yù)留模塊522,向客戶(hù)端110或文件服務(wù)器114/文件系統(tǒng)發(fā)送請(qǐng)求的物理存儲(chǔ)容量的量的可用性或不可用性指示。例如,如果物理空間預(yù)留模塊522確定可用存儲(chǔ)空間足以滿(mǎn)足物理空間預(yù)留請(qǐng)求,則物理空間預(yù)留返回模塊5M可發(fā)送物理空間預(yù)留模塊522已預(yù)留請(qǐng)求的存儲(chǔ)容量的通知或其它合適的通知。另ー方面,如果物理空間預(yù)留模塊522確定存儲(chǔ)裝置106或存儲(chǔ)系統(tǒng)102不具有足夠的可用物理存儲(chǔ)容量來(lái)滿(mǎn)足物理空間預(yù)留請(qǐng)求,則物理空間預(yù)留返回模塊5M可發(fā)送失敗通知或請(qǐng)求的物理存儲(chǔ)空間未被預(yù)留的其它指示符。例如,可在寫(xiě)入數(shù)據(jù)之前使用請(qǐng)求的存儲(chǔ)空間的可用性或不可用性指示來(lái)降低寫(xiě)入操作失敗的可能性。在另ー個(gè)實(shí)施方案中,設(shè)備500包括物理空間預(yù)留取消模塊526,物理空間預(yù)留取消模塊5響應(yīng)于取消觸發(fā)事件將預(yù)留的物理存儲(chǔ)空間的全部或部分取消。取消觸發(fā)事件可可呈多種不同形式。例如,取消觸發(fā)事件可包括確定待寫(xiě)入存儲(chǔ)裝置106或存儲(chǔ)系統(tǒng)102且與物理空間預(yù)留模塊522預(yù)留的可用空間關(guān)聯(lián)的數(shù)據(jù)先前已存儲(chǔ)在存儲(chǔ)系統(tǒng)102中。例如,如果重復(fù)數(shù)據(jù)刪除進(jìn)程確定數(shù)據(jù)已存在于存儲(chǔ)系統(tǒng)102中,則可能無(wú)需再次存儲(chǔ)該數(shù)據(jù),因?yàn)橄惹按鎯?chǔ)的數(shù)據(jù)可被映射到兩個(gè)或更多個(gè)LID。在更基本的實(shí)例中,如果預(yù)留的物理存儲(chǔ)空間與寫(xiě)入請(qǐng)求關(guān)聯(lián)并且已執(zhí)行寫(xiě)入請(qǐng)求,則取消觸發(fā)事件可完成對(duì)寫(xiě)入請(qǐng)求的數(shù)據(jù)的存儲(chǔ)。在該實(shí)例中,物理空間預(yù)留取消模塊5可減小或取消預(yù)留的物理存儲(chǔ)容量。如果寫(xiě)入的數(shù)據(jù)小于預(yù)留的空間,則物理空間預(yù)留取消模塊又可減小預(yù)留的量,或者可完全取消與寫(xiě)入請(qǐng)求關(guān)聯(lián)的預(yù)留的物理存儲(chǔ)容量。寫(xiě)入到小于預(yù)留的物理空間的空間可能是由于寫(xiě)入了數(shù)據(jù)單元(該數(shù)據(jù)單元為所述請(qǐng)求的根據(jù))的一部分,其中逐步寫(xiě)入與物理空間預(yù)留請(qǐng)求關(guān)聯(lián)的數(shù)據(jù)等。在一個(gè)實(shí)施方案中,通過(guò)物理存儲(chǔ)空間預(yù)留模塊522來(lái)預(yù)留物理存儲(chǔ)空間,以與請(qǐng)求匹配,但由于壓縮或類(lèi)似的程序的原因,存儲(chǔ)的數(shù)據(jù)的存儲(chǔ)空間小于關(guān)聯(lián)的預(yù)留的物理存儲(chǔ)容量。在另ー個(gè)實(shí)施方案中,取消觸發(fā)事件為超吋。例如,如果物理空間預(yù)留請(qǐng)求與寫(xiě)入請(qǐng)求關(guān)聯(lián),則物理空間預(yù)留模塊522預(yù)留物理存儲(chǔ)容量,如果在一定量的時(shí)間結(jié)束之前未寫(xiě)入與寫(xiě)入請(qǐng)求關(guān)聯(lián)的數(shù)據(jù),則物理空間預(yù)留取消模塊5可取消對(duì)物理存儲(chǔ)空間的預(yù)留。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到將預(yù)留的物理容量的全部或部分取消的其它原因。在一個(gè)實(shí)施方案中,物理空間預(yù)留模塊522可増加或以其它方式改變預(yù)留的物理存儲(chǔ)容量的量。例如,物理空間預(yù)留請(qǐng)求模塊520可接收另ー個(gè)物理空間預(yù)留請(qǐng)求,該請(qǐng)求可能與另ー個(gè)物理空間預(yù)留請(qǐng)求關(guān)聯(lián)或不關(guān)聯(lián)。如果物理空間預(yù)留請(qǐng)求與先前預(yù)留的物理存儲(chǔ)容量關(guān)聯(lián),則物理空間預(yù)留模塊522可増加預(yù)留的物理存儲(chǔ)容量。如果物理空間預(yù)留請(qǐng)求與先前預(yù)留的物理存儲(chǔ)容量不關(guān)聯(lián),則物理空間預(yù)留模塊522可単獨(dú)地預(yù)留物理存儲(chǔ)容量并單獨(dú)地追蹤附加存儲(chǔ)容量。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到請(qǐng)求和預(yù)留可用物理存儲(chǔ)容量且改變或取消預(yù)留的容量的其它方式。標(biāo)準(zhǔn)管理應(yīng)包括用于管理物理存儲(chǔ)容量、向用戶(hù)提供指示需采取動(dòng)作的指示符的某種閾值、觸發(fā)器、報(bào)警器等。通常,這可在管理系統(tǒng)中進(jìn)行。然而,在滿(mǎn)足標(biāo)準(zhǔn)時(shí)(優(yōu)選),管理系統(tǒng)應(yīng)將這些裝置組合以進(jìn)行管理或所述裝置應(yīng)當(dāng)被配置/編程來(lái)中斷管理器。在另ー個(gè)實(shí)施方案中,設(shè)備500包括LID指定模塊528,LID指定模塊528響應(yīng)于來(lái)自客戶(hù)端110或文件服務(wù)器114/文件系統(tǒng)的寫(xiě)入數(shù)據(jù)的請(qǐng)求,將ー個(gè)或多個(gè)未指定的LID指定給所述數(shù)據(jù)并且將指定的LID發(fā)送至客戶(hù)端110或文件服務(wù)器114/文件系統(tǒng)。在一個(gè)實(shí)施方案中,LID指定模塊5可對(duì)LID進(jìn)行動(dòng)態(tài)分配和指定。在另ー個(gè)實(shí)施方案中,寫(xiě)入數(shù)據(jù)的請(qǐng)求可為兩步進(jìn)程。LID指定模塊5可在第一個(gè)步驟中向待寫(xiě)入的數(shù)據(jù)分配LID,然后在第二個(gè)步驟中,可將所述數(shù)據(jù)與分配的LID—起寫(xiě)入。在一個(gè)實(shí)施方案中,LID分配模塊402分配連續(xù)范圍中的LID。LID指定模塊5也可分配連續(xù)范圍中的LID。如果邏輯空間較大,則LID分配模塊402可能無(wú)需碎化分配的LID,但可能能夠選擇一系列連續(xù)的LID。在另ー個(gè)實(shí)施方案中,LID分配模塊402指定可能不連續(xù)的LID,并且可使用與其它分配的邏輯空間交替的邏輯空間。在另ー個(gè)實(shí)施方案中,設(shè)備500包括在直接存儲(chǔ)器存取(“DMA”)和/或遠(yuǎn)程DMA(“RDMA”)操作中從客戶(hù)端110彈出數(shù)據(jù)的DMA模塊530。所述數(shù)據(jù)與LID分配模塊402指定的LID關(guān)聯(lián)。首先在存儲(chǔ)數(shù)據(jù)的請(qǐng)求(諸如寫(xiě)入請(qǐng)求)中識(shí)別所述數(shù)據(jù),然后存儲(chǔ)控制器104再執(zhí)行DMA和/或RDMA以將數(shù)據(jù)從客戶(hù)端110拉動(dòng)至存儲(chǔ)系統(tǒng)102中的存儲(chǔ)裝置106。在另ー個(gè)實(shí)施方案中,寫(xiě)入請(qǐng)求未采用DMA或RDMA,但相反地寫(xiě)入請(qǐng)求包括所述數(shù)據(jù)。此外,所述數(shù)據(jù)與LID分配模塊402指定的LID關(guān)聯(lián)。在一個(gè)實(shí)施方案中,設(shè)備500包括刪除模塊532。在一個(gè)實(shí)施方案中,響應(yīng)于從數(shù)據(jù)存儲(chǔ)裝置刪除數(shù)據(jù)的請(qǐng)求,刪除模塊532移除存儲(chǔ)刪除數(shù)據(jù)的存儲(chǔ)空間與相應(yīng)LID之間的映射。刪除模塊532也可將刪除數(shù)據(jù)的ー個(gè)或多個(gè)物理地址解除指定,并且也可將刪除數(shù)據(jù)的ー個(gè)或多個(gè)物理地址解除分配。流程圖圖6為示出了根據(jù)本發(fā)明的用于分配數(shù)據(jù)存儲(chǔ)空間的方法600的一個(gè)實(shí)施方案的示意性流程圖。方法600開(kāi)始,然后分配請(qǐng)求模塊402從請(qǐng)求裝置,諸如客戶(hù)端110、文件服務(wù)器114/文件系統(tǒng)、主分配管理器IM等接收分配邏輯容量的分配請(qǐng)求602。在數(shù)據(jù)存儲(chǔ)裝置處接收分配請(qǐng)求。邏輯容量用于將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)裝置上。邏輯容量模塊404確定數(shù)據(jù)存儲(chǔ)裝置的邏輯空間是否具有足夠的未分配的邏輯空間來(lái)滿(mǎn)足分配請(qǐng)求604,其中所述確定包括捜索邏輯到物理映像。邏輯到物理映像包括邏輯空間中映射到ー個(gè)或多個(gè)物理位置的指定的LID,與所述指定的LID相對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)裝置上的所述ー個(gè)或多個(gè)物理位置處,并且指定的LID不同于映射到該指定的LID的ー個(gè)或多個(gè)物理地址。分配回復(fù)模塊406將回復(fù)傳送至請(qǐng)求裝置606,然后方法600圖7為示出了根據(jù)本發(fā)明的用于分配數(shù)據(jù)存儲(chǔ)空間的方法700的一個(gè)實(shí)施方案的示意性流程圖。方法700開(kāi)始,然后物理容量請(qǐng)求模塊502從請(qǐng)求裝置接收物理容量請(qǐng)求702。在數(shù)據(jù)存儲(chǔ)裝置處接收物理容量請(qǐng)求。物理容量請(qǐng)求包括數(shù)據(jù)存儲(chǔ)裝置中的可用物理存儲(chǔ)容量的量的請(qǐng)求。物理容量請(qǐng)求例如可為具體物理容量的量,可來(lái)源于存儲(chǔ)數(shù)據(jù)的請(qǐng)求等。物理容量分配模塊504確定數(shù)據(jù)存儲(chǔ)裝置上的可用物理存儲(chǔ)容量的量704,其中可用物理存儲(chǔ)容量的量包括數(shù)據(jù)存儲(chǔ)裝置中未指定的存儲(chǔ)位置的物理存儲(chǔ)容量。物理容量回復(fù)模塊506響應(yīng)于確定數(shù)據(jù)存儲(chǔ)裝置上的可用物理存儲(chǔ)容量的量的物理容量分配模塊504將回復(fù)傳送至請(qǐng)求裝置706,然后方法700結(jié)束。圖8為示出了根據(jù)本發(fā)明的用于預(yù)留物理存儲(chǔ)空間的方法800的一個(gè)實(shí)施方案的示意性流程圖。方法800開(kāi)始,然后物理空間預(yù)留請(qǐng)求模塊520接收預(yù)留可用物理存儲(chǔ)空間的物理空間預(yù)留請(qǐng)求802。物理空間預(yù)留請(qǐng)求包括請(qǐng)求的物理存儲(chǔ)容量的量的指示。物理存儲(chǔ)容量的量的指示可采取多種形式,諸如多個(gè)字節(jié)或多個(gè)邏輯塊、存儲(chǔ)特定數(shù)據(jù)的請(qǐng)求或其它間接指示,其中物理存儲(chǔ)的量的指示來(lái)源于所述請(qǐng)求。物理空間預(yù)留模塊522確定數(shù)據(jù)存儲(chǔ)裝置是否具有滿(mǎn)足物理存儲(chǔ)空間請(qǐng)求的可用物理存儲(chǔ)容量804。如果物理空間預(yù)留模塊522確定804數(shù)據(jù)存儲(chǔ)裝置具有滿(mǎn)足物理存儲(chǔ)空間請(qǐng)求的可用物理存儲(chǔ)容量,則物理空間預(yù)留模塊522預(yù)留足以處理物理空間預(yù)留請(qǐng)求的物理存儲(chǔ)容量806,并且物理空間預(yù)留返回模塊524向請(qǐng)求客戶(hù)端110或文件服務(wù)器114/文件系統(tǒng)發(fā)送已預(yù)留請(qǐng)求的物理存儲(chǔ)空間的指示808。物理分配模塊404保留足夠的可用物理存儲(chǔ)容量以保留對(duì)物理存儲(chǔ)容量的預(yù)留,直到通過(guò)存儲(chǔ)與預(yù)留關(guān)聯(lián)的數(shù)據(jù)來(lái)使用預(yù)留或直到取消預(yù)留810時(shí),然后方法800結(jié)束。如果物理空間預(yù)留模塊522確定804數(shù)據(jù)存儲(chǔ)裝置不具有滿(mǎn)足物理存儲(chǔ)空間請(qǐng)求的可用物理存儲(chǔ)容量,則物理空間預(yù)留返回模塊524向請(qǐng)求客戶(hù)端110或文件服務(wù)器114/文件系統(tǒng)發(fā)送未預(yù)留請(qǐng)求的物理存儲(chǔ)空間的指示或容量不足的指示812,然后方法800結(jié)束。圖9為示出了根據(jù)本發(fā)明的用于在數(shù)據(jù)存儲(chǔ)裝置中指定分配的邏輯標(biāo)識(shí)符的方法900的一個(gè)實(shí)施方案的示意性流程圖。方法900開(kāi)始,然后LID指定模塊5從客戶(hù)端110接收寫(xiě)入請(qǐng)求901。在其它實(shí)施方案中,所述請(qǐng)求來(lái)源于文件服務(wù)器114/文件系統(tǒng)或系統(tǒng)100、101、103中的其它部件。寫(xiě)入請(qǐng)求為將數(shù)據(jù)寫(xiě)入存儲(chǔ)系統(tǒng)102中的一個(gè)或多個(gè)存儲(chǔ)裝置106的請(qǐng)求,其中未將數(shù)據(jù)指定給任何邏輯標(biāo)識(shí)符或未針對(duì)數(shù)據(jù)分配邏輯標(biāo)識(shí)符??赏ㄟ^(guò)存儲(chǔ)系統(tǒng)102來(lái)接收所述請(qǐng)求,并且存儲(chǔ)控制器104或其它部件可認(rèn)識(shí)到LID未被指定給寫(xiě)入請(qǐng)求中的數(shù)據(jù)且所述請(qǐng)求被轉(zhuǎn)發(fā)至LID指定模塊528。LID指定模塊5將ー個(gè)或多個(gè)未指定的LID指定給數(shù)據(jù)904。存儲(chǔ)控制器104將數(shù)據(jù)存儲(chǔ)在存儲(chǔ)裝置106上,并且映射模塊518將存儲(chǔ)數(shù)據(jù)的ー個(gè)或多個(gè)物理地址映射到指定的LID908。如果將數(shù)據(jù)按順序存儲(chǔ)在存儲(chǔ)裝置106上,則在寫(xiě)入請(qǐng)求之前,存儲(chǔ)數(shù)據(jù)的物理地址通常是未知的,但可在存儲(chǔ)該數(shù)據(jù)之后或之前不久確定。LID指定模塊5將指定的LID傳送910至客戶(hù)端110,然后方法900結(jié)束。通信可為已成功存儲(chǔ)數(shù)據(jù)的確認(rèn)的一部分。圖10為示出了根據(jù)本發(fā)明的用于在數(shù)據(jù)存儲(chǔ)裝置106中指定分配的邏輯標(biāo)識(shí)符的方法1000的另ー個(gè)實(shí)施方案的示意性流程圖方法1000開(kāi)始,然后LID指定模塊5接收將LID指定給數(shù)據(jù)的請(qǐng)求1002,其中所述LID被分配給做出所述請(qǐng)求的客戶(hù)端110。在另ー個(gè)實(shí)施方案中,所述請(qǐng)求來(lái)源于文件服務(wù)器114/文件系統(tǒng)或系統(tǒng)100、101、103中的其它裝置。LID指定模塊5將LID指定給數(shù)據(jù)1004,所述數(shù)據(jù)被分配給做出所述請(qǐng)求的客戶(hù)端110。LID指定模塊528將指定的LID傳送1006至客戶(hù)端110。存儲(chǔ)系統(tǒng)102接收將數(shù)據(jù)寫(xiě)入存儲(chǔ)系統(tǒng)102中的存儲(chǔ)裝置106的寫(xiě)入請(qǐng)求1006,其中所述數(shù)據(jù)具有與其關(guān)聯(lián)的指定的LID。在其它實(shí)施方案中,寫(xiě)入請(qǐng)求在于將數(shù)據(jù)存儲(chǔ)在存儲(chǔ)系統(tǒng)103中的不止ー個(gè)存儲(chǔ)裝置106上,例如存儲(chǔ)裝置106為RAID或?qū)?shù)據(jù)寫(xiě)入主存儲(chǔ)裝置106和鏡像存儲(chǔ)裝置106的情況。存儲(chǔ)控制器104將數(shù)據(jù)存儲(chǔ)在存儲(chǔ)裝置106上1010,并且映射模塊518將存儲(chǔ)數(shù)據(jù)的ー個(gè)或多個(gè)物理地址映射到指定的LID1012。存儲(chǔ)控制器104或存儲(chǔ)系統(tǒng)102中的其它部件將寫(xiě)入確認(rèn)傳送1014至請(qǐng)求客戶(hù)端110,然后方法1000結(jié)束。圖11為示出了根據(jù)本發(fā)明的用于在存儲(chǔ)裝置處處理分配查詢(xún)的方法1100的ー個(gè)實(shí)施方案的示意性流程圖。分配查詢(xún)請(qǐng)求模塊510在數(shù)據(jù)存儲(chǔ)裝置處接收分配查詢(xún)1102。分配查詢(xún)確定模塊512識(shí)別滿(mǎn)足分配查詢(xún)中指定的標(biāo)準(zhǔn)的ー個(gè)或多個(gè)LID1104。識(shí)別的LID包括已指定的分配的LID、未指定的分配的LID和/或未分配的LID。分配查詢(xún)回復(fù)模塊514將分配查詢(xún)的結(jié)果傳送至請(qǐng)求裝置或其它指定裝置1106,然后方法1100結(jié)束。所述結(jié)果可包括識(shí)別的LID列表、已找到滿(mǎn)足標(biāo)準(zhǔn)的LID的確認(rèn)、未找到滿(mǎn)足分配查詢(xún)中的標(biāo)準(zhǔn)的LID的確認(rèn)等。圖12為將LID與非易失性存儲(chǔ)裝置(例如存儲(chǔ)裝置106)上的存儲(chǔ)位置關(guān)聯(lián)的示例性數(shù)據(jù)結(jié)構(gòu)的示意性框圖。索引1204可包括樹(shù)(或其它數(shù)據(jù)結(jié)構(gòu)),其包括多個(gè)存儲(chǔ)條目(例如條目1208、1214、1216等)。索引1204中的每個(gè)存儲(chǔ)條目可將LID(或LID范圍或集)與非易失性存儲(chǔ)裝置106的一個(gè)或多個(gè)存儲(chǔ)位置關(guān)聯(lián)。存儲(chǔ)位置可通過(guò)LID1217(例如條目1214中所示)、LID范圍、集等來(lái)識(shí)別的和/或索引。索引1204中的存儲(chǔ)條目可具有可變大小或長(zhǎng)度,使得單個(gè)存儲(chǔ)條目(例如條目1214)可引用一組LID、LID范圍等。存儲(chǔ)條目的LID可為連續(xù)的(例如072-083)。其它條目如1218可包括一組不連續(xù)的LID(例如LID4M-477和535-598)。因此,索引1204可用于表示大小可變的存儲(chǔ)條目(例如與非易失性存儲(chǔ)裝置106的包括任意一組或一系列LID的數(shù)據(jù)的ー個(gè)或多個(gè)存儲(chǔ)位置相對(duì)應(yīng)的存儲(chǔ)條目)。如圖12所示,存儲(chǔ)條目可通過(guò)LID(使用邊,諸如邊1210)來(lái)索引,這可能能夠?qū)崿F(xiàn)對(duì)存儲(chǔ)條目的快速有效的查找。包括LID“182”的存儲(chǔ)條目的示例性捜索可按如下進(jìn)行??稍诟鎯?chǔ)條目處啟動(dòng)捜索,該根存儲(chǔ)條目在圖12的實(shí)例中為存儲(chǔ)條目1208。在單個(gè)LID(或地址范圍)包括在特定存儲(chǔ)條目諸如根存儲(chǔ)條目1208中的情況下,如果搜索的LID("182")低于存儲(chǔ)條目1208的LID,則搜索可沿著定向邊1210向下繼續(xù)進(jìn)行至存儲(chǔ)條目1208的左邊。如果搜索的LID(“182”)與當(dāng)前存儲(chǔ)條目1208(例如位于存儲(chǔ)條目1208的范圍內(nèi))匹配,則成功終止搜索,同時(shí)識(shí)別當(dāng)前存儲(chǔ)條目1208。。如果搜索的LID1206大于當(dāng)當(dāng)前條目1208的范圍,則搜索沿著定向邊定向邊1212向下繼續(xù)進(jìn)行至當(dāng)前存儲(chǔ)條目1208的右邊。如果存儲(chǔ)條目包括兩個(gè)LID或地址范圍(例如,如條目1218所示的不連續(xù)的一組)并且搜索的LID(“182”)介于列出的虛擬地址之間,則搜索沿著中心定向邊(未示出)向下繼續(xù)進(jìn)行至具有介于當(dāng)前條目1208的兩個(gè)LID之間的LID的條目。捜索沿著索引1204向下繼續(xù)進(jìn)行,直到識(shí)別存儲(chǔ)條目或達(dá)到葉存儲(chǔ)條目,然后搜索失敗。在圖12的實(shí)例中,捜索成功終止于匹配的存儲(chǔ)條目1216(例如存儲(chǔ)條目1216包括捜索的LID(“182”)。雖雖然在圖12的實(shí)例中,索引1204采用由LID索引的B樹(shù)數(shù)據(jù)結(jié)構(gòu)來(lái)實(shí)施,但在其它實(shí)施方案中,索引1204可采用內(nèi)容可尋址存儲(chǔ)器(“CAM”)、ニ叉樹(shù)、散列表或本領(lǐng)域中已知的其它數(shù)據(jù)結(jié)構(gòu)來(lái)實(shí)施,并且可包括其它索引類(lèi)型,諸如大小索引、存儲(chǔ)位置索引(例如在下述反向映像1222中)等。索引1204中的每個(gè)存儲(chǔ)條目可將ー個(gè)或多個(gè)LID與非易失性存儲(chǔ)裝置106的(多個(gè))各個(gè)存儲(chǔ)位置關(guān)聯(lián)。例如,條目1214可將LID范圍072-083與存儲(chǔ)位置95-106關(guān)聯(lián)。在一些實(shí)施方案中,存儲(chǔ)位置可通過(guò)物理地址識(shí)別。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,所述存儲(chǔ)位置的物理地址可存儲(chǔ)在索引1204中或可為固態(tài)存儲(chǔ)介質(zhì)的ー個(gè)或多個(gè)存儲(chǔ)結(jié)構(gòu)中的偏移。如上所述,存儲(chǔ)條目1214的存儲(chǔ)位置可由于對(duì)基礎(chǔ)數(shù)據(jù)的修改(例如由于修改、恢復(fù)操作等)而改變。存儲(chǔ)條目還可包括和/或引用元數(shù)據(jù)1219,元數(shù)據(jù)1219可包括關(guān)于LID的元數(shù)據(jù),諸如存儲(chǔ)時(shí)間、大小、LID屬性(例如客戶(hù)端標(biāo)識(shí)符、數(shù)據(jù)標(biāo)識(shí)符、文件名、組標(biāo)識(shí)符)等。因?yàn)樵獢?shù)據(jù)1219與通過(guò)LID(例如地址1215)來(lái)索引的存儲(chǔ)條目關(guān)聯(lián),所以元數(shù)據(jù)1219可與存儲(chǔ)條目1214關(guān)聯(lián),而與對(duì)非易失性存儲(chǔ)裝置106上的基礎(chǔ)存儲(chǔ)位置的位置的改變(例如對(duì)存儲(chǔ)位置1217的改變)無(wú)關(guān)。索引1204可用于有效地確定非易失性存儲(chǔ)裝置106是否包括客戶(hù)端請(qǐng)求中引用的存儲(chǔ)條目和/或識(shí)別數(shù)據(jù)在裝置106上的存儲(chǔ)位置。例如,非易失性存儲(chǔ)裝置106可接收客戶(hù)端請(qǐng)求1202來(lái)分配特定LID。請(qǐng)求1202可指定特定LID、LID和長(zhǎng)度或偏移(例如例如從LID074開(kāi)始,請(qǐng)求3個(gè)數(shù)據(jù)単元)、一組LID等。作為另外一種選擇或除此之外,客戶(hù)端請(qǐng)求1202可包括一組LID、LID范圍(連續(xù)或不連續(xù)的)等。非易失性存儲(chǔ)裝置106可采用搜索操作來(lái)確定與所請(qǐng)求的LID相對(duì)應(yīng)的存儲(chǔ)條目是否可用于索引1204中,如上所述。如果包括所請(qǐng)求的LID的存儲(chǔ)條目存在于索引1204中,則與請(qǐng)求1202關(guān)聯(lián)的LID可識(shí)別為經(jīng)分配和指定。因此,對(duì)應(yīng)于LID的數(shù)據(jù)可存儲(chǔ)在非易失性存儲(chǔ)裝置106上。如果LID不存在于索引1204中,則LID可識(shí)別為未指定(但可分配)。因?yàn)榇鎯?chǔ)條目可表示LID集和/或LID范圍,所以客戶(hù)端請(qǐng)求可導(dǎo)致部分分配。例如,分配068-073的請(qǐng)求可成功分配LID068至071,但可能無(wú)法分配072和073,因?yàn)檫@些包括在存儲(chǔ)條目1214中。就部分分配而言,整個(gè)分配請(qǐng)求可能失敗,可用LID可得以分配,并且其它LID可替代失效的LID等。在圖12所示的實(shí)例中,對(duì)應(yīng)于存儲(chǔ)請(qǐng)求1202的存儲(chǔ)條目存在于索引1204(存儲(chǔ)條目1214)中,因此與請(qǐng)求1202關(guān)聯(lián)的LID被識(shí)別為經(jīng)分配和指定。因此,如果客戶(hù)端請(qǐng)求1202要在指定LID處讀取數(shù)據(jù);則可從存儲(chǔ)條目1214中識(shí)別的存儲(chǔ)位置1217讀取數(shù)據(jù)并且將該數(shù)據(jù)返回到始發(fā)者或所述請(qǐng)求。如果客戶(hù)端請(qǐng)求1202要分配所識(shí)別的LID,則分配請(qǐng)求可能失敗(和/或替代LID可按上述進(jìn)行分配的)。如果新存儲(chǔ)條目添加至索引1204,則可進(jìn)行合并操作。在合并操作中,現(xiàn)有存儲(chǔ)條目可與ー個(gè)或多個(gè)其它存儲(chǔ)條目“合井”。例如,LID084-088的新存儲(chǔ)條目可與條目1214合井。所述合并可包括修改存儲(chǔ)條目的LID1215以包括新地址(例如072-088)和/或引用存儲(chǔ)位置1217以包括其上存儲(chǔ)數(shù)據(jù)的存儲(chǔ)位置。雖然示出了索引1204中的存儲(chǔ)條目包括對(duì)存儲(chǔ)位置(例如地址1217)的引用,但本公開(kāi)不限于該方面。在其它實(shí)施方案中,所述存儲(chǔ)條目包括對(duì)存儲(chǔ)位置的引用或與其的間接連接。例如,所述存儲(chǔ)條目可包括存儲(chǔ)位置標(biāo)識(shí)符(或?qū)Ψ聪蛴诚?222的引用)。圖12示出包括反向映像1222的索引的另ー個(gè)實(shí)例,該索引可將非易失性存儲(chǔ)裝置106的存儲(chǔ)位置與邏輯地址空間中的LID關(guān)聯(lián)。反向映像1222還可將存儲(chǔ)位置與元數(shù)據(jù),諸如有效性指示符1230和/或其它元數(shù)據(jù)1236關(guān)聯(lián)(如下所述)。在一些實(shí)施方案中,存儲(chǔ)位置地址12和/或長(zhǎng)度12可明確地包括在反向映像1222中。或者,存儲(chǔ)位置地址12和/或數(shù)據(jù)長(zhǎng)度12可可通過(guò)反向映像1222中條目的位置和/或布置來(lái)推斷,因此可省略地址12和/或數(shù)據(jù)長(zhǎng)度12觀。在一些實(shí)施方案中,反向映像1222可包括對(duì)LID1234的引用。如上所述,反向映像1222可包括元數(shù)據(jù)1236,元數(shù)據(jù)1236可包與在存儲(chǔ)位置上進(jìn)行的順序存儲(chǔ)操作有關(guān)的元數(shù)據(jù),諸如順序指示符(例如時(shí)間戳),以指示其中存儲(chǔ)數(shù)據(jù)的順序(例如以及存儲(chǔ)位置的“壽命”等)。所述元數(shù)據(jù)還1236可包括關(guān)于存儲(chǔ)介質(zhì)的元數(shù)據(jù),諸如耗損均衡性、可靠性、出錯(cuò)率、干擾狀態(tài)等。元數(shù)據(jù)1236可用于識(shí)別可能減少非易失性存儲(chǔ)裝置106的物理存儲(chǔ)容量的不可靠和/或不可用的存儲(chǔ)位置。反向映像1222可根據(jù)非易失性存儲(chǔ)裝置106的存儲(chǔ)分區(qū)(例如擦除塊)來(lái)組織。在該實(shí)例中,對(duì)應(yīng)于存儲(chǔ)條目1218的條目1220位于擦除塊η1238中。擦除塊η1238在擦除塊η-11240之后,而在擦除塊η+11242之前(未示出擦除塊η_1和η+1的內(nèi)容)。擦除塊可包括預(yù)定數(shù)量的存儲(chǔ)位置。擦除塊可指非易失性存儲(chǔ)裝置106中在存儲(chǔ)恢復(fù)操作中一起擦除的區(qū)域。有效性元數(shù)據(jù)1230可用于確定非易失性存儲(chǔ)裝置106的可用物理存儲(chǔ)容量(例如物理容量(或預(yù)算容量)與包括有效數(shù)據(jù)的存儲(chǔ)位置之間的差異)。反向映像1222可通過(guò)存儲(chǔ)分區(qū)(例如擦除塊)或擦除區(qū)域進(jìn)行布置,以便能夠有效遍歷物理存儲(chǔ)空間(例如進(jìn)行疏導(dǎo)操作、確定物理存儲(chǔ)容量等)。因此,在一些實(shí)施方案中,可通過(guò)遍歷反向映像1222中的存儲(chǔ)位置和/或擦除塊以識(shí)別可用物理存儲(chǔ)容量(和/或用于存儲(chǔ)有效數(shù)據(jù)),從而確定可用物理容量。作為另外一種選擇或除此之外,反向映像1222(或其它數(shù)據(jù)結(jié)構(gòu))可包括追蹤非易失性存儲(chǔ)裝置106的可用物理容量的指示符1238??捎梦锢砣萘恐甘痉?238可初始化至存儲(chǔ)裝置106的物理存儲(chǔ)容量(或預(yù)算容量),并且可在進(jìn)行存儲(chǔ)操作時(shí)更新。導(dǎo)致未對(duì)可用物理存儲(chǔ)容量指示符1238更新的存儲(chǔ)操作可包括但不限于將數(shù)據(jù)存儲(chǔ)在存儲(chǔ)裝置106上;預(yù)留存儲(chǔ)裝置106上的物理容量;取消物理容量預(yù)留;存儲(chǔ)與預(yù)留關(guān)聯(lián)的數(shù)據(jù)(其中存儲(chǔ)數(shù)據(jù)的大小不同于預(yù)留的大小);檢測(cè)不可靠和/或不可用的存儲(chǔ)位置和/或存儲(chǔ)分區(qū)(例如停用存儲(chǔ)位置)等。圖13示出用于管理非易失性存儲(chǔ)裝置的存儲(chǔ)分配的索引1304的另ー個(gè)實(shí)例。在圖13的實(shí)例中,索引1304可被修改以包括一個(gè)或多個(gè)分配條目(例如分配的條目1314)。分配條目可用于追蹤分配給客戶(hù)端但還未被指定(例如與存儲(chǔ)在非易失性存儲(chǔ)裝置106上的數(shù)據(jù)不關(guān)聯(lián))的LID。因此,與存儲(chǔ)條目(例如條目1308、1316和1318)不同,分配條目1314可能不不包括對(duì)存儲(chǔ)位置1317的引用;這些引用可設(shè)置為“不關(guān)聯(lián)的”、“空(NULL)“或可被省略。類(lèi)似地,與分配條目1314關(guān)聯(lián)的元數(shù)據(jù)1319可指示條目未指定和/或與數(shù)據(jù)關(guān)聯(lián)。索引1304可用于確定可用邏輯地址空間的邏輯容量(例如通過(guò)遍歷索引1304)??捎眠壿嬋萘靠煽紤]指定的LID(使用存儲(chǔ)條目)以及分配的但還未指定的LID(使用分配條目,如1314)。如圖13所示,在一些實(shí)施方案中,分配條目1314可保留在具有存儲(chǔ)條目的索引1304中?;蛘撸峙錀l目可保留在獨(dú)立索引(或其它數(shù)據(jù)結(jié)構(gòu))中。當(dāng)分配條目開(kāi)始與非易失性存儲(chǔ)裝置106的數(shù)據(jù)關(guān)聯(lián)(例如與存儲(chǔ)位置關(guān)聯(lián))吋,分配條目可被修改和/或被存儲(chǔ)條目替換。在一些實(shí)施方案中,索引1304(或索引1204)可包括追蹤邏輯地址空間的可用邏輯容量的指示符1330??捎眠壿嬋萘靠筛鶕?jù)存儲(chǔ)裝置106呈現(xiàn)的邏輯地址空間初始化。對(duì)索引1304的改變可引起可用邏輯容量指示符1330進(jìn)行更新。改變可包括但不限于添加新分配條目;移除分配條目;添加存儲(chǔ)條目;移除分配條目等。圖14示出可用于在非易失性存儲(chǔ)裝置中分配存儲(chǔ)的未分配的索引1444的實(shí)例的ー個(gè)實(shí)例。索引1444可包括可對(duì)應(yīng)于上述LID索引1204和/或1304中的〃空洞(hole)“的整個(gè)1450。因此,可用索引1444中的條目1450可對(duì)應(yīng)于可用(例如為分配或指定)的LID(和/或LID范圍、集等)。索引1444可用于響應(yīng)于客戶(hù)端請(qǐng)求而快速確定邏輯存儲(chǔ)空間的邏輯存儲(chǔ)容量和/或識(shí)別要分配的LID。在圖14的實(shí)例中,所示索引1444中的條目通過(guò)LID索引。在一些實(shí)施方案中,然而,索引1444可以其它(或附加)方式索引。例如,未分配的索引1444可通過(guò)LID范圍(例如通過(guò)LID范圍的大小)以及LID來(lái)索引。此索引可用于識(shí)別根據(jù)客戶(hù)端請(qǐng)求設(shè)定的未分配的LID(例如以有效填充邏輯地址空間中的“空洞”)。圖15為用于分配存儲(chǔ)的方法1500的一個(gè)實(shí)施方案的流程圖。如上所述,方法1500的步驟可與特定機(jī)器部件相關(guān)和/或可采用存儲(chǔ)在非瞬時(shí)性機(jī)器可讀存儲(chǔ)介質(zhì)上的機(jī)器可讀指令來(lái)實(shí)施。在步驟1510中,可初始化非易失性存儲(chǔ)裝置以供使用。所述初始化可包括向非易失性存儲(chǔ)裝置(例如固態(tài)存儲(chǔ)裝置106),諸如通信接ロ(例如總線、網(wǎng)絡(luò)等)分配資源,分配易失性存儲(chǔ)器,訪問(wèn)固態(tài)存儲(chǔ)介質(zhì)等。所述初始化還可包括呈現(xiàn)邏輯地址空間、初始化ー個(gè)或多個(gè)索引(例如上文結(jié)合圖12-14描述的索引)等。在步驟1520中,非易失性存儲(chǔ)裝置可向ー個(gè)或多個(gè)客戶(hù)端呈現(xiàn)邏輯空間。步驟1520可包括實(shí)施和/或提供一個(gè)或多個(gè)客戶(hù)端等可訪問(wèn)的接ロ(例如API)。在步驟1530中,非易失性存儲(chǔ)裝置可保留與通過(guò)方法1500所進(jìn)行的邏輯分配操作有關(guān)的元數(shù)據(jù)。所述邏輯分配操作可與在步驟1520呈現(xiàn)的邏輯地址空間中的操作有關(guān),并且可包括但不限于分配邏輯容量;將邏輯容量指定給存儲(chǔ)位置等。元數(shù)據(jù)可包括但不限于將邏輯地址空間中的LID與非易失性存儲(chǔ)裝置上的存儲(chǔ)位置關(guān)聯(lián)的索引;將存儲(chǔ)位置與LID關(guān)聯(lián)的索引(例如圖12的索引1204);指示分配的LID不具有關(guān)聯(lián)的存儲(chǔ)位置的分配條目(例如圖13的索引1304);未分配的索引(例如圖14的索引1444);保留未分配邏輯地址空間的指示符(例如圖13的指示符1330)等。在步驟1540中,可接收與邏輯地址空間中的LID有關(guān)的客戶(hù)端請(qǐng)求??蛻?hù)端請(qǐng)求可包括確定特定LIDand/或邏輯容量是否可分配的查詢(xún)、分配LID和/或邏輯容量的請(qǐng)求、對(duì)非易失性存儲(chǔ)裝置上的存儲(chǔ)數(shù)據(jù)的請(qǐng)求等。在步驟1550中,可引用在步驟1530保留的元數(shù)據(jù)以確定是否可滿(mǎn)足客戶(hù)端請(qǐng)求。步驟1550可包括引用在步驟1530保留的元數(shù)據(jù)(例如索引和/或指示符),以確定邏輯地址空間的可用邏輯容量和/或識(shí)別可用LID(或LID范圍),如上所述。在步驟1560,方法1500可提供對(duì)客戶(hù)端請(qǐng)求的響應(yīng),如果請(qǐng)求不能滿(mǎn)足,則其可包括提供指示此情況的響應(yīng)。如果可滿(mǎn)足客戶(hù)端請(qǐng)求,提供響應(yīng)可包括以下一個(gè)或多個(gè)可滿(mǎn)足分配的指示符、分配滿(mǎn)足請(qǐng)求的LID、提供分配的滿(mǎn)足請(qǐng)求的LID、提供ー個(gè)或多個(gè)請(qǐng)求的LID和/或一個(gè)或多個(gè)附加LID(例如,如果可分配請(qǐng)求的一組LID的一部分)等。在步驟1560之后,流程可返回到步驟1530,其中方法1500可根據(jù)在步驟1560進(jìn)行的分配操作(如果有的話)更新元數(shù)據(jù)(例如索引、指示符等)。圖16示出為用于分配存儲(chǔ)的方法1600的一個(gè)實(shí)施方案的流程圖。如上所述,方法1600的步驟可與特定機(jī)器部件相關(guān)和/或可采用存儲(chǔ)在非瞬時(shí)性機(jī)器可讀存儲(chǔ)介質(zhì)上的機(jī)器可讀指令來(lái)實(shí)施。在步驟1610、1620和1630,方法1600可初始化,向一個(gè)或多個(gè)客戶(hù)端呈現(xiàn)邏輯存儲(chǔ)空間,和/或維護(hù)與通過(guò)方法1600進(jìn)行的邏輯操作有關(guān)的元數(shù)據(jù)。在步驟1632,方法1602可保留與通過(guò)方法1600進(jìn)行的物理存儲(chǔ)操作有關(guān)的元數(shù)據(jù)。存儲(chǔ)操作可包括但不限于預(yù)留物理存儲(chǔ)容量;取消物理存儲(chǔ)容量預(yù)留;將數(shù)據(jù)存儲(chǔ)在非易失性存儲(chǔ)裝置上;解除分配物理存儲(chǔ)容量;疏導(dǎo)操作(例如無(wú)用單元收集、錯(cuò)誤處理等)、物理存儲(chǔ)空間預(yù)算等。如上所述,在步驟1632保留的元數(shù)據(jù)可包括但不限于將邏輯地址空間中的LID與非易失性存儲(chǔ)裝置上的存儲(chǔ)位置關(guān)聯(lián)的索引;將存儲(chǔ)位置與LID關(guān)聯(lián)的索引(例如圖12的索引1204);指示分配的LID不具有關(guān)聯(lián)的存儲(chǔ)位置的分配條目(例如圖13的索引1304);未分配的索引(例如圖14的索引1444);保留未分配邏輯地址空間的指示符(例如圖13的指示符1330)等。在步驟1642,可接收與非易失性存儲(chǔ)裝置的物理存儲(chǔ)容量有關(guān)的客戶(hù)端請(qǐng)求??蛻?hù)端請(qǐng)求可包括確定物理存儲(chǔ)容量是否可用的查詢(xún)、預(yù)留物理存儲(chǔ)容量的請(qǐng)求、存儲(chǔ)數(shù)據(jù)的請(qǐng)求、解除分配數(shù)據(jù)的請(qǐng)求(例如TRIM)等。在步驟1650,可引用元數(shù)據(jù)維護(hù)在步驟1630和/或1632可以確定是否可滿(mǎn)足客戶(hù)端請(qǐng)求。步驟1650可包括引用元數(shù)據(jù)在步驟1630和/或1632,以確定非易失性存儲(chǔ)裝置的可用物理存儲(chǔ)容量和/或識(shí)別與特定LID關(guān)聯(lián)的存儲(chǔ)位置(例如在解除分配請(qǐng)求或TRIM中),如上所述。在步驟1660,方法1600可提供對(duì)客戶(hù)端請(qǐng)求的響應(yīng),如果請(qǐng)求不能滿(mǎn)足,則其可包括提供指示此情況的響應(yīng)。如果可滿(mǎn)足客戶(hù)端請(qǐng)求,則提供響應(yīng)可包括以下ー個(gè)或多個(gè)可滿(mǎn)足和/或已滿(mǎn)足客戶(hù)端請(qǐng)求的指示;預(yù)留用于客戶(hù)端的物理存儲(chǔ)容量;取消物理存儲(chǔ)容量預(yù)留;將數(shù)據(jù)存儲(chǔ)在非易失性存儲(chǔ)裝置上;解除分配物理存儲(chǔ)容量等。在不脫離本發(fā)明的精神和基本特性的情況下,可以其它特定形式實(shí)施本發(fā)明。所述實(shí)施方案在各個(gè)方面均應(yīng)視為說(shuō)明性的而非限制性的。因此,本發(fā)明的范圍由所附權(quán)利要求而非上述說(shuō)明指示。所有落入權(quán)利要求等效范圍內(nèi)的變化均包括在本發(fā)明的范圍之內(nèi)。權(quán)利要求1.一種用于分配非易失性數(shù)據(jù)存儲(chǔ)的方法,其包括將包括多個(gè)邏輯標(biāo)識(shí)符(LID)的邏輯地址空間呈現(xiàn)給存儲(chǔ)客戶(hù)端;保留將所述邏輯地址空間中的LID與所述非易失性存儲(chǔ)裝置上的各個(gè)存儲(chǔ)位置關(guān)聯(lián)的索引;引用所述索引來(lái)確定是否可滿(mǎn)足分配所述邏輯地址空間中的邏輯容量的客戶(hù)端請(qǐng)求;并且提供指示是否可滿(mǎn)足所述客戶(hù)端請(qǐng)求的響應(yīng)。2.根據(jù)權(quán)利要求1所述的方法,其中所述客戶(hù)端請(qǐng)求識(shí)別所述邏輯地址空間中的一組LID,并且其中確定是否可滿(mǎn)足所述客戶(hù)端請(qǐng)求包括確定所述識(shí)別的一組LID中的一個(gè)或多個(gè)LID是否存在于所述索引中。3.根據(jù)權(quán)利要求1所述的方法,其中所述客戶(hù)端請(qǐng)求識(shí)別所述邏輯地址空間中的一組定序LID,并且其中確定是否可滿(mǎn)足所述客戶(hù)端請(qǐng)求包括確定所述識(shí)別的一組定序LID中的一個(gè)或多個(gè)LID是否存在于所述索引中。4.根據(jù)權(quán)利要求1所述的方法,其中確定是否可滿(mǎn)足所述客戶(hù)端請(qǐng)求包括確定所述邏輯地址空間中的未指定的邏輯容量;并且將所述未指定的邏輯容量與所述請(qǐng)求的邏輯容量比較。5.根據(jù)權(quán)利要求1所述的方法,還包括保留分配條目以指示對(duì)不具有關(guān)聯(lián)的存儲(chǔ)位置的LID的分配;并且使用所述分配索引來(lái)確定未分配的邏輯容量,其中確定是否可滿(mǎn)足所述客戶(hù)端請(qǐng)求包括將所述請(qǐng)求的邏輯容量與所述未分配的邏輯容量比較。6.根據(jù)權(quán)利要求5所述的方法,其中所述分配條目保留在所述索引中。7.根據(jù)權(quán)利要求1所述的方法,還包括保留未分配的索引,其包括所述邏輯地址空間中的未分配的LID,其中確定包括識(shí)別所述未分配的索引中的LID。8.根據(jù)權(quán)利要求1所述的方法,其中提供響應(yīng)包括以下之一提供滿(mǎn)足所述客戶(hù)端請(qǐng)求的分配的LID;指示可滿(mǎn)足所述請(qǐng)求;指示不能滿(mǎn)足所述請(qǐng)求;并且指示已分配滿(mǎn)足所述客戶(hù)端請(qǐng)求的LID。9.根據(jù)權(quán)利要求1所述的方法,其中所述客戶(hù)端請(qǐng)求包括待分配的第一LID,并且其中提供所述響應(yīng)包括響應(yīng)于所述分配的第一LID提供不同的第二LID。10.根據(jù)權(quán)利要求1所述的方法,所述客戶(hù)端請(qǐng)求與待存儲(chǔ)在所述非易失性存儲(chǔ)裝置上的數(shù)據(jù)有關(guān),所述方法還包括將與所述客戶(hù)端請(qǐng)求有關(guān)的所述數(shù)據(jù)存儲(chǔ)在所述非易失性存儲(chǔ)裝置的存儲(chǔ)位置;并且將所述存儲(chǔ)位置與所述索引中的LID關(guān)聯(lián)。11.根據(jù)權(quán)利要求1所述的方法,其中所述索引包括以下之一與所述非易失性存儲(chǔ)裝置的多個(gè)存儲(chǔ)位置關(guān)聯(lián)的LID;和與多個(gè)LID關(guān)聯(lián)的存儲(chǔ)位置。12.根據(jù)權(quán)利要求1所述的方法,其中所述邏輯地址空間超出所述非易失性存儲(chǔ)裝置的物理存儲(chǔ)容量。13.根據(jù)權(quán)利要求12所述的方法,還包括接收向未指定有所述非易失性存儲(chǔ)裝置上的存儲(chǔ)位置的分配的LID分配物理存儲(chǔ)容量的請(qǐng)求;確定所述非易失性存儲(chǔ)裝置的可用物理存儲(chǔ)容量;提供指示所述可用物理存儲(chǔ)容量是否滿(mǎn)足所述請(qǐng)求的響應(yīng)。14.根據(jù)權(quán)利要求13所述的方法,響應(yīng)于滿(mǎn)足所述請(qǐng)求將所述數(shù)據(jù)存儲(chǔ)在所述非易失性存儲(chǔ)裝置的存儲(chǔ)位置上;并且將所述存儲(chǔ)位置的物理地址指定給所述索引中所述請(qǐng)求的所述LID。15.一種用于管理非易失性存儲(chǔ)器中的物理容量的方法,其包括通過(guò)非易失性存儲(chǔ)裝置呈現(xiàn)包括多個(gè)邏輯標(biāo)識(shí)符(LID)的邏輯地址空間,所述邏輯地址空間超出所述非易失性存儲(chǔ)裝置的物理存儲(chǔ)容量;保留將所述邏輯地址空間中的LID與所述非易失性存儲(chǔ)裝置的存儲(chǔ)位置關(guān)聯(lián)的索引;并且通過(guò)引用所述索引以確定所述固態(tài)存儲(chǔ)裝置的可用物理存儲(chǔ)容量來(lái)響應(yīng)針對(duì)物理存儲(chǔ)容量的客戶(hù)端請(qǐng)求。16.根據(jù)權(quán)利要求15所述的方法,其中確定可用物理存儲(chǔ)容量包括識(shí)別所述非易失性存儲(chǔ)裝置中未指定給所述邏輯地址空間中的LID的存儲(chǔ)位置。17.根據(jù)權(quán)利要求15所述的方法,還包括響應(yīng)于在所述非易失性存儲(chǔ)裝置上進(jìn)行存儲(chǔ)操作,保留所述非易失性存儲(chǔ)裝置的所述可用物理存儲(chǔ)容量的指示符。18.根據(jù)權(quán)利要求17所述的方法,還包括響應(yīng)于包括以下之一的存儲(chǔ)操作,更新所述非易失性存儲(chǔ)請(qǐng)求的所述可用物理存儲(chǔ)容量的所述指示符存儲(chǔ)與物理存儲(chǔ)容量預(yù)留關(guān)聯(lián)的數(shù)據(jù)的存儲(chǔ)操作,其中所述存儲(chǔ)無(wú)需所述關(guān)聯(lián)的物理存儲(chǔ)容量預(yù)留的一部分;取消物理存儲(chǔ)容量預(yù)留的存儲(chǔ)操作;和取消物理存儲(chǔ)容量預(yù)留的一部分的存儲(chǔ)操作。19.根據(jù)權(quán)利要求15所述的方法,還包括響應(yīng)于以下之一,更新LID與所述非易失性存儲(chǔ)裝置上的存儲(chǔ)位置之間的關(guān)聯(lián)數(shù)據(jù)將存儲(chǔ)在所述存儲(chǔ)位置處的數(shù)據(jù)移動(dòng)至所述非易失性存儲(chǔ)裝置的不同存儲(chǔ)位置;存儲(chǔ)在所述存儲(chǔ)位置處的所述數(shù)據(jù)與存儲(chǔ)在第二存儲(chǔ)位置處的數(shù)據(jù)相同,所述更新包括將所述LID與所述第二存儲(chǔ)位置關(guān)聯(lián);并且將與一個(gè)或多個(gè)LID關(guān)聯(lián)的一個(gè)或多個(gè)存儲(chǔ)位置重新映射到一個(gè)或多個(gè)不同的LID。20.根據(jù)權(quán)利要求15所述的方法,還包括保留對(duì)物理存儲(chǔ)容量的預(yù)留,其中確定可用物理存儲(chǔ)容量還包括訪問(wèn)所述預(yù)留。21.根據(jù)權(quán)利要求15所述的方法,還包括響應(yīng)于滿(mǎn)足所述客戶(hù)端請(qǐng)求,預(yù)留物理存儲(chǔ)容量;并且保留所述非易失性存儲(chǔ)裝置上的足夠的物理存儲(chǔ)容量來(lái)滿(mǎn)足所述預(yù)留。22.根據(jù)權(quán)利要求15所述的方法,其中所述客戶(hù)端請(qǐng)求與待存儲(chǔ)在所述非易失性存儲(chǔ)裝置上的數(shù)據(jù)有關(guān),所述方法還包括以下之響應(yīng)于滿(mǎn)足所述客戶(hù)端請(qǐng)求,將所述請(qǐng)求中引用的所述數(shù)據(jù)存儲(chǔ)在所述非易失性存儲(chǔ)裝置的存儲(chǔ)位置且將所述存儲(chǔ)位置與所述索引中的LID關(guān)聯(lián);并且在不能滿(mǎn)足所述請(qǐng)求時(shí),通知所述客戶(hù)端。23.根據(jù)權(quán)利要求15所述的方法,其中所述客戶(hù)端請(qǐng)求包括以下之一所述邏輯地址空間中用于得到所述請(qǐng)求的物理存儲(chǔ)容量的邏輯容量的量;所述邏輯地址空間中用于得到所述請(qǐng)求的物理存儲(chǔ)容量的一個(gè)或多個(gè)LID;得到所述請(qǐng)求的物理存儲(chǔ)容量的存儲(chǔ)數(shù)據(jù)的請(qǐng)求;預(yù)留所述物理存儲(chǔ)容量的請(qǐng)求;和預(yù)留所述物理存儲(chǔ)容量且分配所述邏輯地址空間中的相應(yīng)邏輯容量的請(qǐng)求。24.一種用于分配非易失性存儲(chǔ)的方法,其包括通過(guò)非易失性存儲(chǔ)裝置將包括多個(gè)邏輯標(biāo)識(shí)符(LID)的邏輯地址空間呈現(xiàn)給客戶(hù)端,所述LID獨(dú)立于所述非易失性存儲(chǔ)裝置的存儲(chǔ)位置且超出所述非易失性存儲(chǔ)裝置的物理存儲(chǔ)容量;從所述客戶(hù)端接收針對(duì)存儲(chǔ)容量的請(qǐng)求;響應(yīng)于所述請(qǐng)求,選擇所述邏輯地址空間中的LID以分配給所述客戶(hù)端;針對(duì)所述分配的LID預(yù)留所述非易失性存儲(chǔ)裝置上的物理存儲(chǔ)容量;并且將所述LID提供給所述客戶(hù)端。25.一種非瞬時(shí)性存儲(chǔ)介質(zhì),其包括被配置為為使機(jī)器進(jìn)行一種用于分配非易失性存儲(chǔ)的方法的機(jī)器可讀指令,所述方法包括通過(guò)非易失性存儲(chǔ)裝置將包括多個(gè)邏輯標(biāo)識(shí)符(LID)的邏輯地址空間呈現(xiàn)給客戶(hù)端,所述LID獨(dú)立于所述非易失性存儲(chǔ)裝置的存儲(chǔ)位置且超出所述非易失性存儲(chǔ)裝置的物理存儲(chǔ)容量;從所述客戶(hù)端接收將數(shù)據(jù)存儲(chǔ)在所述非易失性存儲(chǔ)裝置上的請(qǐng)求;響應(yīng)于所述請(qǐng)求,選擇所述邏輯地址空間中的LID以分配給所述客戶(hù)端;將所述請(qǐng)求的數(shù)據(jù)存儲(chǔ)在所述非易失性存儲(chǔ)裝置的存儲(chǔ)位置;并且將分配給所述客戶(hù)端的所述LID與包括所述請(qǐng)求的所述數(shù)據(jù)的所述存儲(chǔ)位置關(guān)聯(lián)。26.一種用于分配固態(tài)存儲(chǔ)裝置的非易失性存儲(chǔ)的方法,所述方法包括保留與在固態(tài)存儲(chǔ)裝置上進(jìn)行的分配操作和所述固態(tài)存儲(chǔ)裝置的存儲(chǔ)操作有關(guān)的索引;存取所述索引以管理所述固態(tài)存儲(chǔ)裝置的存儲(chǔ)操作;并且存取所述索引以管理所述固態(tài)存儲(chǔ)裝置支持的分配的邏輯容量。27.根據(jù)權(quán)利要求沈所述的方法,其中與分配操作有關(guān)的元數(shù)據(jù)和與存儲(chǔ)操作有關(guān)的所述元數(shù)據(jù)存儲(chǔ)在共享數(shù)據(jù)結(jié)構(gòu)中。28.根據(jù)權(quán)利要求沈所述的方法,其中分配元數(shù)據(jù)包括識(shí)別所述邏輯容量中已分配的LID的分配指示符,所述方法還包括使用所述分配指示符來(lái)響應(yīng)分配查詢(xún)。全文摘要本發(fā)明公開(kāi)了一種用于分配非易失性存儲(chǔ)的設(shè)備、系統(tǒng)和方法。存儲(chǔ)裝置可呈現(xiàn)可超出該裝置的物理存儲(chǔ)容量的邏輯地址。存儲(chǔ)裝置可分配邏輯地址空間中的邏輯容量。當(dāng)存在足夠的未指定和/或未分配的邏輯容量來(lái)滿(mǎn)足分配請(qǐng)求時(shí),可允許該請(qǐng)求。通過(guò)請(qǐng)求物理存儲(chǔ)容量可將數(shù)據(jù)存儲(chǔ)在非易失性存儲(chǔ)裝置上。當(dāng)存在足夠的可用物理存儲(chǔ)容量來(lái)滿(mǎn)足物理存儲(chǔ)請(qǐng)求,諸如存儲(chǔ)請(qǐng)求或物理存儲(chǔ)預(yù)留時(shí),可允許該請(qǐng)求。該裝置可保留將邏輯地址空間中的邏輯標(biāo)識(shí)符(LID)與存儲(chǔ)裝置上的存儲(chǔ)位置關(guān)聯(lián)的索引。這個(gè)索引可用于做出邏輯容量分配和/或管理物理存儲(chǔ)空間。文檔編號(hào)G06F21/22GK102598019SQ201080050430公開(kāi)日2012年7月18日申請(qǐng)日期2010年9月9日優(yōu)先權(quán)日2009年9月9日發(fā)明者喬納森·希爾達(dá),大衛(wèi)·弗林申請(qǐng)人:弗森-艾奧公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1