有人能帮我重建 RAID 10 阵列吗?

有人能帮我重建 RAID 10 阵列吗?

一些背景信息只是为了提供帮助(希望如此)... 周末,我正在从 Synology 盒子中进行备份,一切都进行得很顺利,直到周日早上,我试图重新连接我的备份服务器,通过我的 10Gb 网络复制一些数据。出于某种原因,它只能在 1Gb 速度下工作,所以我想重启我的设备,看看是否可行。这让情况变得更糟。从那时起,它会在 Windows 中抛出一个错误,说我无法访问共享文件夹(我仍然可以看到它们),但我无法获取任何数据。

尝试访问 Synology 时出现 Windows 错误

快进一点,然后我开始了一些研究,发现安装 Ubuntu 可以读取数据,我希望可以开始恢复它。

正常运行的 RAID 10 阵列

再快进一点,它确实运行良好。但随后灾难降临,出于某种原因,它停止复制并显示出现错误,阵列消失了。RAID 阵列是 RAID 10,由 8 x 8TB 驱动器组成。

慌乱中,我移除了驱动器,好像我记得没错的话,列表中有几个驱动器不见了。检查完每一个驱动器后,我发现主板上有一个我认为无法正常工作的 SATA 端口。结果发现,这没什么好担心的。真令人沮丧。

再次快进。我回头看我的屏幕截图时发现,设备编号的顺序全都错了。它们应该是 -

SDF3 0 SDD3 7 SDE3 6 SDC3 5 SDB3 4 SDI3 3 SDH3 2 SDG3 1

目前他们是 -

SDE3 6 SDD3 7 SDI3 2 SDH3 3 SDG3 5 SDF3 4 SDB3 1 SDC3 0

RAID 10 阵列不起作用

现在我尝试移动数据线,看看是否会改变列表,但正如我所想,除非它按照上述安排,否则它不会起作用?

我已经设法使用 mdadm --examine 执行了一些命令,并且我认为在阅读了 ServerFault 的另一篇文章后,我已经从每个驱动器中获取了信息数据。

当我尝试重新组装阵列时,它会出错,提示“无法在 /dev/sdb 上组装 MBR 元数据(我假设它需要是 SDF3??)

当我在 Synology 框中再次尝试这些驱动器时,它仍然出现相同的错误,所以我希望驱动器上的数据仍然完好无损。

如果您还需要我提供任何其他帮助,请随时告诉我。我会尽我所能,并且正在努力学习 Ubuntu,所以如果我愚蠢又慢了,请原谅!我确实保存了终端文本,但我看不到添加文件的方法,有人可以建议怎么做吗?在此先谢谢了。

编辑-驱动器阵列详细信息

Raid 10 阵列详细信息

据我所知,SDD3 和 SDE3 驱动器有 603 个错误。其余的是 SDB3。SDC3、SDF3、SDG3、SDH3 和 SDI3 有 607 个错误。每个驱动器都显示阵列仍然存在,此时我感到充满希望……

先生们还有什么需要吗?

编辑更多团体截图 -

更多 RAID 10 阵列详细信息

一些额外的信息

![更多附加信息

很抱歉 Brian 没有及时收到此信息。我相信我已经按预期使用了命令?

mdadm --assemble --readonly /dev/[md2] [dev/md2 /dev/sdb3 /dev/sdc3 /dev/sdd3 /dev/sde3 /dev/sdf3 /dev/sdg3 /dev/sdh3 /dev/sdi3] dd if=/dev/[所有驱动器] skip=1000000000000 bs=1M count=10 | sha256sum

在屏幕截图中提到

dadm: 无法打开设备 [dev/md2: 没有此文件或目录 mdadm: [dev/md2 没有超级块 - 程序集中止

但详细说明说,超级块是持久的。我有点困惑...

另一个更新是 Brian....

25-07-23 驾驶信息 25-07-23 已排序驱动器信息

衷心感谢 Brian……

哒哒!!工作阵列!!

如果没有 Brian 的帮助,这绝不可能实现。再次非常感谢!!先生,我向您致以崇高的敬意和知识 +100!!

答案1

备份 RAW 磁盘


在尝试修复损坏的阵列之前mdadm,强烈建议您先对受影响的磁盘进行映像处理。如果在尝试修复阵列时出现问题,您可以随时恢复映像并重新开始。基本上,如果您尝试的修复出现问题,就不会出现任何问题。

或者,如果您不进行磁盘映像处理,则应做好万一出现问题时无法恢复数据的准备。所有mdadm修复都是独一无二的,没有万无一失的解决方案。


磁盘映像制作方法


  1. 在完全相同大小的备份磁盘上:
    • dd if=/dev/[source disk] of=/dev/[backup disk] bs=512K status=progress
  2. 在大于源磁盘的备份磁盘上:
    • dd if=/dev/[source disk] of=/[path to backup location]/[backup file].dd bs=512K status=progress

如果需要恢复映像磁盘


  1. 在完全相同大小的备份磁盘上:
    • dd if=/dev/[backup disk] of=/dev/[source disk] bs=512K status=progress
  2. 在大于源磁盘的备份磁盘上:
    • dd if=/[path to backup location]/[backup file].dd of=/dev/[source disk] bs=512K status=progress

恢复失败的 RAID 10 阵列


在这个特定案例中,八个发生故障的驱动器中的两个不是彼此的镜像。相反,它们是阵列中另外两个报告正常的磁盘的镜像磁盘。这就是我们确定这一点的方法


确定底层阵列是否仍然健康


为了确定两个发生故障(或者说被移除)的驱动器所起的作用,需要对所有驱动器的有效负载数据进行采样,并尝试使用它们的校验和哈希值进行匹配。这是通过对阵列中的每个磁盘执行以下命令来完成的。

  • dd if=/dev/[source disk] bs=1M count=10 skip=1000000 | sha256sum

此命令在驱动器的 1TB 位置获取 10MB 样本,并生成数据的校验和值。然后,我们比较校验和以匹配所有驱动器(即源驱动器与镜像驱动器)。在这种情况下,我们可以得出结论,两个移除的磁盘不是彼此的镜像,因此 RAID 10 实际上仍然完好无损。


修复 Raid 10 阵列


  1. 组装现有的“健康”阵列成员(即尚未被删除的成员)。

    mdadm --assemble /dev/[mdadm array] /dev/[disk 1] /dev/[disk 2] ... /dev/[disk N]

  2. 重新添加缺失的磁盘

    mdadm --re-add /dev/[mdadm array] /dev/[missing disk 1]

    mdadm --re-add /dev/[mdadm array] /dev/[missing disk 2]

  3. 重新启动并重新同步阵列

    mdadm --assemble --run --force --update=resync /dev/[mdadm array] /dev/[disk 1] /dev/[disk 2] ... /dev/[re-added disk 1] /dev/[re-added disk 2]


检查 Raid 是否正在重建


现在要检查 RAID 是否正在重建。为此,请检查以下两件事。

  1. 运行cat /proc/mdstat以查看是否表明 RAID 正在重建。
  2. 运行mdadm --detail /dev/[mdadm array]以查看所有成员是否都是阵列的一部分并且正在重建。

如果无法正确重新组装和重建,则需要额外的故障排除支持来修复故障阵列。请记住,所有故障都不一样。

相关内容