将软件 RAID 5 迁移到新服务器 (linux) 的问题

Tra*_*leu 3 hardware centos software-raid

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

一些细节:

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

我对标准 linux 的东西有相当多的经验,但是硬件级别的东西让我绕圈子。我已经花了一些时间在 SF 上的谷歌搜索和其他地方,所以请对我的新手问题友好:)。

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

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

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

提前致谢!

Eva*_*son 5

如果您没有数据备份,那么您应该谨慎行事。这一切都不是特别困难,但如果它是您的数据的单一副本,那么缓慢地移动和深思熟虑肯定是值得的。如果您做错了事,您可以轻松地丢弃数据。

从理论上讲,该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

...
Run Code Online (Sandbox Code Playgroud)

我剪辑了输出以显示单个示例设备(一个 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
Run Code Online (Sandbox Code Playgroud)

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

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

mdadm --assemble --update=homehost /dev/mdX /dev/partition0 /dev/partition1 ... /dev/partition6
Run Code Online (Sandbox Code Playgroud)

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