【OpenMediaVault】HDDを自動スリープ(スピンダウン)させて省電力化&静音化する完全ガイド!S.M.A.R.T.の罠もCLIとWebUIで解決
自宅サーバーや自作NASを24時間365日動かしていると、どうしても気になってくるのが「電気代」と「HDDの動作音・発熱」です。
一般的な3.5インチHDDは、データの読み書きをしていないアイドル時でも、ディスクが回転しているだけで1台あたり約4〜6Wの電力を消費します。我が家のNASには現在5台のHDDを搭載しているため、ディスクだけで常時約25W前後を消費している計算になります。
これを「アクセスがない時はモーターを止める(スピンダウン / スタンバイ)」運用にできれば、年間で約6,000円前後の電気代削減になり、夜間の「フォーン……」という駆動音や熱からも解放されます。
しかし、OpenMediaVault(OMV)のWebUIでスピンダウン設定を入れただけでは「なぜか全然スリープしてくれない」「一度寝ても数十分ですぐ叩き起こされる」という現象に直面しました……。
そこで今回、CLI(ターミナル)での詳細調査から、HDDごとの仕様の壁、そしてスリープを阻害していた「S.M.A.R.T.監視の罠」の解除までを徹底検証しました!
同じように「OMVでHDDが寝てくれない!」とお悩みの方に向けて、確実に全台スピンダウンさせる手順を実践メモとして共有します!
1. 今回のNAS環境(OSとデータの物理分離が成功の鍵)
まずは今回の検証を行ったストレージ環境です。
- OSドライブ: SanDisk 480GB SSD(
/dev/sdc) ➔ ルート(/)やSwapを配置 - データドライブ: 3TB〜6TB HDD × 5台(
/dev/sda,sdb,sdd,sdf,sdl)
2. 【CLI調査】ターミナルから現状を把握する
WebUIで設定をいじる前に、まずはSSHターミナルからディスクの認識状況やCPUの省電力状態を確認しておきます。
① ドライブ構成の確認(lsblk)
lsblk -o NAME,MODEL,SIZE,ROTA,TYPE,MOUNTPOINT
ROTA カラムに注目します。
1: 回転ディスク(HDD) ➔ 今回のスピンダウン対象0: 非回転ディスク(SSD) ➔ 常時稼働(OSドライブ)
② CPU省電力ガバナーの確認
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor | sort -u
出力が powersave になっていればOKです。CPU側はすでにアイドル時にクロックを下げて省電力動作するよう設定されています。
③ ハードディスク制御ツール hdparm のインストール
DebianベースのOMVでは、初期状態で hdparm コマンドが入っていないことがあるためインストールしておきます。
sudo apt update && sudo apt install -y hdparm
3. HDDごとのAPM対応チェックと「仕様の壁」
続いて、全HDDに対して APM(Advanced Power Management: 詳細電源管理) の対応状況と現在の電源状態をチェックしました。
for d in sda sdb sdd sdf sdl; do echo "=== /dev/$d ==="; sudo hdparm -B -C /dev/$d; done
実行してみたところ、メーカーや型番(世代)によって挙動がバラバラであることが判明しました。
| ドライブ | メーカー / 型番 / 容量 | 初期APM状態 | 調査結果・対応方針 |
|---|---|---|---|
/dev/sda |
Seagate ST3000DM001 (3TB) | APM_level = 128 |
APM対応。127 に設定することでスピンダウン可能。 |
/dev/sdb |
東芝 DT01ACA300 (3TB) | APM_level = off |
sudo hdparm -B 127 /dev/sdb でAPM有効化に成功! |
/dev/sdd |
東芝 DT01ACA300 (3TB) | APM_level = off |
同上。コマンドでAPM有効化可能。 |
/dev/sdf |
WD Blue WD30EZRZ (3TB) | not supported |
APM非対応規格。 |
/dev/sdl |
Seagate ST6000VN001 (6TB) | not supported |
APM非対応規格(IronWolf等)。 |
-B)をサポートしていません(not supported が返ってきます)。しかし心配無用です!APMには非対応でも、「スピンダウンタイマー(例: 10分アクセスなしで停止)」や手動スタンバイ命令(
hdparm -y)は問題なく受け付けてくれます。そのため、OMVのWebUI設定では迷わず全台まとめて「APM: 127」「10分」で統一して設定してしまって問題ありません(非対応ドライブはAPM設定がハードウェア側で無視されるだけで、実害はありません)。
4. 【最大の罠】HDDが寝ない最大の原因は「S.M.A.R.T.監視」だった!
ここが今回の一番のハマりどころでした!
「GUIでスピンダウン時間を10分に設定したのに、いつまで経ってもディスクが回り続けている……」
「手動でスリープさせても、数十分後に気づいたら勝手にスピンアップしている……」
この元凶を突き止めるため、デーモン設定を確認したところ、犯人は S.M.A.R.T.監視デーモン(smartd) でした。
ターミナルで smartd.conf の設定を確認してみます。
grep -v "^#" /etc/smartd.conf
すると、各ドライブの設定行に以下のようなオプションが記述されていました。
... -W 0,0,0 -n never,q
smartd の -n never オプションは、「ディスクがスリープ状態だろうが何だろうがお構いなしにポーリングしてヘルスチェックを実行する」という仕様です。せっかくディスクがスタンバイに入っても、smartdが定期監視のたびに強制的にスピンアップ(起床)させていたのです!
解決策:OMV WebUIでPower modeを「Standby」に変更する
この設定は、設定ファイルを直接書き換えてもOMVが再生成してしまうため、WebUI側から恒久的に変更します。
- OMVのWebUIで 「Storage(ストレージ)」 ➔ 「S.M.A.R.T.」 ➔ 「Settings(設定)」 を開きます。
- 「Power mode(電源モード)」 の項目を
NeverからStandbyに変更します。 - 「Save(保存)」をクリックし、上部に表示される黄色いバーのチェックボタン(適用)を押します。
再度ターミナルで grep -v "^#" /etc/smartd.conf を確認すると、-n standby,q に書き換わっていることが確認できます。
これで、「HDDがスリープしている間はヘルスチェックをスキップし、ディスクを起こさない」という理想的な挙動になります!
5. OMV WebUIでの恒久スピンダウン設定
続いて、サーバー再起動後も自動でスピンダウン設定が適用されるよう、各HDDの設定を行います。
- WebUIの 「Storage(ストレージ)」 ➔ 「Disks(ディスク)」 を開きます。
- データ用の各HDD(
sda,sdb,sdd,sdf,sdl)を選択し、編集(ペンのアイコン)をクリックします。 - 以下の通り設定します:
- Advanced Power Management (APM):
127 - Intermediate power usage with standby - Spindown time:
10 minutes(運用スタイルに合わせて調整) - Enable write-cache: 有効(チェックを入れる)
- Advanced Power Management (APM):
- 「Save」をクリックし、全5台分設定したら画面上部の「変更を適用」を実行します。
6. 動作確認:全台スタンバイ(スリープ)の達成!
設定が完了したら、実際にHDDがスリープするかテストしてみましょう。
# ① 全HDDを一括で手動スピンダウンさせる
for d in sda sdb sdd sdf sdl; do sudo hdparm -y /dev/$d; done
# ② ディスクを起こさずに電源状態を確認する(-C オプション)
for d in sda sdb sdd sdf sdl; do echo -n "$d: "; sudo hdparm -C /dev/$d | grep "drive state"; done
hdparm -C コマンドは、スリープ中のディスクを回転させずに状態だけを問い合わせる安全なコマンドです。
実行した結果がこちらです:
sda: drive state is: standby
sdb: drive state is: standby
sdd: drive state is: standby
sdf: drive state is: standby
sdl: drive state is: standby
見事に5台すべてのHDDが standby(スピンダウン停止状態)になりました!
この状態でしばらく放置してみましたが、smartdによる余計なスピンアップも発生せず、静かな状態がしっかりと維持されることを確認できました。
7. まとめ&スリープ運用の注意点
今回の設定により、常時稼働NASの静音化と大幅な省電力化を達成できました!
最後に、HDDスピンダウン運用を始める上での注意点とポイントをまとめておきます。
- 初回アクセス時のスピンアップラグ:
スリープ中にPCから共有フォルダを開こうとすると、ディスクのモーターが回転を始めて読み込み可能になるまで約3〜5秒程度の待ち時間が発生します。故障やフリーズではないのでご安心ください。 - スピンダウン時間の間隔:
HDDは頻繁なスピンアップ・スピンダウン(起動・停止の繰り返し)が最もモーターやヘッドに負荷をかけます。頻繁にアクセスする環境では、スピンダウン時間を短くしすぎず「20分〜30分」程度に設定するのがおすすめです。 - 省電力効果のインパクト:
3.5インチHDD 5台で約25W削減。年間約6,000円前後の電気代削減になり、常時稼働サーバーとしては非常に大きなメリットです。
OpenMediaVaultで「スリープ設定が効かない」「HDDが勝手に起きてしまう」と悩んでいる方は、ぜひ今回の S.M.A.R.T.設定(Power mode: Standby) と hdparmによる調査 を試してみてください!
コメント
0 件のコメント :
コメントを投稿