いつの間にかハードウエアRAIDが崩れていた、でもOS側でコントローラの情報が取得できていなかったので知らないままだった、なんてことが無いように。
以前、[ロ] CentOS5 で DELL R300のRAIDカードの状態を取得する mpt-statusでやっていたのでR320でも同じだろうと思っていたらRAIDカード違った。
RAIDカードは「DELL PERC H710」で、dmesgをみると「LSI SAS based MegaRAID driver」とのこと。
megactl-0.4.1-9mdv2011.0.x86_64 RPM
こいつをインストールする。
# wget ftp://fr2.rpmfind.net/linux/Mandriva/devel/cooker/x86_64/media/contrib/release/megactl-0.4.1-9mdv2011.0.x86_64.rpm
# rpm -Uvh megactl-0.4.1-9mdv2011.0.x86_64.rpm
# megasasctl
a0 PERC H710 Mini encl:1 ldrv:2 batt:FAULT, low voltage
a0d0 1TiB RAID 1 1x2 optimal
a0d1 19GiB RAID 1 1x2 optimal
a0e32s0 1TiB a0d0+ online
a0e32s1 1TiB a0d0+ online
こんなシェルスクリプトを書いてcronでまわしてみる。実行結果のonlineという表示が2行になるはずなのでwc -lで行数が2であればおっけー、それ以外はアラートというシンプルな感じで。
#!/bin/sh
ret=`/usr/sbin/megasasctl | grep online | wc -l`
mail=test@example.com
if test ${ret} -eq 2
then
status="[OK]"
else
status="[ALERT]"
(/usr/sbin/megasasctl) | Mail -s "${status}`hostname` RAID status." ${mail}
fi
満足。今のところエラーは発生せず動いていて安心です。
Popular Posts:
- None Found
この記事を書いて頂き、誠にありがとうございました。
とても参考になりました。
スクリプトも使わせていただきます(ハードディスクに異常があれば、メールで通知してくれるものと考えています)。
お役に立てそうで嬉しいです。コメントありがとうございます!
メールで通知してくれるように書きましたが、cronは環境変数が通っていなかったりすると想定と違う動きをしたり、メール来なかったりするのでテストはしっかりした方が良いです。
シェルスクリプト単独でテスト(スクリプトカスタマイズしてコマンドに結果返ってくるようにしてみてテスト)
cronでメールくるかテスト(OK, ALERT反転してOKの時にメール通知させてみる)
理想はRAIDわざと崩してテストまでした方がいいです。私はしました。
怖い時は、OK/ALERTどちらでもメールくるようにしてしばらくは毎回「ふむふむ、今日もOKだな」と確認してしばらくして納得できたらOKの時にはメール送らないようにするってやってます。
と、結構手間はかけています。RAID崩れ気がつかないと本当しんどいんで、RAID崩してリビルドできること確認までして運用に入っています!