我最近在 SW RAID1 系统 (Debian 6.0) 上遇到了硬盘故障,发生的情况是活动硬盘似乎有一些坏块,这些坏块以某种方式传播到了仍然正常但被设置为备用且无法同步的硬盘上。这基本上是我的假设,因为我不能肯定地说。
我想知道你们是否知道损坏的硬盘的错误是否有可能传播到其他硬盘,如果是的话,是否有任何设置可以避免这种情况发生?
任何关于此事的见解都将不胜感激。谢谢。
答案1
如果 Linux 软件 RAID知道它正在读取损坏的数据,因此不会对其进行镜像。但是,如果您的磁盘发生故障并默默提供不正确的数据,则没有设置或类似设置可以在 RAID 中恢复该数据。如果两个磁盘上的块不相等,它根本不知道该信任哪些数据。
但是,您提到它确实将这些块识别为“坏块”。在这种情况下,mdadm 将踢出(标记为故障)该磁盘,您必须使用正确的磁盘手动启动降级阵列。除非您强制执行,否则它将阻止您与该故障磁盘重新同步。
尝试防止静默数据损坏的最佳方法是使用文件系统级镜像,如 ZFS 和 btrfs 提供的镜像。它可以在物理层面上承受一些数据损坏,因为它使用奇偶校验计算来检查所有数据。不过,在某些情况下,它可能会更慢。