Files
iDRAC_fan_controller/README.md
Benoit 3a96167120 Nettoyage du code et refonte complète du README
- Suppression du code mort et commenté (fonctions inutiles)
- Correction du bug wait $SLEEP -> wait $SLEEP_PROCESS_PID
- Suppression des fichiers de sauvegarde .default
- Refonte complète du README en français avec :
  * Documentation des nouveaux paramètres de contrôle dynamique
  * Exemples Docker/docker-compose mis à jour
  * Section dépannage adaptée au système de seuils
  * Logique de fonctionnement détaillée

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 10:43:45 +02:00

6.8 KiB

Contrôleur de ventilateurs Dell iDRAC - Version modifiée

Fork de : https://github.com/tigerblue77/Dell_iDRAC_fan_controller_Docker.git

Modifications apportées :

  • Remplacement du contrôle statique par un contrôle dynamique basé sur la température
  • Configuration de 4 seuils de température avec vitesses correspondantes
  • Gestion progressive de la vitesse des ventilateurs selon la température du CPU
Table of Contents
  1. Container console log example
  2. Supported architectures
  3. Usage
  4. Parameters
  5. Troubleshooting
  6. Contributing

Container console log example

image

(back to top)

Prerequisites

iDRAC version

This Docker container only works on Dell PowerEdge servers that support IPMI commands, i.e. < iDRAC 9 firmware 3.30.30.30.

(back to top)

Supported architectures

This Docker container is currently built and available for the following CPU architectures :

  • AMD64
  • ARM64

(back to top)

Usage

  1. with local iDRAC:
docker run -d \
  --name Dell_iDRAC_fan_controller \
  --restart=unless-stopped \
  -e IDRAC_HOST=local \
  -e CPU_TEMPERATURE_THRESHOLD=<seuil de sécurité en °C> \
  -e CHECK_INTERVAL=<secondes entre chaque vérification> \
  -e CPU_TEMPERATURE_1=30 \
  -e CPU_TEMPERATURE_2=40 \
  -e CPU_TEMPERATURE_3=50 \
  -e CPU_TEMPERATURE_4=60 \
  -e FAN_SPEED_1=10 \
  -e FAN_SPEED_2=30 \
  -e FAN_SPEED_3=60 \
  -e FAN_SPEED_4=80 \
  -e DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE=<true or false> \
  --device=/dev/ipmi0:/dev/ipmi0:rw \
  votre_image:latest
  1. with LAN iDRAC:
docker run -d \
  --name Dell_iDRAC_fan_controller \
  --restart=unless-stopped \
  -e IDRAC_HOST=<adresse IP iDRAC> \
  -e IDRAC_USERNAME=<nom d'utilisateur iDRAC> \
  -e IDRAC_PASSWORD=<mot de passe iDRAC> \
  -e CPU_TEMPERATURE_THRESHOLD=<seuil de sécurité en °C> \
  -e CHECK_INTERVAL=<secondes entre chaque vérification> \
  -e CPU_TEMPERATURE_1=30 \
  -e CPU_TEMPERATURE_2=40 \
  -e CPU_TEMPERATURE_3=50 \
  -e CPU_TEMPERATURE_4=60 \
  -e FAN_SPEED_1=10 \
  -e FAN_SPEED_2=30 \
  -e FAN_SPEED_3=60 \
  -e FAN_SPEED_4=80 \
  -e DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE=<true or false> \
  votre_image:latest

docker-compose.yml examples:

  1. to use with local iDRAC:
version: '3.8'

services:
  Dell_iDRAC_fan_controller:
    image: votre_image:latest
    container_name: Dell_iDRAC_fan_controller
    restart: unless-stopped
    environment:
      - IDRAC_HOST=local
      - CPU_TEMPERATURE_THRESHOLD=70
      - CHECK_INTERVAL=60
      - CPU_TEMPERATURE_1=30
      - CPU_TEMPERATURE_2=40
      - CPU_TEMPERATURE_3=50
      - CPU_TEMPERATURE_4=60
      - FAN_SPEED_1=10
      - FAN_SPEED_2=30
      - FAN_SPEED_3=60
      - FAN_SPEED_4=80
      - DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE=false
    devices:
      - /dev/ipmi0:/dev/ipmi0:rw
  1. to use with LAN iDRAC:
