将软件 RAID 5 迁移到新服务器时出现问题(Linux)

将软件 RAID 5 迁移到新服务器时出现问题(Linux)

我有一个 CentOS 设置,其中有 sw RAID5 来保存我的数据。服务器坏了,所以我买了另一个盒子来迁移我的驱动器。唯一的问题是,我无法重建 RAID 阵列(甚至不确定它是否需要重建,可能只需要创建 /dev/md0 映射……但我甚至不知道如何确定我需要什么!)

一些细节:

  • RAID5 软件(使用 mdadm)
  • 4x 250GB 驱动器(2 个为 SATA,2 个为 EIDE - 这有关系吗?它在另一个盒子里运行良好...)
  • 最新的 CentOS 发行版
  • 使用 mdadm 构建

我对标准 Linux 的东西有相当多的经验,但硬件层面的东西让我很困惑。我花了一些时间在 SF 上谷歌搜索和其他地方,所以请对我的新手问题多多包涵 :)。

我的问题是:我该如何诊断问题?据我所知,当我尝试重建阵列时,我使用了错误的设备块,但我找不到仅显示具有某些物理连接的设备的命令。

是否有一些简单的方法可以让我运行 mdadm,让它扫描我所有的物理驱动器,然后说“嘿,驱动器 2、5、6、7 是一个软件阵列,要我安装它吗?”

我基本上只是从旧盒子中取出驱动器并将其放入新盒子中。它们显示在 BIOS 中。我需要采取哪些步骤才能启动、运行和安装阵列?

提前致谢!

答案1

如果您没有数据备份,则应谨慎行事。这些都不是特别困难,但如果它是数据的单一副本,那么缓慢而慎重地行动肯定是值得的。如果你做错了事,你的数据很容易就会被丢弃。

理论上,该mdadm --assemble --scan --auto-update-homehost命令会执行您想要的操作。它会盲目地尝试自动组装和更新任何检测到的阵列。如果您有阵列的备份并且不介意冒险,您可以尝试一下。

如果您想“手动”执行操作,则首先需要找到存储阵列的所有设备。您可以查看的输出以dmesg查找设备。查找类似 的条目hdg: 488397168 sectors (250059 MB) ...。您应该能够识别连接到系统的所有设备。

使用该fdisk -l命令显示磁盘上的分区。以下是一些示例输出:

[root@srv02 ~]# fdisk -l

...

Disk /dev/hdg: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hdg1               1       30401    24961765   fd  Linux raid autodetect

...

我剪辑了输出以显示单个示例设备(一个 250GB 磁盘,上面有一个 Linux 软件 RAID 分区)。您应该看到列出了几个设备的分区表。

您可以使用以下命令检查分区上的超级块mdadm --examine device,例如:

[root@srv02 ~]# mdadm --examine /dev/hdg1
/dev/hdg1:
          Magic : a92b4efc
        Version : 00.90.00
           UUID : 3c8b281e:715ce6bb:39297707:3bc149b6
  Creation Time : Mon Dec 17 17:28:35 2005
     Raid Level : raid5
  Used Dev Size : 243593472 (232.31 GiB 249.44 GB)
     Array Size : 1217967360 (1161.54 GiB 1247.20 GB)
   Raid Devices : 6
  Total Devices : 6
Preferred Minor : 1

    Update Time : Mon Mar 22 20:45:56 2010
          State : clean
 Active Devices : 6
Working Devices : 6
 Failed Devices : 0
  Spare Devices : 0
       Checksum : 6d966f24 - correct
         Events : 0.10988

         Layout : left-symmetric
     Chunk Size : 256K

      Number   Major   Minor   RaidDevice State
this     1      34        3        1      active sync   /dev/hdg1

   0     0      33        3        0      active sync   /dev/hde1
   1     1      34        3        1      active sync   /dev/hdg1
   2     2      56        3        2      active sync   /dev/hdi1
   3     3      57        3        3      active sync   /dev/hdk1
   4     4      88        3        4      active sync   /dev/hdm1
   5     5      89        3        5      active sync   /dev/hdo1

您可以看到阵列的所有组件卷的设备都已写入超级块。您的新安装可能没有将相同的设备分配给卷,因此阵列无法自动组装。

按照上述步骤检查您预期成为 RAID 集一部分的所有分区。给定阵列的所有组件卷将具有相同的 UUID。找到所有部分后,使用命令重新组装阵列,将mdadm --assemble新设备写回到超级块,如下所示(/dev/mdX用您希望组装阵列的 MD 设备替换,用阵列的成员卷替换 /dev/partition0 等):

mdadm --assemble --update=homehost /dev/mdX /dev/partition0 /dev/partition1 ... /dev/partition6

这将重新组装阵列并使用新的主机名和设备更新超级块。完成此操作后,您可以cat /proc/mdstat查看阵列的状况。最后,您可以mdadm --detail --scan >> /etc/mdadm.conf将阵列的详细信息写入 /etc/mdadm.conf 文件。

相关内容