跳转到内容

电源管理:硬盘休眠与定时开关机 ​

完成后,闲置的硬盘会自动停转,省电也更安静;你也能让 NAS 按计划重启或关机,知道电源按键按下去会发生什么,并且知道硬盘不肯休眠时该查什么。

先分清三件事,它们在界面里是三个不同的地方:

要做的事在哪里设置
让某块硬盘闲置后停转存储器 → 磁盘 → 编辑(Storage → Disks → Edit)
电源按键、待机模式、CPU 频率系统 → 电源管理 → 设置(System → Power Management → Settings)
定时重启、关机、待机系统 → 电源管理 → 计划任务(System → Power Management → Scheduled Tasks)

休眠和定时开关机会让服务不可用

  • 影响范围:硬盘休眠后,第一次访问要等盘转起来,这段时间共享会卡住,容器可能超时;多块盘依次唤醒更久。定时关机、重启、待机期间所有服务中断,正在跑的备份和校验会被打断。
  • 前置条件:定时关机之前确认没有备份、scrub、同步在跑,把关机时间放在它们结束之后。想靠定时唤醒,先确认主板的 BIOS 支持,并测试过。
  • 怎么回退:把停转时间改回 禁用 并应用;删除或禁用电源相关的计划任务并应用。关机后叫不醒时,按实体电源键,或用 IPMI。

硬盘停转 ​

  1. 打开 存储器 → 磁盘,选中一块数据盘,点 编辑(Edit)。

  2. 设置这些字段:

    字段说明
    高级电源管理(Advanced Power Management,APM)默认「禁用」。数值 128 及以上不允许硬盘停转;要让硬盘能停转,保持禁用,或选 1、64、127
    自动声音管理(Advanced Acoustic Management,AAM)默认禁用。有的硬盘支持,可以降低噪音、牺牲性能
    停转时间(Spindown time)默认「禁用」。可选 5、10、20、30、60、120、180、240、300、330 分钟
    启用写缓存(Enable write-cache)只有硬盘支持才有效,见下面的说明
  3. 保存,点黄色提示条上的 应用。

OMV 8 通过 smartctl 给硬盘下发这些设置:停转时间设的是硬盘自己的待机计时器,不是系统的计时器。设置会在开机和从睡眠恢复后重新下发。

关于「启用写缓存」

这个选项默认不勾选。按 OMV 生成的设置脚本推断,保存这个表单时,不勾选会把这块盘的写缓存关掉,写入速度会变慢(未在实机上验证)。想设置停转又不改变写缓存,就勾选它。有 UPS 保护的话,开写缓存的风险小得多,见接入 UPS。

查看硬盘的电源状态 ​

存储器 → 磁盘 的表格有一列 电源模式(Power Mode),默认隐藏,在表格的列选择器里勾选后显示。状态有:激活、激活或闲置、闲置、待机、睡眠。刷新这个列表不会把休眠的盘唤醒。

在 OMV 的 shell 里,以 root 身份,也有只读的办法:

sh
smartctl -n standby -i /dev/<磁盘>

硬盘在待机时,它只会提示「Device is in STANDBY mode」并退出,不会把盘唤醒。

为什么硬盘不睡 ​

原因怎么检查办法
没设停转时间,或 APM 在 128 及以上磁盘的 编辑 页设置停转时间,APM 保持禁用
S.M.A.R.T. 的定期检查把盘叫醒了存储器 → S.M.A.R.T. → 设置(Storage → S.M.A.R.T. → Settings)的 电源模式默认是 待机,遇到待机或睡眠的盘就跳过检查。如果被改成「永不」,改回来
有程序在读写这块盘在 shell 里 lsof <挂载点>,看谁打开了文件容器的配置和数据库、下载、媒体库扫描、定时备份都会访问。把常变的数据放到别的盘,或调整任务时间
USB 硬盘盒不支持待机命令用上面的 smartctl 命令读不到状态换盒子,或放弃休眠
阵列或文件系统在后台工作RAID 同步、Btrfs scrub、SnapRAID 同步正在进行等它结束
日志、Docker 数据在这块盘上它们持续写入系统盘和数据盘分开,Docker 数据放在不需要休眠的盘上

更详细的排查见硬盘不休眠。

休眠不是越多越好。频繁启停会磨损硬盘,每隔一小时就被叫醒一次的盘,不如让它一直转。唤醒要等盘转起来,Windows 资源管理器、媒体服务器和容器都可能因此卡顿或超时。一天里被访问很多次的盘,别开休眠。

电源按键、待机模式和 CPU 频率 ​

打开 系统 → 电源管理 → 设置:

