什么可能导致 SSD 上出现非常高的 CRC 错误(除了损坏的 SATA 电缆,如果有的话)?

什么可能导致 SSD 上出现非常高的 CRC 错误(除了损坏的 SATA 电缆,如果有的话)?

我的 SATA SSD 在大约 2 年的时间里出现了超过 37K CRC 错误。这些错误并不是线性增加的。只有 3-4 次 Windows 挂起的情况,后来在检查 SMART 参数后,我发现 CRC 错误计数大幅增加。这种增加是突然的,每次增加 7-8K。否则 SSD 运行正常。

我想知道这种行为的原因是什么。我有质量很好的 SATA 电缆,它们在机柜中没有过度弯曲或扭曲。

此外,这个问题似乎是可以自行解决的。无需触碰任何东西(无需重新安装 SATA 电缆等),它就会自行恢复,然后在接下来的几个月内正常工作,直到出现这种偶发行为。

这让我怀疑 SSD 本身是否存在导致这种情况的原因?

我有另一块 HDD 连接到同一个 SATA 控制器,到目前为止它从未出现过这样的行为。

系统配置 - 主板 880GM USB3、SATA II、AMD SB710 芯片组、Windows 7 64、8GB RAM、Samsung EVO 850 120GB SSD、Seagate Barracuda 2.5 HDD。

在此处输入图片描述

答案1

我遇到了同样的问题,但找到了问题的根源。这与电缆/RAM/CPU 故障无关。这是因为您的三星 SSD 与 AMD 芯片组的 SATA 控制器不兼容。防止偶尔出现卡顿和 CRC 错误增加的最佳解决方案是禁用 SATA 驱动程序中的 NCQ(本机命令队列)

  1. 如果您使用默认的 storahci MS 驱动程序,请将 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\storahci\Parameters\Device] "NcqDisabled"=dword:00000001 或 "SingleIO"=hex(7):2a,00,00,00,00,00

  2. 如果您使用 AMD SATA 驱动程序,请添加以下内容:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\amd_sata\Parameters\Device] "AmdSataNCQDisabled"=dword:0000000F 或 "AmdSataQueueDepth"=dword:00000001

另一个解决方案是将 SATA 控制器切换到 IDE 模式,但这会导致性能比上述解决方法更慢。

答案2

正如您已经指出的那样,CRC 错误计数与主机和驱动器之间的接口中检测到的错误有关。这可能由多种原因造成:

  1. S-ATA 电缆松动
  2. S-ATA 电缆故障
  3. RAM 故障(由于缺陷或过热)
  4. CPU 故障(由于缺陷或过热)
  5. 主板或驱动器本身的 S-ATA 连接器存在缺陷

由于这种情况似乎很少发生,而且似乎无需做任何事情就能自行解决,因此我会首先调查第 3 项。您可以运行内存测试。我推荐 Memtest86+。由于问题很少发生,我建议长时间运行内存测试,以便您可以多次运行。任何 RAM 错误都是大错特错,除非在锤击测试中只有少数错误,因为某些 RAM 类型比其他 RAM 类型更容易受到这种压力测试的影响。

答案3

我认为这会导致智能中的 CRC 错误。

驱动器损坏。
电缆损坏。
端口/主板损坏。

我认为内存或 CPU 问题不会导致这种情况,但这确实取决于驱动器的连接方式。

例如,如果控制器在板载,并且 SATA 端口直接连接到控制器,则数据信号不会通过 CPU 或系统 RAM,因此有缺陷的 RAM 不会成为问题的原因。当然,坏的 RAM 可能会损坏数据,但它会超出 SMART 检查的范围,并且不会累积该计数器。

我最近必须诊断我的 SSD 的一个问题,起初它有不同的症状,但在三星退回驱动器后,我发现 CRC 错误不断增加,就我而言,我发现我使用了坏电缆“并且”主板上有一个故障端口。

但是,我的新一代 SSD 在坏电缆和端口上均未产生 CRC 错误,而我的两个旧一代 SSD 则产生了 CRC 错误,原因是较新的 SSD 具有更好的 ECC 控制器。因此,具有增强型 ECC 的现代 SSD 可以缓解电缆和端口故障。

然而需要警告的是。

当 SSD 报告 CRC 错误时,这意味着控制器无法正确读取驱动器中的数据,必须重试或完全失败。这通常与读取错误有关。它可能是由于 NAND 闪存损坏或电缆或电路板走线的 SATA 信号完整性不良而发生的。

所有这些的危险在于,它还可能导致驱动器上的数据无声损坏,因此,例如,如果您使用具有强 ECC 的驱动器通过坏电缆即时纠正读取错误,它不会纠正写入请求中的翻转位,而只是报告成功。通常,防止这种情况发生的方法是验证您写入的数据,某些文件系统(如 ZFS)会自动执行此操作。以及 teracopy 等工具,它们也可以自动执行此操作。

我也观察到了不同驱动程序之间的差异。

因此,例如,当尝试全速运行但出现 CRC 错误时,msahci 驱动程序将继续运行,并且由于是硬件问题,通常会出现更多错误。
但是,英特尔快速存储驱动程序将自动回退到较低的 SATA 速度,当它执行此操作时,它往往会防止进一步的错误,因为受损的信号完整性通常只会在最高速度下导致问题,所以换句话说,降低速度通常会消除错误。这比不得不重试失败的读取和写入时的静默数据损坏要好。速度减慢是暂时的,直到重新启动,并且基于每个端口,因此,例如,如果端口 0 上的 ssd 由于 SMART crc 错误而从 sata 600 回退到 sata 300,则端口 1 上的 ssd 如果没有 crc 错误将保持在 sata 600 速度。

电缆问题似乎并不罕见,在诊断出最近出现的问题后,我测试了所有 8 条电缆,其中 3 条在 SSD 上出现错误。它们不能很好地承受剧烈的扭曲和弯曲,大约一个月前也不得不在另一台机器上更换电缆。就损坏的端口和主板导致 SSD 上出现 SATA 错误而言,这种情况似乎不太常见,但确实时有发生。

答案4

我也有类似的问题。我最近用金士顿固态硬盘替换了我的笔记本电脑硬盘。但是卸下光盘驱动器后,我仍然在光盘驱动器托架的帮助下使用硬盘。问题是硬盘在主 Sata 端口工作正常,但 CD 驱动器 SATA 端口的 CRC 计数急剧增加。它仍在增加,但性能方面没有缺陷。我了解到主 SATA 端口是 SATA3,而 CD 驱动器端口是 SATA 2.0。虽然它是向后兼容的,但我得出结论,这可能是问题所在。在您的规格中它是 SATA2,但您的固态硬盘是 SATA3,因此它可能会混淆 SATA 控制器。

相关内容