RaspberryPi にUSB HDDを付けて、ファイルサーバ(NAS)にしている、なかなか快適だ。
LaCieという外付けUSB HDDだ。
これが、使用していない時も常に稼働(HDDが回転)してしまい、すごく熱くなる。
電力も相当にかかるようだ。
(3.5インチのHDDは、平均5-10Wくらいの電力を消費するらしい)
そこで、使用していない時は、外付けUSB HDDを停止できないかチャレンジしてみる。
「sdparm」はSCSIデバイスを制御するツールで、HDDの停止コマンドがあるらしい。
まずはインストール。
$ sudo apt-get install sdparm
HDDが停止するか試してみる。
$ sdparm –command=stop /dev/sda
お、停止した。
これは使えそうだ。
定期的にHDDの状態を監視し、変更がない場合はHDDを停止(スピンダウン)するスクリプトを試してみる。
参考にしたのは以下のページ。
http://www.nslu2-linux.org/wiki/FAQ/SpinDownUSBHarddisks
$ sudo vi /usr/local/bin/usbhdd_spindown.sh
#!/bin/sh
disk=$1
interval=$2
state=`grep " $disk " /proc/diskstats`
count=$interval
up=1
while [ true ]; do
sleep 10
count=$(($count-10))
newstate=`grep " $disk " /proc/diskstats`
if [ "$state" = "$newstate" ]; then
if [ $count -lt 0 ]; then
count=$interval
if [ $up = 1 ]; then
#echo -e "spin-down\t" `date`
sync
state=`grep " $disk " /proc/diskstats`
scsi-stop /dev/$disk
up=0
fi
fi
else
#echo -e "drive is up\t" `date`
count=$interval
state="$newstate"
up=1
fi
done
スクリプトに実行権限を与える。
$ sudo chmod 755 /usr/local/bin/usbhdd_spindown.sh
起動時に自動起動するように、rc.localに以下の記述を追加。
$ sudo vi /etc/rc.local
/usr/local/bin/usbhdd_spindown sda 900 2>&1 | logger -t usbhdd_spindown &
これで、使っていない時はHDDが停止されるようになった。
省電力になり、夜間等は、HDDが回転せずに静かで良い。
ただし、HDDは常に回転させておいた方が長持ちするという説もあるので、気を付けたほうが良いかもしれない。
コメント
[…] blacknikka – RaspberryPi外付けUSB HDDを停止して省電力 https://blog.bnikka.com/raspberrypi/raspberrypi-spindown.html […]
[…] blacknikka RaspberryPi外付けUSB HDDを停止して省電力https://blog.bnikka.com/raspberrypi/raspberrypi-spindown.htmlRaspberryPiに接続したUSB HDDを、使っていない時は回転を停止(spindown)できないかチャレン […]
[…] (記事参照→ RaspberryPi外付けUSB HDDを停止して省電力 ) ただ、Raspberry Pi はCPUがARM1176JZF-S 1コア(700 MHz)と非力で、 […]
sdparmで停止確認しているけど
usbhdd_spindown.shでは使っていない記述?
そうですね。
停止確認は簡単に使えるsdparmを使いましたが、実際に使っているスクリプトでは、scsi-stop /dev/sdaコマンドで停止しています。