陸 淼,張沛琪
(中國(guó)電子科技集團(tuán)公司第58研究所,江蘇 無(wú)錫 214035)
在硬件快速發(fā)展的今天,CPU、內(nèi)存、顯卡等性能不斷飆升,存儲(chǔ)系統(tǒng)的瓶頸越來(lái)越明顯。使用傳統(tǒng)機(jī)械硬盤已無(wú)法達(dá)到要求,因此固態(tài)存儲(chǔ)器(SSD)應(yīng)運(yùn)而生。傳統(tǒng)磁盤(HDD)受限于磁頭移動(dòng)和盤磁旋轉(zhuǎn)等機(jī)械運(yùn)動(dòng),響應(yīng)時(shí)間和吞吐率遠(yuǎn)落后于內(nèi)存和CPU。SSD摒棄了傳統(tǒng)磁介質(zhì),使用電子存儲(chǔ)介質(zhì)進(jìn)行數(shù)據(jù)的存儲(chǔ)和讀取,以此突破傳統(tǒng)的機(jī)械硬盤所存在的性能瓶頸,被認(rèn)為是存儲(chǔ)技術(shù)發(fā)展的新星。
和HDD相比,基于Flash的SSD有很多明顯的優(yōu)點(diǎn):很小的讀延遲、快速隨機(jī)讀寫訪問(wèn)、低功耗、抗震性能好、可靠性高等。所以SSD比HDD的應(yīng)用前景更加廣闊,隨著固態(tài)存儲(chǔ)制造工藝會(huì)越來(lái)越成熟,性能會(huì)越來(lái)越高的,這些都會(huì)促使SSD逐步取代目前的HDD磁盤。當(dāng)前SSD的應(yīng)用范圍比較小,但是隨著其制造成本以及價(jià)格的逐步降低和容量的不斷增大,以前限制SSD廣泛應(yīng)用的兩個(gè)因素越來(lái)越弱化。基于Flash存儲(chǔ)的SSD 被稱為計(jì)算機(jī)存儲(chǔ)系統(tǒng)革命的關(guān)鍵技術(shù)。不僅在企業(yè)級(jí)用戶上SSD廣泛應(yīng)用,現(xiàn)在的個(gè)人移動(dòng)PC和移動(dòng)多媒體設(shè)備上都有SSD的應(yīng)用。
用固態(tài)存儲(chǔ)SSD取代HDD作為新的存儲(chǔ),就必須考慮傳統(tǒng)的操作系統(tǒng)在基于Flash的SSD存儲(chǔ)系統(tǒng)上做的優(yōu)化是否合適,而且有必要針對(duì)Flash存儲(chǔ)重新考慮操作系統(tǒng)的策略和機(jī)制。過(guò)去幾年已經(jīng)有出色的研究和實(shí)現(xiàn)滿足了Flash存儲(chǔ)系統(tǒng)的性能要求。SSD的性能在當(dāng)前應(yīng)用環(huán)境下并未得到完全體現(xiàn),如今的應(yīng)用程序和操作系統(tǒng)大多針對(duì)HDD開(kāi)發(fā),盡管減少90%的存儲(chǔ)時(shí)間是那么的完美,但是這種好處卻受到應(yīng)用程序和操作系統(tǒng)的制約。所以應(yīng)用程序和操作系統(tǒng)的改變將允許存儲(chǔ)系統(tǒng)充分利用SSD不斷提升的性能。所以綜合考慮SSD的發(fā)展前景,SSD存儲(chǔ)系統(tǒng)優(yōu)化技術(shù)研究和實(shí)現(xiàn)有很實(shí)際的意義。
雖然固態(tài)存儲(chǔ)SSD與傳統(tǒng)硬盤相比有諸多優(yōu)勢(shì),但是由于SSD的自身結(jié)構(gòu)原因,在實(shí)際應(yīng)用中,也會(huì)產(chǎn)生相關(guān)性能問(wèn)題。
在固態(tài)存儲(chǔ)SSD中,數(shù)據(jù)存儲(chǔ)以頁(yè)(page)為最小存儲(chǔ)單位(典型的為4 kB)。128個(gè)頁(yè)組成了一個(gè)塊(block),塊大小一般為512 kB。數(shù)據(jù)可以以4 kB大小的頁(yè)來(lái)進(jìn)行讀取和寫入,但卻只能以512 kB的塊大小來(lái)刪除。當(dāng)讀取或?qū)懭霐?shù)據(jù)到一個(gè)沒(méi)有使用過(guò)的頁(yè)上時(shí),SSD的速度非常快,但如果寫入的頁(yè)有數(shù)據(jù)時(shí)則較復(fù)雜,要覆寫頁(yè)數(shù)據(jù)就要將整個(gè)塊數(shù)據(jù)放入緩存中進(jìn)行寫操作,然后再將整個(gè)塊重新寫回去。因此當(dāng)SSD使用一段時(shí)間后,每個(gè)塊都被寫入了數(shù)據(jù),每次寫數(shù)據(jù)之前都要先擦除,SSD的性能就會(huì)變得非常慢。也由于這個(gè)原因,造成了SSD的性能與其現(xiàn)有剩余空間的大小有關(guān)這一現(xiàn)象。SSD性能衰減的主要原因是操作系統(tǒng)和存儲(chǔ)系統(tǒng)不能和SSD主控進(jìn)行刪除信息方面的交流造成的,假如存儲(chǔ)系統(tǒng)內(nèi)每次刪除后都將相關(guān)的刪除頁(yè)通知SSD主控,讓主控提前將無(wú)效頁(yè)進(jìn)行處理,下次寫入時(shí)就會(huì)減少由于擦除造成的寫延遲問(wèn)題,有效解決使用一段時(shí)間后性能衰減的問(wèn)題。
Trim就是為了解決這個(gè)問(wèn)題而產(chǎn)生的技術(shù)。Trim技術(shù)允許操作系統(tǒng)通知存儲(chǔ)子系統(tǒng)中的SSD固態(tài)硬盤,哪一個(gè)塊上存儲(chǔ)的數(shù)據(jù)不再需要時(shí)可以被清除,以備將來(lái)重新寫入數(shù)據(jù)時(shí)使用。這一技術(shù)可以有效提升SSD固態(tài)硬盤作為PC系統(tǒng)級(jí)存儲(chǔ)設(shè)備使用時(shí)的性能。Trim技術(shù)的原理就是當(dāng)數(shù)據(jù)被刪除時(shí),讓系統(tǒng)通知SSD固態(tài)硬盤數(shù)據(jù)已經(jīng)被刪除,使SSD在垃圾回收階段不再對(duì)這些數(shù)據(jù)進(jìn)行搬移。在這個(gè)過(guò)程中,SSD固態(tài)硬盤同樣會(huì)復(fù)制整個(gè)塊到緩存,清空塊并寫入有效數(shù)據(jù)的頁(yè)回去,區(qū)別是這樣等于把這個(gè)延遲時(shí)間從覆寫數(shù)據(jù)的那個(gè)時(shí)間提前到了刪除數(shù)據(jù)的時(shí)候,而此時(shí)執(zhí)行該過(guò)程對(duì)整體性能的影響遠(yuǎn)遠(yuǎn)小于在重新寫入數(shù)據(jù)前清空塊。這就是Trim技術(shù)的工作原理——預(yù)清理被占用的塊,提升SSD固態(tài)硬盤的寫入速度。目前絕大多數(shù)操作系統(tǒng)都已經(jīng)支持Trim技術(shù),比如時(shí)下主流的Windows 7/8、Mac OS X Leopard、Windows Server 2008、Linux 2.6.33、FreeBSD 8.2等,都可以直接使用帶有Trim技術(shù)的SSD固態(tài)硬盤。
系統(tǒng): Win7,2008R2,Linux核心2.6.33以上。固件: SSD的廠商在固件里要支持Trim算法。驅(qū)動(dòng): MS的驅(qū)動(dòng),Intel的AHCI驅(qū)動(dòng)目前支持。
根據(jù)這些要素搭建一個(gè)支持Trim的系統(tǒng),正確安裝了硬盤,并將SATA控制器的控制模式更換為AHCI就能逐步完成系統(tǒng)的組建,不需要額外設(shè)置。測(cè)試時(shí)有兩個(gè)指標(biāo)值得關(guān)注。
IOPS的定義是每秒進(jìn)行的讀寫操作的次數(shù),該指標(biāo)可以體現(xiàn)出硬件的I/O性能指標(biāo)。由于Trim指令無(wú)法傳遞主要造成的就是隨機(jī)寫性能嚴(yán)重下降,而為了表現(xiàn)隨機(jī)寫性能,本文提出了可以代表隨機(jī)寫性能能力的一個(gè)指標(biāo),就是 IOPS。
圖1 文件塊為4 kB和8 kB大小的IOPS測(cè)試結(jié)果
圖2 文件塊為16 kB和32 kB大小的IOPS測(cè)試結(jié)果
平均響應(yīng)時(shí)延也是針對(duì)I/O性能的一個(gè)指標(biāo)。平均響應(yīng)時(shí)延代表著系統(tǒng)針對(duì)每一個(gè)I/O操作的響應(yīng)時(shí)間,在測(cè)試隨機(jī)寫性能時(shí),平均響應(yīng)時(shí)延就代表著每一個(gè)寫操作的完成時(shí)間。通過(guò)平均響應(yīng)時(shí)延也可以體現(xiàn)出系統(tǒng)的I/O性能。
圖3 文件塊為4 kB和8 kB大小的平均響應(yīng)時(shí)延測(cè)試結(jié)果
基于上述兩個(gè)重要指標(biāo),本文設(shè)計(jì)了相應(yīng)的測(cè)試。針對(duì)不同文件塊大小用IOmeter軟件進(jìn)行了測(cè)試。從IOPS及平均響應(yīng)時(shí)延兩方面進(jìn)行比較,說(shuō)明使用Trim技術(shù)的重要性。從多次的測(cè)試結(jié)果中可以看出,針對(duì)不同的塊大小的測(cè)試,在使用了Trim技術(shù)后,SSD的隨機(jī)寫性能普遍都提升了20%左右。從圖1~圖4中可以看出使用了Trim技術(shù)的SSD相較于未使用Trim的SSD來(lái)說(shuō),在使用一段時(shí)間后,隨機(jī)寫性能沒(méi)有一直動(dòng)態(tài)降低,反而與真正使用時(shí)性能的大小持平,一方面保證了SSD的底層Trim指令實(shí)時(shí)觸發(fā),另一方面保證了SSD的隨機(jī)寫性能。
圖4 文件塊為16 kB和32 kB大小的平均響應(yīng)時(shí)延測(cè)試結(jié)果
圖5 IOPS與平均響應(yīng)時(shí)延的平均測(cè)試結(jié)果
最后將所有結(jié)果求平均值并使用圖表的方式進(jìn)行展示,如圖 5 所示。從圖中可以看出當(dāng)文件塊越小時(shí),SSD的IOPS就越大,平均響應(yīng)時(shí)延也越小。由以上的結(jié)論可知,Trim指令實(shí)時(shí)傳遞給SSD后,對(duì)隨機(jī)寫性能的提升有著顯著效果。
雖然Trim是一項(xiàng)誕生不久的新技術(shù),但它是一項(xiàng)SSD系統(tǒng)必不可缺的高級(jí)技術(shù)。隨著人們對(duì)SSD的數(shù)據(jù)存儲(chǔ)要求越來(lái)越高,將Trim技術(shù)融入應(yīng)用程序和操作系統(tǒng),成為適合SSD的操作系統(tǒng),能有效地優(yōu)化SSD固態(tài)硬盤的性能,并且具有一定的應(yīng)用價(jià)值和應(yīng)用前景。
[1] 沈玉良,許魯. 一種基于虛擬機(jī)的高效磁盤I/O特征分析方法[J]. 軟件學(xué)報(bào),2010,21(4):849-862.
[2] 夏虞斌. 面向C/S計(jì)算環(huán)境交互性能優(yōu)化的虛擬機(jī)調(diào)度算法研究[D]. 北京大學(xué),2010.
[3] Kgil T, Roberts D, Mudge T. Improving NAND Flash Based Disk Caches [C]. 35th Annual International Symposium on Computer Architecture(ISCA’2008),2008.
[4] Soundararajan G, Prabhakaran V, Balakrishnan M.Extending SSD Life-times with Disk-based Write Caches[C]. Proceedings of the 8th USENIX Conference on File and Storege Technologies(FAST’2010), 2010.
[5] R Caceres, F Douglis, K Li, B Marsh. Operating System Implications of Solid-State Mobile Computers [C].Proceeding of the 4th IEEE Workshop on Workstation O-perating Systems, 1993.
[6] Flash-memory Translation Layer for NAND Flash(NFTL)[S]. M-Systems, 1998.
[7] 李鍇,楊長(zhǎng)興. 最新SSD技術(shù)與PC存儲(chǔ)系統(tǒng)結(jié)構(gòu)改進(jìn)的研究[J]. 電腦知識(shí)與技術(shù),2007,03:762-763.
[8] Cagdas Dirik, Bruce Jacob. The Performance of PC Solid State Disks(SSDs)as a Function of Bandwidth,Concurrency, Device Architecture, and System Organization [C]. Proceeding 36th International Symposium on Computer Architecture(ISCA 2009),Austin TX, June. 2009.