从 Linux 软件 RAID 阵列中删除处于“已删除”状态的设备

Sah*_*has 4 linux mdadm software-raid

我的工作站有两个磁盘(/dev/sd[ab]),它们的分区相似。/dev/sdb 失败,并cat /proc/mdstat停止显示第二个 sdb 分区。

我跑mdadm --fail,并mdadm --remove从在使用它们的阵列故障磁盘的所有分区,尽管所有这些命令失败,

mdadm: set device faulty failed for /dev/sdb2:  No such device
mdadm: hot remove failed for /dev/sdb2: No such device or address
Run Code Online (Sandbox Code Playgroud)

然后我对故障磁盘进行热交换,对新磁盘进行分区并将分区添加到相应的阵列中。除了一个阵列外,所有阵列都得到了正确重建,因为在 /dev/md2 中,故障磁盘似乎没有从阵列中正确删除。因此,新分区不断作为备用添加到分区中,并且其状态保持降级。

这是mdadm --detail /dev/md2显示的内容:

[root@ldmohanr ~]# mdadm --detail /dev/md2
/dev/md2:
    Version : 1.1
  Creation Time : Tue Dec 27 22:55:14 2011
 Raid Level : raid1
 Array Size : 52427708 (50.00 GiB 53.69 GB)
  Used Dev Size : 52427708 (50.00 GiB 53.69 GB)
   Raid Devices : 2
  Total Devices : 2
Persistence : Superblock is persistent

  Intent Bitmap : Internal

Update Time : Fri Nov 23 14:59:56 2012
      State : active, degraded 
 Active Devices : 1
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 1

       Name : ldmohanr.net:2  (local to host ldmohanr.net)
       UUID : 4483f95d:e485207a:b43c9af2:c37c6df1
     Events : 5912611

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

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

要删除磁盘,mdadm 需要一个设备文件名,它最初是 /dev/sdb2,但不再指设备号 1。我需要帮助以删除状态为 'removed' 的设备号 1 并使 /dev/sdb2 处于活动状态。

小智 5

如果驱动器不再出现在系统中,请执行以下操作:

mdadm /dev/md2 -r detached

或者

mdadm /dev/md2 -r failed

如果成功完成,您应该收到如下消息:

mdadm:从 /dev/md0 热删除 8:50

并且驱动器不再显示在 /proc/mdstat 中。 从手册页:

“第一个导致所有故障设备被删除。第二个导致任何不再连接到系统的设备(即'打开'返回 ENXIO)被删除。这只会对备用或已经连接的设备成功标记为失败。”