存储分析 TRIM技术让固态驱动器变得更快

如果你还没听说过TRIM,那么你可以听听这种技术的发起者怎么说。这些发起者包括固态驱动器(SSD)制造商,操作系统开发厂商和数据存储厂商。

越来越多的公司采用TRIM指令。这是一个数据集管理功能子集,包含在最新的ATA规范中,可以帮助改善SSD驱动器的速度,并最终提高驱动器整体的读取和写入性能。

Objective Analysis的SSD分析师Jim Handy表示,由于TRIM在SSD和操作系统上的实施很简单,TRIM在非常近的未来应该可以获得广泛利用。Objective Analysis是一家半导体市场研究公司。

他说:"我预计TRIM将在2010年夏季之前普及到所有SSD。"

主要的SSD厂商已经开始在SSD上支持TRIM。英特尔通过现有驱动器的固件升级实现这一点。Micron新的6Gb/秒SATA驱动器支持TRIM,而STEC和Fusion-io也支持该指令。Linux和Windows也在添加TRIM支持。

回收闲置的SSD数据块

TRIM指令让操作系统可以告诉固态驱动器哪些数据块是不会再使用的;否则SSD控制器不知道可以回收这些闲置数据块。

Handy表示:"TRIM对SSD是个福音。"

他认为TRIM的简约性将极大减少写入负担,同时允许SSD更好地在后台预删除闲置的数据块,以便让这些数据块可以更快地预备新的写入。

SandForce首席技术官Radoslav Danilak表示,值得注意的是OS(操作系统)的角色。

Danilak表示:"SSD知道哪些过期数据可以删除和回收,但是它不知道操作系统已经决定删除哪些数据,直到操作系统为了新的信息而重新使用逻辑块地址(LBA)。"

Danilak表示:"TRIM这种指令的优点便是它可以同时透过过期数据和OS删除的数据来访问LBA,从而推动性能的改善。TRIM唯一的缺点便是如果它在SSD固件中没有得到很好的实施,那么它的操作有可能会阻碍正常的驱动器操作。"

STEC负责SSD技术营销的高级经理Scott Shadley认为,如果TRIM可以让SSD完全忽略一个LBA范围的数据,那么这是一件好事,但是这种结果也有可能没有什么用处。

对Shadley来说,真正的问题是,如果损耗平衡技术(wear leveling )在运作,那么LBA范围并不一定反映SSD闪存的物理地址序列。

Shadley表示:"这意味着SSD还是要面临如何将数据迁移到设备内部真正空余空间的问题。"

Shadley表示:"如果那个LBA范围反映的是整个介质上的页面,那么实际上就没有空余的块或最小的可擦写的单位。这会带来更加复杂的损耗平衡过程,从而进一步加重写入负担。TRIM只适合于那些损耗平衡过程实际上并未有效节约或延长驱动器性能或寿命的SSD。"

SSD垃圾回收

Danilak表示,在考虑如何改善SSD整体的读取/写入性能的时候,TRIM指令只是解决方案的一小部分。

Danilak指出:"SSD架构中有很多因素影响到整体性能。"

他表示:"例如,所谓的垃圾回收功能。垃圾回收功能迁移有效的数据块,删除闪存页面以便预备新的写入。"

垃圾回收是SSD操作中的重要部分。拥有高效的垃圾回收功能可以让SSD在高速操作中保持均衡的读取/写入比率。

Danilak表示:"TRIM将改善SSD的垃圾回收能力,但是如果你连这个基本的功能都没有,那就是对牛弹琴了。"

数据库、文件系统和RAID还未做好TRIM准备

Fusion-io首席技术官David Flynn 表示,TRIM的另一个限制就是文件系统还不能感知文件中的哪些块可能是不再有用的。Fusion-io从第一款产品ioDrive开始便支持TRIM。

Flynn表示:"例如,一个数据库文件的一部分可能过去曾承载相关数据,但是现在已经毫无用处了的。除非数据库引擎可以发布TRIM通知,否则在线的碎片整理过程还是无法知道这些块是无用的。"

Flynn表示,更糟的是,在RAID中(在这个设置中,一个SSD被镜像到另一个SSD),重建流程将不知道哪些块是无用的。

Flynn补充道:"RAID系统因此将把无用的块复制到镜像驱动器。这样,即使驱动器原来拥有探知数据块相关性的功能,在这种情况下也发挥不出优势。"

Flynn补充道Windows和Linux上的文件系统最近才升级到可以发布TRIM通知,但是数据库和其他主要应用程序仍然还不能发布TRIM指导,同时RAID(独立磁盘冗余阵列)系统还未具备足够的TRIM感知功能来防止重建过程中的信息丢失。

Flynn表示重要的是我们要认识到TRIM的优势受制于文件系统中剩余闲置空间大小。

Flynn表示:"如果文件系统几乎满了,TRIM就不能发挥优势了。不过,如果有人愿意留下一定的闲置空间来获得更好的写入性能,那么只要简单地格式化SSD,只是可用容量更小。"

虽然Flynn也认可TRIM是很好的功能,但是他并不是很热衷。他表示:"实际上,TRIM就是允许闲置块改善写入性能,这和在文件系统外更多地过量配置空间的效果是一样的。"

不过,TRIM仍然有助于改善SSD速度。

Handy表示:"更快的SSD可以吸引那些愿意为更快的程序加载速度而支付费用的客户。"