固態(tài)硬盤閃存轉(zhuǎn)換層的實(shí)現(xiàn)系統(tǒng)和閃存轉(zhuǎn)換層的實(shí)現(xiàn)裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,具體涉及固態(tài)硬盤閃存轉(zhuǎn)換層的實(shí)現(xiàn)系統(tǒng)和閃存轉(zhuǎn)換層的實(shí)現(xiàn)裝置。
【背景技術(shù)】
[0002]現(xiàn)有的固態(tài)硬盤(Solid State Disk, SSD)使用模型是層次化結(jié)構(gòu),閃存轉(zhuǎn)換層(Flash Translat1n Layer, FTL)在 SSD 內(nèi)部實(shí)現(xiàn)(即 device-based FTL),業(yè)務(wù)層不參與對(duì)SSD中存儲(chǔ)介質(zhì)即閃存(Flash)的管理,F(xiàn)TL算法對(duì)業(yè)務(wù)層透明。
[0003]通常情況下,SSD的使用分為3個(gè)層次,即應(yīng)用層(User Space)、內(nèi)核層(Kernel)和SSD硬件層(Hardware),如附圖1所示。附圖1示例的SSD使用層次中,SSD硬件層以閃存(Flash)作為存儲(chǔ)介質(zhì),提供硬件基礎(chǔ),對(duì)用戶提供傳統(tǒng)硬盤類似的操作接口和功能。SSD硬件層的核心層次是FTL,F(xiàn)TL對(duì)Flash進(jìn)行管理,將用戶訪問(wèn)的邏輯地址映射到Flash的物理地址,并進(jìn)行物理擦除塊(Physical Erase Block, PEB)的磨損均衡、SSD內(nèi)部的垃圾塊回收以及對(duì)壞塊進(jìn)行管理等。內(nèi)核層的作用主要體現(xiàn)在屏蔽硬件的差異,對(duì)應(yīng)用層提供友好的、一致的操作接口 ;內(nèi)核層本身又細(xì)化為幾個(gè)層次,一般而言SSD經(jīng)過(guò)SCSI層會(huì)被注冊(cè)成SCSI設(shè)備,其主要作用是對(duì)上層屏蔽硬盤操作指令的細(xì)節(jié);SCSI之上又有通用塊(General Block,GB)層,其作用是對(duì)輸入/輸出(Input/Output, 10)進(jìn)行調(diào)度,使硬盤訪問(wèn)性能最優(yōu)化,通用塊層之上的文件系統(tǒng)(File System,FS)層將SSD以文件的形式對(duì)應(yīng)用層提供友好的接口。應(yīng)用層是用戶程序即SSD的使用者,應(yīng)用層并不關(guān)心SSD的硬件細(xì)節(jié),在Linux操作系統(tǒng)中,SSD像其他設(shè)備一樣被虛擬成文件供用戶程序訪問(wèn)。
[0004]從上述對(duì)現(xiàn)有SSD使用層次的剖析可知,現(xiàn)有的閃存轉(zhuǎn)換層(FTL)是在SSD硬件層實(shí)現(xiàn),這種實(shí)現(xiàn)方式帶來(lái)的缺陷在于:一方面,F(xiàn)TL任何一點(diǎn)改變都需要SSD固件升級(jí)來(lái)完成,而FTL是在SSD硬件層實(shí)現(xiàn),SSD固件升級(jí)的成本相當(dāng)高,因此不適合業(yè)務(wù)多樣化、使用場(chǎng)景快速變化的互聯(lián)網(wǎng)海量數(shù)據(jù)存儲(chǔ)需求;另一方面,由于FTL對(duì)業(yè)務(wù)層(在應(yīng)用層以及內(nèi)核層實(shí)現(xiàn))透明,業(yè)務(wù)層不參與對(duì)Flash的管理,業(yè)務(wù)層不了解SSD內(nèi)部的操作,使得在SSD硬件層進(jìn)行的垃圾回收、磨損均衡等內(nèi)部操作對(duì)業(yè)務(wù)層的1/0造成影響,不僅不能最大限度發(fā)揮SSD的性能,而且有可能造成1/0毛刺,影響互聯(lián)網(wǎng)絡(luò)的高效運(yùn)營(yíng)。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供固態(tài)硬盤閃存轉(zhuǎn)換層的實(shí)現(xiàn)系統(tǒng)和閃存轉(zhuǎn)換層的實(shí)現(xiàn)裝置,以最大限度地提高固態(tài)硬盤的使用性能。
[0006]本發(fā)明實(shí)施例提供一種固態(tài)硬盤閃存轉(zhuǎn)換層的實(shí)現(xiàn)系統(tǒng),包括應(yīng)用層、所述應(yīng)用層之下的內(nèi)核層和所述內(nèi)核層之下的固態(tài)硬盤硬件層,所述內(nèi)核層包括閃存轉(zhuǎn)換層;
[0007]所述固態(tài)硬盤硬件層,用于以并發(fā)單元為設(shè)備對(duì)象向所述內(nèi)核層提供每個(gè)所述設(shè)備對(duì)象的屬性和操作每個(gè)所述設(shè)備對(duì)象的物理接口,所述并發(fā)單元為構(gòu)成固態(tài)硬盤的物理芯片顆粒;
[0008]所述閃存轉(zhuǎn)換層,用于限制業(yè)務(wù)層對(duì)所述設(shè)備對(duì)象實(shí)施寫(xiě)操作的方式和向所述應(yīng)用層提供邏輯接口,所述邏輯接口用于所述業(yè)務(wù)層通過(guò)所述應(yīng)用層參與對(duì)所述設(shè)備對(duì)象的管理;
[0009]所述應(yīng)用層,用于在所述業(yè)務(wù)層的觸發(fā)下,通過(guò)所述邏輯接口實(shí)現(xiàn)對(duì)所述設(shè)備對(duì)象的管理。
[0010]本發(fā)明另一實(shí)施例提供一種閃存轉(zhuǎn)換層的實(shí)現(xiàn)裝置,所述裝置位于操作系統(tǒng)的內(nèi)核層,所述裝置包括:
[0011 ] 邏輯接口模塊,用于向所述內(nèi)核層之上的應(yīng)用層提供邏輯接口,所述邏輯接口用于所述業(yè)務(wù)層通過(guò)所述應(yīng)用層參與對(duì)設(shè)備對(duì)象的管理;
[0012]算法實(shí)現(xiàn)模塊,用于實(shí)現(xiàn)閃存轉(zhuǎn)換算法;
[0013]設(shè)備管理模塊,用于限制所述業(yè)務(wù)層對(duì)所述設(shè)備對(duì)象實(shí)施寫(xiě)操作的方式;
[0014]驅(qū)動(dòng)接口模塊,用于向位于所述內(nèi)核層之下的固態(tài)硬盤硬件層提供統(tǒng)一的驅(qū)動(dòng)接□。
[0015]從上述本發(fā)明實(shí)施例可知,一方面,閃存轉(zhuǎn)換層在內(nèi)核層而不是在固態(tài)硬盤硬件層,因此大大降低了因SSD固件升級(jí)帶來(lái)的升級(jí)成本,適合業(yè)務(wù)多樣化、使用場(chǎng)景快速變化的互聯(lián)網(wǎng)海量數(shù)據(jù)存儲(chǔ)需求;另一方面,閃存轉(zhuǎn)換層向應(yīng)用層提供邏輯接口,使得業(yè)務(wù)層能夠通過(guò)這些邏輯接口參與對(duì)固態(tài)硬盤中物理存儲(chǔ)介質(zhì)Flash的管理,如此,降低了閃存轉(zhuǎn)換層在內(nèi)核層實(shí)現(xiàn)的垃圾回收、磨損均衡等操作對(duì)業(yè)務(wù)層I/O造成的影響,而閃存轉(zhuǎn)換層限制業(yè)務(wù)層對(duì)設(shè)備對(duì)象實(shí)施寫(xiě)操作的方式也優(yōu)化了固態(tài)硬盤的性能,降低了固態(tài)硬盤的寫(xiě)放大,延長(zhǎng)了固態(tài)硬盤的使用壽命。
【附圖說(shuō)明】
[0016]圖1是現(xiàn)有技術(shù)提供的固態(tài)硬盤使用層次示意圖;
[0017]圖2是本發(fā)明實(shí)施例提供的固態(tài)硬盤閃存轉(zhuǎn)換層的實(shí)現(xiàn)系統(tǒng)結(jié)構(gòu)示意圖;
[0018]圖3是本發(fā)明實(shí)施例提供的閃存轉(zhuǎn)換層的實(shí)現(xiàn)裝置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0019]本發(fā)明實(shí)施例提供固態(tài)硬盤閃存轉(zhuǎn)換層的實(shí)現(xiàn)系統(tǒng)和閃存轉(zhuǎn)換層的實(shí)現(xiàn)裝置,所述系統(tǒng)包括應(yīng)用層、所述應(yīng)用層之下的內(nèi)核層和所述內(nèi)核層之下的固態(tài)硬盤硬件層,所述內(nèi)核層包括閃存轉(zhuǎn)換層;所述固態(tài)硬盤硬件層,用于以并發(fā)單元為設(shè)備對(duì)象向所述內(nèi)核層提供每個(gè)所述設(shè)備對(duì)象的屬性和操作每個(gè)所述設(shè)備對(duì)象的物理接口,所述并發(fā)單元為構(gòu)成固態(tài)硬盤的物理芯片顆粒;所述閃存轉(zhuǎn)換層,用于限制業(yè)務(wù)層對(duì)所述設(shè)備對(duì)象實(shí)施寫(xiě)操作的方式和向所述應(yīng)用層提供邏輯接口,所述邏輯接口用于所述業(yè)務(wù)層通過(guò)所述應(yīng)用層參與對(duì)所述設(shè)備對(duì)象的管理;所述應(yīng)用層,用于在所述業(yè)務(wù)層的觸發(fā)下,通過(guò)所述邏輯接口實(shí)現(xiàn)對(duì)所述設(shè)備對(duì)象的管理。本發(fā)明實(shí)施例還提供相應(yīng)的閃存轉(zhuǎn)換層的實(shí)現(xiàn)裝置。以下分別進(jìn)行詳細(xì)說(shuō)明。
[0020]與現(xiàn)有的固態(tài)硬盤類似,本發(fā)明實(shí)施例提供的固態(tài)硬盤閃存轉(zhuǎn)換層的實(shí)現(xiàn)系統(tǒng)也包括三個(gè)層次,即應(yīng)用層(User space)、應(yīng)用層之下的內(nèi)核層(Kernel)和內(nèi)核層之下的固態(tài)硬盤硬件層(Hardware),所不同的是,本發(fā)明實(shí)施例提供的內(nèi)核層包括閃存轉(zhuǎn)換層(Flash Translat1n Layer7FTL),即與通用的SSD相比,FTL被移至操作系統(tǒng)即主機(jī)端的內(nèi)核層實(shí)現(xiàn),如附圖2所示。從附圖2示例的固態(tài)硬盤閃存轉(zhuǎn)換層的實(shí)現(xiàn)系統(tǒng)還可以看出,本發(fā)明實(shí)施例提供的固態(tài)硬盤閃存轉(zhuǎn)換層的實(shí)現(xiàn)系統(tǒng)中,內(nèi)核層僅包含F(xiàn)TL和固態(tài)硬盤驅(qū)動(dòng)程序(SSD driver),將原有的虛擬文件系統(tǒng)(VFS)層、文件系統(tǒng)(FS)層以及針對(duì)傳統(tǒng)硬盤優(yōu)化的通用塊(GB)層和SCSI從內(nèi)核層剔除,如此精簡(jiǎn)了內(nèi)核層的I/O協(xié)議棧,減小了開(kāi)發(fā)成本和提高的I/O速率。
[0021]在附圖2示例的固態(tài)硬盤閃存轉(zhuǎn)換層的實(shí)現(xiàn)系統(tǒng)中,固態(tài)硬盤硬件層是SSD的硬件實(shí)現(xiàn),主要包括物理存儲(chǔ)介質(zhì)即閃存(Flash)和固態(tài)硬盤控制器(Controller)。由于閃存轉(zhuǎn)換層FTL被移至內(nèi)核層,固態(tài)硬盤硬件層直接向內(nèi)核層暴露,此時(shí)的固態(tài)硬盤被還原成原始狀態(tài),呈現(xiàn)為SSD并發(fā)單元,即構(gòu)成固態(tài)硬盤的物理芯片顆粒。固態(tài)硬盤硬件層的作用在于以并發(fā)單元為設(shè)備對(duì)象向內(nèi)核層提供每個(gè)設(shè)備對(duì)象的屬性和操作每個(gè)設(shè)備對(duì)象的物理接口,具體地,是在向操作系統(tǒng)注冊(cè)時(shí),向內(nèi)核層提供每個(gè)設(shè)備對(duì)象的屬性和操作每個(gè)設(shè)備對(duì)象的物理接口。需要說(shuō)明的是,物理接口的“物理”是為了表明內(nèi)核層與位于其下的固態(tài)硬盤硬件層打交道的是物理的操作,例如,物理地址的讀寫(xiě)、物理塊的擦除等等。
[0022]具體地,附圖2示例的固態(tài)硬盤硬件層以并發(fā)單元為設(shè)備對(duì)象向內(nèi)核層提供操作每個(gè)設(shè)備對(duì)象的物理接口包括:以并發(fā)單元為設(shè)備對(duì)象向內(nèi)核層提供操作每個(gè)設(shè)備對(duì)象的物理擦除(Erase)接口、讀冗余空間(ReadOOB)接口、寫(xiě)冗余空間(WriteOOB)接口、壞塊判斷(BlockIsBad)接口和壞塊標(biāo)識(shí)(BlockMarkBad)接口中的一種或多種,除此之外,還包括通用SSD具有的寫(xiě)(Write)接口和讀(Read)接口,其中,Erase接口被調(diào)用時(shí),用于