Linux软件RAID 10挂1驱动器失败后,mdadm不会让我强行删除有问题的设备

我有一个由5个RAID 1(每个镜像设置有两个驱动器)和一个在所有5个RAID 1对上的RAID 0组成的Linux软件RAID 10设置。 为了testing没有任何驱动器会在负载下快速失败,我使用破坏性读/写模式在RAID 0上使用了坏块。

Badblocks命令:badblocks -b 4096 -c 98304 -p 0 -w -s / dev / md13

其中一个设备失败,而不是badblocks程序愉快地移动它挂起。 如果我运行同步命令,这也挂起。 首先我会假设这不是RAID 1设备的标准行为。 如果其中一个驱动器出现故障,它应该仍然可以写入两个驱动器组成的虚拟设备,而不会出现问题。

所以我继续强制驱动器失败,并尝试删除它。 我可以设置驱动器发生故障,没有任何问题(但IO操作仍然挂起)。 我不能完全从raid中删除设备,说它很忙。 我的假设是,如果我可以完全把它赶出RAID,IO将会继续,但这只是一个假设,我认为我正在处理一个错误的种类。

这里究竟发生了什么? 我是因为bug而无法恢复的吗?

系统正在运行内核2.6.18,所以它不是新的,但我认为,软件RAID已经存在了这么长时间的问题不会发生。

任何有识之士都非常感激。

mdadm –detail / dev / md13

的/ dev / md13:

Version : 00.90.03 Creation Time : Thu Jan 21 14:21:57 2010 Raid Level : raid0 Array Size : 2441919360 (2328.80 GiB 2500.53 GB) Raid Devices : 5 

设备总数:5首选次要:13持久性:超级块持久性

 Update Time : Thu Jan 21 14:21:57 2010 State : clean Active Devices : 5 Working Devices : 5 

失败的设备:0备用设备:0

  Chunk Size : 64K UUID : cfabfaee:06cf0cb2:22929c7b:7b037984 Events : 0.3 Number Major Minor RaidDevice State 0 9 7 0 active sync /dev/md7 1 9 8 1 active sync /dev/md8 2 9 9 2 active sync /dev/md9 3 9 10 3 active sync /dev/md10 4 9 11 4 active sync /dev/md11 

失败的RAID输出:

/ dev / md8:版本:00.90.03创build时间:1月21日星期四14:20:47 2010 Raid级别:raid1arrays大小:488383936(465.76千兆字节500.11 GB)器件大小:488383936(465.76千兆字节500.11 GB)Raid Devices:2
设备总数:2首选轻微:8持久性:超级块持久性

 Update Time : Mon Jan 25 04:52:25 2010 State : active, degraded Active Devices : 1 Working Devices : 1 

失败的设备:1备用设备:0

  UUID : 2865aefa:ab6358d8:8f82caf4:1663e806 Events : 0.11 Number Major Minor RaidDevice State 0 65 17 0 active sync /dev/sdr1 1 8 209 1 faulty /dev/sdn1 

对不起,也许我不明白,一个cat / proc / mdstat可能是有用的,但据我所见,你在自己的脚下摧毁了RAID0等基础RAID1arrays上的数据。 也就是说,如果你必须testingRAID的可靠性,那么你必须标记为一个驱动器,一个磁盘的故障,而不是破坏引用所有底层RAID1磁盘的逻辑块,如果我理解了这个问题(让我知道)。

也许你需要向内核请求删除有问题的驱动器。 它将释放挂起的RAID。

你可以删除它像http://bash.cyberciti.biz/diskadmin/rescan-linux-scsi-bus/脚本