假设我有一个 RAID 5(Windows 奇偶校验存储池),其中一个驱动器发生故障。我将插入一个新的驱动器并开始重建。
很多人说,如果剩余的驱动器中有一个驱动器即使只有一个扇区发生读取失败,重建过程也可能会失败。
RAID 5(我知道没有标准)数据结构是否真的以这样的方式交织在一起,即成功重建需要所有数据,还是只有受读取错误影响的文件将不会被重建,这将更有意义。
另外,重建失败究竟意味着什么?那些宣扬“一次错误-重建-失败”口号的人通常会补充说,重建失败意味着丢失所有数据,但是...由于即使丢失一个驱动器也可以读取 RAID 5,因此,数据应该还在,最多只有一些文件受到读取错误的影响?
答案1
从技术上讲,如果您使用(所有驱动器 - 1)进行重建,而剩余驱动器之一出现问题,即使只有一个坏扇区,您也超出了 RAID 5 的设计处理能力。实际上,一个坏扇区通常意味着多个坏扇区。
我曾遇到过 RAID 控制器因为一个坏扇区而丢弃驱动器的情况。我无法想象如果剩余驱动器中有一个坏扇区出现,这些控制器将无法完成重建。
我认为这可能取决于实际软件/控制器的策略是否继续。更严格的策略可能意味着重建被中止。
“在重建过程中,RAID 驱动程序会读取所有幸存驱动器上的每个块。如果遇到任何位错误,重建操作通常会中止。RAID 基本上处于不确定状态。它可能会保持降级模式,也可能进入完全故障模式。如果 RAID 由大量大容量驱动器组成,重建失败的概率可能非常高。例如,如果 2TB 硬盘出现至少一个位错误的概率为 1%,那么 12x2TB 硬盘出现至少一个错误的概率为 11%。“-来源
“在您描述的情况(一个故障磁盘 + 另一个磁盘上的一些不可读扇区)下,某些企业 RAID 控制器会以完整性受损为由摧毁整个阵列,因此唯一安全的操作是从备份中恢复。其他一些控制器(最明显的是 LSI 控制器)会刺穿阵列,将一些 LBA 标记为不可读,但继续重建。如果不可读的 LBA 位于可用空间上,则实际上不会丢失任何实际数据,因此这是最好的情况。如果它们影响已写入的数据,则不可避免地会丢失一些信息(希望价值不大)。“-来源
相比之下,如果我们看看 SSD 驱动器,SSD(企业级)越高端,固件级别的策略对任何类型的损坏就越不容忍。如果它不能保证数据的完整性,一些(英特尔)企业级 SSD 就会被编程为“变砖”。理念是:要么我们提供 100% 完整的数据,如果不能保证,那么就根本没有数据。
所以,我想说的是,可能没有“一刀切”的答案。这取决于特定的 RAID 控制器(或软件)。
底线是:这得视情况而定。
如果控制器拒绝重建,则可能不会丢失全部数据,如果您克隆/映像单独的成员,数据恢复工具通常会虚拟重建和阵列并允许您恢复数据。
答案2
RAID 5(我知道没有标准)数据结构是否真的以这样的方式交织在一起,以至于成功重建需要所有数据
不会。旋转奇偶校验信息结构允许一个驱动器完全失效。否则 RAID5 会像 JBOD(只是一堆驱动器)一样可靠。
或者是只有受到读取错误影响的文件才不会被重建,这将更有意义。
由于 RAID5 结构允许一个驱动器完全发生故障,因此简单的读取错误并不重要。
重要的是,在丢失一个驱动器后,剩余驱动器是否发生读取错误。阵列的重建需要读取所有内容。此时可能会出现其他故障,例如其他驱动器的扇区无法读取。
此类错误可能会导致您的 RAID5 软件立即停止或忽略它,从而导致部分重建 RAID5,进而导致数据或元数据故障。消息“重建失败”未定义。这可能意味着您的软件在遇到第一个不可读扇区后停止了重建过程。否则,尽管遇到读取错误,但仍然可以终止该过程,并提供可以恢复的最大数据量。
从技术角度来看,看下面的图表,数据段列表(A、B、C、D)中的一个不可读扇区只会影响该段。
答案3
简短的回答是这取决于:坏扇区的位置以及 Windows 上 RAID 软件的行为。
在您的 Windows 存储池情况下,这是一个软件 RAID,因此您的 RAID 控制器是 Windows,并且在这种情况下其行为并不为人所知。
您有以下有利因素:
- RAID 5 可以毫无问题地在替换磁盘上重新创建坏磁盘
- 坏扇区可能不在文件内。如果它位于可用空间中,则实际上不会丢失任何实际数据。
- 如果坏扇区位于文件内,则奇偶校验对您有利。由于奇偶校验数据分布在所有磁盘中,因此很有可能可以从其他 3 个磁盘上的数据重新创建该扇区。
扇区的奇偶校验数据可能位于其他 4 个磁盘之一上。由于其中一个坏了,恢复该扇区的几率为 4 分之 3,即 75%。
此外,由于奇偶校验数据占用了 30% 的磁盘空间,对于 4 个磁盘,我们的覆盖率为 120%,这意味着一些奇偶校验数据在多个磁盘上重复。
总而言之,您需要尝试一下才能知道会发生什么。不过,我建议在重建阵列之前备份您的数据。