Linux mdadm软件RAID 6 – 它是否支持位损坏恢复?

维基百科说:“除了RAID 6的一些实现之外,RAID 2是唯一的标准RAID级别,它可以自动从数据中的一位损坏中恢复准确的数据。

有谁知道Linux中的RAID 6 mdadm实现是否可以自动检测并从单一位数据损坏中恢复。 这与CentOS / Red Hat 6有关,如果这些与其他版本不同的话。 我尝试在网上search,但没有太多的运气。

在1E14位的SATA错误率为1,包含1.6E13位的2TB SATA磁盘的情况下,这对于防止数据损坏尤为重要。

编辑17-Jun-2015

我相信这不是我原本以为的担心 – 请参阅硬盘/ SSD – 检测和处理错误 – 可靠地阻止无提示数据损坏? 更多细节

Linux软件RAID不会保护您免受位损坏,无声数据损坏是一个众所周知的问题。 事实上,如果内核能够从一个磁盘读取数据,它永远不会知道它是坏的。 如果在读取数据时发生I / O错误,则RAID只会启动。

如果您担心数据完整性,则应考虑使用像Btrfs或ZFS这样的文件系统,通过存储和validation校验和来确保数据的完整性。 这些文件系统也照顾RAIDfunction,所以如果你这样做,你不需要内核软件RAID。

如果您validation整个驱动器的奇偶校验,则RAID5和RAID6可以检测并通常纠正位损坏。 这被称为“擦洗”或“奇偶校验”,通常在大多数生产RAID系统上需要24-48小时。 在此期间,性能可能会显着下降。 (某些系统允许操作员在读取/写入访问之前或之下对擦除进行优先级sorting)。RAID6纠正错误的可能性更高,因为如果您有两个驱动器故障,RAID6可以纠正它,而RAID5只能处理一个驱动器故障,由于活动增加,洗车时驾驶失败的可能性更大。

我会加上这个作为评论,但我没有足够的声誉; 我想澄清:RAID5可以检测到位损坏,但不知道哪个驱动器没有读取错误的损坏。 因此,如果没有读取错误,擦洗不能解决这个问题 – 它很可能只是logging它并更新奇偶校验位来匹配。 RAID6的algorithm是位置相关的,因此它可以检测哪个驱动器包含错误并纠正位损坏。