无需卸载即可从 RAID5 中删除 RAID 设备(缩小 RAID)

无需卸载即可从 RAID5 中删除 RAID 设备(缩小 RAID)

RAID 和 Linux 新手。我将 RAID5 阵列从 3 个设备扩展到 4 个设备。由于其他原因,我不得不失败并移除 4 个驱动器中的一个 - sda1。我现在想将其缩减回 3 个设备,但在尝试这样做时,我收到错误new_offset

# mdadm --grow --raid-devices=3  /dev/md127
mdadm: Cannot set new_offset for /dev/sdb1

一些说明:

  • 该阵列安装在/,所以我想避免卸载它。

  • 数组中有数据,所以我想保留它。

RAID 详细信息:

/dev/md127:
        Version : 1.1
  Creation Time : Mon Oct 22 16:20:37 2012
     Raid Level : raid5
     Array Size : 1953518592 (1863.02 GiB 2000.40 GB)
  Used Dev Size : 976759296 (931.51 GiB 1000.20 GB)
   Raid Devices : 4
  Total Devices : 3
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Tue Nov  8 17:09:28 2016
          State : active, degraded
 Active Devices : 3
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

  Delta Devices : 1, (3->4)

           Name : xxx
           UUID : xxx
         Events : 275192

    Number   Major   Minor   RaidDevice State
       3       8       49        0      active sync   /dev/sdd1
       2       0        0        2      removed
       4       8       33        2      active sync   /dev/sdc1
       6       8       17        3      active sync   /dev/sdb1

我可以失败并/dev/sdb1从阵列中删除吗?我想这可以解决错误消息,但我担心在将阵列扩展到 4 个设备时,其中 2 个发生故障将导致无法修复。如果不能做到这一点,那可以做什么?

更新

解决了令人头痛的问题。rsync将降级阵列的内容编辑到备份驱动器,用新驱动器替换 RAID,然后rsync编辑回去。

答案1

您可以这样做,但您需要在命令行中指定备份文件。对于您的情况,例如

mdadm --grow --raid-devices=3  /dev/md127 --backup-file /root/md127.backup 

应该管用。

如果您有 USB 记忆棒或其他不在阵列中的存储器,请使用它来存储备份文件。

相关内容