RAID 1 如何判断磁盘是否损坏?

RAID 1 如何判断磁盘是否损坏?

我已经构建了由 2 个磁盘(A 和 B)组成的 RAID 1 阵列。

这意味着 A 上的每个位都等于 B 上的一个位。如果一个磁盘发生故障,我可以安全地从另一个磁盘检索我的数据。但后来我开始怀疑:这有多真实?

假设 A 上的位 1 读取为 0,而 B 上的位 1 读取为 1。RAID 控制器如何分辨哪个已损坏,哪个未损坏?这是基于所谓的“SMART”技术报告的结果吗?这真的有价值吗?还是说我还是选择非 RAID 解决方案也无妨?

我知道为什么这在 RAID 5 上不是问题,所以我打算升级。

答案1

RAID 1 或 RAID 5 无法防止您所描述的问题。它们主要用于防止单个驱动器的硬件故障(因此可以减少系统停机时间)。使用 RAID 5 时,只有在检测到驱动器故障时才会使用奇偶校验信息。

虽然非常罕见,但由于各种原因,比特似乎可以随机地改变状态——这被称为位腐烂。为了防止位腐烂,您可以:

  1. 添加更多冗余度,例如,通过使用 RAID 6,结合定期数据完整性检查。
  2. 使用主动检查数据完整性的文件系统,例如 ZFS。通过将 ZFS 与 RAID-Z1(单驱动器冗余)结合使用,在读取任何随机“翻转”的位时,将检测到错误,因为计算出的校验和与存储的校验和不匹配。然后,在可能的情况下,ZFS 将使用奇偶校验信息自动纠正错误。

值得指出的是,硬盘确实有内置数据冗余部分缓解有点腐烂。

答案2

RAID1 根本不是备份解决方案。RAID1 的作用是保护您免受单驱动器故障的影响。仅此而已。好吧,它还可以稍微加快您的读取速度。但它不是备份解决方案。如果您删除文件,则会从两个驱动器中删除该文件。如果您格式化 RAID1,则两个驱动器都会被格式化。如果您的文件感染了病毒,您将无法恢复。这就是 RAID1 不是备份解决方案的原因。

回答你的另一个问题,如果驱动器上的数据不匹配,则无法判断哪个是正确的。但是,这种情况发生的几率可能没有你想象的那么高。例如,请参阅维基百科关于错误处理在现代硬盘上。

添加额外的错误检测和错误纠正并非不可能,但这通常不在 RAID 控制器级别完成。一些文件系统(如 ZFS)会添加额外的保护以确保您的数据完整性。

相关内容