使用 hdparm 在 Ubuntu 服务器上设置硬盘休眠时间

  • 在 Ubuntu 服务器上,合理的硬盘休眠时间可以降低能源消耗,减少噪音,并延长硬盘寿命。hdparm 是一个用于控制硬盘参数的强大工具,包含设置硬盘休眠时间的功能。本文将介绍如何使用 hdparm 在 Ubuntu 服务器上设置硬盘休眠时间。

1. 安装 hdparm

  • hdparm 通常预装在 Ubuntu 系统上,但如果未安装,可以通过以下命令安装:
sudo apt-get install hdparm

2. 检查硬盘设备

  • 在设置硬盘休眠时间之前,首先要确定硬盘设备路径。常见的硬盘路径包括 /dev/sda、/dev/sdb 等。可以使用以下命令查看所有硬盘设备:
lsblk

3. 基本设置

  • hdparm -B /dev/sdc 会显示当前硬盘的 APM 级别
    • 查看 APM 级别:如果没有指定值,运行 hdparm -B /dev/sdc 会显示当前硬盘的 APM 级别。输出结果是一个 0 到 255 之间的整数,表示硬盘的电源管理策略。
    • 设置 APM 级别:如果提供了一个整数值,命令会设置硬盘的 APM 级别。通常,值越低,电源管理更严格;值越高,性能更强劲。这里是几个关键点:
      • 0 表示关闭高级电源管理。
      • 255 是最大性能级别,硬盘几乎不会进入待机。
      • 中间值,例如 127 或 128,代表折中状态,硬盘会在空闲时进入待机但不会频繁休眠。
  • hdparm -S 选项可用于设置硬盘的休眠时间。参数是一个整数值,表示硬盘在多长时间的空闲后进入休眠状态。该整数值乘以 5 秒得到总时间。以下示例设置硬盘在 10 分钟(120 * 5 = 600 秒)空闲后进入休眠:
# 设置APM 级别为127
hdparm -B 127 /dev/sdX

#设置硬盘休眠时间为10分钟
sudo hdparm -S 120 /dev/sdX

# 查看硬盘状态
hdparm -C /dev/sdX
# /dev/sdc:
#  drive state is:  standby

4. 保持设置在系统重启后不失效

  • 使用 hdparm -S 60 /dev/sdc 设置硬盘休眠时间在系统重启后可能会失效。因为 hdparm 对硬盘的配置通常不会在系统重启后保持持久。
  • 要确保这些设置在每次启动时生效,您需要将 hdparm 配置添加到系统启动脚本或配置文件中。
  • 在 Ubuntu 上,您可以将 hdparm 的设置添加到 /etc/hdparm.conf 文件中,以便在系统启动时自动应用。下面是一个示例,说明如何确保在重启后设置硬盘休眠时间:
  1. 打开 /etc/hdparm.conf 文件进行编辑:
sudo vim /etc/hdparm.conf
  1. 添加配置块:
/dev/sdX {
    spindown_time = 60  # 设置休眠时间为5倍的秒(即60*5=300秒=5分钟)
    apm = 127          # 设置高级电源管理级别为127
}

#这里也可以使用硬盘id来设置
# ls -l /dev/disk/by-id/  # 获取硬盘id
/dev/disk/by-id/wwn-0x5000c500d6444930 {
    spindown_time = 60  # 设置休眠时间为60单位(即5分钟)
    apm = 127           # 设置高级电源管理级别为127
}

  1. 保存配置并重启服务:
    保存 /etc/hdparm.conf 文件并关闭编辑器。然后,重新启动 hdparm 服务以确保更改生效:
sudo systemctl restart hdparm

5. 总结

通过使用 hdparm 设置硬盘休眠时间,可以帮助节省能源,减少硬盘噪音,并延长硬盘寿命。请确保在操作之前备份重要数据,并根据您的需求调整休眠时间。