我遇到了 RAID5 失败的问题。华硕主板上的英特尔矩阵存储
配置为 - 500 GB 非 RAID(系统 C 分区) - 1 TB - 带有 3 个硬盘的 RAID 5(系统 D 分区) 主要问题是故障前 - 阵列处于重建状态。一个硬盘发生故障,但所有数据均可访问。
使用 MHDD 扫描所有硬盘后(断开连接并连接到另一台计算机),RAID 显示三个硬盘为非成员,一个为 RAID 5 故障阵列。我不知道为什么 - 我没有在其他计算机上使用其他操作系统运行这些驱动器 - 只运行 MHDD。
- 是否可以在 CTRL+I Intel Matrix BIOS 中重新创建 RAID 5 而不丢失数据?
- 有人知道创建 RAID5 初始化结构并始终覆盖数据吗?
- 最好删除数组然后尝试恢复矩阵?
我尝试使用 TestDisk,但它无法读取 1TB 分区。
感谢回答
答案1
如果 MHDD 没有更改磁盘上的任何数据,那么可能发生的情况是,在 Matrix POST 例程运行且没有任何磁盘连接的情况下,磁盘现在处于“外部”状态,并且可能已将阵列从其配置中完全删除。如果您现在创建一个新的 VD,则可能仍存储在磁盘上的现有 RAID 配置将被清除。只需重新创建一个新的 VD 就需要命令您的 RAID5 中的物理磁盘是否设置正确 - 您可能无法保证这一点。
您应该能够使用 BIOS 控制台中的“扫描设备”选项来列出外部 VD,并提供导入它的选项。阅读手册。
除此之外,我不了解 MHDD,但我在 Google 搜索结果中看到的结果看起来并不好。一个古老的 DOS 程序实现了自己的驱动程序?你为什么不坚持使用磁盘制造商的诊断套件?两者皆可,西部数据和希捷,提供一套完善的实用程序,以非破坏性的方式诊断可能存在的磁盘问题。
答案2
如果兔子的答案不起作用……
您可以执行危险的恢复程序来从此类故障中恢复。如果您犯了错误,或者您的固件不够灵活(例如,在 Dell MegaRAID 上,我曾经告诉它跳过初始化,但它还是初始化了,破坏了数据),这很危险。这是一个适用于任何硬件或软 raid 的通用程序。如果这些数据很重要,请务必先备份。
基本上是这样的:
- 将磁盘按照与之前完全相同的顺序放入机器中;如果您更换了磁盘,例如将其映像到另一个磁盘上,或者添加了空白磁盘,请将其视为旧磁盘。
- 确保 raid 控制器可以看到所有其他磁盘。请参阅 the-wabbit 的答案以了解如何处理外部状态。
- 确保你记住了旧的设置:条带大小、偏移量、RAID 级别等。(有时这是不可能的...RAID 实用程序在 hwraid 中极其简化且有限)
- 删除阵列(危险!)
- 创建一个“新”阵列,设置与之前完全相同(危险!)。绝对重要的是要防止它“重新同步”或“初始化”阵列……这意味着将所有数据清零,永久销毁。
- 如果您在上面添加了一个空白磁盘,现在请移除该磁盘,这样您的阵列就会降级。并且永远不要再次添加它,否则它可能会尝试重新加入并将其空白数据合并到阵列中,而不是将其视为新的空白磁盘。并且在移除它之前,不要在阵列处于活动状态时进行任何写入。
特别说明:对于软磁盘阵列,您可能能够跳过愚蠢的空白磁盘步骤(例如,使用 mdadm,对一个磁盘写入“missing”而不是“/dev/sdx”)。而且使用只读 + rw 更容易覆盖图像文件,以便可以重试并重复失败而不会造成损坏。如果有人能想到适用于 hwraid 的等效方法,那将非常有价值。
此时它应该像以前一样工作......假设你很幸运并且你的旧硬件和固件是等效的,旧设置被正确理解和重新创建等。如果它是错误的,它现在可能已被损坏并且比以前更难恢复(例如如果元数据/超级块被写在不同的地方而不是以前,这次是通过数据),但理论上你可以再试一次。
而且作为 hwraid 的反对者,我忍不住要说 hwraid 非常烦人,在某些处理不当的故障情况下,让它决定某些磁盘是“外来的”是完全正常的行为。例如,如果您正在运行它,然后坏的电缆导致磁盘断开连接,然后重新连接,它可能会决定它现在是一个外来磁盘。在 MegaRAID 机器上,我发现如果您交换一些磁盘,然后启动,然后将它们交换回来,它总是会这样做。与 softraid 不同,它似乎关心即使对于现有阵列的顺序。