固態(tài)盤(pán)技術(shù)暴露垃圾回收問(wèn)題
固態(tài)盤(pán)在數(shù)據(jù)存儲(chǔ)應(yīng)用越來(lái)越多的使用暴露出了它在應(yīng)對(duì)性能降級(jí)方面的問(wèn)題。其中最大的難題就是,這些驅(qū)動(dòng)器收集無(wú)用信息并在執(zhí)行寫(xiě)入操作之前將其從數(shù)據(jù)塊中刪除掉。 在行業(yè)中這被稱為“垃圾回收”,也就是避免了在每次寫(xiě)入之前擦除整個(gè)數(shù)據(jù)塊的需求。垃圾回收機(jī)制是運(yùn)行在后臺(tái)的,積累那些之前被標(biāo)記要?jiǎng)h除的數(shù)據(jù)塊,對(duì)每個(gè)“垃圾”塊是是整個(gè)塊的擦除,回收空間為后續(xù)寫(xiě)入操作重新使用。 提供了這種創(chuàng)新的垃圾回收機(jī)制的廠商包括Indilinx、OCZ Technology Group和SandForce。 市場(chǎng)研究公司Objective Analysis預(yù)測(cè)企業(yè)級(jí)固態(tài)盤(pán)市場(chǎng)的出貨量將大幅增長(zhǎng)148%。該公司的分析師Jim Handy表示:“固態(tài)盤(pán)有一個(gè)硬盤(pán)驅(qū)動(dòng)器沒(méi)有的難點(diǎn)——那就是閃存必須在新數(shù)據(jù)寫(xiě)入之前被擦除。” 閃存的軟件難題 Handy表示,擦除難題源自于目前所有軟件都是針對(duì)寫(xiě)入硬盤(pán)驅(qū)動(dòng)器設(shè)計(jì)的,而硬盤(pán)驅(qū)動(dòng)器與固態(tài)盤(pán)閃存的運(yùn)行機(jī)制是不同的。 Handy表示:“一個(gè)硬盤(pán)驅(qū)動(dòng)器可以用新數(shù)據(jù)覆寫(xiě)已有數(shù)據(jù)。因?yàn)檐浖荒芙鉀Q閃存‘寫(xiě)入前擦除’的需求,所以固態(tài)盤(pán)中的控制器必須應(yīng)對(duì)這個(gè)問(wèn)題。未使用和未擦除的數(shù)據(jù)塊在后臺(tái)被刪掉和擦除。” Indilinx副總裁Geonyoung Hong表示,后臺(tái)垃圾回收的主要好處在于可以提高寫(xiě)入性能。 Hong表示:“后臺(tái)垃圾回收不會(huì)造成固態(tài)盤(pán)性能的降級(jí)——如果它沒(méi)有中斷來(lái)自主機(jī)的ATA命令處理的話。啟動(dòng)后臺(tái)垃圾回收之前應(yīng)該預(yù)設(shè)空閑時(shí)段和計(jì)算垃圾回收成本。” 預(yù)先采取了這些措施之后,寫(xiě)入放大增量和生命周期降級(jí)就可以被控制到一個(gè)合理的范圍內(nèi)——不會(huì)給固態(tài)盤(pán)帶來(lái)太大傷害。 Hong表示:“主機(jī)發(fā)送的任何ATA命令都可以中止后臺(tái)垃圾回收。” 幾乎所有固態(tài)盤(pán)的一個(gè)共通點(diǎn)就是利用過(guò)量配置來(lái)幫助垃圾回收流程。固態(tài)盤(pán)中的閃存容量高出提供給用戶的可用容量——一個(gè)64GB的固態(tài)盤(pán)實(shí)際上包括80GB的內(nèi)部NAND閃存,但是用戶可見(jiàn)的是64GB。其他16GB提供了一個(gè)用于后臺(tái)處理的區(qū)域。 Hong表示:“每個(gè)固態(tài)盤(pán)因?yàn)楦鞣N原因而保留了一個(gè)區(qū)域。”固態(tài)盤(pán)行業(yè)標(biāo)準(zhǔn)制訂機(jī)構(gòu)JEDEC建議這個(gè)預(yù)留的空間占總空間的7%。如果比例提高,就應(yīng)該稱之為過(guò)量配置。 SandForce首席技術(shù)官Radoslav Danilak表示,當(dāng)一個(gè)固態(tài)盤(pán)重新回收塊(將有用數(shù)據(jù)從多個(gè)塊集中遷移到更少量的塊中)的時(shí)候往往會(huì)發(fā)生一個(gè)問(wèn)題。 Danilak表示:“主機(jī)最終需要用來(lái)自用戶或者操作系統(tǒng)的更新數(shù)據(jù)取代舊數(shù)據(jù),這會(huì)讓一些剛剛回收來(lái)的數(shù)據(jù)失效。” 在這個(gè)例子中,固態(tài)盤(pán)現(xiàn)在重新寫(xiě)入主機(jī)不需要的數(shù)據(jù)。Danilak表示:“這實(shí)際上提高了固態(tài)盤(pán)的寫(xiě)入放大量,而導(dǎo)致閃存更早地?fù)p耗。有一個(gè)更好的解決方案,那就是加強(qiáng)實(shí)施垃圾回收的流程,這樣就可以與主機(jī)寫(xiě)入操作同時(shí)進(jìn)行,而不會(huì)造成驅(qū)動(dòng)器性能降低。” 垃圾回收之后的固態(tài)盤(pán)性能 Danilak指出,垃圾回收之前的寫(xiě)入性能通常很高,而且不同供應(yīng)商之間的性能水平都差不多。 Danilak表示:“在寫(xiě)入每個(gè)數(shù)據(jù)塊一次之后,驅(qū)動(dòng)器開(kāi)始啟動(dòng)垃圾回收流程,寫(xiě)入性能大幅度降低,有時(shí)候甚至高達(dá)90%。” 他表示,SandForce的解決方案可以讓驅(qū)動(dòng)器可執(zhí)行寫(xiě)入主機(jī)操作與垃圾回收流程同時(shí)進(jìn)行。 TRIM有利于固態(tài)盤(pán)性能 OCZ Technology Group產(chǎn)品管理副總裁Eugene Chang表示,OCZ采取了另外一種不同的垃圾回收方法。 他說(shuō):“我們的驅(qū)動(dòng)器設(shè)計(jì)支持垃圾回收或者TRIM,實(shí)際使用取決于驅(qū)動(dòng)器架構(gòu)(例如內(nèi)部RAID)、目標(biāo)市場(chǎng)和應(yīng)用。” #p#page_title#e# Chang還表示,OCZ的目標(biāo)是將固態(tài)盤(pán)的性能保持在高于硬盤(pán)壽命的最高水平上。他說(shuō),OCZ采用兩種基本的垃圾收集方法:將維護(hù)整合在固件中、提供用戶發(fā)起的工具來(lái)完成相同的任務(wù)。 Chang表示,OCZ提供了三種不同的垃圾回收方法。 有些OCZ驅(qū)動(dòng)器的固件具備空閑時(shí)垃圾回收功能,包括PCI-Express和高容量3.5英寸固態(tài)盤(pán),旨在加強(qiáng)高性能耐用性。OCZ的主流2.5寸固態(tài)盤(pán)解決方案支持Windows 7和各種版本的Linux系統(tǒng)提供的TRIM。 Chang表示,對(duì)于那些喜歡使用Windows XP或Vista的用戶來(lái)說(shuō),OCZ提供了一個(gè)手動(dòng)垃圾回收工具,用戶可自行決定是否啟用。另外OCZ還提供了一個(gè)針對(duì)XP和Vista系統(tǒng)的垃圾回收升級(jí)固件。 Chang說(shuō):“垃圾回收只是幫助OCZ長(zhǎng)期維持固態(tài)盤(pán)性能的功能集之一。” Handu表示,垃圾回收的問(wèn)題短期內(nèi)不會(huì)消失。 他說(shuō):“我們預(yù)計(jì)在問(wèn)題解決之前還將聽(tīng)到更多關(guān)于這個(gè)問(wèn)題的討論。盡管如此,大多數(shù)現(xiàn)有的垃圾收集技術(shù)足以滿足目前應(yīng)用軟件的需求。”
Danilak表示,SandForce SSD Processors使得低成本MLC內(nèi)存(30000隨機(jī)寫(xiě)入IOPS,4000傳輸率)的寫(xiě)入性能高于其他基于MLC的解決方案(IOPS通常不超過(guò)1000)和更高成本的SLC解決方案(IOPS通常不超過(guò)5000)