RAID1:将镜像哪个磁盘?

tme*_*len 7 raid mdadm raid1

RAID1 系统在镜像时如何确定将哪个磁盘用作源以及将哪个磁盘用作目标?

例如,假设以下场景:使用两个磁盘 A 和 B 创建一个 RAID1 阵列。 A 被磁盘 C 替换,并添加到该阵列中。随着时间的推移,文件正在被修改。现在 B 被移除,A 被重新插入。

RAID1系统会不会意识到A和C不同步?那个 C 比 A 更新?如果没有,是否有一种安全的方法可以避免在插入磁盘 A 时立即启动镜像过程?

编辑:我应该澄清一下,在我的场景中,我假设 A 在删除时没有失败,因此,据我所知,当 RAID1 系统必须决定在它们之间进行镜像时,A 和 C 都不“脏” . (我假设没有位图,但我知道这可能是相关的。)

Nil*_*ils 2

您正在谈论使用的软件镜像mdadm。你没有写是否使用位图。我假设您确实使用位图(在其他情况下,每当磁盘丢失/重新连接/其他情况时,完整的重新镜像将从第一个块开始)。

在位图的情况下,这些位图将存储在每个磁盘上 - 或者作为镜像磁盘本身的内部位图,或者存储在外部位图上(如果您指定了) - 同样,这是每个磁盘。

现在这也是您问题的答案:一开始,所有位都被标记为“脏” - 即需要重新同步。每个位代表物理磁盘上的一个块。因此这些位图的状态很重要。

您可以使用 来查看这些位图的状态cat /proc/mdstat

请注意,如果创建镜像,则创建位图不是标准操作。之后您可以使用 更改它mdadm --grow