我应该使用“mdadm --create”来恢复我的 RAID 吗?

我应该使用“mdadm --create”来恢复我的 RAID 吗?

这家伙不断告诉我我们不应该使用它mdadm --create来恢复我们的 RAID 阵列,这比邪恶更糟糕,这是一个错误。这是为什么?我的意思是我应该让我的 RAID 重新工作,不是吗?如果--create出现错误我应该用什么代替?

答案1

没有什么问题--create——如果你知道自己在做什么。

唯一的问题是:你不知道。

创建 RAID 时,命令通常很短,例如:

mdadm --create /dev/md42 --level=5 --raid-devices=3 /dev/sdx1 /dev/sdy1 /dev/sdz1

非常简单,对吧?

但事实并非如此,真的。 RAID 有更多的变数。有一个数据偏移量、一个块大小、一个元数据版本,我们不要忘记驱动器顺序,这在重新创建时很容易出错,因为驱动器号可能会随着时间的推移而改变。

正确的--create命令可能如下所示:

mdadm --create /dev/md42 --assume-clean \
    --level=5 --chunk=512K --metadata=1.2 --data-offset=2048s \
    --raid-devices=3 /dev/sdz1 missing /dev/sdy1

无论给你什么,你都应该以只读方式测试它。这可能还不是全部。您是否知道也有几种不同的 RAID 布局?--create是最后一根稻草,陷阱并不明显。理想情况下,您应该备份所有磁盘,或者至少备份元数据区域,或者在写时复制覆盖

对于您未提供的任何内容,mdadm请使用默认设置。不幸的是,这些都不是一成不变的,基本上所有这些都在过去发生了变化,而且将来也可能会再次发生变化。

因此,当您用于--create恢复时,您必须非常了解 RAID,并且您需要知道您的旧 RAID 到底是什么样子。然后您必须添加--assume-clean或保留其中一个磁盘missing,以防万一您犯了错误。您还应该进行备份,至少是磁盘的开头和结尾,以便可以从写入错误位置的元数据中恢复。

在大多数情况下,您还有其他选择。--assemble --force是其中之一,但它也有其自身的缺陷。您应该--examine首先,如果其中一个驱动器比其他驱动器更过时,则不应将其包含在程序集中。还有不使用元数据的 raid,并且可以让您访问您的数据--builddmsetup然而,这并不意味着它是安全的——你在上面写字,如果你选择的设置错误,你就会丢失数据。

一般来说,数据恢复是一个广泛的领域。您需要经验才能决定正确的行动方案。如果可能的话,避免这个问题;进行备份、记录您的设置并监控磁盘,这样您的 RAID 就不会首先失效。

相关内容