目前的2TB级消费级磁盘驱动器有多可靠?

大多数便宜的SATA磁盘驱动器被评为“每10 ^ 14位读取1次不可恢复的读取错误”。

这是什么意思?

10 ^ 14位只有12.5 TByte。 如果我有一个完整的2TB磁盘,我把它复制到第二个磁盘,实际上有一个几乎1/6的机会,其中一个文件被破坏?

如果发生这种情况,受影响的区块是否会被标记和重新分配? 我这样认为是因为如果读重试成功,这不是一个不可恢复的读取错误。

但是现在我使用了很多这样的磁盘驱动器,我没有注意到坏块数量的增加,RAID控制器日志也没有显示任何读取问题。

编辑:RAID控制器每周巡逻读取每个磁盘,所以每年约100 TByte。 这还不到10 ^ 15位。

另一方面,2年内有50个磁盘共有4个磁盘出现故障,增加了出错率。

我没有足够的统计学意义的数据来作出陈述,但在我的情况下,实际的错误率似乎在10 ^ 14和10 ^ 15之间,这与规范是一致的。

10 ^ 14中给出的1个读取错误的统计就是一个统计数据点。 这并不意味着在任何给定的磁盘上,您将看到错误,并不是说从磁盘生命的开始到结束都必然发生。 这只意味着该磁盘的评级不如企业磁盘高,根据我的经验(开发企业存储系统),消费者和企业磁盘都不会达到完整的MTBF数字。 我不记得他们之间有很大的区别。 有一些差异,但不是很大的一个。

当一个数据块正在被读取并且失败时,磁盘会把这个扇区放到一个保留列表中。当下一个扇区被写入时,写入数据将被尝试并且扇区被validation。 如果validation失败,该部门将被重新分配。

在很多情况下,磁盘和RAID可以在出现严重问题之前即时纠正坏道。 有磁盘的后台介质扫描和RAIDarrays的磁盘清理,这两个工作都是为了保护数据。 企业存储arrays使用更细粒度的检查,以确保即使稍有问题的磁盘扇区将得到处理和修复。

在RAIDarrays中使用用户驱动器还有其他问题,TLER就是其中之一,这意味着即使是一个坏扇区,也可能会丢失磁盘,因为磁盘停止响应,直到成功读取扇区为止。 实际上TLER实际上是避免RAID调用磁盘失败时的一种小型媒体问题。 如果启用了TLER,磁盘将迅速放弃该扇区,让RAID处理失败。

你应该小心RAID和消费者驱动器。 根据您的RAID控制器,如果磁盘由于没有TLER而花费很长时间来响应, 则会发生 。

这里描述了一个不可恢复的块会发生什么

当磁盘控制器的固件发现扇区坏或不稳定时,磁盘控制器将逻辑扇区重新映射到不同的物理扇区。 在硬盘的正常操作中,坏扇区的检测和重新映射应该以对系统的其余部分透明的方式进行,并且在数据丢失之前预先进行。 但是,应该记住的是,硬盘的物理损坏并不仅仅影响存储数据的一个区域。 物理损坏往往会干扰许多不同文件的部分。

至于你关于1/6块被破坏的机会的问题,对块来说是这样,然而,操作系统/文件系统有自己的方式来处理坏块,并从中恢复,所以这是完全可能的OS / FS能够自行恢复坏块,而不会注意到文件的任何损坏。

这意味着他们的质量控制是这样设置的,以至于你可能希望在每12.5TB的读取中有一个不可恢复的读取。 这并不意味着将会有一个,只是那是他们的质量控制已经被校准的地方。

当考虑RAID组时,这会有一些非常严重的影响 – 一个5 + 1 RAID 5的2TB驱动器接近这个数字。 RAID重build需要重新扫描整个RAID组,所以重build失败的几率开始变得重要。 部分解决scheme涉及更小的RAID组或者使用RAID 6,但这会带来自身的后果。 (特别是RAID-6,虽然聪明,但会在写入损失时刻烧毁你,特别是在'更便宜/更慢'的磁盘上)。

这就是为什么'服务器磁盘'是'如此昂贵' – 其中一个关键的原因是他们往往是1/10 ^ 16 – 这大大降低了复合故障的几率。

但是你应该注意 – 只是因为预期的错误率是12.5TB,这并不意味着你不会运气不好。 RAID永远不能替代备份。 (但是我怀疑你已经知道了。)