一个故障驱动器 + 一个坏扇区会破坏整个 RAID 5 吗?

一个故障驱动器 + 一个坏扇区会破坏整个 RAID 5 吗?

在规划 Synology Disk Station 上的 RAID 设置时,我阅读了大量有关各种 RAID 类型的资料,这是一篇很棒的读物:RAID 级别以及URE(不可恢复的读取错误)

然而,有一件事我仍然不清楚:

让我们考虑两种情况:

  1. 数组是RAID 1共 2 个驱动器
  2. 数组是RAID 5共 3 个驱动器

两种情况的假设相同:

  • RAID 阵列上有 100,000 个文件
  • 一个驱动器发生故障(需要更换)
  • 重建阵列时恰巧有一个坏扇区(URE)

会发生什么?RAID 重建后,99.999 个文件运行正常,1 个文件丢失吗?还是我会丢失所有 100.000 个文件?

如果答案需要了解文件系统类型,则假设文件系统是 BTRFS 或 ZFS。

答案1

简短的回答是这取决于。

在您描述的情况下(有故障的磁盘 + 另一个磁盘上的一些无法读取的扇区),一些企业 RAID 控制器会因为其完整性受到损害而摧毁整个阵列,因此唯一安全的操作是从备份中恢复。

一些其他控制器(最著名的是来自 LSI 的)而是数组,将某些 LBA 标记为不可读,但继续重建。如果不可读的 LBA 实际上位于可用空间中,则不会丢失任何实际数据,因此这是最好的情况。如果它们影响已写入的数据,则不可避免地会丢失一些信息(希望价值不大)。

Linux MDADM 用途广泛,最新版本的 MDADM 具有专门的“重映射区域”,用于处理此类穿孔阵列。此外,始终可以使用ddddrescue先将具有不可读扇区的驱动器复制到新磁盘,然后使用该磁盘重新组装阵列(当然会丢失一些数据)。

BTRFS 和 ZFS 通过与块分配层更加紧密地集成,可以检测丢失的数据是位于空白空间还是已分配空间,并详细报告受影响的文件。

相关内容