mdadm:驱动器更换显示为备用,并拒绝同步

序幕

我的/dev/md0 RAID 6中有以下设备: /dev/sd[abcdef]

以下驱动器也存在,与RAID无关: /dev/sd[gh]

以下驱动器是已连接的读卡器的一部分,与以下版本无关: /dev/sd[ijkl]

分析

sdf的SATA电缆坏了(你可以说它在使用时被拔掉),然后sdf被从/dev/md0arrays中拒绝。 我更换了电缆,驱动器回到了/dev/sdm 。 请不要质疑我的诊断,驱动器没有问题。

mdadm --detail /dev/md0显示sdf(F) ,即sdf是错误的。 所以我用mdadm --manage /dev/md0 --remove faulty – 删除有问题的驱动器。

现在mdadm --detail /dev/md0sdf曾经是的空间中显示“已删除”。

 root @ galaxy:〜#mdadm --detail / dev / md0
的/ dev / md0的:
        版本:1.2
  资料来源:星期三七月30 13:17:25 2014
     团队副本:raid6
     arrays大小:15627548672(14903.59 GiB 16002.61 GB)
  使用的开发尺寸:3906887168(3725.90 GiB 4000.65 GB)
    Raid设备:6
  设备总数:5
    持久性:超级块是持久的

  意图位图:内部

    更新时间:2015年3月17日21:16:14
          状态:活跃,退化
 有源器件:5
工作设备:5
 失败的设备:0
  备用设备:0

         布局:左对称
     块大小:512K

           名称:eclipse:0
            UUID:cc7dac66:f6ac1117:ca75576​​9:0e59d5c5
         活动:67205

    数量主要次要RaidDevice状态
        0 8 0 0主动同步/ dev / sda
        1 8 32 1活动同步/ dev / sdc
        4 0 0 4删除
        3 8 48 3主动同步/ dev / sdd
        4 8 64 4活动同步/ dev / sde
        5 8 16 5活动同步/ dev / sdb

出于某种原因,“已删除”设备的RaidDevice现在匹配一个活动的设备。 无论如何,让我们尝试添加以前的设备(现在称为/dev/sdm ),因为这是原来的意图:

 root @ galaxy:〜#mdadm --add / dev / md0 / dev / sdm
 mdadm:添加了/ dev / sdm
 root @ galaxy:〜#mdadm --detail / dev / md0
的/ dev / md0的:
        版本:1.2
  资料来源:星期三七月30 13:17:25 2014
     团队副本:raid6
     arrays大小:15627548672(14903.59 GiB 16002.61 GB)
  使用的开发尺寸:3906887168(3725.90 GiB 4000.65 GB)
    Raid设备:6
  设备总数:6
    持久性:超级块是持久的

  意图位图:内部

    更新时间:2015年3月17日21:19:30
          状态:活跃,退化
 有源器件:5
工作设备:6
 失败的设备:0
  备用设备:1

         布局:左对称
     块大小:512K

           名称:eclipse:0
            UUID:cc7dac66:f6ac1117:ca75576​​9:0e59d5c5
         活动:67623

    数量主要次要RaidDevice状态
        0 8 0 0主动同步/ dev / sda
        1 8 32 1活动同步/ dev / sdc
        4 0 0 4删除
        3 8 48 3主动同步/ dev / sdd
        4 8 64 4活动同步/ dev / sde
        5 8 16 5活动同步/ dev / sdb

        6 8 192  -  spare / dev / sdm

正如你所看到的,设备显示为备用,并拒绝与其余的数组同步:

 root @ galaxy:〜#cat / proc / mdstat
个性:[raid6] [raid5] [raid4]
 md0:active raid6 sdm [6](S)sdb [5] sda [0] sde [4] sdd [3] sdc [1]
       15627548672块超级1.2级6,512k块,algorithm2 [6/5] [UU_UUU]
      位图:17/30页[68KB],65536KB大块

未使用的设备: 

在添加之前,我也尝试使用mdadm --zero-superblock /dev/sdm ,结果相同。

我使用RAID 6的原因是提供高可用性。 我不会接受停止/dev/md0并用--assume-clean或类似的解决方法重新组装它来解决这个问题。 这需要在网上解决,否则我没有看到使用mdadm的要点。

经过几个小时的谷歌search以及来自JyZyXEL的#linux-raid Freenode频道的一些非常明智的帮助,我们有一个解决scheme! 在这个过程中,RAIDarrays没有一个中断 – 正是我需要和mdadm的预期。

对于一些(目前未知的)原因,RAID状态被冻结。 获得这个命令是cat /sys/block/md0/md/sync_action

 root @ galaxy:〜#cat / sys / block / md0 / md / sync_action
冻结的

简而言之,这就是为什么它没有使用可用的备件。 我所有的头发都是以一个简单的猫命令为代价的!

所以,只需解冻数组:

 root @ galaxy:〜#echo idle> / sys / block / md0 / md / sync_action

你走了!

 root @ galaxy:〜#cat / sys / block / md0 / md / sync_action
恢复
 root @ galaxy:〜#cat / proc / mdstat
个性:[raid6] [raid5] [raid4]
 md0:active raid6 sdm [6] sdb [5] sda [0] sde [4] sdd [3] sdc [1]
       15627548672块超级1.2级6,512k块,algorithm2 [6/5] [UU_UUU]
       [> ....................]恢复= 0.0%(129664/3906887168)完成= 4016.8分钟速度= 16208K /秒
      位图:17/30页[68KB],65536KB大块

未使用的设备: 
 root @ galaxy:〜#mdadm --detail / dev / md0
的/ dev / md0的:
        版本:1.2
  资料来源:星期三七月30 13:17:25 2014
     团队副本:raid6
     arrays大小:15627548672(14903.59 GiB 16002.61 GB)
  使用的开发尺寸:3906887168(3725.90 GiB 4000.65 GB)
    Raid设备:6
  设备总数:6
    持久性:超级块是持久的

  意图位图:内部

    更新时间:2015年3月17日22:05:30
          状态:活跃,退化,恢复
 有源器件:5
工作设备:6
 失败的设备:0
  备用设备:1

         布局:左对称
     块大小:512K

 重build状态:完成0%

           名称:eclipse:0
            UUID:cc7dac66:f6ac1117:ca75576​​9:0e59d5c5
         活动:73562

    数量主要次要RaidDevice状态
        0 8 0 0主动同步/ dev / sda
        1 8 32 1活动同步/ dev / sdc
        6 8 192 2备用重build/ dev / sdm
        3 8 48 3主动同步/ dev / sdd
        4 8 64 4活动同步/ dev / sde
        5 8 16 5活动同步/ dev / sdb

幸福:-)