如果使用 RAID 1,并且发现两个磁盘之间存在任何不一致,则数据将从主磁盘(最有可能是端口号较低的磁盘)复制到辅助磁盘。
1) 但是,如果主磁盘损坏,因此两个磁盘之间的数据差异仅因主磁盘中的硬件故障而存在,该怎么办? 那么错误的数据会同步到辅助磁盘吗? 现代硬盘上是否有校验和来确保不会发生这种情况?
2) 如果我使用 2 个 USB 棒构建 RAID 1 会怎么样?USB 棒上是否有任何机制来检测读取问题,以便损坏的数据不会通过 RAID 同步到其他 USB 棒,甚至可能覆盖正常的数据?USB 棒的 RAID 1(用于嵌入式系统)是否有意义,或者它们是否可能会由于有限的写入耐久性而同时失败?
答案1
您的意思是如果磁盘损坏,损坏的数据被读取,看起来是合法的?这不是“正常故障”。RAID 1 可防止单个磁盘发生正常故障。
如果一个磁盘着火并炸毁另一个磁盘,它也无法保护您。这些是“异常故障”。例如,如果一个磁盘的写入硬件损坏并且它实际上没有写入数据但没有报告错误,那么 RAID 1 将失败。
现代磁盘具有数据错误检测功能。因此,除非出现固件错误之类的问题,否则如果无法准确读取数据,磁盘应该能够报告该错误。
RAID 1 阵列中两个磁盘之间的不一致已经是一种故障情况,是由 RAID 1 阵列所保护范围之外的因素引起的。例如,如果断电,就会发生这种情况。但 RAID 1 并不旨在保护您免受断电的影响。因此,在这种情况下,即使数据损坏也没关系——它不应该不这样做。无论它复制哪个磁盘都没问题。这没关系。两者都没有比另一个更正确。
如果您想防止某个设备发生故障,RAID 1 是明智的选择。写入耐久性与任何事情都无关。如果任一设备无法写入,RAID 1 阵列就会失败。
RAID 不是备份。RAID 仅使您能够容忍特定类别的故障。如果您的故障不属于该特定类别,则 RAID 不会帮助您,甚至会伤害您。