RaspberryPi外付けUSB HDDを停止して省電力化する方法

RaspberryPiのサムネール画像 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-downt" `date`
sync
state=`grep " $disk " /proc/diskstats`
scsi-stop /dev/$disk
up=0
fi
fi
else
#echo -e "drive is upt" `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は常に回転させておいた方が長持ちするという説もあるので、気を付けたほうが良いかもしれない。

コメント

  1. […] blacknikka – RaspberryPi外付けUSB HDDを停止して省電力 http://blog.bnikka.com/raspberrypi/raspberrypi-spindown.html […]

  2. […]  blacknikka RaspberryPi外付けUSB HDDを停止して省電力http://blog.bnikka.com/raspberrypi/raspberrypi-spindown.htmlRaspberryPiに接続したUSB HDDを、使っていない時は回転を停止(spindown)できないかチャレン […]

  3. […] (記事参照→ RaspberryPi外付けUSB HDDを停止して省電力 ) ただ、Raspberry Pi はCPUがARM1176JZF-S 1コア(700 MHz)と非力で、 […]

  4. 匿名希望 より:

    sdparmで停止確認しているけど
    usbhdd_spindown.shでは使っていない記述?

    • kei より:

      そうですね。
      停止確認は簡単に使えるsdparmを使いましたが、実際に使っているスクリプトでは、scsi-stop /dev/sdaコマンドで停止しています。