我升级了我的开源项目 —— Dell 风扇控制器全面翻新,更灵活、更稳定!

前言

之前分享过《Dell服务器R730风扇太吵?用这个Docker工具一键智能控温降噪!》,最近我对这个项目(lkddi/dell-fans-controller-docker)做了一次全面的升级重构,现在正式向大家介绍这个全新版本!

升级了什么?

1. 温控策略完全可自定义

旧版是固定温控档位,不能改。新版新增了 FAN_SPEED_STEPS 环境变量,你可以通过一行配置自由定制温度和转速的关系:

FAN_SPEED_STEPS=45:20,55:30,62:45,70:60

表示:0-45°C → 20% 转速 → 45-55°C → 30% → 55-62°C → 45% → 62-70°C → 60% → >70°C → 切回 iDRAC 自动模式

2. 全面可配置参数

新增了大量环境变量,让你可以精细控制风扇策略:

环境变量作用默认值
CONTROL_INTERVAL_SECONDS正常控制间隔120秒
ERROR_INTERVAL_SECONDS失败后等待时间同正常间隔
IPMI_FAILURE_BACKOFF_SECONDS全部重试失败后冷却300秒
IPMI_RETRY_COUNTIPMI重试次数5次
IPMI_RETRY_DELAY_SECONDS重试间隔20秒
IPMI_TIMEOUT_SECONDS命令超时60秒
USE_RAW_FAN_DUTY是否查询原始占空比false

对于 iDRAC8 这类 IPMI 会话不太稳定的系统,保持 120 秒控制间隔可有效减少 iDRAC 会话压力。默认 USE_RAW_FAN_DUTY=false 会跳过额外的 raw 命令,直接通过 sdr 返回的 RPM 估算风扇百分比。

3. Docker Compose 支持 + .env 配置

新版增加了 Docker Compose 部署方式,配合 .env 文件管理配置,更加方便:

cp .env.example .env
# 修改 .env 中的 iDRAC 配置
docker compose up -d

4. 移除内置默认凭据

旧版的问题:代码中内置了默认的 iDRAC 地址、账号和密码(10.10.11.11 / root / 123456),这存在安全隐患。

新版改进:彻底移除了所有默认凭据,缺少环境变量会直接报错退出,配置错误也会在启动时明确提示。

5. Docker 镜像更小、更规范

  • 基础镜像切换到 Debian slim,只安装必要的 python3ipmitool 和时区数据
  • 支持 AMD64 和 ARM64 双架构
  • Docker Hub 镜像统一为 lkddi/dell-fans-controllerv* tag 才触发 Docker 构建
  • 新增了 .dockerignore.env.example 和 MIT License

6. 新增多种运行方式

除了 Docker 运行外,还支持:

Docker Compose(推荐):

docker compose up -d

本机 Python 直接运行:

export HOST=192.168.1.100
export USERNAME=root
export PASSWORD=your_idrac_password
export FAN_SPEED_STEPS=50:20,55:25,60:30,65:40
python3 start.py

温控策略

新版默认温控档位也做了调整,最低转速从 15% 提升到了 20%:

温度范围风扇转速说明
0-50°C20%静音模式
50-55°C25%低速运行
55-60°C30%中速运行
60-65°C40%高速运行
>65°C自动模式交还 iDRAC

这些都可以通过 FAN_SPEED_STEPS 自定义,转速必须是 10-100 的整数,温度阈值不能重复。

故障排查

新版 README 中新增了详细的故障排查指南:

手动测试 IPMI 连接:

ipmitool -H 192.168.1.100 -I lanplus -U root -P your_idrac_password mc info
ipmitool -H 192.168.1.100 -I lanplus -U root -P your_idrac_password sdr

常见问题:

  • Unable to establish IPMI v2 / RMCP+ session:iDRAC IPMI 服务繁忙或不稳定,重试机制会自动处理
  • 频繁 IPMI 会话失败:检查网络延迟、是否有重复的监控脚本或容器,可尝试重置 iDRAC(mc reset cold
  • Authentication failed:确认用户名密码和 IPMI 权限

发布流程

新版本采用 tag 触发 Docker 镜像构建的流程,推送 v* tag 时会自动发布镜像到 Docker Hub:

git tag v1.0.0
git push origin v1.0.0

总结

这次升级可以说是从头到尾翻新了一遍:温控策略可自定义、配置参数全面开放、移除默认凭据提升安全性、新增 Docker Compose 支持、镜像更小更规范。无论你是 R730、R730xd 还是其他 Dell 服务器用户,都值得升级到最新版本。

项目地址:https://github.com/lkddi/dell-fans-controller-docker

Docker Hub:https://hub.docker.com/r/lkddi/dell-fans-controller

赶快试试吧,让你的 Dell 服务器既冷静又安静!