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

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

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

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

答案1

这实际上取决于具体的 RAID 实现:

  • 大多数硬件 RAID 将中止重建,有些还会将阵列标记为失败的,降低其性能。其原理是,如果在 RAID5 重建期间发生 URE,则意味着某些数据丢失,因此最好完全停止阵列,而不是冒着数据无声损坏的风险。注意:某些硬件 RAID(主要是基于 LSI)将改为阵列,允许重建继续,同时将受影响的扇区标记为不可读(类似于 Linux 软件 RAID 的行为)。

  • 可以指示 Linux 软件 RAID a) 停止阵列重建(“古老”MDRAID/内核构建的唯一行为)或 b) 继续重建过程,将某些 LBA 标记为坏的/无法访问。理由是最好让用户自己选择:毕竟,单个 URE 可以位于可用空间上,根本不影响数据(或仅影响不重要的文件);

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

答案2

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

答案3

我会反过来解释;

如果 RAID 控制器没有在 URE 上停止,会发生什么?

我将它安装在服务器上,RAID 从未注意到 URE,重建后,整个 RAID 卷开始出现损坏。

重建后,磁盘开始出现更多坏扇区并且数据开始损坏。

磁盘从未从 RAID 卷中踢出,控制器故障的工作是保护数据完整性。

这个例子是为了让大家认为控制器根本无法用 URE 推动卷,它是为了数据完整性,因为卷不是为了备份而是为了应对磁盘故障

答案4

我建议阅读这个问题并回答一些背景知识。然后重新阅读你链接到的问题再次。

当有人谈到这种情况时说“RAID 失败”时,这意味着您失去了 RAID 的好处 - 您失去了对数据的持续访问,而这正是您最初设置 RAID 阵列的原因。

您并没有丢失所有数据,但从一个死驱动器加上(一些)剩余驱动器上的(一些)URE 进行恢复的最常见方法是从头开始完全重建阵列,这意味着从备份中恢复所有数据。

相关内容