CentOS6.4でDELL PowerEdge R320のRAIDカードの状態を取得する megasasctl

このエントリーをはてなブックマークに追加
はてなブックマーク - CentOS6.4でDELL PowerEdge R320のRAIDカードの状態を取得する megasasctl
Facebook にシェア
[`yahoo` not found]
[`livedoor` not found]
[`friendfeed` not found]
[`tweetmeme` not found]

いつの間にかハードウエア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:

“CentOS6.4でDELL PowerEdge R320のRAIDカードの状態を取得する megasasctl” への2件の返信

  1. この記事を書いて頂き、誠にありがとうございました。
    とても参考になりました。
    スクリプトも使わせていただきます(ハードディスクに異常があれば、メールで通知してくれるものと考えています)。

  2. お役に立てそうで嬉しいです。コメントありがとうございます!
    メールで通知してくれるように書きましたが、cronは環境変数が通っていなかったりすると想定と違う動きをしたり、メール来なかったりするのでテストはしっかりした方が良いです。

    シェルスクリプト単独でテスト(スクリプトカスタマイズしてコマンドに結果返ってくるようにしてみてテスト)
    cronでメールくるかテスト(OK, ALERT反転してOKの時にメール通知させてみる)
    理想はRAIDわざと崩してテストまでした方がいいです。私はしました。
    怖い時は、OK/ALERTどちらでもメールくるようにしてしばらくは毎回「ふむふむ、今日もOKだな」と確認してしばらくして納得できたらOKの時にはメール送らないようにするってやってます。

    と、結構手間はかけています。RAID崩れ気がつかないと本当しんどいんで、RAID崩してリビルドできること確認までして運用に入っています!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*