version: '3.8'

services:
  Dell_iDRAC_fan_controller:
    image: votre_image:latest
    container_name: Dell_iDRAC_fan_controller
    restart: unless-stopped
    environment:
      - IDRAC_HOST=192.168.1.100
      - IDRAC_USERNAME=root
      - IDRAC_PASSWORD=calvin
      - CPU_TEMPERATURE_THRESHOLD=70
      - CHECK_INTERVAL=60
      - CPU_TEMPERATURE_1=30
      - CPU_TEMPERATURE_2=40
      - CPU_TEMPERATURE_3=50
      - CPU_TEMPERATURE_4=60
      - FAN_SPEED_1=10
      - FAN_SPEED_2=30
      - FAN_SPEED_3=60
      - FAN_SPEED_4=80
      - DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE=false

(back to top)

Paramètres

Tous les paramètres sont optionnels car ils ont des valeurs par défaut.

Connexion iDRAC :

  • IDRAC_HOST : peut être défini sur "local" ou l'adresse IP de votre iDRAC distant. Défaut : "local"
  • IDRAC_USERNAME : nécessaire uniquement pour un iDRAC distant. Défaut : "root"
  • IDRAC_PASSWORD : nécessaire uniquement pour un iDRAC distant. Défaut : "calvin"

Contrôle dynamique des ventilateurs :

  • CPU_TEMPERATURE_1 à CPU_TEMPERATURE_4 : seuils de température en °C. Défauts : 30, 40, 50, 60
  • FAN_SPEED_1 à FAN_SPEED_4 : vitesses des ventilateurs (0-100%) correspondant aux seuils. Défauts : 10, 30, 60, 80
  • CPU_TEMPERATURE_THRESHOLD : seuil de sécurité au-delà duquel le mode Dell par défaut est activé. Défaut : 70°C

Autres paramètres :

  • CHECK_INTERVAL : temps en secondes entre chaque vérification. Défaut : 60s
  • DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE : désactive la réponse de refroidissement Dell pour les cartes PCIe tierces. Défaut : false

Logique de fonctionnement :

  • Si la température CPU ≤ CPU_TEMPERATURE_1 → vitesse FAN_SPEED_1
  • Si CPU_TEMPERATURE_1 < température ≤ CPU_TEMPERATURE_2 → vitesse FAN_SPEED_2
  • Si CPU_TEMPERATURE_2 < température ≤ CPU_TEMPERATURE_3 → vitesse FAN_SPEED_3
  • Si CPU_TEMPERATURE_3 < température ≤ CPU_TEMPERATURE_4 → vitesse FAN_SPEED_4
  • Si température > CPU_TEMPERATURE_4 → 100%
  • Si température > CPU_TEMPERATURE_THRESHOLD → mode Dell par défaut (sécurité)

(back to top)

Dépannage

Si votre serveur revient fréquemment au mode Dell par défaut :

  1. Vérifiez la Tcase de votre CPU : Consultez le site Intel Ark pour connaître la température de boîtier maximum de votre CPU et définissez CPU_TEMPERATURE_THRESHOLD à une valeur légèrement inférieure. Exemple : pour un Intel Xeon E5-2630L v2 avec Tcase = 63°C, définir CPU_TEMPERATURE_THRESHOLD=60.

  2. Ajustez les seuils de température : Modifiez CPU_TEMPERATURE_1 à CPU_TEMPERATURE_4 selon votre environnement. Exemple pour un environnement plus chaud :

    CPU_TEMPERATURE_1=35
    CPU_TEMPERATURE_2=45
    CPU_TEMPERATURE_3=55
    CPU_TEMPERATURE_4=65
    
  3. Augmentez les vitesses de ventilation : Adaptez FAN_SPEED_1 à FAN_SPEED_4 pour améliorer le refroidissement :

    FAN_SPEED_1=15
    FAN_SPEED_2=35
    FAN_SPEED_3=70
    FAN_SPEED_4=90
    
  4. Si les problèmes persistent : Il peut être nécessaire de remplacer la pâte thermique de votre serveur.

(back to top)