Raspberry PiをNAS化して2TBのHDDで無停止運転を実現できたが、HDDを24時間365日無停止で作動させるのは、電気代や機器の劣化・障害が気になる。
無停止運転とは言え、実際に使うのは1日当たり1時間も満たないし。
そこで、今回は使用していない時間帯はHDDを動作停止することで、無駄な電気代を減らした上で、HDDを少しでも長持ちさせてみようと思う。
無停止運転とは言え、実際に使うのは1日当たり1時間も満たないし。
そこで、今回は使用していない時間帯はHDDを動作停止することで、無駄な電気代を減らした上で、HDDを少しでも長持ちさせてみようと思う。
■本日の目標
Raspberry Pi 3に接続したHDDを未使用時間帯は自動停止する
■主な作業環境
・HW:Raspberry Pi 3 Model B
・OS:CentOS Linux release 7.9.2009 (AltArch)
・HDD:I-O DATA 2.0TB (HDC-LA2.0)
・OS:CentOS Linux release 7.9.2009 (AltArch)
・HDD:I-O DATA 2.0TB (HDC-LA2.0)
■参考サイト
・自動停止用のシェルスクリプトは下記サイトを参考にしました。
外付け USB HDD を spin down する
外付け USB HDD を spin down する
■スクリプト用意
・参考サイトより拝借
■スクリプトを格納する
・格納した後、実行権限を付与しておく。
$ ll /usr/local/bin/usbhdd_spindown.sh -rwxr-xr-x. 1 root root 637 10月 28 21:50 /usr/local/bin/usbhdd_spindown.sh
■HDDのUnit名を確認する
・後ほどServiceの起動順序を指定するため、マウント中のHDDのユニット名を確認する。
※HDDは /mnt/usb-m2 と /mnt/usb-m3 の2ヶ所
※HDDは /mnt/usb-m2 と /mnt/usb-m3 の2ヶ所
$ systemctl list-units| grep -F .mount -.mount loaded active mounted / boot.mount loaded active mounted /boot dev-mqueue.mount loaded active mounted POSIX Message Queue File System mnt-nas.mount loaded active mounted /mnt/nas mnt-usb\x2dm1.mount loaded active mounted /mnt/usb-m1 mnt-usb\x2dm2.mount loaded active mounted /mnt/usb-m2 mnt-usb\x2dm3.mount loaded active mounted /mnt/usb-m3 run-user-0.mount loaded active mounted /run/user/0 sys-kernel-config.mount loaded active mounted Configuration File System sys-kernel-debug.mount loaded active mounted Debug File System
■Serviceファイルを作成する
・ポイントは2つ。
→実行コマンド(ExecStart):
スクリプトに引数(HDDを停止するまでの時間[s])を渡す
→実行順序(After):
/mnt/usb-m2 と /mnt/usb-m3 のマウント完了後に起動する
→実行コマンド(ExecStart):
スクリプトに引数(HDDを停止するまでの時間[s])を渡す
→実行順序(After):
/mnt/usb-m2 と /mnt/usb-m3 のマウント完了後に起動する
$ touch /etc/systemd/system/usbhdd_spindown.service $ chmod 755 /etc/systemd/system/usbhdd_spindown.service $ cat /etc/systemd/system/usbhdd_spindown.service [Unit] Description=hdd spindown by sdparm After=mnt-usb\x2dm2.mount mnt-usb\x2dm3.mount [Service] ExecStart=/usr/local/bin/usbhdd_spindown.sh sdb 900 2>&1 | logger -t usbhdd_spindown & KillMode=process Type=simple Restart=no [Install] WantedBy=multi-user.target
■Serviceを有効化&開始する
・ここからはServiceの有効化&起動のお作法。
$ systemctl enable usbhdd_spindown $ systemctl start usbhdd_spindown $ systemctl status usbhdd_spindown ● usbhdd_spindown.service - hdd spindown by sdparm Loaded: loaded (/etc/systemd/system/usbhdd_spindown.service; enabled; vendor preset: disabled) Active: active (running) since 日 2017-10-29 08:35:34 JST; 2min 12s ago Main PID: 10585 (usbhdd_spindown) CGroup: /system.slice/usbhdd_spindown.service tq10585 /bin/sh /usr/local/bin/usbhdd_spindown.sh sdb 900 2>&1 | logger -t usbhdd_spindown & mq10618 sleep 10 10月 29 08:35:34 WSTD-RPI3 systemd[1]: Started hdd spindown by sdparm. 10月 29 08:35:34 WSTD-RPI3 systemd[1]: Starting hdd spindown by sdparm... 10月 29 08:35:44 WSTD-RPI3 usbhdd_spindown.sh[10585]: drive is up: /dev/sdb 10月 29 08:37:04 WSTD-RPI3 usbhdd_spindown.sh[10585]: drive is up: /dev/sdb
■自動停止の状況を確認する
・今回は「900秒=15分」で設定したが、実際の処理状況を確認してみる。
$ systemctl status usbhdd_spindown ● usbhdd_spindown.service - hdd spindown by sdparm Loaded: loaded (/etc/systemd/system/usbhdd_spindown.service; enabled; vendor preset: disabled) Active: active (running) since 木 1970-01-01 09:00:15 JST; 51 years 0 months ago Main PID: 276 (usbhdd_spindown) CGroup: /system.slice/usbhdd_spindown.service tq 276 /bin/sh /usr/local/bin/usbhdd_spindown.sh sdb 900 2>&1 | logger -t usbhdd_spindown & mq20375 sleep 10 1月 02 12:27:57 WSTD-RPI3 usbhdd_spindown.sh[276]: drive is up: /dev/sdb 1月 02 12:43:09 WSTD-RPI3 usbhdd_spindown.sh[276]: spin-down: /dev/sdb 1月 02 12:43:09 WSTD-RPI3 usbhdd_spindown.sh[276]: /dev/sdb: I-O DATA HDCL-UT 5112 1月 02 12:45:09 WSTD-RPI3 usbhdd_spindown.sh[276]: drive is up: /dev/sdb 1月 02 13:00:21 WSTD-RPI3 usbhdd_spindown.sh[276]: spin-down: /dev/sdb 1月 02 13:00:22 WSTD-RPI3 usbhdd_spindown.sh[276]: /dev/sdb: I-O DATA HDCL-UT 5112 1月 02 14:03:39 WSTD-RPI3 usbhdd_spindown.sh[276]: drive is up: /dev/sdb
ログには、
停止:spin-down
再開:drive is up
で出力される。
NAS(HDD)にアクセスすると再開し、アクセスが無いと15分後に停止している。
実際にHDD本体を見てみると、ランプが点灯→消灯していたため、うまく導入できたようだ。
停止:spin-down
再開:drive is up
で出力される。
NAS(HDD)にアクセスすると再開し、アクセスが無いと15分後に停止している。
実際にHDD本体を見てみると、ランプが点灯→消灯していたため、うまく導入できたようだ。