字段说明
CPU 频率调节(CPU frequency scaling)初始值因安装方式而异(按源码):新装系统在初始化时,会从这台 CPU 可用的调节器里按省电优先挑一个写进来,常见是 powersave;从 8.0.x 升级上来的系统和虚拟机里是「禁用」,即 OMV 不接管、沿用内核默认。可选的调节器取决于 CPU 和驱动,常见有 schedutil、powersave、performance。界面提示 schedutil 适合多数用户,空闲时省电;powersave 始终最低频率;performance 始终最高频率。只在物理机上生效
电源按键(Power button)默认「没有」,即按了没反应。可选 关机 或 待机
待机模式(Standby mode)默认 关机。可选取决于系统支持的方式:暫停(Suspend,官方译名用繁体字)、冬眠(Hibernate)、休眠(官方译名,对应 Hybrid sleep,混合睡眠)

三点要特别注意:

  • 「待机」默认就是关机。 默认的待机模式是「关机」,所以顶栏电源菜单里的 待机、电源按键选了「待机」、计划任务选了「待机」,默认效果都是关机,不是睡眠。
  • 官方中文把 Hybrid sleep 译成「休眠」,和 Hibernate 的译名「冬眠」容易弄混,看括号里的英文。
  • 把 NAS 设成挂起(suspend)或休眠(hibernate)不推荐:网络唤醒不一定可靠,服务中断,硬件驱动也可能在恢复时出问题。要省电,用硬盘停转和 CPU 频率调节。

OMV 8 把 CPU 频率调节从旧的 cpufrequtils 换成了 linux-cpupower,从 OMV 7 升级上来的系统要重新确认这里的设置,见大版本升级。

定时重启和关机 ​

打开 系统 → 电源管理 → 计划任务,点 创建:

字段说明
已启动默认勾选
类型(Type)待机、关机、重启,默认重启
执行的时间特定日期、每小时、每天、每周、每月、每年,时间的写法和计划任务一样
标签备注

保存后点 应用。OMV 把它们写进 /etc/cron.d/openmediavault-powermngmt,到点执行 systemctl 的对应命令,不需要你手改。

Linux 服务器不需要定期重启,没有理由就别设。定时关机要先确认怎么开机:靠主板的 RTC 定时唤醒、网络唤醒(WOL)或手按电源键,没想清楚之前不要设。

想要按活动自动关机、定时唤醒、网络唤醒,OMV 核心做不到,要用 omv-extras 的 autoshutdown、wakealarm、wol 插件,见自动关机与定时唤醒。它们有已知的局限,不要把它们当成有保证的行为。

检查结果 ​

  1. 停转:给一块不常用的数据盘设置 30 分钟停转并应用。30 分钟内不要访问它,之后在 存储器 → 磁盘 看 电源模式 列,或用 smartctl -n standby -i /dev/<磁盘>,应该显示待机。然后访问这块盘上的共享,感受第一次打开的延迟,再看状态变回激活。
  2. 电源按键:设置后在维护窗口测试,确认按键的效果和你预期的一样。
  3. 计划任务:先用「重启」类型,在维护窗口里设一个几分钟后的任务,确认能按时重启、服务回来;测试完删除任务并应用。重启能自己恢复,关机则需要有人或设备再开机,所以先测重启。

常见问题 ​

设置了停转,盘马上又转起来。 有程序在访问它,按上面的表格逐项排查,lsof <挂载点> 最直接。

S.M.A.R.T. 页面显示硬盘「待机」,是不是出故障了? 不是,这表示它正在休眠,SMART 检查会按设置跳过它。

CPU 频率的下拉框里只有「禁用」。 虚拟机、某些 CPU 驱动没有可用的调节器。这不是错误。OMV 的部署脚本也只在物理机上启用 CPU 频率调节,虚拟机里选了也不会生效。

电源按键没反应。 OMV 通过 systemd-logind 处理电源键,设置后要应用才会写入。部分机器或虚拟机的按键事件需要额外的 ACPI 支持。

计划关机后叫不醒。 检查 BIOS 里的 RTC 唤醒或 WOL 是否开启,并用网线连接(Wi-Fi 一般不支持)。

参考资料 ​

  • 停转设置依据 OMV 源码:表单在 workbench/src/app/pages/storage/disks/,应用方式在 srv/salt/omv/deploy/smartmontools/20hdparm.sls。
  • 电源设置依据 workbench/src/app/pages/system/powermgmt/ 和 srv/salt/omv/deploy/systemd-logind/、cron/。
  • 官方文档的电源管理页(Power Management)还写着旧的 cpufrequtils,以本篇为准。

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