就像主要问题一样,有没有办法做到这一点? (除了引入高io负载之外)也许内核中有一些设施可以控制它?
我正在寻找一个小脚本来识别我的软件raid阵列中的故障驱动器。 (以某种重复模式闪烁活动灯等)
我在这里阅读了所有好主意:https://serverfault.com/questions/64239/physically-identify-the-failed-hard-drive遗憾的是我没有标记任何驱动器,而且它们都夹在一起,所以查看序列号已经出来了。
答案 0 :(得分:3)
活动指示灯通常硬连线到主板的磁盘控制器。没有用于直接控制它们的操作系统。
但是,如果你知道哪个驱动器在软件中存在问题,并且没有安装(只是为了安全),你可能会dd
或者从它(我希望不是整个驱动器都不好?眨眼灯。例如:
#!/bin/bash
badDrive=$1
while true ; do
dd -if "$badDrive" -of "/dev/null" -bs 512 -count 204800 conv=noerror >/dev/null 2>&1
sleep 2
done
这将从驱动器读取100MiB忽略读取错误,睡眠两秒钟,然后再次执行。传递硬盘设备路径,如/dev/sda
。
但是,在插入新驱动器之前,您需要找到一种方法来终止脚本。否则你的表现会非常差,可能会引起其他问题。
答案 1 :(得分:1)
你可以在你的程序中调用他的
baddrive(Checkdrivestatus)
并将其限制为10个周期。
这样你可以运行flashbaddrive,它反过来会checkdrivestatus并将它传递给baddrive以闪存故障驱动器10秒左右并切断。
我想你必须看一下mdadm来看看界面是什么样的,但它可以从命令行中做到这一点。
在硬盘盒上,它们通常会从sata / scsi / ide接口运行,或者从控制器卡上的插头上运行。
你知道光源来自哪里吗?您可以搜索模型信息,直接查询和查询有问题的磁盘。如果驱动器经常发生故障,您仍然可以将其从电路板上拉下来。
另一个策略是顺序访问磁盘/ dev / sda,sdb,sdc,sde,sdf等... 你可以看到光线是否粘住,或者它是否不亮。 根据控制器设置如何访问它,一个完全无法驱动可能会杀死光线。