检测 RAID 10 阵列中的故障驱动器

检测 RAID 10 阵列中的故障驱动器

有人告诉我,我只能使用 KVM 验证我的 HW RAID 阵列是否正常工作。但是,我希望服务器出现问题时自动通知我。

有没有一种方法可以通过 SSH(将通过 php 中的 system() 调用)来检测驱动器是否有问题?我不需要识别哪个驱动器。

我想到了一个理论,但我不知道它在实践中是否可行。如果我运行一个 PHP 脚本来 fopen('/dev/[filesystem]', 'r') 并搜索每个 xGB 中的 1 个字节,并且它搜索有问题的文件系统的位置,它应该会返回一个错误。我这样想对吗?

我使用 XFS 文件系统,我听说过 xfs_check,但它说它需要在只读模式下运行,这很不方便。

我使用 3ware RAID 控制器。

答案1

tw_cli在您的机器上安装 3Ware 工具 ( )。

安装它们之后,获取控制器的 ID 号(我从来不明白其背后的系统,据我所知它可能是随机的):

$ tw_cli show

Ctl   Model        (V)Ports  Drives   Units   NotOpt  RRate   VRate  BBU
------------------------------------------------------------------------
c0    9550SXU-4LP  4         2        1       0       1       1      -

然后您可以使用以下方式查询阵列状态

$ tw_cli /c0 show

Unit  UnitType  Status         %RCmpl  %V/I/M  Stripe  Size(GB)  Cache  AVrfy
------------------------------------------------------------------------------
u0    RAID-1    OK             -       -       -       74.4951   ON     OFF

Port   Status           Unit   Size        Blocks        Serial
---------------------------------------------------------------
p0     NOT-PRESENT      -      -           -             -
p1     NOT-PRESENT      -      -           -             -
p2     OK               u0     74.53 GB    156301488     9QZ07NP2
p3     OK               u0     74.53 GB    156301488     9QZ08DS2

显然,这在你的机器上看起来会有所不同。这些示例摘自这里

要主动验证(清理)您的驱动器,请使用

$ tw_cli /c0/u0 start verify

对于自动通知,您应该设置一个监控系统,例如 Nagios 或 Icinga,并使用一个插件在 的帮助下检查阵列的健康状况tw_cli。这些插件在没有 Nagios/Icinga 的情况下也能很好地工作,并且可以很容易地以 cron 作业的形式用于最小监控系统中,当插件没有返回时,它会发送邮件0

相关内容