首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mdraid系统是如何工作的?

mdraid系统是如何工作的?
EN

Unix & Linux用户
提问于 2013-02-22 13:02:58
回答 2查看 2.8K关注 0票数 5

我有两个镜像驱动器(linux /mdadm);一个驱动器在过去以某种方式离开了镜像,现在它的内容已经有几天了。此时,我正在使用退化镜像(缺少一个驱动器),并考虑:

  • dd克隆最新的驱动器到第二个驱动器
  • 添加第二个驱动器和resync,但我不知道resync进程是如何工作的,哪些数据将被覆盖(镜像上有LVM卷)

我认为dd是安全的方式,无论如何,我感兴趣的是如何重新编年工作。

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 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:“一个驱动器离开了镜子”是不应该接受的东西。有圆木,弄清楚它为什么会离开镜子。即使是半个最近的内核,坏块也不会再丢弃驱动器了,所以不应该出现随机的驱动器掉落。检查智能状态等。

票数 11
EN

Unix & Linux用户

发布于 2013-02-22 13:09:56

如果您已经将RAID-1配置为使用位图(参见手册页),那么--re-add的速度要快得多,因为只有在断开连接后写入的区域才需要写入。

无论如何(即使没有位图,完全同步),与dd相比,您可以更容易地通过/sys/block/md0/md/ sync _ more _*配置同步速度。

与dd的同步将要求您在这段时间内使活动磁盘只读。所以你真的应该让md司机来做这份工作。如果您还没有完成:添加一个位图。

票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/65741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档