重新安装操作系统后重建 Linux raid1

重新安装操作系统后重建 Linux raid1

我的服务器中有 4 个磁盘。sda 和 sdb 组合成 RAID1 并安装操作系统。sdc 和 sdd 是第二个 RAID1 设备,它有一个卷组和一堆 LVM。sdd 坏了,所以我的数据 RAID 降级了。在更换 sdd 后(但在添加到 RAID 之前),grub 决定失去理智并拒绝启动。最快的修复方法是重新安装操作系统,因为上面没有重要的东西。

我在安装过程中删除了 sdc 和 sdd,以确保它们不会被错误覆盖。安装完成后,我把驱动器放回去,Centos 自动找到了我的卷组。不过 sdc 不再是 RAID 阵列的一部分。

它的分区是 /dev/sdc1 Linux raid 自动检测

我的问题是 - 如何使用 mdadm 重新创建 sdc1、sdd1 RAID 阵列而不丢失 sdc 上已有的数据?

我最好的猜测是先仅使用 sdc1 创建数组,然后添加 sdd1 (因此它从 sdc 重建为 sdd)

编辑 再次查看 /cat/mdstat 的输出后,我发现有些奇怪。我的数据磁盘显示为 RAID 阵列的一部分,但我的一个 OS RAID 阵列丢失了(并且 fstab 试图将我的交换链接到我的数据磁盘)。

fdisk /dev/sda
   设备启动开始结束块ID系统
/dev/sda1 * 1 32 257008+ fd Linux raid 自动检测
/dev/sda2 33 2072 16386300 fd Linux raid 自动检测
/dev/sda3 2073 30401 227552692+ fd Linux raid 自动检测

md1 应该是 /dev/sda2 和 /dev/sdb2,但它缺失

猫/proc/mdstat
人物 : [raid1]
md2 :活动 raid1 sdb1[1] sda1[0]
      256896 块 [2/2] [UU]

md3 :活动 raid1 sdc1[0]
      1465135936 块 [2/1] [U_]

md0 :活动 raid1 sdb3[1] sda3[0]
      227552576 块 [2/2] [UU]

当我尝试创建 md2 时,我得到:

[root@xen2 ~]# mdadm --create /dev/md1 --level=1 --raid-disks=2 /dev/sda2 /dev/sdb2
mdadm:/dev/sda2 似乎是 raid 阵列的一部分:
    级别=raid1 设备=2 ctime=2012 年 8 月 15 日星期三 02:48:06
mdadm:/dev/sdb2 似乎是 raid 阵列的一部分:
    级别=raid1 设备=2 ctime=2012 年 8 月 15 日星期三 02:48:06
是否继续创建数组?n

mdadm 扫描也显示缺少

[root@xen2 ~]# mdadm --detail --scan
数组/dev/md0 级别=raid1 设备数量=2 元数据=0.90 UUID=51ef54bd:770bb58e:90183df1:d82a79c7
数组/dev/md3 级别=raid1 设备数量=2 元数据=0.90 UUID=2d7dfb1e:6b091396:a7558ec2:4d288e6f
数组 /dev/md2 级别=raid1 设备数量=2 元数据=0.90 UUID=ecdd769b:c49d51b6:fe43f166:465b7073

我不确定为什么 /dev/md1 在重启后丢失,但重建它安全吗?

答案1

是的,您需要使用 sdc 驱动器以降级模式启动阵列。然后,您可以重新添加故障驱动器 sdd。

我通常使用带有选项 --assemble 的 mdadm 命令来组装阵列,并以降级模式启动阵列,仅使用一个磁盘。如下所示:

$ mdadm --assemble /dev/md1 /dev/sda2

您可能需要使用-f选项来强制启动降级阵列。

如果一切正常,您可以继续重新添加更换的驱动器。

$ mdadm --re-add /dev/md1 /dev/sdb2

我以前多次使用过这些命令,没有遇到任何数据丢失。当驱动器正常时,它们可以顺利运行。

预防措施:在运行此类命令之前,请备份您的磁盘,以避免任何可能的数据丢失。

相关内容