# 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](https://user-images.githubusercontent.com/37409593/216442212-d2ad7ff7-0d6f-443f-b8ac-c67b5f613b83.png)

(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: ```bash docker run -d \ --name Dell_iDRAC_fan_controller \ --restart=unless-stopped \ -e IDRAC_HOST=local \ -e CPU_TEMPERATURE_THRESHOLD= \ -e CHECK_INTERVAL= \ -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= \ --device=/dev/ipmi0:/dev/ipmi0:rw \ votre_image:latest ``` 2. with LAN iDRAC: ```bash docker run -d \ --name Dell_iDRAC_fan_controller \ --restart=unless-stopped \ -e IDRAC_HOST= \ -e IDRAC_USERNAME= \ -e IDRAC_PASSWORD= \ -e CPU_TEMPERATURE_THRESHOLD= \ -e CHECK_INTERVAL= \ -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= \ votre_image:latest ``` `docker-compose.yml` examples: 1. to use with local iDRAC: ```yml 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 ``` 2. to use with LAN iDRAC: ```yml 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)