当硬盘驱动器出现故障时,我可以防止Linux服务器locking/喷出控制台错误吗?

我有一个Linux服务器(CentOS 5.5),有两个相同的IDE硬盘驱动器。 我已经使用软件RAID(mdadm)为每个文件系统创build镜像,这样任何一个硬盘都可能会失败,并且不会丢失任何数据。

今天我的一个硬盘失败了。 RAID的全部重点应该是让系统在这种情况下继续运行; 但是发生了什么事却是控制台开始一遍又一遍地喷出同样的四行:

hdb: task_out_intr: status=0x61 { DriveReady DeviceFault Error } hdb: task_out_intr: error=0x04 { DriveStatusError } ide: failed opcode was: unknown ide0: reset: success 

由于出错率很高,控制台无法使用。 我能够进入SSH,但我试过的第一个命令只是挂了。 我再次尝试SSH,并试图重新启动,但也挂断了。 最终,我不得不身体重置机器。

我知道如何从MD中删除发生故障的驱动器,并将其replace,等等。但是,在这种情况下,机器locking并变得无法使用似乎打破了把RAID镜像放在首位的所有问题。

这只是Linux内核在这种情况下的行为方式吗? 还是有一些方法来configuration内核,以便当硬盘驱动器出现故障时,它会限制正在生成的错误,并且不会妨碍机器的使用和干净地重新启动?

我没有遇到过这个问题,但是因为你使用的是软件RAID,所以硬盘故障可能会干扰磁盘控制器上的I / O,所以你会遇到其他故障,比如locking命令。

数据应该是完整的(除非它被损坏,在这种情况下,你有重复的腐败)。 如果驱动器本身发生故障,您应该能够closures电源,取出坏的驱动器,重新启动电源,并希望事情将恢复在线与一个破镜子集。

听起来像失败的本质是不适合与控制器。 取出坏的驱动器。 把它放在那里并没有什么好处,并且可能造成更多的伤害。

当一个IDE磁盘遇到读取错误时,大部分时间都会拒绝回应读取命令。

您的错误消息(显示hdb )暗示两个硬盘驱动器位于同一根电缆上。 这可能是你的问题的原因:失败的磁盘阻塞了整个IDE总线 – Linux内核只是等待超时,因此没有机会访问工作磁盘。