硬碟不自動進入待機狀態

硬碟不自動進入待機狀態

我有一個硬碟,它應該會在 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 standbysmartd 會跳過旋轉的磁碟,但問題是:如果 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取得裝置上的讀取/寫入次數,並在幾分鐘內沒有變更時明確將磁碟機置於待機狀態。請參閱高清空閒公用事業。

相關內容