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

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

序幕

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

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

以下驱动器是所连接的读卡器的一部分,但同样不相关:/dev/sd[ijkl]

分析

sdf的 SATA 电缆坏了(您可以说在使用过程中拔掉了电缆),sdf随后被阵列拒绝/dev/md0。我更换了电缆,驱动器恢复了,现在为/dev/sdm。请不要质疑我的诊断,驱动器没有问题。

mdadm --detail /dev/md0显示sdf(F),即sdf有故障。所以我过去常常mdadm --manage /dev/md0 --remove faulty移除故障驱动器。

现在在原来的mdadm --detail /dev/md0空间中显示“已删除” 。sdf

root@galaxy:~# mdadm --detail /dev/md0
/dev/md0:
        版本:1.2
  创建时间:2014 年 7 月 30 日星期三 13:17:25
     突袭级别:raid6
     数组大小:15627548672(14903.59 GiB 16002.61 GB)
  已使用设备大小:3906887168 (3725.90 GiB 4000.65 GB)
   突袭设备:6
  设备总数:5
    持久性:超级块是持久的

  意图位图:内部

    更新时间:星期二3月17日21:16:14 2015
          状态:活跃,降级
 活跃设备: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
  创建时间:2014 年 7 月 30 日星期三 13:17:25
     突袭级别:raid6
     数组大小:15627548672(14903.59 GiB 16002.61 GB)
  已使用设备大小:3906887168 (3725.90 GiB 4000.65 GB)
   突袭设备: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 - 备用 /dev/sdm

如您所见,该设备显示为备用设备并拒绝与阵列的其余部分同步:

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

未使用的设备:

我也尝试过mdadm --zero-superblock /dev/sdm在添加之前使用,结果是一样的。

我使用 RAID 6 的原因是为了提供高可用性。我不会接受停止/dev/md0并重新组装--assume-clean或类似方法作为解决这个问题的变通方法。这需要在线解决,否则我看不出使用 mdadm 的意义。

答案1

经过几个小时的 Google 搜索以及 #linux-raid Freenode 频道中 JyZyXEL 的极度帮助,我们找到了解决方案!在此过程中,RAID 阵列没有出现任何中断 - 这正是我需要的,也是我对 mdadm 的期望。

由于某些(目前未知)原因,RAID 状态冻结。解决此问题的最佳命令是cat /sys/block/md0/md/sync_action

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

简单来说,这就是它不使用可用备用件的原因。只需一个简单的 cat 命令,我的头发就全都消失了!

因此,只需解冻数组:

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 :活动 raid6 sdm[6] sdb[5] sda[0] sde[4] sdd[3] sdc[1]
      15627548672 块超级 1.2 级别 6, 512k 区块, 算法 2 [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
  创建时间:2014 年 7 月 30 日星期三 13:17:25
     突袭级别:raid6
     数组大小:15627548672(14903.59 GiB 16002.61 GB)
  已使用设备大小:3906887168 (3725.90 GiB 4000.65 GB)
   突袭设备:6
  设备总数:6
    持久性:超级块是持久的

  意图位图:内部

    更新时间:2015 年 3 月 17 日星期二 22:05:30
          状态:活跃、降级、恢复
 活跃设备:5
工作装置 : 6
 故障设备:0
  备用设备:1

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

 重建状态:完成 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 备用重建 /dev/sdm
       3 8 48 3 活动同步 /dev/sdd
       4 8 64 4 活动同步 /dev/sde
       5 8 16 5 活动同步 /dev/sdb

幸福 :-)

相关内容