大多数便宜的 SATA 磁盘驱动器的额定值为“每 10^14 位读取 1 个不可恢复的读取错误”。
这是什么意思?
10^14 位只是 12.5 TByte。如果我有一个完整的 2 TByte 磁盘并将其复制到第二个磁盘,实际上是否有大约 1/6 的可能性是其中一个文件已损坏?
如果发生这种情况,受影响的块是否会被标记并重新分配?我认为是因为如果读取在重试时成功,则它不是不可恢复的读取错误。
然而,我已经使用了很多这些磁盘驱动器几年了,我没有注意到坏块数有任何增加,而且 RAID 控制器日志也没有显示任何读取问题。
编辑:RAID 控制器每周对每个磁盘执行一次巡检读取,因此每年大约为 100 TByte。这仍然少于 10^15 位。
另一方面,2 年内 50 个磁盘中有 4 个磁盘故障,这增加了错误率。
我没有足够的统计数据来做出声明,但在我的情况下,实际错误率似乎在 10^14 和 10^15 之间,这与规范一致。
在 10^14 中给出 1 个读取错误的统计数据就是一个统计数据点。这并不意味着在任何给定的磁盘中您都会看到错误,也不是说它一定会从磁盘生命周期的开始到结束发生。这仅意味着磁盘的评级不如企业磁盘,并且根据我的经验(开发企业存储系统),消费者和企业磁盘也从未达到完整的 MTBF 数字。我也不记得他们之间有什么大的区别。有一些差异,但不是很大。
当正在读取一个块并且失败时,磁盘会将扇区放入一个保留列表。当下一次写入该扇区时,将尝试写入并验证该扇区,如果有效,则不会再进行任何操作。如果验证失败,该扇区将被重新分配。
在许多情况下,磁盘和 RAID 甚至可以在坏扇区成为大问题之前即时纠正它们。有磁盘的后台媒体扫描和 RAID 阵列的磁盘清理,这两项工作都可以保护数据。企业存储阵列使用更细粒度的检查来确保即使是有轻微问题的磁盘扇区也能得到处理和修复。
在 RAID 阵列中使用消费驱动器还有其他问题,TLER 就是其中之一,它本质上意味着即使是一个坏扇区,您也可能会丢失磁盘,因为磁盘在成功读取扇区之前停止响应。TLER实际上是避免RAID调用磁盘失败的方法,当它只是一个小媒体问题时。如果您启用了 TLER,磁盘将很快放弃该扇区并让 RAID 在其级别处理故障。