我在 gentoo 服务器上有一个 6 磁盘 RAID5 阵列。mdadm 报告说其中两个磁盘发生故障。如果磁盘真的坏了,我准备将驱动器发送给专业人员进行恢复,但除非必要,否则我不想这样做,我也不想我自己的恢复尝试给他们带来麻烦。话虽如此,如果我可以自己让阵列恢复运行,我更愿意这样做。
1)我应该立即采取什么措施来降低数据丢失的风险?
2)判断驱动器是否真的已损坏或只是被错误地标记为故障的最佳方法是什么?
3)重新启动机器和/或尝试自己重建阵列是否存在风险?
答案1
这恰好发生在“备用感谢周”(或无论它叫什么)之后。
尝试自己做任何事情的问题在于,每次运行驱动器时,您只会增加驱动器的性能下降程度。决定现在如果你要把它发送给专业人士,那就去做吧。如果这些数据足够重要,值得花费数千美元来恢复,那么它可能就是你想要的东西,而不是迟早的事,所以现在就把它发走吧。
哦,还有备份。做好备份。RAID 不是备份,而且考虑到驱动器的大小(以及重建大型阵列所需的时间),RAID 5 如今几乎不能算作冗余。
答案2
简短回答:建立一个可以保存数据的非 RAID 5 阵列,然后从备份中恢复。
如果你没有备份“你做错了”
较长版本:
考虑 RAID 10。如果担心空间问题,请购买更多磁盘,并在控制器支持的情况下转为 RAID 6,或者购买更多磁盘并无论如何都使用 RAID 10。构建您的 RAID 阵列,然后从上次备份中恢复数据。
答案3
您可能会发现使用RAID 重建器,它是只读的,将扫描驱动器以确定它们的情况。显然,您需要能够将驱动器连接到另一个系统,而不是通过 RAID 控制器。评估您的驱动器不会花费您任何费用。
答案4
womble 的回答涵盖了最坏的情况,但其中一个或两个磁盘完全没问题的可能性很大。如果您想自己尝试恢复数据,我建议您只尝试使用其中一个故障驱动器进行恢复,并将另一个驱动器放在一边,以防您最终需要将整个 RAID5 送到数据恢复公司。
使用廉价的 SATA 卡时,我们经常会同时丢失 RAID5 中的两个驱动器,即使其中一个驱动器有故障。我们还遇到过几次两个驱动器都没有坏的情况,我们无法准确确定 RAID5 故障的原因。此后,我们在 RAID1 配置中切换到更大的驱动器,并正在考虑在 raidz2 或 raidz3 上切换到 ZFS。
正如其他人提到的,恢复服务无法仅从故障驱动器恢复数据。您必须发送 RAID5 中的所有磁盘。
您应该知道,故障有多种级别。如果由于磁头损坏而造成严重的物理损坏,您唯一的希望就是恢复服务,但很有可能您的数据已经丢失。
如果您无法承担将所有驱动器送往数据恢复服务的成本,您可以使用 dd 或 dd_rescue 将驱动器的内容复制到好的驱动器上,然后在重新组装 RAID 并运行完整备份时对故障驱动器执行其他诊断。不幸的是,您可能无法确定文件是否正常或是否已损坏,除非您有最近的校验和列表或现有备份来与它们进行比较。
如果您可以确定扇区 0 是坏的(通常在开机后反复点击即可显示),那么您就太倒霉了。Ontrack 恢复代理告诉我,他们无法从我寄送的驱动器中恢复任何数据,因为他们绝对需要能够写入扇区 0。我有点恼火,因为在寄送驱动器之前我已经确定扇区 0 是坏的,而 Ontrack 并没有提前告知他们的能力。
您可以通过查看系统日志和/或使用 smartctl(来自智能工具软件包)查看驱动器上存储的 SMART 诊断信息。如果 smartmontools 报告驱动器运行状况良好,并且您没有任何重新分配的扇区(在“重新分配的扇区数”下),则您的驱动器可能没有问题,您可以尝试重新组装 RAID 并进行备份。
将来,您可能还需要考虑在 raidz2 或 raidz3 上设置带有 ZFS 的 OpenSolaris 盒。它们将分别为您提供双重或三重奇偶校验,允许您在丢失数据之前丢失 2 个 (raidz2) 或 3 个 (raidz3) 驱动器。此外,ZFS 会对所有内容进行校验和,因此您的文件系统不会像其他单磁盘或 RAID 配置那样容易出现静默数据损坏。
任何 RAID 配置中至少具有双奇偶校验都是可取的,因为在更换和重建第一个故障磁盘的过程中,您仍然具有冗余。(当然,您不应该等到 2 个磁盘都发生故障后才更换第一个故障磁盘。)