我有两个镜像驱动器(linux /mdadm);一个驱动器在过去以某种方式离开了镜像,现在它的内容已经有几天了。此时,我正在使用退化镜像(缺少一个驱动器),并考虑:
dd克隆最新的驱动器到第二个驱动器我认为dd是安全的方式,无论如何,我感兴趣的是如何重新编年工作。
发布于 2013-02-22 13:55:30
正确的做法是做一些类似mdadm --add /dev/md0 /dev/sdb1的事情。使用正确的数组代替md0,使用正确的分区代替sdb1。
关键是数组正在运行。它完全清楚地复制哪些数据:当前正在运行的数据。如果已启用位图,则重新同步将相当快,因为它只会复制已更改的内容。否则,它会复制所有的东西。
如果您非常偏执--或者担心您的磁盘系统可能丢失了写操作,并且位图可能不正确--并且不介意强制复制一个完整的副本,您可以使用mdadm --zero-superblock /dev/sdb1擦除要添加的磁盘上的超级块(再次使用正确的分区)。
如果数组当前没有运行(例如,如果这是由于不干净的关闭而在汇编上进行的重建),那么使用存储在超级块中的update计数字段来决定要复制什么。它可能会拒绝重新添加更新计数过高的磁盘(迫使超级块为零),但它不会覆盖活动数据。
如果您要使用dd方法,那么:(a)您将复制超级块,并最终得到两个磁盘1s (超级块存储磁盘在数组中的位置);(b)除非在复制期间停止数组(或可能以只读模式),否则将有一个不一致的副本。(然后,要修复a和b,您需要擦除超级块并让mdraid复制数据,如上面所示)。
简而言之,当您决定使用mdraid (或任何其他RAID)时,您会对其进行冗余管理。你几乎从不想绕道而去。与LVM一样:如果您想移动数据,可以使用pvmove等,而不使用dd。
PS:“一个驱动器离开了镜子”是不应该接受的东西。有圆木,弄清楚它为什么会离开镜子。即使是半个最近的内核,坏块也不会再丢弃驱动器了,所以不应该出现随机的驱动器掉落。检查智能状态等。
发布于 2013-02-22 13:09:56
如果您已经将RAID-1配置为使用位图(参见手册页),那么--re-add的速度要快得多,因为只有在断开连接后写入的区域才需要写入。
无论如何(即使没有位图,完全同步),与dd相比,您可以更容易地通过/sys/block/md0/md/ sync _ more _*配置同步速度。
与dd的同步将要求您在这段时间内使活动磁盘只读。所以你真的应该让md司机来做这份工作。如果您还没有完成:添加一个位图。
https://unix.stackexchange.com/questions/65741
复制相似问题