RAID 1如何确定磁盘是否损坏?


4

我建立了一个由2个磁盘A和B组成的RAID 1阵列。

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

假设A上的1读为0,但B上的读为1。RAID控制器如何辨别哪个损坏了,哪个没有损坏?这是否基于所谓的“ SMART”技术报告,真的有价值吗?或者,使用非RAID解决方案是否也一样?

我可以看到为什么在RAID 5上这不是问题,所以我打算进行升级。


我并没有将其发布为答案,因为我不知道我是否100%正确,但是我认为,在您要描述的情况下,必须使用不同的数据独立地写入磁盘, RAID 1设置中不会发生什么。如果RAID控制器发生故障,则可能会发生这种情况,但是即使那样也不太可能。
chunkyb2002 2012年

RAID不是备份!RAID5也存在问题。zdnet.com/blog/storage/why-raid-5-stops-working-in-2009/162
Zoredache


Answers:


5

RAID 1或RAID 5无法避免您所描述的问题。它们的主要目的是防止单个驱动器发生硬件故障(并因此减少系统停机时间)。对于RAID 5,直到检测到驱动器故障后才使用奇偶校验信息。

尽管很少见,但由于各种原因,位似乎可以随机改变状态-这被称为bit rot。为防止腐烂,您可以:

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

值得指出的是,硬盘驱动器确实具有内置的数据冗余部分减轻位腐烂。


RAID5实际上应该能够检测到所描述的问题。只要所有错误都在单个驱动器上,RAID控制器通常会提供“验证”检查,以便对其进行检查并能够准确地重建原始数据。
ChrisInEdmonton'2

3
@Chris这是正确的,但它没有主动这样做。钻头腐烂,然后一个驱动器发生故障。通常,更换驱动器后,重建会顺利进行,但是由于存在一些不可读的位,因此您在重建期间开始遇到失败。由于阵列处于降级状态,因此无法修复这些错误。这就是诸如ZFS之类的活动会使用奇偶校验主动清理数据的原因,以便在出现这些错误时解决这些错误。
AaronLS 2012年

上一次我使用硬件RAID5卡时,管理软件被自动配置为每周运行一次验证检查。我看到我当前的运行RAID5的NAS盒没有执行这种验证。
ChrisInEdmonton,2012年

9

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

要回答您的另一个问题,如果驱动器上的数据不匹配,则无法判断哪个是正确的。但是,这种可能性可能并不像您想象的那么高。例如,请参阅Wikipedia的有关现代硬盘驱动器上的错误处理的部分。

添加附加的错误检测和错误校正并非不可能,但这通常不是在RAID控制器级别完成的。某些文件系统(例如ZFS)为您的数据完整性添加了额外的保护

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.