跳转到内容

硬盘不休眠 ​

适用范围 ​

  • 在磁盘设置里设了停转时间,硬盘却一直在转。
  • 存储器 → 磁盘(Storage → Disks)里「电源模式」(Power Mode)一列,长时间不是「待机」(Standby)。
  • 硬盘总是被反复唤醒,能听到起转的声音。

不适用:SSD 和 NVMe 没有「停转」的概念,不在本页范围;想让整台 NAS 定时睡眠、关机,见电源管理:硬盘休眠与定时开关机。

开始排查前 ​

三点背景,帮你判断要不要折腾:

  • **只有机械硬盘能停转。**部分 USB 硬盘盒的桥接芯片不转发待机相关的命令,盘因此可能永远不休眠,这取决于具体的盒子。
  • **休眠不一定省事。**磁盘的启停次数有规格上限,被频繁唤醒又休眠,不一定比一直转更好。如果 NAS 每隔几分钟就被访问一次,让它一直转可能是更合理的选择。
  • **OMV 里设置的生效方式。**你在磁盘设置里保存并应用之后,OMV 会生成脚本,用 smartctl 把这些参数写进磁盘,开机时和系统从睡眠中恢复之后,会再执行一遍。

判断是否休眠,看界面的「电源模式」一列:激活、激活或闲置、闲置、待机、睡眠、未知、错误。待机或睡眠才表示盘已经停转。

本页的检查都是只读的,只有第 2、3 步会改设置。

排查步骤 ​

1. 看现状 ​

在 存储器 → 磁盘 里看「电源模式」一列。在 shell 里也可以只读地查看,它不会唤醒磁盘:

sh
# 在 OMV 的 shell 里执行(只读);<磁盘> 例如 sda
smartctl -n standby -i /dev/<磁盘>

-n standby 表示:如果磁盘已经处于待机状态,就不去打扰它,直接提示 Device is in STANDBY mode 并退出。磁盘正在转的话,会打印出设备信息。

2. 检查磁盘自己的电源设置 ​

在 存储器 → 磁盘 里选中磁盘,点编辑:

  • 停转时间(Spindown time):可选禁用,或 5、10、20、30、60、120、180、240、300、330 分钟。默认是禁用,也就是 OMV 不给这块盘设置停转计时(磁盘固件自带的省电行为不在 OMV 的管理范围内)。选一个你觉得合适的值,例如 30 分钟。
  • 高级电源管理(Advanced Power Management,APM):界面上有一条提示:数值大于等于 128 时,不允许磁盘停转。想让磁盘休眠,选 1、64、127 这几项之一,或者禁用 APM。选了 128、192、254,停转时间就不会生效。
  • 启用写缓存(Enable write-cache)与休眠无关,按你的需要设置。

保存后,点顶部黄色提示条上的应用。

3. 检查 S.M.A.R.T. 的轮询方式 ​

S.M.A.R.T. 监控服务启用之后,会按固定间隔轮询磁盘,轮询方式设置不当,每次都会把休眠的盘唤醒。打开 存储器 → S.M.A.R.T. → 设置(Storage → S.M.A.R.T. → Settings)检查:

  • 电源模式(Power mode):这是最容易漏掉的一项。OMV 配置数据库的出厂模板里,它的值是永不(Never),页面上的初始值也以你界面上显示的为准,请逐一核对。界面对四个选项的解释:永不表示无论磁盘处于什么状态都轮询,会唤醒休眠的盘;睡眠(Sleep)表示除了睡眠状态都检查;待机(Standby)表示除了睡眠和待机状态都检查,磁盘已经停转时,轮询会跳过它,想避免轮询唤醒磁盘,选这个;闲置(Idle)则连闲置状态也跳过,大多数磁盘在闲置状态仍在转,所以通常不是你想要的。改完点保存,再点黄色提示条上的应用。
  • 检查间隔时间(Check interval)出厂是 1800 秒(30 分钟)。
  • 存储器 → S.M.A.R.T. → 计划任务(Storage → S.M.A.R.T. → Scheduled Tasks)里的短暂自检和长时自检,会唤醒磁盘并让它持续工作,把它们安排在你不介意的时间。

4. 找出是谁在访问磁盘 ​

磁盘一直转,通常是有程序在读写它。先看看哪些进程打开着这个文件系统上的文件:

sh
# 在 OMV 的 shell 里执行(只读);<UUID> 是数据盘的 UUID,可在 存储器 → 文件系统 里看到
lsof /srv/dev-disk-by-uuid-<UUID>

再用磁盘的 I/O 计数器确认有没有读写:

sh
# 在 OMV 的 shell 里执行(只读);<磁盘> 例如 sda
cat /sys/block/<磁盘>/stat
sleep 60
cat /sys/block/<磁盘>/stat

输出的第一个数字是已完成的读次数,第五个数字是已完成的写次数。两次读到的数字有变化,就说明这一分钟里有读写。

常见的访问者:

访问者说明处理
容器数据库、媒体服务器扫描媒体库、下载和同步工具定期扫描,或者容器的日志写在数据盘上调整扫描间隔;把日志、数据库放到系统盘或 SSD
SMB、NFS 客户端电脑或手机的相册备份、文件索引(Windows 搜索、Spotlight)、播放器扫描网络共享在客户端上关闭对 NAS 的自动扫描
计划任务rsync、备份、杀毒、SnapRAID 同步、文件定位库更新在 系统 → 计划任务(System → Scheduled Tasks)等位置调整时间,见计划任务
定期维护RAID 检查、Btrfs 校验属于正常维护,运行期间磁盘不会休眠

OMV 自带的性能监测,只收集 CPU、文件系统用量、网络接口、负载、内存等信息,一般不会唤醒磁盘。

5. 唤醒后的第一次访问会慢 ​

磁盘休眠之后,第一次访问要等几秒甚至十几秒才能起转,客户端会表现为「NAS 卡了一下」。这是休眠的代价,不是故障。

6. 其他情况 ​

确认恢复 ​

  1. 空闲时间超过你设置的停转时间之后,存储器 → 磁盘 里这块盘的「电源模式」变成「待机」,smartctl -n standby -i /dev/<磁盘> 提示磁盘处于 STANDBY 模式。
  2. 观察一两天,确认它没有被反复唤醒。
  3. 访问共享时,磁盘能正常起转并读取数据。

仍未解决 ​

附上:磁盘的型号和接口(SATA 还是 USB)、存储器 → 磁盘 里电源模式列的截图、该磁盘的电源设置和 S.M.A.R.T. 设置页的截图、lsof 的输出、/sys/block/<磁盘>/stat 前后两次的数字,以及运行的容器和服务清单。读如何有效求助。

参考资料 ​

OpenMediaVault 非官方中文使用指南,与 openmediavault 项目及其开发者无隶属关系。