您的数据的相同副本存储在每个磁盘上(前提是阵列不是“脏的”——例如,如果在写入磁盘 0 之后但在写入磁盘 1 之前断电)。但是,元数据是不同的;它允许 mdadm & md 区分两个磁盘。
可以换线吗?
您可以交换两个磁盘上的电缆。当您(或您的发行版的启动脚本)mdadm --assemble
在阵列上执行操作时,mdadm 会查看每个磁盘上的元数据,并从中找出哪个是磁盘 1,哪个是磁盘 2。
这实际上非常灵活——例如,您可以移除其中一个磁盘,将其放入 USB-SATA 机箱,然后将其连接到 USB 端口,mdraid 仍然会非常满意。
我可以使用 恢复降级的阵列dd
吗?
不。如果你这样做,你将有两个磁盘 1 或两个磁盘 2,并且 mdadm 会感到困惑(而且,我没有测试过这个,但我认为它会拒绝组装阵列)。
一般而言,所有阵列管理都已完成,mdadm
而且绕过 mdraid 很少是一个好主意。要恢复阵列,请向其中添加新磁盘/分区。像这样,假设sdb1
是替换磁盘上的分区:
mdadm --add /dev/md0 /dev/sdb1
Run Code Online (Sandbox Code Playgroud)
然后 mdraid 将复制数据,您可以通过cat /proc/mdstat
. 在重新同步期间,您可以自由地继续使用该阵列。无需从 Live CD 或类似设备启动(您应该能够从降级阵列启动)。事实上,如果你的机器中有热插拔托盘,你可以像这样替换一个失败的 sdb:
mdadm -r /dev/md0 /dev/sdb1
mdadm -a /dev/md0 /dev/sdb1
这不需要任何停机时间。
另请注意,如果您从镜像引导,则需要确保引导加载程序(例如 grub)已安装到两个磁盘上。如何做到这一点取决于您的发行版。
还要别的吗?
是的。mdadm --create
不是恢复步骤。它用于创建一个新的空白数组,下一步通常是pvcreate
或mkfs
。已经存在的数组开始使用mdadm --assemble
. (这似乎是一个很常见的错误,并且有可能破坏数据。)
结语
你或许应该有点熟悉mdraid文件(你正在使用你的数据的信任,毕竟)。特别是,通读mdadm
手册页、发行版发布的任何 RAID 文档以及 Documentation/md.txt(来自内核源代码,对应于您的内核版本)。这些可能不是最容易理解的文档,但它们通常都是最新的。
还有一个Linux Raid wiki,但请注意,并非所有内容都是最新的。
还有其他页面,但要特别小心提及mkraid
或/etc/raidtab
作为历史记录以外的任何内容,因为这些工具已经过时了十年。
归档时间: |
|
查看次数: |
1070 次 |
最近记录: |