ハードドライブは自動的にスタンバイ状態に入りません。

ハードドライブは自動的にスタンバイ状態に入りません。

30〜60分後に自動的にスタンバイモードに切り替えるハードドライブがあります。

私が試したこと(3分テスト):

# hdparm -S 36 /dev/sda

/dev/sda:
 setting standby to 36 (3 minutes)

5分以上アクセスできなくても機能しません。今、私はデータにアクセスするいくつかのプロセスを考えてテストしました。

# hdparm -y /dev/sda

/dev/sda:
 issuing standby command

ドライブがスタンバイモードになり、スリープ状態を維持します。次のコマンドを使用して確認できます。

# hdparm -C /dev/sda;date

/dev/sda:
 drive state is:  standby

期待どおりにマウントポイントの特定のファイルをタッチすると、そのファイルが起動します。

自動一時停止が機能しないのはなぜですか?私が理解したのは、アクセス権がない限り、オペレーティングシステムとは別にハードドライブをシャットダウンする必要があります。

答え1

私はUbuntu 18.04を実行しており、同じ問題が発生しました。 @alloさんの回答のおかげで、これがsmartd実際に原因であることがわかりました。

デフォルトでは、/etc/smartd.conf次のように構成されます。

DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/martd-runner

その後、自動的にすべてのドライブをスキャンして定期的にポーリングします(ディスクが回転します)(デフォルトは30分、変更可能)。 smartdは回転ディスクをスキップしますが、-n standby問題は次のとおりです。 smartdポーリング間隔がディスクの「回転後」時間より短い場合、smartdは回転する機会が発生する前に常にディスクをポーリングするため、ディスクはディスクをポーリングしません。スタンバイモードに入ります。

ディスクの「回転タイムアウト」が smartd のポーリング間隔より短い場合、smartd がポーリング前にディスクが回転し、その後 smartd がディスクをスキップして再回転しません。たとえば、ディスクが他のツールによって(手動で)回転している場合、hd-idlesmartdもそれをスキップします。

smartdポーリング間隔を延ばす1つの方法は、次の行を編集することです/etc/default/smartmontools

smartd_opts="--interval=1800"

たとえば、1800は30分を意味し、10800(3時間)で十分です。そして再起動を忘れないでください。

systemctl restart smartd smartmontools

答え2

実際の問題は、smartdスタンバイモードであっても定期的に機器の値を確認するという点だ。

smartdは時々テストを無効にして実行してこの問題を解決しました。smartctl

答え3

一部のドライブは、コマンドが渡されてもこの機能を実装しません。減らす必要があるかもしれません。高度な電源管理レベル127以下を達成してくださいhdparm -B 127 /dev/sda。マニュアルページから:

-B高度な電源管理機能のインポート/設定... 1〜127(持続可能)値と128〜254(持続許可なし)の値。

他のすべての方法が失敗した場合にデバイスの読み取り/書き込み回数をポーリングまたはインポートし、数分間変更が/proc/diskstatsない/sys/block/sda/stat場合は、ドライブをスタンバイモードに明示的に切り替える小さなスクリプトを作成できます。よりHDアイドル便利です。

関連情報