最近,我决定扩展使用mdadm raid1卷配置的NAS。由于磁盘槽是有限的,这方面的过程大致是:
mdadm /dev/md0 --add /dev/sda1mdadm /dev/md0 --add /dev/sdb1mdadm /dev/md0 --grow --size=max步骤7是必要的,因为否则md0将保持原来的大小,尽管它现在完全位于较大的磁盘上。
我的问题是,为什么mdadm需要在步骤7之后再进行重新同步?什么数据是同步的,从哪里到哪里?在执行步骤2和步骤5的resyncs中,旧卷上的所有数据都被完全同步,因此步骤7之后唯一新的数据就是替换磁盘的后半部分上的垃圾。
发布于 2020-12-10 21:08:41
即使是RAID 1上的“垃圾”也需要相同。这与创建MD数组后发生的重新同步相同,请参见内核Wiki上的初始数组创建。
初始再同步(以及生长后再同步)的最大原因是进行检查和修复--腿间的差异会在检查期间造成错误。
如果您确信磁盘的内容是相同的(例如,它们是零的),则可以在grow操作中使用--assume-clean。来自mdadm手册:
当数组被调整到更大的大小时--增长--大小=新空间通常被重新生成,就像整个数组在创建时被重新生成一样。在Linux3.0版本中,可以在该命令中使用“假设-干净”,以避免自动重新同步。
https://unix.stackexchange.com/questions/623904
复制相似问题