如何从 mdadm RAID1 中删除已删除的设备?

Kab*_*uto 6 raid mdadm raid1

我不得不更换我的 RAID1 中的两个硬盘。添加两个新分区后,旧分区仍然显示为已删除,而新分区仅作为备用添加。我没有成功删除标记为removed的分区。

这是有问题的RAID。请注意状态已删除的两个设备(0 和 1)。

$ mdadm --detail /dev/md1

mdadm: metadata format 00.90 unknown, ignored.
mdadm: metadata format 00.90 unknown, ignored.
/dev/md1:
        Version : 00.90
  Creation Time : Thu May 20 12:32:25 2010
     Raid Level : raid1
     Array Size : 1454645504 (1387.26 GiB 1489.56 GB)
  Used Dev Size : 1454645504 (1387.26 GiB 1489.56 GB)
   Raid Devices : 3
  Total Devices : 3
Preferred Minor : 1
    Persistence : Superblock is persistent

    Update Time : Tue Nov 12 21:30:39 2013
          State : clean, degraded
 Active Devices : 1
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 2

           UUID : 10d7d9be:a8a50b8e:788182fa:2238f1e4
         Events : 0.8717546

    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       0        0        1      removed
       2       8       34        2      active sync   /dev/sdc2

       3       8       18        -      spare   /dev/sdb2
       4       8        2        -      spare   /dev/sda2
Run Code Online (Sandbox Code Playgroud)

如何摆脱这些设备并将新分区添加为活动 RAID 设备?

更新 1

我似乎已经摆脱了他们。我的 RAID 正在重新同步,但两个驱动器仍标记为备用驱动器,编号为 3 和 4,这看起来不对。我将不得不等待重新同步完成。

我所做的只是通过编辑我的 mdadm.conf 并重新启动来修复元数据错误。我之前尝试过重新启动,但这次无论出于何种原因都有效。

Number   Major   Minor   RaidDevice State
   3       8        2        0      spare rebuilding   /dev/sda2
   4       8       18        1      spare rebuilding   /dev/sdb2
   2       8       34        2      active sync   /dev/sdc2
Run Code Online (Sandbox Code Playgroud)

更新 2

重新同步后问题和之前完全一样。两个新分区被列为备用分区,而标记为已删除的旧分区仍然存在。

停止并重新创建阵列是我唯一的选择吗?

更新 3*

# cat /proc/mdstat 
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] [linear] [multipath] 
md1 : active raid1 sdb2[3](S) sdc2[0] sda2[4](S)
      1454645504 blocks [3/1] [U__]

md0 : active raid1 sdc1[0] sdb1[2] sda1[1]
      10488384 blocks [3/3] [UUU]

unused devices: <none>
Run Code Online (Sandbox Code Playgroud)

Jam*_*mes 6

在您的具体情况下:

mdadm --grow /dev/md1 --raid-devices=3

对于其他所有人,设置--raid-devices为当前阵列中有多少功能设备。


小智 0

我认为这应该可以完成这项工作:

mdadm /dev/md1 -r detached
Run Code Online (Sandbox Code Playgroud)