早在2019年就有用户报告在Linux系统上使用Samsung 860 Evo SATA SSD会出现问题,但由于报告量较少这个问题并未引起重视,而在随后推出的Samsung 870 Evo SATA SSD里也有同样的问题,这个问题主要和驱动器性能有关,并且在使用时可能出现各种异常锁定和错误提示。
经过两年的调查后Linux工程师确认上述固态硬盘存在某些故障,作为应对措施,在最新版的Linux Kernel中维护团队已经通过补丁封禁上述固态盘的TRIM和NCQ功能,这两个功能都是用来优化驱动器的。
根据调查结果,已经确定Samsung 860 Evo和870 Evo的SATA版使用的Queued Trim命令会导致英特尔、ASmedia和Marvell SATA ACHI控制器出现故障,并且此类故障在ATI AMD ACHI平台上发生的概率更高。
TRIM命令可以让操作系统通知固态硬盘哪些数据已经不再使用可以进行擦除,这实际上类似于垃圾回收的工作,通过Trim命令对数据进行整理后可以提高固态硬盘的写入速度,目前几乎所有新推出的固态硬盘都支持TRIM命令并且是自动开启的。
NCQ是SATA上的一种技术,该技术允许系统根据负载优化数据的队列和移动以获得最佳性能。不论是NCQ还是TRIM都是用来提高驱动器性能的,在默认开启的情况下兼容性故障则可能会导致Linux用户遇到问题,例如在启动阶段系统卡顿20~30秒。
作为应对方案Linux Kernel已经禁用所有860和870 Evo SATA版的TRIM和NCQ功能,当然这可能会有性能影响但很遗憾暂时没有其他解决方案。
值得注意的是三星对此问题有些模棱两可,三星似乎已经将所有800系列固态盘禁用Queued Trim功能,但三星告诉Linux Kernel维护团队840和850以外的型号不存在问题,然而此次修复的则是860和870。鉴于此类问题建议Linux用户不要使用三星800系列的所有硬盘,避免因为这类故障影响使用或导致性能下降。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/145136.html