TrueNAS Spindown Timer 使用教程
1. 项目介绍
TrueNAS Spindown Timer 是一个用于监控硬盘 I/O 并强制硬盘在指定空闲时间段后进入休眠状态的脚本。该脚本特别适用于 TrueNAS 和 FreeNAS 系统,能够有效管理硬盘的休眠状态,减少硬盘的磨损和能耗。
主要功能
- 监控硬盘 I/O:通过
iostat
监控硬盘的读写操作。 - 强制硬盘休眠:在硬盘空闲一段时间后,强制硬盘进入休眠状态。
- 排除 S.M.A.R.T. 读取:排除由
smartctl
服务执行的周期性读取操作,确保 S.M.A.R.T. 报告正常运行。 - 支持 ATA 和 SCSI 设备:适用于不同类型的硬盘设备。
- 支持 TrueNAS Core 和 TrueNAS SCALE:兼容不同的 TrueNAS 版本。
2. 项目快速启动
2.1 下载项目
首先,从 GitHub 仓库下载项目:
git clone https://github.com/ngandrass/truenas-spindown-timer.git
cd truenas-spindown-timer
2.2 配置硬盘休眠设置
在 TrueNAS GUI 中,导航到 Storage > Disks
,为每个需要休眠的硬盘设置以下选项:
- HDD Standby:设置为
Always On
。 - Advanced Power Management:设置为
level 128
或更高。
2.3 部署脚本
将脚本复制到 TrueNAS 系统中,并设置执行权限:
chmod +x spindown_timer.sh
2.4 启动脚本
可以通过以下命令手动启动脚本:
./spindown_timer.sh
为了实现开机自启动,可以在 TrueNAS GUI 中注册为 Init 脚本。导航到 Tasks > Init/Shutdown Scripts
,创建一个新的 Post Init 任务,执行 spindown_timer.sh
。
3. 应用案例和最佳实践
3.1 自动休眠硬盘
在家庭 NAS 环境中,硬盘的长时间运行会导致能耗增加和硬盘寿命缩短。使用 TrueNAS Spindown Timer 可以自动管理硬盘的休眠状态,减少不必要的能耗。
3.2 数据中心能效管理
在数据中心环境中,大量硬盘的长时间运行会显著增加能耗。通过使用该脚本,可以有效管理硬盘的休眠状态,降低数据中心的能耗成本。
3.3 硬盘健康管理
通过排除 S.M.A.R.T. 读取操作,确保硬盘的健康状态报告不受影响,同时实现硬盘的自动休眠,延长硬盘的使用寿命。
4. 典型生态项目
4.1 TrueNAS
TrueNAS 是一个开源的网络附加存储(NAS)操作系统,广泛应用于家庭和企业环境。TrueNAS Spindown Timer 是 TrueNAS 生态中的一个重要工具,帮助用户更好地管理硬盘的休眠状态。
4.2 FreeNAS
FreeNAS 是 TrueNAS 的前身,同样是一个开源的 NAS 操作系统。TrueNAS Spindown Timer 也兼容 FreeNAS,为用户提供硬盘休眠管理功能。
4.3 ZFS
ZFS 是一个先进的文件系统,广泛应用于 TrueNAS 和 FreeNAS 系统中。TrueNAS Spindown Timer 支持 ZFS 池级别的硬盘管理,确保 ZFS 池中的硬盘能够按需休眠。
通过以上步骤,您可以轻松地在 TrueNAS 系统中部署和使用 TrueNAS Spindown Timer,实现硬盘的自动休眠管理。