スポンサーサイト

 --------
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
カテゴリ :スポンサー広告 トラックバック(-) コメント(-)
タグ :

hdapsd導入(ubuntu 10.04 LTS)

 2011-09-04
東北を襲ったあの大震災以降、関東地方は毎週のように震度3以上の揺れが起こる。
煽りを食らってサーバのHDDが1台お釈迦になったのだが
LVM連結していたので3台分、8TBが死にかけた
サルベージで70%程度は拾い出したが・・・。

これじゃ困るので色々対策。
まずは「地震になったらHDDのヘッドを退避」、、、そんなこと出来るのか?というと
ThinkPadをサーバにしていれば、
HDDアクティブプロテクションシステム(実体は加速度センサ)が搭載されているので、
可能なのだった。
で、これはLinuxからも利用できる。
うちは今のところThinkPad T61pをサーバにしているので問題なし。

というわけで以下、Ubuntu 10.04(LTS)での導入方法。
多分、インジケータパネル以外は11.04でも変わらないとは思う。


参考1:ThinkWiki (Installing Ubuntu 10.04 on Z61m)
参考2:Ubuntu日本語フォーラム(ThinkWikiの内容をなぞってる)



【1:パッケージの導入】
tp-smapiと、hdapsdを入れる。
tp-smapiについてはdkms対応版があるので、そちらを選択。
# apt-get install tp-smapi-dkms python python-gtk2 python-gnome2 hdapsd

次に、/etc/modules に tp_smapi を追加(最下行にしろとThinkWikiでは書かれている)。
ワタシのファイルの例は下記。
[/etc/modules]
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

lp
rtc

# Generated by sensors-detect on Sat Dec 25 23:20:28 2010
# Chip drivers
coretemp
tp_smapi #←ここを足す

終わったら、一度リブートする。
dmesgにて、hdapsd等が読み込まれているかの確認をする。
# dmesg | grep hdaps
[ 51.659206] hdaps: LENOVO ThinkPad T61 detected, setting orientation 1
[ 51.659333] hdaps: initial mode latch is 0x05
[ 51.659470] hdaps: setting ec_rate=250, filter_order=2
[ 51.659690] hdaps: device successfully initialized.
[ 51.660494] hdaps: driver successfully loaded.

#dmesg | grep tp_smapi
[ 40.007011] tp_smapi 0.40 loading...
[ 40.007124] tp_smapi successfully loaded (smapi_port=0xb2).



【2:動作検証】
まず、余計なHDDを全部外して、内蔵HDDが1台だけの状態(超重要)にして起動
ちなみに2台以上だと、多分最初は動きません。

ThinkWikiのhdapsd解説によれば、
「findコマンドでHDDを読み込みしまくらせつつ揺らせ!」
とあるが・・・・・なにその地雷行動。怖すぎる。
というわけで下記を実行するべし。
# while true; do cat /sys/block/sda/device/unload_heads; done

ずーっと「0」が流れるので、おもむろにThinkPadを揺らしてみる。
数値が1-2秒間、大きくなればOk。


【3:感度調整と複数ドライブ対応】
/etc/default/hdapsd を編集する。
[/etc/default/hdapsd]
# hdapsd default file

# start hdapsd at boottime?
START="yes"

# the name of the disk device that hdapsd should monitor.
#
# usually this is 'hda' for the primary IDE master or 'sda'
# for the primary S-ATA drive
#DISKLIST="sda sdb sdc sdd sde sdf sdg sdh" ←この指定方法は駄目だった
DISK="sda"

# sensitivity
SENSITIVITY=5

# other options to pass to hdapsd.
# the -d $DISK, -s $SENSITIVITY, -b and -p $PIDFILE options are always passed.
OPTIONS="-d sdb -d sdc -d sdd -d sde -d sdf -d sdg -d sdh"

# The new interface in kernels >=2.6.28 sometimes wrongly detects HDAPS-capable
# drives as not supported. Set this to "yes" to force-enable the feature.
# Please be carefull with this setting!
FORCEENABLE="no"

SENSITIVITYが、感度。デフォルトは15で、数値が小さいほど敏感になる。
普通に持ち歩くなら、25程度がよいということらしいが
今回は地震検知なので、色々揺らしてみて「5」まで敏感にしておいた。

また複数ドライブの指定方法は、結局コマンドラインオプションに頼るしかない。
ファイルにあるように「-d デバイス名」を連続して記載していく。
しかし実は対応ドライブは自動で複数認識している様子

書き終えたら、hdapsdを再起動する。
# /etc/init.d/hdapsd restart


対応出来ていない場合、揺らした時にdmesgで「うまく退避できん!」とエラーログが出る。
ちなみに、うちの場合はポートマルチプライヤ経由のドライブが1つを除きNG
逆に言うと、自動認識されたドライブ以外は、明示指定しても動作エラーを起こしている。
これだと導入した意味がない・・・・・・・

hdparm -I /dev/sda などで、全ドライブの機能をチェックしたところ
「IDLE_IMMEDIATE with UNLOAD」
という機能が付加されているドライブでないとNGのようだが
同じWD20EADSですら、2台で違いがあったのが謎
ファームが違うからか、そもそもlinuxのバグなのか。
ちなみにWD30EZRS / WD30EZRXは、全滅だった。

【4:Gnomeのトレイアイコン】
自力で導入する(なんかsynapticにあるかもしれないが)
まず、
https://launchpad.net/~andypiperuk/+archive/andypiper-ppa/+files/thinkhdaps_0.2.1-1_all.deb
・・・をDL。インストールはしないこと。
適当に展開(右クリックで「ここに展開」とか)し、そのディレクトリに入る。
後は下記を実行。
# tar -zxvf data.tar.gz
# cp usr/bin/thinkhdaps /usr/bin
# chmod +x /usr/bin/thinkhdaps
# cp usr/share/pixmaps/* /usr/share/pixmaps/

あとは /usr/bin/thinkhdaps を実行すればトレイアイコンが出る。
ちゃんと退避時はアイコンが変わるし
マウスオーバーで、現在hdapsの管理下にあるドライブが列挙される。

gnomeの「自動起動するアプリ」にでも登録しておけば幸せ。




以上。
内蔵ドライブ以外の動作に問題があるので結局意味がなかった・・・・・
スポンサーサイト
タグ :
コメント












管理者にだけ表示を許可する
トラックバック
トラックバックURL:

http://silver0480.blog80.fc2.com/tb.php/352-ea6c65ab

≪ トップページへこのページの先頭へ  ≫
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。