なぜHDDを休止させるのか?
家庭用NASにおいて、利用している2.5インチHDDはではファンレスでありファンを搭載する3.5インチHDDよりも静音ではあるものの、寝室などに置いていると回転音は気になります。寝ているときとか。また、利用していない時にもずっとHDDが回転しているのは電気代的にも芳しくないものと思われます。そこで、利用していない時間はHDDの回転を止める設定を追加します。
利用しているHDD製品
大容量ドライブを4つ接続しています。一番上の黄色はSSDですが、下3つはHDD。
・Western Digital の4TB
・Western Digital の1TB
・Buffalo の 4TB (ふるさと納税で購入) 中身はTOSHIBAの模様。
です。

UIでのHDD省電力設定
UIでできるようなのですが、このUIでの利用、私は利用しておりません。存在しならかった。。。
上のキャプチャのPower Modeが取得できている場合、UIの設定は使えるかもしれませんが、Errorのものは使えないかもです。
なので、UIからの設定が可能かどうかはご自身でご確認ください。
対象のHDDを選択し、「編集」を選択

「高度な電源管理」「アコースティック・マネジメント」「スピンダウンタイム」を設定できるようです。

「高度な電源管理」では1-255までの値を選択できます。

1-255に関しては以下の説明が参考になります。

ドライブのスタンバイ (スピンダウン) タイムアウトを設定します。電力を抑えるためにモーターを切るまでのタイムアウト (ディスクが使われないアイドル時間) を指定します。0にするとスピンダウンが無効化され、1から240までは5秒間隔で、241から251までは30分間隔で指定します。 |
スクリプトでのHDD省電力設定
私はこの方法で実現しています。
・Western Digital の4TB > 30分で回転停止(スピンダウン)
・Western Digital の1TB > 30分で回転停止(スピンダウン)
・Buffalo の 4TB > 2分で回転停止(スピンダウン)
全て30分に統一したい気もしましたが、うまくできませんでした。HDDごとにくせがあるようなのでご注意ください。
なお、30分が適正かどうか、に関してはメディアサーバ用途で使っている私は2-3年壊れていません。2分が適正かどうか、に関してはバックアップ用途で利用しているので私は2-3年壊れていません。おそらくこの設定値で問題ないかと思われます。
1.HDDのUUIDを調べる
SSHでコマンドから以下を入力してください
ls -l /dev/disk/by-id

-part1となっていない方の”ata-TOSHIBA_MQ04ABB400_727CPZQST”
を控えておきます。
2.hdparm設定
sudo nano /etc/systemd/system/hdparm.service
[Unit] Description=hdparm init [Service] Type=oneshot ExecStart=/usr/sbin/hdparm -S 23 /dev/disk/by-id/ata-TOSHIBA_MQ04ABB400_727CPZQST [Install] WantedBy=multi-user.target
-S 23 のところで時間の設定をしています。

なお、WDは -B 120 (30分)設定です。 -S なのか -B なのかはうまくいった方で調整します。
サービスの再起動
sudo systemctl enable hdparm sudo systemctl start hdparm
また、サスペンド後にapmがリセットさせるなどあるようなので、こちらにも同様の設定をします。
/etc/systemd/system/apm.service
[Unit] Description=hdparm Local system resume actions After=suspend.target hybrid-sleep.target hibernate.target [Service] Type=oneshot ExecStart=/usr/sbin/hdparm -S 23 /dev/disk/by-id/ata-TOSHIBA_MQ04ABB400_727CPZQST [Install] WantedBy=sleep.target
これで休止時間が設定できます。ご自身の環境で設定値が有効かどうか念のため確認ください。
3.(必要なし)hd-ilde設定
hdparmではなくhd-idleで設定も可能なようですが、hdparmのみで問題ないので、もしこれだけでうまくいかない場合は試してみてください。
まず uuidを確認
lsblk -f
hd-idleをインストール
sudo apt install hd-idle
30分で設定
sodo nano /etc/default/hd-idle
Xのところには UUIDを入力、 1800は30分ですね。
HD_IDLE_OPTS="-i 0 -a XXXXXXXXXXXX -i 1800"
sudo service hd-idle start