NAS省電力化計画

NAS作ったけど、あんまり使ってない。でも常時電源入ってる。
HDD4台にSSD1台乗っかっている謹製NASはIdle時は39.3W前後使っている


Idle中のNASの消費電力をさらに下げたいと思い、色々調べる。
HDDが4台も乗っているんだからこいつらがおとなしくなれば・・・ということで、
一番最初に試したのはhdparm。yumでサクッと入れる。

yum -y install hdparm

オプションについては以下を適当に眺めるなど。
http://linuxjm.sourceforge.jp/html/hdparm/man8/hdparm.8.html

色々試す

現在の状態を確認。

[root@localhost ~]# hdparm -C /dev/sd{a,b,c,d,e}
/dev/sda:
 drive state is:  active/idle

/dev/sdb:
 drive state is:  active/idle

/dev/sdc:
 drive state is:  active/idle

/dev/sdd:
 drive state is:  active/idle

/dev/sde:
 drive state is:  active/idle
 

全員active/idle。元気なこった。

# ちなみにbashでファイル名として/dev/sd{a,b,c,d,e}とか並べると、
# hdparm -C /dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde
# と展開してくれる。すごいやつだよ。


簡単なベンチマークも走らせられるらしい。

[root@localhost ~]# hdparm -t /dev/sd{a,b,c,d,e}

/dev/sda:
 Timing buffered disk reads:  306 MB in  3.01 seconds = 101.61 MB/sec

/dev/sdb:
 Timing buffered disk reads:  322 MB in  3.00 seconds = 107.32 MB/sec

/dev/sdc:
 Timing buffered disk reads:  324 MB in  3.01 seconds = 107.64 MB/sec

/dev/sdd:
 Timing buffered disk reads:  362 MB in  3.00 seconds = 120.48 MB/sec

/dev/sde:
 Timing buffered disk reads:  546 MB in  3.00 seconds = 181.98 MB/sec

なるほどなるほどなるほど。


HDDの情報も見れる

[root@localhost ~]# hdparm -I /dev/sd{a,b,c,d,e}

/dev/sda:

ATA device, with non-removable media
        Model Number:       WDC WD20EARX-00PASB0
# 非常に長いので以下略。サポートしてる機能とか色々見える。

本題

むりやりスタンバイモードに移行させてみる。
※スタンバイモードはスピンダウン状態になります。さらに、過度なスピンアップ/スピンダウンは故障の原因になるとも言われています。ご利用は計画的に。

[root@localhost ~]# hdparm -y /dev/sd{a,b,c,d}

/dev/sda:
 issuing standby command

/dev/sdb:
 issuing standby command

/dev/sdc:
 issuing standby command

/dev/sdd:
 issuing standby command

sdeはシステムディスクでなんかあったら嫌だったし、SSDだからあんま関係なさそうだなって思って特に何もしていない。


スタンバイになっているか確認。

[root@localhost ~]# hdparm -C /dev/sd{a,b,c,d,e}

/dev/sda:
 drive state is:  standby

/dev/sdb:
 drive state is:  standby

/dev/sdc:
 drive state is:  standby

/dev/sdd:
 drive state is:  standby

/dev/sde:
 drive state is:  active/idle

なってるなってる!


ワットチェッカー見てみたら29.4Wになってた。wow...


再度ベンチマークを走らせて見る

[root@localhost ~]# hdparm -t /dev/sd{a,b,c,d,e}

/dev/sda:
 Timing buffered disk reads:    2 MB in  6.81 seconds = 300.56 kB/sec

/dev/sdb:
 Timing buffered disk reads:    2 MB in  6.99 seconds = 292.87 kB/sec

/dev/sdc:
 Timing buffered disk reads:    2 MB in  6.59 seconds = 310.88 kB/sec

/dev/sdd:
 Timing buffered disk reads:    2 MB in  6.61 seconds = 310.00 kB/sec

/dev/sde:
 Timing buffered disk reads:  546 MB in  3.00 seconds = 181.91 MB/sec

クッソ遅くなってる。
立ち上がりにやっぱり時間かかっちゃうんだろう。
当然、この時点でIdleに戻っちゃう。


スタンバイモードでこれだからスリープモードはもっとすごいんじゃないか!?

[root@localhost ~]# hdparm -Y /dev/sd{a,b,c,d}

/dev/sda:
 issuing sleep command

/dev/sdb:
 issuing sleep command

/dev/sdc:
 issuing sleep command

/dev/sdd:
 issuing sleep command

29.1Wだった。standby状態と大差ない。あんまり効果ない感。
sleep状態を確認しようとしたらsleepingではなくstandbyと出てたので、機能してないのかもしれない。

・・・で、それ手動でやるの?

いちいちコマンドを発行するのは面倒です。
ちゃんと-Sオプションってのがあって、設定したある一定時間、アクセスが無ければ勝手におとなしくなってくれるように出来ます。賢いね!
(ただし、再起動すると切れる。cronで@restartしておくとラクだと思います。デバイス名変わらなければこんな感じで。)

hdparm -B 1 -M 128 -S 6 /dev/sd{a,b,c,d}

30秒ぐらいでstandbyになってくれます。

感想

省電力化できても、HDDがお釈迦になったら、それ以上の負担を強いられるのではry
他のアプローチのほうが良いのかー?