MCPLive > 杂志文章 > RST新驱动的惊喜 谈谈SSD组RAID0的得失

RST新驱动的惊喜 谈谈SSD组RAID0的得失

2012-10-22周斌(中国海油信息技术中心)《微型计算机》2012年10月上

一般认为,SSD不宜组建RAID 0,理由是RAID 0不提供冗余,数据安全无保障;失去了重要的TRIM功能会影响SSD使用寿命,等等。其实这里面大家纠结的就是TRIM指令无效的问题。不过英特尔宣布在RST 11.0驱动在7系列平台上可以支持RAID模式下的TRIM指令,这个消息也让许多人为之一振。那么这是否意味着,SSD组RAID 0的时机已经成熟?

RST新驱动的惊喜? 谈谈SSD组RAID 0的得失

TRIM为什么那么重要

当我们对文件执行“删除”动作时,系统并不是让这个文件的数据从磁盘上消失掉,而只是将它占用的地址都打上“无用”的标签,表明此地随时可被覆盖(所以文件恢复软件才能发挥作用)。对于HDD而言,覆盖数据是一件很简单的事情,但到了SSD上就不那么容易了。《微型计算机》在上一期的《谁是佳“环卫工”?主流SSD主控垃圾回收性能漫谈》一文里已经介绍过,NAND闪存修改数据时需要经过读取→擦除→修改→写入这一系列过程,在有大量数据写入时这种机制会严重降低性能,所以才有了GC垃圾回收机制以确保有尽量多的空闲页和块供下一次的数据写入。

另一方面,当前的操作系统是按照磁盘的扇区尺寸即512字节进行文件管理的,每一个扇区的LBA(逻辑区块地址)和PBA(物理区块地址)是一一对应的关系。但NAND闪存要经历先擦除块再写入页的特性,使得LBA和PBA的关系就不再固定,单靠LBA无法找到对应的PBA,此时如果操作系统要求主控删除数据,无异于鸡同鸭讲。所以SSD引入了从LBA(逻辑区块地址)到PBA(物理区块地址)的映射,这就是FTL(Flash Translation Layer)算法。有了FTL,操作系统就可以把SSD当成HDD来操作,而主控在每次擦写页和块之后都会更新FTL,将LBA指向一个新的PBA,原先的PBA就成为无效数据。经过多次操作之后,这种无效数据会越来越多。但到底有效还是无效,主控傻傻分不清楚,只有在系统要求它在相同地址写入数据时,它才能明白这里之前的数据已经无效,然后就要执行垃圾回收,搬运这些无效数据。这种多余的操作不但严重影响数据传输效率,对闪存寿命也会有影响。

TRIM是一个操作系统指令,它只负责通知SSD的主控,哪些数据占用的地址已经无效,以便让主控提前执行垃圾回收工作。此时主控不会再搬运无效数据到空闲的块内,需要复制的数据减少,也就减少了对闪存的磨损,提高了垃圾回收的效率。当然,很多主控接到TRIM指令后会结合自身磨损平衡算法来确定垃圾回收的时间。

由此可以看出,TRIM指令对于SSD而言是非常重要的,所以当RAID 0无法支持TRIM时,玩家只能忍痛割爱。

SSD RAID 0测试

为了验证英特尔新版RST驱动的功效,笔者以Z77主板配合两块金士顿V+200 120GB SSD来组建RAID 0平台。这款SSD采用SandForce主控方案,有无TRIM对其性能影响非常明显,能够更好地进行对比。不过如果直接在RAID 0的SSD里面安装系统,很难测试其性能表现。由于SSD必须全盘填充后GC才会影响性能,因此即使将其分区也无法准成测得数据,所以笔者采用了从盘组RAID 0的方式。

驱动方面,有玩家反馈英特尔之前发布的RST 11.5.0.1207存在很多问题,英特尔官网已经将其撤下。笔者找到了RST 11.1.7.1001和RST 11.5.2.1001两个版本的驱动,将它们与旧版RST驱动下的RAID性能进行对比。

测试的结果如表格所示。通过这些数据可以发现:RAID 0模式下SSD读取速度几乎翻倍,写入速度也有极大提升,但4K文件读写性能基本无变化。填充数据后,旧版RST驱动下的SSD性能损失非常严重,但RST 11.0以后的两个新版驱动的确能够执行TRIM,而且比单盘效果更为显著。测试过程中这两个版本的驱动都能稳定使用。RST 11.5.2.1001还加入了SCSI驱动,SSD已被识别为SCSI设备。

TRIM指令执行示流程:

TRIM指令执行示流程:
(1)SSD闪存颗粒的空闲页
(2)用户写入数据后的页
(3)用户删除了数据,主控将这部分页标记为“未使用”,但数据依然留在上面。
(4)TRIM指令告诉主控这些页包含了无用数据,于是主控执行垃圾回收清除数据。
(5)重新整理之后的页,无效数据已被清除,不会影响下一次数据写入时的效率。

结论

其实,英特尔在更新后的RST驱动资料里并未提及是否支持TRIM,因此也引发了争议,有人认为这并非真正的TRIM,而是通过SCSI执行了unmap指令。不过英特尔RST驱动部门的产品经理已经证实,RST 11.0及更新的版本已经支持RAID 0模式下的TRIM指令。笔者的测试结果也验证了这一点,且并没有遇到兼容性问题。

不同磁盘模式及不同版本RST驱动下的性能对比
单盘 RAID 0 RAID 0(RST
11.1.7.1001)
RAID 0(RST
11.5.2.1001)
持续文件读写速度(MB/s) R251.4/W211.06 R449.62/W336.62 R495.7/W295.61 R486.23/W314.01
4K文件读写速度(MB/s) R18.29/W59.17 R17.28/W57.68 R18.72/W62.05 R18.9/W63.62
Anvil SSD Benchmark空盘评分 2497.06 3658.42 3749.02 3746.98
主动垃圾回收之后评分 1952.22 2223.07 2210.85 2175.51
TRIM之后评分 2382.54 3005.64 3745.5 3744.8

那么全民组建SSD RAID 0的时刻来到了吗?显然不是,除了7系列主板以外,其他平台均不能支持RAID模式下的TRIM,无法做到普及。另一方面,RAID 0模式下的SSD表现出极高的持续读写速度也许会让我们激动不已,但实际上影响用户体验的4KB文件读写性能并没有任何提升,此外从成本角度考虑,也并不建议一般家庭用户使用。SSD RAID 0模式更适合有大量数据吞吐的多媒体制作等行业用户。

分享到:

用户评论

共有评论(2)

  • 2012.10.28 17:03
    2楼

    是啊,这个错误坑爹啊

    (0) (0) 回复
  • 2012.10.25 18:02
    1楼

    亲 “RST新驱动的惊喜”和“超值or坑爹?”的链接放反了···

    (0) (0) 回复

用户名:

密码: