问题
- 将 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
,-n standby
但没有成功,所以我完全禁用了 smartd 以查看 smartmontools 是否是隐藏的坏人,但没有运气,看起来它们不是。 lsof | grep /media
什么都没有给出(介质是所有这些磁盘的挂载点)iotop
我也玩了一下nmon
。但没有发现什么有趣的东西,只有 SSD(系统)磁盘的常规活动。- 由于某种原因,我无法运行
iosnoop
。包perf-tools-unstable
已正确安装,但即使以 root 身份调用也会iosnoop
结束bash: iosnoop: command not found
。我没有找到原因。
很明显你无法调试我的系统,但是我将非常感激任何有关如何查找问题的提示,是谁阻止磁盘旋转:-)
答案1
解决了。至少我知道为什么我的磁盘没有休眠。我不能明确地说如何使用一些 Linux 工具来跟踪这个问题,我在一些讨论中偶然发现了它。
看起来像是服务发生了变化udisks2
。此服务正在检查您的磁盘,并负责自动安装您的 USB 记忆棒等。现在该服务还会检查磁盘的 SMART(不知道为什么)。如果磁盘处于休眠状态,它不会唤醒它,但如果磁盘处于活动状态,udisks2 会每 10 分钟检查一次 SMART。因此,如果休眠时间为 30 分钟,磁盘将永远不会进入休眠状态。此外,WD Red 磁盘通常无法设置小于 10 分钟的休眠时间(磁盘过快减速是不健康的,因此这是合理的限制)。
一些资料来源:
- hd-idle 关闭问题:https://github.com/adelolmo/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