4

就像在主要问题中一样,有没有办法做到这一点?(除了引起高 io 负载)也许内核深处的一些设施可以控制这个?

我正在寻找编写一个小脚本来识别我的软件 RAID 阵列中的故障驱动器。(以某种重复模式闪烁活动灯等)

我在这里阅读了所有好主意:https ://serverfault.com/questions/64239/physically-identify-the-failed-hard-drive不幸的是,我没有标记我的任何驱动器,它们都被夹在了一起,所以看序列号就出来了。

4

2 回答 2

4

活动灯通常硬连线到主板的磁盘控制器。没有直接控制它们的操作系统工具。

但是,如果您知道哪个驱动器在软件中有问题,并且它没有安装(只是为了安全起见),您可能会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.

不过,在插入新驱动器之前,您需要想办法杀死脚本。否则你的性能会很差,并且可能会导致其他问题。

于 2010-10-25T19:44:06.080 回答
1

你可以在你的程序中调用他的

坏驱动器(检查驱动器状态)

并将其限制为 10 个周期。

这样你就可以运行 flashbaddrive,它反过来会检查驱动器状态并将其传递给 baddrive 以将故障驱动器闪存 10 秒左右并切断。

我想您必须查看 mdadm 才能以编程方式查看界面是什么样的,但它可以从命令行完成。

在硬盘盒上,它们通常使用 sata/scsi/ide 接口或控制器卡上的插头。

你知道光的来源吗?您可以搜索型号信息,直接打开和关闭查询有问题的磁盘。如果驱动器经常发生故障,您仍然可以将其从电路板上拉下来。

另一种策略是按顺序访问磁盘 /dev/sda、sdb、sdc、sde、sdf 等……然后您可以查看灯是否亮起,或者是否不亮。完全死机的驱动器可能会杀死灯,具体取决于控制器设置为访问它的方式。

于 2013-04-15T01:58:43.257 回答