WD製のHDDの問題点について今更知った

最近よくWestern Digital製のHDDを使っています。
WD30EZRX でファイルサーバって感じです。

で、昨日WD製のHDDに導入されているというintelliparkという技術について知りました。
そして無効化しました。

intellipark

intelliparkというのは、
「一定時間(デフォルトでは8秒)のディスクアクセスが無い場合に磁気ヘッドを退避させることで電力消費を抑える」
というものらしいです。

省電力の代償として以下のものが思いつきます。
・磁気ヘッドが移動しまくるのって寿命とかどうなの?
・退避した状態からアクセスするのにラグが起こる

で、調べてみると寿命はやっぱり短くなるみたいでした。
省電力で節約して、HDD壊れたから新しいの買う!っていうのはちょっと…。
良いことなさそう、というわけで無効化しました。

どう悪くなるのか

「intelliparkによって何がどれくらい悪くなるの?」
smartctl -aしてみました。

ちょうど同じくらいの起動時間のHDDがあったのでそれで比較。
必要かな、って部分を抜粋しています。

[bash]
$ smartctl -a /dev/sda
Device Model: Hitachi HDS721050CLA362
9 Power_On_Hours 0x0012 099 099 000 Old_age Always – 13110
193 Load_Cycle_Count 0x0012 100 100 000 Old_age Always – 385

$ smartctl -a /dev/sdd
Device Model: WDC WD30EZRX-00DC0B0
9 Power_On_Hours 0x0032 083 083 000 Old_age Always – 12508
193 Load_Cycle_Count 0x0032 169 169 000 Old_age Always – 95544
[/bash]

Hitachi製が385回に対してWD製が95544と、まあ見事な回数の差が…。

「この数字がどうなのか?」
WD社のspec sheet見てみました。
spec sheet

Reliability = 信頼度、ってことなので「ここまではちゃんと動作すると保証しますよ。」みたいなことかな。
…と、その部分が該当箇所だと思うのですが、それを見てみると30万回みたい。
12508(h) / 24(h) = 521(d)
というわけなので、あと3年前後でspec sheetの信頼度に引っかかる回数になる、っていう感じです。

Hitachiの方のspecificationは下のリンク。
Specification
こちらもWDと同じく30万回のようです。

よろしくない

というわけで無効化です。
Linuxではidle3ctlっていうツールがありました。
idle3-tools

あとは、Download filesのページから
・wgetして
・tar解凍して
・make

簡単な使い方
[bash]
# intelliparkの設定確認
$ ./idle3ctl -g /dev/sdd

# intelliparkを無効化
$ ./idle3ctl -d /dev/sdd

# intelliparkの設定時間変更
$ ./idle3ctl -s [0-255] /dev/sdd
[/bash]

ちなみに初期値は8秒なんですが、設定値は80となっていました。
さきほどの idle3-tools のリンクから
「Meaning of the returned raw value depending on the wdidle3 version」
の部分を見ると説明書いてました。

どうやら
・0 = disabled
・1~128 = 0.1秒刻み
・129~255 = versionによって変わる
みたいですね。厄介。
disabledでいいんじゃないでしょうか。

設定反映にはコールドリブートが必要

設定終わった後はコールドリブートが必要になります。
起動したら、-gオプションっで設定確認して反映されてたらオッケーです。

WD友の会のwiki を見ると
「WDの特徴として告知なき仕様変更がデフォ。」
とあるので、仕様変更は注意しておいた方が良さそうです。

設定後

Load Cycle Countが増えてないか確認しましょう。
[bash]
$ smartctl -a /dev/sdd
9 Power_On_Hours 0x0032 083 083 000 Old_age Always – 12519
193 Load_Cycle_Count 0x0032 169 169 000 Old_age Always – 95544
[/bash]

増えていません。
というわけで完了です。