序幕
/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:ca755769: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:ca755769: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:ca755769: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
幸福 :-)