GLAN TANK五日目

追記:[id:viver:20060627]にまとめ直しました。


HDL-GXシリーズの新しいファームウェアアップデートに含まれているusbhdmngで、GLAN TANKのファンもHDDも自動停止することに成功。usbhdmngを実行しっぱなしでも、ファンも再び回転を始める(というか[id:viver:20060510]前回は勘違いか、noflushdとの干渉でうまくいっていなかった可能性が高い)。



いろいろいじくっていたらsshでつながらなくなってしまったので、分解した。
分解は挑戦者のウェブサイトに載っている分解方法を参考にすれば問題なし。ただ、プラパネルを外すとき、背面の穴だけではなく、横穴からも精密ドライバを差し込んでツメを外す、という手順があった方がたぶん良い。


MIRRORモードでインストールして、ssh入れて、wizd消して、FTPデーモン入れて、NFSサーバー入れて、という手順にしてみた。ガリガリとRAIDが再構築される。


さてさて、IO DATAからHDL-GXシリーズのファームウェアアップデートが公開されている。
変更履歴には、

省電力設定の安定性が向上しました。

とある。
そして何と/usr/local/bin/以下のファイルがふんだんに含まれている。


アップデータの中の/usr/local/bin/以下にはusbhdmngも含まれており、usbhdmngもアップデートされている模様。その他、perlスクリプトがたくさん含まれている。
この中でも

HDLdisk
HDLdisk.pm

にはusbhdmngの制御スクリプトが含まれている。

HDLdisk.pmを読むと、/tmp/spindownd.confを出力し、usbhdmngを起動すれば、ディスクとファンの両方が停止するような雰囲気を漂わせている。
とりあえず/tmp/spindownd.confを書く。

IDE:    hda    /dev/hda    /dev/hda    1
IDE:    hdb    /dev/hdb    /dev/hdb    1

IDE接続のHDDを制御するときは/dev/hdaが2回出てきたりするが、USB接続のHDDを制御するときにはUSBポートの番号を指定したりするらしい。詳しくはHDLdisk.pmやHDLusbmap.pmを読めばわかると思う。


アップデータの/usr/local/bin/以下で、

grep hdparm *

とやってみると、usbhdmng中に"/sbin/hdparm"という文字列が含まれていることを発見。さてはusbhdmngは/sbin/hdparmを呼び出して、HDDの停止を行っているな。すると、以前は/sbin/hdparmはインストールしていなかった(/initrd/bin/busybox hdparmで使えるから)ので、HDDのスピンダウンが出来ていなかったのではないか。
ということで、hdparmをインストール。

apt-get install hdparm

いざ新しいusbhdmngを起動。…HDDが止まった!ファンも同時に停止。

1分と指定したので、すぐ止まる。これでは頻繁にスピンダウン/アップを繰り返しすぎるので、/tmp/spindownd.confを調整。

IDE:    hda    /dev/hda    /dev/hda    20
IDE:    hdb    /dev/hdb    /dev/hdb    20

そして

killall -HUP usbhdmng


うむ。完璧。
後で/etc/init.d/usbhdmngを書いておこう。



使わないデーモン(thttpd、wizd、exim4などなど)を起動しないようにしたり(というかアンインストール)、cronやsyslog-ng、fstabも調整して、HDDへのアクセスを減らす。
これで静かなGLAN TANKの完成。
(なんか文章がぐちゃぐちゃだ…。また今度まとめないと)


追記:[id:viver:20060627]にまとめ直しました。