Mil*_*vic 4 linux raid hard-drive mdadm software-raid
序幕
我的/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 持久性:超级块是持久性的 意图位图:内部 更新时间:2015 年 3 月 17 日星期二 21:16:14 状态:活动,降级 有源设备:5 工作装置:5 失败的设备:0 备用设备:0 布局:左对称 块大小:512K 名称:日食:0 UUID : cc7dac66:f6ac1117:ca755769:0e59d5c5 活动:67205 Number Major Minor 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 名称:日食:0 UUID : cc7dac66:f6ac1117:ca755769:0e59d5c5 活动:67623 Number Major Minor 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 blocks super 1.2 level 6, 512k chunk, algorithm 2 [6/5] [UU_UUU] 位图:17/30 页 [68KB],65536KB 块 未使用的设备:
mdadm --zero-superblock /dev/sdm
在添加之前我也尝试使用,结果相同。
我使用 RAID 6 的原因是为了提供高可用性。我不会接受停止/dev/md0
并重新组装它--assume-clean
或类似的解决方法来解决这个问题。这个需要在线解决,否则我看不出使用mdadm的意义。
经过数小时的谷歌搜索和来自#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 blocks super 1.2 level 6, 512k chunk, algorithm 2 [6/5] [UU_UUU] [>........] 恢复 = 0.0% (129664/3906887168) 完成=4016.8min 速度=16208K/sec 位图: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% 完成 名称:日食:0 UUID : cc7dac66:f6ac1117:ca755769:0e59d5c5 活动:73562 Number Major Minor 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
幸福:-)