Debian
如何找到阻止磁碟旋轉的人
問題
- 將 NAS 系統從 Buster 升級到 Bullseye 後,磁槃無法降速。
我的 NAS 設置
- 5x 機械磁碟 WD RED,無 RAID,無日誌的 ext4
- Debian Bullseye,核心 5.10
- 系統正在從第六個 SSD 磁碟載入(不喚醒機械磁碟)
- hd-idle 實用程序在 30 分鐘不活動後設置降速
hd-idle -i 0 -a sda -i 1800 -a sdb -i 1800 -a sdc -i 1800 -a sdd -i 1800 -a sde -i 1800 -l /var/log/hd-idle.log
- 升級到 Bullseye 時,NAS 中沒有硬體變化,hd-idle 的配置也沒有變化
- NAS 在此硬體設置中使用了 8 年以上,而且在軟體設置中,主要是磁碟在 30 分鐘後旋轉多年,沒有任何問題
我試過的
- 如果我使用
hd-idle -t sda
,磁碟將立即減速,但在醒來後(由於一些正常的磁碟活動),它再也不會睡著了。- 如果磁碟被迫以 減速
hd-idle -t
,則它們不會在沒有正常活動的情況下喚醒 - 因此沒有重複的工作會喚醒它們。- 我對 smartmontools 持懷疑態度,如果 Bullseye 有一些變化會喚醒它們。我玩了一點
/etc/smartd.conf
and-n standby
,但沒有成功,所以我完全禁用了 smartd 以查找 smartmontools 是否是隱藏的壞人,但沒有運氣,看起來不是。lsof | grep /media
什麼都不提供(媒體是所有這些磁碟的掛載點)iotop
我也玩了一點nmon
。但沒有發現任何有趣的東西,只有 SSD(系統)磁碟的正常活動。- 由於某種原因我不能跑步
iosnoop
。該包perf-tools-unstable
已正確安裝,但呼叫以 root 身份iosnoop
結束。bash: iosnoop: command not found
我沒有找到造成這種情況的原因。很明顯你無法調試我的系統,但我會很感激任何提示如何找到問題,誰在阻止磁碟旋轉:-)
解決了。至少我知道,為什麼我的磁碟不睡覺。我不能肯定地說,如何用一些 linux 工具來追踪這個問題,我在一些討論中偶然發現了它。
好像是
udisks2
服務的變化。該服務正在檢查您的磁碟並負責自動安裝您的 USB 記憶棒等。現在該服務還檢查磁碟的 SMART(不知道為什麼)。如果磁碟處於睡眠狀態,它不會喚醒它,但如果它處於活動狀態,udisks2 會每 10 分鐘檢查一次 SMART。所以如果睡眠時間是 30 分鐘,磁碟永遠不會睡著。此外,WD Red 磁碟通常無法將睡眠時間設置為小於 10 分鐘(磁碟過度減速是不健康的,因此這是合理的限制)。一些資料來源:
- hd-idle 已關閉問題:https ://github.com/adellolmo/hd-idle/issues/59
- 這裡有一些錯誤https://bugs.launchpad.net/ubuntu/+source/udisks2/+bug/1899361>和那裡<https://bugs.launchpad.net/ubuntu/+source/udisks2/+bug/1281588
- 送出到 udisks2 包,這應該可以解決問題,但我無法意識到它何時會在我的系統中:https ://cgit.freedesktop.org/udisks/commit/?id=46da39c15f3
NAS 系統的解決方法:您可能根本不需要 udisks2 服務。
sudo systemctl stop udisks2 sudo systemctl mask udisks2