如果 RAID5 系统在重建期间遇到 URE,是否会丢失所有数据?

pro*_*s91 25 raid zfs zfsonlinux

我理解关于更大的驱动器在重建期间遇到 URE 的可能性增加的论点,但是我不确定这的实际影响是什么。这个答案说整个重建失败,但这是否意味着所有数据都无法访问?为什么会这样?当然,来自驱动器上单个扇区的单个 URE 最多只会影响与几个文件相关的数据。阵列不会仍然被重建,只是对一些文件有一些轻微的损坏吗?

(我在这里对 ZFS 的 RAID5 实现特别感兴趣,但对于任何 RAID5 实现,逻辑似乎都相同。)

sho*_*hok 25

这实际上取决于特定的 RAID 实现:

  • 大多数硬件 RAID 将中止重建,有些还会将阵列标记为failed,使其停机。其基本原理是,如果一个RAID5期间URE发生重建就意味着一些数据丢失,所以最好完全停止宁可冒着无记载数据损坏的阵列。注意:一些硬件 RAID(主要是基于 LSI 的)反而会刺穿阵列,允许重建继续进行,同时将受影响的扇区标记为不可读(类似于 Linux 软件 RAID 的行为方式)。

  • 可以指示 linux 软件 RAID a) 停止阵列重建(“古老的”MDRAID/内核构建的唯一行为)或 b) 继续重建过程,将某些 LBA 标记为错误/不可访问。理由是让用户自己做选择比较好:毕竟单个URE可以在空闲空间,完全不影响数据(或者只影响不重要的文件);

  • ZRAID 将显示某些文件已损坏,但它会继续重建过程(参见此处的示例)。同样,理由是最好继续并向用户报告,使他能够做出明智的选择。


Bar*_*958 8

如果 URE 发生,您会在块上遇到一些数据损坏,通常大小为 256KB-1MB,但这并不意味着您的卷上的所有数据都会丢失。RAID5 的不那么好是完全不同的事情:重建本身是有压力的,并且很有可能您会连续第二次出现磁盘故障。在这种情况下,所有数据都将丢失。

  • 是概率论。使用 N(驱动器数量)时,您出现故障的机会要高 N 倍。 (3认同)
  • 与 RAID1 重建相比,RAID5 重建在单个驱动器上的压力如何?我看到它对 CPU 的压力更大,但对于任何特定驱动器,我们只是从它读取所有数据。通常情况下,人们提到使用更大驱动器的危险是他们可能会在重建过程中遇到 URE,但如果这只是意味着单个扇区将被损坏,那对我来说没问题。 (2认同)