|
Terastation のディスクステータスの LED は、残り 10%
を切ると赤くなります。しかし、400GB x 4 で raid5 構成だと、
10% でも 110GB 強になります。つまり、あと 100GB
余っていても残容量の警告で LED が赤く点きます。
シャットダウンしても点きっぱなしでうるさいです。
これを何とかしたいと想います。
まず、LED をコントロールするコマンドを探しました。
Linkstation や Terastation の web インターフェースは、
/www 以下にあります。この中を探しました。
Linkstation では直接 /dev/ttyS1(AVR) へコマンドを送り込んでいます。
|
# grep 90 cgi-bin/* cgi-bin/*/*
|
いくつかのファイルが見つかりましたが、
単純に空き容量を計算してチェックしているだけでした。失敗。
次に何かデーモンがやっているのではないかと思い、
実行中のプロセスを探しました。
怪しいデーモンがありました。
|
385 ? S 0:00 /usr/sbin/diskmon
|
diskmon、ディスクモニターでしょう。このコマンドを早速調べます。
|
# strings /usr/sbin/diskmon
|
コマンド実行の結果:
:
miconapl -a leddisk %d green %s
miconapl -a leddisk %d red %s
miconapl -a leddiag off
miconapl -a leddiag err %d
:
|
miconapl!!
以前インターネットで見たことある!で、再度検索してみましたが、
HD-HTGL の miconapl の解説は見つかりませんでした。
古いし、あまりユーザーもいなさそう。
自前で解析しました。その結果です。
miconapl の LED コントロール
| LED | 機能 | パラメータ |
| POWER LED |
点灯 | miconapl -a ledpower green on |
| 消灯 | miconapl -a ledpower green off |
| 点滅 | miconapl -a ledpower green blink |
| DIAG LED |
点灯 | miconapl -a leddiag on |
| 消灯 | miconapl -a leddiag off |
| 点滅 | miconapl -a leddiag blink |
| LINK/ACT LED |
緑 |
点灯 | miconapl -a ledenet 100 on |
| 消灯 | miconapl -a ledenet 100 off |
| 点滅 | miconapl -a ledenet 100 blink |
| 青 |
点灯 | miconapl -a ledenet 1000 on |
| 消灯 | miconapl -a ledenet 1000 off |
| 点滅 | miconapl -a ledenet 1000 blink |
STATUS/FULL LED ([n] は 1 〜 4 で Disk 番号) |
緑 |
点灯 | miconapl -a leddisk [n] green on |
| 消灯 | miconapl -a leddisk [n] green off |
| 点滅 | miconapl -a leddisk [n] green blink |
| 赤 |
点灯 | miconapl -a leddisk [n] red on |
| 消灯 | miconapl -a leddisk [n] red off |
| 点滅 | miconapl -a leddisk [n] red blink |
これで LED を変更できるようになりましたが、常に diskmon
がディスクを監視していて、手動で変更してもすぐに元に戻ってしまいます。
試しに次の内容のシェルスクリプトを作成し、miconapl と入れ替えてみました。
#!/bin/bash
echo `date` " miconapl " $* >> /tmp/miconapl.log
|
作成されたmiconpal.log の内容は
Mon Jan 1 11:30:57 JST 2007 miconapl -a leddisk 1 green off
Mon Jan 1 11:30:57 JST 2007 miconapl -a leddisk 1 red on
Mon Jan 1 11:30:57 JST 2007 miconapl -a leddisk 2 green off
Mon Jan 1 11:30:57 JST 2007 miconapl -a leddisk 2 red on
Mon Jan 1 11:30:57 JST 2007 miconapl -a leddisk 3 green off
Mon Jan 1 11:30:57 JST 2007 miconapl -a leddisk 3 red on
Mon Jan 1 11:30:58 JST 2007 miconapl -a leddisk 4 green off
Mon Jan 1 11:30:58 JST 2007 miconapl -a leddisk 4 red on
Mon Jan 1 11:31:03 JST 2007 miconapl -a leddisk 1 green off
Mon Jan 1 11:31:03 JST 2007 miconapl -a leddisk 1 red on
Mon Jan 1 11:31:03 JST 2007 miconapl -a leddisk 2 green off
Mon Jan 1 11:31:03 JST 2007 miconapl -a leddisk 2 red on
Mon Jan 1 11:31:03 JST 2007 miconapl -a leddisk 3 green off
Mon Jan 1 11:31:03 JST 2007 miconapl -a leddisk 3 red on
Mon Jan 1 11:31:03 JST 2007 miconapl -a leddisk 4 green off
Mon Jan 1 11:31:03 JST 2007 miconapl -a leddisk 4 red on
Mon Jan 1 11:31:09 JST 2007 miconapl -a leddisk 1 green off
Mon Jan 1 11:31:09 JST 2007 miconapl -a leddisk 1 red on
Mon Jan 1 11:31:09 JST 2007 miconapl -a leddisk 2 green off
Mon Jan 1 11:31:09 JST 2007 miconapl -a leddisk 2 red on
Mon Jan 1 11:31:09 JST 2007 miconapl -a leddisk 3 green off
Mon Jan 1 11:31:09 JST 2007 miconapl -a leddisk 3 red on
Mon Jan 1 11:31:09 JST 2007 miconapl -a leddisk 4 green off
|
なんと約 5 秒置きに LED を赤くしています。まあ、
できるだけ短い間隔でディスクを監視しているんでしょうが、
これ、負荷にならないのかなぁ。
負荷がかかっているにしろ、diskmon をとめるわけにはいきません。
本当にディスク障害が起きたときにわからなくなります。
空き容量は、diskmon のパラメータで渡されているわけでもなく、
設定ファイルがある訳でもないので、
プログラムに直接埋め込まれているようです。
diskmon のソースでもあれば何とかなるのですが、探せませんでした。
対処法を変えましょう。一番気になっているのが、
シャットダウンしても容量警告の LED が光っているのことなので、
シャットダウンして diskmon がいなくなったときに、
LED をとめるようにします。
まず、ディスクに障害がないときには、
赤い LED をとめるようなシェルスクリプト(/etc/init.d/stopled.sh)
を作成します。
#! /bin/bash
# Stop Disk STATUS/FULL red LED
# by sirius 2007/01/01
#
LED="red"
ONOFF="off"
# Check Failed Device on md0
FAILED_DEV=`mdadm -D /dev/md0|grep Failed |awk '{print $4}'`
if [ $FAILED_DEV -ne 0 ]; then
exit
fi
# Check Failed Device on md1
FAILED_DEV=`mdadm -D /dev/md1|grep Failed |awk '{print $4}'`
if [ $FAILED_DEV -ne 0 ]; then
exit
fi
# Stop Disk Status LED
/usr/sbin/miconapl -a leddisk 1 $LED $ONOFF
/usr/sbin/miconapl -a leddisk 2 $LED $ONOFF
/usr/sbin/miconapl -a leddisk 3 $LED $ONOFF
/usr/sbin/miconapl -a leddisk 4 $LED $ONOFF
|
もし、md2 も使っているなら md2 のチェックも必要でしょう。
次に、このシェルスクリプトが、シャットダウン時に実行されるようにします。
|
# ln -s /etc/init.d/stopled.sh /etc/rc.d/rc0.d/K19stopled.sh
|
これでシャットダウンすると赤い LED が消灯するようになります。
なお、はじめ、/etc/init.d/diskmon.sh の中で LED
を消灯させようとしましたが、再起動すると修正内容が元に戻っていました。
どこかで何かやっていそう。
|