
我有一個硬碟,它應該會在 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 分鐘,可變更)。雖然-n standby
smartd 會跳過旋轉的磁碟,但問題是:如果 smartd 輪詢間隔短於磁碟的「旋轉結束後」時間,則 smartd 將始終在有機會旋轉之前輪詢磁碟 -關閉,因此磁碟永遠不會進入待機模式。
如果磁碟的「旋轉逾時」短於 smartd 的輪詢間隔,磁碟將在 smartd 輪詢之前旋轉,之後 smartd 將跳過該磁碟並且不再旋轉它。如果磁碟被其他工具(例如 )(手動)降速hd-idle
,那麼 smartd 也會跳過它。
延長 smartd 輪詢間隔的一種方法是編輯以下行/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
取得裝置上的讀取/寫入次數,並在幾分鐘內沒有變更時明確將磁碟機置於待機狀態。請參閱高清空閒公用事業。