OSX:打开SSD的TRIM功能可能不是一个好主意


很久以前,自从人们开始把SSD装载Mac机器中,并且OSX开始支持TRIM开始,人们就开始注意打开OSX的TRIM功能来优化SSD的性能,尤其是当SSD中的垃圾数据越来越多,而SSD需要腾挪这些垃圾来为有用数据腾地的时候,这也是SSD运行最慢的操作。

从前,一直没有认为打开TRIM对系统会有什么副作用,所以,对Apple在OSX10.10中只支持自己的OEM SSD的做法很是不理解。自从看了一篇博客文章才多少理解了Apple的谨慎态度。

事情是从得知10.10.4有了一个内置打开支持第三方SSD盘的TRIM功能开始的,

sudo trimfoce enable

刚看着Apple的警告,多少心里还有点不屑一顾,毫不犹豫地就选择了y(为什么不呢;终于可以摆脱第三方Trim Enabler软件了,不用Apple系统自带的功能才傻呢;OSX系统的东西,放心用吧)相信这样做的人不在少数。还记得不久前OWC宣称它的Mercury系列SDD,采用SandForce核心,不使用TRIM依然可以自动实现垃圾清理的功能吧,估计有人会对它动心的。

后来在MacRumuors中看到了一个网友回复提醒的“HEED THE DATA LOSS WARNING”的消息。从哪里找到了有关Trim+SSD导致Linux服务器系统错误的原始文章,在这里:When Solid State Drives are not that solid。他们的Linux服务器集群中,最严重时大致每隔1个小时就会有服务器宕机,他们尝试了所有的相关系统的更新,排错几乎从应用层、文件系统到系统内核跟踪检查每个相关应用的日志,询问服务器提供商,是不是有硬件相关问题回馈,都没有发现和解决问题。他们发现虽然同类型的服务器,只是有很少的硬件不同(其中包括SSD),但是只是一部分服务器会重复宕机,使用排除法更换硬件服务器,还是没有发现问题。后来发现有些系统小文件的内容块(512B)被“随机的”全部写了0,他们不知道到底谁会把这些文件清零,猜测的是可能会是Trim,最后他们关闭了Trim,经过了数个星期的运行,系统也不再宕机了。随后他们联系了供货商和三星,结果三星会在现场调试,如果无法解决问题将会把机器运到韩国总部进行进一步的检测。截止目前为止,还没有进一步的消息。

根据他们的发现,通过读Linux最新源码,Linux系统有个持续更新的Trim blacklist,(当然,还有其它品牌的SSD以及其它有问题硬盘)其中最新更新是,所有的三星800系列的SSD盘都列在了这个Blacklist中,其中标示它们不支持NCQ Trim(还有Misron和Crucial的几个系列)。再根据其它人揭示的有关三星客服回复的报道,三星的这些SSD不支持Queued Trim命令,而使用Sequential Trim是安全的。根据其他人的解释,之所以目前没有人反映Windows出现类似的问题,似乎是因为Windows禁止了在不支持Queued Trim的SSD操作亦或本身就不支持Queued Trim操作,或者是一种非实时TRIM,一种有计划的集中TRIM处理,具体详情还有待澄清。

Sequential Trim的执行会明显方面SSD的速度,因为它需要完全执行完一个TRIM命令后,再执行下一个,这样如果操作系统每删除一个文件都进行TRIM操作,那么根据SSD固件的速度快慢,不同程度地影响SSD的表现。而SATA 3.1标准推出的Queued Trim解决了上面的问题。但是由于固件问题,有些SSD在执行Queued Trim操作时会出现混乱。

不过还有人报道说,即便是Sequential Trim,有些固件的SSD依然会有问题。

事情并不那么简单,根据其它的报道,这些三星SSD较新版本的firmware虽然内部标识是完全支持SATA 3.2的技术标准,但是其实有些该标准的功能并没有完全实现,比如“RECEIVE/SEND FPDMA QUEUED”固件并完全不支持,而宣称是完全支持的,这造成的问题是,一旦上层系统使用这个功能,就会出现问题,严重的是数据丢失。而这个问题在以前的型号中就存在了。还有一种可能是,SATA卡有某种缺陷,与SSD配合造成出错,这给看似简单的问题,又添加了一层不确定性。不过目前看上去,似乎都集中在这些SSD的固件本身,它们可能存在某种未知的技术缺陷。

现在的情况是,禁止操作系统的即时TRIM功能,而进行定期的TRIM操作,这样会尽量避免上述问题。虽然说这样可能会造成系统的临时不可用,但是更加安全。

还有一点是,如果使用了即时TRIM,那么误删文件的回复操作可能就无法进行了,试想被删除的文件在SSD中物理地被清零了,而不是像传统磁盘那样,操作系统只是给删除文件做个标记,那么恢复文件也就无从谈起。那么带有可追溯历史的备份,就是一个比磁盘时代更加被重视的功能了。幸好,时间机器Time Machine支持版本恢复,是一个不错的选择。现在不了解的是,OSX本身的文档版本回滚功能,会不会受Trim问题的影响。

所以,在OSX上载第三方SSD硬件上开启TRIM是不是一个好主意,用户自己决定。

另外,Aerospike公司做了一个SSD开源的检测工具:ACT,也是一个可以考虑使用的。

相关内容