我的 Dell 风扇控制项目全面升级!温控策略自定义、Docker Compose 支持、更安全更稳定
我升级了我的开源项目 —— 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_COUNT | IPMI重试次数 | 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 -d4. 移除内置默认凭据
旧版的问题:代码中内置了默认的 iDRAC 地址、账号和密码(10.10.11.11 / root / 123456),这存在安全隐患。
新版改进:彻底移除了所有默认凭据,缺少环境变量会直接报错退出,配置错误也会在启动时明确提示。
5. Docker 镜像更小、更规范
- 基础镜像切换到 Debian slim,只安装必要的
python3、ipmitool和时区数据 - 支持 AMD64 和 ARM64 双架构
- Docker Hub 镜像统一为
lkddi/dell-fans-controller,v*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°C | 20% | 静音模式 |
| 50-55°C | 25% | 低速运行 |
| 55-60°C | 30% | 中速运行 |
| 60-65°C | 40% | 高速运行 |
| >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 服务器既冷静又安静!
版权声明:本文为原创文章,版权归 放飞的流星 所有,转载请联系博主获得授权。
如果对本文有什么问题或疑问都可以在评论区留言,我看到后会尽量解答。