如何将Linux软件RAID移至新计算机?


20

我有一台新安装的计算机,其中安装了新的Gentoo Linux,另一台计算机则安装了软件RAID 5阵列(将4个IDE磁盘连接到板外PCI控制器)。我已经成功地将控制器移到了新机器上。驱动器被内核检测到;并且我使用了mdadm --examine并验证了单个RAID分区是否被检测到,干净了,甚至按照“正确”的顺序进行了检查(hde1 ==驱动器0,hdg1 ==驱动器1,等等)。

我无权访问的是旧计算机上的原始配置文件。我应该如何重新激活该阵列而不丢失数据?

Answers:


20

您确实有点需要原始mdadm.conf文件。但是,由于没有它,因此必须重新创建它。首先,在进行任何操作之前,请先通过mdadm的手册页进行阅读。为什么会有机会将数据丢失给您没有掌握的情况或命令?

话虽如此,该建议的风险自负。您可以使用错误的命令轻松地丢失所有数据。在运行任何命令之前,请仔细检查命令的分支。对于数据丢失或与您采取的任何措施相关的其他问题,我概不负责。因此,请仔细检查所有内容

您可以尝试以下方法:

mdadm --assemble --scan --verbose /dev/md{number} /dev/{disk1} /dev/{disk2} /dev/{disk3} /dev/{disk4}

这应该为您提供一些信息,以及ID。它还将创建一个新的阵列设备/ dev / md {number},从那里您应该可以找到任何挂载。 请勿使用该--auto选项,手册页上的文字表示在某些情况下可能会覆盖驱动器上的阵列设置。 可能不是这样,为了清晰起见,可能需要重新编写页面,但是为什么要这么做呢?

如果数组正确组装,并且一切都“正常”,请确保将mdadm.conf写入并存储在中/etc,以便在启动时使用它。 将数组中的新ID包含在文件中以帮助进行操作。


+1-马上开始!我在Linux机器之间移动了几个RAID-1和RAID-5集。我不确定的一件事是您在哪里看到有关“ --auto”的信息。在CentOS 5.1机器上的手册页上,我仅看到“ --auto”为该阵列创建了一个/ dev / mdX条目。我没有看到任何可能表明将写入驱动器的信息。(实际上,如果未指定“ --auto”,则在CentoS 5.1的mdadm中默认为“ --auto = yes”。)如果需要将数组移动到另一个数组,则“ --update”可以成为您的朋友。超级块中指定的原始数字中的mdX编号。
埃文·安德森

太好了,我可以成功挂载阵列。唯一挥之不去的问题是,重启后RAID不会出现。我必须重新运行mdadm -Av / dev / md0。知道为什么吗?
romandas,2009年

您是否重新创建了/etc/mdadm.conf文件?系统将在引导时查找此文件以查找阵列。
艾利·佩恩

是的 有所不同的是使用CONFIG_MD_AUTO重新编译了内核。最初我没有,因为我认为mdadm可以代替它。我读过一些地方,内核代码不像使用mdadm自动挂载那样健壮,但是我再也找不到支持它的东西了。
罗马

2

只是想至少为Debian添加我的完整答案。

  • 通过->安装RAID管理器 sudo apt-get install mdadm
  • 通过->扫描旧的RAID磁盘 sudo mdadm --assemble --scan

  • 在这一点上,我想BLKID手动检查并安装RAID进行确认。

    blkid mount /dev/md0 /mnt

  • 通过->将信息附加到mdadm.conf mdadm --detail --scan >> /etc/mdadm/mdadm.conf
  • 通过->更新initramfs update-initramfs -u

  • 故障排除:

确保mdadm --detail --scan匹配的输出与您的/etc/mdadm/mdadm.conf

    nano /etc/mdadm/mdadm.conf

    ARRAY /dev/md/0 level=raid5 num-devices=3 metadata=00.90 UUID=a44a52e4:0211e47f:f15bce44:817d167c
  • FSTAB示例

    /dev/md0    /mnt/mdadm   ext4    defaults,nobootwait,nofail     0    2
    

/unix/23879/using-mdadm-examine-to-write-mdadm-conf/52935#52935

/ubuntu/729370/can-i-transfer-my-mdadm-software-raid-to-a-new-system-in-case-of-hardware-failur

如何将Linux软件RAID移至新计算机?


1
mdadm -Ac partitions -m 0 /dev/md0

扫描/ proc / partitions中列出的所有分区和设备,并使用较小的RAID超级块将所有此类设备中的/ dev / md0汇编为0。

如果conf成功,则可以添加--detail --scan >> /etc/mdadm/mdadm.conf,以便在启动时将其捕获

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.